Low-overhead coverage analysis for critical software
RapiCover is the lowest overhead tool for structural code coverage analysis. By using efficient, configurable instrumentation, RapiCover collects coverage data up to and including MC/DC from embedded targets and exports this to a report for certification.
RapiCover calculates the following types of coverage achieved by software tests:
- Modified condition/decision coverage (MC/DC)
For MC/DC analysis, RapiCover supports masking of MC/DC conditions, both CAST-10 literal and traditional definitions, and decisions with many conditions.
RapiCover‘s efficient analysis engine and integration workflow reduces the effort needed to obtain coverage results. Coupled with the ease of automating testing to occur during regular builds, coverage data is produced faster than ever.
RVS Project Manager allows a user to view and compare results from various stages in a project so that progress can be tracked over time. This application also allows the user to filter results based on the folders, files and functions in a project as well as individual test runs that can be specified with RapiCover.
RapiCover justifications enables users to mark untestable code as covered by manual analysis. Use templates and custom fields to reduce justification effort, and the migration feature to relocate justifications when source code changes.
Users may not be able to, or want to, determine coverage of their entire code base in a single test run due to target memory or effort constraints. Producing a combined coverage report by hand would be time-consuming and prone to error.
RapiCover lets users merge data from different test runs automatically. By linking results to each coverage element in a copy of an instrumented source code, RapiCover can easily combine results from multiple result files.
This even works when different instrumentation has been applied in each test run or when tests are run on different systems, for example host and target systems.
This feature can be qualified for use in DO-178B/C projects. For more information, see here.
RVS tools can be run automatically as part of a continuous build environment that uses manual scripts or application lifecycle management tools such as Jenkins and Bamboo.
Writing scripts to run rvsdriver, the main RVS command-line application, is easy. The following script, for example, runs dynamic analysis on instrumented source code to produce a report:
rvsdriver –project MyRVSProject.rvsprj –run –report
The RVS Project Manager even helps to do this by providing a tool to allow custom scripts to be generated.
RVS instrumentation has incredibly low execution time and memory overheads on embedded targets. By offering flexible instrumentation approaches, RVS tools make best use of the capabilities and limitations of each system.
Sometimes, instrumentation can be configured using only a single processor instruction (or even none with some target architectures). This means more tests can be fitted into each build of a code, reducing the time needed to upload new tests and download data and increasing the efficiency of a test project.
Rapita Systems provides documentation and tests to support the qualification of RVS tools for use in DO-178B/C (up to and including DAL A) and ISO 26262 projects. These reduce the cost of qualifying the RVS tools by reducing the need for manual analysis.
Two levels of support are offered for tool qualification:
- Tool qualification kits contain suitable evidence to describe an RVS tool for qualification purposes.
- Qualified target integration kits describe the integration of RVS tools into a development environment, and include on-site tests and expected results. These can be provided as a service if RVS is already integrated into the user’s development environment.
Industry-specific Structure Coverage Analysis
RapiCover Aero is specifically designed to meet the challenges of verifying aerospace software written in Ada, C and C++ for critical embedded systems. The tool collects structural coverage measurements from software tests run on host computers, simulators or the embedded target itself.
By integrating seamlessly with a native build system, RapiCover Aero enables an automatic collection of verification data, for example in continuous build environments. Compared to similar tools on the market, RapiCover Aero has extremely low overheads, so coverage data can be collected in fewer test runs.
RapiCover Aero meets the needs of DO-178C/ED-12C certification by collecting statement, decision and modified condition/decision coverage data; see Structural coverage metrics and DO-178C/ED-12C requirements. RapiCover Aero analysis supports both interpretations of “decision” defined by CAST-10. The high-quality qualification kits available for RapiCover Aero provide the evidence needed to qualify the tool for DO-178C/ED-12C projects.
RapiCover Auto is specifically designed to meet the challenges of verifying automotive software written in C and C++ for critical embedded systems. The tool collects structural coverage measurements from software tests run on host computers, simulators or the embedded target itself.
By integrating seamlessly with a native build system, RapiCover Auto enables an automatic collection of verification data, for example in continuous build environments. Compared to similar tools on the market, RapiCover Auto has extremely low overheads, so coverage data can be collected in fewer test runs.
RapiCover Auto meets the needs of ISO 26262 certification by collecting statement, branch and modified condition/decision coverage data; see Structural coverage metrics and ISO 26262 requirements. The high-quality qualification kits available for RapiCover Auto provide the evidence needed to qualify the tool for ISO 26262 projects.