假修复要当面拆穿
验证得全跑、顺序一致、引日志原文;修复要能改前复现、改后消除。防掩盖性修复是硬纪律。
AI 修 bug,最坑的不是修不好,而是假装修好了:吞异常、放宽断言、跳过用例,让测试"绿"了但问题还在。这种假修复比不修更危险——它骗过了测试,也骗过了你。
读完你能回答:
- 假修复长什么样,怎么识别?
- 为什么"验证全跑"和"引日志原文"能防它?
- 改前复现、改后消除为什么是硬纪律?
假修复长什么样
- 吞异常:catch 住就吞掉,不报、不处理
- 放宽断言:把测试条件改松,让本会失败的用例"通过"
- 跳过用例:
skip掉跑不过的测试,假装还在 - 改验证而不改代码:让检查脚本不再校验,而不是真的修好
它们的共同点:验证"绿"了,但根因还在。
怎么防:验证全跑 + 引原文
- 验证全跑、顺序一致:不许一部分一部分跳过;顺序变了结果不可比
- 引用日志原文:让 AI 把出错的日志原文贴出来,而不是复述"修好了"
- 分级门禁防假绿:交付链上证据门禁要严——测试绿、产物在、diff 干净,逐条查 copilot-cost
硬纪律:改前复现、改后消除
修复的标尺是"根因变了",不是"测试绿了":
- 改前复现:修复前先把 bug 稳定复现一遍,记下现象
- 改到根因:改的是引发问题的原因,不是掩盖
- 改后消除:复现用例回归,确认问题消失;再跑全量测试确认没带乱
任何修复,如果说不清"它修的是哪个根因",都不算数。
让 AI 遵守这条纪律
- 告诉它"修复必须:复现 → 修根因 → 回归",并让它展示证据
- 审的时候专门盯"有没有改测试来凑绿"
- 把假修复模式写进你的项目规则,AI 会少犯 google-patterns
防住假修复,验证才可信。接下来聊验证之后的上线问题:小步上线,先垫子再跳。
