产生等价类测试的原因
穷举测试是不可能的任务,只能从大量的可能数据中选择一部分作为测试用例。
等价类测试是完备、无冗余的测试。
基本思想:将程序的输入域分为若干个部分,然后从各部分选取少量代表性数据当作测试用例
等价类的划分
各个划分的并集为整个输入域 而且各个划分并无交集(即交集为空集)
确定等价类的一般原则
有效等价类/无效等价类
前者是合理的、有意义的输入数据构成的集合 后者是不合理无意义的输入数据构成的集合若输入条件规定了取值范围,则可以确定一个有效等价类和两个无效等价类
若输入条件规定了取值个数,则可以确定一个有效等价类和两个无效等价类
若输入条件规定了输入值得集合,则可得到一个有效等价类和一个无效等价类
若输入条件确定了一个布尔量,则可得到一个有效等价类和一个无效等价类
等价类测试适用于:
- 可用数量衡量的独立变量
- 布尔变量
等价类测试不适用于
- 相互有依赖关系的变量
测试用例的设计
- 弱一般等价类
对于n变量,第i个变量的有效等价类是mi 则测试用例总数max(mi) - 强一般等价类
对于n变量,第i个变量的有效等价类mi个,则测试用例总数m1m2m3...mn - 弱健壮等价类
对于n变量,第i个变量的有效等价类mi个,无效等价类为Ii个,则测试用例总数max(mi)+(I1+I2+...+In) - 强健壮等价类
对于n变量,第i个变量的有效等价类mi个,无效等价类为Ii个,则测试用例总数(m1+I1)(m2+I2)...*(mn+In)