第7章03 黑盒测试及用例生成

5.1 黑盒测试概述

黑盒测试是一种基于规格说明(Spec)、不要求考察代码、以用户视角进行的测试。又称功能测试、基于规格说明的测试

黑盒测试依据:需求规格说明;用户视角;输入与输出关系;明确需求和隐含需求。

能发现其他测试遗漏的逻辑缺陷,如因果关系问题;

适用于单元、集成、系统、回归等多个阶段。

黑盒测试意义:黑盒测试有助于软件产品总体功能验证

  1. 检查明确需求和隐含需求
  2. 采用有效输入和无效输入
  3. 包含用户视角。

黑盒测试步骤:

  1. 熟悉规格说明书,理解测试需求;
  2. 生成测试用例;
  3. 执行测试;
  4. 判定测试结果。

黑盒测试有什么特点

黑盒测试特点:一种基于需求的测试

目的是确认软件需求规格说明书列出的需求是否都正确实现

优点:与软件具体实现无关,代码变化时测试用例仍可能复用;测试用例设计可与软件实现并行;

如何实施黑盒测试

黑盒测试实施分为三类:

  1. 正面测试;
  2. 负面测试;
  3. 边界值测试。
对比项作用目的
正面测试和正面测试用例验证系统在正常有效的输入条件下能否按预期执行功能证明系统能做它应该做的事
负面测试和负面测试用例验证系统在异常无效的输入条件下能否优雅地处理错误而不崩溃确保系统不会做它不应该做的事
对比项正面测试负面测试
测试条件根据需求规格说明条件在需求规格说明之外
目的证明系统能做它应该做的事确保系统不会做它不应该做的事
覆盖率计算覆盖需求和条件通常没有覆盖率
挑战性根据规格说明设计用例需要创造性产生尽可能多的非法输入

5.2 黑盒测试与白盒测试区别

维度黑盒测试白盒测试
依据需求规格说明源程序或代码结构
是否关注内部实现不关注关注
关注点输入、输出、功能行为语句、分支、条件、路径、数据流
典型方法等价类、因果图、判定表、边界值控制流覆盖、基本路径、数据流测试

黑盒测试可以检测需求文档不完整导致的功能缺失问题;白盒测试在系统测试阶段也常需要与黑盒测试结合。

灰盒测试:部分可见内部结构。介于两者之间,测试者了解模块间的交互、数据库设计或算法概要,但无需深入每一行代码。常见于集成测试或接口测试,比如检查用户注册后,数据是否按预期写入了数据库的某个表

5.3 黑盒测试用例设计和生成方法

5.3.1 等价类划分

等价类定义

等价类是输入域的某个子集,该子集中的每个输入数据对揭露软件错误都是等效的。测试等价类中的一个代表值,通常可代表该类其他值。

等价类:测试相同目标或暴露相同软件缺陷的一组测试

另一种表达:如果软件行为对一组值相同,则这组值称为等价类;产生相同预期输出的一组输入值叫一个等价类划分。

如何进行等价类划分

将程序的输入域划分为等价类,以便导出测试用例

它试图通过设计一个测试用例来尽可能发现多个错误,从而减少测试用例数目,降低测试工作量。

有效等价类和无效等价类

类型含义作用
有效等价类完全满足规格说明的输入数据集合检验程序是否满足规格说明
无效等价类不满足程序输入要求的输入数据集合检验程序能否处理非法输入

等价类划分准则

客观题重点。

输入条件有效等价类无效等价类
布尔表达式1 个有效等价类1 个无效等价类
输入代表一个范围1 个有效等价类2 个无效等价类:小于范围、大于范围
输入数据个数有规定1 个有效等价类2 个无效等价类:少于、多于
输入代表集合的某个子集1 个有效等价类1 个或多个无效等价类
输入条件是一组列表数据N 个有效等价类1 个无效等价类
输入条件要求符合若干规则多个有效等价类若干无效等价类

根据等价类生成测试用例

课件步骤:

  1. 选择划分准则
  2. 根据准则确定有效等价类和无效等价类
  3. 从等价类中选取样本数据覆盖所有等价类;
  4. 根据需求写预期结果
  5. 执行测试。

重点规则:

  • 每个有效等价类都要覆盖;
  • 每个无效等价类都要单独覆盖

等价类划分主观题答题模板

  1. 写出被测功能的输入条件和输出要求。
  2. 按范围、集合、个数、规则等分类划分有效等价类和无效等价类。
  3. 画等价类表:编号、输入条件、等价类类型、代表数据、预期结果。
  4. 设计测试用例:有效等价类可尽量合并覆盖;无效等价类单独覆盖。
  5. 给出预期输出和错误处理结果。
  6. 检查是否遗漏边界值,必要时说明边界值分析作为补充。

