软件工程黑盒白盒测试

目的是为了应付期末考试,期末考试肯定会考测试的习题。

一、概述

先总览一下测试的分类:

软件工程黑盒白盒测试
黑盒测试
  • 检查程序各功能是否能实现,检查功能错误;
  • 黑盒测试与软件的具体实现过程无关,只关心结果;
  • 所以又被称为功能测试。

白盒测试

  • 检查内部操作是否按规定执行,各功能是否得到充分的使用;
  • 所以又被称为结构测试。

二、黑盒测试方法

有很多种方法,这里主要讲解两种比较常用常考的方法,分别是等价类划分、边界值分析。

2.1 等价类划分

先来一个引例:
NextDate 函数问题:

  • 是有三个变量 、 和 的函数;
  • 输出为输入日期后一天的日期。

例如:输入为1986年6月9日,则该函数的输出应为1986年6月10日。

这个问题涉及到闰年的问题,因为闰年的日期是不一样的。


等价类划分法是把程序的 划分为若干部分,然后从每个部分中选取少数代表性数据当作测试用例。

引例中的输入域可以分为:年、月、日。

划分等价类可分为两种情况:

  1. 有效等价类:是指有意义的、合理的输入数据所组成的集合。
  2. 无效等价类:是指无意义的、不合理的输入数据所构成的集合。

在确立了等价类之后,建立 ,列出所有划分出的等价类。

软件工程黑盒白盒测试
设计可以覆盖所有等价类的测试用例:
软件工程黑盒白盒测试
下面介绍逻辑覆盖测试方法,也是常考的内容,要掌握。

逻辑覆盖测试方法分为:

  • 语句覆盖;
  • 判定覆盖;
  • 条件覆盖;
  • 判定/条件覆盖;
  • 组合覆盖;
  • 路径覆盖。

例如:程序

软件工程黑盒白盒测试

3.1 语句覆盖

语句覆盖就是设计足够多个测试用例,运行被测程序,使得每一可执行语句至少执行一次。

在图例中,正好所有的 都在路径 上,所以选择路径 设计测试用例,就可以覆盖所有的可执行语句。

软件工程黑盒白盒测试

3.2 判定覆盖(分支覆盖)

判定覆盖就是设计若干个测试用例,运行被测程序,使得程序中 至少经历一次。

软件工程黑盒白盒测试

3.3 条件覆盖

条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的 至少执行一次。

在图例中,我们事先可对所有条件的取值加以标记。例如:

对于第一个判断:

  • 条件 A>1 取真为 T1,取假为F1;
  • 条件 B=0 取真为 T2,取假为 F2;

对于第二个判断:

  • 条件 A=2 取真为 T3,取假为条件F3;
  • X>1 取真为 T4,取假为 F4

3.4 判定/条件覆盖

设计足够多的测试用例,使得程序中 (真/假)至少出现一次,并且 的判定结果(真/假)也至少出现一次。

满足判定/条件覆盖的测试用例一定同时满足判定覆盖和条件覆盖。

3.5 组合覆盖

通过执行足够的测试用例,使得程序中 都至少出现一次。

满足组合覆盖的测试用例一定满足判定覆盖、条件覆盖和判定/条件覆盖。

就相当于是排列组合中的那个组合,把所有的情况都罗列出来。

3.6 路径覆盖

设计足够多的测试用例,要求覆盖程序中所有可能的路径。 从流程图和控制流图上可以看出,其中有 4 条可能的路径,分别是、、 和 。

来源:硕子鸽

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

上一篇 2021年1月10日
下一篇 2021年1月10日

相关推荐