Concordion

Concordion
Developer(s) Concordion Organization
Stable release 1.4.7 / January 20, 2015
Development status Active
Written in Java
Operating system Cross-platform
Type Acceptance testing tool
License Apache License 2.0
Website http://www.concordion.org

Concordion is an acceptance testing framework developed by David Peterson for the Java programming language.[1]

Inspired by the Fit Framework, David states the following aims were behind Concordion:[2]

How it works

Concordion tests are written in HTML and then instrumented with special attributes that Concordion interprets to execute the test. Rather than forcing product owners to specify requirements in a specially structured language, Concordion lets you write them in normal language using paragraphs, tables and proper punctuation. This makes the specifications much more natural to read and write, and helps everyone to understand and agree about what a feature is supposed to do.[3]

The HTML files are typically stored with the source code, which has the benefit that they can be under the same version control system as the rest of the code, but has the potential drawback that the tests are effectively owned by the programmers, rather than the testers.[4]

Concordion enriches agile processes[5][6] and has been successfully applied in industrial context.[7]

Example

HelloWorld.html
Before instrumentation
<html>
    <body>
        <p>The greeting for <b>World</b> is <b>Hello World!</b></p>
    </body>
</html>
HelloWorld.html
After instrumentation
<html xmlns:concordion="http://www.concordion.org/2007/concordion">
    <body>
        <p>The greeting for <b concordion:set="#name">World</b> is
        <b concordion:assertEquals="greetingFor(#name)">Hello World!</b>
        </p>
    </body>
</html>
HelloWorldTest.java
The fixture that works with the instrumentation
package org.wikipedia;
 
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
 
@RunWith(ConcordionRunner.class)
public class HelloWorldTest {
 
    public String greetingFor(String firstName) {
        return "Hello " + firstName + "!";
    }
}

Ports

Concordion has been ported to other languages including:

References

  1. Gärtner, Markus (Jul 2012). ATDD by Example: A Practical Guide to Acceptance Test-Driven Development. Addison-Wesley Professional. ISBN 0321784154.
  2. "Concordion FAQ". Retrieved May 2, 2011..
  3. Riley, Tim; Goucher, Adam (October 2009). Beautiful Testing: Leading Professionals Reveal How They Improve Software. O'Reilly Media. p. 350. ISBN 0596159811.
  4. Adzic, Gojko (2009). Bridging the Communication Gap: Specification by Example and Agile Acceptance Testing. London: Neuri Limited. ISBN 9780955683619.
  5. Besson, Felipe M.; Beder, Delano M.; Chaim, Marcos L. (June 2010). "An Automated Approach for Acceptance Web Test Case Modeling and Executing". Agile Processes in Software Engineering and Extreme Programming. 11th International Conference on Agile Software Development, XP 2010. Trondheim, Norway: Springer Berlin Heidelberg. pp. 160–165.
  6. Kamalrudin, Massila; Sidek, Safiah; Moketar, Nor Aiza; Robinson, Mark (2013). "Automated Acceptance Testing Tools Evaluation in Agile Software Development". Science International (Publications International Lahore, Pakistan). ISSN 1013-5316 (CODEN: SINTE 8): 1053–58.
  7. Latorre, Latorre (2014-06-01). "A successful application of a Test-Driven Development strategy in the industrial environment". Empirical Software Engineering (Springer US) 19 (3): 753–773. doi:10.1007/s10664-013-9281-9.

External links