用途:该协议用于处理已进入生产、预发或客户环境的缺陷,把修复拆成两件事——修代码,以及修让这个缺陷漏出去的测试系统。本地开发中正常写代码时发现的 bug 不适用本协议,因为那属于编码过程,而非测试系统失败。
八步流程:一,分析并复现需求,明确实际行为与预期行为的差异,找出最小复现路径,遇到歧义先询问用户而不是猜测;二,先写一个失败测试(red),让 bug 因正确的原因失败,此时尚不改代码;三,追踪根因,沿失败测试回溯系统,停在最小可改动位置,使测试通过;四,应用最小修复,改动尽可能小,不做顺手的重构;五,本地验证转绿,失败测试通过且其他测试未回归;六,运行完整测试套件、lint 与类型检查,捕捉间接回归;七,记录修复,提交信息与 PR 描述各用一句话说明症状、根因和修复;八,审计测试系统,这是最重要的一步,问哪个层级本应捕获该问题、为什么没有,然后修改该层使其能捕获下一个同类问题——新增测试类型、fixture、lint 规则、属性测试或契约断言。缺少第八步的修复视为不完整。
输出期望:应用该协议时返回复现测试(先从红到绿)、最小代码修复,以及一段第八步审计,说明遗漏的覆盖层和所做的补漏改动。若第八步得出“我们本无法捕获”,应继续调查,该结论几乎总是错误的,接受它会导致测试系统停滞。
限制:资料未提供安装命令、依赖或运行环境等细节;完整哲学、八步示例、审计清单和反模式见 PROTOCOL.md,应用前应先阅读。