Measure test quality using coverage analysis
Atollic® TrueANALYZER® measures the test coverage during system testing, when test procedures exercise the full embedded application in its normal in-target environment. Atollic TrueANALYZER thus measures the test quality, and improves confidence in code reliability and robustness, as well as highlighting inadequately tested parts of the software.
By performing rigorous test quality measurements using advanced coverage analysis, you get numerical facts on how good the test procedures are for different parts of your software. With knowledge on where your testing is weak, you can improve the test procedures and re-run a more thorough test, potentially finding more software errors. Atollic TrueANALYZER not only display the achieved test quality, but also shows where in the code, and why, the test coverage did not get better.
Atollic TrueANALYZER performs in-target verification using dynamic execution-flow analysis, where the execution paths and all branch decisions are recorded. In addition to measuring the test quality (gauged as coverage level), all branch decisions (such as if-, switch- and while- statements) are displayed in the user interface, along with truth tables visualizing which conditions (subexpressions) was covered or not in a branch decision. It is thus easy to understand why the test procedures do not achieve better coverage, and so Atollic TrueANALYZER also acts as a test case debugger.
Atollic TrueANALYZER supports different strengths of coverage analysis, even up to Modified Condition/Decision Coverage (MC/DC) level, which for example is required for safety-critical aircraft software.
These articles provide background information on different types of code coverage analysis, and why it is important to use them:
Atollic TrueANALYZER analyze the source code of your application to find all branch decision points. It then instrument the application, auto-compile and auto-download the instrumented application to the target board using the Atollic TrueSTUDIO compiler and the same JTAG probe normally used for debugging.
Atollic TrueANALYZER monitor the execution flow of the application in the target board, and immediately detect which new execution paths are exercised as the board interacts with its environment (users press buttons, sensors receive data, and other systems send communication packages etc).
Code coverage data can be uploaded to the Atollic TrueSTUDIO IDE at any time, where it is presented in easy-to-use format. Code coverage data is available for the application as a whole, as well as per function. Line coloring in the editor clearly visualise coverage in the code as well. Additionally, all branch decisions in each C function are listed, along with truth tables visualizing the coverage of the conditions (subexpressions) in each branch decision.
Operation is super-simple, as a full MC/DC coverage analysis is performed with your application in your target board, with only two mouse clicks (one to start analyzis and one to upload the measured data)! Reports that typically act as formal proof of test coverage can be generated as CSV files.
Main features are:
- Measures the quality of your test procedues
- Also display where in the code, and why, better test coverage is not achieved
- Advanced code coverage measurements executed in the embedded target
- Automatic analysis, instrumentation, compilation and downloading into target
- Measurement results are uploaded from the target CPU to the PC for visualization
- Report generator export to CSV files
- Block coverage
- Function coverage
- Function call coverage
- Branch coverage
- Modified condition/decision coverage (MC/DC-level)
Atollic TrueANALYZER integrates fully into Atollic TrueSTUDIO®, the premier C/C++ development tool for embedded developers. By complementing these two products with Atollic TrueVERIFIER® (unit test automation), you get a superior tool solution for the most demanding of software projects!
For more information, read our white paper: