<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Matt Archer&#039;s Blog</title>
	<atom:link href="http://mattarcherblog.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mattarcherblog.wordpress.com</link>
	<description></description>
	<lastBuildDate>Mon, 02 Jan 2012 00:05:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mattarcherblog.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Matt Archer&#039;s Blog</title>
		<link>http://mattarcherblog.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mattarcherblog.wordpress.com/osd.xml" title="Matt Archer&#039;s Blog" />
	<atom:link rel='hub' href='http://mattarcherblog.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Does a Scrum team need an Agile Test Lead?</title>
		<link>http://mattarcherblog.wordpress.com/2011/12/15/does-a-scrum-team-need-an-agile-test-lead/</link>
		<comments>http://mattarcherblog.wordpress.com/2011/12/15/does-a-scrum-team-need-an-agile-test-lead/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 15:35:47 +0000</pubDate>
		<dc:creator>Matt Archer</dc:creator>
				<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Agile Testing]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[agile testing]]></category>
		<category><![CDATA[Agile Methods]]></category>
		<category><![CDATA[agile test lead]]></category>
		<category><![CDATA[adopting agile]]></category>
		<category><![CDATA[test lead]]></category>

		<guid isPermaLink="false">http://mattarcherblog.wordpress.com/?p=799</guid>
		<description><![CDATA[&#8216;Agile Test Lead&#8217;; it sounds like a reasonable title, but it could be interpreted as going against agile principles. &#8216;Test&#8217; smacks of being role specific. Not the kind of separation you want to encourage if you are aiming for a team of multi-disciplined individuals. And &#8216;Lead&#8217;. It doesn&#8217;t sound as bad as &#8216;Manager&#8217;, but it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=799&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&#8216;Agile Test Lead&#8217;; it sounds like a reasonable title, but it could be interpreted as going against agile principles. &#8216;Test&#8217; smacks of being role specific. Not the kind of separation you want to encourage if you are aiming for a team of multi-disciplined individuals. And &#8216;Lead&#8217;. It doesn&#8217;t sound as bad as &#8216;Manager&#8217;, but it still suggests an element of hierarchy, rather than a self-organising team of peers.</p>
<p>So why when I Google &#8216;Agile Test Lead&#8217; does it return so many hits (369,000 to be exact). I haven&#8217;t invented it as part of writing this post and it&#8217;s obviously more pervasive than a few old-school software houses clinging onto their roots whilst also trying to embrace agile principles. So what is an &#8216;Agile Test Lead&#8217;, if I was hiring one, what would I expect them to do and is it a role that will stand the test of time?</p>
<h1></h1>
<h2>They test</h2>
<p>I would always expect an Agile Test Lead to roll their sleeves up, get their hands dirty and contribute towards the release like every other team member. This includes testing during every sprint, on a daily basis, not just when the team is busy. If you are familiar with the analogy of the chicken and the pig that discuss opening a restaurant<sup>1</sup>, I believe that every member of the team should see the Agile Test Lead as one of the pigs, not a chicken.</p>
<h1></h1>
<h2>They demystify</h2>
<p>With the 10<sup>th</sup> anniversary of agile software development behind us<sup>2</sup>, you may be surprised to hear that I believe many agile practices remain a mystery to people, testers included. The mind shift for a tester that has never worked in an agile environment before can be significant, but this challenge is not restricted to those without experience. Due to the different practices that exist between one agile team and another and the different interpretations that teams make, even testers with previous agile experience can be left confused when they join a new agile team.</p>
<p>I believe a good Agile Test Lead should be able to help demystify agile testing practices, not just in terms of regurgitating what it says in the books (people can read the books for themselves), but through explaining why specific practices have been chosen and illustrating how those practices have been tailored for that particular project, paying careful attention to any deviating from the textbox definition.</p>
<p>It could be argued that the team as a whole should share the responsibility of guiding new members. I couldn&#8217;t agree more &#8211; this should never be a single person&#8217;s responsibility. But with so many overlapping agile practices related to testing I also find it useful to have an experienced voice that can help guide new testers as they join the team (and any other member of the team for that matter).</p>
<p>If you are curious about whether your project would benefit from such specialist knowledge, try this simple test. Ask a random member of your team if they can explain the differences between Test Driven Development, Behaviour Driven Development, Agile Acceptance Testing and Specification by Example. If you&#8217;re feeling really brave, go a step further and ask them how testing fits into each of these practices and which tools they would shortlist to support their implementation.</p>
<p>I rarely meet people that can answer these questions, but I frequently meet testers who want these questions answered. It is for this reason that if I were to hire an Agile Test Lead I would want them to be able to answer these questions, plus many other questions related to testing in an agile environment.</p>
<h1></h1>
<h2>They innovate</h2>
<p>Agile software development processes, such as XP and Scrum, have challenged the testing community to think about how we test.</p>
<p>As an example, there are few agile projects that can point to a hierarchy of test documentation that cascades from a Test Policy, to a Test Strategy, to a Master Test Plan to multiple Phase Test Plans. Why? Because, historically these documents have taken several days (sometimes several weeks) to produce, by which point the typical agile project is in their second, third or even fourth sprint. Consequently, most teams conclude that this style of test planning is not compatible with agile software development.</p>
<p>Another example is performance testing. It is common for teams to use a dedicated performance testing expert (sometimes in-house, sometimes external) to understand where their application fails to meet expectations. Combine the long lead time often associated with this style of resourcing with other restrictive factors often associated with performance testing (such as intermittently available test environments and limited test tool licenses) and you can see why performance testing can also be difficult to integrate into an agile project.</p>
<p>There are countless other testing practices that are at odds with agile software development, but many of them were never designed to be used in an agile environment. It is difficult to dismiss decades of tradition, especially if it is engrained in an organisation&#8217;s culture, but this is exactly what a good Agile Test Lead must be able to do. When a team is new to agile software development, few things can be more troublesome than trying to wrap traditional practices in sprints and iterations. It&#8217;s a tough job, but a good Agile Test Lead should know, and be able to communicate, which testing practices should be left in the past and which should be embraced in the present.</p>
<p>Unfortunately, this task isn&#8217;t simply a case of dismissing old practices and picking new practices from a predefined list. Such as list doesn&#8217;t exist and even it did, it wouldn&#8217;t contain all the practices that a team needs to be successful. It is for this reason that a good Agile Test Lead must recognise the need for innovation, be able to innovate themselves, and most importantly, champion and support innovation within the team related to testing. The most successful agile testing efforts I have seen have taken popular practices, tweaked them a little, before finally surrounded them with their own, home-grown practices. Unfortunately, many people still believe that testing is the same today as it has been for the last 20 years, but this has never been further from the truth. A good Agile Test Lead must not only recognise this personally, but also help others appreciate the innovative solutions that are often required to test in an agile environment.</p>
<h1></h1>
<h2>They improve</h2>
<p>One of the things I like about agile software development is the collaborative practices. Group bug hunts, pairing testers with developers and fleshing out stories as a team all help reduce the blame-game and improve the team <strong><em>as a whole<sup>3</sup></em></strong> by breaking down silos<sup>4</sup>.</p>
<p>But life is always a compromise and whilst working as a team can improve many aspects of software development it isn&#8217;t a silver bullet. In fact, it could be argued that spreading testers throughout a team (rather than having a dedicated test team) introduces its own set of problems, especially as teams grow or become geographically distributed.</p>
<p>One such problem is related to sharing knowledge between testers, improving testing practices and optimising the way that testers work. With this in mind, I believe that a good Agile Test Lead should be able to take a step back and look across every aspect of testing, identify areas of weakness and help facilitate their improvement, often by facilitating the personal development of one or more testers. This doesn&#8217;t need to be a time consuming task. It can be as simple as getting Tester A to talk to Tester B, arranging for Tester C to run an informal lunchtime learning session or opening budget holder&#8217;s eye to the need for training for Tester D.</p>
<p>Once a team is up and running with agile, I believe it is the tiny micro improvements that help a team reach hyper productivity<sup>5</sup>. What can seem like a small inconvenience can significantly affect a team&#8217;s velocity if they are left to fester. It is for this reason that I believe a good Agile Test Lead must be able to identify opportunities for improvements, however large or small. Below is a list of sample questions I would expect a Good Agile Test lead to ask, should the situation arise.</p>
<p style="margin-left:36pt;">- Is there a consistent way that testers install the latest build on their machine or is each release individually installed by hand?</p>
<p style="margin-left:36pt;">- Is there a reason why some testers are using JUnit, whilst others are using TestNG as their execution framework for automated tests?</p>
<p style="margin-left:36pt;">- Where does each tester store their test automation code, how often is it run, and most importantly, how often does it break and need to be repaired / maintenance?</p>
<h1></h1>
<h2>Are Agile Test Leads here to stay?</h2>
<p>I frequently meet people who refer to themselves as an Agile Test Lead, many of which fulfil a role similar to the one that I describe above. Was their role part of the original agile blueprint? &#8211; Certainty not. But I have no doubt that for many teams this is an essential role.</p>
<p>Being an Agile Test Lead is undoubtedly a practical role, but with subtle connotations of coaching too. I believe it is this coaching element that makes many Agile Test Leads tremendously valuable to the projects they serve, often more so than external agile test consultants who lack the day-to-day exposure necessary to understand a team&#8217;s subtle needs.</p>
<p>Are Agile Test Leads here to stay? &#8211; I think so, at least in the short to medium term. Agile software development has hit the mainstream, but many projects still have a long way to go. I have no doubt that a good Agile Test Lead can help a team progress towards a way of working that delivers the benefits associated with agile software development. Once a team has reached this milestone, maybe the need for the role becomes less important, but with so much change happening every day in the world of software development, who knows what he future will bring.</p>
<h1></h1>
<h2>References</h2>
<p>1 &#8211; <a href="http://en.wikipedia.org/wiki/The_Chicken_and_the_Pig">http://en.wikipedia.org/wiki/The_Chicken_and_the_Pig</a></p>
<p>A Wikipedia page explaining the chicken and pig analogy</p>
<p>2 &#8211; <a href="http://blog.mountaingoatsoftware.com/reflections-on-the-10-years-since-the-agile-manifesto">http://blog.mountaingoatsoftware.com/reflections-on-the-10-years-since-the-agile-manifesto</a></p>
<p>A blog by Mike Cohn, reflecting on the 10 years since the agile manifesto</p>
<p>3 &#8211; <a href="http://www.allaboutagile.com/lean-principle-7-optimise-the-whole/">http://www.allaboutagile.com/lean-principle-7-optimise-the-whole/</a></p>
<p>A blog by Kelly Waters in which he describes the problems associated with sub-optimisation</p>
<p>4 &#8211; <a href="http://testobsessed.com/blog/2010/07/19/why-test-automation-costs-too-much/">http://testobsessed.com/blog/2010/07/19/why-test-automation-costs-too-much/</a></p>
<p>A blog by Elisabeth Hendrickson in which she explains why silos can dramatically increase the cost of test automation</p>
<p>5 &#8211; <a href="http://www.theagileengineer.com/public/Home/Entries/2010/5/22_Hyper_Productive_Agile_Webinar_files/HyperProductiveAgile.pptx">http://www.theagileengineer.com/public/Home/Entries/2010/5/22_Hyper_Productive_Agile_Webinar_files/HyperProductiveAgile.pptx</a></p>
<p>A presentation by Ryan Shriver introducing hyper-productivity</p>
<br />Filed under: <a href='http://mattarcherblog.wordpress.com/category/agile-testing-2/'>Agile Testing</a>, <a href='http://mattarcherblog.wordpress.com/category/scrum-2/'>Scrum</a> Tagged: <a href='http://mattarcherblog.wordpress.com/tag/adopting-agile/'>adopting agile</a>, <a href='http://mattarcherblog.wordpress.com/tag/agile-methods/'>Agile Methods</a>, <a href='http://mattarcherblog.wordpress.com/tag/agile-software-development/'>agile software development</a>, <a href='http://mattarcherblog.wordpress.com/tag/agile-test-lead/'>agile test lead</a>, <a href='http://mattarcherblog.wordpress.com/tag/agile-testing/'>agile testing</a>, <a href='http://mattarcherblog.wordpress.com/tag/scrum/'>scrum</a>, <a href='http://mattarcherblog.wordpress.com/tag/test-lead/'>test lead</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattarcherblog.wordpress.com/799/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattarcherblog.wordpress.com/799/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattarcherblog.wordpress.com/799/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattarcherblog.wordpress.com/799/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattarcherblog.wordpress.com/799/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattarcherblog.wordpress.com/799/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattarcherblog.wordpress.com/799/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattarcherblog.wordpress.com/799/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattarcherblog.wordpress.com/799/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattarcherblog.wordpress.com/799/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattarcherblog.wordpress.com/799/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattarcherblog.wordpress.com/799/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattarcherblog.wordpress.com/799/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattarcherblog.wordpress.com/799/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=799&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattarcherblog.wordpress.com/2011/12/15/does-a-scrum-team-need-an-agile-test-lead/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/69f391b1fd47bdae2a7402c4647fff31?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Matt Archer</media:title>
		</media:content>
	</item>
		<item>
		<title>Risk-Based, Cross-Browser Testing with Scrum</title>
		<link>http://mattarcherblog.wordpress.com/2011/11/08/risk-based-cross-browser-testing-with-scrum/</link>
		<comments>http://mattarcherblog.wordpress.com/2011/11/08/risk-based-cross-browser-testing-with-scrum/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 12:03:38 +0000</pubDate>
		<dc:creator>Matt Archer</dc:creator>
				<category><![CDATA[Testing]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Agile Testing]]></category>
		<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[software quality]]></category>
		<category><![CDATA[Test Strategy]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[agile testing]]></category>
		<category><![CDATA[riskk based testing]]></category>
		<category><![CDATA[Risk-Based Cross-Browser Testing with Scrum]]></category>
		<category><![CDATA[web based testing]]></category>
		<category><![CDATA[Agile Methods]]></category>
		<category><![CDATA[cross browser testing]]></category>
		<category><![CDATA[cross browser]]></category>
		<category><![CDATA[test site on different browsers]]></category>
		<category><![CDATA[Browser Compatibility]]></category>
		<category><![CDATA[Cross Browser Compatibility]]></category>

		<guid isPermaLink="false">http://mattarcherblog.wordpress.com/?p=745</guid>
		<description><![CDATA[Risk Based Testing In its heyday, risk-based testing1 was the buzz-word of the industry; every tester was talking about it and every project had it as part of their testing strategy (even if it was only given lip-service in a superficial strategy document somewhere). Today, it is all about being lean2 and agile3 &#8211; testing [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=745&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2></h2>
<h2><strong>Risk Based Testing</strong><span style="text-decoration:underline;"><strong><br />
</strong></span></h2>
<p>In its heyday, risk-based testing<sup>1</sup> was the buzz-word of the industry; every tester was talking about it and every project had it as part of their testing strategy (even if it was only given lip-service in a superficial strategy document somewhere).</p>
<p>Today, it is all about being lean<sup>2</sup> and agile<sup>3</sup> &#8211; testing early, testing often and having a zero tolerance to defects. It&#8217;s a good way of working, but have the guiding principles associated with agile software development made us lose track of one of the most important facts of software testing? That <strong><em>ensuring</em></strong> quality by testing <strong><em>everything</em></strong> is impossible. That even at its best, testing is a risk reduction exercise and different projects have wildly different tolerances to risk.</p>
<p>Many of the Scrum teams I join follow a delivery pattern that is made up of a number of internal releases, followed by a final public release. In terms of timeframes, this could mean an internal release every 2 weeks over the course of 4 months (for example) before a final public release at the end of that 4 month period. When it comes to planning the testing effort, this delivery pattern introduces an extra dimension that is rarely discussed on agile projects of this nature. That dimension is time.</p>
<p>In situations such as these, our first option is to ignore the total amount of time available to test (typically multiple sprints&#8217; worth) and pretend that the software produced each sprint will be publically released. By working in this way we force ourselves to verify every aspect of quality during each sprint and to the best of our ability keep the risk of unknown bugs to a minimum.</p>
<p>Our second option is to investigate this extra dimension and postpone testing some aspects of quality until a later sprint, consciously accepting the level of risk associated with that decision.</p>
<p>You&#8217;re eyes are not deceiving you; I did just hint at an approach to testing on an agile project whereby every aspect of quality isn&#8217;t tested every sprint. I&#8217;ve had this conversation with people face-to-face so I can imagine what some of you may be thinking.</p>
<p style="margin-left:36pt;">&#8220;You&#8217;re transitioning from a waterfall model and you&#8217;re currently going through the &#8216;w-agile&#8217; phase&#8221; <sup>4</sup></p>
<p style="margin-left:36pt;">&#8220;You&#8217;re not taking advantage of test automation properly&#8221; <sup>5</sup></p>
<p style="margin-left:36pt;">&#8220;You need to get testers involved earlier in the lifecycle&#8221;</p>
<p>The majority of comments I receive suggest that teams who delay some of their testing until a later sprint are suffering from a process failure that should be fixed by adopting a new way of working. But does every team that delays testing need to be fixed? Or are they already working successfully by deliberately applying a risk-based approach to testing based upon their available time, tools, skills and project&#8217;s tolerance to risk? Have they, quite rightly, adapted their testing to their context<sup>6</sup>?</p>
<p>What follows is an explanation of risk-based browser-compatibility testing on a Scrum project. I must stress that there are countless ways of applying risk-based testing, each with their own subtle twists and nuances. The approach below is one I have found useful in the past. I hope you find it useful in creating your own unique way of working.</p>
<h2></h2>
<h2><strong>Estimating Risk</strong><span style="text-decoration:underline;"><strong><br />
</strong></span></h2>
<p>At the heart of risk-based testing is the idea that we cannot test everything in every possible way and consequently some things must be tested less thoroughly and/or frequently than others. With this idea in mind, which browsers should be near the top of our testing to-do list and which browsers can be left untested until a later sprint, tested less frequently or tested less thoroughly?</p>
<p>To answer this question, we need to decide how to estimate the level of risk associated with each browser. The majority of techniques used to estimate risk are based upon two parameters. Wikipedia<sup>7</sup> nicely combines these two parameters into the formula below. By introducing this formula, I am able to replace &#8220;risk&#8221; (a fairly vague and ambiguous concept) with two scales upon which I can more easily rank one browser against another.</p>
<p style="text-align:center;">Risk = (<strong><em>probability</em></strong> of the accident occurring) x (<strong><em>expected loss</em></strong> in case of the accident)</p>
<p>When it comes to estimating the &#8220;expected loss&#8221; caused by accidentally releasing a bug into the wild I like to use the popularity of a browser. I use this indicative measure because I believe a bug that presents itself in a high usage browser (such as IE8) is worse than a bug of similar priority that presents itself in a low usage browser (such as IE5.5). I also like this measure because of the correlation that typically exists between the number of users who enjoy a successful visit to a website and its reason for existing (direct product sales, lead generation or positive brand awareness, for example).</p>
<p>Whilst an important indicator, I rarely find a browser&#8217;s popularity is enough to prioritise it against its peers, especially when working with multiple browsers with similar usage profiles. As an example, think back a couple of years to when IE6, IE7 and IE8 each held a similar market share (~10%-15% in late 2009). Now image that you had been asked to test an AJAX intensive website with an extremely rich and interactive UI. If you were going to get a free cup of coffee for every P1 browser compatibility bug you found, but only had 30 minutes to test, where would you start? I&#8217;d choose IE6 every time and I don&#8217;t know many testers who wouldn&#8217;t (other than those who don&#8217;t like free coffee!). It is for this reason that I believe the &#8220;probability&#8221; of a browser compatibility bug existing is also an important part of prioritising the testing of one browser over another.</p>
<p>Unlike &#8220;expected loss&#8221;, I like to consider a variety of factors when estimating the &#8220;probability&#8221; of a bug being discovered in a website whilst using a particular browser. Examples include the age of a browser, the default browser used by the team and any similarities between the browser I am currently estimating and the list of browsers already marked as a high priority or already tested. My reasons for these choices are listed below.</p>
<p style="margin-left:36pt;">I think about the age of a browser because both older browsers and cutting edge browsers often work in ways that are less frequently considered whilst designing a website.</p>
<p style="margin-left:36pt;">I think about the default browser(s) used by the team because people will often stumble across (and fix) compatibility issues with their own browser, reducing the chance of finding compatibility issues with that browser during dedicated browser compatibility testing.</p>
<p style="margin-left:36pt;">I also think about the similarities between the browser I am evaluating and the list of browsers that I have already deemed to be high priority or have already tested in a previous sprint(s). Why? Because if I have decided to thoroughly test Firefox 3.6.13, I am unlikely to find additional bugs if I test Firefox 3.6.14, compared to if I tested a completely different browser, potentially on an entirely different operating system, such as Safari 5 on a Mac OS.</p>
<p>Armed with this approach to estimating the potential impact caused by a browser compatibility bug and the probability of such a bug existing, I can rank the different browsers I want to consider for testing. At this stage, my preference is to use &#8220;high&#8221;, &#8220;medium&#8221; and &#8220;low&#8221; categories rather than absolute values. The table below contains example estimates for each browser. I must stress that such a table is specific to a particular project. To highlight this point, consider the range of browsers a website may encounter if it was built for public consumption versus another website built for internal use within a large corporate organisation. Before even starting to prioritise one browser against another, these two projects are likely to have very different lists of browsers that they intend to support.</p>
<div>
<table style="border-collapse:collapse;" border="0" align="center">
<col style="width:143px;" />
<col style="width:172px;" />
<col style="width:162px;" />
<col style="width:162px;" />
<tbody valign="top">
<tr style="height:21px;background:#bfbfbf;">
<td style="padding-left:7px;padding-right:7px;border:1pt solid;text-align:center;" valign="middle"><span style="color:black;"><strong>Browser</strong></span></td>
<td style="padding-left:7px;padding-right:7px;border-top:solid 1pt;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:center;"><span style="color:black;"><strong>Probability of Discovering a Bug</strong></span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:solid 1pt;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:center;"><span style="color:black;"><strong>Potential Impact if a Bug Exists</strong></span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:solid 1pt;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:center;"><span style="color:black;"><strong>Risk</strong></span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid 1pt;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle"><span style="color:black;">Internet Explorer 8</span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">Medium</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">High</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;">
<p style="text-align:right;"><span style="color:black;">High</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid 1pt;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle"><span style="color:black;">Internet Explorer 7</span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">High</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">Medium</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;">
<p style="text-align:right;"><span style="color:black;">High</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid 1pt;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle"><span style="color:black;">Firefox 6</span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">Medium</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">Medium</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;">
<p style="text-align:right;"><span style="color:black;">Medium</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid 1pt;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle"><span style="color:black;">Internet Explorer 9</span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">Medium</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">Medium</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;">
<p style="text-align:right;"><span style="color:black;">Medium</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid 1pt;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle"><span style="color:black;">Safari 5</span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">Medium</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">Medium</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;">
<p style="text-align:right;"><span style="color:black;">Medium</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid 1pt;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle"><span style="color:black;">Chrome 13</span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">Low</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">High</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;">
<p style="text-align:right;"><span style="color:black;">Low</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid 1pt;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle"><span style="color:black;">Firefox 5</span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">Low</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">High</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;">
<p style="text-align:right;"><span style="color:black;">Low</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid 1pt;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle"><span style="color:black;">Internet Explorer 6</span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">High</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">Low</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;">
<p style="text-align:right;"><span style="color:black;">Low</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid 1pt;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle"><span style="color:black;">Firefox 3.6</span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">Low</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">Medium</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;">
<p style="text-align:right;"><span style="color:black;">Very Low</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid 1pt;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle"><span style="color:black;">Chrome 12</span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">Low</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">Medium</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;">
<p style="text-align:right;"><span style="color:black;">Very Low</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid 1pt;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle"><span style="color:black;">Firefox 4</span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">Low</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;" valign="middle">
<p style="text-align:right;"><span style="color:black;">Low</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 1pt;border-right:solid 1pt;">
<p style="text-align:right;"><span style="color:black;">Very Low</span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>I sometimes find it useful to show the same information graphically to help me explain a particular test strategy to senior management or other members of the team. The same information as in the table above is also represented graphically below. I like this style of presentation due to the colours. If you have one or more browsers in the red or amber area then this is probably where you should turn your thoughts first. Browsers in the green area can then follow, as desired.</p>
<p style="text-align:center;"><a href="http://mattarcherblog.files.wordpress.com/2011/11/risk-based-testing-cross-browser-browser-compatibility-matrix.jpg"><img class="aligncenter size-full wp-image-773" title="Risk-Based Browser-Compatibility Matrix" src="http://mattarcherblog.files.wordpress.com/2011/11/risk-based-testing-cross-browser-browser-compatibility-matrix.jpg" alt="Risk-Based Browser-Compatibility Matrix" width="633" height="633" /></a></p>
<h2></h2>
<h2><strong>Sprint Planning and Release Planning</strong><span style="text-decoration:underline;"><strong><br />
</strong></span></h2>
<p>Now comes the tricky part. Based upon their associated risk, how often should each browser be tested and to what level of thoroughness? As I suggested at the beginning of this post, if a website will not be publically released until several sprints into the future, we have a greater number of options available.</p>
<p>At one end of the spectrum are projects that set aside resources every sprint to test every browser for incompatibility bugs, ranging from the blatantly obvious to single pixel misalignments. This is an extremely risk averse, but also very costly approach to understanding what browser compatibility bugs exist. Someone related to this project is likely to have high expectations when it comes to browser compatibility.</p>
<p>At the other end of the spectrum are projects that do not perform any browser compatibility testing until the final sprint before a public release, at which point their testing is limited to traversing one or two paths using the top three browsers, whilst scanning for obvious visual anomalies. These projects are likely to have a high tolerance to risk (whether they have consciously chosen to accept it is another matter).</p>
<p>Most of the teams I work with find themselves somewhere in the middle, but typically not before a healthy series of arguments and counter arguments take place in favour of different testing profiles, each with their own level of risk. Below is an example of how I like to represent this information as a consensus is thrashed out within the team. In my experience, low-tech works best, so grab a white board and some markers and talk through the various options that are compatible with your available time, tools, skills and project&#8217;s tolerance to risk.</p>
<p><a href="http://mattarcherblog.files.wordpress.com/2011/11/risk-based-testing-cross-browser-browser-compatibility-scrum-sprint-planning-and-release-planning-matrix.jpg"><img class="aligncenter size-full wp-image-774" title="Testing Profile for Browser Compatibility Testing Across Multiple Sprints (Scrum)" src="http://mattarcherblog.files.wordpress.com/2011/11/risk-based-testing-cross-browser-browser-compatibility-scrum-sprint-planning-and-release-planning-matrix.jpg" alt="Testing Profile for Browser Compatibility Testing Across Multiple Sprints (Scrum)" width="748" height="474" /></a></p>
<p>Finally, remember that whilst this kind of testing profile deliberately spans multiple sprints, it is not intended to be fixed in stone during sprint 1 and religiously adhered to until the website is externally released. Truth be told, your original estimates are likely to be wrong, so be prepared to tweak the priority associated with each browser from one sprint to the next.</p>
<h2></h2>
<h2><strong>References</strong><span style="text-decoration:underline;"><strong><br />
</strong></span></h2>
<p>1 – An article written by James Bach on risk based testing.</p>
<p><a href="http://www.satisfice.com/articles/hrbt.pdf">http://www.satisfice.com/articles/hrbt.pdf</a></p>
<p>2 – A blog post by Alan Richardson (a.k.a. &#8220;the Evil Tester&#8221;) in which he describes how to apply one of the principles of lean (avoiding waste) to testing.</p>
<p><a href="http://www.eviltester.com/index.php/2008/02/20/some-notes-on-software-testing-waste-my-lean-perspective/">http://www.eviltester.com/index.php/2008/02/20/some-notes-on-software-testing-waste-my-lean-perspective/</a></p>
<p>3 – A good overview of agile testing by Elisabeth Hendrickson.</p>
<p><a href="http://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf">http://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf</a></p>
<p>4a – A blog post by Rachel Davies in which she describes some of the signs that indicate a team could be following &#8216;w-agile&#8217;.</p>
<p><a href="http://agilecoach.typepad.com/agile-coaching/2010/03/agile-or-wagile.html">http://agilecoach.typepad.com/agile-coaching/2010/03/agile-or-wagile.html</a></p>
<p>4b – Another blog post about &#8216;w-agile&#8217;, this time by Rebecca Porterfield on the ThoughtWorks community site. In this post Rebecca takes the position that there is both &#8216;good&#8217; and &#8216;bad&#8217; &#8216;w-agile&#8217;. A belief I share based upon my own agile transformation experiences.</p>
<p><a href="http://community.thoughtworks.com/posts/ffc85995c8">http://community.thoughtworks.com/posts/ffc85995c8</a></p>
<p>5 – A blog post by Mike Cohn in which he describes an approach to test automation that is frequently used on agile projects. Notice, similar to other test automation models proposed for agile projects, the focus is on &#8216;functional&#8217; test automation. How are the non-functional aspects tested?  If &#8216;manually&#8217; is the answer, this is where risk based testing can help.</p>
<p><a href="http://blog.mountaingoatsoftware.com/the-forgotten-layer-of-the-test-automation-pyramid">http://blog.mountaingoatsoftware.com/the-forgotten-layer-of-the-test-automation-pyramid</a>.</p>
<p>6 – An introduction to context-driven testing, at the heart of which is the principle that there are no testing best practices.</p>
<p><a href="http://www.context-driven-testing.com">http://www.context-driven-testing.com</a></p>
<p>7 – The Wikipedia page for &#8216;Risk&#8217;.</p>
<p><a href="http://en.wikipedia.org/wiki/Risk">http://en.wikipedia.org/wiki/Risk#Mathematical_formulations</a></p>
<br />Filed under: <a href='http://mattarcherblog.wordpress.com/category/agile-testing-2/'>Agile Testing</a>, <a href='http://mattarcherblog.wordpress.com/category/scrum-2/'>Scrum</a>, <a href='http://mattarcherblog.wordpress.com/category/testing/'>Testing</a> Tagged: <a href='http://mattarcherblog.wordpress.com/tag/agile/'>agile</a>, <a href='http://mattarcherblog.wordpress.com/tag/agile-methods/'>Agile Methods</a>, <a href='http://mattarcherblog.wordpress.com/tag/agile-testing/'>agile testing</a>, <a href='http://mattarcherblog.wordpress.com/tag/browser-compatibility/'>Browser Compatibility</a>, <a href='http://mattarcherblog.wordpress.com/tag/cross-browser/'>cross browser</a>, <a href='http://mattarcherblog.wordpress.com/tag/cross-browser-compatibility/'>Cross Browser Compatibility</a>, <a href='http://mattarcherblog.wordpress.com/tag/cross-browser-testing/'>cross browser testing</a>, <a href='http://mattarcherblog.wordpress.com/tag/risk-based-cross-browser-testing-with-scrum/'>Risk-Based Cross-Browser Testing with Scrum</a>, <a href='http://mattarcherblog.wordpress.com/tag/riskk-based-testing/'>riskk based testing</a>, <a href='http://mattarcherblog.wordpress.com/tag/software-quality/'>software quality</a>, <a href='http://mattarcherblog.wordpress.com/tag/software-testing/'>Software Testing</a>, <a href='http://mattarcherblog.wordpress.com/tag/test-site-on-different-browsers/'>test site on different browsers</a>, <a href='http://mattarcherblog.wordpress.com/tag/test-strategy/'>Test Strategy</a>, <a href='http://mattarcherblog.wordpress.com/tag/web-based-testing/'>web based testing</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattarcherblog.wordpress.com/745/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattarcherblog.wordpress.com/745/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattarcherblog.wordpress.com/745/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattarcherblog.wordpress.com/745/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattarcherblog.wordpress.com/745/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattarcherblog.wordpress.com/745/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattarcherblog.wordpress.com/745/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattarcherblog.wordpress.com/745/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattarcherblog.wordpress.com/745/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattarcherblog.wordpress.com/745/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattarcherblog.wordpress.com/745/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattarcherblog.wordpress.com/745/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattarcherblog.wordpress.com/745/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattarcherblog.wordpress.com/745/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=745&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattarcherblog.wordpress.com/2011/11/08/risk-based-cross-browser-testing-with-scrum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/69f391b1fd47bdae2a7402c4647fff31?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Matt Archer</media:title>
		</media:content>

		<media:content url="http://mattarcherblog.files.wordpress.com/2011/11/risk-based-testing-cross-browser-browser-compatibility-matrix.jpg" medium="image">
			<media:title type="html">Risk-Based Browser-Compatibility Matrix</media:title>
		</media:content>

		<media:content url="http://mattarcherblog.files.wordpress.com/2011/11/risk-based-testing-cross-browser-browser-compatibility-scrum-sprint-planning-and-release-planning-matrix.jpg" medium="image">
			<media:title type="html">Testing Profile for Browser Compatibility Testing Across Multiple Sprints (Scrum)</media:title>
		</media:content>
	</item>
		<item>
		<title>Sharing BDD specifications between testers and developers using StoryQ</title>
		<link>http://mattarcherblog.wordpress.com/2011/07/03/sharing-bdd-specifications-between-testers-and-developers-using-storyq/</link>
		<comments>http://mattarcherblog.wordpress.com/2011/07/03/sharing-bdd-specifications-between-testers-and-developers-using-storyq/#comments</comments>
		<pubDate>Sun, 03 Jul 2011 22:12:55 +0000</pubDate>
		<dc:creator>Matt Archer</dc:creator>
				<category><![CDATA[Testing]]></category>
		<category><![CDATA[Behaviour Driven Development (BDD)]]></category>
		<category><![CDATA[Agile Testing]]></category>
		<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[Software Testing Tools]]></category>
		<category><![CDATA[software quality]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[Functional Testing]]></category>
		<category><![CDATA[Softare Test Automation]]></category>
		<category><![CDATA[Test Automation]]></category>
		<category><![CDATA[Automated Software Testing]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[Selenium Test Automation]]></category>
		<category><![CDATA[Selenium Rc]]></category>
		<category><![CDATA[Selenium Remote Control]]></category>
		<category><![CDATA[Selenium Tests]]></category>
		<category><![CDATA[Watir And Selenium]]></category>
		<category><![CDATA[Selenium And Watir]]></category>
		<category><![CDATA[Selenium Rc Automation]]></category>
		<category><![CDATA[StoryQ]]></category>
		<category><![CDATA[BDD]]></category>
		<category><![CDATA[Business Driven Development]]></category>
		<category><![CDATA[agile testing]]></category>
		<category><![CDATA[Behaviour Driven Development]]></category>

		<guid isPermaLink="false">http://mattarcherblog.wordpress.com/?p=638</guid>
		<description><![CDATA[From what I&#8217;ve seen, teams that decide to follow an agile way of working quite quickly manage to adopt the frequently cited agile practices, apart from one; the multi-skilled team1. As a result, rather than working in a way where anyone can (and is encouraged to) do anything to help the project succeed, many projects [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=638&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>From what I&#8217;ve seen, teams that decide to follow an agile way of working quite quickly manage to adopt the frequently cited agile practices, apart from one; the multi-skilled team<sup>1</sup>. As a result, rather than working in a way where anyone can (and is encouraged to) do anything to help the project succeed, many projects still have what they refer to as &#8220;developers&#8221; and &#8220;testers&#8221;. Don&#8217;t get me wrong, from what I&#8217;ve seen this isn&#8217;t an agile adoption killer, but it does bring with it some challenges in terms of ownership / responsibility (call it what you will), around some of the newer agile practices where things are still evolving<sup>2</sup>, like Behaviour <em></em>Driven Development (BDD).</p>
<p>When it comes to adoption, BDD can lead to some interesting discussions due its wide reaching influence. As a practice, BDD can help agree the scope with the customer, act as requirements for developers and help testers verify the solution. It is this cross cutting nature that can leave multiple members of the team thinking it is <strong><em>their</em></strong> practice to champion and adopt. Individuals from any corner of the team could easily find themselves at a conference (supposedly focused on their specialism) listening to a talk on BDD, in some instances blissfully unaware that other members of their team have received a similar presentation on BDD, just with a subtly different spin.</p>
<p>So if we focus solely on the test creation part of BDD, who is responsible for creating the automated test to prove that a feature has been built to the agreed specification?  My opinion is that both developers and testers have their part to play, each with their own unique skills to contribute, but to date I haven&#8217;t seen a truly integrated effort between a group of developers and a group of testers to implement BDD, at least not one where everyone helps both define and verify specifications. What follows below is a way of working that I plan to try when I get the chance. If you have tried something similar I would love to hear from you.</p>
<p>Regardless of who ultimately creates the automated test, every BDD cycle needs to start with a specification. A simple example is included below.</p>
<blockquote>
<p style="margin-left:36pt;"><strong><em>In order to keep my financial information secure<br />
</em></strong></p>
<p style="margin-left:36pt;"><strong><em>As a registered user<br />
</em></strong></p>
<p style="margin-left:36pt;"><strong><em>I want to be asked for a username and password when I visit my online banking website<br />
</em></strong></p>
<p style="margin-left:36pt;"><strong><em>With scenario &#8211; &#8220;Incorrect password&#8221;<br />
</em></strong></p>
<p style="margin-left:72pt;"><strong><em>Given a registered user<br />
</em></strong></p>
<p style="margin-left:72pt;"><strong><em>When they enter an incorrect password<br />
</em></strong></p>
<p style="margin-left:72pt;"><strong><em>Then they should be informed that they have not been granted access<br />
</em></strong></p>
</blockquote>
<p>Once we have a specification, we need to represent that specification in a tool that can ultimately make it &#8220;executable&#8221;. I&#8217;ve opted to use StoryQ<sup>4</sup> (shown below is an abstract class I have written to represent my specification).</p>
<p><pre class="brush: csharp;">
    [TestClass]
    abstract public class UserLoginSpec
    {
        [TestMethod]
        public void LoginAsAnInvalidUser()
        {
            new Story(&quot;User Login&quot;)
            .InOrderTo(&quot;Keep my personal financial information secure&quot;)
            .AsA(&quot;Registered User&quot;)
            .IWant(&quot;To be asked for a username and password when I visit my online banking website&quot;)
            .WithScenario(&quot;Incorect password&quot;)
            .Given(ARegisteredUser)
            .When(TheyEnterAnIncorrectPassword)
            .Then(TheyShouldSeeAnErrorMessageStatingTheyHaveNotBeenGrantedAccess)
            .Execute();
        }

        abstract public void ARegisteredUser();
        abstract public void TheyEnterAnIncorrectPassword();
        abstract public void TheyShouldSeeAnErrorMessageStatingTheyHaveNotBeenGrantedAccess();
    }
</pre></p>
<p style="text-align:center;"><em><strong>Code Sample 1 &#8211; UserLogin Specification</strong></em></p>
<p>Anyone who has used StoryQ, or any other BBD framework for that matter, will know that we now need to write some methods to wire our specification to our solution. For arguments sake, let&#8217;s assume we&#8217;re creating a Microsoft ASP.NET MVC application. Who would be the best person in the team to implement these methods – a developer or a tester?</p>
<p>In this situation, I can&#8217;t help thinking, why not both? Why not let developers utilise their expertise to implement our specification methods in a way that interacts with our solution below the UI (mocking where necessary), whilst leaving the &#8220;testers&#8221; to use their expertise to implement our specification methods in a way that interacts with our solution above the UI? Both sets of methods could implement the same specification, so the project only has to maintain one version of what the application should do (a single version of the truth).</p>
<p>I&#8217;ve included below an example of what this would look like in code. Notice how both test classes inherit from the same specification class and override each method to create their own version of the test (above and below the UI). I&#8217;ve used the sample ASP.NET MVC application as the basis for my example. In case you&#8217;re wondering, the above UI version of the test is using the Selenium<sup>3</sup> API to provide UI level automation.</p>
<p><pre class="brush: csharp;">
    public class UserLogin_BelowUI : UserLoginSpec
    {
        AccountController accountController;
        LogOnModel logOnModel;

        public override void ARegisteredUser()
        {
            logOnModel = new LogOnModel()
            {
                UserName = &quot;someUser&quot;,
                Password = &quot;badPassword&quot;,
                RememberMe = false
            };
        }

        public override void TheyEnterAnIncorrectPassword()
        {
            accountController = new AccountController()
            {
                FormsService = new MockFormsAuthenticationService(),
                MembershipService = new MockMembershipService()
            };

            accountController.LogOn(logOnModel, null);
        }

        public override void TheyShouldSeeAnErrorMessageStatingTheyHaveNotBeenGrantedAccess()
        {
            Assert.AreEqual(&quot;incorrect password&quot;, accountController.ModelState[&quot;&quot;].Errors[0].ErrorMessage);
        }
    }
</pre></p>
<p style="text-align:center;"><em><strong>Code Sample 2 &#8211; UserLogin Below UI Test</strong></em></p>
<p style="text-align:center;"><em><strong><br />
</strong></em></p>
<p><pre class="brush: csharp;">
    public class UserLogin_AboveUI : UserLoginSpec
    {
        UserData testUserData;

        public override void ARegisteredUser()
        {
            testUserData = TestUserFactory.GetUserWithIncorrectPassword();
        }

        public override void TheyEnterAnIncorrectPassword()
        {
            browser.Click(&quot;link=Log On&quot;);

            browser.Type(&quot;UserName&quot;, testUserData.Username);
            browser.Type(&quot;Password&quot;, testUserData.Password);

            browser.Click(&quot;//input[@value='Log On']&quot;);
        }

        public override void TheyShouldSeeAnErrorMessageStatingTheyHaveNotBeenGrantedAccess()
        {
            Assert.IsTrue(browser.IsTextPresent(&quot;incorrect password&quot;));
        }
    }
</pre></p>
<p style="text-align:center;"><em><strong>Code Sample 3 &#8211; UserLogin Above UI Test</strong></em></p>
<p style="text-align:center;">.</p>
<p style="text-align:center;"><img class="aligncenter" title="Visual Studio Test View Showing StoryQ Tests Above and Below The User Interface" src="http://mattarcherblog.files.wordpress.com/2011/07/070311_2212_sharingbdds11.png?w=454&#038;h=420" alt="Visual Studio Test View Showing StoryQ Tests Above and Below The User Interface" width="454" height="420" /></p>
<p style="text-align:center;"><em><strong>UserLogin Above UI Test and UserLogin Below UI Test in Visual Studio Test Explorer<br />
</strong></em></p>
<p>But is this duplication? Will a project benefit from having a test that checks a specification below the UI and another test that checks the same specification above the UI?  The table below contains examples of different quality related questions a project could ask themselves and the degree to which each type of test can help answer that question (the table is incomplete; many more examples could be added). I have colour coded the cells in the table to show my preferred type of test for a particular question (those coloured green being my preference). As you can see, tests that are good at answering one question are not so good, or completely incapable, of answering others. This is why I believe a joint effort between testers and developers to check each specification above and below the UI is worth considering.</p>
<div style="margin-left:4pt;">
<table style="border-collapse:collapse;" border="0">
<col style="width:341px;" />
<col style="width:132px;" />
<col style="width:132px;" />
<tbody valign="top">
<tr style="height:20px;background:none repeat scroll 0 0 #d9d9d9;">
<td style="padding-left:7px;padding-right:7px;border:.5pt solid;" valign="middle">
<p style="text-align:center;"><span style="color:black;"><strong>Quality question</strong></span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-color:0;border-style:solid solid solid none;border-width:.5pt .5pt .5pt medium;" valign="middle">
<p style="text-align:center;"><span style="color:black;"><strong>Would an &#8216;Above UI&#8217; test answer this question?</strong></span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-color:0;border-style:solid solid solid none;border-width:.5pt .5pt .5pt medium;" valign="middle">
<p style="text-align:center;"><span style="color:black;"><strong>Would a &#8216;Below UI&#8217; test answer this question?</strong></span></p>
</td>
</tr>
<tr style="height:20px;">
<td style="padding-left:7px;padding-right:7px;border-color:0;border-style:none solid solid;border-width:medium .5pt .5pt;" valign="bottom"><span style="color:black;">Does the AJAX alter the DOM in the correct way?</span></td>
<td style="background:none repeat scroll 0 0 #00b050;padding-left:7px;padding-right:7px;border-color:0;border-style:none solid solid none;border-width:medium .5pt .5pt medium;" valign="bottom"><span style="color:black;">Yes</span></td>
<td style="background:none repeat scroll 0 0 red;padding-left:7px;padding-right:7px;border-color:0;border-style:none solid solid none;border-width:medium .5pt .5pt medium;" valign="bottom"><span style="color:black;">No</span></td>
</tr>
<tr style="height:20px;">
<td style="padding-left:7px;padding-right:7px;border-color:0;border-style:none solid solid;border-width:medium .5pt .5pt;" valign="bottom"><span style="color:black;">Are the UI elements mapped to the model correctly?</span></td>
<td style="background:none repeat scroll 0 0 #00b050;padding-left:7px;padding-right:7px;border-color:0;border-style:none solid solid none;border-width:medium .5pt .5pt medium;" valign="bottom"><span style="color:black;">Yes</span></td>
<td style="background:none repeat scroll 0 0 red;padding-left:7px;padding-right:7px;border-color:0;border-style:none solid solid none;border-width:medium .5pt .5pt medium;" valign="bottom"><span style="color:black;">No</span></td>
</tr>
<tr style="height:20px;">
<td style="padding-left:7px;padding-right:7px;border-color:0;border-style:none solid solid;border-width:medium .5pt .5pt;" valign="bottom"><span style="color:black;">Does my website work on multiple browsers?</span></td>
<td style="background:none repeat scroll 0 0 #00b050;padding-left:7px;padding-right:7px;border-color:0;border-style:none solid solid none;border-width:medium .5pt .5pt medium;" valign="bottom"><span style="color:black;">Yes</span></td>
<td style="background:none repeat scroll 0 0 red;padding-left:7px;padding-right:7px;border-color:0;border-style:none solid solid none;border-width:medium .5pt .5pt medium;" valign="bottom"><span style="color:black;">No</span></td>
</tr>
<tr style="height:20px;">
<td style="padding-left:7px;padding-right:7px;border-color:0;border-style:none solid solid;border-width:medium .5pt .5pt;" valign="bottom"><span style="color:black;">Is the business logic correct?</span></td>
<td style="background:none repeat scroll 0 0 red;padding-left:7px;padding-right:7px;border-color:0;border-style:none solid solid none;border-width:medium .5pt .5pt medium;" valign="bottom"><span style="color:black;">Yes (but slow)</span></td>
<td style="background:none repeat scroll 0 0 #00b050;padding-left:7px;padding-right:7px;border-color:0;border-style:none solid solid none;border-width:medium .5pt .5pt medium;" valign="bottom"><span style="color:black;">Yes (fast)</span></td>
</tr>
<tr style="height:20px;">
<td style="padding-left:7px;padding-right:7px;border-color:0;border-style:none solid solid;border-width:medium .5pt .5pt;" valign="bottom"><span style="color:black;">Has my latest check-in broken the build?</span></td>
<td style="background:none repeat scroll 0 0 red;padding-left:7px;padding-right:7px;border-color:0;border-style:none solid solid none;border-width:medium .5pt .5pt medium;" valign="bottom"><span style="color:black;">Yes (but slow)</span></td>
<td style="background:none repeat scroll 0 0 #00b050;padding-left:7px;padding-right:7px;border-color:0;border-style:none solid solid none;border-width:medium .5pt .5pt medium;" valign="bottom"><span style="color:black;">Yes (fast)</span></td>
</tr>
<tr style="height:20px;">
<td style="padding-left:7px;padding-right:7px;border-color:0;border-style:none solid solid;border-width:medium .5pt .5pt;" valign="bottom"><span style="color:black;">Does my error handling work as expected?</span></td>
<td style="background:none repeat scroll 0 0 red;padding-left:7px;padding-right:7px;border-color:0;border-style:none solid solid none;border-width:medium .5pt .5pt medium;" valign="bottom"><span style="color:black;">Yes (but hard)</span></td>
<td style="background:none repeat scroll 0 0 #00b050;padding-left:7px;padding-right:7px;border-color:0;border-style:none solid solid none;border-width:medium .5pt .5pt medium;" valign="bottom"><span style="color:black;">Yes (easy)</span></td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>There is, of course, nothing to say that every specification must be tested both above and below the UI. If a particular specification doesn&#8217;t lend itself to being tested either above or below the UI, the team can make the conscious choice to create a single test in this instance, possibly adding an attribute to the other test class (or specification class) to signal that a test has been consciously skipped rather than forgotten. On the topic of tracking and reporting, a team could also use some simple reflection to keep track of what specifications were being checked above the UI, below the UI or both. With something like this is place, any member of the team could add a specification and those responsible for creating tests would quickly realise there was a gap to fill. Even the results of exploratory testing or good old fashion bug hunts could be incorporated in this way.</p>
<p>There is also nothing to say that a UI-level test has to do <strong><em>everything</em></strong> above the UI. If the &#8220;Given&#8221; part of the test is particularly difficult to reproduce above the UI then that part of the test could be performed below the UI. For example, a test could directly manipulate the database to setup a particular system state, before performing an action and checking the expected result above the UI.</p>
<p><strong><span style="text-decoration:underline;"><br />
</span></strong></p>
<p><strong><span style="text-decoration:underline;">References</span></strong></p>
<p>1. <a href="http://antonymarcano.com/blog/2011/05/updated-lessons-learned-in-close-quarters-battle/">http://antonymarcano.com/blog/2011/05/updated-lessons-learned-in-close-quarters-battle/</a></p>
<p>The link above is to an article written by Antony Marcano in which he describes a multi-skilled team.</p>
<p>2 <a href="http://www.bcs.org/upload/pdf/tester-dec10.pdf">http://www.bcs.org/upload/pdf/tester-dec10.pdf</a></p>
<p>The link above is to an article written by Gojko Adzic in the December 2010 edition of <a href="http://www.bcs.org/category/9265"><em>The Tester</em></a> in which he describes the on-going work to consolidate the practices and the language around BDD (or whatever it ends up being called!)</p>
<p>3 <a href="http://storyq.codeplex.com">http://storyq.codeplex.com</a></p>
<p>More information about StoryQ</p>
<p>4 <a href="http://seleniumhq.org">http://seleniumhq.org</a></p>
<p>More information about Selenium</p>
<br />Filed under: <a href='http://mattarcherblog.wordpress.com/category/agile-testing-2/'>Agile Testing</a>, <a href='http://mattarcherblog.wordpress.com/category/behaviour-driven-development-bdd/'>Behaviour Driven Development (BDD)</a>, <a href='http://mattarcherblog.wordpress.com/category/testing/'>Testing</a> Tagged: <a href='http://mattarcherblog.wordpress.com/tag/agile/'>agile</a>, <a href='http://mattarcherblog.wordpress.com/tag/agile-testing/'>agile testing</a>, <a href='http://mattarcherblog.wordpress.com/tag/automated-software-testing/'>Automated Software Testing</a>, <a href='http://mattarcherblog.wordpress.com/tag/bdd/'>BDD</a>, <a href='http://mattarcherblog.wordpress.com/tag/behaviour-driven-development/'>Behaviour Driven Development</a>, <a href='http://mattarcherblog.wordpress.com/tag/business-driven-development/'>Business Driven Development</a>, <a href='http://mattarcherblog.wordpress.com/tag/functional-testing/'>Functional Testing</a>, <a href='http://mattarcherblog.wordpress.com/tag/selenium/'>Selenium</a>, <a href='http://mattarcherblog.wordpress.com/tag/selenium-and-watir/'>Selenium And Watir</a>, <a href='http://mattarcherblog.wordpress.com/tag/selenium-rc/'>Selenium Rc</a>, <a href='http://mattarcherblog.wordpress.com/tag/selenium-rc-automation/'>Selenium Rc Automation</a>, <a href='http://mattarcherblog.wordpress.com/tag/selenium-remote-control/'>Selenium Remote Control</a>, <a href='http://mattarcherblog.wordpress.com/tag/selenium-test-automation/'>Selenium Test Automation</a>, <a href='http://mattarcherblog.wordpress.com/tag/selenium-tests/'>Selenium Tests</a>, <a href='http://mattarcherblog.wordpress.com/tag/softare-test-automation/'>Softare Test Automation</a>, <a href='http://mattarcherblog.wordpress.com/tag/software-quality/'>software quality</a>, <a href='http://mattarcherblog.wordpress.com/tag/software-testing/'>Software Testing</a>, <a href='http://mattarcherblog.wordpress.com/tag/software-testing-tools/'>Software Testing Tools</a>, <a href='http://mattarcherblog.wordpress.com/tag/storyq/'>StoryQ</a>, <a href='http://mattarcherblog.wordpress.com/tag/test-automation/'>Test Automation</a>, <a href='http://mattarcherblog.wordpress.com/tag/testing/'>Testing</a>, <a href='http://mattarcherblog.wordpress.com/tag/watir-and-selenium/'>Watir And Selenium</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattarcherblog.wordpress.com/638/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattarcherblog.wordpress.com/638/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattarcherblog.wordpress.com/638/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattarcherblog.wordpress.com/638/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattarcherblog.wordpress.com/638/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattarcherblog.wordpress.com/638/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattarcherblog.wordpress.com/638/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattarcherblog.wordpress.com/638/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattarcherblog.wordpress.com/638/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattarcherblog.wordpress.com/638/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattarcherblog.wordpress.com/638/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattarcherblog.wordpress.com/638/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattarcherblog.wordpress.com/638/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattarcherblog.wordpress.com/638/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=638&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattarcherblog.wordpress.com/2011/07/03/sharing-bdd-specifications-between-testers-and-developers-using-storyq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/69f391b1fd47bdae2a7402c4647fff31?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Matt Archer</media:title>
		</media:content>

		<media:content url="http://mattarcherblog.files.wordpress.com/2011/07/070311_2212_sharingbdds11.png" medium="image">
			<media:title type="html">Visual Studio Test View Showing StoryQ Tests Above and Below The User Interface</media:title>
		</media:content>
	</item>
		<item>
		<title>How test automation with Selenium can fail</title>
		<link>http://mattarcherblog.wordpress.com/2010/11/29/how-test-automation-with-selenium-or-watir-can-fail/</link>
		<comments>http://mattarcherblog.wordpress.com/2010/11/29/how-test-automation-with-selenium-or-watir-can-fail/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 20:01:50 +0000</pubDate>
		<dc:creator>Matt Archer</dc:creator>
				<category><![CDATA[Test Automation]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Automated Software Testing]]></category>
		<category><![CDATA[Automation Framework]]></category>
		<category><![CDATA[Functional Testing]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[Selenium And Watir]]></category>
		<category><![CDATA[Selenium Ide]]></category>
		<category><![CDATA[Selenium Rc]]></category>
		<category><![CDATA[Selenium Rc Automation]]></category>
		<category><![CDATA[Selenium Remote Control]]></category>
		<category><![CDATA[Selenium Test Automation]]></category>
		<category><![CDATA[Selenium Tests]]></category>
		<category><![CDATA[Selenium Tips]]></category>
		<category><![CDATA[Softare Test Automation]]></category>
		<category><![CDATA[software quality]]></category>
		<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[Software Testing Tools]]></category>
		<category><![CDATA[Test Automation Tools]]></category>
		<category><![CDATA[testing tool]]></category>
		<category><![CDATA[testing tools]]></category>
		<category><![CDATA[Watir And Selenium]]></category>

		<guid isPermaLink="false">http://mattarcherblog.wordpress.com/?p=576</guid>
		<description><![CDATA[Introduction I like automated tests.  They’re typically quick to run and assuming they acquire the correct actual and expected result they rarely fail to produce an accurate comparison.  Don’t get me wrong, I’m no fanatic, but I have seen enough success to know that the right tool, in the right tester’s hand, can be a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=576&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="text-decoration:underline;"><strong>Introduction</strong></span></p>
<p>I like automated tests.  They’re typically quick to run and assuming they acquire the correct actual and expected result they rarely fail to produce an accurate comparison.  Don’t get me wrong, I’m no fanatic, but I have seen enough success to know that the right tool, in the right tester’s hand, can be a valuable addition to a project.</p>
<p>That said, I can see how test automation can fall out of favour within a project or organisation.  Tools have changed significantly over the years, however, for many projects their tool’s knack to do just about anything ironically remains its greatest strength and weakness.  Even if a project decides to use one of the latest tools for their particular technology, such as Selenium or Watir for GUI-level web testing, it is easy to erode the expected benefits if either tool is used inefficiently (something that is easier to do than you may think).</p>
<p>As I’m sure many of you already know, automated tests are small pieces of software that test (typically) larger pieces of software.  This makes them great for comparing one thing to another, assuming the comparison isn’t subjective.  Provide two numbers and an automated test will tell you whether they are equal.  Provide two pieces of text and an automated test will tell you whether they are the same.  Provide two pictures and an automated test will even tell you whether they contain the same pixels.  Bottom line &#8211; if an automated test gets the opportunity to compare two things we would otherwise compare by hand we can feel relatively confident that the final outcome (pass or fail) is the correct one.</p>
<p>So why can so many of us relate to the feeling I am about to describe?  You know, that feeling you sometimes get when you start to run your automation, and as the results are produced, not knowing whether it is the software you are testing that is failing or a problem with your automated tests.  For me, one of the goals of testing is to help a team feel confident that the software we are building is ready for a given event (such as a demo, a release or maybe just the next phase of the project).  On occasion, I find this desire for greater confidence to be in direct conflict with test automation.  This typically occurs if the automation is “flaky” and consequently I end up feeling less confident in my results compared to if I had performed the tests manually.  Have you ever tried making others feel confident, when you’re not feeling confident yourself?  It’s not easy.  In fact, easy or not, passing on false hope (or despair) is not the sort of habit you want to embrace.</p>
<p>At first glace, the root cause of this uncertainty can be difficult to track down, often leading to the conclusion that all automation is bad.  For me this is not true.  There are just a few approaches to automation that whilst in the right situation can prove useful, more often than not tend to cause the team an unnecessary headache.  One of these approaches is calculating expected results on the fly.  Another is including unnecessary navigation.</p>
<p>All example code that follows is a mix of pseudo code and Selenium C#.</p>
<p><span style="text-decoration:underline;"><strong>Calculating expected results on the fly</strong></span></p>
<p>Imagine for a moment that we are testing an online dispatch system for a logistics company.  Each morning the system receives a CSV file containing a list of items to dispatch that day.  There is a simple business rule that we want to test.  If an item weighs more than 50kg then mark the item as a two-man lift, otherwise mark the item as a one-man lift.  This sounds easy enough so we create an automated test to pass a file containing fictional items to the dispatch system and check each item has been labelled correctly on the website.</p>
<p><pre class="brush: csharp;">
public void CheckWeightCategory_Version1()
{
    // For each item in the file, check it has been labelled correctly
    foreach (Item currentItem in testFile)
    {
        // Navigate to the item tracking page on the website
        selenium.Open(&quot;/ItemTrackingPage.html&quot;);

       // Get the weight category for the current item
        string acutalWeightCategory = selenium.GetText(&quot;weightCategory&quot; + currentItem.ID);

        // Calculate the expected result
        string expectedWeightCategory;

        // If an item weighs more than 50kg then mark the item as a two-man lift,
        // otherwise mark the item as a one-man lift
        if (currentItem.weight &gt; 50)
        {
            expectedWeightCategory = &quot;two-man lift&quot;;
        }
        else
        {
            expectedWeightCategory = &quot;one-man lift&quot;;
        }

        // Compare actual to expected result
        Assert.AreEqual(acutalWeightCategory, expectedWeightCategory);
    }
}
</pre></p>
<p>So that we can calculate the expected result of the fly, we have coded the if-then-else business rule in a similar way to the dispatch system itself.  On the up side this means that we can test as many input files as we like without having to worry about the expected result, however, we now have a mixture of code to prepare the expected result and code to perform the test, all intermingled together.  As the example stands at present, this doesn’t feel like a huge problem, but we are standing at the top of a very slippery slope.  Consider the following;</p>
<p style="padding-left:60px;">Q: What happens if the business rule is made more complex?</p>
<p style="padding-left:60px;">A: We can add some more code to represent it.</p>
<p style="padding-left:60px;">Q: What happens if a particular item is missing a weight?</p>
<p style="padding-left:60px;">A: We can add some more code to trap it.</p>
<p>Adding more code is fine in principal, but it can have an unpleasant side effect.  Below is an updated example based upon the two questions above.  Notice we now have eight lines of code related to calculating the expected result and only four lines of code that relate to performing the test itself.  In essence, we have created a test with three times as many lines of code than is absolutely necessary to perform the test.  By embedding the business rule, we have also made (or are at least are well on our way towards making) the code for our automated test as complicated as the system we are testing.  And this is one reason I can personally lose confidence in automation.  Crudely speaking, when the odds of finding a bug are equally divided between the system we are testing and our own test automation code we must think carefully about the return on investment we are likely to receive.</p>
<p><pre class="brush: csharp;">
public void CheckWeightCategory_Version2()
{
    // For each item in the file, check it has been labelled correctly
    foreach (Item currentItem in testFile)
    {
        // Navigate to the item tracking page on the website
        selenium.Open(&quot;/ItemTrackingPage.html&quot;);

        // Get the weight category for the current item
        string acutalWeightCategory = selenium.GetText(&quot;weightCategory&quot; + currentItem.ID);

       // Calculate the expected result
        string expectedWeightCategory;

        // If the customer wishes to collect the item from the warehouse,
        // the weight category should be marked as N/A
        if (currentItem.customerCollect == true)
        {
            expectedWeightCategory = &quot;N/A&quot;;
        }
        else
        {
            // If the item does not have a weight, fail the test
            if (customer.weight != null)
            {
                // If an item weighs more than 50kg then mark the item as a two-man lift,
                // otherwise mark the item as a one-man lift
                if (currentItem.weight &gt; 50)
                {
                    expectedWeightCategory = &quot;two-man lift&quot;;
                }
                else
                {
                    expectedWeightCategory = &quot;one-man lift&quot;;
                }
            }
            else
            {
                Assert.Fail(&quot;No weight available to calculate expected result&quot;);
            }
        }

       // Compare actual to expected result
        Assert.AreEqual(acutalWeightCategory, expectedWeightCategory);
    }
}
</pre></p>
<p>That said, any automated test that performs a comparison needs to know the expected results.  I can’t argue against this fact, but my recommendation would be to avoid calculating any expected results automatically, especially if that automatic calculation takes place as part of the test itself.  Like all aspects of testing there are countless ways of achieving a particular task and maintaining expected results is no exception.  If you believe that automatically calculating expected results is for you then I would at least consider separating the code that calculates the expected results from the code that performs the actual test.  And I don’t just mean splitting the code into two different methods that are executed one after the other by a single piece of code we call the test.  I’m talking about a much harder divide where one piece of code saves the expected results to a known location that can be read (maybe even edited) by a member of the team, before a second piece of code takes the persisted values and performs the comparison.  Not only does this keep a clean divide between the two pieces of code, it also allows for easier debugging based on human inspection (and where necessary manipulation) of the expected result before they are used as part of the test.</p>
<p>Another option is to work out any expected results “by hand” in the same way as if we were performing the test manually.  Once we have the expected results (assuming they are a sensible format) we can use them as the basis for both manual and automated tests.  I can tell what some of you are thinking, “my aim is to automate the majority of my tests and do very little testing manually”.  That may be a great aim for your project, but I guarantee that you will end up performing a great deal of manual testing, even if you do not call it by that name.  Whilst debugging automated tests (both as part of their creation and later as part of their maintenance) sometimes the best approach is to step through the lines of code, placing various break points and watching the value of variables change.  That said, on other occasions it’s far easier to perform the test manually to double check that the application is behaving as we expect, often proving both the quality of the website and the quality of the automation at the same time.  It can also be easier to explain a bug to somebody when you can demonstrate it manually rather than attempting to commentate on a screen that is racing past at one-hundred miles per hour.</p>
<p><span style="text-decoration:underline;"><strong>Unnecessary Navigation</strong></span></p>
<p>Let us now take a look at another potential destroyer of automated tests, unnecessary navigation.  Imagine for a moment that we are testing an online book store.  The customer is keen to ensure that every book is displayed with the correct title, description and price and has provided this data for a sample of 100 books.  To automatically check our sample books we could write something similar to the code below.  As part of its creation we would need to give it a meaningful name, such as <em>CheckBookTitleDescriptionAndPrice</em>.</p>
<p><pre class="brush: csharp;">
public void CheckBookTitleDescriptionAndPrice_Version1()
{
    foreach (Book currentBook in testFile)
    {
        // Open the homepage
        selenium.Open(&quot;/HomePage.html&quot;);
        selenium.WaitForPageToLoad(&quot;30000&quot;);

        // Login
        selenium.Click(&quot;link=Login&quot;);
        selenium.WaitForPageToLoad(&quot;30000&quot;);
        selenium.Type(&quot;TxtUserName&quot;, &quot;TestAccount1&quot;);
        selenium.Type(&quot;TxtPassword&quot;, &quot;TestPassword1&quot;);
        selenium.Click(&quot;Submit&quot;);
        selenium.WaitForPageToLoad(&quot;30000&quot;);

        // Search for the book we want to check
        selenium.Click(&quot;link=Search&quot;);
        selenium.WaitForPageToLoad(&quot;30000&quot;);
        selenium.Type(&quot;TxtSearchTerm&quot;, currentBook.Title);
        selenium.Click(&quot;Submit&quot;);
        selenium.WaitForPageToLoad(&quot;30000&quot;);

       // Open the Detailed Information page for the book we want to check&lt;br /&gt;
        selenium.Click(currentBook.ID);
        selenium.WaitForPageToLoad(&quot;30000&quot;);

        // Check that the Detailed Information page has loaded
        Assert.AreEqual(&quot;Detailed Information page&quot;, selenium.GetTitle());
        
        // Compare the information on the Detailed Information page to our expected results
        string actualBookTitle = selenium.GetText(&quot;BookTitle&quot; + currentItem.ID);
        Assert.AreEqual(actualBookTitle, currentBook.Title);
        
        string actualBookDescription = selenium.GetText(&quot;BookDescription&quot; + currentItem.ID);
        Assert.AreEqual(actualBookDescription, currentBook.Description);
        
        string actualBookPrice = selenium.GetText(&quot;BookPrice&quot; + currentItem.ID);
        Assert.AreEqual(actualBookPrice, currentBook.Price);
    }
}
</pre></p>
<p>This code is fine in principle, but just how much of it is actually related to the things we want to check?  Do we really need to login to the system, start this test from the homepage and use the search functionality to find the relevant book?  Probably not is the answer.  But what is the problem with having these actions in the test, they’re surely not causing any harm and you never know we may stumble across a bug that we weren’t expecting to find by mistake?</p>
<p>Whilst this sounds nice in principle, for me, there are two problems with the philosophy of <em>if I’m lucky I might find some extra bugs by chance, for free! </em>Even though this sounds great of the surface, automated tests that stumble across a bug (other than the one(s) they were deliberately trying to detect) can take a considerable time to diagnose as we ponder over whether it is the website that is broken, or dare I say it, the test itself.  The frustration, however, does not stop there.  If the homepage, search or login happened to be broken then there is a strong possibility that any test that uses those features as part of their navigation will fail to reach the part of the system we are trying to test.  Not ideal if we need a quick assessment of the website’s quality as we prepare for a release later that day.  At this point in time, our automated tests are next to useless, as all they tell us (and this may not even be directly) is that the homepage is broken.  It is also misleading for a test entitled <em>CheckBookTitleDescriptionAndPrice</em> to fail even though there is nothing potentially wrong with anything the title suggests.</p>
<p>Fortunately the solution is easy.  We put this (in my opinion, unnecessary) navigation in by choice, but if it’s surplus to requirements why not leave it out or replace it with something more succinct?  We could rewrite our test to look something similar to the code below.  Notice how we have reduced the amount of unnecessary navigation by replacing much of our previous example with a single, parameterised deep link.</p>
<p><pre class="brush: csharp;">
public void CheckBookTitleDescriptionAndPrice_Version2()
{
    foreach (Book currentBook in testFile)
    {
        // Navigate directly to the Detailed Information Page for the book we want to check
        selenium.Open(&quot;/DetailedInformationPage?bookId&quot; + currentBook.ID);
        selenium.WaitForPageToLoad(&quot;30000&quot;);

        // Check that the Detailed Information page has loaded
        Assert.AreEqual(&quot;Detailed Information page&quot;, selenium.GetTitle());

        // Compare the information on the Detailed Information page to our expected results
        string actualBookTitle = selenium.GetText(&quot;BookTitle&quot; + currentItem.ID);
        Assert.AreEqual(actualBookTitle, currentBook.Title);

        string actualBookDescription = selenium.GetText(&quot;BookDescription&quot; + currentItem.ID);
        Assert.AreEqual(actualBookDescription, currentBook.Description);

        string actualBookPrice = selenium.GetText(&quot;BookPrice&quot; + currentItem.ID);
        Assert.AreEqual(actualBookPrice, currentBook.Price);
    }
}
</pre></p>
<p><span style="text-decoration:underline;"><strong>Summary</strong></span></p>
<p>I am not suggesting that calculating expected results on the fly or tests with large amounts of navigation should never be used, but I do believe they should be treated with caution.   Both approaches leave tests less focused, harder to maintain and open to a variety of false failures.  As I mentioned at the beginning, I like automated tests.  They’re typically quick to run and <strong><em>assuming they acquire the correct actual and expected result</em></strong> they rarely failed to produce an accurate comparison.  And here lies the problem.  Over time, calculating expected results of the fly can reduce the probability of a test acquiring the correct expected results and unnecessary navigation can make it much harder for a test to capture the actual result.  If we keep both of these things to a minimum, we provide each test with a much greater chance of getting to the part is does best – the comparison.</p>
<br />Filed under: <a href='http://mattarcherblog.wordpress.com/category/test-automation/'>Test Automation</a>, <a href='http://mattarcherblog.wordpress.com/category/testing/'>Testing</a> Tagged: <a href='http://mattarcherblog.wordpress.com/tag/automated-software-testing/'>Automated Software Testing</a>, <a href='http://mattarcherblog.wordpress.com/tag/automation-framework/'>Automation Framework</a>, <a href='http://mattarcherblog.wordpress.com/tag/functional-testing/'>Functional Testing</a>, <a href='http://mattarcherblog.wordpress.com/tag/selenium/'>Selenium</a>, <a href='http://mattarcherblog.wordpress.com/tag/selenium-and-watir/'>Selenium And Watir</a>, <a href='http://mattarcherblog.wordpress.com/tag/selenium-ide/'>Selenium Ide</a>, <a href='http://mattarcherblog.wordpress.com/tag/selenium-rc/'>Selenium Rc</a>, <a href='http://mattarcherblog.wordpress.com/tag/selenium-rc-automation/'>Selenium Rc Automation</a>, <a href='http://mattarcherblog.wordpress.com/tag/selenium-remote-control/'>Selenium Remote Control</a>, <a href='http://mattarcherblog.wordpress.com/tag/selenium-test-automation/'>Selenium Test Automation</a>, <a href='http://mattarcherblog.wordpress.com/tag/selenium-tests/'>Selenium Tests</a>, <a href='http://mattarcherblog.wordpress.com/tag/selenium-tips/'>Selenium Tips</a>, <a href='http://mattarcherblog.wordpress.com/tag/softare-test-automation/'>Softare Test Automation</a>, <a href='http://mattarcherblog.wordpress.com/tag/software-quality/'>software quality</a>, <a href='http://mattarcherblog.wordpress.com/tag/software-testing/'>Software Testing</a>, <a href='http://mattarcherblog.wordpress.com/tag/software-testing-tools/'>Software Testing Tools</a>, <a href='http://mattarcherblog.wordpress.com/tag/test-automation/'>Test Automation</a>, <a href='http://mattarcherblog.wordpress.com/tag/test-automation-tools/'>Test Automation Tools</a>, <a href='http://mattarcherblog.wordpress.com/tag/testing/'>Testing</a>, <a href='http://mattarcherblog.wordpress.com/tag/testing-tool/'>testing tool</a>, <a href='http://mattarcherblog.wordpress.com/tag/testing-tools/'>testing tools</a>, <a href='http://mattarcherblog.wordpress.com/tag/watir-and-selenium/'>Watir And Selenium</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattarcherblog.wordpress.com/576/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattarcherblog.wordpress.com/576/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattarcherblog.wordpress.com/576/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattarcherblog.wordpress.com/576/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattarcherblog.wordpress.com/576/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattarcherblog.wordpress.com/576/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattarcherblog.wordpress.com/576/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattarcherblog.wordpress.com/576/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattarcherblog.wordpress.com/576/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattarcherblog.wordpress.com/576/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattarcherblog.wordpress.com/576/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattarcherblog.wordpress.com/576/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattarcherblog.wordpress.com/576/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattarcherblog.wordpress.com/576/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=576&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattarcherblog.wordpress.com/2010/11/29/how-test-automation-with-selenium-or-watir-can-fail/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/69f391b1fd47bdae2a7402c4647fff31?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Matt Archer</media:title>
		</media:content>
	</item>
		<item>
		<title>Book Review: Software Test Engineering with IBM Rational Functional Tester</title>
		<link>http://mattarcherblog.wordpress.com/2010/01/27/book-review-software-test-engineering-with-ibm-rational-functional-tester/</link>
		<comments>http://mattarcherblog.wordpress.com/2010/01/27/book-review-software-test-engineering-with-ibm-rational-functional-tester/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 12:49:32 +0000</pubDate>
		<dc:creator>Matt Archer</dc:creator>
				<category><![CDATA[Test Automation]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Automated Software Testing]]></category>
		<category><![CDATA[Automation Framework]]></category>
		<category><![CDATA[Book Review]]></category>
		<category><![CDATA[Book Review: Software Test Engineering with IBM Rational Functional Tester]]></category>
		<category><![CDATA[Functional Testing]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[ibm rational]]></category>
		<category><![CDATA[Rational]]></category>
		<category><![CDATA[rational functional tester]]></category>
		<category><![CDATA[rational software]]></category>
		<category><![CDATA[RUP]]></category>
		<category><![CDATA[Softare Test Automation]]></category>
		<category><![CDATA[software quality]]></category>
		<category><![CDATA[Software Test Engineering with IBM Rational Functional Tester]]></category>
		<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[Software Testing Tools]]></category>
		<category><![CDATA[Test Automation Tools]]></category>
		<category><![CDATA[testing tool]]></category>
		<category><![CDATA[testing tools]]></category>

		<guid isPermaLink="false">http://mattarcherblog.wordpress.com/?p=565</guid>
		<description><![CDATA[Like many others testers, I regularly incorporate IBM Rational Functional Tester (once known as XDE Tester) into my test automation repertoire.  For those of you that aren’t familiar with the tool, Rational Functional Tester (often abbreviated to RFT) is a GUI-level test automation tool that can be used to automate the functional testing of both [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=565&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Like many others testers, I regularly incorporate IBM Rational Functional Tester (once known as XDE Tester) into my test automation repertoire.  For those of you that aren’t familiar with the tool, Rational Functional Tester (often abbreviated to RFT) is a GUI-level test automation tool that can be used to automate the functional testing of both Windows and Web based applications.  If you’re interested, more information can be found on the official IBM Rational website <a href="http://www.ibm.com/software/awdtools/tester/functional/index.html" target="_blank">here</a>.</p>
<p>To accompany the tool, IBM Press have recently published a book entitled “Software Test Engineering with IBM Rational Functional Tester”.  The authors have left no stone unturned in their feature by feature discussion of the tool’s abilities, which undoubtedly makes it worthy of its tagline – “The Definitive Resource”.</p>
<p>As an experienced user I found myself skipping pages in the early chapters, but it’s not long before the book arrives at the juicer topics, including handling unsupported objects, testing specialised applications (SAP, Siebel, Flex, etc) and using RFT within a Linux environment.</p>
<p>For those new to RFT I would follow the authors’ advice and not attempt a cover to cover read.  The first few chapters will provide a new user with everything they need to know to get started and be productive.  The remainder of the 600+ pages can then be dipped into as necessary.</p>
<p>My favourite part of the book is the script samples that are scattered throughout every chapter.  Like any automated testing tool, sometimes the best solution is to hand-craft all or part of your script.  It is at this point that the average tester (myself included) typically turns to Google with the hope of finding a similar example.  I can remember spending hours looking for information on how best to query a database, connect to excel and extract data from a PDF.  All of these topics are covered in the book with examples, along with many others.</p>
<p>Your local bookshop / website should have no problem getting you a copy if you’re interested.  For those members of the BCS Special Interest Group in Software Testing (SiGIST), you can also borrow a copy for free from the <a href="http://www.bcs.org/server.php?show=ConWebDoc.11675" target="_blank">SiGIST Library</a>.</p>
<br />Posted in Test Automation, Testing Tagged: Automated Software Testing, Automation Framework, Book Review, Book Review: Software Test Engineering with IBM Rational Functional Tester, Functional Testing, IBM, ibm rational, Rational, rational functional tester, rational software, RUP, Softare Test Automation, software quality, Software Test Engineering with IBM Rational Functional Tester, Software Testing, Software Testing Tools, Test Automation, Test Automation Tools, Testing, testing tool, testing tools <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattarcherblog.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattarcherblog.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattarcherblog.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattarcherblog.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattarcherblog.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattarcherblog.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattarcherblog.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattarcherblog.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattarcherblog.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattarcherblog.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattarcherblog.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattarcherblog.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattarcherblog.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattarcherblog.wordpress.com/565/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=565&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattarcherblog.wordpress.com/2010/01/27/book-review-software-test-engineering-with-ibm-rational-functional-tester/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/69f391b1fd47bdae2a7402c4647fff31?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Matt Archer</media:title>
		</media:content>
	</item>
		<item>
		<title>SIGiST Testing Conference &#8211; December 2009</title>
		<link>http://mattarcherblog.wordpress.com/2009/12/12/sigist-conference-december-2009/</link>
		<comments>http://mattarcherblog.wordpress.com/2009/12/12/sigist-conference-december-2009/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 14:55:50 +0000</pubDate>
		<dc:creator>Matt Archer</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://mattarcherblog.wordpress.com/?p=551</guid>
		<description><![CDATA[It&#8217;s surprising how quickly time flys.  It feels like just the other day that I was sitting in the audience of the December 2008 SIGiST conference and here I am giving an update of December 2009! In my opinion, the best talk of the day was by Steven Ramsay who spoke about overcoming various obstacles [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=551&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s surprising how quickly time flys.  It feels like just the other day that I was sitting in the audience of the December 2008 SIGiST conference and here I am giving an update of December 2009!</p>
<p>In my opinion, the best talk of the day was by <a href="http://uk.linkedin.com/pub/steve-ramsay/1/871/915" target="_blank">Steven Ramsay</a> who spoke about overcoming various obstacles to set up a testing practice at <a href="http://www.linklaters.com" target="_blank">LinkLaters</a>.  What I liked about Steve&#8217;s talk was that it was a description from the front-line, worts and all.  Steve suggested at the beginning that he was feeling nervous, but it didn&#8217;t show.  When it comes to creating the programme for the 2010 conferences (11th March, 29th June, 16th September and 8th December), I&#8217;ll certainly be voting for him to come back and give us an update.</p>
<p>Another good talk was by <a href="http://nl.linkedin.com/in/martingijsen" target="_blank">Martin Gijsen</a>.  Martin spoke about how to make use of a Domain Specific Test Language (an advanced form of keyword driven testing) to increase the maintainability of automated tests.  I use a similar technique for my own automation so it was nice to listen to somebody who shares my ideas.</p>
<p>For me, my attention now shifts to the publication of the March edition of <a href="http://www.bcs.org/server.php?show=nav.9265" target="_blank">The Tester</a>.  I&#8217;m always on the lookout for good articles.  If you have an article you believe would be suitable, feel free to email me.</p>
<p><a href="http://mattarcherblog.files.wordpress.com/2009/12/email-address1.jpg"><img class="alignnone size-full wp-image-548" title="email address" src="http://mattarcherblog.files.wordpress.com/2009/12/email-address1.jpg" alt="" width="262" height="37" /></a></p>
<br />Posted in General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattarcherblog.wordpress.com/551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattarcherblog.wordpress.com/551/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattarcherblog.wordpress.com/551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattarcherblog.wordpress.com/551/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattarcherblog.wordpress.com/551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattarcherblog.wordpress.com/551/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattarcherblog.wordpress.com/551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattarcherblog.wordpress.com/551/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattarcherblog.wordpress.com/551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattarcherblog.wordpress.com/551/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattarcherblog.wordpress.com/551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattarcherblog.wordpress.com/551/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattarcherblog.wordpress.com/551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattarcherblog.wordpress.com/551/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=551&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattarcherblog.wordpress.com/2009/12/12/sigist-conference-december-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/69f391b1fd47bdae2a7402c4647fff31?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Matt Archer</media:title>
		</media:content>

		<media:content url="http://mattarcherblog.files.wordpress.com/2009/12/email-address1.jpg" medium="image">
			<media:title type="html">email address</media:title>
		</media:content>
	</item>
		<item>
		<title>Goodbye Ivar Jacobson, Hello Express Software</title>
		<link>http://mattarcherblog.wordpress.com/2009/12/04/goodbye-ivar-jacobson-hello-express-software-ltd/</link>
		<comments>http://mattarcherblog.wordpress.com/2009/12/04/goodbye-ivar-jacobson-hello-express-software-ltd/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 00:15:58 +0000</pubDate>
		<dc:creator>Matt Archer</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://mattarcherblog.wordpress.com/?p=546</guid>
		<description><![CDATA[As many people are already aware, I have left Ivar Jacobson International to offer my services (and the services of a few close associates) to organisations on a freelance / contract basis. We will trade under the name of Express Software Ltd and I am pleased to say that work is already successfully underway at [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=546&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As many people are already aware, I have left Ivar Jacobson International to offer my services (and the services of a few close associates) to organisations on a freelance / contract basis.</p>
<p>We will trade under the name of Express Software Ltd and I am pleased to say that work is already successfully underway at our first client – a niche finance company that builds software to monitor the health of defined benefit pension schemes by performing sensitivity analysis on the underlying assets and liabilities.</p>
<p>With my new Head of Marketing hat firmly on, I’ve updated my <a href="http://mattarcherblog.wordpress.com/about/" target="_self">About Page</a> to showcase the <a href="http://mattarcherblog.wordpress.com/about/" target="_self">organisations that have paid for my services in the past</a>.  It currently stands at a respectable 20, with some impressive boasts across a number of different market sectors.</p>
<p>Finally, I couldn’t write this post without at least one shameless tout for new business.  If you have worked with me in the past and would like to work with me again, or like the sound of the ideas in this blog and would consider a contract resource to help with their introduction, please feel free to contact me on my new email address (shown below as an image to avoid the spam).</p>
<p><a href="http://mattarcherblog.files.wordpress.com/2009/12/email-address1.jpg"><img class="alignnone size-full wp-image-548" title="email address" src="http://mattarcherblog.files.wordpress.com/2009/12/email-address1.jpg" alt="" width="262" height="37" /></a></p>
<br />Posted in General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattarcherblog.wordpress.com/546/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattarcherblog.wordpress.com/546/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattarcherblog.wordpress.com/546/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattarcherblog.wordpress.com/546/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattarcherblog.wordpress.com/546/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattarcherblog.wordpress.com/546/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattarcherblog.wordpress.com/546/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattarcherblog.wordpress.com/546/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattarcherblog.wordpress.com/546/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattarcherblog.wordpress.com/546/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattarcherblog.wordpress.com/546/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattarcherblog.wordpress.com/546/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattarcherblog.wordpress.com/546/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattarcherblog.wordpress.com/546/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=546&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattarcherblog.wordpress.com/2009/12/04/goodbye-ivar-jacobson-hello-express-software-ltd/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/69f391b1fd47bdae2a7402c4647fff31?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Matt Archer</media:title>
		</media:content>

		<media:content url="http://mattarcherblog.files.wordpress.com/2009/12/email-address1.jpg" medium="image">
			<media:title type="html">email address</media:title>
		</media:content>
	</item>
		<item>
		<title>Software Quality Conference &#8211; London, 5 Oct 2009</title>
		<link>http://mattarcherblog.wordpress.com/2009/08/24/software-systems-quality-conference-%e2%80%93-london-5-october-2009/</link>
		<comments>http://mattarcherblog.wordpress.com/2009/08/24/software-systems-quality-conference-%e2%80%93-london-5-october-2009/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 11:50:59 +0000</pubDate>
		<dc:creator>Matt Archer</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://mattarcherblog.wordpress.com/?p=510</guid>
		<description><![CDATA[For the last couple of weeks I have been preparing my slides for the Software &#38; Systems Quality Conference that is due to take place in London on the 5th of October.  I&#8217;m scheduled to deliver a presentation called &#8220;A picture is worth a thousand tests&#8221; and whilst the abstract (below) doesn&#8217;t suggest as much, the talk was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=510&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For the last couple of weeks I have been preparing my slides for the Software &amp; Systems Quality Conference that is due to take place in London on the 5th of October.  I&#8217;m scheduled to deliver a presentation called &#8220;A picture is worth a thousand tests&#8221; and whilst the abstract (below) doesn&#8217;t suggest as much, the talk was inspired by 3 things.  My use of visual images within the training courses I run and two commonly asked questions I receive when out and about at other companies.  &#8220;Can you make me into an agile tester?&#8221; and &#8220;Do you have a template?&#8221;</p>
<p>I&#8217;ll explain more on the day and try to write a follow up post with more information as a reference.</p>
<p>If you&#8217;re interested in attending, I have included links below to the registration page and program overview.</p>
<p><a href="http://www.sqs-conferences.com/uk/program/program_1st.htm">http://www.sqs-conferences.com/uk/program/program_1st.htm</a></p>
<p><a href="https://www.sqs.de/sqs_conferences/registration_uk.htm">https://www.sqs.de/sqs_conferences/registration_uk.htm</a></p>
<p> </p>
<p><strong>Abstract: A picture is worth a thousand tests</strong></p>
<blockquote><p>People have been using visual images to effectively exchange ideas for thousands of years, often opting for a single picture instead of several paragraphs of written text. From the ancient Egyptians and their enchanting hieroglyphics to modern day astrologers and their charts of the solar system, images have been widely used to preserve and communicate information in almost every area of life – apart from manual software testing.</p>
<p> <br />
When it comes to manual software testing, almost every test is captured as a series of written steps. At a glance, one test looks much like another and tests are routinely read from beginning to end to understand their purpose. What’s alarming is when two tests from the same area of an application are studied in detail, similarities are often found at a deeper level, with duplicate steps and instructions being commonplace. In summary, tests preserved and communicated using tables of written text are often time consuming to create, execute and maintain. Considering these factors, it’s not surprising that many of the brilliant test ideas conceived by testers never find their way into the project’s official testware.</p>
<p> <br />
This presentation demonstrates how using visual images can allow a tester to provide meaningful feedback faster – a key measure in today’s agile environment. Based on examples, the first part of the presentation discusses the advantages of using images to preserve and communicate tests, including how they can support a more agile way of working based upon reduced preparation and maintenance costs. The second part of the presentation discusses the practical challenges that a team must overcome when using such an approach and the changes in mentality a team must make in order to deliver the desired benefit of meaningful feedback faster.</p></blockquote>
<br />Posted in General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattarcherblog.wordpress.com/510/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattarcherblog.wordpress.com/510/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattarcherblog.wordpress.com/510/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattarcherblog.wordpress.com/510/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattarcherblog.wordpress.com/510/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattarcherblog.wordpress.com/510/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattarcherblog.wordpress.com/510/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattarcherblog.wordpress.com/510/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattarcherblog.wordpress.com/510/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattarcherblog.wordpress.com/510/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattarcherblog.wordpress.com/510/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattarcherblog.wordpress.com/510/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattarcherblog.wordpress.com/510/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattarcherblog.wordpress.com/510/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=510&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattarcherblog.wordpress.com/2009/08/24/software-systems-quality-conference-%e2%80%93-london-5-october-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/69f391b1fd47bdae2a7402c4647fff31?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Matt Archer</media:title>
		</media:content>
	</item>
		<item>
		<title>2009 UK Testing Events Published in &#8220;The Tester&#8221;</title>
		<link>http://mattarcherblog.wordpress.com/2009/02/16/2009-uk-testing-events-published-in-the-tester/</link>
		<comments>http://mattarcherblog.wordpress.com/2009/02/16/2009-uk-testing-events-published-in-the-tester/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 13:46:07 +0000</pubDate>
		<dc:creator>Matt Archer</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://mattarcherblog.wordpress.com/?p=502</guid>
		<description><![CDATA[After a couple of weeks of hard work, I&#8217;m please to say that the Spring 2009 edition of The Tester is now public and available on the British Computer Society (BCS) website, here. A big thank you to all of the contributors, especially the 5 authors (Rhiannon Thomas, Michael Bolton, Adrian, O&#8217;Leary, Pradeep Govindasamy and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=502&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After a couple of weeks of hard work, I&#8217;m please to say that the Spring 2009 edition of <em>The Tester</em> is now public and available on the British Computer Society (BCS) website, <a href="http://www.bcs.org/server.php?show=nav.9265" target="_blank">here</a>.</p>
<p>A big thank you to all of the contributors, especially the 5 authors (Rhiannon Thomas, Michael Bolton, Adrian, O&#8217;Leary, Pradeep Govindasamy and Chris Whelan) who provided superb articles for this edition.</p>
<p>In addition to the articles, something that is well worth a look is the new testing events calendar. I can remember starting out in testing and not knowing were I could go to socialise with other testers – other than on-line. That was many years ago, but the same problem still exists. Where do testers go to get an overview of the year’s testing events? Yesterday I would have to say I don’t know. Today I am pleased to say that this information can be found in <a href="http://www.bcs.org/server.php?show=nav.9265"><em>The Tester</em></a>!</p>
<br />Posted in General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattarcherblog.wordpress.com/502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattarcherblog.wordpress.com/502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattarcherblog.wordpress.com/502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattarcherblog.wordpress.com/502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattarcherblog.wordpress.com/502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattarcherblog.wordpress.com/502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattarcherblog.wordpress.com/502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattarcherblog.wordpress.com/502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattarcherblog.wordpress.com/502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattarcherblog.wordpress.com/502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattarcherblog.wordpress.com/502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattarcherblog.wordpress.com/502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattarcherblog.wordpress.com/502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattarcherblog.wordpress.com/502/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=502&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattarcherblog.wordpress.com/2009/02/16/2009-uk-testing-events-published-in-the-tester/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/69f391b1fd47bdae2a7402c4647fff31?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Matt Archer</media:title>
		</media:content>
	</item>
		<item>
		<title>Software Quality Conference &#8211; Dublin, 4 Mar 2009</title>
		<link>http://mattarcherblog.wordpress.com/2009/01/29/software-systems-quality-conference-dublin-4-march-2009/</link>
		<comments>http://mattarcherblog.wordpress.com/2009/01/29/software-systems-quality-conference-dublin-4-march-2009/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 18:35:52 +0000</pubDate>
		<dc:creator>Matt Archer</dc:creator>
				<category><![CDATA[Conferences and Events]]></category>
		<category><![CDATA[Test Documentation]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://mattarcherblog.wordpress.com/?p=499</guid>
		<description><![CDATA[In a little over a month I will be visiting Ireland to speak at the Irish Software &#38; Systems Quality conference, in Dublin. It will be the first time I have visited Ireland, so hopefully I&#8217;ll be able to do a bit of sightseeing whilst I&#8217;m there. My talk is about how much documentation we [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=499&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In a little over a month I will be visiting Ireland to speak at the Irish Software &amp; Systems Quality conference, in Dublin. It will be the first time I have visited Ireland, so hopefully I&#8217;ll be able to do a bit of sightseeing whilst I&#8217;m there.</p>
<p>My talk is about how much documentation we need as testers.  You can find the abstract <a href="http://www.sqs-conferences.com/ire/program/abstracts/archer_ab.pdf">here</a>.</p>
<p>If you&#8217;re interested in coming along you can register <a href="https://www.sqs.de/sqs_conferences/registration_ire.htm">here</a>.</p>
<p>As a speaker I can get a limited number of delegates a 20% discount.  Contact me if you&#8217;re interested.</p>
<br />Posted in Conferences and Events, Test Documentation, Testing  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattarcherblog.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattarcherblog.wordpress.com/499/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattarcherblog.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattarcherblog.wordpress.com/499/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattarcherblog.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattarcherblog.wordpress.com/499/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattarcherblog.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattarcherblog.wordpress.com/499/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattarcherblog.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattarcherblog.wordpress.com/499/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattarcherblog.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattarcherblog.wordpress.com/499/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattarcherblog.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattarcherblog.wordpress.com/499/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattarcherblog.wordpress.com&amp;blog=4049328&amp;post=499&amp;subd=mattarcherblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattarcherblog.wordpress.com/2009/01/29/software-systems-quality-conference-dublin-4-march-2009/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/69f391b1fd47bdae2a7402c4647fff31?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Matt Archer</media:title>
		</media:content>
	</item>
	</channel>
</rss>
