第Ⅰ部分 简介 3
第1章 敏捷测试有了什么样的发展 3
第2章 组织文化的重要性 7
2.1 时间投入 8
2.2 学习型文化的重要性 11
2.3 培养学习型文化 11
2.4 透明度和反馈周期 13
2.5 教育组织 13
2.6 测试人员管理 15
2.7 总结 15
第Ⅱ部分 为更好地测试而学习 19
第3章 角色和能力 19
3.1 能力与角色 20
3.2 T型技能集 22
3.3 泛才化专家 26
3.4 招募正确的人才 28
3.5 测试人员的入职 29
3.6 总结 29
第4章 测试的思维技能 31
4.1 引导 32
4.2 问题解决 32
4.3 给予和接受反馈 33
4.4 学习业务领域知识 34
4.5 辅导和倾听的技能 35
4.6 差异化思维 36
4.7 组织 37
4.8 协作 38
4.9 总结 39
第5章 技术意识 41
5.1 用示例指导开发 41
5.2 自动化和编码技能 42
5.3 常规技术能力 43
5.4 开发环境 44
5.5 测试环境 44
5.6 持续集成和源码控制系统 45
5.7 测试质量属性 47
5.8 测试设计技术 48
5.9 总结 49
第6章 如何学习 51
6.1 学习方式 51
6.2 学习资源 53
6.2.1 大会、课程、聚会和协作 53
6.2.2 出版物、播客和在线社区 55
6.3 学习的时间 56
6.4 帮助其他人学习 58
6.5 总结 60
第Ⅲ部分 计划——不要忘了全局 63
第7章 计划的精度层级 63
7.1 不同的观点 63
7.1.1 产品版本层 64
7.1.2 特性层 66
7.1.3 故事层 69
7.1.4 任务级 69
7.2 回归测试计划 70
7.3 可视化你正在测试什么 70
7.4 总结 72
第8章 使用模型帮助制定计划 73
8.1 敏捷测试象限 73
8.1.1 针对Q1测试的计划 76
8.1.2 针对Q2测试的计划 76
8.1.3 针对Q3测试的计划 76
8.1.4 针对Q4测试的计划 77
8.2 针对此象限的质疑 77
8.3 使用其他模型对计划的影响 81
8.4 针对测试自动化的计划 82
8.5 总结 83
第Ⅳ部分 商业价值的测试 87
第9章 你在做正确的产品吗? 87
9.1 从“为什么”开始 87
9.2 客户契约工具 88
9.2.1 影响地图 88
9.2.2 故事地图 90
9.2.3 7个产品维度 92
9.3 用于尽早探索的更多工具或技术 95
9.4 在正确的事项上投资 95
9.5 总结 96
第10章 拓展测试人员的思维:这是我的工作吗? 97
10.1 这是谁的工作? 97
10.1.1 业务分析技能 97
10.1.2 用户体验设计能力 99
10.1.3 文档技能 100
10.2 积极主动 100
10.3 总结 101
第11章 获取实例 103
11.1 使用实例的威力 103
11.2 用实例指导开发 105
11.2.1 ATDD 106
11.2.2 BDD 108
11.2.3 SBE 108
11.3 在哪里获取实例 109
11.4 使用实例的好处 111
11.5 使用实例的陷阱 112
11.5.1 陷入细节 112
11.5.2 缺乏投入 112
11.5.3 过多的回归测试 113
11.5.4 还不够清楚 113
11.6 使用实例去指导编码的原理 113
11.7 总结 114
第Ⅴ部分 研究型测试 117
第12章 探索式测试 117
12.1 制定测试规程 119
12.2 形成测试规程思路 121
12.2.1 以人物角色进行探索 121
12.2.2 边漫游边探索 123
12.2.3 其他思路 124
12.3 测试规程管理 124
12.3.1 基于会话的测试管理 125
12.3.2 基于线索的测试管理 126
12.4 分组探索 129
12.5 记录探索式测试会话的结果 131
12.6 敏捷测试的哪些地方适用探索式测试 133
12.7 总结 134
第13章 其他类型的测试 135
13.1 如此多的测试需求 135
13.2 并发测试 137
13.3 国际化和本地化 138
13.4 回归测试的挑战 141
13.5 用户验收测试 142
13.6 A/B测试 142
13.7 用户探索式测试 144
13.8 总结 145
第Ⅵ部分 测试自动化 149
第14章 测试中的技术债 149
14.1 使其可见 150
14.2 整个团队共同解决最严重的问题 153
14.3 总结 155
第15章 自动化金字塔 157
15.1 金字塔原型 157
15.2 替代形式的金字塔模型 158
15.3 放弃自动化测试的危险 161
15.4 使用金字塔去展示不同的维度 163
15.5 总结 165
第16章 测试自动化设计模式和方法 167
16.1 全员参与 167
16.2 正确的开始 168
16.3 设计原则和模式 169
16.3.1 通过API进行测试(服务层) 169
16.3.2 通过用户界面进行测试 171
16.4 测试维护 174
16.5 总结 176
第17章 选择测试自动化方案 177
17.1 针对转型团队的解决方案 177
17.2 和整个团队一起应对新的自动化挑战 180
17.3 团队就自动化解决方案达成共识 182
17.4 多少自动化才够充分? 183
17.5 针对工具选择的协作解决方案 184
17.6 将自动化范围扩大到大型组织 185
17.7 其他自动化注意事项 187
17.8 总结 187
第Ⅶ部分 你的环境是什么? 193
第18章 企业级敏捷测试 193
18.1 我们所说的“企业”是指什么? 193
18.2 “扩展”敏捷测试 194
18.3 协调多个团队 198
18.4 一致的工具 202
18.4.1 通过持续集成进行协调 202
18.4.2 版本控制方法 203
18.4.3 测试覆盖 204
18.5 依赖的管理 204
18.5.1 与第三方合作伙伴起工作 204
18.5.2 让客户参与到大型组织中 206
18.6 冲出交付团队之外的好处 207
18.7 总结 207
第19章 分布式团队的敏捷测试 209
19.1 为什么不在同一地点? 211
19.2 共性的挑战 211
19.2.1 文化问题 211
19.2.2 语言 212
19.2.3 时区 213
19.2.4 依赖 213
19.2.5 计划 213
19.3 应对策略 215
19.3.1 整合团队 215
19.3.2 沟通和协作 216
19.3.3 通过测试进行协作 217
19.4 近岸外包测试 218
19.5 分布式团队工具思想 222
19.5.1 沟通工具 222
19.5.2 协作工具 222
19.6 总结 224
第20章 移动应用和嵌入式系统的敏捷测试 225
20.1 相似,但不同 226
20.2 测试是关键 227
20.3 敏捷方法 228
20.4 总结 232
第21章 监管环境中的敏捷测试 233
21.1 “缺乏文档”的神话 233
21.2 敏捷与合规性 233
21.3 总结 237
第22章 数据仓库和商业智能系统的敏捷测试 239
22.1 商业智能或数据仓库的测试有什么独特性? 239
22.2 使用敏捷原则 241
22.3 数据——关键资产 242
22.4 大数据 245
22.5 总结 247
第23章 测试和DevOps 249
23.1 DevOps简介 249
23.2 DevOps和质量 250
23.3 测试人员如何增加DevOps的价值 255
23.4 总结 258
第Ⅷ部分 实践中的敏捷测试 263
第24章 可视化你的测试 263
24.1 沟通测试的重要性 263
24.2 针对持续改进的可视化 267
24.3 测试及测试结果的可视化 270
24.4 总结 271
第25章 综述 273
25.1 增强信心的实践 273
25.1.1 运用实例 274
25.1.2 探索式测试 275
25.1.3 特性测试 275
25.1.4 持续学习 276
25.1.5 环境制约 277
25.1.6 实事求是 278
25.2 营造共同的愿景 279
25.3 总结 281
附录A Page对象实践实例 283
附录B 诱导初学者 289
术语表 291
参考资料 295
参考文献 303