目录
序 1
前言 3
第1 章 全栈测试简介 .9
1.1 高质量的全栈测试 11
1.2 测试左移13
1.3 10 项全栈测试技能 16
1.4 关键知识点 19
第2 章 手动探索性测试 .21
2.1 构建模块23
2.1.1 探索性测试框架 23
2.1.2 探索功能 .32
2.2 手动探索性测试策略 36
2.2.1 了解应用程序 36
2.2.2 部分探索 .38
2.2.3 分阶段重复探索性测试 40
2.3 练习 .40
2.3.1 API 测试 41
2.3.2 Web 界面测试 48
2.4 观点:干净的测试环境 .54
2.5 关键知识点 55
第3 章 自动化功能测试 .57
3.1 构建模块59
3.2 自动化测试策略 65
3.3 练习 .66
3.3.1 UI 功能测试 67
3.3.2 服务测试 .87
3.3.3 单元测试 .92
3.4 其他测试工具 .96
3.4.1 Pact 96
3.4.2 Karate .101
3.4.3 自动化功能测试中的AI/ML 工具 101
3.5 展望 103
3.5.1 要克服的反模式 103
3.5.2 100% 自动化覆盖率! 105
3.6 关键知识点 107
第4 章 持续测试 . 109
4.1 构建模块. 110
4.1.1 持续集成简介 . 110
4.1.2 CI/CT/CD 过程 111
4.1.3 原则和礼仪 . 115
4.2 持续测试策略 117
4.3 练习 122
4.3.1 Git 122
4.3.2 Jenkins 126
4.4 四个关键指标 130
4.5 关键知识点 132
第5 章 数据测试 . 135
5.1 构建模块. 136
5.1.1 数据库 138
5.1.2 缓存 . 142
5.1.3 批处理系统 . 143
5.1.4 事件流 144
5.2 数据测试策略 146
5.3 练习 148
5.3.1 SQL .149
5.3.2 JDBC 155
5.3.3 Apache Kafka 和Zerocode 158
5.4 其他测试工具 167
5.4.1 测试容器 167
5.4.2 Deequ . 168
5.5 关键知识点 169
第6 章 视觉测试 . 171
6.1 构建模块. 172
6.1.1 视觉测试介绍 . 172
6.1.2 项目/ 业务关键用例 174
6.2 前端测试策略 176
6.2.1 单元测试 176
6.2.2 集成/ 组件测试 . 177
6.2.3 快照测试 178
6.2.4 端到端功能测试 180
6.2.5 视觉测试 180
6.2.6 跨浏览器测试 . 181
6.2.7 前端性能测试 . 182
6.2.8 可访问性测试 . 183
6.3 练习 183
6.3.1 BackstopJS 183
6.3.2 Cypress 188
6.4 附加测试工具 191
6.4.1 Applitools Eyes,一款人工智能工具 . 192
6.4.2 Storybook . 193
6.5 透视图:视觉测试挑战 194
6.6 关键知识点 195
第7 章 安全测试 . 197
7.1 构建模块. 199
7.1.1 常见的网络攻击 200
7.1.2 STRIDE 威胁模型 203
7.1.3 应用程序漏洞 . 205
7.1.4 威胁模型 208
7.2 安全测试策略 215
7.3 练习 218
7.3.1 OWASP 依赖项检查 218
7.3.2 OWASP ZAP 220
7.4 附加测试工具 227
7.4.1 Snyk IDE 插件 228
7.4.2 Talisman 预提交钩子 228
7.4.3 Chrome 开发工具和Postman .229
7.5 观点:安全是一种习惯 230
7.6 关键知识点 231
第8 章 性能测试 . 233
8.1 后端性能测试构建块 234
8.1.1 业绩、销售和周末休假是相互关联的! 234
8.1.2 简单的性能目标 235
8.1.3 影响应用程序性能的因素 236
8.1.4 关键性能指标 . 237
8.1.5 性能测试的类型 239
8.1.6 负载模式的类型 240
8.1.7 性能测试步骤 . 242
8.2 练习 245
8.2.1 步骤1:确定目标KPI 245
8.2.2 步骤2:设计测试用例 247
8.2.3 步骤3~ 步骤5:准备数据、环境和工具 .247
8.2.4 步骤6:编写测试用例脚本并使用JMeter 运行它们 .248
8.3 其他测试工具 256
8.3.1 Gatling 256
8.3.2 Apache Benchmark 257
8.4 前端性能测试构建块 258
8.4.1 影响前端性能的因素 260
8.4.2 RAIL 模型 261
8.4.3 前端性能指标 . 262
8.5 练习 263
8.5.1 WebPageTest 264
8.5.2 Lighthouse 267
8.6 其他测试工具 270
8.6.1 PageSpeed Insights 270
8.6.2 Chrome DevTools .270
8.7 性能测试策略 271
8.8 关键知识点 274
第9 章 可访问性测试 275
9.1 构建模块. 276
9.1.1 辅助功能用户角色 277
9.1.2 无障碍生态系统 278
9.1.3 示例:屏幕阅读器 279
9.1.4 WCAG 2.0:指导原则和级别 280
9.1.5 A 级符合性标准 281
9.1.6 支持辅助功能的开发框架 284
9.2 可访问性测试策略 . 284
9.2.1 用户案例中的可访问性检查表 285
9.2.2 自动化辅助功能审核工具 286
9.2.3 手动测试 287
9.3 练习 288
9.3.1 WAVE . 288
9.3.2 Lighthouse 291
9.3.3 Lighthouse Node Module 293
9.4 其他测试工具 295
9.4.1 Pa11y CI Node Module 295
9.4.2 Axe-core 296
9.5 视角:无障碍作为一种文化 . 296
9.6 关键知识点 297
第10 章 跨功能需求测试 . 299
10.1 构建模块 300
10.2 CFR 测试策略 303
10.2.1 功能性 . 304
10.2.2 可用性 . 305
10.2.3 可靠性 . 306
10.2.4 高性能 . 307
10.2.5 可支持性 307
10.3 其他CFR 测试方法 308
10.3.1 混沌工程 308
10.3.2 架构测试 312
10.3.3 基础实施测试 314
10.3.4 一致性测试 316
10.4 观点:进化和时间的考验! 320
10.5 关键知识点 . 320
第11 章 移动测试 323
11.1 构建模块 324
11.1.1 移动环境简介 324
11.1.2 移动应用架构 329
11.2 移动测试策略 331
11.2.1 手动探索性测试 .332
11.2.2 功能自动化测试 .334
11.2.3 数据测试 334
11.2.4 视觉测试 335
11.2.5 安全测试 335
11.2.6 性能测试 336
11.2.7 可访问性测试 337
11.2.8 CFR 测试 338
11.3 练习 340
11.3.1 Appium 340
11.3.2 Appium 视觉测试插件 .347
11.4 其他测试工具 351
11.4.1 Android Studio 的数据库检查器 .351
11.4.2 性能测试工具 352
11.4.3 安全测试工具 354
11.4.4 Accessibility Scanner 356
11.5 观点:移动测试金字塔 357
11.6 关键知识点 .358
第12 章 超越测试 359
12.1 测试的第一原则 359
12.1.1 缺陷预防大于缺陷检测 360
12.1.2 共情能力测试 361
12.1.3 微观和宏观测试 . 361
12.1.4 快速反馈 362
12.1.5 持续反馈 363
12.1.6 衡量质量指标 363
12.1.7 沟通和协作是质量的关键 . 365
12.2 软技能帮助建立质量第一的心态 365
12.3 总结 367
第13 章 新兴技术测试简介 369
13.1 人工智能与机器学习 . 370
13.1.1 机器学习概论 370
13.1.2 测试ML 应用程序 372
13.2 区块链 374
13.2.1 区块链概念简介 . 375
13.2.2 测试区块链应用程序 377
13.3 物联网技术 . 379
13.3.1 物联网五层架构简介 380
13.3.2 测试物联网应用程序 381
13.4 增强现实与虚拟现实 . 383