黑盒测试实验
一 实验
1、 系统地学习和理解黑盒测试的基本概念、原理,掌握黑盒测试的基本技术和方法;
2、 对一个已知的程序进行测试。
3、 通过试验和应用,要逐步提高和运用黑盒测试技术解决实际测试问题的能力;
4、 完成实验并认真
写实验报告(要求给出完整的测试信息,如测试程序、测试用例,
测试报告等)
二 实验原理
黑盒测试原理:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看作一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试。
从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但可能的输入进行测试。这样看来,完全测试是不可能的,所以我们要进行有针对性的测试,通过制定测试案例指导测试的实施,保证软件测试有组织、按步骤,以及有计划地进行。黑盒测试行为必须能够加以量化,才能真正保证软件质量,而测试用例就是将测试行为具体量化的方法之一。具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。
等价类划分的办法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。该方法是一种重要的,常用的黑盒测试用例设计方法。
1 划分等价类
划分等价类:等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:与有效等价类的定义恰巧相反。
设计测试用例时,要同时考虑这两种等价类。因为,软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。
2 边界值分析
边界值分析是通过选择等价类边界的测试用例。边界值分析法不仅重视输入条件边界,而且也必须考虑输出域边界。它是对等价类划分方法的补充。
(1)边界值分析方法的考虑:
长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。
使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
(2)基于边界值分析方法选择测试用例的原则:
1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚
刚超越这个范围边界的值作为测试输入数据。
2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,
比最大个数多一的数作为测试数据。
3)根据规格说明的每个输出条件,使用前面的原则1)。
4)根据规格说明的每个输出条件,应用前面的原则2)。
5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的
第一个元素和最后一个元素作为测试用例。
6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边
界上的值作为测试用例。
7)分析规格说明,找出其它可能的边界条件。
3 错误推测法
错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法。
错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。例如, 在单元测试时曾列出的许多在模块中常见的错误。以前产品测试中曾经发现的错误等, 这些就是经验的总结。还有,输入数据和输出数据为0的情况。输入
为空格或输入表格只有一行。这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例。
4 因果图法
前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等。考虑输入条件之间的相互组合,可能会产生一些新的情况。但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。这就需要利用因果图(逻辑模型)。
因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。
注:该用于被测试的程序能完成根据输入的年月日计算星期几的功能。已知公元1年1月1日是星期一。为简单起见不考虑公元前的日期。
year
year year
month 测试程序 星期几
day
输入 程序 输出
三 实验方法
1 测试1(执行简单计算)
1.1 输入
输入条件 有效等价类 编号 无效等价类 编号
键入计算的第-99…9(32位),99…1 13 33小于等于-1×10 一个数 9(32位)
小数点 2 14 33大于等于1×10
非数字字符 15 运算符 ‘+’ 3 除‘+’、‘-’、‘*’、‘/’、16 ‘+/-’、‘%’、‘1/x’, ‘-’ 4 ‘sqrt ‘外的其他字符
‘*’ 5
‘/’ 6
‘+/-’ 7
‘%’ 8
‘1/x’ 9 第一个数为0单击‘1/x’ 17
„sqrt? 10 第一个数为负数 18
单击„sqrt?
第二个数字 -99…9(32位),99…11 0(若第二个运算符为 19
9(32位) ‘/‘)
20 33小于等于-1×10
小数点 12 21 33大于等于1×10
非数字字符 22
1.2过程
用例描述 计算器简单的加,减,乘,除的计算
前置条件 打开Windows XP 的计算器界面
测试内容描述
步骤描述 输入数据 预期结果 1。键入计算的第一个数 数字或小数点 在框中显示你输入的数
其他字符 提示出错
2。 单击“+”、“-”、“*” 、“+”、“-”、“*” 、“/”或“+/-” 界面上无任何反应,但已经记录了需要做什“/”或“+/-”。 么计算
其他字符 提示出错
3。 键入计算的下一个数字或小数点 在框中显示你输入的数 数字。
其他字符 提示出错
4。 输入所有剩余的运数字或小数点 在框中显示你输入的数
算符和数字。(连加连减其他字符 提示出错
连乘连除)
2 测试2(执行科学计算)
2.1 输入
输入条件 有效等价类 编号 无效等价类 编号 十进制数 1 10 -99…9(32位),99…9(3233小于等于-1×10 位)
11 33大于等于-1×10
12 非数字字符
二进制数 小于等于64位的非0开头的2 以0开头的数 13
0、1的任意组合 输入有除0、1外的其他字符 14
大于64位 15 八进制数 小于等于21位的非0开头的3 以0开头的数 16
0,7的任意组合
组合中有除0,7外的其他字17
符
大于21位 18
十六进制数 小于等于16位的非0开头的4 以0开头的数 19
0,7、A,F的任意组合
小数点 5 组合中有除0,7、A,F外的20
其他字符
大于16位 21 转换 十进制 6
二进制 7
八进制 8
十六进制 9
2.2过程
用例描述 计算器的科学计算
前置条件 打开Windows XP 的计算器界面
测试内容描述
步骤描述 输入数据 1。单击“查看“菜单单击“查看“菜单的科学型按钮
中的科学型
2。 如下计算
十六进制 输入字符为0-9,或A-F 在框中显示你输入的数
其他字符 提示出错 十进制 输入字符为0-9 在框中显示你输入的数
其他字符 提示出错 八进制 输入字符为0-8 在框中显示你输入的数
其他字符 提示出错 二进制 输入字符为0、1 在框中显示你输入的数
其他字符 提示出错 倒数计算 非0数字 计算出正确的数值
0 除数不能为0
其他字符 提示出错 3使用的各种运算符,单击要使用的各种运算符,正常进行各种计算 进行计算 进行各种运算
四 实验结果
打开Windows XP计算器(开始—所有程序—附件—计算器),如下图所示:
设计测试用例并记录,实验结果如下表所示:
1 测试1(执行简单计算)
测试输入数据 输出 覆盖 用例第一个数字 运算符 第二个数字 编号
1 1。2 + 4。1 5。3 1 2 3 11 12 2 21 - 3 18 1 4 11 3 13 * 3 39 1 5 11 4 6 / 1 6 1 6 11 5 5 -5 1 7 ‘+/-’
6 10 0。1 1 8 ‘%’
7 2 0。5 1 9 ‘1/x’
348 无法输入 13 -1*10
349 无法输入 14 1*10
10 A 无法输入 15 11 1 $ 无法输入 1 16
3412 3 + 无法输入 1 3 20 -1*10
3413 6 + 无法输入 1 3 21 1*10
14 32 / 0 除数不能为零 1 6 19 15 12 + A 无法输入 1 3 22 16 0 除数不能为零 1 17 ‘1/x’
2 测试2(执行科学计算)
测试 输入数据 输出 覆盖 用例十进制二进制八进制数 十六进转换
编号 数 数 制数
1 1 二进制 0001 1,7
342 无法输入 10 -1*10
3 101100 十六进20 2,9
制
4 011001 无法输入第一个0 13 5 14000 无法输入 14
6 无法输入 15 1…1(65
个)
7 45 二进制 101101 3,7 8 024 无法输入第一个0 16 9 19 无法输入 17 10 无法输入 18 1…1(22)
位
11 56 八进制 126 4,8 12 012 无法输入第一个0 19 13 Z17 无法输入 20 14 1… 无法输入 21
1(17)位
五 实验分析
经测试证实了的Windows系统自带的部分计算器功能符合要求。由于时间有限所以没有进行全部功能的测试。对于十进制无法用科学计数法方便准确的输入数据,得到的简单结果也不能用科学计数法简单明了的表示,显示数字长度过长,有时不能准确记录。在计算时若输入其他非数字字符没有任何提示。经过证实该软件符合
可以进行使用。
注:扩展实验,可以自己选择一个系统,设计测试用例,然后根据黑盒测试方法对其进行黑盒测试。