第4章:原型测试用例设计原则:等价类划分、边界值分析、场景覆盖、异常路径覆盖
关键前提:原型测试用例的设计质量直接决定缺陷检出率和回归效率。本章的四大原则构成了Solution Design阶段原型验证的核心骨架,必须在编写第一条测试用例前完成全团队对齐。
4.1 适用场景
- 产品原型完成核心功能交互设计,需进行首次集成验证时。
- 需求文档中包含数值范围、状态枚举、流程分支或异常恢复逻辑。
- 跨系统接口原型(Mock/Stub)就绪,需覆盖正常与故障路径。
- 任何使用等价类划分或边界值分析能显著降低用例数量的输入域(如年龄、金额、分页参数)。
4.2 前置条件
- 已完成功能模块的需求规格说明书(SRS)评审。
- 原型已部署至隔离测试环境,且包含至少30%的异常状态桩代码。
- 测试人员已掌握等价类与边界值的基础理论(可通过10分钟内部培训确认)。
- 生成本章节所需的测试用例模板(见下方表格)。
4.3 操作步骤:四步螺旋设计法
核心口诀:先分类,后拉边,场景串联,异常封底。
- 等价类划分:将输入域拆分为有效类与无效类,每类抽取1个典型值。
- 边界值分析:取每类等价类的最大、最小、略超、略不足值(共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个无效类,且所有类在用例中有对应值。
- 所有边界值域(min-1, min, max, max+1)至少被1条用例覆盖。
- 场景覆盖用例至少包含正向、负向、业务流回滚三种类型。
- 异常路径覆盖清单中至少包含网络超时、数据库拒绝、第三方返回500三类故障。
- 缺陷密度 < 0.5 个/P0用例(即每2条P0用例最多发现1个缺陷),否则需重新设计等价类。
常见误区:不要将边界值和异常路径混为一谈。边界值的“异常”是指输入值略超范围,而异常路径是指系统外部或内部发生故障。两者必须分开设计,否则会遗漏“正常输入+系统故障”的场景。
实战建议:
用不同颜色标记原始用例的来源(如蓝色=等价类、红色=边界值),在评审时能快速定位遗漏原则。异常路径用例建议加上前缀
EXP- 以便统计。