本书系统阐述自动化测试在软件开发生命周期中的理论体系与工程实践。
本书从自动化测试方法论入手,全面覆盖软件全生命周期中的应用场景,包括测试左移、持续集成、测试右移、敏捷开发和DevOps等;深入探讨自动化测试的框架选型、测试用例管理、测试策略等核心理论与方法;详细解析TDD、ATDD和活文档等自动化测试实践;对比分析单元测试、API自动化测试、UI自动化测试、性能测试和自动化安全测试等不同测试类型,并介绍在不同平台下的数十种主流开源自动化测试框架和工具。此外,本书前瞻性地探讨自动化测试在Serverless架构下的应用,以及大语言模型辅助自动化测试的理论与实践。
为增强学习效果,本书附赠超过10小时的配套教学视频,使本书兼具理论深度与实践指导价值。
本书可作为软件测试工程师、质量分析师、软件开发人员和项目管理人员的参考书,也可作为高等院校计算机及相关专业师生的教学用书。
拥抱开源,引领行业突破自动化测试瓶颈;
系统阐述自动化测试在软件开发生命周期中的理论体系与工程实践;
既有自动化“术”的硬核工具实战,更有质量保障“道”的体系构建;
融入Serverless/AI等前沿技术,拒绝技术过时焦虑;
随书附赠:
·思维导图-梳理上百个开源工具和框架列表;
·扫码看视频-超10小时开源工具教学。
刘冉,前Thoughtworks首席软件测试和质量咨询师,拥有20多年的软件开发和测试经验。《现代软件测试技术之美》《软件研发效能提升实践》等图书及Thoughtworks《质量体系白皮书》作者之一,《质量三人行》播客主播。
第 1章 全程软件自动化测试绪论 1
1.1 软件自动化测试的概念 1
1.2 软件自动化测试的意义 3
1.3 测试自动化与自动化测试 4
1.4 全程软件自动化测试 6
1.5 小结 8
第 2章 自动化测试的基础 9
2.1 自动化测试的环境、工具和框架 9
2.1.1 自动化测试环境介绍 10
2.1.2 自动化测试工具和框架介绍 10
2.1.3 自动化测试框架的4种类型 11
2.1.4 自动化测试框架的选择 16
2.2 自动化测试用例、数据和有效性 17
2.2.1 测试用例编写和管理 18
2.2.2 测试数据 26
2.2.3 自动化测试的有效性 26
2.3 自动化测试策略 27
2.3.1 测试策略 27
2.3.2 测试策略分类 28
2.3.3 测试策略实例 32
2.4 自动化测试架构设计 37
2.5 自动化测试执行流水线 38
2.6 自动化测试与敏捷测试 41
2.6.1 敏捷测试的现状 41
2.6.2 敏捷测试的原则 42
2.6.3 敏捷测试实践与管理体系 43
2.6.4 敏捷测试宣言 52
2.7 小结 52
第3章 测试左移 55
3.1 测试左移与TDD 56
3.1.1 TDD的概念 57
3.1.2 TDD的实施 59
3.1.3 TDD已死? 65
3.2 自动化测试与活文档 67
3.2.1 活文档框架比较 68
3.2.2 自动化测试框架选择建议 69
3.2.3 框架选择案例 71
3.3 小结 74
第4章 单元测试 75
4.1 单元测试介绍 75
4.1.1 单元测试的优势 76
4.1.2 单元测试的限制 77
4.2 Web应用单元测试 78
4.2.1 前端单元测试(JavaScript版) 78
4.2.2 后端单元测试(Java版) 80
4.3 移动应用与嵌入式应用的单元测试 82
4.3.1 移动应用单元测试(Android或iOS版) 82
4.3.2 嵌入式应用单元测试(C语言或C++版) 84
4.4 小结 86
第5章 API自动化测试 87
5.1 Web API自动化测试 88
5.1.1 Web API测试框架(代码) 89
5.1.2 测试工具(图形界面) 91
5.2 Web API测试中的虚拟化 93
5.2.1 服务虚拟化 93
5.2.2 选择Hoverfly的原因 98
5.3 Web API与契约测试 100
5.3.1 契约测试的概念 101
5.3.2 契约测试面临的挑战 102
5.3.3 契约测试的主要实践 102
5.4 小结 103
第6章 UI自动化测试 105
6.1 Web UI自动化测试 107
6.2 移动应用UI自动化测试 110
6.3 小结 113
第7章 性能测试 115
7.1 Web应用系统性能测试 116
7.1.1 Web应用服务端性能测试工具和框架 118
7.1.2 测试工具和框架的并发模型 120
7.2 Web页面前端性能测试 125
7.2.1 Lighthouse 125
7.2.2 Cypress和Lighthouse 127
7.3 移动应用性能测试 129
7.4 持续性能测试 130
7.4.1 当前性能测试存在的问题 131
7.4.2 性能测试应该拥有的特点 132
7.5 小结 135
第8章 自动化安全测试 137
8.1 安全测试 137
8.1.1 安全漏洞 138
8.1.2 安全测试 139
8.1.3 安全测试的分类 140
8.2 Web应用自动化安全测试 144
8.3 移动应用安全测试 149
8.4 小结 151
第9章 其他自动化测试 153
9.1 测试右移与自动化测试 153
9.2 猴子测试与自动化测试 155
9.3 变异测试与自动化测试 156
9.4 精准测试与自动化测试 157
9.5 特定类型系统与自动化测试 158
9.5.1 微服务系统与自动化测试 158
9.5.2 大数据系统与自动化测试 159
9.5.3 数据库系统与自动化测试 159
9.5.4 Linux、Android等操作系统与自动化测试 160
9.6 小结 161
第 10章 Serverless与测试服务化 163
10.1 Serverless 163
10.2 测试服务化 165
10.3 基于Serverless的测试服务化 166
10.4 实现一个基于Serverless的自动化测试服务化平台 167
10.5 小结 171
第 11章 大语言模型辅助自动化测试 173
11.1 大语言模型如何辅助自动化测试 173
11.2 大语言模型实践介绍 176
11.2.1 大语言模型的优势与痛点 176
11.2.2 预训练与微调 178
11.2.3 可以辅助测试的开源大语言模型 179
11.3 RAG 181
11.3.1 RAG的优势与痛点 181
11.3.2 可以辅助测试的开源RAG框架 182
11.4 开源测试智能体 184
11.5 小结 186
第 12章 自动化测试的未来 187
12.1 规模化软件开发的必由之路是大规模自动化测试 187
12.2 AI辅助自动化测试需要大力发展 190
12.3 安全开发流程与自动化安全测试需要得到更多关注 192
12.4 性能工程的复兴 194
12.5 有效和高效的敏捷开发与持续交付需要全量/精准自动化测试 195
12.6 小结 195