质量保证【00】如何处理BUG

171 阅读2分钟

调整心态

做好预期,预计该BUG多长时间可以解决。保持良好的心态和钻研精神去解决问题。

定位BUG

处理流程

  • 模糊定位
    • 根据经验推测最可能出现问题的位置,想象什么场景才会出现这样的BUG
    • 旧版本代码比较,新版本出现的BUG与旧版本进行比较。
  • 精准定位
    • 二分法,定位BUG在前面一半还是后面一半。持续二分法直到精准定位
    • 排除法,去掉部分代码,测试BUG还能否复现。持续排除法直到精准定位
  • 逻辑梳理
    • 小黄鸭调试法,帮助捋清楚代码逻辑

传说中程序大师随身携带一只小黄鸭,在调试代码的时候会在桌上放上这只小黄鸭,然后详细地向鸭子解释每行代码 。

许多程序员都有过向别人(甚至可能向完全不会编程的人)提问及解释编程问题,就在解释的过程中击中了问题的解决方案。一边阐述代码的意图一边观察它实际上的意图并做调试,这两者之间的任何不协调会变得很明显,并且更容易发现自己的错误。

定位BUG的技巧

  • 编译器DEBUG
  • 代码运行链路加日志
  • 超出能力范围及时求助,外部视角打开思路

修复BUG

处理流程

  • 动手修复之前,确保捋清楚了整条链路的逻辑,避免出现连锁BUG
  • 梳理链路逻辑,可以帮助发现深层次的隐藏BUG,发现不合理的设计
  • 重构:看整体->改细节->review

复盘

总结经验,这次出现了什么问题,下次如何做的更好