黑盒测试

Posted by 周宝航 on July 2, 2018

黑盒测试

  • 又称 功能测试、数据驱动测试或基于规格说明的测试。

测试特点:

  1. 把程序看作是不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试人员通过输入数据而产生的输出信息来验证信息是否满足要求。
  2. 黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

测试方法:

  • 测试用例设计方法包括:等价类划分法、边界值分析法、错误推测法、因果图法、决策表判定法、用户场景法等。

等价类划分法

等价类 是指 某个输入域的子集合,各个输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其他值的测试。

  • 等价类划分法 根据需求对输入范围进行细分,把输入分成几个区域,然后在每一区域里选取有代表性的测试用例开展测试的方法。
  • 有效等价类 是指符合《需求规格说明书》,合理的输入数据集合。
  • 无效等价类 是指对于程序的规格说明来说,是不合理的,无意义的输入数据集合。

方法流程

  1. 确定基本类: 为每一个变量/参数: (1)确定其定义域 (2)构建有效值类(有效类) (3)构建无效值类(无效类)

  2. 细分类: 为每个等价类: 将(可能)根据不同的规则细分为不同的子等价类

  3. 选取代表值: 为每个等价类: 选择至少一个类元素的代表值作为测试用例的输入值

边界值分析法

  • 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。
  • 通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
  • 无数的测试用例实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部。
  • 例如,一个循环条件为“<=”时,却错写成“<”;计数器发生少计数一次。

  • 边界值分析法与等价类划分法的区别:
    1. 边界值分析法不是选择等价类的任何元素,而是选择等价类边界值的测试用例
    2. 边界值分析法不仅注重与输入条件,而且也从输入域导出测试用例。
  • 如何使用边界值分析法设计测试用例:
    1. 首先确定边界情况,通常输入或输出等价类的边界就是应该着重测试的边界情况。
    2. 选取正好等于、刚刚大于或刚刚小于边界值的值作为测试数据,而不是选取等价类中的典型值或任意值。

边界值分析原则

  1. 如果输入条件规定了一个输入值范围,则应对范围的边界设计测试用例,同时针对刚刚越界的情况设计无效输入测试用例。
  2. 如果输入条件规定了输入值的数量,则应针对输入数量的最小值、输入数量的最大值、以及比最小数量少一个,比最多数量多一个的情况设计测试用例。
  3. 对每个输入条件应用规则1和2。即设计测试用例使输出值达到边界值及其左右的值。
  4. 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。

举例

  • 例:学生成绩的取值范围为0~100的整数。

  • 采用等价类划分设计的测试用例

编号 输入数据 输入(用例步骤) 期望的输出
1 -5 输入学生的成绩小于0 提示错误信息
2 50 输入学生的成绩在0-100 输出成绩为50
3 120 输入学生的成绩大于100 提示错误信息
  • 采用边界值分析设计的测试用例
编号 输入数据 输入(用例步骤) 期望的输出
1 -1 输入学生的成绩小于0 提示错误信息
2 0 输入学生的成绩为0 输出成绩为0
3 1 输入学生的成绩大于0,小于100 输出成绩为1
4 99 输入学生的成绩大于0,小于100 输出成绩为99
5 100 输入学生的成绩为100 输出成绩为100
6 101 输入学生的成绩大于100 提示错误信息

边界值分析总结

边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。

错误推测法

  • 错误推测法:是指在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。

  • 误推测法基本思路:分析程序中最易出错的场景和情况,在此基础上有针对性的设计测试用例,

    1. 需要完成的前提条件如下:深度熟悉被测系统的业务、需求。
    2. 对被测系统或类似系统之前的缺陷分布情况进行过系统的分析,包括功能缺陷,数据缺陷,接口缺陷和界面缺陷等等。

举例

  • 聊天窗口功能:(一)
    1. 输入特殊字符(全角、半角)后,窗口是否能够正常显示
    2. 输入空格,是否能够过滤,是否会算入长度计算
    3. 不输入内容,是否提示输入内容为空
    4. 在需要密码验证,或者需要二次输入确认的地方,通过复制粘贴第一次的输入内容是否能够通过
  • 查询功能:(二)
    1. 无条件查询
    2. 是否支持模糊查询
    3. 查询的关键字之间是否可用连接符
    4. 输入正确的查询条件以前加上空格,看是否能正确地查出相应 的数据

错误推测法的优缺点

  • 优点:充分发挥个人的经验和潜能,命中高

  • 缺点:覆盖率难以保证;过多的依赖于个人的经验

决策表判定法

  • 定义:决策表也称判定表,是分析和表达逻辑条件下执行不同操作的情况的工具。

  • 决策表能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏,设计出完整的测试用例集合。

条件 规则(Y/N)
行动 行为指示(x)
  1. 条件:列出问题的所有条件
  2. 行动:列出问题规定的可能采取的操作
  3. 规则:根据给出的条件,列出所有可能的取值
  4. 行为知识:给出了当满足规则时应该采取什么行动

决策表的简化

  • 决策表的简化主要包含两个方面:规则合并与规则包含

  • (1)规则合并 如果两条或多条规则的动作指示相同,规则只有一项不同,则可以将该项合并,合并后的规则用符号“-”表示,说明执行的行为指示与条件的取值无关,称为无关条件。
  • (2)规则包含 无关条件项“-”在逻辑上又可包含其他的规则取值,具有相同行动的规则还可进一步合并。

用户场景法

  • 定义:模拟特定场景边界发生的事情,通过事件来触发某个动作的发生,观察事件的最终结果,从而用来发现需求中存在的问题

  • 场景法一般包含基本流和备用流,从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景

事件流组成

  • 基本流: 1、仅有一个基本流,如图中黑色箭头 2、是经过用例的最简单的路径,指每个步骤都“正常”运作时所发生的事情
  • 备选流: 1、可以有多个,除黑色箭头 2、可选的或备选的情况 3、异常事件流程
  • 区别
  基本流 备选流
测试重要性 重要 次要
数目 1条 1条或多条
初始节点位置 系统初始状态 基本流或其他备选流
终止节点位置 系统终止状态 基本流或其他终止状态
是否是完整的业务流程 否,仅为业务流程的执行片段
能否构成场景 否,需和基本流共同构成场景

场景法总结

  1. 通过分析被测业务流程,构建基本流和备选流,并生成场景进而得到测试用例的测试方法。该法主要用于功能测试。

  2. 主要难点在于如何根据业务实际提炼出基本流,如何很好地控制备选流的数量,以及如何从无穷尽的场景中选择少量典型场景进行测试