黑盒测试被称为 功能测试或数据测试,在测试时,将被测软件视为一个不能打开的盒子,在完全不考虑程序内部结构和内部特性的情况下来进行测试,采用·黑盒测试的主要目的是在已有软件产品所应具有的功能等基础上进行下列操作:
1、检查程序功能是否按照需求规格说明书的要求正常使用,测试每个功能是否有遗漏,测试性能特性是否满足要求。
2、测试人机交互是否错误,检测数据结构或外部数据库访问是否错误,程序是否能适当的输入数据而产生正确的输出结果,保持外部信息(如数据库或文件)的完整性。、
3、检测程序初始化和终止方面的错误。
定义。
是指输入域的子集合。在该子集合中,各个输入数据对于揭示程序的错误是等效的。
分类。
有效等价类和无效等价类。
有效等价类就是由哪些对程序员规格说明有意义的、合理的输入数据所构成的集合,利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类就是那些程序规格说明不合理的或是无意义的输入数据构成的集合。
方法。
在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。Eg:要求输入的数字在1~50之间,则有效等价类是1~50 而无效等价类是<=1 和>=50
在输入条件规定了输入值的集合或者是规定了“必须如何”的条件的 情况下,可确立一个有效等价类和一个无效等价类。
输入条件是布尔量的情况下,可确定一个有效等价类。
Eg:在vb中option按钮中选择一项。
在规定了输入数据的一组值(假定是n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
Eg:输入数据为地方的显示,eg:当输入廊坊的时候输入其他的均为错误的。
在规定对了输入数据必须遵守的规则的情况下,可确立一个有效的等价类和若干个无效等价类。
Eg:输入非0 的正整数。
可以把这个拆成为 非0 、数字、整数、正数。
所以无效等价类是:输入的是0 、有数字,不是整数(包括小数、字符),输入的是负数等,都是无效的等价类。
在确知划分的等价类中各个元素在程序中处理的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
eg:在日期中核对日期的正确性时,初步的有效等价类是 1<=Month<=12,1<=day<=31 可是还要考虑到2月以及闰年、闰月、长月、短月等,需要进一步细分。
测试用例设计原则
优缺点。
等价类划分方法优点是:考虑了输入域的各类情况,避免了盲目或随机的选取输入数据的不完整性和覆盖的不稳定性。
等价类划分方法简单易用,但是没有对组合情况进行充分的考虑。需要结合其他测试用例设计的方法进行补充。
等价类划分法简单的例子。
设计的登录帐号的密码要求:是6---10位的自然数。来设计测试用例。
从中分析得出:
有效的是:
(1)输入的长度是位数是 6~10 位。
(2)输入的类型是0~9 的自然数。
无效的是:
输入长度小于6
输入的长度大于10
输入的是负数
输入的是小数
输入的是英文字母
输入的是中文
输入为空
输入条件 |
有效等价类 |
无效等价类 |
输入长度为6~10 的自然数 |
1)输入长度为6~10位 |
3)长度小于6 |
4)长度大于10 |
||
5)输入负数 |
||
6)输入小数 |
||
2)输入的为0~9 的自然输入 |
7)输入英文字母 |
|
8)输入汉字 |
||
9)输入为空 |
覆盖用例编号 |
输入 |
预期结果 |
1)2) |
123456 |
正确 |
3) |
33 |
提示错误 |
4) |
2222222222222222222 |
提示错误 |
5) |
-23455555 |
提示错误 |
6) |
1.2323434 |
提示错误 |
7) |
ABCDEFG |
提示错误 |
8) |
输入的是中文的密码 |
提示错误 |
9) |
没有任何的输入 |
提示错误 |
这种方法通常是对等价等价类划分法的补充,使程序更加健壮。是用来测试等价类的边界值。
使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于的边界值作为测试数据,而不是选取等价类中的典型值或是任意值作为测试数据。
例如,我们上述中所说的密码的格式是6~10个的自然数,我们可以根据等价类的划分法来确定边界值的测试用例表示。
测试用例 |
预期的结果 |
999999 |
提示正确 |
9999999999 |
提示正确 |
Abce34 |
提示错误 |
输入的是汉字的格式 |
提示错误 |
000000 |
提示错误 |
000000 |
提示错误 |
00000.0 |
提示错误 |
99999.9 |
提示错误 |
0 |
提示错误 |
23456789000 |
提示错误 |
上述所说的等价类划分法和边界值分析法都只是考虑了输入的条件但是没有考虑到输入的条件之间的组合,因果图的方法是用来描述多种条件组合产生相应的动作的测试方法。
因果图的四种符号所表示的因果关系。
C1表示原因而e1表示的是结果。
在实际问题当中输入的状态之间可能还存在某些依赖关系,称之为”约束”。在因果图中用特定的符号来表示。
E约束:a和b最多有一个可能为1,即a和b不能同时为1.
I约束:a和b中至少有一个必须是1,即 a b c 不能同时为0 。
O约束:a和b中必须有一个且有一个为1.
R约束:a为1的时候b必须为1,即a是1的时候b不能是0.
M约束:a为1的时候b强制为0.
在画因果图的时候首先是要分析原因和结果,原因通常是输入条件或是输入条件的等价类。结果是输出条件。
分析程序规格中的语义含义,找出原因与结果之间,原因与原因之间的对应关系,将其连接成线。
然后再将因果图转换成为决策表。
判定表也称为决策表,判定表通常是由四个部分组成的。
条件桩:列出了问题的所有的条件,通常是认为列出的条件的次序无关紧要。
动作桩:列出针对问题规定可能采取的操作,这些操作的排列顺序没有约束。
要求是用户名和密码的长度都在6~10之间,并且用户名和密码都是数字的格式。