软件测试基础理论体系学习6-黑盒测试方法&白盒测试方法简述

13 白盒测试方法

  • 1 黑盒测试
    • 1.1 黑盒测试概述
    • 1.2 黑盒测试的使用场景
    • 1.3 “黑盒”的两种基本方法
    • 1.4 黑盒测试的优缺点
      • 1.4.1 优点
      • 1.4.2 缺点
    • 1.5 黑盒测试的测试用例设计方法
  • 2 白盒测试
    • 2.1 白盒测试概述
    • 2.2 逻辑覆盖
    • 2.3 语句覆盖
      • 2.3.1 基本思想是
      • 2.3.2 优点
      • 2.3.3 缺点
    • 2.4 判定覆盖
      • 2.4.1 基本思想
      • 2.4.2 优点
      • 2.4.3 缺点
    • 2.5 条件覆盖
      • 2.5.1 基本思想
      • 2.5.2 优点
      • 2.5.3 缺点
    • 2.6 判定-条件覆盖
      • 2.6.1 基本思想
      • 2.6.2 优点
      • 2.6.3 缺点
    • 2.7 条件组合覆盖
      • 2.7.1 基本思想
      • 2.7.2 优点
      • 2.7.3 缺点
    • 2.8 路径覆盖
      • 2.8.1 基本思想
      • 2.8.2 优点
      • 2.8.3 缺点

1 黑盒测试

1.1 黑盒测试概述

  • 黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用;
  • 把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性;
  • 黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试;
  • “黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。

1.2 黑盒测试的使用场景

  • 是否有不正确或遗漏了的功能
  • 在接口上,能否正确地接受输入数据,能否产生正确地输出信息
  • 访问外部信息是否有错
  • 性能上是否满足要求
  • 界面是否错误,是否不美观
  • 初始化或终止错误

1.3 “黑盒”的两种基本方法

  • 黑盒测试有两种基本方法,即通过测试和失败测试。
  • 在进行通过测试时,实际上是确认软件能做什么,而不会去考验其能力如何。软件测试员只运用最简单,最直观的测试案例。
  • 在设计和执行测试案例时,总是先要进行通过测试。在进行破坏性试验之前,看一看软件基本功能是否能够实现。这一点很重要,否则在正常使用软件时就会奇怪地发现,为什么会有那么多的软件缺陷出现/li>
  • 在确信了软件正确运行之后,就可以采取各种手段通过搞“垮”软件来找出缺陷。纯粹为了破坏软件而设计和执行的测试案例,被称为失败测试或迫使出错测试。

1.4 黑盒测试的优缺点

1.4.1 优点

  • 比较简单,不需要了解程序内部的代码及实现;
  • 与软件的内部实现无关;
  • 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
  • 基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
  • 在做软件自动化测试时较为方便。

1.4.2 缺点

  • 不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;
  • 自动化测试的复用性较低。

1.5 黑盒测试的测试用例设计方法

  • 等价类划分方法
  • 边界值分析方法
  • 错误推测方法
  • 因果图方法
  • 判定表驱动分析方法
  • 功能图分析方法

2 白盒测试

2.1 白盒测试概述

  • 白盒测试并不是简单的按照代码设计用例,而是需要根据不同的测试需求,结合不同的测试对象,使用适合的方法进行测试。
  • 白盒测试与程序内部结构相关,需要利用程序结构的实现细节等知识,才能有效进行测试用例的设计工作。
  • 白盒测试方法有程序控制流分析、数据流分析、逻辑驱动测试、域测试、符号测试、路径测试、程序插桩及程序变异等。

2.2 逻辑覆盖

包含语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖。例:实现一个简单的数学运算

软件测试基础理论体系学习6-黑盒测试方法&白盒测试方法简述
软件测试基础理论体系学习6-黑盒测试方法&白盒测试方法简述

2.5.2 优点

条件覆盖比判定覆盖,增加了对符合判定情况的测试,增加了测试路径。

2.5.3 缺点

要达到条件覆盖,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。

2.6 判定-条件覆盖

2.6.1 基本思想

设计足够的测试用例,使得判断条件中的所有条件可能至少执行一次取值,同时,所有判断的可能结果至少执行一次。
应该至少保证判定条件M和N各取真/假一次,同时要保证8个条件取值至少执行一次:

软件测试基础理论体系学习6-黑盒测试方法&白盒测试方法简述
针对以上8种条件组合,来设计所有能覆盖这些组合的测试用例:
软件测试基础理论体系学习6-黑盒测试方法&白盒测试方法简述

2.8.2 优点

这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都广。

2.8.3 缺点

由于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。而在有些情况下,一些执行路径是不可能被执行的,如:

这两个语句实际只包括了2条执行路径,即A为真或假时候对B和D的处理,真或假不可能都存在,而路径覆盖测试则认为是包含了真与假的4条执行路径。这样不仅降低了测试效率,而且大量的测试结果的累积,也为排错带来麻烦。

从前面的例子我们可以看到,采用任何一种覆盖方法都不能满足我们的要求,所以,在实际的测试用例设计过程中,可以根据需要和不同的测试用例设计特征,将不同的覆盖方法组合起来使用,以实现最佳的测试用例设计

采用条件组合和路径覆盖两种方法结合重新来设计测试用例:

软件测试基础理论体系学习6-黑盒测试方法&白盒测试方法简述 全栈测试技术交流、各种资料分享 软件测试基础理论体系学习6-黑盒测试方法&白盒测试方法简述 微信名片 软件测试基础理论体系学习6-黑盒测试方法&白盒测试方法简述

来源:虫无涯

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年11月10日
下一篇 2022年11月10日

相关推荐