全程软件测试(第3版)
作者: 朱少民 著
出版时间: 2019
本书系统地总结了过去十年中软件测试发生的变化,浓缩了作者许多宝贵的软件测试经验。本书首先介绍对于软件测试的不同看法,全程软件测试的思想,软件测试的基础设施与TA框架、团队能力建设;然后逐步深入到测试的计划、设计、执行、持续反馈和改进;接着,讨论全程测试的思想,包括全程静态测试、全程性能测试、全程安全性、全程建模、全程可视化。本书最后展望了软件测试的未来。本书适合软件测试人员阅读,也可作为相关专业人士的参考指南。
目录
- 第 1章360度看软件测试:一览无余1
- 1.1软件测试基本认知——正反思维2
- 1.2从狭义测试到广义测试3
- 1.3基于质量的认知5
- 1.4基于风险的认知8
- 1.5基于社会性的认知8
- 1.6基于经济的认知9
- 1.7基于标准的认知9
- 1.8基于Test Oracle的认知11
- 1.9基于批判性思维的认知14
- 1.10基于传统开发模式的认知16
- 1.11基于敏捷开发模式的认知17
- 1.12小结20
- 第2章 全程测试:闪光的思想22
- 2.1测试左移与右移23
- 2.2测试驱动开发24
- 2.3传统研发模式的测试环28
- 2.4敏捷研发中的测试环30
- 2.5DevOps与测试32
- 2.6小结34
- 第3章准备:基础设施与TA框架35
- 3.1虚拟机与容器技术35
- 3.2基础设施即代码38
- 3.3持续集成环境39
- 3.3.1版本管理与构建41
- 3.3.2CI管理工具的安装42
- 3.4自动化测试框架45
- 3.4.1自动化测试框架的构成与
- 分类45
- 3.4.2单元测试框架48
- 3.4.3UI TA框架51
- 3.4.4移动应用TA框架57
- 3.4.5面向API的TA测试框架60
- 3.4.6验收测试框架64
- 3.5DevOps完整工具链68
- 3.6小结72
- 第4章准备:个体与团队73
- 4.1全栈,体现了技术深度74
- 4.2个人测试能力模型77
- 4.3软件测试思维训练81
- 4.3.1软件测试系统性思维81
- 4.3.2分析性测试思维86
- 4.3.3批判性测试思维91
- 4.3.4创造性、发散性测试思维95
- 4.4软件研发团队测试组织与能力98
- 4.5软件研发团队测试过程改进99
- 4.6DevOps对软件测试人员的影响
- 分析102
- 4.7小结105
- 第5章项目启动:知己知彼、
- 百战不殆107
- 5.1用户与质量要求108
- 5.1.1用户是谁108
- 5.1.2对质量有什么要求109
- 5.1.3参照哪些质量标准110
- 5.2项目背景112
- 5.3产品元素113
- 5.4测试方法和技术115
- 5.5确定测试规范116
- 5.6小结122
- 第6章测试计划:分析与策略123
- 6.1软件测试的目标124
- 6.1.1分析软件产品的特定质量
- 要求125
- 6.1.2测试目标127
- 6.2项目的测试需求129
- 6.2.1测试需求分析的基本
- 方法130
- 6.2.2测试需求的分析技术132
- 6.2.3功能需求分析133
- 6.2.4非功能性需求分析137
- 6.3测试工作量估算140
- 6.3.1工作量的估计141
- 6.3.2工作分解结构表方法142
- 6.3.3工作量估计的实例145
- 6.4测试资源需求147
- 6.5测试里程碑和进度安排148
- 6.5.1传统测试149
- 6.5.2敏捷测试149
- 6.6测试风险分析150
- 6.7如何制订有效的测试策略154
- 6.8编写测试计划书160
- 6.9小结161
- 第7章测试设计:架构与用例163
- 7.1测试框架的设计163
- 7.1.1从需求到测试用例164
- 7.1.2基于SUT结构来组织
- 设计166
- 7.2测试设计要考虑的因素170
- 7.3如何运用测试设计方法171
- 7.4非功能性测试也存在设计176
- 7.5探索式测试之设计177
- 7.6测试用例规范性与评审181
- 7.6.1测试用例的构成181
- 7.6.2测试用例书写标准182
- 7.6.3测试用例评审要点183
- 7.7测试集的创建186
- 7.8小结189
- 第8章测试执行:自动与探索190
- 8.1测试执行概述190
- 8.2测试执行的准备193
- 8.2.1测试任务安排193
- 8.2.2测试环境的建立与配置194
- 8.2.3测试自动化运行平台195
- 8.3如何有效地创建测试集196
- 8.4敏捷测试的执行198
- 8.4.1策略与实践198
- 8.4.2探索式测试的执行200
- 8.5用户体验和易用性测试202
- 8.5.1易用性测试的标准202
- 8.5.2如何进行A/B测试206
- 8.6回归测试209
- 8.7软件缺陷的报告212
- 8.7.1缺陷的属性及其描述212
- 8.7.2如何有效报告缺陷214
- 8.8小结215
- 第9章永不收尾:持续反馈与改进216
- 9.1验收测试216
- 9.2部署验证220
- 9.2.1客户端软件安装测试220
- 9.2.2后台系统的部署验证222
- 9.3在线测试与日志分析222
- 9.4后继版本的测试226
- 9.5测试过程评审228
- 9.6团队反思:持续改进229
- 9.7小结233
- 第10章 全程静态测试:
- 以不变应万变234
- 10.1常用的评审方法234
- 10.2需求评审优秀实践237
- 10.2.1如何操作需求评审238
- 10.2.2需求评审的标准239
- 10.2.3需求的可测试性241
- 10.3系统架构的审查242
- 10.3.1系统架构选型的确认243
- 10.3.2软件设计评审标准244
- 10.3.3设计的可测试性248
- 10.3.4系统组件设计的审查250
- 10.4产品设计规格说明书的复审252
- 10.4.1重视设计规格说明书的
- 审查252
- 10.4.2设计规格说明书的多层次
- 审查253
- 10.4.3界面设计的评审254
- 10.5系统部署设计的审查255
- 10.5.1系统部署逻辑设计的
- 审查256
- 10.5.2软件部署物理设计的
- 审查258
- 10.5.3可用性设计的审查259
- 10.5.4可伸缩性设计的验证263
- 10.5.5安全性设计的验证264
- 10.6代码评审与静态分析264
- 10.7小结267
- 第11章 全程性能测试:持续优化268
- 11.1常见的性能问题268
- 11.2如何确定系统的性能需求269
- 11.2.1明确性能测试的基本
- 目标270
- 11.2.2关键性能指标分析271
- 11.2.3关键业务分析273
- 11.3如何完成性能测试的设计274
- 11.3.1如何模拟用户操作274
- 11.3.2如何有效地模拟加载
- 过程275
- 11.3.3如何实时准确地控制
- 加载278
- 11.4如何执行性能测试279
- 11.5如何分析和评估测试结果286
- 11.6小结289
- 第12章 全程安全性:持续加固290
- 12.1贯穿研发生命周期的安全性测试290
- 12.2滥用案例与安全性需求293
- 12.2.1软件系统存在哪些安全
- 漏洞293
- 12.2.2国内外标准中关于系统
- 安全性的要求295
- 12.2.3安全性测试需求分析297
- 12.3安全性风险分析298
- 12.4安全性静态测试301
- 12.5渗透测试302
- 12.6系统运维安全性监控与审计306
- 12.7小结307
- 第13章 全程建模:彻底自动化309
- 13.1测试过程模型310
- 13.2基于模型的测试312
- 13.3基于业务建模的MBT方法314
- 13.3.1基于业务流程建模314
- 13.3.2基于事件流、应用
- 场景建模316
- 13.4基于UML的MBT方法318
- 13.4.1基于UML的MBT具体
- 实现319
- 13.4.2基于有限状态机建模321
- 13.5小结323
- 第14章 全程可视化:管理无死角326
- 14.1测试过程的度量体系326
- 14.1.1测试管理的全局性与
- 层次性327
- 14.1.2测试过程度量指标体系328
- 14.2测试全过程的度量332
- 14.2.1测试分析与设计的度量333
- 14.2.2代码评审与分析的度量336
- 14.2.3测试执行的度量338
- 14.2.4与缺陷相关的度量340
- 14.2.5测试充分性和上线后的
- 度量345
- 14.3测试度量管理与工具346
- 14.4测试用例管理348
- 14.5测试管理工具的应用350
- 14.6小结353
- 第15章 测试展望:未来更具挑战355
- 15.1云计算与测试的基础设施355
- 15.2微服务、契约测试与自动化
- 测试工具357
- 15.2.1契约测试工具358
- 15.2.2智能的单元测试工具360
- 15.2.3前端测试工具362
- 15.3如何测试人工智能软件363
- 15.4如何用AI技术为测试服务365
- 15.4.1AI技术及其应用365
- 15.4.2AI技术如何应用于测试367
- 15.4.3AI测试工具372
- 15.5小结375
- 附录A测试中的记忆符号:
- 测试思维宝库376
- 附录B测试计划(GB8567—
- 2006)382
- B.1引言382
- B.1.1标识382
- B.1.2系统概述382
- B.1.3文档概述382
- B.1.4与其他计划的关系382
- B.1.5基线382
- B.2引用文件382
- B.3软件测试环境383
- B.4计划384
- B.4.1总体设计384
- B.4.2计划执行的测试385
- B.4.3测试用例386
- B.5测试进度表386
- B.6需求的可追踪性387
- B.7评价387
- B.7.1评价准则387
- B.7.2数据处理387
- B.7.3结论387
- B.8注解387
- B.9附录388
- 附录C代码审查的示范性列表389
- E.1格式389
- E.2程序语言的使用389
- E.3数据引用错误389
- E.4数据声明错误390
- E.5计算错误390
- E.6比较错误391
- E.7入口和出口的连接391
- E.8存储器的使用391
- E.9控制流程错误391
- E.10子程序参数错误392
- E.11输入/输出错误392
- E.12逻辑和性能392
- E.13维护性和可靠性393
- 附录DRF库与工具394
- 附录E软件测试术语中英文对照399
-
参考文献404