等价类划分法

胡泽宇 2020年02月27日 37次浏览

等价类划分法

简单来说就是分类
比如说一堆杂乱无序的东西,将它们分门别类的归纳整理。
这种思想用在软件测试中,就是等价类划分法

一个程序可以有多个输出,等价类划分就是将这些输入数据按照输入需求进行分类,将它们划分为若干个子集,这些子集即为等价类,在每个等价类中选择有代表性的数据设计测试用例

等价划分法的分类

有效等价类无效等价类
有效值的集合。它们符合程序要求、合理有意义的输入数据。无效值的集合。它们不符合程序要求、不合理或没有意义的输入数据。

等价类的划分原则

原则1(值的范围):

如果程序要求输入值是一个有限区间的值,则可以将输入数据划分为
一个有效等价类和两个无效等价类,有效等价类为指定的取值区间,
两个无效等价类分别为有限区间两边的值。

比如我指定一个[10,20]
1

原则2:

如果程序要求输入的值是一个“必须成立”的情况,则可以将输入数据划分为一个
有效等价类和一个无效等价类。

2
原则3:

如果程序要求输入数据是一组可能的值,或则要求输入值必须符合某个条件,则可
以将输入数据划分一个有效等价类和一个无效等价类。

原则4:

如果在某一个等价类中,每个输入数据在程序中的处理方式都不相同,则应该把等
价类划分成更小的等价类,并佳丽等价表。

等价类划分法设计测试用例的设计步骤

  • 确定测试对象,保证非测试对象的正确性。
  • 每一个等价类规定一个唯一的编号。
  • 设计有效等价类的测试用例,更可能多的覆盖尚未被覆盖的有效等价类,一直到测试用例覆盖了所有有效等价类。
  • 设计无效等价类的测试用例,使其覆盖所有的无效等价类。

实例: 三角形问题的等价类划分:

该案例分析: 程序要求输入3个数, 而且都是正数 ,在输入3个正数基础上判断
这三个数能否构成三角形, 如果可以构成三角形 , 再判断它是 一般三角形、
等腰三角形、等边三角形。

以上需要分步骤进行划分等价类。
  1. 判断是不是输入了3个数:
有效等价类无效等价类
输入3个数输入0个数
输入1个数
输入2个数
输入3个数以上
  1. 在输入3个数的基础上, 判断3个数是不是正数:
有效等价类无效等价类
3个数都是正数有1个小于等于0
有2个小于等于0
3个数都小于等于0

3. 在输入3个正数基础上, 判断3个数能不能构成三角形:

有效等价类无效等价类
任意两条边大于第三条边两个边之和小于等于第三条边

4. 在3个数可以构成三角形基础上,判断能否构成等腰三角形:

有效等价类无效等价类
任意两条边相等三个边都不相等
  1. 在构成等腰三角形基础上,判断是否构成等边三角形
有效等价类无效等价类
三条边相等三条边不相等lal

测试等价类表:
3
覆盖有效等价类测试用例表:
4
覆盖无效等价类测试用例表:
5