第2章 需求条目的核心要素:用户角色、触发条件、行为步骤、期望结果、异常分支

一个可执行、可验证的需求条目,必须包含五个核心要素。缺少任意一个,都会导致开发与测试环节的歧义、返工或遗漏。

核心公式:
需求条目 = 用户角色 + 触发条件 + 行为步骤 + 期望结果 + 异常分支

2.1 五要素拆解说明

要素定义常见错误验收价值
用户角色执行操作或使用功能的具体人员/系统身份写“用户”太宽泛,未区分管理员、编辑、游客明确权限边界与功能归属
触发条件启动该需求条目的前置状态或事件遗漏前置条件,导致流程断裂提供测试用例的入口条件
行为步骤用户或系统为达成目标而执行的动作序列步骤粒度忽大忽小,混入UI细节指导开发实现和用例编写
期望结果行为执行后系统应产生的可观察、可测量输出写“正常显示”无量化标准验收通过/不通过的唯一判据
异常分支因输入无效、网络中断、权限不足等导致的非正常流程只写主流程,异常完全空置防止生产环境崩溃与数据错乱

2.2 五要素在PRD中的典型结构

标准化写法建议使用“四段式+异常块”格式,每一条目独立编号:

PRD-REQ-0201 | 用户登录失败锁定机制
─────────────────────────────────────
用户角色:已注册但连续输错密码的用户
触发条件:用户在登录页面点击“登录”按钮时密码错误次数 ≥ 3
行为步骤:
  1. 系统校验密码错误次数
  2. 若次数 ≥ 3,立即锁定账号状态
  3. 记录当前锁定时间戳
  4. 返回“账号已被临时锁定,请30分钟后再试”
期望结果:
  - 账号状态变为“锁定”,锁定时间精确到秒
  - 前端展示锁定时长倒计时
异常分支:
  - 若用户请求发送验证码解锁,需校验手机号是否匹配(参见PRD-REQ-0202)
  - 后端在锁定期间拒绝所有登录接口调用,返回错误码 423
技巧: 期望结果中避免“应该”“可能”等模糊词,使用“返回XXXX”“字段值为YYYY”“弹窗标题为ZZZZ”等可验证描述。

2.3 五要素与用户场景的对应关系

需求条目不是凭空编造,而是从用户场景中精准提取。下面用“供应链库存预警”场景展示映射方法:

  1. 场景描述:仓库管理员发现某物料库存低于安全水位,需要自动触发采购申请。
  2. 映射为五要素:
    • 用户角色 → 仓库管理员(权限:查看库存、提交采购申请)
    • 触发条件 → 系统每日定时扫描所有物料的库存量 < 安全库存阈值
    • 行为步骤 → ① 扫描物料表 ② 对比库存与阈值 ③ 生成预警记录 ④ 自动创建采购申请草稿 ⑤ 通知管理员审核
    • 期望结果 → 预警表中新增一条记录,采购申请草稿状态为“待审核”,通知发送至管理员消息中心
    • 异常分支 → 物料已被停用则跳过;采购申请草稿因预算超限创建失败则记录错误日志并人工干预
常见陷阱: 异常分支不要只写“其他情况”。每个异常分支必须对应一个具体的可观察结果,例如“返回错误码E001”“弹窗提示‘库存数据异常’”“不发送通知但写入失败日志”。没有异常行为的需求条目,相当于没有兜底逻辑的死代码。

2.4 五要素协作关系图

下图展示了五个要素如何在业务流程中相互连接,从角色出发,通过触发条件激活行为步骤,最终走向期望结果或异常分支:

需求条目五要素协作图 用户角色 谁执行? (仓库管理员、游客、API调用方) 触发条件 什么事件/状态启动? (定时扫描、用户点击、接口回调) 行为步骤 做什么? (1.校验 → 2.比对 → 3.创建) 期望 正常输出 异常分支 (降级、错误码、重试) 五要素串联:用户角色 → 触发条件 → 行为步骤 → 期望结果(异常分支为兜底)

2.5 模板:五要素检查清单

每次编写需求条目时,逐一对照以下项目确保完整性:

  • ✅ 用户角色:是否唯一且可识别?是否区分了普通用户/管理员/系统?
  • ✅ 触发条件:是定时事件、用户操作还是系统回调?是否有精确的数值/状态表达式?
  • ✅ 行为步骤:步骤是否按时间顺序编排?每步是否只描述一个动作?
  • ✅ 期望结果:结果是否可观察(界面、数据、日志)?是否有可测量的指标?
  • ✅ 异常分支:至少列出2个典型异常(输入非法、网络超时、权限不足、资源不存在)。
实践任务: 选择你负责的一个功能点,按本节五要素模板重写一条需求条目,然后与团队成员评审差异。你会发现“期望结果”和“异常分支”是争议最多的地方,也是质量提升最快的切入点。