白盒测试的逻辑覆盖
符号说明:
^ 代表逻辑运算符 && 或者 ||
T 代表 True F 代表 False
A / B 代表条件表达式
六种逻辑覆盖的强弱关系:
在外面很多的教程都认为这六种逻辑覆盖从弱到强的排列顺序是:
语句覆盖->判定覆盖->条件覆盖->判定-条件覆盖->条件组合覆盖->路径覆盖
但经过上面的分析,它们之间的关系实际上可以用下图表示
语句覆盖
每条语句至少执行一次。
测试用例条件: A ^ B = T
判定覆盖(分支覆盖)
分支执行一致
测试用例条件:
A ^ B = T
A ^ B = F
条件覆盖
每个条件取到各种可能的值
测试用例条件:
A=T A=F
B=T B=F
判定/条件覆盖
判定覆盖、条件覆盖
测试用例条件:
A ^ B = T A ^ B = F
A=T A=F
B=T B=F
条件组合
每个判断语句中条件结果的所有可能组合至少出现一次
测试用例条件:
A= T B= T
A= T B= F
A= F B= T
A= F B= F
路径覆盖
覆盖程序中所有可能的执行路径
优点:这种覆盖方法可以对程序进行彻底的测试用例覆盖,比前面讲的五种方法覆盖度都要高。
缺点:于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。路径覆盖虽然是一种比较强的覆盖,但未必考虑判断语句中条件表达式结果的组合,并不能代替条件覆盖和条件组合覆盖。
实例:
https://blog.csdn.net/hanjing_1995/article/details/52444162
https://www.cnblogs.com/shuhaoz/p/4419193.html
(1)语句覆盖
使程序中的每个可执行语句都能执行一次的测试用例
测试用例条件: A ^ B = T
(2)判定覆盖(分支覆盖)
对于判断语句,在设计用例的时候,要设计判断语句结果为True和False的两种情况
测试用例条件:
A ^ B = T
A ^ B = F
(3)条件覆盖
设计用例时针对判断语句里面每个条件表达式true 和 false各取值一次,不考判断语句的计算结果
测试用例条件:
A=T A=F
B=T B=F
(4)判定条件覆盖(分支条件覆盖)
设计测试用例时,使得判断语句中每个条件表达式的所有可能结果至少出现一次,每个判断语句本身所有可能结果也至少出现一次。
测试用例条件:
A ^ B = T A ^ B = F
A=T A=F
B=T B=F
(5)条件组合覆盖
设计测试用例时,使得每个判断语句中条件结果的所有可能组合至少出现一次
测试用例条件:
A= T B= T
A= T B= F
A= F B= T
A= F B= F
(6)路径覆盖
设计测试用例时,覆盖程序中所有可能的执行路径
优点:这种覆盖方法可以对程序进行彻底的测试用例覆盖,比前面讲的五种方法覆盖度都要高。
缺点:于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。路径覆盖虽然是一种比较强的覆盖,但未必考虑判断语句中条件表达式结果的组合,并不能代替条件覆盖和条件组合覆盖。
白盒测试中的六种覆盖方法
03-27白盒测试---六种覆盖方法 - write6的专栏 - CSDN博客
9-14
白盒测试的6种覆盖方法 - 上善若水,水善利万物而不争。 - CSDN博客
6-25
白盒测试中的六种覆盖方法及案例分析 - Dancinglikelink - CSDN博客
6-22
白盒测试中逻辑覆盖的六种方法 - hellofeiya的专栏 - CSDN博客
7-6
软件测试-白盒测试(六种覆盖准则) - weixin_40975029的..._CSDN博客
5-9
白盒测试中的六种覆盖方法案例分析 - weixin_34273479的博客 - ...
5-31
软件测试-白盒测试(六种覆盖准则) - zgege的博客 - CSDN博客
7-9
白盒测试的6种覆盖方法 - thewebcode - CSDN博客
4-19
白盒测试中的几种覆盖方法 - weixin_34279246的博客 - CSDN博客
6-24