修正条件判定覆盖(Modified Condition/Decision Coverage),简称MC/DC,定义为:
Condition —— a Boolean expression containing no Boolean operators:
Decision —— a Boolean expression composed of conditions and zero or more Boolean operators:
Modified Condition/Decision Coverage —— every point of entry and exit in the program has been invoked at least once,every condition in the program has taken all possible outcomes at least once,and each condition in a decision has been shown to independently affect a decision S outcome by varying just that condition while holding fixed all other possible conditions.
条件表示不含有布尔操作符号的布尔表达式;
判定表示由条件和零或者很多布尔操作符号所组成的一个布尔表达式;
修正条件判定覆盖要求在一个程序中每一种输入输出至少得出现一次,在程序中的每一个条件必须产生所有可能的输出结果至少一次,并且每一个判定中的每一个条件必须能够独立影响一个判定的输出,即在其他条件不变的前提下仅改变这个条件的值,而使判定结果改变.
有点不好理解,下面解释一下:
MC/DC首先要求实现条件覆盖、判定覆盖,在此基础上,对于每一个条件C,要求存在符合以下条件的两个用例:
1)条件C所在判定内的所有条件,除条件C外,其他条件的取值完全相同;
2)条件C的取值相反;
3)判定的计算结果相反。