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(A2)||(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