Software Quality Intelligence™
Tool · Test coverage analysis

Testwell CTC++

Develop. Test. Cover.

The code coverage analyzer for C and C++ (Java as an add-on module): tests actually measured, from function level up to MC/DC, on the development desktop as well as on embedded target.

Languages

Built for C and C++

Testwell CTC++ supports C and C++, and keeps up with their constantly evolving standards. An add-on module covers the Java language.

Critical development

Certified for functional safety

When lives are at stake, safety standards — ISO 26262 in automotive, DO-178C in aerospace — require coverage measurement, up to the most demanding MC/DC level. Several hundred companies use Testwell CTC++ in exactly this context.

Testwell CTC++ is certified by TÜV Süd for functional safety. A Safety Package supports qualification of the tool in your context.

  • IEC 61508 — functional safety of E/E/PE systems
  • ISO 26262 — automotive
  • EN 50716 — rail
  • ISO 25119 — agricultural machinery
  • IEC 62304 — medical devices
Coverage levels

From function to MC/DC

Testwell CTC++ provides all the measures required by the various safety standards, and visually highlights lines that were executed, not executed, and partially executed.

Function Coverage

Was every function called?

Statement Coverage

Was every statement executed?

Decision / Branch

Was every branch (true / false) taken?

Condition Coverage

Was every condition evaluated both ways?

MC/DC

Modified Condition / Decision Coverage — the highest requirement in safety standards.

Multicondition

All condition combinations of a decision.

Embedded software

Designed for target constraints

Measuring coverage on an embedded target poses specific challenges. Testwell CTC++ addresses them point by point.

The challengeTestwell CTC++'s answer
Limited memoryInherently lightweight instrumentation, reducible depending on the workflow — down to a bit-by-bit measurement readable via the debugger.
Data readoutAny target ↔ host communication interface can be used. The runtime library, provided in C, adapts to the target's capabilities.
Cross-compilationCompiler-independent, configurable for any C/C++ compiler. Many configurations are provided, with assistance for new compilers.
Demonstration

Testwell CTC++ in action

A demonstration of coverage measurement with Testwell CTC++.

Watch on YouTube ↗

Application & systems

Windows, Linux, macOS

Coverage measurement for desktop applications is simple and straightforward: a slight increase in build time, libraries provided for writing the data, and high-performance reports that scale.

Components running in kernel mode are treated as embedded targets, with an adjustable runtime library.

Integration

Into almost any CI pipeline

A collection of command-line tools, Testwell CTC++ can be automated at any level: build servers and continuous integration solutions, developer workstations, in centralized or distributed mode across the instrumentation → test → reporting stages.

Instrumentation often slots into the build with no extra configuration. Integrations exist for Visual Studio and IAR Embedded Workbench, and for many other IDEs through configuration.

The tests

All your tests, as they are

Unit, integration, or system tests: all can be run as usual, in automated, partially automated, or manual mode. The instrumented program writes the data during execution — a fully customizable transfer on target.

All of a project's test runs combine into a single report. The tool works with common test platforms and frameworks.

Reports & justifications

Clear, and honest

The HTML report offers overviews and detail within the source code, with configurable levels. Because reports are template-based, all text formats (XML, CSV, JSON) are supported — enough to easily feed a third-party dashboard.

Missing coverage is explained and documented through justifications, whose impact is visible across all the measures: you clearly know whether 100% of the code was tested, or at least justified.

User feedback

What teams take away

Thousands of users worldwide rely on Testwell CTC++. The points that come up most often:

Frictionless integration

Quick to get started, including on embedded target, with no blockers on the compiler, IDE, or debugger side.

Readable reports

Clear reports that show precisely which conditions were tested, and which were not.

Responsive support

Comprehensive documentation and support for installation, configuration, and coverage measurement.

Data sheet

Specifications & integrations

The essentials to know for evaluating the tool in your environment.

Technical specifications

  • Languages: C and C++ natively; add-ons for Java and C#.
  • Compilers: all compilers and cross-compilers. A compiler that isn't listed is adapted quickly and at no charge.
  • Targets: host and any embedded target, including highly constrained ones (little RAM/ROM, no file system).
  • Instrumentation: at source level, on a temporary copy — your original code is not modified.
  • Reports: HTML, XML, CSV, JSON formats (via templates), usable by third-party dashboards.
  • Beyond coverage: execution time measurement (bottleneck / worst-case analysis).
  • Qualification: qualification kits available for the main safety standards.

Integrations & environments

  • Continuous integration: drivable from the command line — Jenkins and automated build pipelines.
  • Quality: feeds dashboards such as TiCS or SonarQube.
  • IDEs: Visual Studio, IAR Embedded Workbench, Eclipse, Code::Blocks, Microchip MPLAB, Keil MDK-ARM…
  • Model & AUTOSAR: MATLAB/Simulink, dSPACE TargetLink & SystemDesk, AUTOSAR Builder.
  • Debug / trace & test: Lauterbach, PikeTec TPT, QTronic TestWeaver/Silver.
  • Tests: compatible with all unit-testing frameworks.

See also the regulatory coverage and the Verifysoft product sheet ↗.

Try Testwell CTC++ on your code

A free trial to measure, concretely, what your tests really cover — or let's talk about your needs first.

Free trial