等价类划分法测试用例设计举例

一、基本概念
等价类是指程序输入域的子集。
等价类划分(Equivalance Partitioning)测试的思想:将程序的输入域划分为若干个区域(等价类),并在每个等价类中选择一个具有代表性的元素生成测试用例。该方法是常用的黑盒(Blackbox Testing)测试用例(Testcase)设计方法。
一)划分等价类
1.有效等价类与无效等价类
等价类划分可有两种不同的情况:有效等价类和无效等价类。有效等价类是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合,它能检验程序是否可以实现规格说明中所规定的功能需求无效等价类是指对程序的规格说明是不合理的或无意义的输入数据所构成的集合,它能检验程序在不符合规则的数据输入下,是否会有异常;无效等价类至少应有一个,也可能有多个,视具体情况而定。因此,设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。
2.划分等价类的标准
完备测试、避免冗余。这就要求:集合(程序输入域)应划分为互不相交的一组子集,而这些子集的并集是整个集合(整个程序输入域)。
3.等价类的划分原则
(1) 若输入条件规定了取值范围或值的个数的情况下,可划分为一个有效等价类和两个无效等价类;
Eg.设置风控指标,其中权重设置范围在[-1000,1000]

这里写图片描述
(3) 若规定了输入数据必须要遵循的原则,可划分为一个有效等价类(符合规则)和若干个无效等价类;
Eg.系统的初始资金只可输入数字
这里写图片描述
注:每个有效等价类所对应的无效等价类的并集是不符合输入原则的数据集合。
(5)若规定了输入数据的一组值(假定n个),且程序对不同输入值做不同处理,则可划分为n个有效等价类(每个允许的输入值为一个有效等价类)和一个无效等价类(所有不允许的输入值的集合)。
Eg. 设置资金账户时,必须选择是否检查自成交
这里写图片描述
(6)在确知已划分的等价类中各元素在程序中的处理方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
二)测试用例设计步骤
(1) 划分等价类后,建立等价类表,并为每一个等价类规定一个唯一的编号;
(2) 设计一个测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步骤,直到所有的有效等价类都被覆盖为止;
(3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步骤,直到所有的无效等价类都被覆盖为止。(因为用单个测试用例覆盖无效等价类,是因为某些特定的输入错误会屏蔽或取代其他输入错误检查)

二、习题练习
一)三角形问题的等价测试用例
【问题描述】程序要求:输入三个整数 a 、 b 、 c 分别作为三角形的三边长度,通过程序判定所构成的三角形的类型;当三角形为一般三角形、等腰三角形或等边三角形时,分别作 …处理 。

(1) 输入值域的显/隐式要求:A 整数、B 三个、C 正数、D 两边之和大于第三边、E 三边均不相等、F 两边相等但不等于第三边、G 三边相等;(D~G由输出值域的等价类隐性确定)
(2) 输出值域的等价类:R1={不构成三角形}、R2={一般三角形}、R3={等腰三角形}、R4={等边三角形};

(1) 列出等价类表并编号

这里写图片描述
(3) 设计覆盖无效等价类的测试用例
这里写图片描述
【注】“弱”是指含单缺陷假设(失效极少是由两个或两个以上的缺陷同时引起的),“强”是指含多缺陷假设(失效是由两个或两个以上的缺陷同时引起的);“一般”是指不考虑无效值。弱一般等价类测试用例通过使用一个测试用例中的每个有效等价类(区间)的代表值来实现(常以对称方式来标识这些测试用例,且注意单边假设作用);强一般等价类测试用例通过每个独立变量的有效等价类的笛卡尔积来实现。
(1.3) 健壮等价类测试
(1.3.1) 弱健壮等价类测试
弱健壮等价类测试中的无效测试用例只含一个无效值,其他都是有效值,即含有单缺陷假设。【注:“弱”是指含单缺陷假设,“强”是指含多缺陷假设;“健壮”是指考虑无效值】
这里写图片描述
(2)划分法二
显然地,在用划分法一测试NextDate函数时,既没有考虑2月份的天数问题,又没有考虑闰年的问题。因此,应作进一步地改善。
(2.1)划分等价类
等价关系的要点是:等价类中的元素要被“同样处理”,即要么都在有效层次上进行,要么都在无效层次上进行。因此,更详细地有效等价类为:
√变量mouth:M1={mouth: mouth有30天}、M2={mouth: mouth有31天,除去12月}、M3={mouth: mouth是2月}、M4={mouth: mouth是12月};
√变量day:D1={day: 1≤day≤28}、D2={day: day=29}、D3={day: day=30}、D4={day: day=31};
√变量day:Y1={year: year是闰年}、Y2={year: year是平年};
(2.2) 一般等价类测试
A. 弱一般等价类测试
考虑到单边假设,机械地以对称方式来选择对应类的有效输入:
这里写图片描述
(2.3) 健壮等价类测试
A. 弱健壮等价类测试

待更新……

来源:jcsh2014

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年1月21日
下一篇 2018年1月22日

相关推荐