RapiCover FAQs

This page lists several frequently asked questions for RapiCover, the structural code coverage analysis tool designed to meet the needs of the safety-critical embedded software industry.

RapiCover is part of the RVS product range. For frequently asked questions on RVS tools in general, click here

How does RapiCover work?

RapiCover works by injecting instrumentation code into source code and executing the native build system so coverage results are collected during program execution. Data can be collected from almost any target hardware by a variety of approaches

For more information on how RapiCover works, see here

Which coverage criteria can I measure using RapiCover?

You can measure the most common coverage criteria required to support DO-178B/ED-12B, DO-178C/ED-12C and ISO 26262 certification using RapiCover. This includes function, call statement, branch, decision and condition coverage, and MC/DC.

Can I determine coverage for a decision containing large numbers of conditions?

By default, RapiCover supports 30 conditions per decision. We can work with you to develop custom configurations, allowing the tool to support a larger number of conditions, as necessary.

Can I collect coverage over multiple builds?

Using our configurable instrumentation mechanism, you can instruct RapiCover to determine coverage for specific subprograms as necessary. After running your tests, it is easy to merge coverage data from these runs into a combined report.  

Can I add manual configurations that flag my code as being exempt/uncoverable?

RapiCover includes 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 in RapiCover, see our white paper.

What happens when I change my code?

RapiCover retains 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.

Can I collect coverage data across power cycles and reset sequences?

RapiCover can be configured to collect data in real-time while your software runs. By writing data to an external device, the data will remain in place while your system reboots, and collection can be reinitialized when it restarts. This means that you can collect coverage data across a shutdown or reset sequence. This is subject to your target hardware architecture. 

Which languages does RapiCover support?

RapiCover supports C, C++ and Ada projects, including mixed-language ones.

Which host operating systems can RVS be used on?

RVS tools support Windows 7 or newer, Windows Server 2008 R2 or newer, and a variety of Linux distributions including Ubuntu and Red Hat.

RVS tools can be used on projects with unsupported operating systems by using a clone integration to split the process and delegate parts of it to the unsupported machine.

How do I learn more about RapiCover?

You can request a trial version of RVS, which includes RapiCover. You can also arrange a demonstration, where a member of our team will work with you to show the benefits RapiCover can offer you.

If you're interested in RapiCover in academia, you can search for it in the academic press