Want to see Parasoft in action? Sign up for our Monthly Demos! See Demos & Events >>

C/C++ Code Coverage

C/C++ Code Coverage

Powered by Parasoft C/C++test, the most complete development testing solution for C and C++

Code Coverage for C and C++

Parasoft’s solution for code coverage provides critical feedback about the completeness and thoroughness of the testing process by correlating tests with coverage results.

How Does It Work?

Parasoft’s solution for code coverage intelligently leverages information about the relationship of code coverage results to the test cases and changes made to the code for a more valuable coverage metric. Code coverage reports are gathered along with an understanding of how they relate to the test cases.

Presenting test results in this way prevents users from spending time and effort testing non-important functionality, without covering critical system requirements. This powerful solution is essential for achieving compliance with functional safety standards, such as DO-178B/C, ISO 26262, IEC 61508, and others.


The most pragmatic way to monitor the completeness of the testing process is by monitoring coverage metrics. Parasoft C/C++test’s code coverage metrics can be used for assessing unit, integration, and system level testing completeness, supporting all important types of code coverage (function, call, line, statement, block, path, decision, simple condition, and MC/DC) and object/assembly coverage. Coverage results are available directly in the IDE, with convenient views and highlights in the source code editor, as well as in the form of static html or pdf reports, and dynamic reports through Parasoft’s centralized reporting dashboard.

Users can monitor applications executed natively on the desktop, cross-platform using simulators, or on real embedded hardware. C/C++test’s coverage module is optimized to minimize the impact on the execution performance and test binary footprint, which makes it suitable for use with high end, server-based applications, as well as very limited systems based on 16 bit microcontrollers.

Parasoft correlates all unit test cases created with C/C++test, or created using open source unit testing frameworks (executed with the C/C++test plugin), with requirements. Users can then absorb the results of the tests’ execution together with the information about code coverage, to achieve the full traceability required for safety-critical applications.

Parasoft C/C++test can be used to instrument an entire application’s codebase for code coverage monitoring. The instrumented application can be executed and examined based on the test procedures defined in manual test scenarios. During testing, users can easily annotate the coverage results with the information about the executed test scenarios.

Users can view the coverage results collected from the testing process, together with the information about the correlation between test cases and requirements. Parasoft’s unique automatically-generated reports that merge unit testing and system testing coverage results help users determine the quality of the testing process to focus and optimize the testing effort.

By integrating with users’ Requirements Management System, users get traceability reports that display the correlation between requirements and:

  • Source code created to implement these requirements
  • Test cases created to test the requirements
  • Results of executed tests
  • Code coverage results

Traceability reports provide clear and complete information about the development progress, and teams can easily determine how many requirements were already implemented and how thoroughly they have been tested.

When connected with Parasoft’s Process Intelligence Engine, users benefit from test impact analysis. For each and every test performed, including manual, system level or UI-based, tests are recorded for not just test/fail and results but also their coverage impact on the code base. Each additional test is overlaid on this existing information, creating a complete picture of test success and coverage. As code is changed, the impact is clearly visible on the underlying record, highlighting tests that now fail or code that is now untested. Raising this information in various degrees of detail allows developers and testers to quickly identify what needs to be altered/fixed for the next test run.

Benefit From the Parasoft Approach

Correlate Both Tests and Requirements to Source Code for Full Traceability

Parasoft correlates requirements not only with tests and test results, but also with requirements, and the source code created to implement requirements. Users can tag created code using flexible schema and provide this information to the reporting center, enabling detailed test and coverage reports focused on a selected requirement, without obfuscation that would otherwise came from the code related to other requirements. This capability enables a complete view of quality, bringing together test results, code analysis, and code coverage with requirements, enabling teams to get a better understanding of areas of risk, so they can focus remediation activities.

Get a Complete View of Test Coverage

Instead of just seeing the coverage results from unit testing alone, Parasoft C/C++test captures coverage information across different development testing practices, to provide a complete view of what was and wasn’t tested. Parasoft’s reporting and analytics dashboard also displays which tests were used to exercise the specific parts of the codebase, so users have complete traceability. This helps users understand how to most efficiently re-test the codebase and re-use tests to increase code coverage.

Focus on the Code and Tests That Matter to Reduce Risks

With Parasoft, teams can concentrate on code coverage for the areas of active development, instead of the entire codebase, which can be especially problematic when working with legacy codebases. Rather than solely trying to achieve a coverage number for the entire codebase, Parasoft helps you pinpoint the parts of the code that are changing. Parasoft’s reporting dashboard correlates the data from C/C++test with observed changes in the codebase to focus the development team on achieving higher levels of code coverage for those specific, modified parts of the codebase. With Parasoft, you can minimize the impact of changes by efficiently managing the change itself.