需求分步评审
任务目标
对需求文档进行系统化、结构化评审,通过三轮独立评审逐步深入,每轮聚焦单一维度,避免评审遗漏和维度混淆。
评审原则
- 严格按轮次推进,禁止跨轮次分析
- 每轮评审必须穷尽该维度的检查要点
- 问题描述需具体,引用原文位置
- 模糊描述视为问题,不放过"大概""可能"类表述
第一轮:完整性评审
评审重点
检查需求文档是否覆盖所有必要内容,识别遗漏和缺失。
检查清单
场景覆盖
- 用户故事/用例是否完整?是否遗漏了主流程以外的分支场景?
- 异常流程、错误处理是否有描述?
- 系统边界是否清晰定义?
边界条件
- 最大/最小值、阈值是否明确?
- 空值、零值、边界值场景是否覆盖?
- 并发、压力、容量上限是否有说明?
接口定义
- API 接口的请求/响应参数是否完整?
- 参数类型、必填/可选、格式要求是否清晰?
- 错误码定义是否覆盖所有异常情况?
数据定义
- 核心数据实体是否都有描述?
- 字段含义、取值范围、默认值是否明确?
- 关联关系、依赖关系是否说明?
输出格式
【完整性问题】
[场景遗漏]
- 问题描述:<具体缺失的场景>
- 涉及章节:<文档位置>
- 建议补充:<具体补充建议>
[边界模糊]
- 问题描述:<未明确的边界条件>
- 涉及章节:<文档位置>
- 建议补充:<具体补充建议>
[接口缺失]
- 问题描述:<缺失的接口或参数>
- 涉及章节:<文档位置>
- 建议补充:<具体补充建议>
[数据缺失]
- 问题描述:<未定义的数据或字段>
- 涉及章节:<文档位置>
- 建议补充:<具体补充建议>
第二轮:一致性评审
评审重点
检查需求文档内部是否存在矛盾、冲突或不一致。
检查清单
描述一致性
- 同一功能在不同章节的描述是否一致?
- 功能名称、术语使用是否统一?
- 时序/流程描述与状态机定义是否匹配?
数据一致性
- 同一字段在不同地方的定义是否相同?
- 数据来源和计算逻辑是否自洽?
- 枚举值、状态码定义是否唯一?
约束一致性
- 不同章节对同一约束的描述是否矛盾?
- 性能要求、响应时间等指标是否一致?
- 安全要求、权限定义是否统一?
引用一致性
- 图表、流程图与文字描述是否对应?
- 上下游接口依赖描述是否一致?
- 版本号、编号等标识是否正确?
输出格式
【一致性问题】
[描述冲突]
- 问题描述:<冲突的具体内容>
- 冲突位置:
- 位置A:<章节A的描述>
- 位置B:<章节B的描述>
- 判定依据:<判定为冲突的理由>
- 建议统一:<统一的建议方案>
[数据矛盾]
- 问题描述:<矛盾的数据定义>
- 矛盾位置:
- 位置A:<章节A的定义>
- 位置B:<章节B的定义>
- 建议统一:<统一的建议方案>
[约束冲突]
- 问题描述:<冲突的约束条件>
- 冲突位置:<两个冲突的位置>
- 建议统一:<统一的建议方案>
第三轮:可测试性评审
评审重点
检查需求描述是否足够具体、量化、可验证。
检查清单
量化程度
- 性能指标是否有明确数值?(如:响应时间 < 200ms)
- 成功率、错误率是否有可测量的标准?
- 数据量级、并发量是否具体?(如:支持 1000 QPS)
可验证性
- 描述是否可以被明确的测试用例验证?
- 是否存在"用户友好""体验良好"等主观描述?
- 是否存在"适度""合理"等模糊形容词?
边界清晰度
- 边界条件是否有明确的通过/失败判定标准?
- 异常场景的预期行为是否可描述?
- 状态转换是否有明确触发条件和结果?
独立性
- 每个需求点是否可以独立测试?
- 是否存在无法隔离的耦合需求?
- 前置条件、依赖关系是否明确?
输出格式
【可测试性问题】
[模糊描述]
- 问题描述:<不可量化的描述原文>
- 涉及章节:<文档位置>
- 模糊原因:<为什么无法测试>
- 量化建议:<如何改为可测试的描述>
[主观表述]
- 问题描述:<主观性表述原文>
- 涉及章节:<文档位置>
- 问题分析:<为什么不可测试>
- 客观化建议:<改为客观可验证的描述>
[判定标准缺失]
- 问题描述:<缺少判定标准的需求>
- 涉及章节:<文档位置>
- 缺失内容:<缺少什么判定条件>
- 补充建议:<如何补充判定标准>
[耦合问题]
- 问题描述:<难以独立测试的需求>
- 涉及章节:<文档位置>
- 耦合关系:<与哪些需求耦合>
- 拆分建议:<如何拆分为独立需求>
使用示例
示例 1:功能需求评审
场景/输入:用户提供了一份电商订单模块的需求文档
执行流程:
- 第一轮完整性评审:检查场景覆盖、边界条件、接口定义、数据定义
- 第二轮一致性评审:检查描述冲突、数据矛盾、约束冲突
- 第三轮可测试性评审:检查模糊描述、主观表述、判定标准
预期产出:
【完整性问题】
[场景遗漏]
- 问题描述:缺少订单取消后的库存释放场景
- 涉及章节:3.2 订单状态流转
- 建议补充:增加"已支付订单取消"的库存返还逻辑
[边界模糊]
- 问题描述:未明确单笔订单商品数量上限
- 涉及章节:2.1 商品加入购物车
- 建议补充:单笔订单商品种类不超过 99 件
...
【一致性问题】
[描述冲突]
- 问题描述:订单金额计算逻辑矛盾
- 冲突位置:
- 位置A:3.1 订单金额 = 商品总价 + 运费
- 位置B:3.3 订单金额 = 商品总价(已含运费)
- 判定依据:位置A和位置B对运费是否计入订单金额定义不一致
- 建议统一:统一为"商品总价(已含运费),运费不再单独计算"
...
【可测试性问题】
[模糊描述]
- 问题描述:"页面加载速度要快"
- 涉及章节:4.1 性能要求
- 模糊原因:无法量化验证
- 量化建议:改为"首页加载时间 < 1.5秒(4G网络下)"
示例 2:接口需求评审
场景/输入:用户提供了一份支付接口的需求文档
执行要点:
- 完整性:检查所有支付渠道的接口定义是否完整
- 一致性:检查不同渠道的接口参数、返回值格式是否统一
- 可测试性:检查错误码定义、响应时间要求是否可量化
示例 3:需求片段评审
场景/输入:用户提供需求片段进行局部评审
执行要点:
- 明确告知用户这是局部评审,完整性评审受限
- 一致性和可测试性可正常执行
- 提醒用户需要关联上下文才能做完整评审
注意事项
- 每轮评审必须独立完成后再进入下一轮
- 问题数量不限,穷尽检查是核心原则
- 建议补充应具体可操作,避免泛泛而谈
- 当发现上一轮次影响后续评审时,在对应轮次中标注"与第X轮相关"