4. 功能验证用例设计方法
功能验证用例设计是质量保障的核心环节,其目标是系统地从需求中提取可执行的测试场景。本章围绕等价类划分、边界值分析、场景法、正交实验法四种经典方法,按照适用场景、前置条件、操作步骤、输入输出物、责任边界、记录材料、异常处理、验收标准八个维度展开,帮助你在实际项目中快速选择并落地正确的用例设计策略。
学习提示:四种方法并非互斥,实践中常组合使用。
例如:先用等价类划分缩减输入域,再用边界值分析补充极限场景,最后用场景法串联业务流程。
例如:先用等价类划分缩减输入域,再用边界值分析补充极限场景,最后用场景法串联业务流程。
4.1 等价类划分法
将输入域划分为若干互不相交的子集(等价类),每个子类中的任意值对程序行为等价,只需从每类中选取一个代表值即可。该方法能有效压缩无限输入域,是功能验证最基础的用例设计技术。
| 维度 | 内容说明 |
|---|---|
| 适用场景 | 输入条件为离散值或连续值范围;存在明确的有效/无效分区;如年龄输入(1-120岁)、枚举类型选择、状态码校验。 |
| 前置条件 | 需求规格已明确输入域边界和约束;已识别至少一个有效类和一个无效类。 |
| 操作步骤 |
|
| 输入输出物 | 输入:需求规格说明、接口定义文档。输出:等价类划分表、对应测试用例集。 |
| 责任边界 | 测试工程师负责划分等价类并设计用例;产品经理确认等价类划分与需求一致;开发工程师提供输入域约束。 |
| 记录材料 | 等价类划分清单(含类编号、类型、代表值、覆盖状态);用例与等价类追溯矩阵。 |
| 异常处理 | 若某等价类无法确定代表值,标记为“待确认”并与需求方对齐;无效类用例失败不代表缺陷,需确认预期行为。 |
| 验收标准 | 每个等价类至少被一条用例覆盖;无效类覆盖率100%;用例评审通过率≥95%。 |
实战示例:用户注册年龄字段(有效1-120岁,无效<1、>120、非数字)。
有效类代表值:25;无效类代表值:0、150、"abc"。共3条用例覆盖全部4个等价类。
有效类代表值:25;无效类代表值:0、150、"abc"。共3条用例覆盖全部4个等价类。
4.2 边界值分析法
大量缺陷集中在输入域的边界附近。边界值分析在等价类划分的基础上,进一步选取边界内点、离点和上点进行测试,是对等价类划分的强化补充。
| 维度 | 内容说明 |
|---|---|
| 适用场景 | 输入或输出存在明确的数值范围、长度限制、枚举边界;如密码长度(6-16位)、数组索引、超时时间(1-60秒)。 |
| 前置条件 | 已完成等价类划分;边界值已从需求中明确(闭区间/开区间需区分)。 |
| 操作步骤 |
|
| 输入输出物 | 输入:等价类划分表、需求规格。输出:边界值分析表、边界测试用例集。 |
| 责任边界 | 测试工程师识别边界并设计用例;架构师确认边界精度(如浮点精度、时间粒度)。 |
| 记录材料 | 边界值分析清单(含边界类型、选取值、预期结果);缺陷与边界关联记录。 |
| 异常处理 | 若边界在需求中模糊(如“不超过10”未说明是否包含10),需发起需求澄清;边界用例失败应优先归因于边界条件处理逻辑。 |
| 验收标准 | 每个输入域的每个边界点至少被一条用例覆盖;边界预期结果与需求一致;用例评审通过率≥95%。 |
常见误区:将边界值分析与等价类划分割裂使用。正确做法:先划分等价类,再在有效类的边界处补充离点和上点,无效类的边界也应覆盖。
4.3 场景法
场景法基于用户真实操作流程设计用例,通过“基本流 + 备选流”的组合覆盖从开始到结束的完整业务路径,特别适合端到端的业务流程验证。
| 维度 | 内容说明 |
|---|---|
| 适用场景 | 业务流程清晰的系统(电商下单、审批流、转账交易);包含多个参与者或状态转换的功能模块。 |
| 前置条件 | 已完成业务流程建模或状态转换图;已识别基本流和至少2条备选流。 |
| 操作步骤 |
|
| 输入输出物 | 输入:业务流程图、状态转换表、用户故事。输出:场景列表、场景用例集。 |
| 责任边界 | 业务分析师提供流程与备选分支;测试工程师绘制流图并设计场景;用户体验设计师确认关键路径。 |
| 记录材料 | 业务流图(含节点和转换条件);场景与用例映射矩阵;场景执行状态跟踪表。 |
| 异常处理 | 若发现缺失的备选流,立即补充到场景列表;场景执行阻塞时记录前置条件缺失并通知业务方。 |
| 验收标准 | 基本流和每条备选流至少被一条场景覆盖;场景覆盖率达到100%;关键业务路径P0场景全部通过。 |
组合策略:当备选流数量较多时,优先将备选流与基本流组合,再选取高风险的备选流间组合。一般场景数 = 1(基本流)+ 备选流数 + 重要备选流组合数。
4.4 正交实验法
当功能受多个因素(参数)影响,每个因素又有多个水平(取值)时,正交实验法用最少的组合覆盖所有因素水平对,大幅降低用例数量同时保证覆盖度。
| 维度 | 内容说明 |
|---|---|
| 适用场景 | 配置项多、参数组合爆炸的场景(如浏览器兼容性测试、API参数组合、设备配置矩阵);因素数≥3且水平数≥2。 |
| 前置条件 | 已确定所有因素及其水平数;已选择或构造合适的正交表 Ln(mk)。 |
| 操作步骤 |
|
| 输入输出物 | 输入:因素水平表、正交表库(如L9(3⁴)、L16(4⁵))。输出:正交实验设计表、对应用例集。 |
| 责任边界 | 测试工程师选取正交表并完成映射;产品经理确认因素优先级;开发工程师提供默认值和约束。 |
| 记录材料 | 因素水平定义表;正交实验设计矩阵;组合覆盖度分析报告。 |
| 异常处理 | 若某因素水平数不匹配,采用“拟水平法”或“混合水平正交表”;正交表行数过多时可按风险优先级裁剪。 |
| 验收标准 | 所有因素水平至少出现一次;任意两个因素的所有水平组合至少被一条用例覆盖(两两覆盖);组合覆盖度 ≥ 90%。 |
示例:搜索功能测试——因素:搜索类型(精确/模糊)、排序方式(时间/热度)、结果数量(10/20/50)。
传统全组合需 2×2×3=12 条,正交法 L9(3⁴) 只需9条,覆盖所有两两组合。
传统全组合需 2×2×3=12 条,正交法 L9(3⁴) 只需9条,覆盖所有两两组合。
4.5 四种方法对比与选择建议
| 方法 | 核心思想 | 最佳适用节点 | 用例数量 | 发现缺陷类型 |
|---|---|---|---|---|
| 等价类划分 | 同类代表值 | 单输入域验证 | 少(每类1条) | 功能逻辑错误 |
| 边界值分析 | 边界极限 | 数值/长度边界 | 中(每边界2-6条) | 边界溢出/越界 |
| 场景法 | 业务流程 | 端到端路径 | 中(依分支数) | 流程中断/状态错误 |
| 正交实验法 | 组合覆盖 | 多参数组合 | 少-中(依正交表) | 参数冲突/组合遗漏 |
选择优先级建议:
1. 单输入域 → 等价类划分 + 边界值分析(必选组合)
2. 业务流程 → 场景法(主导)+ 等价类/边界值(补充)
3. 参数组合爆炸 → 正交实验法(优先)+ 边界值(补充关键边界)
4. 每轮迭代必须保证等价类划分和边界值分析全部覆盖,这是功能验证的基线。
1. 单输入域 → 等价类划分 + 边界值分析(必选组合)
2. 业务流程 → 场景法(主导)+ 等价类/边界值(补充)
3. 参数组合爆炸 → 正交实验法(优先)+ 边界值(补充关键边界)
4. 每轮迭代必须保证等价类划分和边界值分析全部覆盖,这是功能验证的基线。