黑盒测试时基于程序规格说明书,找出程序不符合格则说明书的地方。也就是我们常说的点点点。在进行黑盒测试时,我们可以利用一下几种方法来写出测试用例,尽量用科学的方法来找出更多的缺陷。
- 等价类划分
等价类划分是一种重要的、常用的黑盒测试方法,不需要考虑程序的内部结构,只需要考虑程序的输入规格即可。它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。
1、等价类的分类
有效等价类:指符合《需求规格说明书》,输入合理的数据集合。
无效等价类:指不符合《需求规格说明书》,输入不合理的数据集合。
2、等价类思考步骤
(1)先确定有效和无效等价类
(2)有效等价类就是题目条件(两端的极值(边界值)要判断、中间随意一个值也要判断)
(3)无效等价类先划分与条件相反的情况,再找到特殊情况(中文、英文、符号、空格、空)
我们来做一下例题:
A、计算 1---100的整数之和(包括1和100)
一般是一个框输入正确的值,一个框输入错误的值,没有两个框都输入错误的值,因为更容易确定到底是哪个框出现错误的值。
B、测试QQ账号,账号的要求是 6---10位正整数。
C、某城市电话号码由三部分组成,分别是
地区码:空白或是3位数字
前缀:非‘0’且非‘1’开头的三位数字
后缀:4位数字
3、等价类分类总结
通过上面的案例,我们可以总结一下,当我们在测试文本框的程序可以考虑如下的情况:
a:文本框要求输入的长度
b:输入的类型
c:组成规则
d:是否为空
e:是否重复---区分大小写,
f:是否去除空格
二、边界值分析
经验证明,考虑了边界调节的测试用例与其他没有考虑边界条件的测试用例相比,具有更高的测试回报率。所谓边界条件,是指输入和输出等价类中那些恰好处于边界、或超过边界、或在边界一下的状态。边界值分析法也是一种常用的黑盒测试方法。特别要注意的是:大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。
我们还是通过一个例题来看,就不会被绕口的理论吓到了,其实边界值很简单,后面我们还会用做例题来展示边界值到底是个什么玩意。
我们先来看一个例题,解释一下为什么要用边界值。
题目:输入的参数值必须大于0同时小于100的整数。
接下来我们来看程序员写的一段代码:
If Val(Test1.Test) > =0 Or Val(Test1.Test) <= 100 Then
MsgBox("输入的参数值必须大于0同时小于100")
Test1.SetFocus
ElseIf Val(Test2.Test) >= 0 or val (Test2.Test) < =100 then
MsgBox("输入的参数值必须大于0同时小于100")
Test2.SetFocus
Else
Test3.Test = Val(Test1.Test) + Val(Test2.Test)
End If
各位思考一下,这里面有什么问题呢。仔细看题目,你会发现程序员边界条件设置错误:把>写成了>=,把<写成了<=。这条代码告诉了我们有效数据和无效数据的分界点,往往作为程序员编写程序的判断点,是程序员容易犯错误的地方,也是测试人员重点测试的内容。
那么我们要怎么去确定这个边界值呢,各位接下来请看:
1、找到测试数据的边界点,也就是有效等价类和无效等价类的边界点,对边界点数据专门进行测试。
2、一般情况下,需要对边界值(0和100)以及边界值两边的数(-1和1以及101和99)分别进行测试。
这里我们还会讲一个概念叫做上点,离点,内点。这几个名词我也用例子展示给大家看,只要数学不是体育老师教的,都是能看懂的
- 如果是闭区间,例如[1,10]。那么上点就是1,10。内点就是区间内任意一个数字,例如5。离点则是0,11
- 如果是开区间,例如(1,10)。那么上点就是1,10。内点就是区间内任意一个数字,例如5。离点则是(2,9)
- 这两个最大的区别就是在于离点的不同,概括起来一句话就是闭两边,开中间。也就是说闭区间的离点是区间外边相邻的两个数字(0,11),开区间的离点就是区间里边相邻的两个数字(2,9)。
接下来就是例题了
- 使用边界值的方法设计添加标题的测试用例:标题长度>0 标题长度<=30
- 输入一个学生成绩n,判断是否及格(0到100整数)
边界值的方法小结:
1如果输入条件规定了值得范围,则应取刚到到这个范围的边界值,以及刚刚超越这个范围边界的值作为输入数据。
两位整数加法器数的范围为-99—99,则应测试-99,-100和99,100
2输入条件规定了值得个数
姓名要求1—20个字符,需要测试0、1、2个字符和19、20、21个字符
某商品信息查询系统,每页最多显示10条商品信息,我们就应该准备商品信息,使能够查询出9、10条、11条、1条、0条商品记录
边界值和等价类区别:边界值分析不是从某等价类中随便挑一个作为代表,而是这个等价类的每个边界都要作为测试条件