c语言写法: void test(int X, int y, int z) { if (y>1&&z==0) y=X/A; if (y==2|| X>1) X=X 1; }
语句覆盖是指选择足够的测试用du例,使得运行这些测试用例时,被测程序的每一个语句至少执行一次,其覆盖标准无法发现判定中逻辑运算的错误;
路径覆盖是每条可能执行到的路径至少执行一次;if A and B then Action1 if C or D then Action2 语句覆盖,只需要让程序中的语句都执行一遍即可 。
上例中只需设计测试用例使得A=true B=true C=true 即可。路径覆盖:要求覆盖程序中所有可能的路径。
所以可以设计测试用例满足下列条件
(1)A=true,B=true,C=true,D=true
(2)A=false,B=false,C=false,D=false
(3)A=true,B=true,C=false,D=false(4)A=false,B=false,C=true,D=true。
扩展资料:
条件组合覆盖,也称多条件覆盖MCC (Multiple Condition Coverage),设计足够多的测试用例,使得每个判定中条件的各种可能组合都至少出现一次(以数轴形式划分区域,提取交集,建立最少的测试用例)。这种方法包含了“分支覆盖”和“条件覆盖”的各种要求。满足条件组合覆盖一定满足判定覆盖、条件覆盖、判定条件覆盖。
例如上边的Coverage类中第8行“if(A==2 or X>1)”代码,所有可能的条件组合为:
“A==2,X>1”、“A==2,X<=1”和“A!=2,X>1”三种。在条件覆盖中仅需考虑到这三种的一种即可,而在条件组合覆盖中需要都考虑到。
条件组合覆盖率的公式:条件组合覆盖率=被评价到的条件取值组合的数量/条件取值组合的总数
条件组合覆盖的缺点:判定语句较多时,条件组合值比较多。
参考资料来源:百度百科-逻辑覆盖