黑盒测试用例设计模式-等价类划分(上)
等价类划分法是典型的黑盒测试设计方法。等价类指某个输入域的子集,不同的等价类对于揭露软件中的错误是等效的。假设
测试某个等价类的代表值就等同于对这一类其他值的测试。则可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个
数据做为测试的输入条件,就可以用少量的代表性数据进行测试并取得较好的测试效果。前提是等价类的划分必须是合理且有效的。
使用该方法主要针对测试子项进行分析,进而得到测试用例。其将系统的输入域划分成若干部分,然后从每个部分中选取少量数据
进行测试。使用等价类方法可以避免穷举法产生的大量用例。而对于输入域的划分除了依据需求以外,还可以使用白盒测试用例设计
方法辅助。
等价类可分为有效等价类和无效等价类。有效等价类指对于系统的规格说明来讲是合理的,有意义的输入数据构成的集合。利用
有效等价类可以检验程序是否实现了需求规格说明书中所规定的功能和性能要求,无效等价类指对于系统的规格说明来说是不合理的
或无意义的输入数据构成的集合。使用等价类设计测试用例时,要同时考虑这两种等价类以保证软件的可靠性。等价类划分法设计
用例输入的原则:有效等价类,一个输入数据尽量多的覆盖有效等价类(一对多);无效等价类,一个输入数据尽量只覆盖一个无效
等价类(一对一)。
例子:
一、需求:输入年龄(0,150),不允许为空。
二、分析:
1、测试需求分析:
内容:正整数
范围:(0,150)
约束:不允许为空
2、用例设计方法分析(等价类划分):
条件 有效等价类 编号
a).内容: 正整数 Y01
b).范围: (0,150) Y02
c).约束: 不为空 Y03
----------------------------------------
条件 无效等价类 编号
a).内容: 负数 W01
小数 W02
大写字母 W03
小写字母 W04
符号 W05
汉字 W06
全角字符 W07
b).范围: <=0 W08
>=150 W09
c).约束: 空 W10
3、用例设计(输入部分):
编号 有效输入 覆盖有效等价类
E01 50 Y01、Y02、Y03
----------------------------------------------
编号 无效输入 覆盖无效等价类
E02 -50 W01
E03 20.4 W02
E04 “G” W03
E05 "h" W04
E06 "*" W05
E07 "钓" W06
E08 “¥” W07
E09 0 W08
E10 150 W09
E11 空 W10
三、用例详细:
用例编号:T-001
测试项目:Test
测试标题:年龄编辑框输入有效值
重要级别:高
预置条件:无
测试输入:50
操作步骤:
1.在年龄编辑框输入50;
2.执行页面其他必要操作或填写其他必填项,点击提交。
预期输出:表单提交成功。
总结:
相对于穷举测试数据,等价类划分提高了测试效率,缩短了测试周期。其考虑设计用例把每个输入的每种情况都有用例覆盖,
即达到了测试的充分性。而等价类细分程度、组合情况则取决于测试资源的多寡。
有些文章也描述了使用白盒测试的设计方法来确定等价类的划分,即参考条件分支覆盖法来划分等价类的办法。这样可以提高
等价类划分的准确性,但是若针对每个功能点都是这样做,花费的时间成本就会很高。所以通常系统测试依然是以黑盒测试设计方法
为主,辅以白盒设计方法,只是在关键、重要、常用的功能子项辅助使用白盒方法来划分等价类,目标是在测试效果和测试成本之间
达到平衡。
注:
用例设计要考虑三个层次的问题:策略、模式、方法。黑盒测试就是一种策略,等价类划分即是一种模式,也是一种方法。
怎样才叫精通测试用例设计? 实践是检验真理的唯一标准。理论也是来源于实践的,特别是在工程领域。懂得理论而没有实践的,其实还是不懂嘛。反而不如
有一定实践经验的人更接近真理。有大量实践经验,而又善于总结的,才可能成为专家。