测试用例设计之等价类划分法
一、关于等价类划分法的解释
- 把程序的输入域划分成若干部分。
- 从每个部分选取少数代表性数据当作测试用例。
- 每一类代表性数据在测试中的作用等价于这一类中的其他数据。
- 若某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误。
- 反之,如果某一类中的一个例子没有发现错误,则该类其他例子也不会查出错误。
二、设计原则
- 如果输入条件规定了取值的范围或值的个数,则可以确定一个有效等价类和两个无效等价类
- 如果一个输入条件说明了一个“必须成立”的情况,则可以划分一个有效等价类和一个无效等价类
- 如果输入条件规定了输入数据的一组可能的值,而且程序是用不同的方式处理每一种值,则可以为每一种值划分一个有效等价类,并划分一个无效等价类
- 若确知已划分的某等价类中的各元素在程序中的处理方式是不同的,则应该据此将等价类进一步划分成更小的等价类
- 在确定了等价类后,建立等价类表,列出所有划分出的等价类
三、基于等价类划分的用例设计:
- 明确测试对象,非测试对象保证正确
- 为每个等价类规定一个唯一的编号
- 设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖
- 设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步使所有无效等价类均被覆盖。
四、加法器的例子:功能为求出[-99,99]之间的任意两位数的和
1.根据需求划分为三个等价类
2.建立等价类表
3.确定测试用例
4.细化等价类划分(无效等价类还可以细分为字符、汉字等)
5.完善测试用例
五、等价类划分法的特性
- 测试相同的内容
- 如果等价类中的一个测试能够捕获一个缺陷,那么选择该等价类中的其他测试也能捕获该缺陷
- 如果等价类中的一个测试不能捕获缺陷,那么选择该等价类中的其他测试也不会捕获缺陷
- 正确划分等价类可以大大降低测试用例的数量
- 如果错误将两个不同的等价类当做一个等价类,那就回遗漏一种测试情况。
六、要注意的问题:
- 要考虑有效等价类,还要考虑无效等价类
- 仔细划分,审查划分
七、实际例子: