导语

关于测试,最基础的知识就是黑盒测试与白盒测试的概念与特点。

于是借着这篇博客进行总结一下黑盒测试的特点、以及常用的黑盒测试方法。

白盒测试见说说测试——白盒测试

黑盒测试

黑盒测试也叫功能测试。

所谓黑盒,就是对程序内部的结构一无所知。它着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面软件功能进行测试。

黑盒测试是站在用户的角度进行测试的。

错误类型

  • 功能不正确或遗漏
  • 界面错误
  • 输入和输出错误
  • 数据库访问错误
  • 性能错误
  • 初始化和终止错误

测试方法

理论上来说,黑盒测试要穷举所有可能的输入(包括不合法的输入)用来测试,但这显然是不现实的。于是我们考虑,对测试行为进行量化。

常用的黑盒测试用例方法如下:

等价类划分法

等价类划分的方法是把程序的输入域划分为若干部分,然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。

其中等价类又分为有效等价类和无效等价类。

有效等价类,是对于程序的规格说明来说是合理的、有意义的输入。测试样例可以包含一个至多个有效等价类。每个等价类中的元素在程序处理中的方式要相同,否则划分为更小的等价类。
有效等价类是为了检验程序是否实现了规格说明中所规定的功能和性能。

无效等价类,则是对于程序的规格说明来说不合理的、没有意义的输入。测试样例可以包含一个至多个无效等价类。
无效等价类是为了检验程序能否经受意外的考研,确保其鲁棒性。

边界值分析法

我们知道,错误出现概率较高的地方就是在接近边界值的地方,而不是在输入范围内部。所以我们考虑针对各种边界情况设计测试用例。

所以边界值分析是通过选取等价类边界的测试用例。这个边界不仅包含输入域的边界,也包含输出域的边界。

这种方法是对等价类划分法的补充。

错误推测法

错误推测法,是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。

单元测试中曾列出的在模块中常见的错误、或是以前产品测试中曾出现的错误,都是可以参考的经验,可以有针对性的设计测试样例。

因果图法

等价类划分法和边界值分析法都是着重考虑输入条件,却没有考虑输入条件之间的联系。所以可以考虑将不同的输入条件进行组合,对于每种组合都进行测试。

如何描述这些条件的组合呢?我们引入因果图模型。
因果图(,也叫鱼骨图)大概长以下这个样子:
说说测试——黑盒测试
画因果图也是为了生成判定表,判定表大概如下图:
说说测试——黑盒测试
由因果图生成测试用例的步骤是:

  • 分析软件规格说明描述,哪些是原因,哪些是结果,并给每个原因和结果赋予一个标识符
  • 分析软件规格说明描述中的语义。找出原因与原因、原因与结果之间对应的关系,并据此画出因果图
  • 由于有些组合情况不可能出现,在因果图上作标注,标明约束或限制条件
  • 把因果图转换为判定表
  • 把判定表的每一列拿出来作为依据,设计测试用例

判定表驱动法

一个判定表由以下部分组成:

  • 条件桩:列出问题所有条件
  • 动作桩:列出问题可能采取的操作
  • 条件项:列出针对它左列条件的取值在所有可能情况下的真假值
  • 动作项:列出在条件项的各种取值情况下应该采取的动作

以下表为例:

1 2 3 4
觉得疲倦? Y Y N N
感兴趣吗? N Y Y N
重读
| 继续
| 跳下一章
休息

正交试验设计法

正交试验设计法就是使用已经造好了的正交表格来安排试验并进行数据分析的一种方法,目的是用最少的测试用例达到最高的测试覆盖率

那么什么是正交表呢?表示为L行数(水平数因素数)。
比如L4(23)所表示的正交表有4行(4次实验),每一次实验有3个因素,每个因素的取值域为2个数。

因素1 因素2 因素3
试验1 1 1 2
试验2 2 1 1
试验3 2 2 2
试验4 1 2 1

根据正交表设计测试用例的步骤是:

  • 有哪些因素(变量)
  • 每个因素有哪几个水平(变量的取值)
  • 选择一个合适的正交表(行数最少的)
  • 将变量的值映射到表中
  • 把每一行的各因素水平的组合作为一个测试用例
  • 加上可能存在的、没有在表中表现出的组合

场景法

软件几乎都是用事件触发来控制流程的,事件触发的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。

场景法一般包含基本流和备用流,从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景。其中,基本流就是正常的,正确场景;备选流一般指中断操作的。
说说测试——黑盒测试

综合策略

总的来说,对于黑盒测试可以采用这样的综合策略:

首先,考虑边界值分析法,这种方法设计的测试用例发现程序错误的能力最强。必要时,使用等价类划分法予以补充。

其次,用错误推测法追加一些测试样例。这是可以按照程序逻辑,检查已经设计出的测试用例的逻辑覆盖率。如果没有达到要求,则继续补充。

如果程序的功能说明中,有给出输入条件的组合情况,则可以直接选用因果图法。

相关文章:

  • 2021-08-31
  • 2021-12-02
  • 2021-12-03
  • 2021-12-03
  • 2021-12-30
猜你喜欢
  • 2021-12-18
  • 2021-06-02
  • 2021-08-30
  • 2021-12-31
  • 2021-10-15
相关资源
相似解决方案