软件调试修炼之道
查字典图书网
当前位置: 查字典 > 图书网 > 编程> 软件调试修炼之道

软件调试修炼之道

7.4

作者: Paul Butcher
出版社: 人民邮电出版社
原作名: Debug It!: Find, Repair, and Prevent Bugs in Your Code
译者: 曹玉琳
出版年: 2011-6
页数: 158
定价: 32.00元
装帧: 平装
丛书: 图灵程序设计丛书
ISBN: 9787115252647



推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

内容简介:

本书主要讲述如何运用方法和调试工具在客户投诉之前自动检测程序中的bug,紧紧围绕问题重现、问题诊断、缺陷修复、反思四个中心环节,并将调试置于软件开发与运行的大环境中,为我们道出了软件调试修炼之道。

本书适用软件开发、调试一线人员及一切热爱软件调试之道的有志者。

作者简介:

Paul Butcher 资深程序员,涉猎广泛,从单片机编码到高级声明式编程无所不精。Paul是一位少年天才,8岁时就已经开始在8位机上编写游戏。最近几年他开始痴迷于赛车,认为自己是可以和汉密尔顿比肩的赛车手。

目录:

第一部分 问题的核心

第1 章 山重水复疑无路2

1.1 调试不仅是排除缺陷2

1.2 实证方法4

1.3 核心调试过程5

1.4 先澄清几个问题6

1.4.1 你知道要找的是什么吗 6

1.4.2 一次一个问题7

1.4.3 先检查简单的事情 7

1.5 付诸行动8

第2 章 重现问题9

2.1 重现第一,提问第二9

2.1.1 明确开始要做的事 10

2.1.2 抓住重点10

2.2 控制软件 11

2.3 控制环境 11

2.4 控制输入 13

2.4.1 推测可能的输入 13

2.4.2 记录输入值15

2.4.3 负载和压力19

2.5 改进问题重现20

2.5.1 最小化反馈周期20

2.5.2 将不确定的缺陷变为确定的 22

2.5.3 自动化25

2.5.4 迭代26

2.6 如果真的不能重现问题该怎么办 27

2.6.1 缺陷真的存在吗 27

2.6.2 在相同的区域解决不同的问题27

2.6.3 让其他人参与其中27

2.6.4 充分利用用户群体28

2.6.5 推测法 28

2.7 付诸行动 29

第3 章 诊断30

3.1 不要急于动手——试试科学的方法30

3.2 相关策略35

3.2.1 插桩36

3.2.2 分而治之37

3.2.3 利用源代码控制工具 38

3.2.4 聚焦差异39

3.2.5 向他人学习39

3.2.6 奥卡姆的剃刀40

3.3 调试器40

3.4 陷阱41

3.4.1 你做的修改是正确的吗41

3.4.2 验证假设42

3.4.3 多重原因43

3.4.4 流沙44

3.5 思维游戏45

3.5.1 旁观调试法45

3.5.2 角色扮演46

3.5.3 换换脑筋47

3.5.4 做些改变,什么改变都行47

3.5.5 福尔摩斯原则48

3.5.6 坚持49

3.6 验证诊断 49

3.7 付诸行动 50

第4 章 修复缺陷51

4.1 清除障碍51

4.2 测试52

4.3 修复问题产生的原因,而非修复现54

4.4 重构56

4.5 签入57

4.6 审查代码 58

4.7 付诸行动 59

第5 章 反思60

5.1 这到底是怎么搞的60

5.2 哪里出了问题61

5.2.1 我们已经做到了吗62

5.2.2 根本原因分析 62

5.3 它不会再发生了63

5.3.1 自动验证63

5.3.2 重构64

5.3.3 过程65

5.4 关闭循环65

5.5 付诸行动66

第二部分 从大局看调试第6 章 发现代码存在问题68

6.1 追踪缺陷 68

6.1.1 缺陷追踪系统 68

6.1.2 怎样才能写出一份出色的缺陷报告69

6.1.3 环境和配置报告70

6.2 与用户合作72

6.2.1 简化流程72

6.2.2 有效的沟通73

6.3 与支持人员协同工作77

6.4 付诸行动78

第7 章 务实的零容忍策略79

7.1 缺陷优先79

7.1.1 早期缺陷修复可以大大降低软件运行的不确定性 79

7.1.2 没有破窗户80

7.2 调试的思维模式81

7.3 自己来解决质量问题83

7.3.1 这里没有“灵丹妙药”  83

7.3.2 停止开发那些有缺陷的程序 84

7.3.3 从“不干净”的代码中将“干净”的代码分离出来84

7.3.4 错误分类85

7.3.5 缺陷闪电战86

7.3.6 专项小组87

7.4 付诸行动87

第三部分 深入调试技术第8 章 特殊案例90

8.1 修补已经发布的软件90

8.2 向后兼容91

8.2.1 确定你的代码有问题92

8.2.2 解决兼容性问题93

8.3 并发95

8.3.1 简单与控制95

8.3.2 修复并发缺陷 96

8.4 海森堡缺陷97

8.5 性能缺陷98

8.5.1 寻找瓶颈.99

8.5.2 准确的性能分析99

8.6 嵌 入式软件100

8.6.1 嵌入式调试工具100

8.6.2 提取信息的痛苦路程 102

8.7 第三方软件的缺陷102

8.7.1 不要太快去指责103

8.7.2 处理第三方代码的缺陷 103

8.7.3 开源代码104

8.8 付诸行动106

第9 章 理想的调试环境 107

9.1 自动化测试107

9.1.1 有效的自动化测试107

9.1.2 自动化测试可以作为调试的辅助108

9.1.3 模拟测试、桩测试以及其他的代替测试技术 109

9.2 源程序控制110

9.2.1 稳定性110

9.2.2 可维护性111

9.2.3 与分支相关的问题111

9.2.4 控制分支112

9.3 自动构建113

9.3.1 一键构建114

9.3.2 构建机器115

9.3.3 持续集成115

9.3.4 创建版本116

9.3.5 静态分析117

9.3.6 使用静态分析119

9.4 付诸行动 120

第10 章 让软件学会自己寻找缺陷 121

10.1 假设和断言121

10.1.1 一个例子122

10.1.2 等一下——刚才发生了什么124

10.1.3 例子,第二幕 124

10.1.4 契约,先决条件,后置条件和不变量125

10.1.5 开启或关闭断言 125

10.1.6 防错性程序设计126

10.1.7 断言滥用128

10.2 调试版本129

10.2.1 编译器选项 130

10.2.2 调试子系统 130

10.2.3 内置控制132

10.3 资源泄漏和异常处理 133

10.3.1 在测试中自动抛出异常133

10.3.2 一个例子134

10.3.3 测试框架136

10.4 付诸行动139

第11 章 反模式140

11.1 夸大优先级140

11.2 超级巨星141

11.3 维护团队142

11.4 救火模式 144

11.5 重写145

11.6 没有代码所有权146

11.7 魔法146

11.8 付诸行动147

附录A 资源148

附录B 参考书目157

展开全文
热门标签:
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •