软件测试Day5|软件测试理论03

本文介绍了白盒测试中的逻辑覆盖方法,包括语句覆盖、判定覆盖、条件覆盖、判定条件覆盖和条件组合覆盖,以及基本路径测试。强调了这些方法在单元测试中的应用,指出先静态后动态设计用例,并讨论了它们之间的覆盖关系和发现错误的能力。
摘要由CSDN通过智能技术生成

白盒测试方法

针对程序的代码进行测试,代码覆盖率高;缺点:覆盖所有代码路径大、业务功能可能覆盖不全、测试开销大

  • 静态方法:1)桌面检查(一个人检查);2)代码审查(开会议检查,卡法人员说明功能;主要是代码规范);3)代码走查(开会,与会人员提前准备测试数据,人工计算逻辑走向;主要是功能实现);4)代码扫描工具
  • 动态方法:
    • 逻辑覆盖法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖
    • 基本路径测试法

逻辑覆盖法

  • 是通过对程序逻辑结构的遍历实现程序的覆盖
  • 覆盖率 = 至少被执行一次的item数 / item总数
    在这里插入图片描述
1.语句覆盖法
  • 语句覆盖率 = 至少被执行一次的语句数量 / 可执行的语句总数
  • 以下语句覆盖率 = 4/4 = 100%
数据语句
x=3,y=1,magic=21,4
x=-3,y=-1,magic=-22,3,4
  • 局限:语句覆盖不能准确的判断运算中的逻辑关系错误;【如果语句a中的 && 变成 || ,以上两个用例仍正确通过】
2.判定覆盖法
  • 判定覆盖也称为分支覆盖;使得程序中的每个判断执行的”真“”假“都至少被执行一次
  • 判定覆盖率 = 每个判定的真假值至少出现一次 / 判定结果的总数
  • 以下判定覆盖率 = 4/4 = 100%
数据P1P2
x=3,y=1,magic=2TF
x=-1,y=0,magic=-2FT
  • 判定覆盖能满足语句覆盖
  • 局限:判定覆盖不能准确的判断运算中的逻辑关系错误;【如果语句a中的 && 变成 || ,以上两个用例仍正确通过】
3.条件覆盖法
  • 设计测试用例,使得每个判定中的每个条件至少有一次取真值,有一次取假值
  • 条件覆盖率 = 每个条件的真假值至少出现一次 / 条件结果的总数
  • 以下条件覆盖率 = 6/(2*3) = 100%
数据C1C2C3P1P2路径
x=3,y=0,magic=-2TFTFTa-c-d-f
x=-1,y=3,magic=2FTFFFa-c-e-f
  • 局限:100%条件覆盖并不能完全覆盖判定覆盖;
4.判定条件覆盖法
  • 设计测试用例,使得每个判定以及每个判定中的每个条件至少有一次取真值,有一次取假值;即同时满足判定覆盖和条件覆盖

  • 判定条件覆盖率 = 每个判定和每个条件的真假值至少出现一次 / (判定结果总数+条件结果总数)

  • 以下数据判定条件覆盖率 = 6/(2*3) = 100%

数据C1C2C3P1P2路径
x=3,y=3,magic=2TTFTFa-b-e-f
x=-3,y=0,magic=-2FFTFTa-c-d-f
  • 判定条件覆盖能满足判定覆盖语句覆盖条件覆盖
  • 局限:判定条件覆盖可能不能准确的判断运算中的逻辑关系错误(or);【如果语句a中的 && 变成 || ,以上两个用例仍正确通过;】
5.条件组合覆盖法
  • 设计测试用例,使得每个判定中的每个条件所有可能组合至少进行一次

  • 判定条件覆盖率 = 条件组合至少出现一定的数量 / (条件组合总数)

  • 案例中判定2个-》条件2+1个-》条件组合2*2+2=4+2=6

  • 以下数据条件组合覆盖率 = 6/(2*3) = 100%

数据C1C2C3P1P2路径
x=3,y=0,magic=-2TFTFTa-c-d-f
x=-3,y=15,magic=2FTFFFa-c-e-f
x=3,y=3,magic=2TTFTFa-b-e-f
x=-3,y=0,magic=-2FFTFTa-c-e-f
  • 条件组合覆盖能满足判定条件覆盖判定覆盖语句覆盖条件覆盖
  • 局限:不能保证所有路径都覆盖【以上差a-b-d-f】
6.路径覆盖法
  • 设计测试用例,覆盖程序

  • 路径覆盖率 = 至少被执行一次的路径数 / 总路径数

  • 案例中两个分支 2*2 = 4条路经

  • 以下数据条件组合覆盖率 = 6/(2*3) = 100%

数据C1C2C3P1P2路径
x=3,y=3,magic=-2TTTTTa-c-d-f
x=-3,y=3,magic=-2FTTFTa-c-d-f
x=3,y=3,magic=2TTFTFa-b-e-f
x=-3,y=15,magic=-2FTFFFa-c-e-f
  • 路径覆盖不能满足条件覆盖也就不能满足条件组合覆盖以及判定条件覆盖【C2为假没有】
  • 局限:逻辑循环覆盖工作量巨大

基本路径覆盖法

  • 在程序控制流图的基础上,通过分析程序的环路复杂性,导出可执行路径集合,从而设计测试用例。
  • 案例:数字代表代码行数
    在这里插入图片描述在这里插入图片描述
    流图G的圈复杂度为V(G)=路径总数,E为边的数量,N为节点的数量,P为判定节点的数量
    1)V(G) = E-N+2 = 10-8+2 = 4;
    2)V(G) = P+1 = 3+1 = 4
数据结果路径
iRecodNum=0,x=04-14
iRecodNum=1,iTtype=0x=24-6-7-14
iRecodNum=1,iTtype=1x=104-6-9-10-13-4-14
iRecodNum=1,iTtype=2x=204-6-9-12-13-4-14

总结

  • 主要用于单元测试
  • 先静态,后动态
  • 设计用例一般使用基本路径测试,重点模块使用多种逻辑覆盖率标准

逻辑覆盖方法间的覆盖关系 and 发现错误能力排序

语句覆盖判定覆盖判定条件覆盖条件组合覆盖
语句覆盖条件覆盖判定条件覆盖条件组合覆盖
语句覆盖判定覆盖路径覆盖
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值