测试驱动开发的艺术PDF电子书下载
- 电子书积分:12 积分如何计算积分?
- 作 者:(芬)科斯科拉著
- 出 版 社:北京:人民邮电出版社
- 出版年份:2010
- ISBN:9787115238368
- 页数:334 页
第一部分TDD入门 1
第1章 综述 2
1.1挑战:用正确的方法解决正确的问题 3
1.1.1糟糕的代码质量 3
1.1.2不能满足客户需求 4
1.2解决方案:测试驱动 4
1.2.1高质量的TDD 5
1.2.2用ATDD满足客户需求 6
1.2.3这对我有什么好处 7
1.3正确地做事:TDD 9
1.3.1测试-编码-重构 9
1.3.2增量式开发 12
1.3.3重构以保持代码的健康 16
1.3.4保证软件正常运行 18
1.4做正确的事:ATDD 20
1.4.1名字的含义 20
1.4.2紧密协作 21
1.4.3把测试作为沟通的共同语言 22
1.5TDD工具 23
1.5.1使用xUnit做单元测试 23
1.5.2支持ATDD的测试框架 23
1.5.3持续集成及构建 24
1.5.4代码覆盖率 25
1.6小结 26
第2章TDD入门 28
2.1从需求到测试 29
2.1.1分解需求 29
2.1.2什么是好的测试 30
2.1.3依照测试的列表工作 30
2.1.4意图编程 30
2.2选择第一个测试 31
2.2.1创建测试列表 31
2.2.2写第一个失败的测试 32
2.2.3通过第一个测试 34
2.2.4再加一个测试 36
2.3广度优先,深度优先 38
2.3.1继续使用伪实现 39
2.3.2清除掉伪实现 39
2.4别忘了重构 41
2.4.1测试代码中的可重构之处 42
2.4.2移除多余的测试 43
2.5添加错误处理 44
2.5.1验证异常 44
2.5.2把方法重构得更短些 45
2.5.3保持方法平衡 46
2.5.4验证异常中的详细信息 47
2.6无穷尽的测试 48
2.6.1性能测试 48
2.6.2有些失望的结局 49
2.7小结 50
第3章 小步重构 51
3.1探寻解决方案 51
3.1.1用Spike开发原型 52
3.1.2写测试学知识 52
3.1.3学习API的Spike样例 52
3.2以受控的方式修改设计 54
3.3进一步延伸新设计 61
3.3.1保持兼容 62
3.3.2替换实现 66
3.4小结 68
第4章TDD的概念与模式 69
4.1如何编写及通过测试 70
4.1.1测试选择技巧 70
4.1.2实现技巧 72
4.1.3测试驱动的基本准则 73
4.2重要的测试概念 74
4.2.1夹具是测试的上下文 74
4.2.2用测试替身替换依赖 76
4.2.3基于状态及基于交互的的测试 76
4.3近处观察测试替身 78
4.3.1测试替身的例子 78
4.3.2伪实现、测试桩和模拟对象 79
4.3.3模拟对象实战 80
4.4提高设计的可测试性的准则 81
4.4.1尽量使用组合而非继承 82
4.4.2避免使用static关键字以及Singleton模式 83
4.4.3隔离依赖 84
4.4.4注入依赖 86
4.5单元测试模式 88
4.5.1断言模式 89
4.5.2夹具模式 92
4.5.3测试模式 95
4.6在遗留代码基础上工作 101
4.6.1测试驱动遗留开发 101
4.6.2分析变化 102
4.6.3准备好变化 103
4.6.4测试驱动变更 103
4.7 小结 104
第二部分 针对特定技术应用TDD 106
第5章 测试驱动Web组件 106
5.1在60秒内介绍Web应用中的MVC 107
5.2控制器 107
5.2.1测试驱动Java Servlets 108
5.2.2测试驱动Spring控制器 117
5.3用测试先行的方法构建视图 120
5.3.1用JspTest 测试驱动JSP 121
5.3.2测试驱动Velocity模板 125
5.4在基于控件的Web框架基础上TDD 129
5.4.1剖析典型框架 130
5.4.2用测试先行的方法开发Wicket页面 130
5.5小结 135
第6章 测试驱动数据访问 137
6.1探索问题领域 137
6.1.1跨越边界的数据访问 138
6.1.2用DAO模式分层 138
6.2用单元测试驱动数据访问 139
6.2.1JDBCAPI的缺点 140
6.2.2用Spring的JdbcTemplate简化开发 144
6.2.3用Hibernate轻松地做TDD 149
6.3编码前写集成测试 155
6.3.1什么是集成测试 155
6.3.2选择数据库 157
6.4集成测试实战 159
6.4.1第一个Hibernate集成测试 159
6.4.2创建数据库模式 162
6.4.3实现产品代码 164
6.4.4 用事务夹具保持数据清洁 165
6.5为集成测试填充数据 166
6.5.1用Hibernate填充对象 167
6.5.2用DbUnit填充数据 168
6.6使用单元测试还是集成测试 172
6.6.1在TDD周期中使用集成测试 172
6.6.2两全其美 173
6.7文件系统访问 173
6.7.1项目中实际遇到的一个问题 174
6.72提高文件访问可测试性的实践 174
6.8小结 175
第7章 测试驱动不可预测功能 177
7.1测试驱动时间相关功能 177
7.1.1例子:日志和时间戳 177
7.1.2抽象出系统时间 179
7.13用虚设的系统时间测试日志输出 181
7.2测试驱动多线程代码 184
7.2.1该测什么 184
7.2.2线程安全 185
7.2.3阻塞操作 189
7.2.4启动及中止线程 191
7.2.5异步执行 193
7.2.6线程同步 195
7.3标准同步对象 196
7.3.1信号量 196
7.3.2 latche 196
7.3.3 barrier 196
7.3.4 futures 197
7.4小结 197
第8章 测试驱动Swing代码 198
8.1 Swing UI中该测试什么 198
8.1.1内部基础设施及实用程序 199
8.1.2渲染及布局 199
8.1.3交互 199
8.2 可测试UI代码的模式 200
8.2.1经典MVP 201
8.2.2Supervising Controller 201
8.2.3Passive View 203
8.3 测试视图控件的工具 205
8.3.1为什么要用工具 205
8.3.2TDD友好的工具 206
8.4 测试驱动视图组件 210
8.4.1着手设计 211
8.4.2添加及操作标准控件 212
8.4.3绘图 216
8.4.4给点添加行为 224
8.5小结 227
第三部分基于ATDD构建产品 230
第9章 解析验收测试驱动开发 230
9.1用户故事介绍 231
9.1.1故事的格式 231
9.1.2讲故事的力量 231
9.1.3用户故事的例子 232
9.2验收测试 232
9.2.1故事的样例测试 232
9.2.2验收测试的特征 233
9.2.3实现验收测试 236
9.3 理解过程 237
9.3.1 ATDD周期 237
9.3.2 迭代内的ATDD 242
9.4作为团队活动的ATDD 245
9.4.1客户角色定义 245
9.4.2客户与谁一起写测试 246
9.4.3需要多少测试人员 247
9.5 ATDD的好处 247
9.5.1“完成”的定义 247
9.5.2协作 248
9.5.3信任及承诺 249
9.5.4通过例子验收 249
9.5.5弥合差距 249
9.6我们究竟要测试什么 250
9.6.1应该针对UI测试吗 250
9.6.2可以使用部分系统的伪实现吗 251
9.6.3应该直接测试领域逻辑吗 251
9.7工具概览 252
9.7.1基于表格的框架 252
9.7.2基于文本的框架 253
9.7.3基于脚本语言的框架 254
9.7.4自制工具 254
9.8小结 254
第10章用Fit创建验收测试 256
10.1 Fit是什么 256
10.1.1用Fit进行ATDD 257
10.1.2包含夹具表的测试文档 259
10.1.3夹具:表格和类的结合 260
10.2三个内建夹具 261
10.2.1 ColumnFixture 261
10.2.2 RowFixture 263
10.2.3 ActionFixture 266
10.2.4扩展内建夹具 268
10.3 FitLibrary对内建夹具的扩展 269
10.3.1 DoFixture 269
10.3.2 SetUpFixture 272
10.3.3还有更多功能 273
10.4执行Fit测试 273
10.4.1单个测试文档 274
10.4.2把所有测试放在一个目录结构中 274
10.4.3把测试整合进自动化测试中 275
10.5小结 276
第11章 执行验收测试的策略 277
11.1验收测试该检测什么 277
11.1.1抓住问题本质 278
11.1.2避免波动频繁界面 278
11.1.3在技术障碍最小的地方越过 279
11.2实现方式 279
11.2.1端到端 280
11.2.2绕过UI进行测试 281
11.2.3直接测试内部逻辑 284
11.2.4替换无关组件 285
11.2.5测试后门 286
11.3技术相关考虑 287
11.3.1库 287
11.3.2无界面的分布式系统 288
11.3.3控制台应用 289
11.3.4 GUI应用 290
11.3.5 Web应用 293
11.4常见问题的处理技巧 295
11.4.1加快测试执行速度 296
11.4.2减少测试的复杂度 299
11.4.3管理测试数据 300
11.5小结 301
第12章TDD应用 302
12.1成功采用TDD的必要条件 302
12.1.1理解本质 302
12.1.2紧迫感 303
12.1.3成就感 303
12.1.4表现诚实 304
12.1.5变革的时机 304
12.2让其他人参与进来 305
12.2.1引导变革的角色和能力 305
12.2.2改变需要时间 307
12.3如何应对阻力 307
12.3.1识别阻力 307
12.3.2应对阻力的三种常见方法 309
12.3.3应对阻力的技巧 310
12.3.4挑选战场 312
12.4如何推进变革 313
12.4.1造势 313
12.4.2降低门槛 314
12.4.3培训 315
12.4.4共享及感染 316
12.4.5指导和督促 317
12.4.6通过分配角色让人们参与进来 318
12.4.7打破稳定状态 319
12.4.8迟后的奖励 319
12.5小结 319
附录A JUnit 4简明教程 321
附录B JUnit 3.8简明教程 323
附录C EasyMock简明教程 325
附录D 通过Ant运行测试 327
相关资源 331
- 《东北民歌文化研究及艺术探析》(中国)杨清波 2019
- 《舞剧艺术论》张麟著 2019
- 《中国陈设艺术史》赵囡囡著 2019
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《全国校外艺术课堂新形态示范教材系列 少儿钢琴表演曲集》唐冠祥编著 2019
- 《景观艺术设计》林春水,马俊 2019
- 《韩愈散文艺术论》孙昌武著 2018
- 《高含硫气藏开发腐蚀控制技术与实践》唐永帆,张强 2018
- 《土壤环境监测前沿分析测试方法研究》中国环境监测总站编著 2018
- 《西方艺术歌曲与歌剧的钢琴伴奏艺术》董攀攀 2017
- 《中风偏瘫 脑萎缩 痴呆 最新治疗原则与方法》孙作东著 2004
- 《水面舰艇编队作战运筹分析》谭安胜著 2009
- 《王蒙文集 新版 35 评点《红楼梦》 上》王蒙著 2020
- 《TED说话的力量 世界优秀演讲者的口才秘诀》(坦桑)阿卡什·P.卡里亚著 2019
- 《燕堂夜话》蒋忠和著 2019
- 《经久》静水边著 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《微表情密码》(波)卡西亚·韦佐夫斯基,(波)帕特里克·韦佐夫斯基著 2019
- 《看书琐记与作文秘诀》鲁迅著 2019
- 《酒国》莫言著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《办好人民满意的教育 全国教育满意度调查报告》(中国)中国教育科学研究院 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《人民院士》吴娜著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《中国人民的心》杨朔著;夕琳编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中华人民共和国成立70周年优秀文学作品精选 短篇小说卷 上 全2册》贺邵俊主编 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 九年级 上 配人教版》周志英总主编 2019
- 《中华人民共和国成立70周年优秀文学作品精选 中篇小说卷 下 全3册》洪治纲主编 2019