(二)逻辑覆盖

1,逻辑覆盖法

有这么一个程序
在这里插入图片描述

1.1,语句覆盖

基本思想:设计若干测试用例,运行被测程序,使程序中每个可执行语句至少执行一次。
在这里插入图片描述

所以只需要设计一个测试用例:a=2,b=2,c=2即可达成语句覆盖

语句覆盖的优缺点:

  • 优点:可以直观的从源代码得到测试用例
  • 缺点:仅仅针对程序逻辑中显式存在的语句,无法针对隐藏的条件进行测试。语句覆盖是最弱的逻辑覆盖

1.2,判定覆盖

基本思想:设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即:判断真假值均曾被满足

在这里插入图片描述

a=2,b=1,c=6即可覆盖判断M的Y分支,判断Q的Y分支

a=0,b=0,c=0即可覆盖判断M的N分支,判断Q的N分支

  • 优点:判定覆盖具有比语句覆盖更强的测试能力
  • 缺点:对于由多个条件组成的判定来讲,容易忽略每个条件的取值情况,这必然会遗漏部分测试路径。判定覆盖是弱的逻辑覆盖

1.3,条件覆盖

基本思想:设计若干测试用例,执行被测程序,要使每个判断中每个条件的可能取值至少满足一次

在这里插入图片描述

设条件a>0取真记为T1,取假记为F1

设条件b>0取真记为T2,取假记为F2

设条件a>1取真记为T3,取假记为F3

设条件c>1取真记为T4,取假记为F4

测试用例覆盖条件
a=2,b=-1,c=-2T1,F2,T3,F4
a=-1,b=2,c=3F1,T2,F3,T4
  • 优点:增加了对条件判定情况的测试,增加了测试路径
  • 缺点:条件覆盖不一定包含判定覆盖,条件覆盖并不考虑判定结果

1.4,判定-条件覆盖

基本思想:设计足够的测试用例,使得判断条件中的所有条件可能至少执行一次取值,同时,所有判断的可能结果至少执行一次

在这里插入图片描述

按照判定-条件覆盖的要求,设计的测试用例要满足如下条件:

  1. 所有条件可能至少执行一次取值
  2. 所有判断的可能结果至少执行一次
测试用例覆盖条件覆盖判定
a=2,b=1,c=6T1,T2,T3,T4M的Y分支,Q的Y分支
a=0,b=0,c=0F1,F2,F3,F4M的N分支,Q的N分支
  • 优点:能同时满足判定,条件两种覆盖标准
  • 缺点:判定-条件覆盖准则的缺点是未考虑条件的组合

1.5,条件组合覆盖

基本思想:设计足够的测试用例,使得所有可能的条件取值组合至少执行一次

在这里插入图片描述

设条件a>0取真记为T1,取假记为F1

设条件b>0取真记为T2,取假记为F2

设条件a>1取真记为T3,取假记为F3

设条件c>1取真记为T4,取假记为F4

所以相应的条件组合有:

T1,T2,T3,T4

T1,F2,T3,F4

F1,T2,F3,T4

F1,F2,F3,F4

测试用例覆盖条件
a=2,b=1,c=6T1,T2,T3,T4
a=2,b=0,c=0T1,F2,T3,F4
a=0,b=1,c=6F1,T2,F3,T4
a=0,b=0,c=0F1,F2,F3,F4
  • 优点:条件组合覆盖准则满足判定覆盖,条件覆盖和判定-条件覆盖
  • 缺点:线性地增加了测试用例的数量

1.6,路径覆盖

基本思想:设计所有的测试用例,用来覆盖程序中的所有可能的执行路径

在这里插入图片描述

该程序存在的路径组合:

1-2-4

1-2-5

1-3-4

1-3-5

测试用例覆盖路径
a=2,b=1,c=61-2-4
a=2,b=1,c=01-2-5
a=0,b=1,c=61-3-4
a=0,b=0,c=01-3-5
  • 优点:这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都要广
  • 缺点:需要涉及大量,复杂的测试用例,使得工作量呈指数级增长,不见得把所有的条件组合都覆盖
  • 82
    点赞
  • 297
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值