第七次读书笔记
《调试九法》第二次读书笔记
这周我继续看了《调试九法》这本书。这本书被誉为调试领域的《设计模式》,主要有两个原因:一是其给出了9条非常有价值的调试规则。二是每条规则都以一种非常规整,易于接受的格式来叙述。本周我对其后四条方法进行了阅读,以下是我的体会:
对于“保持审计跟踪”,有事看起来最不起眼的事情却是导致发生bug的关键,在测试人员看来不重要的细节可能对于bug修复人员很重要。因此,我们必须记录下每一件事情。要记下我们的每部操作、顺序和结果。而且要知道,任何细节都可能是重要的。并且要把事件关联到一起。
对于“获得全新观点”,即我们要向他人寻求帮助:获得全新观点(有事向同学、老师解释问题,也会使你有全新的认识;其他人会从一个无偏见的角度看问题);询问专家:咨询专家来了解需要快速掌握哪些知识,专家知道查找问题的大致路线图;借鉴别人的经验:周围的人以前见过类似的情况,有些系统给提供了故障维修指南。报告症状,而不是结论:在寻求帮助时,描述观察到的一切,以及条件,告诉什么是间歇发生,什么事情不是。但不要告诉他认为问题的原因是什么。即使有些不是十分肯定的事,也可以提出来。
对于“如果你不修复 bug ,它将依然存在”,当我们认为已经修复了一个设计问题时,取消这个修复,确定系统再次失败,然后再应用这个修复,再次验证问题已修复。对过程进行修复:不要只是擦掉地上的油,而要纠正设计的方式。
几乎我们在个人作业和结对编程都有被bug搞到死去活来的经验,有时候颠来倒去,问题似乎解决了,但也不知道为什么,就把它当作不可解释的玄学现象,最烦人的一种bug是偶尔出现难以复现的bug。我感觉阅读完这本书后对bug有了更深的理解,相信以后处理bug能够更得心应手。
举个例子,这次结对编程中,我使用的是QT进行GUI的设计。而QT自带的编辑器本身就存在许多不可复现的bug,这涉及到编译器内部实现的问题。而只有熟悉其编译器构成原理,才能解决处理这次bug。