黑盒测试
黑盒测试是软件测试工作中最常用也是非常必要的的测试方式之一。
黑盒测试的优点如下:
● 测试者不需要知道内部实现方式以及软件构建细节。
● 测试用例在功能规格确定后即可开始设计,对编码进度完全没有依赖。
● 测试团队可以完全独立与研发团队,并且进行公正的测试。
● 测试团队的编码能力没有硬性要求。
● 测试工作是站在最终用户的角度进行的,可以确保软件被用户接纳。
黑盒测试的缺点如下:
● 一旦业务逻辑非常复杂,难以绝对覆盖全部场景。
● 测试成本在业务逻辑非常复杂时将会出现快速上升(解决方案是通过白盒测试以及细分单元测试解决,KITA课程将会囊括这一部分)
同时,黑盒测试还可以用来做渗透测试,例如SQL注入、夸站脚本攻击、输入有效性攻击、基于会话的攻击。
黑盒测试中比较重要的知识点在于等价划分和边界值分析(BVA),接下来我们就一起来走进黑盒测试理论。
黑盒测试关注于通过输入和输出的信息流,来发现程序错误。黑盒测试可以发现:
● 软件的功能性错误
● 子系统/模块的行为错误
● 软件的性能错误/故障
● 是否用户可用
在开始黑盒测试实例前,我们先看看软件测试的原则以及软件可测试性的定义。
接下来,我们开始黑盒测试的一个简单实例。
上面的案例中,我们测试的对象是一个非常简单的小程序,其功能如下:
● 输入三个数字
● 判断三个数字能够构成一个三角形
● 根据边长判断三角形的类型(非等边三角形、等腰三角形、等边三角形)
● 根据夹角判断三角形的类型(锐角三角形、钝角三角线、直角三角形)
我们在测试这个小程序的时候,准备了如下测试用例:
● 功能类:用来验证小程序的功能(是否满足上面的功能需求)
● 边界类:用来验证小程序在合法以及非法边界上的功能
● 非法类:用来验证小程序在边界值之外,能否正常运行期功能
在定义这些测试用例时,我们主要运用了两种测试方法:等价分区以及边界值分析(BVA),接下来我们来看看什么是等价划分和边界值分析,以及怎么做等价分区和边界值分析。
简单来说,等价分区是依据输入条件,将待测试的数据集进行分割,划分为不同目的的集合,而这些集合有一个名词,即等价类。
在上面的实例中,我们做功能性测试用例时,就根据三角形类型(边长)、三角形类型(夹角)来设置边长集合。
边界值分析基于等价分区,在等价分区的基础上通过边界平移、边界抖动、边界消失或额外边界的手法,寻找到测试范围极端点、关闭点、内部点以及边界点。(注:关闭点是无限趋近边界,但是属于非规范域或者规范域的临近域的点)
在上面的例子中,非法类测试用例主要通过边界抖动、边界消失以及额外边界的手法来寻找。
例如:
● 3,4,5,6Four sides
▪ 这条测试用例使用的手法是额外边界。我们在输入3个数字的边界上,添加了一个边界,尝试输入4个数字。
● 646Three-digit single number
▪ 这条测试用例使用的手法是边界消失。我们让“3个数字通过逗号或空格进行分割”这条边界消失。
● 5,5,ACharacter as a side
▪ 这条测试用例使用的手法是边界抖动。我们抖动了“输入3个数字”的边界,让数字边界变成字符边界。
● 3.14.6,4,5Two decimal points
▪ 这条测试用例使用的手法是边界平移。我们平移了“数字”这个边界,让数字包含了带小数点的数字。
我们经常能够看到测试大牛编写的测试用例非常丰富,甚至包含一些看上去“匪夷所思”或者让人惊呼“这怎么可能想得到”的测试用例。其中非常重要的一点就是这些大牛已经将等价分区以及边界值分析的能力运用到极致。
最后给大家留下一个思考习题(本题源自硅谷):
网友评论