Concordion
Developer(s) | Concordion Organization |
---|---|
Stable release | 1.5.1 / July 25, 2015 |
Development status | Active |
Written in | Java, .NET |
Operating system | Cross-platform |
Type | Acceptance testing tool |
License | Apache License 2.0 |
Website |
www |
Concordion is an acceptance testing framework developed by David Peterson.[1]
Inspired by the Fit Framework, David states the following aims were behind Concordion:[2]
- Improved readability of documents
- More "opinionated" (scripting is actively discouraged)
- Easier to use
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
- ↑ Gärtner, Markus (Jul 2012). ATDD by Example: A Practical Guide to Acceptance Test-Driven Development. Addison-Wesley Professional. ISBN 0321784154.
- ↑ "Concordion FAQ". Retrieved May 2, 2011..
- ↑ Riley, Tim; Goucher, Adam (October 2009). Beautiful Testing: Leading Professionals Reveal How They Improve Software. O'Reilly Media. p. 350. ISBN 0596159811.
- ↑ Adzic, Gojko (2009). Bridging the Communication Gap: Specification by Example and Agile Acceptance Testing. London: Neuri Limited. ISBN 9780955683619.
- ↑ 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.
- ↑ 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.
- ↑ 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.