Concordion
   HOME

TheInfoList



OR:

Concordion is a
specification by example Specification by example (SBE) is a collaborative approach to defining requirements and business-oriented functional tests for software products based on capturing and illustrating requirements using realistic examples instead of abstract statemen ...
framework originally developed by David Peterson, and now maintained by a team of contributors, led by Nigel Charman. Inspired by the Fit Framework, David states the following aims were behind Concordion: * Improved readability of documents * More "opinionated" (scripting is actively discouraged) * Easier to use


How it works

Concordion specifications are written in Markdown, HTML or Excel and then instrumented with special links, attributes or comments respectively. When the corresponding test fixture class is run, Concordion interprets the instrumentation 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. The Markdown, HTML or Excel 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 ensuring the specification and tests are branched and merged along with the main source code. Concordion includes a flexible extension mechanism for adding functionality, for example implementing new commands, listening to events, or modifying the output documentation. By providing functionality such as embedding screenshots, storyboards or logging output, extensions provide confidence in what the test is doing without locking the test into a specific implementation. Concordion enriches agile processes and has been successfully applied in industrial context.


Example


Markdown format specification


HTML format specification


The fixture code

; 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


Integrated Development Environment Support

The Concordion Support plugin for the
IntelliJ IDEA IntelliJ IDEA is an integrated development environment (IDE) written in Java for developing computer software written in Java, Kotlin, Groovy, and other JVM-based languages. It is developed by JetBrains (formerly known as IntelliJ) and is av ...
Integrated development environment An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools ...
(IDE) simplifies development of fixtures and specifications with features including autocompletion, navigation between spec and test fixture, renaming, running tests, inspections and quick fixes. The
Eclipse (software) Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, u ...
Concordion plugin is much more limited and hasn't been updated since 2011. The original author has stopped using Concordion and Eclipse and is unable to accommodate the necessary time to extend and maintain the plugin.


Ports

Concordion has been ported to other languages including: * C#
Concordion.NET
*
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...

PyConcordion
*
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called ...

Ruby-Concordion


References


External links

* * * * {{GitHub, concordion/concordion.net Programming languages Free software programmed in Java (programming language) Free software testing tools Software using the Apache license