'''Modified Conditioncondition/Decisiondecision Coveragecoverage''' (MC/DC), is used in the standard [[DO-178B]] to ensure that Level A [[software]] is [[Software testing|tested]] adequately.
To satisfy the MC/DC coverage criterion, during testing all of the below must be true at least once<ref>{{cite journal | title = A Practical Tutorial on Modified Condition/ Decision Coverage | month = May | year = 2001 | journal = NASA | last1 = Hayhurst | first1 = Kelly | last2 = Veerhusen | first2 = Dan | last3 = Chilenski | first3 = John | last4 = Rierson | first4 = Leanna | url = http://shemesh.larc.nasa.gov/fm/papers/Hayhurst-2001-tm210876-MCDC.pdf}}</ref>:
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 an aircraft, must satisfy a level of [[code coverage|coverage]] called ''Modifiedmodified Conditioncondition/Decisiondecision Coveragecoverage'' (MC/DC).
==Definitions==
;Decision: A Boolean expression composed of conditions and zero or more Boolean operators. A decision without a Boolean operator is a condition.
;Condition Coveragecoverage: Every condition in a decision in the program has taken all possible outcomes at least once.
;Decision Coveragecoverage: 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/Decisiondecision Coveragecoverage: 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 Conditioncondition/Decisiondecision Coveragecoverage: 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 condition 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 case]]s, 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.
[[Category:Software testing]]
|