首页/开发/系统分析与架构设计速查/验收标准与 Given-When-Then
需求分析与建模61 条

验收标准与 Given-When-Then

验收标准描述故事在什么条件下算完成,常用 Given 前置条件、When 动作、Then 可观察结果的格式,是开发、测试与业务对齐的判定依据。

验收标准是什么

验收标准描述一个需求在什么条件下算完成,是开发、测试与业务三方共同的判定依据。常用 Given 前置条件、When 触发动作、Then 可观察结果的格式逐条书写,每条只覆盖一条规则。它与“完成的定义”不同:验收标准面向单个需求,完成的定义面向所有工作项。写得好的验收标准应当可自动化验证,且异常与边界条件与正常路径同等重要。

示例

示例
场景:查询不存在的订单
已知 用户已登录,订单号 999999 不存在
当 用户按订单号查询
则 页面提示“订单不存在”,且不返回其他用户的数据

场景:查询他人订单
已知 用户 A 已登录,订单 1001 属于用户 B
当 用户 A 按订单号 1001 查询
则 返回无权限提示,访问日志记录该次尝试

基本信息

书写要点一条标准对应一条规则,结果可观察、可自动化
覆盖范围正常路径、异常路径、边界值与并发冲突
与 DoD 区别验收标准针对单个需求;完成的定义面向全部工作项
责任人业务与测试共同确认,不由开发单方编写
关联产物测试用例、自动化脚本、需求追踪矩阵

典型使用场景

  • 迭代开始前澄清需求:把含糊描述转成几条可判定的场景
  • 测试用例设计:每条验收标准直接映射为一组测试用例
  • 验收阶段判定:双方按同一条标准核对,减少主观争论
  • 自动化回归:把验收标准写成可直接执行的 Gherkin 场景
  • 变更影响分析:修改规则时定位受影响的验收标准与用例
  • 外包交付验收:条款化标准作为付款与验收依据

常见反例与改写

反例问题改写方向
显示正确无法判定,标准不可验证列出具体字段与格式要求
系统要处理大数据量缺少量化边界与时间窗口给出数据量与处理时限
发生错误时给出提示未说明错误类型与文案区分校验失败、无权限、系统异常三类响应
管理员可以管理用户范围过大且无判定条件拆成启用、停用、改角色等多条标准
验收标准与测试用例不是一回事:标准描述业务上算不算完成,用例描述具体怎么验证,同一条标准可能对应多条用例。
只写正常路径的验收标准,会把边界与异常推给测试阶段临时定义,导致临上线时频繁改需求口径。

易错点

  • 验收标准只写正常路径,异常与边界留到测试阶段补,实现与测试口径反复变化
  • 标准含糊(“显示正确”“体验良好”),验收时各说各话,交付反复反复
  • 由开发单方编写验收标准,业务未确认,验收现场才暴露出理解偏差
  • 把多条规则塞进一个场景,失败时无法定位是哪条规则不满足

数据来源与参考

  • Gojko Adzic《Specification by Example》
  • Cucumber 文档(cucumber.io)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