常见扣分点:

  • 只列有效类,不列无效类;
  • 多个无效等价类放在一个测试用例里,导致不能定位错误来源;
  • 忘记写预期结果;
  • 没有根据题目规格划分,而是凭经验泛泛分类。

eg对应等价类:

序号等价类输入类型测试数据预期结果
1低于35岁有效26、12月保险费 = 2.15
235-59岁有效37月保险费 = 3.37
3大于60岁有效65、90月保险费 = 6.50
4负年龄无效-23警告信息

5.3.2 因果图分析

基本含义

因果图法是一种系统化黑盒测试用例设计方法,通过分析输入条件(原因)与输出结果(效果)之间的逻辑关系来生成测试用例

原理:软件的输入和输出之间存在因果逻辑关系,可以用因果图刻画;因果图可从规格说明书中获得

基本流程:生成因果图-> 建立判定表-> 生成测试用例

规格说明书因果图判定表测试用例规格说明书 \rightarrow 因果图 \rightarrow 判定表 \rightarrow 测试用例

原因、结果与逻辑关系

元素含义
原因 C输入条件或输入条件的等价类
结果 E输出结果或系统动作

原因和结果的 4 种基本关系:恒等;非;或;与。

pintu-fulicat.com-1782111974334

约束

课件列出 4 种输入约束和 1 种输出约束。

约束含义
互斥 E多个原因不能同时成立,最多一个成立
包含 I多个原因中至少一个必须成立,不能全为 0
唯一 O多个原因中必须有且只有一个成立
要求R当 C1 成立时,C2 也必须成立。
输出约束-屏蔽M当E1是1时,E2必须是0;当E1是0,E2的值不定

pintu-fulicat.com-1782112270467

因果图处理过程

  1. 分析需求规格:确定所有输入条件(原因)和输出结果(效果)
  2. 建立因果图:绘制原因与效果之间的逻辑关系图
  3. 标注约束条件:识别原因之间或结果之间的约束关系
  4. 转换为判定表:将因果图转换为决策表(判定表)
  5. 生成测试用例:根据判定表中的每一列设计测试用例

因果图主观题答题模板

  1. 从题干提取所有原因 C1、C2、... 和结果 E1、E2、...。
  2. 标注原因与结果之间的恒等、非、或、与关系。
  3. 标注原因之间或结果之间的约束,如互斥、包含、唯一。
  4. 枚举原因组合,删除违反约束或不可能的组合。
  5. 将有效组合转换为判定表。
  6. 每条有效规则生成一个测试用例,条件项作为输入,动作项作为预期输出。

常见扣分点:

  • 不列原因/结果编号;
  • 忘记删除违反约束的组合;
  • 因果图和判定表不一致;
  • 判定表规则没有转化为测试用例。

5.3.3 判定表法

判定表组成

第二次小测已考:判定表包含条件项和动作桩/动作项。

组成含义
条件桩列出所有条件
条件项每条规则中条件的取值
动作桩列出所有可能动作
动作项每条规则中应执行的动作
规则条件取值组合及其对应动作,一列通常是一条规则

课件表述:原因是判定表中的条件,结果是判定表中的行动;判定规则是原因与结果的组合。

  • 判定表中的条件:测试用例输入条件;
  • 判定表中的行动:测试用例预期输出;
  • 一条判定规则:一个测试用例。
截屏2026-06-22 15.25.41

判定表简化

  • 简化目标:合并相似规则;
  • 相似规则判断:两条或以上规则具有相同动作,并且条件项之间高度相似,可以合并;
  • - 表示合并后该条件项与取值无关,称为无关条件。

判定表法主观题答题模板

  1. 列条件桩:把所有输入条件写成行。
  2. 列动作桩:把所有可能输出或处理动作写成行。
  3. 枚举条件组合,形成初始规则列。
  4. 删除不可能规则或违反约束的规则。
  5. 根据规则填写动作项。
  6. 合并动作相同且条件高度相似的规则,用 - 表示无关条件。
  7. 每条最终规则生成一个测试用例。

5.3.4 边界值分析

基本思想

边界值分析法是对输入域边界值进行测试的黑盒测试方法,通常作为等价类划分的补充,测试用例来自等价类的边界。

软件的两个主要缺陷源:1)条件;2)边界

使用方法:

  • 首先确定边界情况;通常输入和输出等价类的边界,就是重点测试的边界情况
  • 选取正好等于、刚刚大于、刚刚小于边界的值作为测试数据;
  • 不选等价类中的任意典型值替代边界值。

