Concordion

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Concordion
File:Concordion-Logo.png
Developer(s) Concordion Organization
Stable release 1.5.1 / July 25, 2015 (2015-07-25)
Development status Active
Written in Java, .NET
Operating system Cross-platform
Type Acceptance testing tool
License Apache License 2.0
Website www.concordion.org

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

<templatestyles src="Reflist/styles.css" />

Cite error: Invalid <references> tag; parameter "group" is allowed only.

Use <references />, or <references group="..." />

External links

  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.