调试九法-笔记
Contents
前言
软件开发者路线图看完以后,我开启了接下来的读书之路。一周时间准确的说是6天终于拿下这个山头。 废话不多说,这本书是一本从事编程行业一本经典书籍————依然不是一本工具书。它能指导我们如何快速的查找工作中的BUG,并把调试的规格简明扼要外加故事的手段归纳为九条规则。
规则1 理解系统
通过阅读手册或者其它方式理解系统,能使我们避免很多低级的错误,并能对一些问题有一定的处理方式,以及帮助我们能更好的使用系统。 此规则又分为以下几个要点:
- 阅读手册
- 仔细阅读每个细节
- 掌握基础知识
- 了解工作流程
- 了解工具
- 查阅细节
规则2 制造失败
“什么也比不上直接去的的证据来得重要。”————福尔摩斯,《血色的研究》
制造失败,能使我们观察错误,并专心的排查失败的原因,以及作为是否修复问题的依据。 此规则又分为以下几个要点:
- 制造失败
- 从头开始
- 引发失败
- 不模拟失败
- 查找不受控制的条件
- 仔细观察失败
- 不过于相信统计数据
- 不怀疑BUG发生的触发点
- 保存好已经使用的调试工具
规则3 不要想,而要看
亲眼看到底层的失败是非常重要的。如果你猜测失败是如何发生的,那常常会修复一些根不是BUG的问题。这样的修复不仅不会解决问题,而且还会浪费时间和金钱,甚至会破坏其他地方。请记住,不要这样做。————选自本书
此规则又分为以下几个要点:
- 观察失败
- 查看细节
- 对系统进行插装
- 注意汉森堡不准原则
- 勇于猜想,丹猜想只是为了确定搜索的重要目标
规则4 分而治之
把问题分割处理,有力于快速定位失败产生的原因,节约时间。有序序列的二分法和顺序查找的效率对比。 此规则又分为以下几个要点:
- 确定问题的查找范围
- 逐步缩小搜索范围
- 确定搜索范围内问题区域
- 使用易于查看的测试模式
- 从有问题的一端开始搜索
- 修复已经发现的BUG
- 首先消除特定类型的BUG
规则5 一次只改一个地方
每次修改,只应修复和此次失败相关的部分。对于有代码重构症的人要忍住自己双手去修改BUG,完全遵守此规则很难,不过也有失之东隅收之桑榆。 此规则又分为以下几个要点:
- 隔离关键因素
- 明确问题点前不急于修改系统
- 一次只改一个测试
- 对比正常系统
- 记录所作修改的问题点
规则6 保持审计跟踪
对每次测试的条件和结果做记录和分类,有时会起到意想不到的效果。 此规则又分为以下几个要点:
- 记录测试操作的流程、结果
- 关注细节
- 事件记录关联到一起
- 利用设计的审计跟踪
- 把事情记录下来
规则7 检查插头
“没有什么比一个显而易见的事实更能迷惑人了。”————福尔摩斯,《博斯科姆比溪谷秘案》
显而易见的错误,往往灯下黑。 此规则又分为以下几个要点:
- 质疑自己的假设
- 从头开始检查
- 对工具进行测试
规则8 获得全新观点
一人计短两人技长,我们可以从其他人那边获取新的观点。 此规则又分为以下几个要点:
- 帮助无处不在
- 放下面子
- 主动征求别人的意见
- 报告症状,不要夹杂自己主观观点
- 不缺的的判断,可以作为补充
规则9 如果不修复BUG,它将依然存在
我们的目标是解决BUG,而不是掩盖BUG。不明确BUG产生的原因,巧合的方式BUG被掩盖,BUG依然存在,会被再次触发。 此规则又分为以下几个要点:
- 检查问题是够被修复
- 查证自己的修改
- 明确BUG从来不会自己消失
- 从根本上解决问题
- 对过程进行修复
Author wangkm
LastMod 2018/06/04