等价类测试
原因:不能对系统进行穷尽测试
,所以应该使用有限的测试用例测试系统,并满足条件
- 测试是完备的
- 测试时没有冗余的
等价类
有效等价类
- 输入域中一组有意义的数据的集合
- 有效等价类被用于检测系统指定功能和性能是否正确实现
弱覆盖
定义:测试用例应覆盖所有的有效等价类
强覆盖
定义:测试用例覆盖所有的有效等价类的组合
举例说明
s=x*y
x的取值范围是:M1,M2,M3
y的取值范围是:N1,N2
(假设取值范围是连续的情况下)
弱覆盖的测试用例:(M1,N1),(M2,N2),(M3,N1),只需要将M1,M2,M3,N1,N2都覆盖到
强覆盖的测试用例:(M1,N1),(M1,N2),(M2,N1),(M2,N2),(M3,N1),(M3,N3),需要全部等价类的组合都有
无效等价类
- 输入域中一组无意义的数据的集合
- 无效等价类被用于检验系统的容错性
原则:单缺陷原则
即测试用例的失败是由单个无效等价类关联的缺陷导致的。每个测试用例应该唯一对应一个输入条件的无效等价类。
一个测试用例唯一对应一个无效等价类
一个无效等价类可以对应多个测试用例
划分
假设输入域是一个连续的取值范围
- 有效的取值范围是有效等价类
- 无效的取值范围是无效等价类
等价类测试流程
- 确定有几个输入条件
问题:可能会改变原始输入域
解决办法:尽量从用户角度分析需求,避免改变原始域输入
- 划分每个输入条件
有效域和无效域的处理机制不同
解决办法:在有效域用组合机制,在无效域用单缺陷原则
- 选择合适的覆盖标准
如何选择合适的覆盖标准
解决办法:一般采用强覆盖指标;进度紧张时选择弱覆盖指标
- 设计测试用例
可能仍存在漏洞和冗余
务必确保数据的等价性,避免漏洞;等价划分兼顾输入的关联性,避免冗余