修复 Bug:复现、定位、修复、回归

所属教程:Claude Code 从入门到大师级完整教程 预计阅读:26 分钟

修 Bug 最忌讳"看到报错就试改"。稳定的修复流程是先复现、再定位根因、最小修复、回归验证、留下证据。本节把这套流程拆成可照做的步骤与检查点。

一、五阶段修复流程

阶段目标关键产出
1 稳定复现用最小步骤稳定触发问题复现条件、输入、预期与实际差异
2 定位根因从现象追到代码层原因报错栈、相关文件与调用链、根因假设
3 最小修复只改必要部分解决根因最小 diff,不夹带功能改动
4 回归验证修复生效且不破坏既有行为新增回归测试、全量测试结果
5 证据交付说清根因、改动与验证方式根因说明、改动清单、验证命令与结果

二、先复现,再动手

三、定位根因而非压制症状

四、最小修复与回归测试

  1. 先补一个能复现该缺陷的测试(先失败,即 red)。
  2. 实施最小修复,使该测试通过(转绿,即 green)。
  3. 运行相关测试与构建,确认既有用例不回归。
  4. 通过只读的版本控制命令核对改动差异与文件清单,确认没有夹带无关重构。

让代理直接给出可运行的验证命令及其输出作为证据,而不是只口头声明"已修好"。

五、交付说明应包含什么

常见误区正确做法
未复现就修改先建立稳定复现再改
只改报错处、不追上游沿调用链定位根因
顺手重构无关代码修复与重构分开提交
修复后不跑全量回归补回归测试并跑相关测试集

六、小白照抄:从报错到修复的对话顺序

  1. 先投喂完整现场:完整报错文本、复现步骤、环境与版本、输入数据样例、预期与实际差异;不要只贴一句"报错了"。
  2. 要求先复现后诊断:让代理先运行现有测试或最小复现,确认问题可被稳定触发;无法复现时先补齐复现脚本或样例数据。
  3. 只读定位根因:按 Shift+Tab 进入计划模式,请代理分析报错栈与调用链,给出根因假设与候选修复方案,先不改代码。
  4. 最小修复:确认根因后退出只读分析,只改解决根因所必需的代码,不顺带重构与改风格。
  5. 回归验证:先补复现失败的用例再使其转绿,运行相关测试集与构建;要求代理把执行命令和结果输出贴出来作为证据。
  6. 人工复核后再收口:对运行中的应用可用 /verify 在代理自检之外做人工复核;确认无副作用、无密钥与调试残留后,再由人决定提交与回退预案。

七、"修好了"的证据清单

八、FAQ 与练习

问题处理建议
时好时坏、无法稳定复现先固定随机种子、排序顺序、并发时序与数据状态;记录触发频率与条件,优先写最小复现用例,不盲目改码。
多个报错互相纠缠按依赖顺序先修阻断根因,验证通过后再处理次生现象;一次只聚焦一个根因,避免多改混杂。
代理反复改但测试仍红要求它回到计划模式重新分析假设;每轮只改一处并说明验证方式,卡住时用检查点或 /rewind 回到最近可运行状态,不要在错误路径上连续叠加补丁。
修复引入了新的小问题把新问题登记为独立缺陷,原修复先保证回归通过;修复与新问题分任务推进。
本节小结与下一节预告

本节掌握了修 Bug 的五阶段流程、分步对话顺序、证据清单与常见误区。下一节讲新增功能:先出设计方案、再小步实现,并为功能配套测试与验收标准。

← 上一节:MCP 连接器:接入数据库、浏览器与内部工具  下一节:新增功能:设计先行、小步实现、配套测试 →

本教程目录

返回教程列表 · AI最前沿首页 · AI百科