To cite Concordia in a paper, please cite its PhD Thesis:
PINTO, Thiago Delgado. Unifying Agile requirements specification quality control and implementation conformance assurance. 2018. Doctoral Thesis. Pontifical Catholic University of Rio de Janeiro, Informatics Department, 2018.
Concordia Compiler infers test cases, test data and test oracles from specification files written in Concordia and tries to cover a large number of paths that can expose defects in your application. Its approach keeps the specification relevant, up-to-date and more useful for stakeholders, testers, and developers than other documentation formats.
We recommend the following usage cycle:
Write or update your requirements specification with the Concordia Language and validate them with users or stakeholders;
Use Concordia Compiler for generating functional tests from the specification and running them;
If the tests failed, there are some possibilities:
a) You still haven't implemented the corresponding behavior in your application. In this case, just implement it and run the tests again.
b) Your application is behaving differently from the specification. In this case, it may have bugs or you or your team haven't implemented the behavior exactly like described in the specification.
Whether the application has a bug, we are happy to have discovered it! Just fix it and run the tests again to make sure that the bug is gone.
Otherwise, you can decide between changing your application to behave exactly like the specification describes, or changing the specification to match your application behavior. In the latter case, back to step 1.
If the tests passed, great job! Now you can write new requirements or add more test cases, so just back to step 1.
When you type concordia, the compiler performs the following process:
It reads your .feature and .testcase files, and uses a lexer and a parser to identify and check documents' structure.