上次介绍了等价类划分法,在进行等价类别划分的时候,有以下几个原则:
-
如果规定了输入值的范围,则可划分出一个有效的等价类(输入值在此范围内),两个无效的等价类(输入值小于最小值和大于最大值);
-
如果规定了输入数据的个数,则类似地可以划分出一个有效的等价类和两个无效的等价类;
-
如果规定了输入数据的一组值,而且程序对不同输入值做不同处理,则每个允许的输入值是一个有效的等价类,此外还有一个无效的等价类(任一个不允许的输入值);
-
如果规定了输入数据必须遵循的规则,则可以划分出一个有效的等价类(符合规则)和若干无效的等价类(从各种不同角度违反规则);
-
如果规定了输入数据为整型,则可以划分出正整数、零和负整数等三个有效类;
-
如果程序的处理对象是表格,则应该使用空表,以及一项或多项的表。
-
而边界值法是在等价类划分完后,由于出现边界条件,而程序员编程又经常在这种地方出现问题,所以经过长期的经验积累总结出来的测试用例的设计方法。
我们看一段代码,用VB编的。
Private Sub Command1_Click()
If Val(Text1.Text) >= 99 Or Val(Text1.Text) <= -99 Then
MsgBox ("输入的参数值必须大于-99同时小于99!")
Else
If Val(Text2.Text) >= 99 Or Val(Text2.Text) <= -99 Then
MsgBox ("输入的参数值必须大于-99同时小于99!")
Else
Text3.Text = Val(Text1.Text) + Val(Text2.Text)
End If
End If
End Sub
是两位数加法器的例子,两位数的范围是从-99到99,也就是说是个闭区间[-99,99],而程序员在编程的时候忘了区间的问题,把闭区间变成了开区间(-99,99),这样整个程序就出问题了。
边界值法的主要关注点是边界值,当一旦确定了范围了,边界值就是测试要关注的了。
还是以QQ登录界面为例,当要测试QQ帐号的输入框时,我们注意到QQ帐号的长度范围从6位到10位,也就是说有了一定的范围,即在6-10位之间的QQ帐号只要在QQ服务器上申请,就能作为合法的帐号出现。
我们分析一下,QQ帐号的位数为[6,10],那么边界值就有两个:一是6位帐号,二是10位帐号。
用边界值法怎么设计测试用例呢?
一般的规则是:比边界值小一点的,恰好是边界值,比边界值大一点。那么在QQ帐号的输入框的测试用例设计里就有以下几个:
(1)5位帐号
(2)6位帐号
(3)7位帐号
(4)9位帐号
(5)10位帐号
(6)11位帐号