GNAT Dynamic Analysis Suite

A package of testing and coverage tools for analyzing the dynamic behavior of Ada code.

The GNAT Dynamic Analysis Suite comprises tools for test harness generation and coverage analysis of Ada code. It is available as an add-on to GNAT Pro Enterprise and GNAT Pro Assurance subscriptions (including older versions) on all platforms (native, cross RTOS, and bare metal). The toolsuite can be used with all versions of the Ada language standard, from Ada 83 through the upcoming Ada 2022, as well as the formally analyzable SPARK Ada subset. Some of its capabilities, such as structural code coverage, also support C.

Key Tools and Features

GNATtest


An automated test-harness generator for Ada.

Writing and managing unit tests and their invocation framework is critical to the development of high-reliability software. Still, it is repetitive and cumbersome for large projects and error-prone when done manually. Changes to the application software, such as adding a subprogram to a package (module) or changing a subprogram’s specification (interface), require corresponding modifications to the test suite and its invocation harness.

GNATtest addresses this issue by automatically creating and maintaining the harnessing code as well as the unit test skeletons for each subprogram to be tested. Developers can thus focus on the high-value task of writing the actual test cases.

GNATtest is useful for all kinds of software, whether host-based or embedded, across the entire spectrum of application domains, and it fits in smoothly with modern development approaches, such as agile methods. It is especially valuable in systems requiring high levels of reliability, safety, and/or security since it simplifies the task of implementing test procedures that meet the objectives of certification standards such as DO-178C. These standards emphasize requirements-based testing as a critical part of the software verification process. Since individual subprograms often directly implement low-level requirements, the test harness and skeletons generated by GNATtest can become an immediate part of the application’s certification evidence. When combined with a coverage technology such as GNATcoverage, GNATtest offers a practical approach to verifying Ada software.

GNATcoverage


A tool that analyzes and reports Ada and C program coverage.

GNATcoverage helps assess a testing campaign’s completeness by providing sound analysis and evidence that all of the code under test, even if only executed under rare conditions, has been sufficiently exercised during testing.

It computes its results from trace files that show which program constructs have been exercised by a given test campaign. With source code instrumentation, the tool produces these files by executing an alternative version of the program, built from source code instrumented to populate coverage-related data structures. Through an option to GNATcoverage, the user can specify the granularity of the analysis by choosing any of the coverage criteria defined in DO-178C: statement coverage, decision coverage, or Modified Condition / Decision Coverage (MC/DC).

Source-based instrumentation brings several major benefits: efficiency of tool execution (much faster than alternative coverage strategies using binary traces and target emulation, especially on native platforms), compact-size source trace files independent of execution duration, and support for coverage of shared libraries.

In addition, GNATcoverage is easily scriptable, facilitating the use of devops techniques such as continuous integration, made popular by the Agile community. For example, GNATcoverage’s detection of an uncovered line during an attempted checkin could be scripted to trigger a rejection of the check-in, thus averting the possibility of producing a release that is not completely exercised by the test suites.

Attain the highest levels of assurance

Standards List

For avionics, rail, and space customers needing to meet specific certification requirements, the GNAT Dynamic Analysis Suite can provide sound analysis, test, and verification evidence that satisfies certification requirements for a variety of industry software safety standards, including DO-178C, EN 50128, IEC 61508, ISO 26262, and ECSS-E-ST-40C and ECSS-Q-ST-80C.

Qualification material is available for DO-178C up to level A (MC/DC) as well as EN 50128 and ISO 26262.

The GNAT Dynamic Analysis Suite will continue to evolve to meet the needs of our customers.

Additional strategies are being developed to extend the toolset to include support for C/C++ and also a fuzz testing tool for customers with cybersecurity concerns.