当前位置:首页 > 经验

什么叫黑盒测试 动态黑盒测试

概述

首先,我们要对什么是黑盒测试及其目标形成认识,这里提及的黑盒测试从宏观角度上看,它面向的是软件,更确切的说它面向的是工作在产品上的软件,这些软件可能是看得见的(如手机上的一个APP)也可能是看不见的(如玩具遥控车);从微观角度上来看,它面向的是软件规格说明书,这份说明书应该完整的描述了软件行为,具体来讲,包括软件有些什么输入,经过运算和处理后会产生什么输出,也包括操作的逻辑,不同的操作逻辑下软件会表现出什么行为(如顺序执行、逆序执行)等,所以,由此抽象出来的测试又被称为输入/输出驱动的测试或数据驱动的测试,也就是我们所说的黑盒测试。

明白了什么是黑盒测试,自然而然,我们就能知道黑盒测试的目标是什么,其目标是找出程序中不符合规格说明书的地方或发现不符合规范的软件行为,软件规范必须要在软件规格说明书中作出详细而又正确的描述。

等价划分思想的产生

第一,我们不得不接受一个现实,那就是程序的输入集是非常庞大的,任何尝试穷尽输入集中的所有数据来驱动测试都是费力不讨好的,其效率太低,比如三角形测试,试想所有能构成一个三角形的三个整数组合是多么大,再说还有不能构成一个三角形的三个整数组合,可以说这个输入集是无穷的,“穷举输入测试”是不可用的。

第二,我们需要考虑测试投入产出比,即通过有限的测试用例,最大限度地提高发现的问题的数量,以取得最好的测试效果。

等价划分思想至少是基于以上两点考虑,一方面,它通过对程序输入或输出做等价划分减少测试用例,另一方面它通过在等价数据区间中选取典型值来设计测试用例以达到测试的效果。

于是,等价划分方法确定输入/输出子集时形成了两个特性

第一,严格控制测试用例的增加,减少为达到“合理测试”的既定目标而必须设计的其他测试用例的数量。这要求每个测试用例都必须体现尽可能多的不同的输入情况。

第二,它覆盖了大部分其他可能的测试用例。它会告诉我们,用或不用这个特定的输入/输出集合,哪些错误会被发现,哪些会被遗漏掉。

用等价划分方法设计测试用例

第一步:确定等价类,并用一个表格将它们管理起来,形式如下:

外部条件

有效等价类

无效等价类

摘自于规格说明书

代表对程序的有效输入

不正确的输入(任何可能的输入条件)

在确定等价类时,有一些有帮助性的指导原则,如下:

  1. 输入条件规定了一个取值范围(例如系统登录名的长度是6~20),那么就需要确定一个有效等价类(范围之内,输入登录名的长度为10),2个无效等价类(范围之外输入登录名的长度为3和25)。
  2. 输入条件规定了取值个数(如系统登录密码允许连续输入错误次数5次),那么就需要确定一个有效等价类(连续输入错误5次),2个无效等价类(没有输入错误和输入错误超过5次)。
  3. 输入条件规定了一个输入值的集合,而且有理由认为程序会对每个值进行不同处理(如系统允许管理员用户、普通用户和组用户登录),那么就需要为每个输入值确定一个有效等价类和一个无效等价类(非法用户)。
  4. 输入条件规定了“必须是”的情况(系统登录名首字符必须是字母),那么就需要确定一个有效等价类(首字符是字母)和一个无效等价类(首字符不是字母)。

第二步:生成测试用例

  1. 编号:要求为每个等价类设置一个不同的编号。
  2. 编写测试用例以至于所有的有效等价类都被覆盖,要求新增测试用例时尽可能多的覆盖那些还没有被覆盖的有效等价类。
  3. 编写测试用例以至于所有的无效等价类都被覆盖,要求新增的测试用例覆盖一个且仅一个还没有被覆盖的无效等价类。

一个范例

接下来,我们用一个实例演示如何运用等价划分方法来设计测试用例。

程序规格说明:输入三个整数作为三边的边长构成三角形。当此三角形为一般三角形、等腰三角形、等边三角形时,分别做计算。

第一步:确定等价类,把等价类用一个表格管理起来,如下

输入条件

有效等价类

无效等价类

输入值的集合

整数

一边为非整数;两边为非整数;三边为非整数

输入值的个数

3个数

给出一个边;给出两个边;给超过3个边

输入值的范围

正数

一边

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信

相关文章