Product
Solutions
Resources
Company
Download Trial Book a Demo
RKTracer · Coverage for every test level

Coverage for unit, integration and functional testing

RKTracer measures unit, integration, functional and system test coverage, from statement and branch to MC/DC, without changing a single line of your source code. The same tests, the same coverage model, on host machines and on the real target.

No source changes · works with every compiler · HTML and XML reports

terminal · zero workflow change
# Prefix your existing build, then run your tests
$ rktracer make all
  auto-detecting compiler: arm-none-eabi-gcc 12.2
   build complete, no source modified

# Unit, integration and functional tests, one report
$ ctest && rkresults --report html
   statement 100% · decision 100% · MC/DC 99.2%
Coverage across the test pyramid

What unit, integration and functional testing coverage means

Unit test coverage measures how much of a single function or module your unit tests execute. It is the finest-grained view, where you confirm each statement, branch and condition inside one component is exercised before that component is wired into anything else.

Integration test coverage measures the code reached when modules run together. It catches the logic that only fires across an interface: the error paths between layers, the handshakes, the configuration that one unit test in isolation can never trigger.

Functional test coverage measures the code your tests reach when you exercise the software against its requirements, from the outside in. System test coverage extends that to the fully integrated build on its real target. RKTracer measures the same structural metrics for all of these, so you see each level on its own and the combined picture from every test you run.

Measuring coverage with RKTracer

Prefix the build, run your tests, read the report

RKTracer is a code coverage tool. You do not rewrite your tests and you do not touch your source. You prefix your existing build command, run your unit, integration and functional suites the way you already run them, and RKTracer captures every metric through MC/DC from that single instrumented build.

  • No source changes, no environment variables, no wrappers
  • Auto-detects your compiler and cross-compiler
  • Every metric, up to MC/DC for C and C++, from one run
  • Merge unit, integration and functional results into one view
See the full code coverage tool
Combined coverage · signal_filter.cMC/DC measured
Function100%
Statement100%
Decision100%
Condition100%
MC/DC99%
Multi-condition94%

Merged from unit, integration and functional runs. Color-coded to the line: green covered · amber partial · red uncovered.

Coverage metrics

Every metric, from statement to MC/DC

One coverage model for unit, integration and functional tests, from the basics to the hardest structural metric in software assurance.

Function, File & Line

Know exactly which functions, files and lines your unit and integration tests execute.

Statement & Branch/Decision

Confirm every statement runs and both outcomes of each decision are tested.

Condition & MC/DC

The strongest structural metrics. MC/DC is available for C and C++.

Multi-Condition & Delta

Go beyond MC/DC, and focus coverage on exactly what changed each build.

Standards such as DO-178C and ISO 26262 reference these structural metrics, MC/DC among them. RKValidate is an ISO 9001 quality-certified vendor.

Unit vs integration vs functional vs system

One coverage model, four test levels

Test levelWhat it exercisesRKTracer coverage
UnitOne function or module in isolation, with stubsStatement to MC/DC
IntegrationModules running together across interfacesStatement to MC/DC
FunctionalSoftware against requirements, from the outside inStatement to MC/DC
SystemThe fully integrated build on its real targetStatement to MC/DC

The same instrument captures all four. Run each level, then merge the reports to see where unit tests left gaps that only functional or system tests can close.

On host and on target

The same tests, the same coverage, wherever your code runs

Run your unit and integration tests on the host for fast iteration, then run the same functional and system tests on the simulator, emulator, real embedded target or GPU. RKTracer captures the same coverage model everywhere, so target coverage is not a separate, weaker measurement.

Host machines Simulators Emulators Embedded targets GPUs & CUDA RTOS & bare-metal

On targets without a file system, coverage data streams out over your existing debug transport or a RAM buffer.

TargetTest executionMC/DC coverage
HostYesYes
SimulatorYesYes
EmulatorYesYes
Embedded targetYesYes
Host & GPUYesYes

MC/DC coverage is measured for C and C++. One coverage model, from laptop to silicon.

Languages, CI & SonarQube

Fits the toolchain your tests already run on

Languages

10 languages, one coverage model:

CC++CUDARustC#JavaJavaScriptTypeScriptGoPython

MC/DC for C and C++. C89 through C17, C++98 through C++23, OpenMP and OpenACC.

Compilers & IDEs

  • All compilers & cross-compilers
  • IAR, Keil, Visual Studio, Eclipse, CCS
  • Android Studio and more
  • Auto-detected at build time

CI & reporting

  • HTML & XML reports
  • Jenkins, Azure DevOps, GitLab
  • Publishes to SonarQube
  • Merge reports across runs

Set it up on your own toolchain: see the guides for CMake, the full feature list, how RKTracer works, and 30+ more toolchains.

From coverage to tests

Coverage finds the gaps. Two ways to close them.

RKTracer measures coverage and pinpoints the uncovered lines, decisions and MC/DC conditions left by your unit, integration and functional tests. Turning those gaps into new tests is your choice, and both options are part of the RKTracer tool.

RKTracer itself measures coverage; it does not generate tests. The two tools below do.

Compare RKMCP and RKTracerGen

RKMCP · AI-assisted

An MCP server that serves the uncovered lines, decisions and MC/DC conditions to your AI agent. The agent writes unit and functional tests, runs them, and re-checks until the gaps close. Available across the supported languages.

RKTracerGen · offline, C and C++ only

A deterministic, fully offline unit-test generator for C and C++ only. Boundary-Value Analysis, managed stubs, and it builds and runs the tests locally. No AI, no tokens, no network.

FAQ

Unit, integration and functional testing, answered

Unit test coverage measures how much of a single function or module your unit tests execute. Integration test coverage measures the code exercised when modules run together. Functional test coverage measures the code reached when you test the software against its requirements. RKTracer measures the same structural metrics, statement, branch, condition and MC/DC, for all three so you see each level and the combined picture.
No. RKTracer is a code coverage tool. It measures coverage and pinpoints the uncovered lines, decisions and MC/DC conditions. To close those gaps you can use RKMCP, an MCP server that serves the gaps to your AI agent so it writes unit and functional tests, or RKTracerGen, a deterministic offline unit-test generator for C and C++ only.
No. You prefix your existing build command with rktracer, or enable the IDE plugin. No source edits, no environment variables, no wrappers. RKTracer instruments at compile time and adds its runtime automatically, even when cross-compiled, so the same tests measure coverage on host and on target.
Function, file, statement, branch/decision, condition, MC/DC, multi-condition and delta (changed-code) coverage. MC/DC for C and C++ is the strongest structural metric. Every metric is captured from the same instrumented run, whether the tests are unit, integration, functional or system level.
Ten languages: C, C++, CUDA, Rust, C#, Java, JavaScript, TypeScript, Go and Python. RKTracer auto-detects all compilers and cross-compilers, with IDE plugins for IAR, Keil uVision, Visual Studio, Eclipse, Code Composer Studio, Android Studio and more. MC/DC coverage is available for C and C++.
Yes. RKTracer publishes HTML and XML reports, integrates with Jenkins, Azure DevOps and GitLab CI, and publishes coverage to SonarQube. Reports from unit, integration and functional runs can be merged into one combined coverage picture.

Measure unit, integration and functional coverage on your own code

Download the free 30-day trial and run it on your target today, or book a 30-minute demo with an engineer.