软件测试---黑盒测试之等价类划分法

一、 定义

等价类划分是一种最基础最典型的黑盒测试方法,这种方法主要对测试子项目进行测试规格分析,从而不用深入了解系统内部,是一种软件测试过程中最基础最普遍的一种软件测试方法,它的唯一依据是软件需求规格说明书。

二、等价类的划分

在使用这种测试方法时,首先要根据需求规格说明书来生成等价类,即两种等价类:
@有效等价类 @无效等价类。
(1).有效等价类:依据需求说明书划分出来的集合,这些集合是合理的、有意义的数据的集合。通过这种有效等价类方法可以确定程序是否实现了需求规格说明书中的某些功能。
(2).对于当前系统的需求规格说明书来说是不合理或者无意义的数据构成的集合。

三、等价类划分的意义

我们在设计测试用例时,需要同时考虑这两种等价类,因为大千世界无奇不有,在我们的生活中不合理或者无意义的东西不胜枚举,更何况时无意义不合理的数据,我们的软件不仅要额能接受合理的数据,也要能经受其他情况的测试和考验,也能具有更高的可靠性,吸引更多的用户使用我们的软件。
在这种测试方法下,等价类是一个子集合,该输入集合中的数据对于程序中某一问题(bug)是等价的,只从一个子集中选取少数具有代表性的数据而不是所有数据,生成测试用例进行测试,这样就可以避免穷举法产生的大量用例。

四、等价类测试用例生成步骤

(1).选择确定类的等价关系
(2).选择每个等价类中的一组数据标识测试用例

五、根据等价划分方法设计测试用例的原则

(1).如果输入条件规定了取值范围或值的个数,可以确立一个有效等价类和两个无效等价类。如:
输入值时大一学生成绩,范围时0~100
(2).如果输入条件规定了输入值的集合或者规定了“必须如何”,则可以确立一个有效等价类和一个无效等价类。
(3).如果输入条件是一个布尔量,可以确立一个有效等价类和一个无效等价类。
(4).如果规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理,可以确立n个有效等价类和一个无效等价类。
(5).如果规定了输入数据必须遵守的规则,可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
(6). 如果确知已划分的等价类中各元素在程序处理中的方式不同,则应再将该等价类进一步的划分为更小的等价类。

六、常见的可以划分等价类的地方

 数值范围
 字符串长度
 重复次数
 文件大小
 文件命名
 可用内存大小
 操作系统版本
 超时时间

七、使用等价划分类的原因

在理想的测试中,是从所有可能的输入中找出某个用例,从而发现错误最多的子集,说通俗点就是:使用少量但有效、有代表性的的测试数据,完成优秀的软件质量测试。不需要研究其内部逻辑处理,只需要测试人员从所以数据中找出具有代表性的测试用例丢到系统中进行测试,所以等价划分类是黑盒测试最基础也是最常用的方法之一。
等价类划分是选出一个或者有限个代表这一类的情况,将这个或有限个代表放到系统中测试,通过这一个或有限个代表的情况,来判断一类测试通过或功能没有实现。
我们用等价划分类的这个方法就是因为它把我们测试里无穷的情况变成了有限的情况,使我们的测试变得可执行,且高效可靠,节约时间金钱成本。

八、实例(使用场景)

(1).有数据输入的地方,如编辑框(用户的登录、注册、新建)

软件测试---黑盒测试之等价类划分法
软件测试---黑盒测试之等价类划分法
软件测试---黑盒测试之等价类划分法
软件测试---黑盒测试之等价类划分法

(2).年份、月份

软件测试---黑盒测试之等价类划分法

九、 等价类划分的优缺点

√ 优点:
等价类划分的测试用例设计方法减少了穷举法带来的大量测试用例,保证测试效果和测试效率,一般是有输入性需求的被测对象可以采用的方法;
√ 缺点:
输入与输入之间的关系考虑少,可能产生一些逻辑错误。还需要其他用例设计方法来补充测试。

十、 经典实战演练

经典三角形问题:
程序要求:输入三个整数a、b、c分别作为三角形的三边长度,通过程序判定所构成的三角形的类型;当三角形为一般三角形、等腰三角形或等边三角形时,分别作处理。

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

<问题解答>
(1)罗列出等价类表
软件测试---黑盒测试之等价类划分法
(2)设计覆盖有效等价类的测试用例
软件测试---黑盒测试之等价类划分法

(3)设计覆盖无效等价类的测试用例
软件测试---黑盒测试之等价类划分法