Modified condition/decision coverage

This is an old revision of this page, as edited by 194.250.120.137 (talk) at 14:37, 28 May 2009 (Definitions). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.


Modified Condition/Decision Coverage (MC/DC), is used in the standard DO-178B to ensure that Level A (Catastrophic) software is tested adequately.

It is a form of exhaustive testing, in that during testing all of the below must be true at least once:

  • Each decision tries every possible outcome
  • Each condition in a decision takes on every possible outcome
  • Each entry and exit point is invoked
  • Each condition in a decision is shown to independently affect the outcome of the decision

Independence of a condition is shown by proving that only one condition changes at a time.

The most critical (Level A) software, which is defined as that which could prevent continued safe flight and landing of the aircraft, must satisfy a level of coverage called Modified Condition/Decision Coverage (MC/DC).

Definitions

Condition
A condition is a leaf-level Boolean expression (it cannot be broken down into a simpler Boolean expression).
Decision Coverage
Every point of entry and exit in the program has been invoked at least once, and every decision in the program has taken all possible outcomes at least once.
Condition/Decision Coverage
Every point of entry and exit in the program has been invoked at least once, every condition in a decision in the program has taken all possible outcomes at least once, and every decision in the program has taken all possible outcomes at least once.
Modified Condition/Decision Coverage
Every point of entry and exit in the program has been invoked at least once, every condition in a decision in the program has taken on all possible outcomes at least once, and each condition has been shown to affect that decision outcome independently. A condition is shown to affect a decision’s outcome independently by varying just that decision while holding fixed all other possible conditions. The condition/decision criterion does not guarantee the coverage of all conditions in the module because in many test cases, some conditions of a decision are masked by the other conditions. Using the modified condition/decision criterion, each condition must be shown to be able to act on the decision outcome by itself, everything else being held fixed. The MC/DC criterion is thus much stronger than the condition/decision coverage criterion, but the number of test cases to achieve the MC/DC criterion still varies linearly with the number of conditions in the decisions.