验收标准是什么
验收标准描述一个需求在什么条件下算完成,是开发、测试与业务三方共同的判定依据。常用 Given 前置条件、When 触发动作、Then 可观察结果的格式逐条书写,每条只覆盖一条规则。它与“完成的定义”不同:验收标准面向单个需求,完成的定义面向所有工作项。写得好的验收标准应当可自动化验证,且异常与边界条件与正常路径同等重要。
示例
示例
场景:查询不存在的订单
已知 用户已登录,订单号 999999 不存在
当 用户按订单号查询
则 页面提示“订单不存在”,且不返回其他用户的数据
场景:查询他人订单
已知 用户 A 已登录,订单 1001 属于用户 B
当 用户 A 按订单号 1001 查询
则 返回无权限提示,访问日志记录该次尝试基本信息
| 书写要点 | 一条标准对应一条规则,结果可观察、可自动化 |
|---|---|
| 覆盖范围 | 正常路径、异常路径、边界值与并发冲突 |
| 与 DoD 区别 | 验收标准针对单个需求;完成的定义面向全部工作项 |
| 责任人 | 业务与测试共同确认,不由开发单方编写 |
| 关联产物 | 测试用例、自动化脚本、需求追踪矩阵 |
典型使用场景
- 迭代开始前澄清需求:把含糊描述转成几条可判定的场景
- 测试用例设计:每条验收标准直接映射为一组测试用例
- 验收阶段判定:双方按同一条标准核对,减少主观争论
- 自动化回归:把验收标准写成可直接执行的 Gherkin 场景
- 变更影响分析:修改规则时定位受影响的验收标准与用例
- 外包交付验收:条款化标准作为付款与验收依据
常见反例与改写
| 反例 | 问题 | 改写方向 |
|---|---|---|
| 显示正确 | 无法判定,标准不可验证 | 列出具体字段与格式要求 |
| 系统要处理大数据量 | 缺少量化边界与时间窗口 | 给出数据量与处理时限 |
| 发生错误时给出提示 | 未说明错误类型与文案 | 区分校验失败、无权限、系统异常三类响应 |
| 管理员可以管理用户 | 范围过大且无判定条件 | 拆成启用、停用、改角色等多条标准 |
验收标准与测试用例不是一回事:标准描述业务上算不算完成,用例描述具体怎么验证,同一条标准可能对应多条用例。
只写正常路径的验收标准,会把边界与异常推给测试阶段临时定义,导致临上线时频繁改需求口径。