技术分享 | 白盒测试方法论

本文节选自霍格沃兹测试开发学社内部教材

白盒测试又称为结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法。盒子指的是被测试的软件,白盒指的是盒子是可视的,即清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构,对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。

白盒测试通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试。在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

白盒测试的度量

根据待测产品的内部实现细节来设计测试用例。白盒测试的执行手段可以涵盖单元测试、集成测试。一般使用代码覆盖率作为白盒测试的主要度量指标。

代码覆盖率常见概念

  • 语句覆盖:每行代码都要覆盖至少一次(最基础,不能保证完整度)
  • 判定覆盖:判定表达式的真假至少覆盖一次
  • 判定/条件覆盖:判定覆盖与条件覆盖都必须覆盖
  • 条件组合覆盖:判定表达式中的所有条件组合都需要覆盖
  • 分支覆盖:控制流中的每条边都要被覆盖一次
  • 路径覆盖:所有的路径都要尽量覆盖
  • 指令覆盖:一行代码会被编译为多条指令,尽可能的覆盖所有指令
  • 方法覆盖:每个方法至少要被覆盖一次
  • 类覆盖:每个类至少被覆盖一次

覆盖率统计的工具

  • EMMA:是一个开源、面向 Java 程序的测试覆盖率收集和报告工具。它通过对编译后的 Java 字节码文件进行插桩,在测试
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
白盒测试方法是基于代码内部结构的测试方法,设计测试用例需要考虑代码的逻辑结构、数据结构和代码执行路径等因素。以下是一些常用的白盒测试方法和设计测试用例的步骤: 1. 代码覆盖测试:通过测试用例来检查代码是否覆盖了所有的执行路径和条件分支。设计测试用例的步骤包括: - 识别代码的条件分支和循环结构。 - 设计测试用例满足每个分支和循环结构的所有可能情况。 - 确保测试用例能够覆盖所有的执行路径,包括正常情况、异常情况和边界情况。 2. 数据流测试:通过测试用例来检查代码的数据流是否正确。设计测试用例的步骤包括: - 识别代码的变量和数据结构。 - 设计测试用例,测试数据在代码的传递和转换过程是否正确。 - 确保测试用例能够覆盖所有的数据流路径,包括正常情况、异常情况和边界情况。 3. 边界值测试:通过测试用例来检查代码在处理边界值时是否正确。设计测试用例的步骤包括: - 识别代码的边界值,例如最大值、最小值等。 - 设计测试用例,测试边界值时代码是否能够正确处理。 - 确保测试用例能够覆盖所有的边界值情况,包括正常情况、异常情况和非法情况。 4. 异常处理测试:通过测试用例来检查代码在处理异常时是否正确。设计测试用例的步骤包括: - 识别代码可能出现的异常情况。 - 设计测试用例,测试代码在处理异常情况时是否能够正确处理。 - 确保测试用例能够覆盖所有可能出现的异常情况。 以上是一些常用的白盒测试方法和设计测试用例的步骤,测试人员可以根据具体的项目和代码结构选择合适的测试方法和设计测试用例。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值