白盒测试的理解和测试方法

基本原理
白盒测试基于软件的源代码,已知产品的内部工作过程,主要是对程序内部结构展开测试,关注程序实现的细节。
白盒测试关注的对象包括两个方面:
(1)源代码,即直接查看源代码,查看代码的规范性,并对照函数功能查找代码的逻辑缺陷、内存管理缺陷,数据定义和使用缺陷等;
(2)程序结构,即通过函数调用图、算法流程图等反映程序设计的相关图表,或评价程序的执行效率,以利于程序的结构优化。

优点:代码覆盖率高
缺点:
1、覆盖所有代码路径难度大
2、业务功能可能覆盖不全
3、测试开销大
白盒测试的方法
在这里插入图片描述逻辑覆盖法

◆逻辑覆盖法:是通过对程序逻辑结构的遍历实现程序的覆盖。
◆覆盖率:是用来度量测试完整性的一个手段。
在这里插入图片描述
将代码转换为流程图(以下的测试设计方法均用这个流程图举例)
在这里插入图片描述

1、语句覆盖

语句覆盖:设计测试用例,使得程序中每条语句至少被执行一次。
在这里插入图片描述
例如:

  • 案例代码中共有4条可执行语句
  • 设计测试用例执行了3条,语句覆盖率为3/4=75%
    在这里插入图片描述
    局限性:
    在这里插入图片描述
    2、判定覆盖

判定覆盖:也叫分支覆盖,设计测试用例,使得程序中的每个判断的“真"和“假”都至少被执行一次。即:程序中的每个分支至少执行一次。
在这里插入图片描述
例如:

  • 案例代码中有判定2个,判定结果4个
  • 设计测试用例执行了3个分支,分支覆盖率为3/4=75%
    在这里插入图片描述
    局限性:
    在这里插入图片描述
    3、条件覆盖
    条件覆盖:设计测试用例,使得判定中的每个条件至少有一次取真值,有一次取假值。

在这里插入图片描述
例如:

  • 案例代码中有判定2个,条件3个,条件结果6个
  • 设计测试用例执行了5个条件结果,条件覆盖率为5/6=83%
    在这里插入图片描述
    局限性:
    在这里插入图片描述
    4、判定条件覆盖
    判定条件覆盖:设计测试用例,使得被测试程序中的每个判断身的判定结果(真假)至少满足一次,同时,每个逻辑条件的能值(真假)也至少被满足一次。即同时满足100%判定覆盖和100%条件覆盖的标准。
    在这里插入图片描述
    例如:
  • 案例代码中有判定2个,条件3个, 判定结果4个,条件结果6个
  • 设计测试用例执行了3个判定结果,5个条件结果,判定条件覆盖率为: (3+5) / (4+6) =80%
    在这里插入图片描述
    局限性:
    在这里插入图片描述
    5、条件组合覆盖
    条件组合覆盖:设计测试用例,使得被测试程序中的每个判定中条件结果的所有可能组合至少执行一次。
    在这里插入图片描述
    例如:
  • 案例代码中有判定2个,条件3个(判定1有2个条件,判定2有1个条件),判定1的条件组合为4个,判定2的条件组合为2个
  • 设计测试用例执行了5个条件组合,条件组合覆盖率为:5/ (4+2) =83%

在这里插入图片描述
局限性:
在这里插入图片描述
6、测试设计方法——路径覆盖

路径覆盖:设计测试用例,覆盖程序中所有可能的路径。
在这里插入图片描述
例如:

  • 案例代码中共有4条路径
  • 设计测试用例执行了3条路径,路径覆盖率为3/4=75%
    在这里插入图片描述
    局限性:
    在这里插入图片描述
    对于下面的流程图路径覆盖很难实现,我们该如何实现呢?
    在这里插入图片描述
    引出了基本路径测试法:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值