语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖

语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖文章目录语句覆盖判定覆盖条件覆盖条件判定覆盖组合覆盖逻辑覆盖率 语句覆盖 条件覆盖 判定覆盖 条件 判定覆盖 组合覆盖 路径覆盖语句覆盖基本思想 设计用例 使程序中的每个可执行语句至少执行一次 每个可执行语句 每个语句 那么下图中执行为 1 2 gt 3 gt 4 优点 可以很直观的从源代码获得用例 无需细分每条判定表达式缺点 由于这种测 条件覆盖 判定覆盖 条件 判定覆盖 组合覆盖 路径覆盖语句覆盖基本思想 设计用例 使程序中的每个可执行语句至少执行一次 每个可执行语句 每个语句 那么下图中执行为 1

逻辑覆盖率:语句覆盖
<条件覆盖<判定覆盖<条件-判定覆盖<组合覆盖<路径覆盖< strong="">

语句覆盖

基本思想:设计用例,使程序中的每个可执行语句至少执行一次。
每个可执行语句:每个语句,那么下图中执行为:1->2->3->4
在这里插入图片描述




  • 优点:可以很直观的从源代码获得用例,无需细分每条判定表达式
  • 缺点:由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件是无法测试的,如在多分支的逻辑运算中无法全面考虑。语句覆盖是最弱的逻辑覆盖

判定覆盖

基本思想:设计用例,使得程序中的每一个判断取真分支和取假分支至少经历一次,即判断真假值均曾被满足
在这里插入图片描述
重点是判定针对于真假判断),覆盖条件:




或者

  • 优点:判定覆盖比语句覆盖具有更强的测试能力。同时判定覆盖与具有和语句覆盖一样的简单性,无需细分每个判定就可以得到测试用例
  • 缺点:往往大部分的测试用例是由多个逻辑条件组合的,若仅仅判断其整个的最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径,判定覆盖仍是很弱的逻辑覆盖

条件覆盖

基本思想:设计用例,使每个判断中的每个条件的可能取值至少满足一次
在这里插入图片描述
重点是判断语句的条件针对条件语句




判断表达式1: 设条件 a>0 为真 记T1 假 记F1 条件 b>0 为真 记T2 假 记F2 判断表达式3: 设条件 a>1 为真 记T3 假 记F3 条件 c>1 为真 记T4 假 记F4 

覆盖条件:

我们用条件覆盖的思想就是覆盖T1,T2,T3,T4,F1,F2,F3,F4

  • 优点:增加了对条件判断情况的测试,增加了测试路径
  • 缺点:条件覆盖不一定包含判定覆盖,例如,上面的测试用例中就不包含判断1的T分支,判断3的F分支。条件覆盖只能保证每个条件语句取值至少有一次为真,而不考虑所有的判定结果

条件–判定覆盖

基本思想:设计用例,使判定条件中的所有可能(条件成立、不成立)至少执行一次取值,同时,所有判断的可能结果(取真,取假),至少执行一次
在这里插入图片描述
覆盖条件用例:




要满足:T1,T2,T3,T4,F1,F2,F3,F4

  • 优点:能同时考虑到判定,条件两种覆盖
  • 缺点:未考虑条件的组合情况

组合覆盖

基本思路:设计用例,使所有可能的条件取值组合至少执行一次
在这里插入图片描述
重点:所有条件取值的组合




编号 覆盖条件取值
1 T1,T2
2 T1,F2
3 F1,T2
4 F1,F2
5 T3,T4
6 T3,F4
7 F3,T4
8 F3,F4
覆盖条件 覆盖组合
T1,T2 , T3 , T4 1,5
T1,F2 , T3 , F4 2,6
F1,T2 , F3 , T4 3,7
F1,F2 , F3 , F4 4,8
  • 优点:组合覆盖满足了判定覆盖、条件覆盖、和判定、条件覆盖准则。
  • 缺点:线性的增加了测试用例的数量

路径覆盖

基本思想:设计测试用例,来覆盖程序中的所有可能执行的路径
在这里插入图片描述
继上面的的条件取值表格




覆盖路径 覆盖组合
1-2-4 1,5
1-2-5 1,8
1-3-4 4,7
1-3-5 4,8
  • 优点:这种测试方法可以对程序进行彻底的测试,比前面五种的测试要广
  • 缺点:需要设计大量的,复杂的测试用例,使得工作量呈指数增长,不见得能把所有的条件组合都覆盖



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202356.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午7:20
下一篇 2026年3月20日 上午7:20


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号