第7章03 黑盒测试及用例生成
5.1 黑盒测试概述
黑盒测试是一种==基于规格说明==(Spec)、不要求考察代码、以用户视角进行的测试。又称功能测试、基于规格说明的测试。
黑盒测试依据:
- 需求规格说明;
- 用户视角;
- 输入与输出关系;
- 明确需求和隐含需求。
黑盒测试特点:
- 与软件具体实现无关,代码变化时测试用例仍可能复用;
- 测试用例设计可与软件实现并行;
- 能发现其他测试遗漏的逻辑缺陷,如因果关系问题;
- 适用于单元、集成、系统、回归等多个阶段。
黑盒测试步骤:
- 熟悉规格说明书,理解测试需求;
- 生成测试用例;
- 执行测试;
- 判定测试结果。
5.2 黑盒测试与白盒测试区别
第二次小测已考:黑盒测试可以检测需求文档不完整导致的功能缺失问题;白盒测试在系统测试阶段也常需要与黑盒测试结合。
负面测试没有覆盖率
用尽可能少的测试用例发现尽可能多的缺陷
5.3 A等价类划分
等价类定义
等价类是输入域的某个子集,该子集中的每个输入数据对揭露软件错误都是等效的。测试等价类中的一个代表值,通常可代表该类其他值。
另一种表达:如果软件行为对一组值相同,则这组值称为等价类;产生相同预期输出的一组输入值叫一个等价类划分。
有效等价类和无效等价类
等价类划分准则
客观题重点。
根据等价类生成测试用例
课件步骤:
- 分析输入条件;
- 根据准则确定有效等价类和无效等价类;
- 从等价类中选取样本数据覆盖所有等价类;
- 根据需求写预期结果;
- 执行测试。
重点规则:
- 每个有效等价类都要覆盖;
- 每个无效等价类都要==单独覆盖==。
等价类划分主观题答题模板
- 写出被测功能的输入条件和输出要求。
- 按范围、集合、个数、规则等分类划分有效等价类和无效等价类。
- 画等价类表:编号、输入条件、等价类类型、代表数据、预期结果。
- 设计测试用例:有效等价类可尽量合并覆盖;无效等价类单独覆盖。
- 给出预期输出和错误处理结果。
- 检查是否遗漏边界值,必要时说明边界值分析作为补充。
常见扣分点:
- 只列有效类,不列无效类;
- 多个无效等价类放在一个测试用例里,导致不能定位错误来源;
- 忘记写预期结果;
- 没有根据题目规格划分,而是凭经验泛泛分类。
5.4 B因果图分析
基本含义
因果图法是一种系统化黑盒测试用例设计方法,通过分析输入条件(原因)与输出结果(效果)之间的逻辑关系来生成测试用例。
基本流程:
$$ 规格说明书 \rightarrow 因果图 \rightarrow 判定表 \rightarrow 测试用例 $$
原因、结果与逻辑关系
原因和结果的 4 种关系:
- 恒等;
- 非;
- 或;
- 与。
约束
课件列出 4 种输入约束和 1 种输出约束。
因果图主观题答题模板
- 从题干提取所有原因 C1、C2、... 和结果 E1、E2、...。
- 标注原因与结果之间的恒等、非、或、与关系。
- 标注原因之间或结果之间的约束,如互斥、包含、唯一。
- 枚举原因组合,删除违反约束或不可能的组合。
- 将有效组合转换为判定表。
- 每条有效规则生成一个测试用例,条件项作为输入,动作项作为预期输出。
常见扣分点:
- 不列原因/结果编号;
- 忘记删除违反约束的组合;
- 因果图和判定表不一致;
- 判定表规则没有转化为测试用例。
5.5 判定表法
判定表组成
第二次小测已考:判定表包含条件项和动作桩/动作项。
课件表述:原因是判定表中的条件,结果是判定表中的行动;判定规则是原因与结果的组合。
根据判定表生成测试用例
- 判定表中的条件:测试用例输入条件;
- 判定表中的行动:测试用例预期输出;
- 一条判定规则:一个测试用例。
判定表简化
课件明确:
- 简化目标:合并相似规则;
- 相似规则判断:两条或以上规则具有相同动作,并且条件项之间高度相似,可以合并;
-表示合并后该条件项与取值无关,称为无关条件。
判定表法主观题答题模板
- 列条件桩:把所有输入条件写成行。
- 列动作桩:把所有可能输出或处理动作写成行。
- 枚举条件组合,形成初始规则列。
- 删除不可能规则或违反约束的规则。
- 根据规则填写动作项。
- 合并动作相同且条件高度相似的规则,用
-表示无关条件。 - 每条最终规则生成一个测试用例。
5.6 C边界值分析
基本思想
边界值分析法是对输入域边界值进行测试的黑盒测试方法,通常==作为等价类划分的补充==,测试用例来自等价类的边界。
软件的两个主要缺陷源:1)条件;2)边界
使用方法:
- 首先确定边界情况;
- 选取正好等于、刚刚大于、刚刚小于边界的值作为测试数据;
- 不选等价类中的任意典型值替代边界值。
常见边界值例子:
- 数值范围的最小值和最大值;
- 报表第一行、最后一行;
- 第一列、最后一列;
- 文件第一个记录、最后一个记录。
测试用例数量公式
课件明确给出:
基本边界测试:
$$ 4n+1 $$
健壮性边界测试:
$$ 6n+1 $$
其中 $n$ 是存在边界值的参数个数。
注意:用户要求中提到“最坏情况边界值分析”和“健壮最坏情况边界值分析”,但在本次可提取课件文本中未找到对应公式展开。闭卷复习时,本笔记只把课件明确出现的 $4n+1$ 和 $6n+1$ 作为必背公式。
单变量、多变量、分段区间
边界值分析主观题答题模板
- 写出每个输入变量的有效范围。
- 找出每个变量的下边界、上边界和必要的分段边界。
- 选择基本边界或健壮性边界,并写明公式。
- 对每个变量列出边界附近取值。
- 生成测试用例表:编号、输入、选择理由、预期输出。
- 对无效边界值写清错误提示或拒绝处理。
5.7 本章主观题方法总表
5.8 小测关联
第二次小测已考:
- 判定表包含条件项、动作桩;
- 年龄验证中无效等价类;
- 边界值分析 $4n+1$ 的测试数据选择;
- 黑盒与白盒的辨析。
5.9 本章复习检查题
填空题
- 黑盒测试是一种基于________、不要求考察代码、以用户视角进行的测试。
- 因果图法通过分析输入条件()与输出结果()之间的逻辑关系生成测试用例。
- 健壮性边界测试公式为________。
选择题
- 对输入范围 [1,100] 做基本边界测试,最典型的取值应包含:A. 50 B. 1、2、99、100 和正常值 C. 仅 1 和 100 D. 随机 5 个值
- 判定表中一条规则通常对应:A. 一个测试用例 B. 一个模块 C. 一个缺陷 D. 一个代码分支
判断题
- 每个无效等价类都应尽量单独覆盖。
- 边界值分析通常是等价类划分的补充。
- 因果图转换为判定表时,不需要考虑约束。
参考答案
- 填空:规格说明;原因、效果/结果;$6n+1$。
- 选择:B;A。
- 判断:对;对;错。