- Download Webinar: RVS/Deos for Multicore
RapiCover Zero | Zero-footprint coverage analysis
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.
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.
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.
You can measure function, call, statement, branch and decision coverage using RapiCoverZero.
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.
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.
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.
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.
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.
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.
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.
As RapiCoverZero analyzes object code directly to produce results, it supports any language that targets machine code.
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.
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.
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.
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.
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 RT850G4M 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 firstname.lastname@example.org.