目录
一、黑盒测试和等价分类法
1. 黑盒测试
2. 等价分类法
二、黑盒测试等价分类法实例分析
1. 工厂招工年龄测试
2. 规定电话号码测试
3. 八位微机测试
4. 三角形判断测试
黑盒测试就是根据被测试程序功能来进行测试,所以也称为功能测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
所谓等价分类,就是把输入数据的可能值划分为若干等价类,使每类中的任何一个测试用例,都能代表同一等价类中的其他测试用例。换句话说,如果从某一等价类中任意选出一个测试用例未能发现程序的错误,就可以合理地认为使用该类中的其他测试用例也不会发现程序的错误。
采用这一技术要注意以下两点:
其一,划分等价类不仅要考虑代表有效输入值的有效等价类,还需考虑代表无效输入值的无效等价类;
其二,每一无效等价类至少要用一个测试用例,不然就可能漏掉某一类错误,但允许若干有效等价类合用同一个测试用例,以便进一步减少测试的次数。
某工厂公开招工,规定报名者年龄应在16 周岁至35周岁之间(到2008年3月止)。若出生年月不在上述范围内,将拒绝接受,并显示“年龄不合格”等出错信息。试用等价分类法设计对这一程序功能的测试用例。
第一步:划分等价类。假定已知出生年月由6位数字字符表示,前4位代表年后2位代表月,则可以划分为3个有效等价类、7个无效等价类。
第二步:设计有效等价类需要的测试用例。①⑤⑧等3个有效等价类可以共用一个测试用例。
第三步:为每一无效等价类至少设计一个测试用例。本例具有7个无效等价类,至少需要7个测试用例。
某城市电话号码由三部分组成。它们的名称和内容分别是:
地区码:空白或三位数字;
前 缀:非‘0’或‘1’的三位数字;
后 缀:4位数字。
假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。
① 划分等价类:
② 设计测试用例:
某一8位微机,其十六进制常数定义为:以0x或0X开头的数是十六进制整数,其值的范围是-7f~7f(表示十六进制的大小写字母不加区别),如0X13,0X6A,-0X3c。
① 划分等价类并编号,如下表所示:
② 为合理等价类设计测试用例,表中有三个合理等价类,设计两个例子:
③ 为每个不合理等价类至少设计一个测试用例:
根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。
"一个程序读入 3 个整数,它们分别代表一个三角形的 3 个边长。该程序判断所输入的整数是否构成一个三角形,以及该三角形是一般的、等腰的或等边的,并将结果打印出来。"
要求:设三角形的 3 条边分别为 A、B、C
① 列出等价类表:
② 设计测试用例
用例 1:
输入【3,4,5】覆盖等价类(1)(2)(3)(4)(5)(6),输出结果为构成一般三角形。
用例 2:三者取一
输入【0,1,2】覆盖等价类(2),输出结果为不构成三角形。
输入【1,0,2】覆盖等价类(2),输出结果为不构成三角形。
输入【1,2,0】覆盖等价类(2),输出结果为不构成三角形。
用例 3:三者取一
输入【1,2,3】覆盖等价类(3),输出结果为不构成三角形。
输入【1,3,2】覆盖等价类(3),输出结果为不构成三角形。
输入【3,1,2】覆盖等价类(3),输出结果为不构成三角形。
用例 4:三者取一
输入【3,3,4】覆盖等价类(1)(4),输出结果为等腰三角形。
输入【3,4,4】覆盖等价类(1)(4),输出结果为等腰三角形。
输入【3,4,3】覆盖等价类(1)(4),输出结果为等腰三角形。
用例 5:
输入【3,4,5】覆盖等价类(1)(5),输出结果为不是等腰三角形。
用例 6:
输入【3,3,3】覆盖等价类(1)(6),输出结果为等边三角形。
用例 7:三者取一
输入【3,4,4】覆盖等价类(1)(4)(7),输出结果为不是等边三角形。
输入【3,4,3】覆盖等价类(1)(4)(7),输出结果为不是等边三角形。
输入【3,3,4】覆盖等价类(1)(4)(7),输出结果为不是等边三角形。