2.1 什么是白盒测试
核心概念
白盒测试,又称结构测试、透明盒测试或逻辑驱动测试,是一种软件测试方法。它基于对程序内部结构、设计逻辑和代码实现的深入了解来进行测试。
核心比喻:测试者像拥有”建筑蓝图”的工程师,不仅检查房屋功能(门窗是否好用),更要检查其内部结构(电线布线、管道走向、承重墙强度)是否正确可靠。
主要特点
| 特点 | 描述 |
|---|---|
| 测试依据 | 源代码是主要的测试依据 |
| 测试对象 | 主要针对程序模块、函数、类等细粒度的代码单元 |
| 测试者 | 通常由软件开发人员或懂代码的测试工程师执行 |
| 测试目标 | 发现代码中的逻辑错误、条件判断错误、循环错误、算法错误等内部缺陷 |
常用测试方法
白盒测试关注代码的执行路径。主要方法包括:
1. 语句覆盖
确保程序中的每条可执行语句至少被执行一次。
2. 分支覆盖/判定覆盖
确保每个判断条件(如 if-else 语句)的真、假两个分支至少各执行一次。
3. 条件覆盖
确保每个判断条件中的每个子条件(布尔表达式)都取遍所有可能的结果。
4. 路径覆盖
确保程序所有可能的执行路径都被测试到(强度最高,但通常难以完全实现)。
优点与缺点
优点
- 深入彻底:能发现代码内部深层次的错误
- 早期介入:可在代码完成后立即开始,无需等待界面开发完成
- 优化代码:通过审查代码,有助于发现冗余和潜在性能问题
缺点
- 成本高:对测试人员技能要求高,且测试用例设计复杂耗时
- 视野受限:测试基于代码,无法发现软件在需求规格说明上的缺失或错误(这是黑盒测试的重点)
- 难以测试全部路径:对于复杂程序,路径数量可能呈爆炸式增长,无法完全覆盖
总结
白盒测试是一种从代码层面保障软件质量的关键技术,通常与不关心内部实现的黑盒测试互补使用,共同构成完整的测试策略。它主要应用于单元测试和集成测试阶段。
一句话总结:白盒测试是”知其然,更知其所以然”的测试,通过检查代码内部逻辑来确保程序的构建质量。
练习
一、 单选题(共1题)
- 白盒测试的依据是什么?
- A. 软件的详细需求规格
- B. 程序的用户界面
- C. 程序源代码和内部结构
- D. 用户的使用手册
二、 判断题(共1题)
- 白盒测试必须完全由编程的业务专家来执行。( )
三、 简答题(共1题)
- 请简要说明白盒测试与黑盒测试的一个根本区别。