黑盒测试用例设计方法及综合应用
2018-09-20林勤花
林勤花
(四川信息职业技术学院,四川广元,628017)
1 测试用例
测试用例是为特定的目标设计的一组测试输入、执行条件和预期结果的集合,以便测试某个程序路径或核实是否满足某个特定需求。一个好的测试用例应该具备下列几个特征:(1)清晰定义了一个或多个预期结果。(2)应该容易发现软件错误。(3)可重复使用。(4)没有冗余。
2 黑盒测试用例设计常用方法
在本文中,将使用学生信息的添加功能为例为进行介绍。学生信息添加页面和学生的数据结构如图2、表1所示。
表1 “学生”数据结构
图1 常用的黑盒测试用例设计方法
图2 添加学生信息页面
2.1 等价类划分法
等价类划分法是根据程序的I/O特性,将程序的定义域划分为有限个等价区段-----“等价类”,根据各个等价类来选择数据,即“用例”。使用等价类划分法设计的用例更有代表性、针对性。按等价类划分法,将学生信息各字段划分为如表2所示的等价类。
表2 学生信息的等价类表
列出等价类表后,选择测试数据的原则是:1.使一个测试用例尽可能多的覆盖尚未覆盖到的有效等价类,直至所有有效等价类全部覆盖到;2.使一个测试用例只覆盖尚未覆盖到的无效等价类,直至所有的无效等价类全部覆盖到。按上述原则,要覆盖到表2中所有等价类至少需要17个测试用例,其中1个覆盖所有有效等价类,剩余16个用来覆盖无效等价类。
2.2 边界值分析法
长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。比如学号字段“小于7位的字符串”这个无效等价类我们就在边界上取值,取刚好小于7位的字符串“180101”作为测试数据。
2.3 场景法
现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。场景法一般包括1个基本流和N个备选流。在“新增”学生信息这个事件的基本流为:输入正确的学号、输入正确的姓名、选择性别、输入正确的邮箱地址、输入正确的手机号码,然后单击新增按钮。备选流会有很多个,如学号为空、学号长度不是7位、学号重复,当学号出错后,其他字段其实不需要再添加。
当我们单纯采用等价类设计测试用例时,采用的数据可以如表3所示。
表3 按等价类设计测试用例
按等价类设计,每个测试用例都是6个步骤,把所有数据输入完成后再单击新增按钮。其实当学号为空时,其他字段填写了也是无效了。如果字段少还可以忍受,但当一个实体的字段多达几十个时,还是把所有字段都填写,那将浪费大量的时间。我们可以借助于场景法来设计测试用例。
表4 按场景法设计测试用例
3 综合应用多种方法设计测试用例
在实际高水平的测试工作中,往往需要综合使用多种方法来提高测试效率和测试覆盖率。黑盒测试用例设计方法选择策略可参考如下几条:(1)首先进行等价类划分,将无限测试可能变成有限测试;(2)在任何情况下,都使用边界值分析法;(3)对业务流清晰的系统,可利用场景法贯穿整个测试。
综合使用等价类划分法、边界值分析法和场景法设计添加学生信息页面的部分测试用例如表5所示。
表5 综合应用各种方法设计测试用例
4 总结
软件黑盒测试用例设计方法有很多种,针对某个具体的功能点,使用单一的设计方法往往无法覆盖到所有类型的缺陷。因此在实际测试工作中需要综合使用多种测试方法,形成测试策略,这样对一个功能点的测试才能比较充分。