混沌篇 丛林中的TDD神火之光 2
第1章 丛林中的TDD神火之光 2
1.1 丛林中的TDD的光芒——看上去很美 2
1.2 TDD的实践故事开始了 3
1.3 金字塔上神像的光芒四射是因为金字塔的伟岸 10
开天篇 一个简单的胜利 14
第2章 TDD基础——一个简单的胜利 14
2.1 什么是TDD 14
2.2 TDD的步骤,战略上蔑视 14
2.3 战术上重视 15
2.4 一个简单的胜利,TDD的简化示例 17
2.5 TDD的光芒 17
2.5.1 TDD带给开发人员什么 17
2.5.2 TDD带给管理者什么 18
2.6 光芒之下的TDD实践丛林 19
2.7 还原TDD,懂得总结是最大的财富 20
2.8 丛林生存法则的吉祥三宝:罗盘、火种、宝剑 21
TDD三项修炼之克罗托篇 转动“结构化”和“敏捷”的罗盘第3章 结构化开发方法 28
3.1 软件开发过程及生命周期模型 28
3.2 结构化开发过程方法概述 30
3.3 瀑布开发模型 31
3.4 V模型 34
3.5 原型及螺旋模型 38
3.6 RUP 40
3.7 结构化开发方法的质量保证及裁剪 50
第4章 敏捷开发方法 55
4.1 机制、管理、技术创新的敏捷方法 55
4.2 敏捷方法概述 57
4.3 掌握敏捷的金箍棒 59
4.4 敏捷方法的七种兵器 62
4.5 XP 63
4.6 XP核心实践的项目经验 70
4.7 测试驱动开发与XP 72
第5章 开发方法评估,踏入平衡之美自由道路 74
5.1 开发方法的评估、比较及项目应用 74
5.2 项目开发方法选择及过程定义经验 77
5.3 自由智能平衡之美的开发方法 79
5.4 一个真实的开发项目案例 79
5.4.1 案例 80
5.4.2 分析 82
5.4.3 实践 84
TDD三项修炼之拉克罗斯篇 单元测试之星火燎原 92
第6章 摘下有色眼镜后的测试 92
6.1 广义上的测试 93
6.2 狭义上的测试——系统测试 95
第7章 单元测试火种的力量 100
7.1 单元测试及意义 100
7.2 单元测试的任务 104
7.3 XP中的单元测试 107
第8章 单元测试方法谈 110
8.1 单元测试方法之代码复查 110
8.2 单元测试方法之静态测试 113
8.3 单元测试方法之动态测试 116
第9章 单元测试用例设计 120
9.1 测试用例 120
9.2 单元测试用例 121
9.3 黑盒测试用例设计方法 122
9.3.1 等价类法 122
9.3.2 边界值法 123
9.3.3 因果图法 124
9.3.4 错误推测法 127
9.4 白盒测试用例设计方法 127
9.4.1 逻辑覆盖法 127
9.4.2 基本路径法 132
9.5 测试驱动和桩设计 136
9.6 单元测试的过程及模板 139
9.7 一段真实的单元测试历程 139
9.7.1 案例描述 139
9.7.2 确定测试目标 141
9.7.3 制定单元测试计划 141
9.7.4 测试用例设计 142
9.7.5 单元测试总结报告 143
第10章 单元测试工具实践图谱 145
10.1 XUnit 145
10.2 JUnit工具实践图谱 147
10.2.1 JUnit简介 147
10.2.2 JUnit安装 147
10.2.3 JUnit运行模式 147
10.2.4 循序渐进JUnit示例 149
10.2.5 JUnit经验宝典 157
10.3 CppUnit工具实践图谱 158
10.3.1 CppUnit简介 158
10.3.2 CppUnit安装及设置 158
10.3.3 循序渐进CppUnit示例 159
10.3.4 CppUnit经验宝典 161
10.4 NUnit工具实践图谱 162
10.4.1 NUnit简介 162
10.4.2 循序渐进NUnit 162
10.5 数据库单元测试实践 169
10.5.1 DBUnit 170
10.5.2 Mock Object 173
10.6 XUnit中测试设计心得 174
10.6.1 类测试设计心得 174
10.6.2 测试代码重用设计心得 175
10.6.3 测试方法设计原则 175
10.7 Eclipse中的静态测试工具CheckStyle 176
10.7.1 CheckStyle简介 176
10.7.2 CheckStyle配置 176
10.8 Rational单元测试辅助工具系列 191
10.8.1 Purify 191
10.8.2 PureCoverage 194
10.8.3 Quantify 196
10.8.4 Test RealTime 198
第11章 自动化测试与每日构建 208
11.1 软件构建和发布 209
11.2 自动化构建意义 210
11.3 自动化构建要素 211
11.4 .NET自动化构建工具实践 212
11.4.1 Ant简介 213
11.4.2 在.net中通过CCNet和MSBuild实现每日构建 219
11.5 Java自动化构建工具实践 224
第12章 单元测试管理实践 233
12.1 单元测试方案 233
12.2 单元测试策略 234
12.3 单元测试退出准则 235
12.4 单元测试管理建议 236
TDD三项修炼之阿特罗波斯篇 练就重构的精妙剑术第13章 重构时机 238
13.1 重构概述 240
13.2 重构触发时机的特征识别 241
13.3 一个重构信号识别的案例 243
第14章 重构塑型 263
14.1 重构的方法 263
14.2 重构方法示例 264
14.3 重构的规律之美 275
14.4 重构的经验之谈 277
14.5 面向对象的软构件及其实现方法 277
14.6 重构中的设计模式总结 279
第15章 意图导向编程 292
15.1 意图导向编程 292
15.2 意图导向编程规则 293
TDD升华篇 丛林中哲人的足迹 297
第16章 User Story纪事 297
16.1 用户经历描述(User Story) 297
16.2 修炼User Story心法 298
16.3 User Story示例 299
16.4 User Story道可道 301
16.5 敏捷建模 304
16.6 CRC卡及其示例 305
16.7 测试用例的选择方法 308
16.8 重构的脚步频率 309
演练篇 丛林中看到了另一片天空 312
第17章 演练 312
17.1 演练,Java的TDD实践尝试 312
17.2 演练,C#的TDD实践尝试 317
第18章 再次演练,一个真实的项目 324
18.1 项目需求概述 325
18.2 再次演练 327
豁然开朗篇 蓝天白云下的幸福 333
第19章 走出TDD丛林 333
附录A 某公司的系统测试流程 346
附录B 测试过程中的各种文档 359
附录C 以C++/C为例的代码审查表 365
参考文献 371