<?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/"
	>

<channel>
	<title>Gojko Adzic &#187; acceptance testing</title>
	<atom:link href="http://gojko.net/tag/acceptance-testing/feed/" rel="self" type="application/rss+xml" />
	<link>http://gojko.net</link>
	<description>Building software that matters</description>
	<lastBuildDate>Thu, 18 Mar 2010 20:20:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Acceptance testing best practices</title>
		<link>http://gojko.net/2010/03/03/acceptance-testing-best-practices/</link>
		<comments>http://gojko.net/2010/03/03/acceptance-testing-best-practices/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 19:50:14 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[acceptance testing]]></category>
		<category><![CDATA[fitnesse]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=1655</guid>
		<description><![CDATA[Here&#8217;s a video from a joint workshop that David Evans,  Mike Scott and I organised yesterday at Skills Matter. We talked about strategies to get the most out of acceptance tests (especially with FitNesse) and organised a group workshop to review some good and bad examples of acceptance tests &#8211; taken from my Hands [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a video from a joint workshop that David Evans,  Mike Scott and I organised yesterday at Skills Matter. We talked about strategies to get the most out of acceptance tests (especially with FitNesse) and organised a group workshop to review some good and bad examples of acceptance tests &#8211; taken from my <a href="http://neuri.co.uk/training">Hands On Acceptance Testing</a> workshop.</p>
<p><object width="300px" height="279px"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9877071&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=9877071&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="300px" height="279px"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2010/03/03/acceptance-testing-best-practices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Are tools necessary for acceptance testing, or are they just evil?</title>
		<link>http://gojko.net/2010/03/01/are-tools-necessary-for-acceptance-testing-or-are-they-just-evil/</link>
		<comments>http://gojko.net/2010/03/01/are-tools-necessary-for-acceptance-testing-or-are-they-just-evil/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 08:05:47 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[acceptance testing]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[agile acceptance testing]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[fit]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=1633</guid>
		<description><![CDATA[While doing research for my new book, I was very surprised to find out that Jim Shore gave up on acceptance testing. I use his &#8220;describe-demonstrate-develop&#8221; process description all the time in my workshops, so I guess I better stop doing that. Jim Shore wrote:
My experience with Fit and other agile acceptance testing tools is [...]]]></description>
			<content:encoded><![CDATA[<p>While doing research for my new book, I was very surprised to find out that <a href="http://jamesshore.com">Jim Shore gave up on acceptance testing</a>. I use his <a href="http://jamesshore.com/Blog/How-I-Use-Fit.html">&#8220;describe-demonstrate-develop&#8221; process description</a> all the time in <a href="http://neuri.co.uk/training">my workshops</a>, so I guess I better stop doing that. Jim Shore <a href="http://jamesshore.com/Blog/The-Problems-With-Acceptance-Testing.html">wrote</a>:</p>
<blockquote><p>My experience with Fit and other agile acceptance testing tools is that they cost more than they&#8217;re worth. There&#8217;s a lot of value in getting concrete examples from real customers and business experts; not so much value in using &#8220;natural language&#8221; tools like Fit and similar.</p></blockquote>
<p>The two failure patterns that Shore describes in <a href="http://jamesshore.com/Blog/The-Problems-With-Acceptance-Testing.html">his post</a> are falling back on testers to write everything and merging acceptance and integration tests. I&#8217;ve experienced both of these myself, and it seems that they are common in general. We discussed both during the <a href="http://gojko.net/2009/09/24/top-10-reasons-why-teams-fail-with-acceptance-testing/">top 10 ways to fail with acceptance testing</a> openspace session at <a href="/tag/citcon">CITCON</a>  Europe last year. However, there are good ways to solve both problems. <span id="more-1633"></span></p>
<p>I never really expected customers to write anything themselves, but I was relatively successful in persuading them to participate in <a href="http://www.acceptancetesting.info/key-ideas/specification-workshop">specification workshops</a> that led to examples which were then converted to acceptance tests later. Another idea I discovered while doing the research for my new book is discussing the key examples with customers and then going off to write detailed test pages, which then get verified by the customers. The third good idea is doing ad-hoc specification writing sessions when a developer needs information, by involving a tester and a business analyst. This is a lot less formal than a specification workshop and gives you similar benefits if you have all the knowledge in the room (or readily available) most of the time. </p>
<p>Not preserving acceptance tests as a separate group and mixing quick and slow tests is something that most people, at least according to my ongoing research, get burned with at some point but again teams learn from that and improve.</p>
<p>One of the biggest benefits from acceptance testing for me was that the teams finally get a source of information on what goes on in the system as reliable as the code itself. Without acceptance tests, code is the only thing you can really trust and any other documentation gets outdated very quickly. And such tests are much easier to read and understand than the code because they are on a higher level and in a natural language. Having a <a href="http://www.acceptancetesting.info/key-ideas/live-documentation">live specification</a> helps me quite a lot when change requests come in later. It also helps with handing over and taking over code. Acceptance tests stay relevant throughout the project because they are automated, and automated tests are kept up to date in order for them to pass. Automation, and consequently a tool, are necessary to get this benefit. With informal agreements and on-site reviews that Jim Shore describes, I guess something else needs to be in place to facilitate this. </p>
<p>I agree with Shore that it takes a while for the problems with tools such as FIT to surface, but I&#8217;m not sure whether that is tool related or not. Most people I spoke to so far said that it took them between six months and a year to discover that acceptance testing isn&#8217;t about the tools but about communication, and that the biggest benefit is in the examples as Shore wrote. A notable exception to six months to a year rule was <a href="http://lisacrispin.com/wordpress/">Lisa Crispin</a>&#8217;s team who generally started out knowing what they need (but that&#8217;s because she had done it before). Clear examples and improved communication are the biggest benefits of the process, but using a tool brings some additional nice benefits as well. A tool gives us an impartial measure of progress. <a href="http://codebetter.com/blogs/ian_cooper/">Ian Cooper</a> said during the interview for my new book that &#8220;the tool keeps developers honest&#8221;, and I can certainly relate to that. With tests that are evaluated by an impartial tool, &#8220;done&#8221; is really &#8220;what everyone agreed on&#8221;, not &#8220;almost done with just a few things to fill in tomorrow&#8221;. I&#8217;m not sure whether an on-site review is enough to guard against this completely.</p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2010/03/01/are-tools-necessary-for-acceptance-testing-or-are-they-just-evil/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>How to effectively define a sufficient set of BDD scenarios/Acceptance tests?</title>
		<link>http://gojko.net/2010/01/06/how-to-effectively-define-a-sufficient-set-of-bdd-scenariosacceptance-tests/</link>
		<comments>http://gojko.net/2010/01/06/how-to-effectively-define-a-sufficient-set-of-bdd-scenariosacceptance-tests/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 07:31:49 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[acceptance testing]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[atdd]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[fitnesse]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=1557</guid>
		<description><![CDATA[I got this question from a reader today:

How would you effectively define a sufficient set of If-When-Then scenarios to test for correctness what is potentially an extremely large set of transformations?


BDD scenarios (and agile acceptance tests in general) are not about full regression testing &#8211; they work best as a set of examples that demonstrate [...]]]></description>
			<content:encoded><![CDATA[<p>I got this question from a reader today:</p>
<blockquote><p>
How would you effectively define a sufficient set of If-When-Then scenarios to test for correctness what is potentially an extremely large set of transformations?
</p></blockquote>
<p><span id="more-1557"></span></p>
<p>BDD scenarios (and agile acceptance tests in general) are not about full regression testing &#8211; they work best as a set of <a href="http://www.acceptancetesting.info/key-ideas/executable-specifications">examples that demonstrate business rules which need to be developed</a>, and as the software matures become <a href="http://www.acceptancetesting.info/key-ideas/live-documentation">live documentation</a> of what the system does. So they typically should contain:</p>
<ul>
<li>A representative example demonstrating each important aspect of a business rule. Business users, analysts or customers will typically lead defining these.</li>
<li>An example demonstrating each important technical edge case (technical boundary conditions) developers will typically suggest cases here. Business users, analysts or customers will define the correct expected behaviour.</li>
<li>An example demonstrating each particularly troublesome area of the expected implementation (such as cases that caused bugs in the past, boundary conditions that might not be explicitly demonstrated by previous examples etc). Testers will typically suggest these and business users, analysts or customers will define the correct behaviour.</li>
</ul>
<p>I would start by asking business users to define important examples, then developers and testers to comment on these examples and suggest important conditions and cases not covered by existing examples. I would do this in a <a href="http://www.acceptancetesting.info/key-ideas/specification-workshop">specification workshop</a> to allow everyone to benefit from a discussion and build a shared understanding of the problem. At the point where everyone is happy that they have enough information to work, we have enough examples. Then I would capture the examples discussed during the workshop, identify potential duplicates, remove information not directly related to the business rules for the cases and formalise them as acceptance tests/BDD scenarios.</p>
<p>This is not to say that additional examples cannot be added later to provide a more complete functional regression check. This can even be automated using the same scenario step format and automation tools and helpers as the other examples. But I like to keep the two separate so that there is a small and focused specification that can be easily read and understood later, when things change. When using tools such as FitNesse, you can link the two sets of examples with an &#8220;For Additional  Examples, See &#8230;&#8221; link to point people to a full regression set later. Having them separate also allows you to quickly run the entire specification and get faster feedback.</p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2010/01/06/how-to-effectively-define-a-sufficient-set-of-bdd-scenariosacceptance-tests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is Concordion good for testers?</title>
		<link>http://gojko.net/2009/12/16/is-concordion-good-for-testers/</link>
		<comments>http://gojko.net/2009/12/16/is-concordion-good-for-testers/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 19:16:20 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[acceptance testing]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[concordion]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=1499</guid>
		<description><![CDATA[I got this question today from a blog reader:

They are thinking about using Concordion here. I remember you made some comments about using it. Can it be used sensibly by a tester without lots of dev experience?

Concordion is a great tool for acceptance testing as support for development. Whether it can be used sensibly by [...]]]></description>
			<content:encoded><![CDATA[<p>I got this question today from a blog reader:</p>
<blockquote><p>
They are thinking about using Concordion here. I remember you made some comments about using it. Can it be used sensibly by a tester without lots of dev experience?
</p></blockquote>
<p>Concordion is a great tool for acceptance testing as support for development. Whether it can be used sensibly by a tester without lots of development experience, that depends on what the intended use is. Concordion tests/results are HTML files, so anyone can read them using a browser. I&#8217;ve never tried to write Concordion tests using Word or anything similar, only by hand-coding HTML, so I don&#8217;t know whether tests can be maintained with a visual tool. However, anyone with basic HTML knowledge should be able to write tests as well. In terms of running the tests, Concordion runs within JUnit/NUnit, so this should be fairly simple as well.</p>
<p>Concordion does not have a test management tool and intentionally doesn&#8217;t allow you to reuse or share automation components, so it requires a fair bit of cooperation between developers and testers. I think this is very good for tests that support development, but it might be a problem for retro-fitting regression test packs into an existing product if testers are expected to do the bulk of work.</p>
<p>I wrote a <a href="http://gojko.net/2008/08/25/concordion-agile-acceptance-testing-with-free-form-text/">review of concordion last year</a>, which will give you a bit more detail on how it works. I also have a <a href="http://gojko.net/2009/09/01/acceptance-testing-in-plain-english-with-concordion-net/<br />
">short video about it</a> (.NET oriented but still a good introduction to capabilities):</p>
<p>David Peterson, the author of Concordion, spoke about it at the agile acceptance testing tools round-up event, and that <a href="http://gojko.net/2009/06/04/agile-acceptance-testing-tools-roundup-videos/<br />
">video is also online</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2009/12/16/is-concordion-good-for-testers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top 10 reasons why teams fail with Acceptance Testing</title>
		<link>http://gojko.net/2009/09/24/top-10-reasons-why-teams-fail-with-acceptance-testing/</link>
		<comments>http://gojko.net/2009/09/24/top-10-reasons-why-teams-fail-with-acceptance-testing/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 12:19:37 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[presentations]]></category>
		<category><![CDATA[acceptance testing]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[citcon]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=1148</guid>
		<description><![CDATA[I facilitated an openspace session on acceptance testing and collaboration between business people, developers and testers at CITCON Europe last week. We started with a list of five common reasons why I&#8217;ve seen teams fail with acceptance testing but added five more during the discussion, so here&#8217;s an expanded top 10 list:


No collaboration &#8212; as [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/images/citcon_aat.jpg" style="border:1px solid black; width:400px; margin:5px 5px 5px 5px" align="left" />I facilitated an openspace session on acceptance testing and collaboration between business people, developers and testers at <a href="/tag/citcon">CITCON Europe last week</a>. We started with a list of five common reasons why I&#8217;ve seen teams fail with acceptance testing but added five more during the discussion, so here&#8217;s an expanded top 10 list:<br />
<br clear="all" /><span id="more-1148"></span></p>
<ol>
<li><b>No collaboration</b> &mdash; as a specification of a system that acts as the shared definition of done, acceptance tests need to be collaboratively produced and agreed upon. Business people, developers and testers should all provide input, each from their own area of expertise. The discussion that happens around the specification is actually more valuable than the tests themselves, as people build a shared understanding of the domain and the problem at hand. If this discussion doesn&#8217;t happen, then teams still feel the effects of <a href="http://www.acceptancetesting.info/key-ideas/telephone-game/">the telephone game</a>. Symptoms of this problem are developers writing acceptance tests themselves, testers being expected to handle everything about acceptance testing and business dictating tests without any feedback from developers or testers. The solution for this are <a href="http://www.acceptancetesting.info/key-ideas/collaborative-specifications/">collaborative specifications</a> and <a href="http://www.acceptancetesting.info/key-ideas/specification-workshop">specification workshops</a>.</li>
<li><b>Focusing on how, not on what</b> &mdash; business specifications should be clear and understandable and allow the team to implement the best possible solution without prescribing the design or the implementation. Too often tests describe how something should be implemented rather than what should be implemented. Tests such as these are too low level, hard to understand and always turn out to be a pain to maintain long-term. Instead of facilitating system change they inhibit it as people will be reluctant to introduce changes that break a lot of tests. Symptoms of this problem are action-oriented acceptance tests, lots of workflows or duplication in tests and tests that are very technical. The solutions for this are <a href="http://www.acceptancetesting.info/key-ideas/communicating-intent">communicating intent</a> and <a href="http://www.acceptancetesting.info/key-ideas/distilling-the-specification/">distilling the specification</a>.</li>
<li><b>Tests unusable as live documentation</b>  &mdash; one of the greatest benefits of agile acceptance testing is that we are gradually building a human readable specification of the system. This specification is ideally automated to a great degree so that we can be confident that it is in sync with the code. This solves the problem of the running code being the only thing you can really trust about what the system does. Correct, easily understandable and accessible documentation is crucial for future change. If tests don&#8217;t serve as a live documentation that those benefits are lost. Symptoms of this problem are very technical tests, long tests, hard to understand tests, tests that are poorly organised so that you can&#8217;t quickly find relevant tests for a particular piece of functionality. Solutions for this is to ensure that tests can be used as a <a href="http://www.acceptancetesting.info/key-ideas/live-documentation/">live documentation</a>, reorganising them and updating when the ubiquitous language changes.</li>
<li><b>Expecting acceptance tests to be a full regression suite</b> &mdash; acceptance tests are primarily a specification of what the system should do and should deal with exemplars that represents whole sets of cases. Specifying too much and covering all possible edge cases will make them hard to understand and might introduce an effect similar to paralysis by analysis. So acceptance tests cannot provide a full regression test suite and additional tests are required (including exploratory testing). Symptoms of this problem are tests that are very long and verify a large number of similar cases. Note that this doesn&#8217;t mean that regression tests can&#8217;t be written and automated using the same tools as acceptance tests.</li>
<li><b>Focusing on tools</b> &mdash; some teams focus too much on tools and features of particular  tools, disregarding things that do not naturally fit into their chosen toolset. This makes the specification vague in parts that aren&#8217;t covered by a particular tool. Instead of that, teams should be focusing on the business specifications and then choosing the right tool for the job. In particular, tools should not play an important part in the specification workshop. Symptoms of this problem are ignoring the UI (as UI tests are hard to automate) and wasting time on converting specifications in a format suitable for a particular tool during the <a href="http://www.acceptancetesting.info/key-ideas/specification-workshop">specification workshops</a> (which breaks the flow of the discussion and wastes valuable time).</li>
<li><b>Not considering acceptance testing as value added activity</b> &mdash; agile acceptance testing is not about QA, but more about specifying and agreeing on what needs to be done. Teams that consider it part of QA often delegate the responsibility to it to junior programmers and testers, which effectively means that junior team members will be writing the specification (which is wrong on so many levels that I don&#8217;t know where to start). The solutions for this are <a href="http://www.acceptancetesting.info/key-ideas/specification-workshop">specification workshops</a>.</li>
<li><b>&#8220;Test code&#8221; not maintained with love</b> &mdash; tests and code to automate them are often considered as less important than production code, so given to less capable developers and testers to implement and maintain. This leads to huge maintenance problems later and can cause teams to completely abandon full suites of tests. Acceptance tests are the specification of a system so they are crucial to the success of a project. They also need to be maintained and kept in sync with the live project language and design in order to serve as a <a href="http://www.acceptancetesting.info/key-ideas/live-documentation/">live documentation</a>. </li>
<li><b>Objectives of team members not aligned</b> &mdash; if the job of business analysts is only to deliver the specifications, the job of developers only to ship the system and the job of testers to ensure quality, then people won&#8217;t pull in the same direction or invest time in producing good acceptance tests. This is a management issue but failures with acceptance testing might make it more visible.</li>
<li><b>No management buy-in</b> &mdash; successful acceptance testing requires an active participation of the business and with no management buy-in the benefits will simply not be there (also related to #1).</li>
<li><b>Underestimating the skill required to do this well</b> &mdash; introducing acceptance testing is a tall order and often means changing the way teams are organised and approach specifications. This requires a lot of time and investment in skill-up, mastering tools, facilitating workshops and dealing with resistance to change. Underestimating the effort required to do this properly might cause teams to think that they failed and get disappointed too early.</li>
</ol>
<p><a href="http://warzee.fr/entry/opening_session_citcon_09_europe">Xavier Warzee filmed the session so watch the videos</a> if you are interested to see more of this discussion (scroll down on the page, it&#8217;s the last batch of videos). You can also check out two more write-ups by <a href="http://www.touilleur-express.fr/2009/09/20/citcon-2009-user-acceptance-test/">Nicolas Martignole</a> and <a href="http://social.hortis.ch/2009/09/24/citcon-paris-2009-le-compte-rendu/">Xavier Bourguignon</a> (both in French) and <a href="http://citconf.com/wiki/index.php?title=AcceptanceTesting">session notes</a> from the CITCON wiki. </p>
<p>If applying acceptance testing and BDD effectively is something that you want to learn more about, you might want to register for the <a href="http://skillsmatter.com/course/agile-testing/writing-software-that-matters-bdd-and-specification-by-example/wd248">Writing Software that Matters</a> workshop (Dec 4th, central London). I also run <a href="http://neuri.co.uk/training/agile-acceptance-testing/">on-site workshops</a> that help teams get started and implement agile acceptance testing. </p>
<p>Image credits: <a href="http://www.flickr.com/photos/iamroot/3947908104/in/set-72157622284781301/">Cirilo Wortel</a></p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2009/09/24/top-10-reasons-why-teams-fail-with-acceptance-testing/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
