用途
deliver-edge-cases 用于为某个功能系统化地编录边界场景(edge cases)。正常路径(happy path)通常会被充分定义,而边界场景往往直到生产环境才被发现,进而导致缺陷、糟糕的用户体验和支持负担。提前记录边界场景,可以确保工程团队有意识地处理它们,并让 QA 明确需要测试什么。
该技能的核心目标是枚举失败模式、竞态条件、超时以及边界或限制场景——即所有可能出错的情况——并为每一种情况定义恢复路径。
主要能力
- 定义功能范围:明确正在分析的功能或流程,因为边界场景与上下文强相关,同一输入在某个功能中有效、在另一个功能中可能无效。
- 输入校验遍历:考虑每一种用户输入,例如为空、过长、格式错误、包含特殊字符,以及有效值的最小与最大值。
- 边界条件探索:找出可接受范围的边缘,例如字段接受 1–100 时测试 0、1、100、101,并考虑分页边界、超时阈值和速率限制。
- 错误状态映射:识别网络失败、权限拒绝、资源未找到、并发修改、会话过期等,并记录场景与预期行为。
- 并发问题考虑:两个用户同时操作、用户双击、加载与保存之间数据变化等竞态条件。
- 恢复路径定义:为每个错误指定用户如何恢复,包括看到什么消息、能否重试、数据是否保留。
- 按概率与影响排序:高概率且高影响的场景需要稳健处理,罕见且低影响的场景可能只需优雅失败。
使用方式
当被要求记录边界场景时,按以下步骤执行:定义功能范围;遍历输入校验;探索边界条件;映射错误状态;考虑并发问题;定义恢复路径;按概率与影响排序。
输出使用 references/TEMPLATE.md 中的模板进行结构化。完整的边界场景目录应填写模板的每个部分:功能概览、边界场景分类、错误消息、恢复路径和测试场景。
适用场景
- 需要枚举失败模式、竞态条件、超时以及边界或限制场景,并为每种情况定义恢复路径时。
- 在工程开始前的功能规格编写阶段。
- 准备 QA 测试计划时。
- 发现生产缺陷后,用于防止类似问题。
- 审查 PRD 或用户故事完整性时。
- 上线前,确保错误状态已完成设计。
限制与不适用场景
- 如果需要的是交接用的、故事范围内的 Given/When/Then 检查,应使用 deliver-acceptance-criteria;本技能编录的是整个功能的失败面。
- 如果功能规格尚不足以枚举输入、状态和限制,应先用 deliver-prd。
- 如果生产事故已经发生、希望沉淀经验,应使用 iterate-lessons-log,然后用新案例更新本目录。
- 如果需要的是上线就绪协调而非失败分析,应使用 deliver-launch-checklist。
质量检查
定稿前需确认:所有用户输入都有校验边界场景记录;边界条件被明确列出;网络/系统失败场景已覆盖;每个错误状态都有定义好的用户可见消息;恢复路径已指定(而不仅是错误检测);边界场景已按概率与影响排序。
示例
完整示例见 references/EXAMPLE.md。