使用逻辑覆盖测试方法测试以下程序段

2025-03-10 18:35:31
推荐回答(1个)
回答1:

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”三种。在条件覆盖中仅需考虑到这三种的一种即可,而在条件组合覆盖中需要都考虑到。 

条件组合覆盖率的公式:条件组合覆盖率=被评价到的条件取值组合的数量/条件取值组合的总数

条件组合覆盖的缺点:判定语句较多时,条件组合值比较多。

参考资料来源:百度百科-逻辑覆盖