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
# 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%
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.
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
Merged from unit, integration and functional runs. Color-coded to the line: green covered · amber partial · red uncovered.
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.
One coverage model, four test levels
| Test level | What it exercises | RKTracer coverage |
|---|---|---|
| Unit | One function or module in isolation, with stubs | Statement to MC/DC |
| Integration | Modules running together across interfaces | Statement to MC/DC |
| Functional | Software against requirements, from the outside in | Statement to MC/DC |
| System | The fully integrated build on its real target | Statement 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.
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.
On targets without a file system, coverage data streams out over your existing debug transport or a RAM buffer.
| Target | Test execution | MC/DC coverage |
|---|---|---|
| Host | Yes | Yes |
| Simulator | Yes | Yes |
| Emulator | Yes | Yes |
| Embedded target | Yes | Yes |
| Host & GPU | Yes | Yes |
MC/DC coverage is measured for C and C++. One coverage model, from laptop to silicon.
Fits the toolchain your tests already run on
Languages
10 languages, one coverage model:
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.
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 RKTracerGenRKMCP · 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.
Unit, integration and functional testing, answered
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.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.