首页 > 其他分享 >白盒测试之逻辑覆盖

白盒测试之逻辑覆盖

时间:2023-03-19 11:46:32浏览次数:43  
标签:语句 逻辑 覆盖 白盒 测试用例 判定 测试 Test B0

PS:课程笔记(里面有余九九课本里的举例)

    首先, 逻辑覆盖是一种基于程序内部逻辑结构的动态白盒测试方法;其次,根据逻辑覆盖的强度由低到高可以分为语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。

语句覆盖(可执行语句)
在使用语句覆盖设计测试用例时,要求程序中可执行的语句必须至少被执行一次。它只关注每个判定表达式的最终结果逻辑值(Y或N),并不关注判定表达式中不同条件的取值情况,所以,某些测试用例是无法检测出错误的(eg:如果判定表达式是“if((x>0)&&(y>0))”错将“&&”写成“||”输入“x=1,y=1”程序结果还是Y,就无法检测出错误)。

    设计测试用例:

void test(int x,int A,int B){
if(A>1)&&(B0) //语句①
x=x/A; //语句②
if(A
2)||(x>1) //语句③
x++; //语句④
}
测试用例 输入数据 (A>1)&&(B0)① (A2)||(x>1)③ 覆盖语句
x A B
Test Case1 1 2 0 Y Y ②④
判定覆盖(判定表达式)
又称分支覆盖,要求程序中每个判定表达式的Y和N分支至少被执行一次。

    设计测试用例:

测试用例 输入数据 (A>1)&&(B0)① (A2)||(x>1)③ 覆盖语句
x A B
Test Case1 1 2 0 Y Y ②④
Test Case2 1 3 1 N N 无
或者

测试用例 输入数据 (A>1)&&(B0)① (A2)||(x>1)③ 覆盖语句
x A B
Test Case1 1 3 0 Y N ②
Test Case2 2 2 2 N Y ④
条件覆盖(判定条件)
要求程序中每个判定表达式里的每个判定条件的Y和N都要至少被执行一次。

    设计测试用例(只写一组)

测试用例 输入数据 (A>1) (B0) (A2) (x>1) 覆盖语句
x A B
Test Case1 1 2 0 Y Y Y N ②④
Test Case2 2 1 1 N N N Y ④
判定/条件覆盖(里外)
要求每个判定表达式和每个判定表达式里的每个判定条件的Y和N都需要至少被执行一次。

    设计测试用例(只写一组)

测试用例 输入数据 (A>1)&&(B0)① (A2)||(x>1)③ (A>1) (B0) (A2) (x>1) 覆盖语句
x A B
Test Case1 2 2 2 N Y N N Y Y ④
Test Case2 1 4 0 Y N Y Y N N ②
条件组合覆盖(里外组合)
要求每个判定表达式里的判定条件的Y和N的组合(就是1下面有11和12两个条件,那么组合有“YY”,"YN","NY","NN"四种组合)至少被执行一次。

    设计测试用例(只写一组)

测试用例 输入数据 (A>1) (B0) (A2) (x>1) 覆盖语句
x A B
Test Case1 4 2 0 Y Y Y Y ②④
Test Case2 1 1 1 N Y N N 无
Test Case3 2 2 1 Y N Y N ④
Test Case4 2 1 1 N N N Y ④
路径覆盖(路径)
要求所有路径至少被执行一次。(对于较复杂的循环结构程序很难做到)

    设计测试用例(只写一组)

————————————————
版权声明:本文为CSDN博主「天上星水中月」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shanliyiyeren/article/details/120068034

标签:语句,逻辑,覆盖,白盒,测试用例,判定,测试,Test,B0
From: https://www.cnblogs.com/05xy/p/17232693.html

相关文章