GNATcoverage – Coverage Analysis Tool
GNATcoverage is a specialised tool that analyses and reports program coverage.
Originally developed as part of the Couverture research project, GNATcoverage allows coverage analysis of both object code (instruction and branch coverage), and Ada or C language source code (Statement, Decision and Modified Condition/Decision Coverage – MC/DC). Unlike most current technologies, the tool works without requiring instrumentation of the application code. Instead, the code runs directly on GNATemulator, a lightweight and efficient processor emulation tool instrumented to produce execution traces. GNATcoverage can help assess the completeness of a testing campaign and provide precise answers to the needs of safety-certification processes such as the DO-178 avionics standard.
Combines Agile concepts with ease-of-use
In association with GNATemulator, GNATcoverage can be installed on an individual developer’s desktop, allowing efficient testing and coverage assessments using local resources only. Unlike with shared hardware, many instances of the tool can be launched simultaneously and coverage analysis can be performed in parallel by several members of a team. In addition, GNATcoverage was designed to be easily scriptable to facilitate the use of continuous integration techniques made popular by the Agile community.
Analyses the final code that will run on the embedded target
GNATcoverage provides code coverage information directly on the embedded target code. GNATemulator knows how to run target code and is instrumented to produce execution traces so that there is no instrumentation of the application code.
Aids in establishing certification requirements (DO-178B level A / DO-178C-ready, EN 50128, IEC 61508, ECCS-E40B)
GNATcoverage provides source coverage information for all levels of safety certification (Statement Coverage, Decision Coverage and Modified Condition/Decision Coverage). Qualification material is available for DO-178B (and DO-178C-ready) up to level A. GNATcoverage can also provide object-level metrics, with support for both instruction and branch coverage criteria.