Cantata ++

from Wikipedia, the free encyclopedia

Cantata ++ or simply Cantata , as it is called in the newer versions, is a patented computer program for software tests during the runtime of C and C ++ programs.


Cantata belongs to the group of dynamic test tools . These bring compiled test cases and add -linked test item on the host - or a target platform for execution . The connection of a debugger is optional.

Classic users of these software test procedures are development teams for host software or for hardware- related programming of embedded systems . Cantata users are typically software developers and test designers for software testing .

The IDE Cantata is Eclipse -based and also provides a Eclipse plugin for appropriate development environments such. B. the compiler manufacturer ready. Conversely, all Eclipse plugins that can be used in the Cantata IDE can be installed. Since the program has an integrated command line , it is also suitable for integrating test automation and continuous integration .

Is developed Cantata from Group QA system . QA Systems GmbH acquired the product and its entire development team in 2012 from IPL Information Processing Ltd. taken over and then QA Systems Ltd. based in Bath (UK).


Cantata, the user creates a series of unit testing , module integration testing and coverage testing for C and C ++ - Code .

The necessity of such tests usually arises from the product liability , which is measured according to the current state of the art. This in turn is expressed in standards such as B. IEC 61508 and derivatives such as ISO 26262 or EN 50128 . This includes requirements for how functional safety should be checked with regard to a safety requirement level.

Which C - and C ++ - sources in Cantata be tested, the user sets the start laid a test cycle. He makes his decision depending on the maturity of the modules , the interfaces of which should not change if possible. After this selection, the user sets up an independent software test project that is managed and maintained virtually parallel to the software development project.

A copy of the source code (software under test, test item) is provided and surrounded with additional instructions . This instrumentation of a module is necessary because it serves to put the test item in a technically feasible framework. The test frame is generated by Cantata and contains, for example, the test driver and the necessary program entry point main , as this is usually missing in the test item itself.

Individual functions / methods of the module are executed with defined input values. The result values ​​are compared with expected values ​​to be determined. This test case specification is the task of the test designer and is carried out at his own discretion, based on a coordinated test strategy , or based on the existing specification of functional requirements.

Because the test item in the software development project is surrounded by other modules, these must be removed from the software test project for a module test. In their place there are substitutes , which simulate the actual execution of the surrounding modules in a simplified way. These substitutes are known as stubs or mocks and have the same functional signature as their originals.

The function bodies of such stubs and mocks are also generated via Cantata . Either automatically on the command line or in the IDE. The test designer is responsible for the simplified implementation of the substitute. However, he can even use a code generator for programming if he wants. This is particularly useful when testing legacy code of reusable software components .

Optionally, the code coverage is measured during runtime , additionally or exclusively, i. H. if desired, even without prior test case specification. Coverage tests are also relevant for safety-critical applications with SIL . This can be used to measure, for example, instruction coverage , decision coverage and others.

Cantata differs from other software test tools: With Cantata, the test designer only enters a small part of the test case using the graphical dialog. He programs the rest in the structured source code of the test framework. The finished test binary (= binary file that is executed with the test) contains the test values.

Product features

Host operating systems

Object languages

Target compiler

License terms


  • Peter Liggesmeyer: Software quality: testing, analyzing and verifying software. Spectrum, Akademischer Verlag, Heidelberg, Berlin, 2002, ISBN 3-8274-1118-1

Web links