Bug 诊断
先把问题转成可核对的四项信息:触发条件、实际结果、预期结果、已知影响范围。缺失项能从代码或日志推断时继续调查,并标记为假设。
建立证据链
- 能复现时使用最小输入复现,并保存关键错误、状态或输出。
- 从最接近用户症状的入口沿调用链追踪数据与状态变化。
- 对比一个正常路径或相近实现,寻找输入、权限、配置、状态和异常处理的差异。
- 同时保留少量可证伪假设;每获取一条证据就排除或加强对应假设。
确认根因
根因应能解释触发条件、观察到的症状和影响范围。只发现一个报错位置、空指针或失败请求,还不足以证明它是根因。
修复前说明准备改变的行为和最合适的回归验证。若外部系统或数据不可用,区分已经由代码证明的部分和仍需联调确认的部分。
诊断完成后,进入 change-implementation;若用户只要求分析,则交付证据和结论,不修改代码。