3.1 - 单元测试详解
¶一、概念
¶1️⃣ 单元
单元:指的是软件中具有明确的功能与完整的规格、接口定义,可以清晰的与软件中其他部分区分开来的某一个部分。单元没有标准划分法,可以完全依照测试工程师的自身想法进行划分。以 C++ 程序为例,可以实现某些软件功能的类或者方法即可被视为一个单元。
¶2️⃣ 单元测试
单元测试(亦称模块测试):指的是对软件组成中的最小可测试单元进行的测试。单元测试将会检查软件中的各模块是否存在缺陷,是编码阶段结束后、测试工作开始时的第一项测试工作。
- 目标:确保软件中的每个模块都能正常工作。
- 开始时间:… -> 详细设计 -> 编码 -> 编译 -> 单元测试 -> 集成测试 -> 系统测试 -> …
- 设计依据:详细设计说明书、源代码。[详见下图 ]
- 执行者:软件开发工程师或白盒测试工程师。
- 执行方式:以白盒测试技术为主。首先执行静态测试,检查软件代码是否符合规范。随后执行动态测试,检查模块的实际输出结果与预期结果是否相符。
¶二、测试内容
单元测试主要针对以下五个方面对软件单元进行测试:
- 边界条件
- 异常处理
- 模块接口
- 局部数据结构
- 程序路径
¶三、辅助测试模块
在执行单元测试时,如果被测试模块并不是一个独立的程序,那么就需要设置辅助测试模块:
- 驱动模块 (Drive):用于模拟被测试模块的上一级模块。驱动模块相当于被测模块的 “主程序”,通常负责接收测试数据、将数据传递给被测模块、启动被测模块、输出测试结果等。
- 桩模块 (Stub):用于模拟被测模块在工作过程中所调用的子模块,负责进行少量的数据处理。