等价类划分法是指依据需求对输入的范围进行分类,然后在分出的每一个区域内选取一个有代表性的测试数据开展测试。
等价类划分法是比较容易理解的,我们现在设计测试用例用等价类划分法比较多,它适用的场景也比较多。
我们为什么使用等价类划分法呢?是因为我们的穷举测试是根本穷举不完的,所以我们要把它进行分类,取一些有代表性的数据,就产生等价类了。做完合理的分类之后就可以设计测试用例了,它适合于任何一个测试过程,不受局限。
等价类划分法的划分方法
等价类是指某个输入域的子集合。分为有效等价类和无效等价类。
有效等价类 : 符合需求说明,合理地输入数据集合
无效等价类 : 不符合需求说明,无意义地输入数据集合
我们也可以把无效等价类看作反向用例,也可以看作在健壮性测试时我们设计的一个测试用例。有效等价类是用来验证需求的,无效等价类是用来经受考验的。
等价类划分法的步骤
简单来说就是,划分等价类,把有效等价类和无效等价类划分出来,然后建立图表并编号,然后再设计用例。
下面我们介绍一下等价类划分法常用的几种方法。
等价类划分法常用方法1
在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
例如:输入值是学生成绩,范围是0~100。
分析:
有效等价类:0≤成绩≤100
无效等价类:成绩<0 或 成绩>100
在数轴上表示:
等价类划分法常用方法2
在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。
例如:某系统注册页面用户密码规定为4位的串。
分析:
有效等价类:长度为4位的串
无效等价类:长度不是4位的串
等价类划分法常用方法3
在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
例如:某系统注册时,性别输入必须为男(true)。
分析:
有效等价类:输入true
无效等价类:输入false
等价类划分法常用方法4
在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
例如:某校员工管理系统对老师工资进行维护,按老师学历(博士、研究生、本科与专科)设置基本工资。
分析:
有效等价类:学历取博士、研究生、本科与专科
无效等价类:其他学历均为无效等价类
等价类划分法常用方法5
在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则) 。
例如:某系统注册时用户名必须以“a”字母开头。
分析:
有效等价类:字母a开头的用户名
无效等价类:字母b开头的用户名、数字2开头的用户名等等
等价类划分法常用方法6
在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
例如:某系统注册时用户名必须以字母开头,并且必须包含数字。
分析:
有效等价类:字母开头且含有数字(有效,如a1),字母开头且不含数字(无效,如a)
无效等价类:非字母开头的,如数字开头(1a)等
等价类划分法举例
我们针对等价类划分法举一个例子,QQ账号为5-11位自然数,请用等价类划分方法设计测试用例。界面原型如下:
第一步:确定并划分等价类:
有效等价类:5-11位,类型是自然数
无效等价类:小于5位,大于11位,非自然数
第二步:建等价类表并编号
第三步:设计测试用例
我们按照前面划分的等价类就可以生成9个测试用例,如果我们不按照等价类划分法这一系列的步骤来执行的话,设计的用例就可能会有遗漏。
接下来的文章我们会继续为大家介绍功能测试测试用例编写的其他的方法,欢迎大家继续关注。