从需求到测试用例及测试管理全解析
1. 测试用例设计基础
在设计测试用例时,首先要为每个等价类选择一个代表值,这通常是一个基于测试人员经验的启发式过程。同时,为每个测试输入选择合适的测试输出,以此来完成测试用例(包括测试步骤和断言)。
边界分析
程序员们都清楚,错误常常出现在等价类的边界处,比如数组的初始值、给定范围的最大值等。边界值分析是一种通过查看测试输入边界来补充等价类划分的方法。美国国家标准与技术研究院(NIST)在1981年将其定义为:“一种选择技术,其中测试数据被选择为位于输入域[或输出范围]类、数据结构和过程参数的‘边界’上”。运用边界值分析时,需要在等价类的边界处对被测系统(SUT)进行评估,通常会衍生出两个测试用例:等价类的上边界和下边界。
测试覆盖率
测试覆盖率是指在SUT中被任何测试所执行的代码比例,它有助于发现SUT中未被测试的部分,是一种很好的白盒(结构)测试技术,可与黑盒(功能)测试互补。一般来说,80%或以上的测试覆盖率被认为是合理的。以下是一些可用于简单实现测试覆盖率的Java库:
| 工具名称 | 描述 | 特点 |
| ---- | ---- | ---- |
| Cobertura(http://cobertura.github.io/cobertura/) | 开源报告工具 | 可通过Ant、Maven执行,也可直接使用命令行 |
| EclEmma(http://www.eclemma.org/) | 用于Eclipse的开源代码覆盖工具 | 从Eclipse 4.7(Oxygen)开始,已集成在IDE中 |
| JaCoCo(http://