用途:把“又改了一轮”变成可检查的进展——哪个解释被证实或排除、补丁为何修到原因、哪些行为已复测。方法依据 Andreas Zeller 的 Introduction to Debugging 完整章。不需要先装 QBS 或下载原书。
主要能力:从失败建立基线,读代码、测试与复现材料,记录预期依据、实际行为、触发输入、环境及可重跑命令,优先把原失败写成测试并保留成功对照。无法复现时先查版本、输入或环境差异,输出已观察事实与下一项区分证据;预期行为不明确先澄清,偶发问题保留条件与频率。
用实验改变判断:依据失败与成功的差异提出解释,存在竞争解释时选择能区分它们的输入、断点或局部断言;实验前写预测,运行后记录观察并更新判断。临时插桩针对单一判断,诊断性改动与最终修复分开;未运行的实验写成待执行,不补造结果。
诊断与修复:修复前说明因果(缺陷如何使状态或控制流失误并传播到失败)与错误性(违反哪条已确认约束、改动为何覆盖相关输入而非特判)。证据不足就交付当前诊断状态及下一实验。授权修复时做聚焦补丁,复跑原失败、相关原成功及边界测试,查同类错误、补回归测试、移除临时探针。
交付与验收:给出复现命令、原失败与预期依据、有效实验的预测与观察、因果链与补丁位置、实跑结果及剩余未解释症状。验收看他人能否复现关键判断、修复是否消除原失败并保住正确行为。
限制:不强制填表、凑假设数或增加实验轮次;提交、发布或关闭外部问题遵循当前任务授权,书中收尾建议不扩大权限;格式完整或静态检查通过不等于已完成运行验证。