The Certification Authorities Software Team (CAST) issue guidance on various issues regarding the interpretation of DO-178B and DO-178C. In the CAST-10 position paper [1], they discuss the interpretation of a "decision".
In CAST-10, three possible interpretations are made for a decision:
- The "literal" interpretation of DO-178B, namely a Boolean expression composed of conditions and zero or more Boolean operators.
- The "relaxed" interpretation of DO-178B, namely a decision is equivalent to a branch.
- An intermediate position, where the literal interpretation applies to MC/DC, and the relaxed interpretation applies to Branch Coverage.
CAST-10 illustrates this with an example:
A := B or C; E := A and D; if E then …
So in the case of decision coverage, the tests required are:
Literal | Relaxed | |
Test cases where: | A is assigned true A is assigned false E is assigned true E is assigned false E has the correct effect on the if-statement |
E has the correct effect on the if-statement |
What impact does the interpretation of this decision have on tests?
In a recent project, we compared the impact of the two interpretations, and found that where the relaxed interpretation required tests to cover approximately 18,500 decisions, the literal interpretation identified nearly 2,400 additional decisions that required testing (11.4% more).
For DO-178B/DO-178C Design Assurance Level A and B software, the interpretation of what constitutes a decision will need to be carefully considered: this variation could result in a considerable increase in the amount of testing required, but it could also result in a considerable improvement to the overall integrity of the final application.
Naturally, we would recommend that you ensure that your coverage tool supports both interpretations to provide maximum flexibility.
[1] CAST 10 – What is a “Decision” in Application of Modified Condition/Decision Coverage (MC/DC) and Decision Coverage (DC)? June 2002.