<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Concordion: Agile Acceptance Testing with free-form text</title>
	<atom:link href="http://gojko.net/2008/08/25/concordion-agile-acceptance-testing-with-free-form-text/feed/" rel="self" type="application/rss+xml" />
	<link>http://gojko.net/2008/08/25/concordion-agile-acceptance-testing-with-free-form-text/</link>
	<description>Building software that matters</description>
	<lastBuildDate>Sat, 31 Jul 2010 09:50:52 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Neil Thorne</title>
		<link>http://gojko.net/2008/08/25/concordion-agile-acceptance-testing-with-free-form-text/comment-page-1/#comment-74109</link>
		<dc:creator>Neil Thorne</dc:creator>
		<pubDate>Sun, 14 Feb 2010 18:20:32 +0000</pubDate>
		<guid isPermaLink="false">http://gojko.net/?p=302#comment-74109</guid>
		<description>To me if your testers cannot code they have no business writing an automated acceptance tests. Automation is engineering plain and simple.

You might be able to get away with writing a handful of tests, but a suite of 500-1000 acceptance tests needs to be maintainable otherwise it will die. This requires coding skill.

In our team the testers take responsibility for defining the acceptance criteria with the customer. They read use cases/stories and convert them into Concordion specs.

A developer can then work with the tester if necessary to automate depending on the testers coding ability. The essence of the spec (user&#039;s intentions are unaffected). So there is no handover. I think the previous commenter is right - the throw it over the wall approach can apply to any of the ATDD frameworks.

If anything because testers may rely more on developers this encourages collaboration in my team.

Tying your acceptance tests to the implementation of a system smells terrible to me. Your users&#039; intentions may be stable but the domain objects in your system that implement those intentions may need to be refactored many times. This kind of coupling makes your acceptance tests brittle and unmaintainable.

To me ATDD is about coding discipline with a very customer friendly facing intention based &quot;view&quot;. Concordion is the simplest most direct framework for achieving this for me.

I talk more about why I prefer Concordion over FitNesse here

http://www.dish2dish.com/confluence/display/NPB/2010/02/14/Why+I+prefer+Concordion+to+FitNesse</description>
		<content:encoded><![CDATA[<p>To me if your testers cannot code they have no business writing an automated acceptance tests. Automation is engineering plain and simple.</p>
<p>You might be able to get away with writing a handful of tests, but a suite of 500-1000 acceptance tests needs to be maintainable otherwise it will die. This requires coding skill.</p>
<p>In our team the testers take responsibility for defining the acceptance criteria with the customer. They read use cases/stories and convert them into Concordion specs.</p>
<p>A developer can then work with the tester if necessary to automate depending on the testers coding ability. The essence of the spec (user&#8217;s intentions are unaffected). So there is no handover. I think the previous commenter is right &#8211; the throw it over the wall approach can apply to any of the ATDD frameworks.</p>
<p>If anything because testers may rely more on developers this encourages collaboration in my team.</p>
<p>Tying your acceptance tests to the implementation of a system smells terrible to me. Your users&#8217; intentions may be stable but the domain objects in your system that implement those intentions may need to be refactored many times. This kind of coupling makes your acceptance tests brittle and unmaintainable.</p>
<p>To me ATDD is about coding discipline with a very customer friendly facing intention based &#8220;view&#8221;. Concordion is the simplest most direct framework for achieving this for me.</p>
<p>I talk more about why I prefer Concordion over FitNesse here</p>
<p><a href="http://www.dish2dish.com/confluence/display/NPB/2010/02/14/Why+I+prefer+Concordion+to+FitNesse" rel="nofollow">http://www.dish2dish.com/confluence/display/NPB/2010/02/14/Why+I+prefer+Concordion+to+FitNesse</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Manfred Rätzmann</title>
		<link>http://gojko.net/2008/08/25/concordion-agile-acceptance-testing-with-free-form-text/comment-page-1/#comment-59401</link>
		<dc:creator>Manfred Rätzmann</dc:creator>
		<pubDate>Fri, 04 Sep 2009 11:57:49 +0000</pubDate>
		<guid isPermaLink="false">http://gojko.net/?p=302#comment-59401</guid>
		<description>We successfully use Concordion together with TestNG in a recent project for more than half a year now. Knowing FitNesse from another project I can agree to all the points Gareth listed before. Writing the specs is done by testers, developers and business people together before implementing a feature. Because the specs are deployed immediately and display the current state of development and testing to all stake-holders, that means no &quot;hand-over&quot; at all. It enables the product owner to continuously review how a story gets implemented and tested. Our reviews at the end of each sprint are very short since then.

&lt;&lt;i&gt;&gt;

Our tests do not address any domain object or service directly. All domain dependencies are wrapped by a Testing API. This way we minimize refactoring and maintenance troubles. Because the Testing API is written in Java (or Groovy) you can have as much includes, reusage, type-adapters or whatever you need at this level. And you keep this technology needs apart from the testing needs. So the tests stay very readable, maintainable and stable - even if your domain changes.

&lt;&gt;

Definitely: Yes

&lt;&gt;

Yes

&lt;&gt;

It&#039;s a matter of your  approach - as always. To us Concordion is the perfect tool to adopt the Agile Testing approach we want to use.&lt;/i&gt;</description>
		<content:encoded><![CDATA[<p>We successfully use Concordion together with TestNG in a recent project for more than half a year now. Knowing FitNesse from another project I can agree to all the points Gareth listed before. Writing the specs is done by testers, developers and business people together before implementing a feature. Because the specs are deployed immediately and display the current state of development and testing to all stake-holders, that means no &#8220;hand-over&#8221; at all. It enables the product owner to continuously review how a story gets implemented and tested. Our reviews at the end of each sprint are very short since then.</p>
<p>&lt;<i>&gt;</p>
<p>Our tests do not address any domain object or service directly. All domain dependencies are wrapped by a Testing API. This way we minimize refactoring and maintenance troubles. Because the Testing API is written in Java (or Groovy) you can have as much includes, reusage, type-adapters or whatever you need at this level. And you keep this technology needs apart from the testing needs. So the tests stay very readable, maintainable and stable &#8211; even if your domain changes.</p>
<p>&lt;&gt;</p>
<p>Definitely: Yes</p>
<p>&lt;&gt;</p>
<p>Yes</p>
<p>&lt;&gt;</p>
<p>It&#8217;s a matter of your  approach &#8211; as always. To us Concordion is the perfect tool to adopt the Agile Testing approach we want to use.</i></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gareth Powell</title>
		<link>http://gojko.net/2008/08/25/concordion-agile-acceptance-testing-with-free-form-text/comment-page-1/#comment-55352</link>
		<dc:creator>Gareth Powell</dc:creator>
		<pubDate>Wed, 22 Jul 2009 08:59:04 +0000</pubDate>
		<guid isPermaLink="false">http://gojko.net/?p=302#comment-55352</guid>
		<description>Having trialed both Concordion and FitNesse I have recommended that my organisation use Concordion. The reasons for this have been:

 - FitNesse results in a test scripts essentially, and we felt this would cause too much pain when refactoring was required. Whereas Concordion promotes that all the scripting is done in the fixture (Java) code, thus making code resuse and refactoring simpler.

 - Concordion&#039;s integration with JUnit makes it very simple to hook into a Continuous Integration system.

 - The &#039;active&#039; specifcations that result from Concordion are more suitable (and readable) to develop with the business than the wiki pages in FitNesse. This also lends itself more to a Acceptance Test Driven Development approach.

- Source control is considerably easier with Concordion as you&#039;re only dealing with HTML and Java files and writing of both is done with an IDE.

We are yet to employ Concordion in earnest yet, but that is about to change as the first iteration of the new project is due to start soon. So it will be interesting to see how well it performs in a full real world environment.</description>
		<content:encoded><![CDATA[<p>Having trialed both Concordion and FitNesse I have recommended that my organisation use Concordion. The reasons for this have been:</p>
<p> &#8211; FitNesse results in a test scripts essentially, and we felt this would cause too much pain when refactoring was required. Whereas Concordion promotes that all the scripting is done in the fixture (Java) code, thus making code resuse and refactoring simpler.</p>
<p> &#8211; Concordion&#8217;s integration with JUnit makes it very simple to hook into a Continuous Integration system.</p>
<p> &#8211; The &#8216;active&#8217; specifcations that result from Concordion are more suitable (and readable) to develop with the business than the wiki pages in FitNesse. This also lends itself more to a Acceptance Test Driven Development approach.</p>
<p>- Source control is considerably easier with Concordion as you&#8217;re only dealing with HTML and Java files and writing of both is done with an IDE.</p>
<p>We are yet to employ Concordion in earnest yet, but that is about to change as the first iteration of the new project is due to start soon. So it will be interesting to see how well it performs in a full real world environment.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeffrey Cameron</title>
		<link>http://gojko.net/2008/08/25/concordion-agile-acceptance-testing-with-free-form-text/comment-page-1/#comment-45916</link>
		<dc:creator>Jeffrey Cameron</dc:creator>
		<pubDate>Mon, 27 Apr 2009 01:37:52 +0000</pubDate>
		<guid isPermaLink="false">http://gojko.net/?p=302#comment-45916</guid>
		<description>Hey Gojko,

I made a .NET port of Concordion that is in an alpha stage right now.

It does not have a restriction of where the specs are in relation to the fixtures (you can specify this with attributes but I&#039;m moving that code into a config file).

I believe that with OGNL in the backend you can make calls to methods on domain objects from the fixtures if you like, at least with no more work than would be required of Fitnesse right now.  While It is a nice idea to keep domain objects in the fitnesse tests we found the scripting to be very hard to maintain in the long run if code is refactored and the wiki model is a real pain to work into continuous integration.</description>
		<content:encoded><![CDATA[<p>Hey Gojko,</p>
<p>I made a .NET port of Concordion that is in an alpha stage right now.</p>
<p>It does not have a restriction of where the specs are in relation to the fixtures (you can specify this with attributes but I&#8217;m moving that code into a config file).</p>
<p>I believe that with OGNL in the backend you can make calls to methods on domain objects from the fixtures if you like, at least with no more work than would be required of Fitnesse right now.  While It is a nice idea to keep domain objects in the fitnesse tests we found the scripting to be very hard to maintain in the long run if code is refactored and the wiki model is a real pain to work into continuous integration.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nat</title>
		<link>http://gojko.net/2008/08/25/concordion-agile-acceptance-testing-with-free-form-text/comment-page-1/#comment-32887</link>
		<dc:creator>Nat</dc:creator>
		<pubDate>Mon, 25 Aug 2008 18:38:19 +0000</pubDate>
		<guid isPermaLink="false">http://gojko.net/?p=302#comment-32887</guid>
		<description>I&#039;ve used both FIT and Concordion.  I have a couple of comments:

&quot;On the other hand, while FIT/FitNesse community is moving firmly towards using domain objects directly in acceptance tests and reducing the amount of glue code, to eliminate translation between layers and promote domain-driven design, Concordion model is stuck in requiring you to create an explicit test method for every verification in the fixture&quot;

I find that that to be a very good thing.  Coupling domain models to FIT documents becomes a huge drag on refactoring.  

Also, the way that an external user or business expert thinks about the domain and the way that a system *implements* the domain so that it can simulate it are quite different.  For example a business expert will usually model the domain by categorisation while a system implements the domain by composing objects that collaborate.   Trying to use the same model for both aspects of the system makes for a very brittle system with an unnatural architecture in my experience.  FIT fixtures act as a good translation layer that maps between how the business expert thinks about the domain and how the system implements the domain. 

&quot;This smells to me of a hand-over of tests from business people to developers at some point, which is a practice that I don’t approve at all.&quot;

Again, from experience I can say that if this does happen it has nothing to do with Concordion; it&#039;s an organisational problem.  Developers and business experts should collaborate on writing the documents, just as with FIT.  And, again just as with FIT, the developers should help the business experts format and organise the documents so that the test fixtures pick them up.

The test documents do not have to sit alongside the Java code.  They just have to be named and collected into directories so that they can be found as resources at runtime when the root directory containing the documents is added to the Java class-path.


One other plus point: Concordion has an excellent web site.  A lot of the tips on that site apply just as well to FIT.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve used both FIT and Concordion.  I have a couple of comments:</p>
<p>&#8220;On the other hand, while FIT/FitNesse community is moving firmly towards using domain objects directly in acceptance tests and reducing the amount of glue code, to eliminate translation between layers and promote domain-driven design, Concordion model is stuck in requiring you to create an explicit test method for every verification in the fixture&#8221;</p>
<p>I find that that to be a very good thing.  Coupling domain models to FIT documents becomes a huge drag on refactoring.  </p>
<p>Also, the way that an external user or business expert thinks about the domain and the way that a system *implements* the domain so that it can simulate it are quite different.  For example a business expert will usually model the domain by categorisation while a system implements the domain by composing objects that collaborate.   Trying to use the same model for both aspects of the system makes for a very brittle system with an unnatural architecture in my experience.  FIT fixtures act as a good translation layer that maps between how the business expert thinks about the domain and how the system implements the domain. </p>
<p>&#8220;This smells to me of a hand-over of tests from business people to developers at some point, which is a practice that I don’t approve at all.&#8221;</p>
<p>Again, from experience I can say that if this does happen it has nothing to do with Concordion; it&#8217;s an organisational problem.  Developers and business experts should collaborate on writing the documents, just as with FIT.  And, again just as with FIT, the developers should help the business experts format and organise the documents so that the test fixtures pick them up.</p>
<p>The test documents do not have to sit alongside the Java code.  They just have to be named and collected into directories so that they can be found as resources at runtime when the root directory containing the documents is added to the Java class-path.</p>
<p>One other plus point: Concordion has an excellent web site.  A lot of the tips on that site apply just as well to FIT.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
