C/C++ Code Coverage Tool for Safety Critical Software

Cantata is a safety certified unit and integration testing, and a code coverage analysis tool. Enabling developers to verify code coverage integrated with Cantata tests, or with any external test driver on host native embedded target platforms.

Cantata code coverage provides an objective measurement of test execution completeness, to supplement requirements based and robustness tests

Key code analysis benefits:

  • Pre-set standards code coverage requirements
  • Comprehensive coverage diagnostics
  • Understand coverage across builds and test runs
  • Filter for gaps and bottlenecks
  • Generate reports and certification evidence

Request a full feature license – free of charge!

  • Very simple installation
  • Full technical support
  • Full featured license for a limited period
  • 60 – 90 minute web meeting 
  • Tool overview presentation
  • Customised demonstration
  • Interactive Q&A with experts

Which safety standards require what level of code coverage?

International software safety standards require evidence of low level (unit and integration) testing to obtain certification for the device software.

Cantata is a unit test tool for embedded C/C++ software, certified by SGS-TÜV SAAR as suitable for use at the highest Safety Integrity Levels of all these standards:

  • ISO 26262

    Road vehicles – Functional safety

  • IEC 60880

    Nuclear Power

  • IEC 62304

    Medical device software – software life cycle processes

  • EN 50657

    Railway applications – Rolling Stock Applications – Software on Board Rolling

  • EN 50128

    Railway applications – Communication, signaling and processing systems

  • IEC 61508

    Functional Safety of Electrical/ Electronic/ Programmable Electronic Safety-related Systems

  • DO-178 B/C

    Software Considerations in Airborne Systems and Equipment Certification

Cantata provides all capabilities required for embedded software testing standards compliance, including: unit testing, integration testing, code coverage, execution on host or target hardware environments, and automated regression testing for integration with DevOps and CI/CD workflows.

COVERAGE BY STANDARD

Below are listed the lowest safety integrity level by standard for which each code coverage metric is required:

“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

WHICH LEADING COMPANIES USE CANTATA?

Thales-re-assurance
SAAB_Case_Study_AirBus_A400M_for_DO-178B
GE_Medical_Case_Study_IEC_62304
previous arrow
next arrow

HOW ABOUT YOU?

Start a free trial of CANTATA to explore how easy unit testing can be within your software testing process!

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
  • Conditions
  • MC/DC (Unique-cause and Masking variants)

DIAGNOSE COVERAGE RESULTS

Cantata diagnostics presents 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 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
  • Relational Operators
  • 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.

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

Want to achieve higher levels of code coverage?

Cantata is an efficient software testing tool that can help measure the effectiveness of the testing efforts for C and C++ code. Sign up to our free trial and test the code quality of your software for Free!

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.

Gain insights from our whitepapers

C AND C++ SOFTWARE TESTING – AM I COVERED?

This paper looks at the various applications of the term ‘coverage’ in the software development industry for software written in C and C++.

WHICH CODE COVERAGE METRICS TO USE

This paper describes and discusses a selection of structural coverage metrics which are based on control flow analysis, looking at the practicality of their use for real software developments.

AN INTRODUCTION TO SAFETY CRITICAL SYSTEMS

This paper is aimed to serve as a tutorial for developers who are new to the development of software for safety critical systems, discussing the issues involved, introducing some of the techniques available to developers, and providing an overview of how Cantata can be used within the process.

15 WAYS TO MAXIMIZE THE VALUE OF UNIT TESTS IN SAFETY CRITICAL PROJECTS

This paper discusses approaches you can take with your unit testing to maximize their contribution to the development process.