Global Sources
EE Times-Asia
Stay in touch with EE Times Asia
EE Times-Asia > Embedded

Basics of software standards compliance (Part 6)

Posted: 05 May 2016 ?? ?Print Version ?Bookmark and Share

Keywords:Standards compliance? system safety? defects? software? code?

This article describes and defines the different types of coverage analysis that are used by the avionics community to help assess how completely software has been tested, using the DO-178C standard for developing avionics software (Software Considerations in Airborne Systems and Equipment Certification) as a reference. The criteria used for selecting which coverage analysis metric(s) are appropriate for a new avionics project will also be discussed. And since coverage analysis metrics do not provide a meaningful assessment of test completeness on their own, this article will also describe how they are used to measure the effectiveness of requirements-based testing in addition to the techniques, methods and tools for performing coverage analysis measurements.

Coverage analysis
At its most basic, software coverage analysis is a measure of the code structures executed by a test or set of tests. This can be as simple as measuring the lines of source code executed by a given set of tests, to more complex measurements such as measuring the coverage of the object code produced by compiling source code when it is executed on the target system, including measuring whether each branch point in code has been exercised.

The DO-178C standard for developing avionics software specifies three different source code coverage analysis metrics that are used to measure software test effectiveness for avionics software, as described in table 1. In addition, object code coverage is also required for the most safety-critical systems to ensure that all of the code generated by the compiler is tested.

Table 1: DO-178C Source Code Coverage Analysis Metrics

Coverage metrics
Coverage analysis is normally reported as a percentage metric. For example, if coverage analysis has been used to verify that 50% of the executable statements in a piece of software have been executed at least once, then a coverage metric of 50% Statement Coverage is assessed against that code. DO-178C requires that 100% coverage be achieved for each of the coverage analysis objectives for the software under development.

Figure 1: An image of LDRAcover showing a flowgraph highlighted to indicate the paths that have been covered, e.g. displays code coverage analysis results in line with system/file/function name. Colour coding identifies the decisions, statements and loops that have been executed. (Source: LDRA)

When it comes to choosing which coverage analysis objective to use for a given system, one size does not fit all. For avionic systems, the actual coverage analysis used for a given software system is selected based on the target failure rate for the system. The more essential the software is to the safety of an aircraft, the more rigorous the testingand therefore the coverage analysis criterianeeds to be.

In the same way that the IEC 62304 standard Medical Device Software C Software Lifecycle Processes defines three different software safety classifications, DO-178C defines five different system safety classifications to match the differing levels of system integrity required for avionics. A system safety hazard is performed on each avionics system, and the impact of a system or software failure on the whole aircraft then determines the system classification, and the overall system target failure rate. Needless to say, the most safety-critical systems are assigned the lowest possible failure rate. The classification of the system then determines what coverage level needs to be achieved, as described in table 2. In short, the more safety-critical a system is, the more in-depth the required coverage analysis is.

Table 2: DO-178C System Safety Classifications,

?First Page?Previous Page 1???2???3?Next Page?Last Page

Article Comments - Basics of software standards complia...
*? You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.

Back to Top