软件测试之白盒测试

优点:代码覆盖率高
缺点:覆盖所有代码路径难度大、业务功能可能覆盖不全、测试开销大
方法:静态:桌面走查(交叉检查,代码交给其他人检查)、代码审查(组织会议,作者讲解代码,看是否负责规范,侧重于规范)、代码走查(组织会议,与会人员准备数据,人工查看代码走向,侧重于功能实现)、代码扫描工具(辅助检查编码规范)
动态:逻辑覆盖法(语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖)、基本路径测试法。

逻辑覆盖法

逻辑覆盖法:是通过对程序逻辑结构的遍历实现程序的覆盖。
覆盖率:是用来度量测试完整性的一个手段。
在这里插入图片描述

语句覆盖

设计测试用例,使得程序中每条语句至少被执行一次。
在这里插入图片描述
在六种逻辑覆盖标准中,语句覆盖标准是最弱的。
语句覆盖不能准确的判断运行中的逻辑关系错误。(无法发现if(x>0||y>0))

判定覆盖

判定覆盖,又称分支覆盖,设计程序用例,使得程序中的每个判断的真和假都至少被执行一次。即程序的每个分支至少执行一次。
在这里插入图片描述
只要满足了判定覆盖标准就一定满足语句覆盖标准。
判定覆盖会忽略条件中取或的情况。

条件覆盖

设计测试用例,使得判定覆盖的每个条件至少有一次去真值,有一次取假值。
在这里插入图片描述
条件覆盖比判定覆盖,增加了对判定覆盖中所有条件的测试。
条件覆盖并不能保证判定覆盖。

条件覆盖、判定覆盖区别

两个条件a>0&&b>0、c>0
判定覆盖使得a>0&&b>0、c>0两个判别式分别取真取假
条件覆盖使得a>0、b>0、c>0三个判别式分别取真取假
判定覆盖是针对判别式取真取假,与判定条件无关,而条件覆盖是针对判定条件取真取假,与判别式无关,两者都有一定的局限性。

判定条件覆盖

设计测试用例,使得被测试程序中的每个判定本身的判定结果(真假)至少满足一次,同时,每个逻辑条件的可能值(真假)也至少被满足一次。即同时满足100%判定覆盖和100%条件覆盖的标准。
在这里插入图片描述
满足判定条件覆盖标准一定满足条件覆盖、判定覆盖和语句覆盖。
判定条件覆盖会忽略条件中取或的情况(无法发现if(x>0||y>0,虽然都取了,但是x>0时与y无关)。

条件组合覆盖

设计测试用例,使得被测试程序中的每个判定中条件覆盖的所有可能至少执行一次。
在这里插入图片描述
条件组合覆盖能满足判定覆盖、条件覆盖、判定条件覆盖,也就包括语句覆盖。
条件组合覆盖不能保证所有路径被执行。

路径覆盖


路径覆盖可以对程序进行测试的测试,比前面五种覆盖面都广。
满足路径覆盖,并不一定满足条件覆盖,也就不能满足条件组合覆盖。

基本路径测试法

在程序控制流图的基础上,通过分析程序的环路复杂度,导出基本可执行集合,从而设计测试用例。
步骤
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值