目的是为了应付期末考试,期末考试肯定会考测试的习题。
一、概述
先总览一下测试的分类:
- 检查程序各功能是否能实现,检查功能错误;
- 黑盒测试与软件的具体实现过程无关,只关心结果;
- 所以又被称为功能测试。
白盒测试:
- 检查内部操作是否按规定执行,各功能是否得到充分的使用;
- 所以又被称为结构测试。
二、黑盒测试方法
有很多种方法,这里主要讲解两种比较常用常考的方法,分别是等价类划分、边界值分析。
2.1 等价类划分
先来一个引例:
NextDate 函数问题:
- 是有三个变量 、 和 的函数;
- 输出为输入日期后一天的日期。
例如:输入为1986年6月9日,则该函数的输出应为1986年6月10日。
这个问题涉及到闰年的问题,因为闰年的日期是不一样的。
等价类划分法是把程序的 划分为若干部分,然后从每个部分中选取少数代表性数据当作测试用例。
引例中的输入域可以分为:年、月、日。
划分等价类可分为两种情况:
- 有效等价类:是指有意义的、合理的输入数据所组成的集合。
- 无效等价类:是指无意义的、不合理的输入数据所构成的集合。
在确立了等价类之后,建立 ,列出所有划分出的等价类。
逻辑覆盖测试方法分为:
- 语句覆盖;
- 判定覆盖;
- 条件覆盖;
- 判定/条件覆盖;
- 组合覆盖;
- 路径覆盖。
例如:程序
语句覆盖就是设计足够多个测试用例,运行被测程序,使得每一可执行语句至少执行一次。
在图例中,正好所有的 都在路径 上,所以选择路径 设计测试用例,就可以覆盖所有的可执行语句。
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进行处理,非常感谢!