Modified condition/decision coverage

This is an old revision of this page, as edited by 62.254.189.226 (talk) at 19:41, 14 May 2007. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

MC/DC or Modified Condition/Decision Coverage, 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).

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 n in the decisions.