基于等价类划分的黑盒测试用例设计

2015-08-25 08:54任宪臻北京信息职业技术学院软件工程系北京100018
中国科技纵横 2015年12期
关键词:黑盒测试用例软件测试

任宪臻(北京信息职业技术学院软件工程系,北京 100018)

基于等价类划分的黑盒测试用例设计

任宪臻
(北京信息职业技术学院软件工程系,北京 100018)

等价类划分法是黑盒测试中常用的、典型的测试用例设计方法,它解决了如何选择适当的数据子集代表整个数据集的问题,有效控制了测试用例的数量,使测试数据从无限变成有限,避免了盲目、随机选取数据带来的不完整性,实现了合理的、更多的可能数据的覆盖,让软件测试更加充分,从而可以发现更多的软件缺陷。

黑盒测试 等价类划分 测试用例

黑盒测试不考虑系统内部实现细节,主要针对软件功能、界面进行测试。理论上,黑盒测试只有采用穷举输入,才能发现软件中所有潜在的缺陷。但是,实际测试情况有无穷多种,不可能对软件进行完全的测试,因此必须进行有针对性的测试。测试用例可以指导测试的实施,保证有计划、有组织地执行软件测试。黑盒测试用例的设计方法主要包括等价类划分法、边界值分析法等,其中等价类划分法是最常用的、典型的黑盒测试用例设计方法。

1 等价类划分法的内涵

在软件测试中,等价类是指所有可能的输入数据的子集合,该子集合中的任意一个数据,对于发现程序中的错误都是等效的。为了确保软件具有更高的可靠性,不仅要测试所有合法的输入,也要测试那些不合法但可能的输入。合理的、有意义的输入数据构成的集合为有效等价类,其可以验证软件产品是否满足用户规定的需求;而那些不合理的、无意义的输入数据构成的集合则为无效等价类,利用其可以找出软件产品中与需求规格不相符合或与之矛盾的地方。

因此,等价类划分法的基本思想就是把所有可能的输入数据合理划分成若干等价类,然后从每一个等价类中选取代表数据,这样就可以用少量代表性的测试数据取得较好的测试结果。划分等价类时要同时考虑有效与无效等价类,这样才能保证测试用例的完整性与代表性。

表1-1 等价类表

表1-2 某评分系统的等价类表

表1-3 某评分系统的等价类测试用例

2 等价类划分的原则

等价类划分以软件需求规格说明书为基础,常用的几条划分原则如下。

(1)若输入条件规定了取值范围,则可确定取值范围内为有效等价类,取值范围外为无效等价类。

(2)若输入条件规定了次数范围,则可确定次数范围内为有效等价类,次数范围外为无效等价类。

(3)若输入条件规定了输入的一组值,且要求对每个值都要分别进行处理,则可确定每个值为一个有效等价类、其他不允许的值的集合为无效等价类。

(4)若输入条件规定了必须遵守的规则,则可确定符合规则的为有效等价类,违反规则的为无效等价类。在确定无效等价类时,可以把必须符合的规则拆分为具有单一意义的子规则,然后从不同角度违反子规则得到无效等价类。

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

应用等价类划分法设计测试用例时,一般按照以下3个步骤进行。

(1)划分等价类。分析软件需求规格说明书,结合等价类划分原则,划分有效等价类、无效等价类。

(2)建立等价类表。列出所有划分的等价类,并为每个等价类规定一个唯一编号,建立如表1-1所示的等价类表。

(3)设计测试用例。设计测试用例时,应该遵循以下原则。

①用最少的测试用例覆盖所有的有效等价类。

②为每一个无效等价类设计一个测试用例。

4 等价类划分法应用实例

某评分系统根据输入的分数评定等级,[90,100]内为A,[80,89]内为B,[70,79]内为C,[60,69]内为D,60分以下为E。要求输入的分数必须是[0,100]之间的正整数。请应用等价类划分法设计测试用例。首先,划分等价类并建立等价类表,如表1-2所示。然后,根据等价类表设计测试用例,如表1-3所示。

5 等价类划分法总结

等价类划分法仅仅考虑了单个数据域的各种情况,没有充分考虑输入数据的各种组合情况,因此它仅适用于输入条件无制约关系的测试,若要检查程序输入条件的各种组合情况,需要结合其他测试用例设计方法。

[1]朱少民.全程软件测试(第2版)[M].电子工业出版社,2014.

[2]浦云明,陈黎震.基于划分的等价类测试[J].计算机工程与设计,2009.

[3]范明红,浦云明,汪志华.等价类测试与划分研究[J].计算机技术与发展,2009.

任宪臻(1977-),女,硕士研究生,北京信息职业技术学院讲师。研究方向为计算机软件应用开发、软件测试。

猜你喜欢
黑盒测试用例软件测试
一种基于局部平均有限差分的黑盒对抗攻击方法
基于SmartUnit的安全通信系统单元测试用例自动生成
基于OBE的软件测试课程教学改革探索
EXCEL和VBA实现软件测试记录管理
基于混合遗传算法的回归测试用例集最小化研究
关于软件测试技术应用与发展趋势研究
软件测试工程化模型及应用研究
基于依赖结构的测试用例优先级技术
软件回归测试用例选取方法研究