
Zero-footprint coverage analysis for critical software
Collect coverage from systems that produce branch traces
By automatically producing coverage results from branch traces, RapiCoverZero reduces the effort needed to verify code coverage. Along with branch traces produced by the system hardware, RapiCoverZero only needs a disassembly of the application, meaning there’s no need for either source code or instrumentation.
RapiCoverZero produces coverage results up to and including Decision coverage, letting you verify systems up to DO-178C DAL B.
Save time with efficient merge and mark verification workflow
Reduce your testing effort through an efficient verification workflow. Collect coverage from system tests, automatically merge this with coverage from integration and unit tests, and mark any remaining coverage holes as covered by analysis using RapiCover justifications.
This workflow is ideal for DO-178C testing even when your code changes as RapiCoverZero helps you review which of your coverage results and justifications need to be changed.
Simplify verification through integration with your continuous integration tool
Keep your verification on track by using RapiCoverZero alongside your continuous integration tool. Collect coverage results and track your project’s progress over time with our plugins for Jenkins and Bamboo.
By analyzing your code with RapiCoverZero on every new build, you can easily identify anomalies in your code coverage as they happen.

Collect coverage for libraries without source code
RapiCoverZero lets you analyze coverage for third-party libraries or other pieces of software for which you have no access to the source code.
As RapiCoverZero analyzes a branch trace and a disassembly to produce coverage results, it can produce results even when you don’t have access to source code.
Product features
-
Zero footprint coverage analysis Zero footprint coverage analysis for critical embedded software.Discover this feature
-
Source to object code traceability Trace results collected from analyzing program execution to source code, where available.Discover this feature
-
Hardware support Supported operating systems, trace capture mechanisms and CPU architectures.Discover this feature
-
Automatically merge coverage Merge coverage from different builds automatically, such as system and unit tests.Discover this feature
-
Automate testing on host and target Run tests on host computers and test rigs in continuous build environments.Discover this feature
-
Combine coverage from object code and source code analysis Combine coverage collected from object code and source code analysis.Discover this feature
-
Merge Coverage utility Easily merge coverage from multiple test runs.Discover this feature
-
Efficient integration workflow Efficient integration workflow and inbuilt Platform Support Packages for integrations.Discover this feature
-
RVS Project Manager Take your test project from creation to completion with an intuitive user-interface.Discover this feature
-
Shared integration with zero-footprint RVS tools After integrating one zero-footprint RVS tool to work a development environment, it is trivial to use others.Discover this feature
-
Portable test environments Multiple users can share the same test environment.Discover this feature
-
Customizable workflow Customize the RVS workflow to best meet your needs.Discover this feature
-
Template integrations Create and use template integrations to reduce your effort integrating RVS with your system.Discover this feature
-
Compare reports Compare reports from different builds to track project progress over time.Discover this feature
-
Configurable export formats Export coverage results in a variety of formats.Discover this feature
-
Customizable color scheme Customize the color scheme used to display your results.Discover this feature
-
Comprehensive verification toolsuite One tool to meet all your software verification needs.Discover this feature
-
Justify untestable code Mark code as covered by manual analysis to justify not covering it during tests.Discover this feature
-
Migrate justifications when code changes Justifications migrate; when code changes, automatically or after manual review.Discover this feature
-
Portable justification library A single store of justifications can be used by all users working on a project.Discover this feature
-
Multi-justifications Apply a single justification to multiple locations to reduce justification effort.Discover this feature
-
Justification templates Create and apply templates to add new justifications more easily.Discover this feature
-
Custom fields Apply and use custom fields for your justifications.Discover this feature
-
Treemaps View coverage and hierarchy of code at a glance.Discover this feature
-
Easily filter results Easily filter results to focus your analysis.Discover this feature
-
Code viewer View code with syntax highlighting and color-coding of results.Discover this feature
-
Advanced search function Search reports for specific elements using advanced queries.Discover this feature
-
Filter by scopes Filter results by specific files and functions.Discover this feature
-
Collect coverage across power cycles Stream coverage data to collect it across target power cycles.Discover this feature
-
Multicore support Verify critical multicore systems.Discover this feature
-
Jenkins Run RVS automatically through Jenkins to collect and archive results.Discover this feature
-
Bamboo Run RVS automatically through Bamboo to collect and archive results.Discover this feature
-
Comprehensive language support Support for all languages that target machine code.Discover this feature
-
Flexible licensing options Select floating or node-locked licenses with annual or perpetual duration.Discover this feature
-
Floating licenses Floating licenses support multiple users and shared working environments.Discover this feature
-
Node-locked licenses Node-locked licenses support use of RVS within a limited geographical area.Discover this feature
-
Annual licenses License RVS in annual increments.Discover this feature
-
Perpetual licenses License RVS for use indefinitely.Discover this feature
-
FlexNet Publisher compatible export format License usage data is exported in a format compatible for tracking using FlexNet Publisher.Discover this feature
-
Easy to get started Integration and learning resources help you get started verifying your code in no time.Discover this feature
-
Support Dedicated support service to resolve technical issues quickly.Discover this feature
-
Tutorials Learn how to get the most from our verification solutions with simple, interactive tutorials.Discover this feature
-
Training Get up to speed with custom training courses delivered by skilled field application engineers.Discover this feature
-
Documentation Learn how to use RVS features with comprehensive documentation in both printed and electronic formats.Discover this feature
Videos
Downloads
CPUs
Zero-footprint RVS tools require that a branch trace is collected during program execution. Branch traces can be automatically generated by compatible targets or can be collected while the program operates using external devices. To interface with development environment, a Platform Support Package is needed.
Here are some examples of PSPs that we've prepared:
- No OS on x86 in QEMU
- No OS on ZCU102 with Lauterbach® TRACE32® debugger
- FreeRTOS on ARM M3 in QEMU
- FreeRTOS on R-Car Salvator-X with PARTNER-Jet2 debugger
- FreeRTOS on ZCU102 with Lauterbach TRACE32 debugger
- RV850 RTOS on RH850G4M with Lauterbach TRACE32 debugger
- eMCOS on R-Car Salvator-X with PARTNER-Jet2 debugger
For more information, and to see if we can add support for your development environment, contact support@rapitasystems.com.
Operating Systems
RapiCoverZero can be used to analyze software run on any host operating system.
Operating System |
---|
Windows 7+ |
Windows Server 2008 R2+ |
Variety of Linux distributions (including Ubuntu and Red Hat) |
For older operating systems, contact us. |
Programming languages
Language |
---|
Any language that targets machine code |
Mixed languages |
Compilers
Zero-footprint RVS tools can analyze software built with any compiler from which a disassembly can be produced from the assembled executable.
Frequently asked questions
-
What is RapiCover Zero?
RapiCoverZero is a structural coverage analysis tool that requires no project source code or modification of the development environment being used. To extract coverage information, RapiCoverZero analyzes branch trace information collected from a compatible target or data collection mechanism.
As part of the RVS toolsuite, RapiCoverZero forms part of a software verification solution that also includes tools for functional testing and worst-case execution time analysis.
-
How large a code base can RVS tools handle?
RVS tools are designed to handle very large code bases. Because of the efficient algorithms used by RVS tools, there is no fundamental limitation to the number of lines of code that RVS can process, and our RVS tools have been used on projects with millions of lines of code.
-
How are RVS products licensed?
We offer both “Node-locked” and “Floating” licenses, and a license server to support use of our tools in your specific development environment. Floating licenses follow the “Enterprise” model, meaning that you can use our tools across geographical boundaries and different projects and users.
For more information on our licensing models, see our RVS licensing FAQs.
-
What happens if I encounter an issue while using an RVS tool?
All RVS licenses include access to our dedicated in-house support team, who will work with you to provide a rapid fix to your issue. This is a critical part of our vision. During 2016, we responded to 97% of new support requests within one working day, closed 56% of these within 3 working days and 91% within 20 working days. We also inform our customers of known issues via our website and email.
-
How do you support RVS users?
We provide an extensive set of RVS documentation with each of our products, and offer training courses guiding you through the most effective use of RVS tools. All our users can benefit from privileged access to our website, which includes downloads for new product releases.
-
Can I add manual configurations that flag my code as being exempt/uncoverable?
RapiCover and RapiCoverZero include a powerful “justification” mechanism that lets you mark code as covered. Using this feature, you can provide a rationale for justifying the code and create templates to justify code more easily. When your code changes, justifications are automatically migrated to represent the new location of your justified code.
For more information on using justifications, see our white paper.
-
What happens when I change my code?
RapiCover and RapiCoverZero retain information about the revision of your code it used to generate results. The tool will report an error if you try to merge coverage from incompatible revisions. RapiCover includes an Optimal Dataset Calculator feature you can use to calculate the least expensive tests you need to run again when your code changes, saving you valuable testing effort.
-
How is my data presented?
All RVS tools include a friendly user-interface that presents your data in both tabular and graphical formats. Using this interface, you can filter your results to zoom in on target functions, making it easy to find the information you are looking for.
Treemaps provide a high-level overview of your code base and help you understand the coverage of your code at a glance.
-
Can I combine results collected from RapiCover and RapiCover Zero?
Yes, you can. If you provide RVS with access to debug symbols, you can also trace results you have collected from source and object code.
-
How do I learn more about RapiCover Zero?
You can request a trial version of RVS, which includes RapiCoverZero. You can also arrange a demonstration, where a member of our team will work with you to show the benefits that RapiCoverZero can offer you.
-
Can RapiCover Zero collect MC/DC results?
RapiCoverZero produces coverage results by analyzing a branch trace produced during program execution. While coverage metrics up to decision coverage can be inferred from branch traces, most branch traces do not include sufficient information from which to produce MC/DC results.
If you need to collect MC/DC results, you can do so using RapiCover.
-
Which coverage criteria can I measure using RapiCover Zero?
You can measure function, call, statement, branch and decision coverage using RapiCoverZero.
-
Which hardware environments and data collection mechanisms does RapiCover Zero support?
RapiCoverZero extracts information on program execution from a branch trace that must be collected while the program under analysis is executed. This branch trace may be produced by target hardware or collected using a specific data collection mechanism such as a Lauterbach debugger.
For a list of currently supported platforms, see our RapiCoverZero Hardware support.
-
How does RapiCover Zero work?
RapiCoverZero uses two inputs from which to produce structural coverage results. The first of these is a branch trace collected while the program under analysis is executed, while the second is a disassembly of the executable. From these, it can understand both the program structure and the events that occurred during the program execution, allowing it to perform structural coverage analysis and produce coverage results.
-
Can I view my results in the context of my project source code?
If your source code is available, yes. By importing your source code and debug symbols into your RVS project, you can view your results in the context of both your object and source code, and trace between them.
-
Can I collect coverage data across power cycles and reset sequences?
If you are using an external device to collect branch trace information, the data will remain in place while your system reboots, after which you can begin data collection again. This means that you can collect coverage data across a shutdown or reset sequence. This may be subject to your target hardware architecture and the device you use to collect branch trace information.
-
Which languages does RapiCover Zero support?
As RapiCoverZero analyzes object code directly to produce results, it supports any language that targets machine code.
-
Can I use RVS tools with my continuous integration environment?
RVS integrates with continuous integration tools including Jenkins and Bamboo. By integrating RVS with your existing continuous integration tool, you can collect unit test, coverage, and execution time results with every new build, letting you easily identify anomalies in your software’s behavior as they happen.