第四章 功能逻辑评审节点:流程正确性、边界条件、异常分支、状态机覆盖

4.1 适用场景

本节点适用于所有包含逻辑判断、数据流转、多状态切换或用户交互流程的PRD评审。典型场景包括但不限于:

  • 涉及业务审批流转(如订单、工单、审批链)的功能模块
  • 输入参数存在取值范围、类型限制或组合约束的接口设计
  • 需要处理超时、重试、幂等、并发等非功能逻辑的场景
  • 存在有限状态且状态间存在切换条件的领域实体(如订单状态、任务状态)
  • 用户操作路径存在多分支倒回或异常退出路径的交互流程
🔍 识别标志: 当PRD中出现“如果……则……否则……”或“当状态为X时可执行Y操作”这类描述时,必须进入功能逻辑评审节点。

4.2 前置条件

  • PRD已通过需求合理性评审(第3章),需求无歧义且验收标准初版已锁定。
  • 产品经理已提供流程图(泳道图/流程图)和状态机图(如有),或至少给出文本化的分支逻辑描述。
  • 参与评审的开发、测试、QA已提前24h收到PRD及相关附件,并完成个人预审。
  • 评审环境(共享屏幕、会议工具、白板/绘图工具)已就绪,可现场绘制或修改逻辑图。

4.3 操作步骤

功能逻辑评审分为四个阶段,按固定流程推进:

阶段 步骤 负责人 注意事项
Step 1:流程正确性检查
  1. 逐环节朗读流程图上的操作节点,确认节点间有向边的含义(数据流向/控制流向)
  2. 检查是否存在死循环、断链、不可达节点
  3. 确认分支条件覆盖了所有业务约束(如:if amount > 1000 后必须有 else 或 默认路径)
产品经理(讲解)+ 架构师(交叉验证) 使用不同颜色标记已走读路径
Step 2:边界条件覆盖
  1. 对每个输入/输出参数列举等价类与边界值(最小、最大、空、特殊字符、超长)
  2. 检查业务流程中数值类型的分界点(如:金额=0、库存=1、时间临界值)
  3. 验证边界处是否触发预期的流程分支或错误提示
测试负责人 建议使用边界值分析表现场记录
Step 3:异常分支穷举
  1. 列举所有可能的外部异常(网络超时、第三方接口失败、数据库锁冲突)
  2. 列举所有内部异常(数据格式错误、状态不匹配、权限不足)
  3. 确认每个异常是否有兜底处理(重试/报错/回滚/降级)
测试 + 开发(PM确认异常文案) 异常处理需输出明确的错误码或用户提示
Step 4:状态机覆盖率检查
  1. 绘制状态转换图(或回顾已有状态机图)
  2. 标记所有有效状态及允许转换的目标状态
  3. 检查是否遗漏非法转换(如从“已取消”不能直接变更为“已支付”)
  4. 覆盖所有状态的生命周期终结条件
PM + 开发架构师 使用状态机表辅助检查(见4.5节示例)
💡 评审关键节奏: 每阶段结束后需由记录人当场朗读确认结论,再进入下一阶段。避免所有问题积压到最后才统一处理。

4.4 输入输出物

输入物 责任人 输出物 责任人
PRD(含流程图、状态机图或文本逻辑描述) 产品经理 评审通过的PRD(标注逻辑变更点) 产品经理
接口定义文档(含参数范围、必填可选) 后端开发 逻辑评审记录表(含边界值、异常用例、状态转换表) 记录人(通常为测试或QA)
外部依赖说明(第三方API超时/异常规范) 架构师 问题决议清单(当场未达成一致的问题需指定owner和deadline) 会议主持人

4.5 责任边界

  • 产品经理: 必须确保所有分支逻辑都有显性文字描述,不能仅靠口头说明;现场接受质疑后需在24h内更新PRD并再次发送给评审组。
  • 开发工程师: 负责识别边界条件中的技术实现难点(如并发竞争、分布式一致性问题),并提供可行方案供PM决策。
  • 测试工程师: 独立穷举异常场景,不依赖PM提供的测试用例;对状态合法性负主要检验责任。
  • 架构师: 对流程正确性(死循环、链路熔断)负最终把关责任。

4.6 记录材料

评审过程中需实时填写以下记录表格(建议使用共享在线表格):

问题编号 逻辑所在流程节点 问题类型 问题描述 决议 负责人 截止日期
LOG-001 订单创建 → 支付检测 边界条件 当订单金额为0时,是否直接跳过支付?当前流程未定义0元订单处理路径 PM确认:0元订单直接进入已支付状态 小王(PM) 2025-05-10
LOG-002 退款申请 → 审批 状态机遗漏 退款中状态是否可以撤回?当前状态机缺失“退款撤回”转换边 增加“撤回”动作,状态从“退款中”回到“已支付” 小李(PM) 2025-05-11
LOG-003 短信发送 异常分支 第三方短信接口超时后默认重试2次,若依然失败未定义降级行为 改为重试1次后切换到备用供应商接口 张工(后端) 2025-05-12

4.7 异常处理

  • 当场无法达成共识的逻辑问题: 由主持人标记为“待决议”,指定PM在48h内输出方案并同步给全体评审成员;未决议前不允许进入下一开发阶段。
  • 评审超时: 若单章逻辑评审超过预估时间(通常为60min),可拆分剩余逻辑到单独追加的短评审会,但需收齐已评审部分的结论。
  • 人对逻辑理解产生明显分歧: 必须现场绘制临时流程图或状态机图(使用白板/绘图工具),以视觉化方式统一认知,文字讨论不得超过5分钟。
  • 发现严重悖论逻辑: 如流程存在死循环或状态永远无法到达,立即中止该章节评审,要求PM重构逻辑后再申请补评。
⚠️ 常见陷阱: 不要默认“正常流程正确就行,异常先不管”。异常分支是线上事故的主要来源。必须确保每个异常分支都写入了PRD的验收标准中。

4.8 验收标准

完成本章节点评审后,需达到以下全部条件方可视为通过:

  1. 所有流程节点(主路径+分支路径)均被逐字朗读并确认无歧义,标注出至少一个完整路径。
  2. 每个参数/输入域的边界值(至少包含最小值、最大值、空值、特殊值)均已被测试用例覆盖。
  3. 每个外部调用/内部处理步骤至少列举了一个异常分支,并明确了该分支的预期行为。
  4. 状态机(如有)的所有合法转换边均被列出,且无非法转换边的存在。
  5. 所有未当场结论的问题均已登记编号并指定负责人和截止日期。
  6. 评审记录表已归档至项目共享文档库,可供后续开发和测试查阅。

4.9 功能逻辑评审流程总图

下图为本章评审节点的整体操作脉络,各阶段按固定顺序执行,不可颠倒或跳跃:

功能逻辑评审节点执行流程 流程正确性检查 边界条件覆盖 异常分支穷举 状态机覆盖 全部问题已确认? 未通过 通过 ✅ 评审结束后必须归档(输入/输出物+记录表+问题决议清单)至项目文档库 未经归档的评审结论不可作为开发依据