全程软件测试(第2版)
2014-1
电子工业出版社
朱少民
无
《全程软件测试(第2版)》全力主张“软件测试贯穿软件开发整个生命周期”的思想及其实践,无论在传统测试中还是在敏捷测试中都具有很好的指导作用。《全程软件测试(第2版)》的素材来源于十几年的测试工作,进行了很好的组织和提炼,力求做到易于理解、所学即所用、行之有效,并融入了敏捷测试、探索式测试等新的实践经验,能更好地满足测试人员的当前实际工作需求。《全程软件测试(第2版)》共分12章,以案例为背景,以项目实际运行的全过程为路线图,全面展开软件测试的思维方式、流程、方法和优秀实践,涉及测试计划、测试需求分析与设计、软件评审、自动化测试、测试执行、缺陷跟踪、结果评估等关键内容,最后辅以深刻的剖析与总结。
第0章 引子 1
0.1 究竟什么是软件测试? 2
0.2 究竟什么是敏捷测试? 3
0.3 软件测试的作用 6
0.4 软件测试在SDLC中的位置 7
0.5 传统的软件测试过程 9
0.6 敏捷测试过程 12
第1章 测试项目启动 14
1.1 了解软件的质量需求 15
1.1.1 软件产品的质量需求 15
1.1.2 软件质量的对立面——软件缺陷 18
1.1.3 软件缺陷产生的原因 20
1.1.4 软件测试的目标 22
1.2 项目测试团队 24
1.2.1 测试过程和开发过程的关系 24
1.2.2 团队组建 27
1.2.3 培训 29
1.2.4 测试团队在项目中的位置 30
1.3 掌控项目背景 32
1.3.1 软件测试的项目要素 32
1.3.2 两个典型项目的介绍 34
1.4 确定测试规范 36
1.5 小结 44
第2章 测试需求分析与计划 45
2.1 软件测试的目标和基本需求 46
2.1.1 质量要求 46
2.1.2 测试目标 49
2.1.3 基本的测试需求 50
2.2 项目的测试需求 53
2.2.1 测试需求分析的基本方法 54
2.2.2 测试需求的分析技术 55
2.2.3 功能测试范围分析 56
2.2.4 非功能性的系统测试需求 60
2.3 测试工作量估算 66
2.3.1 工作量的估计 66
2.3.2 工作分解结构表方法 68
2.3.3 工作量估计的实例 70
2.4 测试资源需求 73
2.5 测试里程碑和进度安排 74
2.5.1 传统测试 74
2.5.2 敏捷测试 75
2.6 测试风险分析 76
2.7 制定有效的测试策略 81
2.8 完整生成测试计划书 85
2.9 小结 86
第3章 需求与设计的评审 88
3.1 产品需求评审 89
3.1.1 需求评审的重要性 89
3.1.2 测试人员在需求评审中的角色 92
3.1.3 需求评审的标准 94
3.1.4 需求的可测试性 96
3.2 系统架构的审查 97
3.2.1 系统架构选型的确认 97
3.2.2 软件设计评审标准 99
3.2.3 设计的可测试性 102
3.2.4 系统组件设计的审查 105
3.3 产品设计规格说明书的复审 107
3.3.1 重视设计规格说明书的审查 107
3.3.2 设计规格说明书的多层次审查 108
3.3.3 界面设计的评审 109
3.3.4 验证过程与确认过程 110
3.4 系统部署设计的审查 112
3.4.1 系统部署逻辑设计的审查 113
3.4.2 软件部署物理设计的审查 114
3.4.3 可用性设计的审查 115
3.4.4 可伸缩性设计的验证 119
3.4.5 安全性设计的验证 121
3.5 小结 121
第4章 测试设计 123
4.1 测试用例框架的设计 124
4.1.1 为什么需要测试用例 124
4.1.2 测试用例设计考虑因素 125
4.1.3 测试用例框架的构成 127
4.1.4 测试用例的元素 129
4.2 探索式测试之设计 130
4.3 功能测试用例的设计 133
4.3.1 功能测试用例的内容 135
4.3.2 功能测试用例的设计方法 136
4.3.3 等价类划分法与边界值分析法 136
4.3.4 决策表与因果图法 141
4.3.5 功能图法 144
4.3.6 PAIR-WISE方法和正交实验设计方法 145
4.4 非功能性测试设计 148
4.4.1 故障转移测试设计 148
4.4.2 系统安全性测试设计 150
4.5 测试用例的审查 153
4.5.1 测试用例书写标准 153
4.5.2 测试用例评审要点 154
4.6 测试套件的创建 157
4.7 小结 160
第5章 测试工具选择和脚本开发 161
5.1 测试工具的需求分析 162
5.1.1 测试工具的优势 162
5.1.2 测试工具的实现原理 163
5.2 测试工具的选择 167
5.2.1 测试工具选择的标准 167
5.2.2 测试工具选择的误区 170
5.3 商业测试工具解决方案 171
5.4 开源测试工具解决方案 172
5.5 测试脚本的开发 174
5.5.1 测试自动化策略 175
5.5.2 适应测试脚本开发的测试用例 176
5.5.3 测试脚本的重构和优化 178
5.6 小结 179
第6章 单元测试 180
6.1 程序代码的审查 181
6.1.1 代码审查的方法和范围 181
6.1.2 代码风格的审查 183
6.1.3 编程规则的审查 186
6.2 单元测试内容 189
6.2.1 什么是单元测试 189
6.2.2 单元测试的现状和作用 191
6.2.3 单元测试的方法 192
6.3 单元测试用例的设计 194
6.3.1 语句覆盖法 194
6.3.2 判定和条件覆盖法 196
6.3.3 基本路径测试法 198
6.3.4 多种白盒测试方法的比较和总结 199
6.3.5 循环结构的测试用例 201
6.3.6 单元测试的典型实例 203
6.4 单元测试工具 205
6.4.1 静态代码分析 206
6.4.2 测试覆盖率工具EMMA 207
6.5 小结 210
第7章 功能测试的执行 211
7.1 测试执行概述 212
7.2 测试执行的准备 214
7.2.1 测试任务安排 215
7.2.2 测试环境的建立 216
7.2.3 测试环境的设置 217
7.2.4 测试自动化运行平台 219
7.3 如何有效地创建测试套件 221
7.3.1 功能测试套件的创建 221
7.3.2 测试环境的爆炸性组合及其优化 223
7.4 功能测试自动化的执行 226
7.5 敏捷测试的执行 229
7.5.1 策略与实践 229
7.5.2 探索式测试的执行 231
7.6 用户界面和适用性测试 233
7.7 回归测试 237
7.8 软件缺陷的报告 240
7.8.1 缺陷的属性 240
7.8.2 缺陷的详细描述 243
7.8.3 如何报告缺陷 245
7.9 小结 246
第8章 国际化和本地化测试 247
8.1 国际化测试 248
8.1.1 软件国际化的基本要求 249
8.1.2 国际化测试 253
8.1.3 I18N测试实例 255
8.2 本地化测试 257
8.2.1 软件本地化的质量需求 258
8.2.2 本地化测试的基本内容 260
8.2.3 L10N的功能测试 262
8.2.4 L10N的数据格式验证 264
8.2.5 L10N的UI验证 268
8.2.6 L10N的配置和兼容性验证 268
8.2.7 L10N的翻译验证 270
8.3 I18N和L10N测试工具 271
8.4 小结 273
第9章 系统非功能性测试 275
9.1 实施要求和策略 276
9.2 WEB应用服务器的负载测试 278
9.2.1 负载测试的加载方式 278
9.2.2 负载测试的准备工作 279
9.2.3 负载测试的执行 282
9.2.4 负载测试的结果分析 284
9.3 WEB应用服务器的性能测试 285
9.4 WEB安全性测试 287
9.5 容错性测试 289
9.6 数据库的性能测试 290
9.7 兼容性测试 294
9.8 小结 297
第10章 后续测试 299
10.1 验收测试 299
10.2 部署测试 303
10.2.1 客户端软件安装测试 303
10.2.2 后台系统的部署测试 305
10.3 在线测试 306
10.4 后继版本的测试 308
10.5 小结 310
第11章 测试的跟踪和管理 311
11.1 测试管理 312
11.1.1 测试管理的全局性 312
11.1.2 测试管理思想和策略 313
11.1.3 测试管理系统的应用 315
11.1.4 测试管理工具 317
11.2 测试用例的管理 320
11.2.1 测试用例管理架构 320
11.2.2 管理与维护要点 321
11.3 测试自动化的管理 323
11.3.1 测试自动化的管理准则 323
11.3.2 测试自动化的框架 327
11.3.3 测试自动化的流程 328
11.4 缺陷跟踪和分析 330
11.4.1 缺陷生命周期 330
11.4.2 缺陷状态的跟踪 332
11.4.3 缺陷的分析 333
11.4.4 累计缺陷趋势分析 336
11.5 测试进度和风险的控制 337
11.5.1 测试进度管理 337
11.5.2 测试风险的控制 341
11.6 测试覆盖度和结果分析 343
11.6.1 测试覆盖评估 344
11.6.2 基于软件缺陷的质量评估 346
11.6.3 软件缺陷清除率 348
11.6.4 测试报告的模板、实例 350
11.7 小结 354
第12章 总结与思考 355
12.1 软件测试的现实和原则 356
12.1.1 测试的现实 356
12.1.2 测试的原则 357
12.2 软件测试的多维空间 363
12.3 软件测试之辩证统一 364
12.3.1 白盒测试方法和黑盒测试方法 365
12.3.2 静态测试和动态测试 366
12.3.3 主动测试和被动测试 366
12.3.4 基于脚本测试和探索式测试 367
12.3.5 手工测试和自动化测试 369
12.3.6 测试方法综合应用的总结 370
12.4 软件测试的优秀实践 371
12.4.1 测试有效性和风险性的平衡 372
12.4.2 测试计划的优秀实践 373
12.4.3 测试设计的优秀实践 374
12.4.4 测试执行的优秀实践 375
12.4.5 测试团队建设中的优秀实践 377
12.5 持续改进 379
12.5.1 TMMI和TPI NEXT分析 380
12.5.2 构建更实用的持续改进模型 382
附录A 软件测试全景图 388
附录B 测试计划(GB8567-2006) 391
附录C 测试用例设计模板 398
附录D 软件缺陷模板 401
附录E 代码审查的示范性列表 403
附录F 软件测试相关的国家标准 407
附录G 软件测试术语中英文对照 409
附录H 参考书目和资源 414
无