第7章03 黑盒测试及用例生成
5.1 黑盒测试概述
黑盒测试是一种基于规格说明(Spec)、不要求考察代码、以用户视角进行的测试。又称功能测试、基于规格说明的测试。
黑盒测试依据:需求规格说明;用户视角;输入与输出关系;明确需求和隐含需求。
能发现其他测试遗漏的逻辑缺陷,如因果关系问题;
适用于单元、集成、系统、回归等多个阶段。
黑盒测试意义:黑盒测试有助于软件产品总体功能验证:
- 检查明确需求和隐含需求;
- 采用有效输入和无效输入;
- 包含用户视角。
黑盒测试步骤:
- 熟悉规格说明书,理解测试需求;
- 生成测试用例;
- 执行测试;
- 判定测试结果。
黑盒测试有什么特点
黑盒测试特点:一种基于需求的测试
目的是确认软件需求规格说明书列出的需求是否都正确实现
优点:与软件具体实现无关,代码变化时测试用例仍可能复用;测试用例设计可与软件实现并行;
如何实施黑盒测试
黑盒测试实施分为三类:
- 正面测试;
- 负面测试;
- 边界值测试。
5.2 黑盒测试与白盒测试区别
黑盒测试可以检测需求文档不完整导致的功能缺失问题;白盒测试在系统测试阶段也常需要与黑盒测试结合。
灰盒测试:部分可见内部结构。介于两者之间,测试者了解模块间的交互、数据库设计或算法概要,但无需深入每一行代码。常见于集成测试或接口测试,比如检查用户注册后,数据是否按预期写入了数据库的某个表
5.3 黑盒测试用例设计和生成方法
5.3.1 等价类划分
等价类定义
等价类是输入域的某个子集,该子集中的每个输入数据对揭露软件错误都是等效的。测试等价类中的一个代表值,通常可代表该类其他值。
等价类:测试相同目标或暴露相同软件缺陷的一组测试
另一种表达:如果软件行为对一组值相同,则这组值称为等价类;产生相同预期输出的一组输入值叫一个等价类划分。
如何进行等价类划分
将程序的输入域划分为等价类,以便导出测试用例
它试图通过设计一个测试用例来尽可能发现多个错误,从而减少测试用例数目,降低测试工作量。
有效等价类和无效等价类
等价类划分准则
客观题重点。
根据等价类生成测试用例
课件步骤:
- 选择划分准则;
- 根据准则确定有效等价类和无效等价类;
- 从等价类中选取样本数据覆盖所有等价类;
- 根据需求写预期结果;
- 执行测试。
重点规则:
- 每个有效等价类都要覆盖;
- 每个无效等价类都要单独覆盖。
等价类划分主观题答题模板
- 写出被测功能的输入条件和输出要求。
- 按范围、集合、个数、规则等分类划分有效等价类和无效等价类。
- 画等价类表:编号、输入条件、等价类类型、代表数据、预期结果。
- 设计测试用例:有效等价类可尽量合并覆盖;无效等价类单独覆盖。
- 给出预期输出和错误处理结果。
- 检查是否遗漏边界值,必要时说明边界值分析作为补充。
常见扣分点:
- 只列有效类,不列无效类;
- 多个无效等价类放在一个测试用例里,导致不能定位错误来源;
- 忘记写预期结果;
- 没有根据题目规格划分,而是凭经验泛泛分类。
eg对应等价类:
5.3.2 因果图分析
基本含义
因果图法是一种系统化黑盒测试用例设计方法,通过分析输入条件(原因)与输出结果(效果)之间的逻辑关系来生成测试用例。
原理:软件的输入和输出之间存在因果逻辑关系,可以用因果图刻画;因果图可从规格说明书中获得
基本流程:生成因果图-> 建立判定表-> 生成测试用例
原因、结果与逻辑关系
原因和结果的 4 种基本关系:恒等;非;或;与。
约束
课件列出 4 种输入约束和 1 种输出约束。

