Skip to content

调试

Debugging

  • 复现错误,运行程序寻找导致错误的测试,把测试添加到回归测试,消除这个错误就是修复的目标

  • 如果 bug 的输入太大,以至于无法调试:使用二分的思想缩小数据,找到使得 bug 发生的最小数据集,之后再进行调试,最后使用源数据进行验证。

  • 定位 bug :

    • 研究导致错误的数据,查看导致错误的测试输入,以及由此产生的不正确结果、失败断言和堆栈跟踪。
    • 对可能发生 bug/ 不会出错的位置做出假设
    • 设计测试验证假设
      • 一个好的测试应该是对整个系统的观察,而不会破坏
      • 如:跑新的测试数据,插入输出、断言、断电
      • 常见的错误:轻易对假定的错误进行修复,这种猜测的修改会产生糟糕的代码,并且可能掩盖真正的错误
    • 重复,不断缩小范围