Modified Condition Decision Coverage (MCDC) in software testing
According to Modified Condition Decision Coverage criteria, we need to cover all those combinations of truth values of conditions in which each of the condition’s truth value determines the decision truth value.
For example, if the condition is True then a decision must also be True. Similarly, if the condition is False, then the decision must also be false.
Condition C1 | Condition C2 | Decision D1 | |
T | T | T | C1 determines D1 as T |
F | T | F | C1 determines D1 as F |
Table 1: C1 determines D1.
Condition C1 | Condition C2 | Decision D1 | |
T | T | T | C2 determines D1 as T |
T | F | F | C2 determines D1 as F |
Table 2: C2 determines D1.
Condition C1 | Condition C2 | Decision D1 | |
T | T | T | C1 determines D1 as T |
F | T | F | C1 determines D1 as F |
T | T | T | C2 determines D1 as T |
T | F | F | C2 determines D1 as F |
Table 3: C1 and C2 determines D1.
Now, we can remove the redundancy. Redundancy is mentioned below;
T | T | T | C1 determines D1 as T |
T | T | T | C2 determines D1 as T |
Both of these two testing the same thing, so we can choose one of them to remove. In this example we have chosen the following;
T | T | T | C2 determines D1 as T |
Condition C1 | Condition C2 | Decision D1 | |
T | T | T | C1 determines D1 as T |
F | T | F | C1 determines D1 as F |
T | F | F | C2 determines D1 as F |
Table 4: After removing redundancy.
Now, we can see in table 4 that conditions determine the decision
- If C1 is T then D1 is T
- If C1 is F then D1 is F
- If C2 is T then D1 is T, but it is removed because it is redundant to (if C1 is T then D1 is T).
- If C2 is F then D1 is F
MCC= MCC stands for Multiple condition Coverage.
MCDC= MCDC stands for Modified Condition Decision Coverage.
CDC= CDC stands for Condition Decision Coverage.
CC= CC stands for condition Coverage.
DC= DC stands for Decision Coverage.
Some facts about Modified Condition Decision Coverage (MCDC)
Modified Condition Decision Coverage (MCDC) subsumes CDC. So it leads to the followings;
CDC subsumes CC and DC.
It means that if we performed MCC testing, then no need to perform MCDC, CDC, CC, and DC.
MCDC is stronger than CC.
MCDC is stronger than DC.
MCDC is weaker than MCC.