因果图处理过程
- 分析需求规格:确定所有输入条件(原因)和输出结果(效果)
- 建立因果图:绘制原因与效果之间的逻辑关系图
- 标注约束条件:识别原因之间或结果之间的约束关系
- 转换为判定表:将因果图转换为决策表(判定表)
- 生成测试用例:根据判定表中的每一列设计测试用例
因果图主观题答题模板
- 从题干提取所有原因 C1、C2、... 和结果 E1、E2、...。
- 标注原因与结果之间的恒等、非、或、与关系。
- 标注原因之间或结果之间的约束,如互斥、包含、唯一。
- 枚举原因组合,删除违反约束或不可能的组合。
- 将有效组合转换为判定表。
- 每条有效规则生成一个测试用例,条件项作为输入,动作项作为预期输出。
常见扣分点:
- 不列原因/结果编号;
- 忘记删除违反约束的组合;
- 因果图和判定表不一致;
- 判定表规则没有转化为测试用例。
5.3.3 判定表法
判定表组成
第二次小测已考:判定表包含条件项和动作桩/动作项。
课件表述:原因是判定表中的条件,结果是判定表中的行动;判定规则是原因与结果的组合。
- 判定表中的条件:测试用例输入条件;
- 判定表中的行动:测试用例预期输出;
- 一条判定规则:一个测试用例。
判定表简化
- 简化目标:合并相似规则;
- 相似规则判断:两条或以上规则具有相同动作,并且条件项之间高度相似,可以合并;
-表示合并后该条件项与取值无关,称为无关条件。
判定表法主观题答题模板
- 列条件桩:把所有输入条件写成行。
- 列动作桩:把所有可能输出或处理动作写成行。
- 枚举条件组合,形成初始规则列。
- 删除不可能规则或违反约束的规则。
- 根据规则填写动作项。
- 合并动作相同且条件高度相似的规则,用
-表示无关条件。 - 每条最终规则生成一个测试用例。
5.3.4 边界值分析
基本思想
边界值分析法是对输入域边界值进行测试的黑盒测试方法,通常作为等价类划分的补充,测试用例来自等价类的边界。
软件的两个主要缺陷源:1)条件;2)边界
使用方法:
- 首先确定边界情况;通常输入和输出等价类的边界,就是重点测试的边界情况
- 选取正好等于、刚刚大于、刚刚小于边界的值作为测试数据;
- 不选等价类中的任意典型值替代边界值。
边界值分析法缺点:仅适用于有明确范围的输入,不适用于无边界的情况;不覆盖所有逻辑错误,需要结合等价类划分等其他方法
常见边界值例子:数值范围的最小值和最大值;报表第一行、最后一行;第一列、最后一列;文件第一个记录、最后一个记录。
测试用例数量公式
基本边界测试:
健壮性边界测试:
其中 是存在边界值的参数个数。
边界条件测试:
m 是边界条件数。
边界条件测试补充
确定边界条件:
- 每次只考虑一个参数的边界,固定其他参数
- 补充确定的关联边界值
单变量、多变量、分段区间
边界值分析主观题答题模板
- 写出每个输入变量的有效范围。
- 找出每个变量的下边界、上边界和必要的分段边界。
- 选择基本边界或健壮性边界,并写明公式。
- 对每个变量列出边界附近取值。
- 生成测试用例表:编号、输入、选择理由、预期输出。
- 对无效边界值写清错误提示或拒绝处理。
5.4 本章主观题方法总表
5.5 小测关联
第二次小测已考:
- 判定表包含条件项、动作桩;
- 年龄验证中无效等价类;
- 边界值分析 的测试数据选择;
- 黑盒与白盒的辨析。
5.6 本章复习检查题
填空题
- 黑盒测试是一种基于________、不要求考察代码、以用户视角进行的测试。
- 因果图法通过分析输入条件()与输出结果()之间的逻辑关系生成测试用例。
- 健壮性边界测试公式为________。
选择题
- 对输入范围 [1,100] 做基本边界测试,最典型的取值应包含:A. 50 B. 1、2、99、100 和正常值 C. 仅 1 和 100 D. 随机 5 个值
- 判定表中一条规则通常对应:A. 一个测试用例 B. 一个模块 C. 一个缺陷 D. 一个代码分支
判断题
- 每个无效等价类都应尽量单独覆盖。
- 边界值分析通常是等价类划分的补充。
- 因果图转换为判定表时,不需要考虑约束。
参考答案
- 填空:规格说明;原因、效果/结果;。
- 选择:B;A。
- 判断:对;对;错。
第7章03 客观题必背清单
A. 填空题重点
- 黑盒测试是一种基于规格说明、不要求考察代码、以用户视角进行的测试。
- 黑盒测试又称功能测试、基于规格说明的测试。
- 黑盒测试的实施步骤:熟悉规格说明书、生成测试用例、执行测试、判定测试结果。
- 黑盒测试是一种基于需求的测试。
- 黑盒测试前提:需求规格说明书经过仔细评审,隐含需求已经明确化。
- 黑盒测试实施包括:正面测试、负面测试、边界值测试。
- 正面测试证明系统能做它应该做的事。
- 负面测试确保系统不会做它不应该做的事。
- 黑盒测试用例设计方法包括:等价类划分法、因果图/判定表法、边界值分析法等。
- 等价类是输入域的某个子集。
- 有效等价类是满足规格说明的输入数据集合。
- 无效等价类是不满足输入要求的输入数据集合。
- 每个有效等价类都要覆盖。
- 每个无效等价类都要单独覆盖。
- 因果图中 Ci 表示原因,Ei 表示结果。
- 因果图四种基本关系:恒等、非、或、与。
- 因果图输入约束:互斥、包含、唯一、要求。
- 因果图输出约束:屏蔽。
- 判定表中的条件对应原因,行动对应结果。
- 一条判定规则对应一个测试用例。
- 判定表中 “—” 表示无关条件。
- 边界值分析是对输入域边界值进行测试的黑盒测试方法。
- 边界值分析通常作为等价类划分的补充。
- 软件两个主要缺陷源:条件和边界。
- 基本边界测试公式:4n+1。
- 健壮性边界测试公式:6n+1。
- 边界条件测试公式:3m。
B. 选择题重点
C. 判断题易错点
第7章03 主观题方法总表
第7章03 最终记忆主线
这章可以用一句话概括:
黑盒测试是基于规格说明和用户视角的测试,重点通过正面测试、负面测试和边界值测试来检查需求是否实现;其核心用例设计方法包括等价类划分、因果图/判定表和边界值分析,其中等价类解决输入域划分问题,因果图/判定表解决多条件组合逻辑问题,边界值分析解决边界附近容易出错的问题。
本章最需要优先掌握的是:
- 黑盒测试定义、别名、特点和步骤;
- 正面测试 vs 负面测试;
- 有效等价类 vs 无效等价类;
- 六类等价类划分准则;
- 每个有效等价类覆盖,每个无效等价类单独覆盖;
- 因果图四种关系:恒等、非、或、与;
- 因果图五类约束:互斥、包含、唯一、要求、屏蔽;
- 判定表条件、行动、规则的含义;
- 边界值分析的取值原则;
- 4n+1、6n+1、3m 三个公式及适用场景。