Code coverage
Code Coverage
Dynamic Analysis

Objective measurement of how much of the code has been executed by your tests

Code coverage
Code Coverage
Dynamic Analysis

Objective measurement of how much of the code has been executed by your tests

Cantata code coverage capabilities can be used integrated with Cantata tests, or with any external test driver.

It provides an objective measurement of test execution completeness, to supplement requirements based and robustness tests.

What is Code Coverage?

Code Coverage is a dynamic analysis technique to measure which parts of the code have been executed by tests. The logic structure within the code can be identified by individual constructs (syntax elements). The measurement of these individual constructs is recorded using structural code coverage metrics.

Code coverage analysis is used to identify testing gaps where code is not exercised by requirements driven and robustness driven testing approaches.

Coverage analysis is required for compliance with all international software safety standards, with higher safety levels requiring achievement of more rigorous coverage metrics.

“Using coverage helped us to really think about whether certain functions and blocks were needed. We confirmed great confidence in our software as everything had been tested to 100% decision coverage"

Rolf Keller, Software Engineer,

“Cantata automatically generates test reports that prove what has been tested and how extensive the test coverage was for each test case”

Johnny Johansson, Global Validation & Verification Tools Manager, SAAB

What does Cantata Code Coverage help me do?

MEASURE COVERAGE

Code coverage is measured using the following metrics, with standard specific Rule Sets for integrated checking of required code coverage levels.

  • Function Entry Points
  • Function Call-Returns
  • Basic Blocks
  • Statements
  • Decisions (branches)
  • Loops
  • Relational Operators
  • Boolean Operators
  • Conditions
  • MC/DC (Unique-cause and Masking variants)

DIAGNOSE COVERAGE RESULTS

Cantata diagnostics present coverage from complete project code-trees, drilling down to individual code constructs within each line of code helping you to pin-point gaps and direct test effort efficiently.

Automatic test case coverage optimisation aids test case vector selection from large data sets, and reduces regression testing overhead.

UNDERSTAND BUILD VARIANT COVERAGE

Build Variant Coverage understands source code executed over more than one build variant. Cantata uses pre-compiled defines (#defines) to separately identify the different build variants. Cantata Coverage Viewer displays aggregated data for multiple build variants, of the same source code.

FILTER COVERAGE RESULTS

Cantata provides unparalleled filtering of code coverage data by selection of:

  • Coverage Metrics
  • Projects
  • Test Cases
  • Inheritance Contexts
  • User-defined Contexts
  • Build Variants
  • Coverage Files

Cantata can also trace code coverage throughout the execution of individual test cases.

GENERATE REPORTS

In addition to the powerful diagnostics of code coverage results within the Eclipse® GUI, Cantata generates flexible user configurable reports in XML, HTML and safety standards certification ready ASCII and HTML text reports.

Build Variant Coverage reports aggregate coverage data across all defines, which is suitable as certification evidence for all build variants of the source code.

Reports and certification evidence embed the integrated checks on the achievement of the required coverage metric targets.

How does Cantata Code Coverage Work

Cantata Coverage uses instrumentation (via the GUI or CLI) on a copy of the source code, and coverage data is recorded for both graphical diagnosis and certification ready evidence.

Coverage analysis can be used integrated with Cantata tests or used to measure execution from other tests, and data from multiple tests can be easily combined.

Analysis is made simpler by customisable coverage Rule Sets, which automate all the code instrumentation, data reporting and required coverage checking, for all the main software safety standards.