3. 验收标准与需求文档的关系:从用户故事到验收条件

3.1 适用场景

  • 团队采用用户故事(User Story)描述功能需求,需要将模糊的故事转化为可验证、可衡量的验收条件。
  • 需求文档(如 PRD、特性描述)包含多个用户故事,且QA、开发、产品三方需对齐“完成”的定义。
  • 增量交付场景中,每个迭代的每个用户故事都必须附带一条或多条验收条件,作为“Done”的判定依据。

3.2 前置条件

  1. 已有一份经过PO(Product Owner)确认的用户故事列表,故事满足INVEST原则(Independent, Negotiable, Valuable, Estimable, Small, Testable)。
  2. 团队已统一验收条件的书写模板(例如GWT格式:Given / When / Then)。
  3. 项目已建立需求-验收条件双向追溯机制(如需求管理工具中关联字段或Excel追踪矩阵)。

3.3 操作步骤

Step 1:解析用户故事 — 阅读故事标题、描述(As a… I want… So that…)以及附件/原型,识别故事中的核心角色、动作、业务价值。

Step 2:拆分业务场景 — 针对故事覆盖的正常流程、可选流程、异常流程,列出具体场景列表。

Step 3:撰写验收条件 — 每个场景用“Given … When … Then …”结构化描述前置条件、触发事件、预期结果。

Step 4:补充可衡量性 — 将定性描述(如“响应快”)转化为量化指标(如“响应时间 < 200ms”),确保每个Then可以明确通过测试判定。

Step 5:评审与确认 — PO、QA、开发共同评审验收条件,确保无遗漏、无歧义、可测试。

Step 6:关联到需求文档 — 将验收条件ID回填到用户故事卡片/需求管理工具,建立追踪链接。

3.4 输入输出物

类型物项名称格式/载体
输入用户故事列表Jira/Confluence/Excel需求表格
输入原型/业务规则文档PDF、Figma链接、结构化文档
输出验收条件清单与故事关联的表格或工具字段
输出需求-验收条件追溯矩阵Excel / ALM工具追踪记录

3.5 责任边界

  • 产品负责人(PO):提供清晰、完整的用户故事,并最终确认验收条件是否满足业务意图。
  • 业务分析师:协助PO拆分场景,撰写初步验收条件草稿。
  • 测试工程师:从可测性角度审查验收条件,补充边界值和异常场景的Given。
  • 开发工程师:确认验收条件在技术实现上的可行性,必要时提出简化建议。

3.6 记录材料

  1. 用户故事卡片(物理或电子)—— 包含故事ID、标题、描述、验收条件ID列表。
  2. 验收条件详情表 —— 每行一条验收条件,含所属故事ID、场景名称、GWT文本、可衡量指标(时间/数量/状态等)。
  3. 追溯矩阵报告 —— 展示每个用户故事是否已覆盖所有验收条件,以及每个验收条件对应哪个测试用例。

3.7 异常处理

异常场景处理方式
用户故事过于模糊,无法拆出具体场景返回PO补充分支流程、业务规则,或组织需求澄清会议
验收条件之间存在冲突(如不同场景对同一状态要求不同)拉通相关干系人(PO、开发、测试)协商统一判定标准
验收条件不可测试(如“界面美观”)要求PO替换为可量化描述(如“页面加载时间<2s”或“符合XX设计规范”)
故事过大,验收条件超过7条建议将故事拆分为多个小故事,每个故事对应<=5条验收条件

3.8 验收标准组织(映射结构)

下图展示了从一条用户故事到多条验收条件的典型映射关系,以及验收条件内部GWT三要素与可衡量指标的嵌入方式。

用户故事 → 验收条件映射结构 用户故事 As a 买家, I want 搜索商品筛选, So that 快速定位心仪商品 拆分业务场景(正常/异常/边界) 场景1:正常搜索结果 Given 已输入关键词 场景2:无匹配结果 Given 关键词为空 场景3:分页翻页 Given 结果大于一页 验收条件 AC001 Given 已输入关键词; When 点击搜索; Then 列表返回≤50条且均包含关键词 验收条件 AC002 Given 关键词为空; When 点击搜索; Then 显示“请输入搜索词”提示 验收条件 AC003 Given 结果>一页; When 点击下一页; Then 第二页载入<1s 💡 可衡量性嵌入: 验收条件 AC001 中“均包含关键词”可通过字符串匹配精确验证; AC003 中“<1s”为量化指标,绑定性能测试用例。

实践建议:在需求工具中为每个验收条件增加“Metric”字段,填入可量化判定准则。例如“list.length ≥ 1”、“response_time ≤ 500ms”。这样QA可直接依据该字段编写自动化断言,无需二次解读业务文档。

3.9 验收条件书写示例(GWT + 指标)

以下是一条完整的验收条件,包含可衡量指标嵌入:

验收条件 ID: AC-015
所属故事: US-003-搜索商品筛选
场景: 正常搜索并应用价格排序
Given: 用户已登录,且搜索关键词为“电动牙刷”
When: 用户点击“按价格从低到高”排序按钮
Then:
  - 搜索结果列表按价格升序排列
  - 列表第一项价格 <= 列表最后一项价格
  - 页面渲染时间 < 2s(性能)

3.10 常见误区与避坑

  • 验收条件等于测试用例:验收条件是业务行为描述,测试用例包含具体输入数据、环境配置;验收条件应保持业务语言,不可测试用例化。
  • 一条验收条件覆盖多个场景:推荐“一个场景 → 一个验收条件”,便于独立验证和出错定位。
  • 忽略异常验收条件:用户故事中的异常路径(网络超时、无权限、空数据)必须分别写出验收条件,否则开发很可能遗漏处理。
  • 未绑定可衡量指标:仅写“响应快”属于主观描述,必须转化为可计量的阈值(如“响应时间 < 1s”)。