第1章 上班第一天,新人培训 1
1.1测试专家的第一步 1
1.1.1我是菜鸟 1
1.1.2苦练基本功 4
1.1.3培养专业技能 9
1.2开发团队做的远不仅是开发 13
1.2.1术业有专攻 13
1.2.2好软件由测试决定 17
1.2.3测试也有大学问 18
1.3从专家到高手 25
1.3.1像外行一样思考,像专家一样实践 26
1.3.2工欲善其事必先利其器 28
1.3.3从拿来主义到创新 31
1.3.4测试的广度和深度 32
1.3.5无招胜有招 33
1.4职业生涯的考虑——技术还是管理 35
1.4.1测试工程师的技术发展路线 35
1.4.2与人打交道——管理测试团队 37
1.5学习笔记——测试入门之小艾观 38
第2章 万事开头难:软件从安装开始 39
2.1软件,是装出来的 40
2.1.1安装测试概念解读 40
2.1.2测试之初体验——一份手册,N台机器,一堆软件 41
2.2全面撒网,重点排查 43
2.2.1选择测试配置 43
2.2.2找出测试场景 46
2.2.3组合出测试用例 48
2.3安装测试质量之大观 48
2.3.1产品安装 49
2.3.2产品卸载 52
2.4客户的圣经——用户手册验证 53
2.4.1一般验证方法 54
2.4.2文档审阅流程 54
2.5引进先进设备——安装自动化测试 55
2.5.1效率的提高从自动化开始 55
2.5.2自动化测试的实现 56
2.6学习笔记——安装测试之小艾观 60
参考资料: 60
第3章 发现新方法:快速分发新的测试版本 61
3.1构建的过程 62
3.1.1构建原材料的管理——代码的管理 63
3.1.2构建的环境 65
3.1.3整体构建和部分构建 67
3.1.4自动化的构建 69
3.1.5模拟翻译构建 70
3.1.6构建的范围和频率 71
3.2构建测试(Build Verification Test-BVT) 73
3.2.1构建测试的配置(BVT Configuration) 75
3.2.2构建测试的用例(BVT Scenarios) 75
3.2.3自动化的构建测试 76
3.2.4构建测试的环境再利用 76
3.3静态测试 77
3.3.1静态测试的作用及环境 78
3.3.2自动化的静态测试 78
3.3.3静态测试的频率 79
3.4不间断的构建与测试(Continuous Integration) 79
3.5学习笔记——小艾的构建测试观 80
参考资料: 81
第4章 把缺陷扼杀在摇篮里:开发人员的测试 82
4.1怪物来自缺陷,开发人员也需要做测试 82
4.1.1深入摇篮内部 83
4.1.2吃一堑长一智,走出单元测试的误区 84
4.1.3潘多拉盒子出来怪物——开发人员眼中的测试 89
4.2单元测试测点啥,怎么测 91
4.2.1摇篮有多大——单元测试的范围 91
4.2.2有规范、有步骤地捉虫子——单元测试的流程 92
4.2.3来一套杀虫装备:单元测试的工具 94
4.2.4单元测试够不够,我来把把关 99
4.3测试还能驱动开发(TDD) 101
4.3.1什么是测试驱动开发,测试驱动的工作流程 102
4.3.2测试驱动开发好处多 105
4.4学习笔记——单元测试之小艾观 107
参考资料: 108
第5章 黑色盒子:打着手电抓虫子 110
5.1黑色的盒子里面有什么 110
5.1.1小艾的功能测试第一课——准备手电 111
5.1.2导师对功能测试的深入浅出的解读 117
5.1.3参与实际测试执行,编写自动化测试脚本 130
5.1.4找到了第一条虫子 132
5.1.5手记——执行高手 133
5.2如何把黑盒子分块 134
5.2.1如何精准找寻某一种虫子——分而治之 136
5.2.2客户的反馈——虫子依然存在吗 136
5.3对黑盒子的全方位照明 137
5.3.1找到了小盒子间的虫子——合而治之 137
5.3.2手记——策略高手 139
5.4功能测试之百种变身 141
5.4.1回归测试 141
5.4.2客户化环境下的测试 142
5.4.3随机测试(Adhoc Test) 143
5.4.4可访问性的测试(Accessibility Test) 144
5.4.5全球化测试(Globalization Test) 144
5.4.6其他之林林总总 145
5.5学习笔记——功能测试之小艾观 146
参考资料: 147
第6章 大促带来的灾难:究竟能支撑多少访问量 148
6.1洪水般的访问量——初识性能测试 148
6.1.1一旦宕机,流失的就是白花花的营业额 148
6.1.2假如我是甲方——关于性能客户都关注些什么 149
6.2让访问来得更猛烈些吧——模拟客户的访问行为 151
6.2.1更真实更高效的模拟——自动化的性能测试 151
6.2.2春节大促——压力测试 153
6.2.3日常的访问量——正常的响应时间 155
6.2.4保证长时间的稳定运营——可靠性测试 156
6.2.5客户的成长不比产品慢:想象不到的数据量——可扩展性测试 157
6.2.6摸爬滚打过来还得挨一刀——产品经历性能测试 158
6.3像FBI那样缜密——全面监视系统的一举一动 167
6.3.1操作系统的监视 169
6.3.2应用服务器的监视 170
6.3.3数据库的监视 171
6.4大海捞针也要讲究策略——性能问题的分析定位 179
6.4.1磨刀不误砍柴功——了解性能问题定位的一般策略 180
6.4.2越忙越乱——高并发访问量下的出错率 182
6.4.3越跑越慢——吞吐量下降问题 185
6.4.4穿了小两号的鞋——通过参数调优能解决的问题 187
6.5学习笔记——性能测试之小艾观 189
参考资料: 189
第7章 更新换代,重装上阵 191
7.1永葆青春活力——迁移 191
7.1.1企业级应用架构 192
7.1.2企业级应用迁移内容及主要步骤 194
7.1.3企业级应用迁移中客户关注的问题 196
7.2迁移测试 196
7.2.1垂直迁移测试方法(VMTM) 197
7.2.2水平迁移测试方法(HMTM) 203
7.2.3其他迁移测试内容 207
7.3迁移测试的计划和实践 208
7.3.1如何选择迁移测试平台组合和测试用例 209
7.3.2迁移测试的一个具体场景 212
7.4学习笔记——迁移测试之小艾观 214
参考资料: 214
第8章 假如我是客户:面目全非脚与还我漂漂拳 215
8.1其实,我是一个演员——如何扮演客户 216
8.1.1我知道,我不知道:只知道客户能够知道的 216
8.1.2我做,我不做:做客户会做的 218
8.1.3我想,我继续想:客户会怎么想 221
8.2面目全非脚——狠下心来改产品 222
8.2.1第一脚,学会开发 222
8.2.2第二脚,部署代码 231
8.2.3第三脚,联合测试 237
8.3还我漂漂拳——让产品对用户更友好 238
8.3.1协助完善产品设计 238
8.3.2客户化联合测试工作的痛苦和解决方案 239
8.3.3撰写详细易读的客户化教程 240
8.4学习笔记——客户化测试之小艾观 241
参考资料: 242
第9章 黎明之前最后的冲刺:成品测试 243
9.1产品包装成金蛋,手握光碟抓虫子 243
9.1.1成品测试全体总动员 243
9.1.2协同作战——成品测试特性 245
9.1.3取舍之间——测试范围和策略 246
9.1.4争分夺秒——成品测试周期 248
9.2黎明前的黑暗——漏网之虫 250
9.2.1老案例生新虫子 251
9.2.2艰难抉择——漏网之虫综合分析及灭虫策略 252
9.3金蛋闪亮登场 254
9.3.1成品测试胜利退出 254
9.3.2质量检测报告之大观 256
9.3.3趁热打铁总结经验教训 259
9.3.4贯穿始终的缺陷分析 261
9.4学习笔记——成品测试之小艾观 269
参考资料: 270
第10章 缝缝补补又三年 271
10.1补丁包测试简介 271
10.1.1目标驱动的补丁包测试 272
10.1.2补丁包测试在产品生命周期中的意义 273
10.1.3补丁包需涵盖的内容及来源 274
10.2产品补丁包测试的基本流程 275
10.2.1确定补丁包里需要包含的内容 277
10.2.2制定好计划是关键 280
10.2.3执行开始前要做好准备工作 285
10.2.4测试开始及状态跟踪 286
10.2.5补丁包成功发布 288
10.3其他的流程和考虑因素 288
10.3.1缺陷分析要做到位 289
10.3.2补丁包测试的自动化考虑 291
10.4学习笔记——补丁包测试之小艾观 293
第11章 一遍又一遍:自动化的好处多 294
11.1软件测试的工业化——自动化 294
11.2自动化的利与弊 295
11.3武功入门口诀——自动化脚本的关键 297
11.3.1有效发现缺陷 298
11.3.2详细的错误日志 299
11.3.3良好的可读性 300
11.3.4运行独立性与可重复性 302
11.4修炼进阶——开发适合自己的自动化框架 303
11.4.1需求分析——我们需要什么 304
11.4.2环境准备自动化——将自动化进行到底 305
11.4.3实现需要考虑的问题 306
11.4.4多台机器同时跑——自动化效率更上一层楼 307
11.5收发自如——灵活的自动化测试策略 307
11.5.1越早越好?——自动化脚本开发的时间 307
11.5.2让软件健康成长——回归测试中的自动化 309
11.5.3永远的录制/回放?——自动化方式的选取 310
11.5.4论持久战——测试脚本的配置管理 311
11.5.5拒绝半成品——测试脚本的验收 312
11.6实战洗礼——养兵千日用兵一时 313
11.6.1高,实在是高——自动化测试的效率 314
11.6.2无处不在的地雷——自动化测试的稳定性 314
11.6.3人员匮乏——现实和理想的差距 315
11.6.4如何定义自动化比例 316
11.6.5自动化VS手动测试 316
11.7学习笔记——自动化测试之小艾观 317
第12章 辗转腾挪:身手敏捷的测试 319
12.1我和天使有个约会——初识敏捷 319
12.1.1团结协作,质量为要,快速交付,响应变化,持续改进——敏捷的基本原则 320
12.1.2一切以用户价值为中心——敏捷开发基本流程 326
12.1.3敏捷=不做计划吗 331
12.2敏捷转型——一步一个脚印 332
12.2.1分析现状,尝试转型 333
12.2.2万里长征第一步,从迭代周期开始 334
12.2.3开发测试同步,按Sprint交付增量 335
12.2.4组建统一团队,通过用户故事驱动 337
12.2.5适合敏捷开发的实践和工具 341
12.3互通有无——与其他实施敏捷的团队的探讨 343
12.4学习笔记——敏捷之小艾观 346
第13章 涅槃!华山论剑:测试架构师的诞生 348
13.1走技术路线还是管理路线,或者当架构师 348
13.2测试架构师是干啥的 351
13.3测试架构师之N项修炼 354
13.3.1技术技能修炼 354
13.3.2软技能修炼 358
13.4测试“九阴真经”——总体测试计划 360
13.5将缺陷扼杀在萌芽阶段 362
13.6火眼金睛——到底哪儿被测试遗漏了 364
13.6.1什么是代码覆盖率测试 364
13.6.2代码覆盖率测试工具 365
13.6.3代码覆盖率测试实战 368
13.6.4代码覆盖率测试与自动化测试的集成 369
13.7测试过程改进 370
13.7.1什么是价值流程图 370
13.7.2时间被消耗在了哪些地方 371
13.8测试驱动的软件设计变革 372
13.8.1测试人员没有主动权吗 372
13.8.2性能引发的软件设计变革 374
13.9软件系统的RAS保证 376
13.10学习笔记——测试架构师之小艾观 378