第4章:原型测试用例设计原则:等价类划分、边界值分析、场景覆盖、异常路径覆盖

关键前提:原型测试用例的设计质量直接决定缺陷检出率和回归效率。本章的四大原则构成了Solution Design阶段原型验证的核心骨架,必须在编写第一条测试用例前完成全团队对齐。

4.1 适用场景

  • 产品原型完成核心功能交互设计,需进行首次集成验证时。
  • 需求文档中包含数值范围、状态枚举、流程分支或异常恢复逻辑。
  • 跨系统接口原型(Mock/Stub)就绪,需覆盖正常与故障路径。
  • 任何使用等价类划分或边界值分析能显著降低用例数量的输入域(如年龄、金额、分页参数)。

4.2 前置条件

  1. 已完成功能模块的需求规格说明书(SRS)评审。
  2. 原型已部署至隔离测试环境,且包含至少30%的异常状态桩代码。
  3. 测试人员已掌握等价类与边界值的基础理论(可通过10分钟内部培训确认)。
  4. 生成本章节所需的测试用例模板(见下方表格)。

4.3 操作步骤:四步螺旋设计法

核心口诀:先分类,后拉边,场景串联,异常封底。
  1. 等价类划分:将输入域拆分为有效类与无效类,每类抽取1个典型值。
  2. 边界值分析:取每类等价类的最大、最小、略超、略不足值(共4个边界点)。
  3. 场景覆盖:基于真实用户旅程,组合多个等价类形成业务流用例。
  4. 异常路径覆盖:植入系统级故障(网络超时、数据库断连、权限降级)并验证降级行为。

4.4 输入输出物

阶段输入物输出物
等价类划分需求文档、接口定义等价类列表(含有效/无效类标识)
边界值分析等价类列表边界值测试矩阵
场景覆盖用户故事地图业务流用例(含预期结果)
异常路径覆盖系统架构设计、故障注入清单异常路径跟踪表

4.5 责任边界

角色职责不负责事项
测试工程师编写用例、执行、记录缺陷修复代码、修改原型
开发/架构师提供等价类划分的领域约束替代测试设计
产品经理确认场景覆盖的优先级编写具体用例步骤
SQA审计用例覆盖率 >= 85%执行测试

4.6 记录材料

每个测试用例必须包含以下元数据字段(建议用Markdown或TestRail导入模板):
| ID | 模块 | 级别 | 设计原则 | 输入值 | 输出预期 | 实际结果 | 状态 |
|----|------|------|----------|--------|----------|----------|------|
| TC-001 | 用户注册 | P0 | 等价类有效 | username: "abc" | 注册成功 | -- | -- |
| TC-002 | 用户注册 | P0 | 边界值 | age: 0 | 注册失败(MSG-01) | -- | -- |
| TC-003 | 用户注册 | P1 | 场景覆盖 | valid+valid+异常 | 流程回滚 | -- | -- |
| TC-004 | 用户注册 | P2 | 异常路径 | 数据库超时 | 降级提示 | -- | -- |

4.7 异常处理

  • 等价类不完整:立即拉起需求澄清会,补充遗漏的分类(如字符串长度、特殊字符、空值)。
  • 边界值难以确定:优先采用开发侧给出的硬编码约束值,若无则在原型前端添加“?-?”提示占位符,测试时填写±1范围。
  • 场景覆盖与异常路径重叠:合并为一条“组合异常场景用例”,例如:有效用户+超时+重试次数超限。
  • 用例过多导致迭代周期不足:执行 “边界必测、等价类每类一条、场景覆盖P0/P1、异常路径只验证回复” 裁剪策略。

4.8 验收标准

  1. 每个模块的等价类划分表至少有1个有效类 + 1个无效类,且所有类在用例中有对应值。
  2. 所有边界值域(min-1, min, max, max+1)至少被1条用例覆盖。
  3. 场景覆盖用例至少包含正向、负向、业务流回滚三种类型。
  4. 异常路径覆盖清单中至少包含网络超时、数据库拒绝、第三方返回500三类故障。
  5. 缺陷密度 < 0.5 个/P0用例(即每2条P0用例最多发现1个缺陷),否则需重新设计等价类。
常见误区:不要将边界值和异常路径混为一谈。边界值的“异常”是指输入值略超范围,而异常路径是指系统外部或内部发生故障。两者必须分开设计,否则会遗漏“正常输入+系统故障”的场景。
原型测试用例设计原则四大支柱 等价类划分 有效类 / 无效类 边界值分析 min / max / ±1 场景覆盖 正向流 / 负向流 异常路径覆盖 系统/网络/权限 综合测试用例集 覆盖率 ≥ 85% 设计顺序:先划分 → 再边界 → 串联场景 → 最后异常封底 每个原则输出物是下一个原则的输入,形成闭环
实战建议: 用不同颜色标记原始用例的来源(如蓝色=等价类、红色=边界值),在评审时能快速定位遗漏原则。异常路径用例建议加上前缀 EXP- 以便统计。