1、语句覆盖,SC(Statement Coverage),每个判断的语句执行一次即可;
2、判定覆盖,DC(Decision Coverage),判断语句输出结果为真为假各一次即可;
3、条件覆盖,CC(Condition Coverage),所有出现的判断条件,为真为假各出现一次;
4、修正判定条件覆盖,MCDC(Modified Coverage Decision Coverage),一条判断语句中,保证其他变量不变的情况下,只改变其中一个变量的值(改变输入),会对输出结果产生影响;
#include <stdio.h>
void main()
{
int a,b,c;
String s1="hello";
String s2="world";
if(a>1&&((b=0)||(c<-1)))
printf("%s",s1);
else
printf("%s",s2);
}
语句覆盖 | ||
a>1 | b=0 | c<-1 |
T | T | × |
F | × | × |
判定覆盖 | ||
a>1 | b=0 | c<-1 |
T | T | × |
F | × | × |
条件覆盖 | ||
a>1 | b=0 | c<-1 |
T | T | T |
F | F | F |
修正条件覆盖 | ||
a>1 | b=0 | c<-1 |
T | T | F |
F | T | × |
|
|
|
|
|
|
T | F | T |
T | F | F |
"×"表示可以取真或者取假,该测试用例不会影响输出结果;
“删除线”表示可以删除该测试用例,重复使用了;