边界值分析法缺点:仅适用于有明确范围的输入,不适用于无边界的情况;不覆盖所有逻辑错误,需要结合等价类划分等其他方法

常见边界值例子:数值范围的最小值和最大值;报表第一行、最后一行;第一列、最后一列;文件第一个记录、最后一个记录。

测试用例数量公式

基本边界测试:

4n+14n+1

健壮性边界测试:

6n+16n+1

其中 nn 是存在边界值的参数个数。

边界条件测试:

3m3m

m 是边界条件数。

方法公式覆盖范围测试力度取值方法
基本边界测试4n+1只覆盖有效数据较弱min;min+1;max-1;max
健壮性边界测试6n+1有效数据 + 无效数据中等再加 min-、max+
边界条件测试3m有效数据 + 无效数据更强边界值 - 1;边界值本身;边界值 + 1

边界条件测试补充

确定边界条件:

  1. 每次只考虑一个参数的边界,固定其他参数
  2. 补充确定的关联边界值

单变量、多变量、分段区间

情况答题方式
单变量范围取 min、min+、nom、max-、max,健壮性再加 min-、max+
多变量范围一次让一个变量取边界,其他变量取正常值
分段区间对每个分段的起点、终点及相邻值确定边界
有关联边界先识别关联约束,再补充组合边界

边界值分析主观题答题模板

  1. 写出每个输入变量的有效范围。
  2. 找出每个变量的下边界、上边界和必要的分段边界。
  3. 选择基本边界或健壮性边界,并写明公式。
  4. 对每个变量列出边界附近取值。
  5. 生成测试用例表:编号、输入、选择理由、预期输出。
  6. 对无效边界值写清错误提示或拒绝处理。

5.4 本章主观题方法总表

方法适用场景输入信息输出结果答题步骤常见扣分点
等价类划分输入有范围、集合、个数、规则输入条件、规格说明等价类表、测试用例划分有效/无效类,选代表值,写预期无效类未单独覆盖
因果图输入条件间有逻辑组合原因、结果、约束因果图、判定表、用例提取 C/E,画关系,转判定表忽略约束
判定表多条件多动作规则条件和动作判定表、简化规则枚举规则,删不可能,合并相似条件项/动作项混淆
边界值分析输入/输出有边界范围、区间、分段点边界测试数据找边界,取边界附近值,写预期只取中间值,不测边界

5.5 小测关联

第二次小测已考:

  • 判定表包含条件项、动作桩;
  • 年龄验证中无效等价类;
  • 边界值分析 4n+14n+1 的测试数据选择;
  • 黑盒与白盒的辨析。

5.6 本章复习检查题

填空题

  1. 黑盒测试是一种基于________、不要求考察代码、以用户视角进行的测试。
  2. 因果图法通过分析输入条件()与输出结果()之间的逻辑关系生成测试用例。
  3. 健壮性边界测试公式为________。

选择题

  1. 对输入范围 [1,100] 做基本边界测试,最典型的取值应包含:A. 50 B. 1、2、99、100 和正常值 C. 仅 1 和 100 D. 随机 5 个值
  2. 判定表中一条规则通常对应:A. 一个测试用例 B. 一个模块 C. 一个缺陷 D. 一个代码分支

判断题

  1. 每个无效等价类都应尽量单独覆盖。
  2. 边界值分析通常是等价类划分的补充。
  3. 因果图转换为判定表时,不需要考虑约束。

参考答案

  1. 填空:规格说明;原因、效果/结果;6n+16n+1
  2. 选择:B;A。
  3. 判断:对;对;错。

第7章03 客观题必背清单

A. 填空题重点

  1. 黑盒测试是一种基于规格说明、不要求考察代码、以用户视角进行的测试。
  2. 黑盒测试又称功能测试、基于规格说明的测试。
  3. 黑盒测试的实施步骤:熟悉规格说明书、生成测试用例、执行测试、判定测试结果。
  4. 黑盒测试是一种基于需求的测试。
  5. 黑盒测试前提:需求规格说明书经过仔细评审,隐含需求已经明确化。
  6. 黑盒测试实施包括:正面测试、负面测试、边界值测试。
  7. 正面测试证明系统能做它应该做的事。
  8. 负面测试确保系统不会做它不应该做的事。
  9. 黑盒测试用例设计方法包括:等价类划分法、因果图/判定表法、边界值分析法等。
  10. 等价类是输入域的某个子集。
  11. 有效等价类是满足规格说明的输入数据集合。
  12. 无效等价类是不满足输入要求的输入数据集合。
  13. 每个有效等价类都要覆盖。
  14. 每个无效等价类都要单独覆盖。
  15. 因果图中 Ci 表示原因,Ei 表示结果。
  16. 因果图四种基本关系:恒等、非、或、与。
  17. 因果图输入约束:互斥、包含、唯一、要求。
  18. 因果图输出约束:屏蔽。
  19. 判定表中的条件对应原因,行动对应结果。
  20. 一条判定规则对应一个测试用例。
  21. 判定表中 “—” 表示无关条件。
  22. 边界值分析是对输入域边界值进行测试的黑盒测试方法。
  23. 边界值分析通常作为等价类划分的补充。
  24. 软件两个主要缺陷源:条件和边界。
  25. 基本边界测试公式:4n+1。
  26. 健壮性边界测试公式:6n+1。
  27. 边界条件测试公式:3m。

