第1章 简介
1.1 本书如何教会你调试
1.2 这些规则都很显而易见
1.3 本书适用于任何人
1.4 本书可用于调试各种问题
1.5 本书的主旨不在预防、保证或筛选
1.6 调试不仅仅是故障检修
1.7 有关案例故事
1.8 精彩内容,即将上演
第2章 总体规则
第3章 理解系统
3.1 阅读手册
3.2 逐字逐句阅读整个手册
3.3 知道什么是正常的
3.4 知道工作流程
3.5 了解你的工具
3.6 查阅手册
3.7 小结
第4章 制造失败
4.1 制造失败
4.2 从头开始
4.3 引发失败
4.4 不要模拟失败
4.5 如何处理间歇性bug
4.6 如果做了所有尝试之后问题仍然间歇性发生
4.6.1 仔细观察失败
4.6.2 不要盲目相信统计数据
4.6.3 是已修复bug,还是仅仅由于运气好,它不再发生了
4.7 “那不可能发生”
4.8 永远不要丢掉调试工具
4.9 小结
第5章 不要想,而要看
5.1 观察失败
5.2 查看细节
5.3 问题忽隐忽现
5.4 对系统进行插装
5.4.1 设计插装工具
5.4.2 过后构建插装
5.4.3 不要害怕深入研究
5.4.4 添加外部插装
5.4.5 日常生活中的插装
5.5 海森堡测不准原理
5.6 猜测只是为了确定搜索的重点目标
5.7 小结
第6章 分而治之
6.1 缩小搜索范围
6.1.1 确定范围
6.1.2 你在哪一侧
6.2 插入易于识别的模式
6.3 从有问题的支路开始查找问题
6.4 修复已知bug
6.5 首先消除噪声干扰
6.6 小结
第7章 一次只改一个地方
7.1 使用步枪,而不要用散弹枪
7.2 用双手抓住黄铜杆
7.3 一次只改变一个测试
7.4 与正常系统进行比较
7.5 自从上一次能够正常工作以来你更改了什么
7.6 小结
第8章 保持审计跟踪
8.1 记下你的每步操作、顺序和结果
8.2 魔鬼隐藏在细节中
8.3 关联
8.4 用于设计的审计跟踪在测试中也非常有用
8.5 好记性不如烂笔头
8.6 小结
第9章 检查插头
9.1 怀疑自己的假设
9.2 从头开始检查
9.3 对工具进行测试
9.4 小结
第10章 获得全新观点
10.1 寻求帮助
10.1.1 获得全新观点
10.1.2 询问专家
10.1.3 借鉴别人的经验
10.2 到哪里寻求帮助
10.3 放下面子
10.4 报告症状,而不是理论
10.5 小结
第11章 如果你不修复bug,它将依然存在
11.1 检查问题确实已被修复
11.2 检查确实是修复措施解决了问题
11.3 bug从来不会自己消失
11.4 从根本上解决问题
11.5 对过程进行修复
11.6 小结
第12章 通过一个案例讲述所有规则
第13章 牛刀小试
13.1 灯和吸尘器的故事
13.2 大量出现的bug
13.3 宽松的限制
13.4 识破bug
第14章 从帮助台得到的观点
14.1 帮助台的限制
14.2 规则,帮助台风格
14.2.1 理解系统
14.2.2 制造失败
14.2.3 不要想,而要看
14.2.4 分而治之
14.2.5 一次只改一个地方
14.2.6 保持审计跟踪
14.2.7 检查插头
14.2.8 获得全新观点
14.2.9 如果你不修复bug,它将依然存在
14.3 小结
第15章 结束语
15.1 调试规则网站
15.2 如果你是一名工程师
15.3 如果你是一名经理
15.4 如果你是一名教师
15.5 小结