B. 选择题重点

问法答案方向
黑盒测试依据是什么?规格说明、需求、输入输出
黑盒测试又叫什么?功能测试、基于规格说明的测试
黑盒测试适用阶段有哪些?单元、集成、系统、回归
黑盒测试实施有哪些?正面测试、负面测试、边界值测试
哪些属于黑盒测试用例设计方法?等价类、因果图/判定表、边界值、正交、场景等
有效等价类用于检验什么?程序是否满足规格说明
无效等价类用于检验什么?程序是否能处理非法输入
因果图四种基本关系是什么?恒等、非、或、与
因果图输入约束有哪些?互斥、包含、唯一、要求
因果图输出约束是什么?屏蔽
判定表中“—”表示什么?无关条件
边界值分析取哪些值?边界值、刚小于、刚大于
4n+1适用于什么?基本边界测试
6n+1适用于什么?健壮性边界测试
3m适用于什么?边界条件测试

C. 判断题易错点

说法正误原因
黑盒测试需要深入分析代码内部结构黑盒测试不要求考察代码
黑盒测试只适用于系统测试可用于单元、集成、系统、回归
黑盒测试可以发现因果关系等逻辑缺陷课件明确提到
黑盒测试前需求规格说明不需要评审前提是需求规格说明已仔细评审
正面测试用于证明系统能做它应该做的事合法输入、正常条件
负面测试用于确保系统不会做不该做的事非法输入、异常条件
负面测试通常没有覆盖率课件比较表中说明
等价类划分的目标是穷举所有输入目标是减少用例数量
无效等价类可以全部合并到一个测试用例里每个无效等价类要单独覆盖
等价类划分不需要考虑输出条件考虑输出条件有助于精细划分
因果图可由需求规格说明书获得输入输出因果关系来自规格说明
判定表中一条判定规则对应一个测试用例课件明确说明
判定表中的“—”表示该条件取值无效表示该条件与结果无关
边界值分析是白盒测试是黑盒测试
边界值分析可作为等价类划分的补充测试用例来自等价类边界
边界值分析能覆盖所有逻辑错误仍需结合其他方法
4n+1包括无效边界数据基本边界测试只覆盖有效数据
6n+1包括有效和无效边界数据健壮性边界测试

第7章03 主观题方法总表

方法适用场景输入信息输出形式答题关键
等价类划分输入规则、范围、格式、集合、列表规格说明中的输入条件等价类表 + 测试用例表有效类覆盖,无效类单独覆盖
因果图多个输入条件共同决定多个输出原因、结果、逻辑关系、约束因果图/逻辑表达式找清原因、结果、约束
判定表多条件组合决策条件项和动作项判定表 + 测试用例删除不可能组合,合并相似规则
边界值分析有范围、长度、数量、分段、日期等边界参数范围和边界条件边界测试数据表取边界前、边界点、边界后

第7章03 最终记忆主线

这章可以用一句话概括:

黑盒测试是基于规格说明和用户视角的测试,重点通过正面测试、负面测试和边界值测试来检查需求是否实现;其核心用例设计方法包括等价类划分、因果图/判定表和边界值分析,其中等价类解决输入域划分问题,因果图/判定表解决多条件组合逻辑问题,边界值分析解决边界附近容易出错的问题。

本章最需要优先掌握的是:

  1. 黑盒测试定义、别名、特点和步骤
  2. 正面测试 vs 负面测试
  3. 有效等价类 vs 无效等价类
  4. 六类等价类划分准则
  5. 每个有效等价类覆盖,每个无效等价类单独覆盖
  6. 因果图四种关系:恒等、非、或、与
  7. 因果图五类约束:互斥、包含、唯一、要求、屏蔽
  8. 判定表条件、行动、规则的含义
  9. 边界值分析的取值原则
  10. 4n+1、6n+1、3m 三个公式及适用场景