敏捷测试 以持续测试促进持续交付 评分 1.0
评分
1.0
2次评价
作者: 朱少民 /李洁
出版社: 人民邮电出版社
发行年月: 2021-08
装帧: 平装
版次: 2021-08第一版第一次印刷
页数: 465
定价: 129.9元
ISBN: 9787115560988
评价:
点个赞,支持一下吧~
作者介绍

朱少民 (未认领)
李洁 (未认领)
目录

第 1 章  铺垫:敏捷开发价值观、原则与实践/ 1

导读/ 1

1.1 敏捷开发模式的由来/ 2

1.1.1 新产品开发方式Scrum / 3

1.1.2 轻量级软件开发方法/ 5

1.1.3 敏捷宣言的诞生/ 6

1.2 敏捷价值观/ 7

1.3 敏捷开发原则/ 8

1.4 常见的敏捷开发框架/ 9

1.4.1 极限编程/ 9

1.4.2 行为驱动开发/ 13

1.4.3 特性驱动开发/ 15

1.4.4 Scrum 开发框架/ 17

1.5 敏捷与看板、精益的关系/ 20

1.5.1 看板/ 21

1.5.2 精益软件开发实践/ 23

1.6 敏捷与DevOps 的关系/ 26

本章小结/ 29

延伸阅读/ 29

第 2 章 基础:敏捷测试之道/ 31

导读/ 31

2.1 什么是敏捷测试/ 32

2.1.1 从一个真实的案例说起/ 32

2.1.2 敏捷测试的含义/ 35

2.1.3 敏捷测试的其他定义/ 36

2.2 传统测试与敏捷测试/ 38

2.2.1  凤凰项目:一个IT 运维的传奇故事/ 38

2.2.2 3 步工作法/ 39

2.2.3 凤凰项目改造前后对比/ 40

2.2.4 传统测试和敏捷测试的区别/ 41

2.3 敏捷测试的思维方式/ 41

2.3.1 固定性思维与敏捷思维/ 42

2.3.2 成长性思维/ 42

2.3.3 以实例来辨析不同思维的测试工程师/ 43

2.3.4 团队对质量负责的思维/ 44

2.3.5 上下文驱动的思维与用户思维/ 45

2.4 敏捷测试流程解析/ 45

2.4.1 Scrum 模式下的测试流程/ 45

2.4.2 敏捷测试的通用流程/ 47

2.4.3 敏捷测试流程闭环与持续测试/ 48

2.4.4  从敏捷项目管理角度来看测试流程/ 49

2.5 新的敏捷测试四象限/ 50

2.5.1 敏捷测试四象限之历史/ 50

2.5.2 新的敏捷测试四象限简介/ 52

本章小结/ 53

延伸阅读/ 54

第3 章 人是决定性因素/ 55

导读/ 55

3.1 敏捷团队究竟要不要专职的测试人员/ 56

3.1.1 问题的提出及各方的理由/ 56

3.1.2 根据上下文来确定是否需要/ 58

3.1.3 存在即合理/ 59

3.2 配备专职敏捷测试人员时的操作/ 60

3.2.1 Etsy 公司的优秀实践/ 60

3.2.2 敏捷测试人员的责任和具体任务/ 61

3.2.3 测试人员和开发人员的分工/ 63

3.2.4 测试敏捷化对团队意味着什么/ 64

3.3 没有专职的测试人员时的操作/ 64

3.3.1 是否借助灰度发布和一键回滚/ 65

3.3.2 消除系统测试不足带来的影响/ 66

3.3.3 加强敏捷验收测试和ATDD 的实践/ 67

3.3.4 应对其他挑战/ 67

3.4 借助测试负责人角色完成团队转型/ 68

3.4.1 冰冻三尺并非一日之寒/ 69

3.4.2 多数团队不是Google / 70

3.4.3 测试负责人角色的责任和具体实践/ 71

3.4.4 测试主负责人角色/ 72

3.5  如何创建有强烈质量意识的学习型团队/ 73

3.5.1 达成质量共识/ 73

3.5.2 营造良好的质量文化氛围/ 73

3.5.3 创建学习型团队/ 74

3.5.4 业务学习与缺陷根因分析/ 76

3.6 如何更好地为测试而学/ 76

3.6.1 系统性思维训练/ 77

3.6.2 创造性思维训练/ 79

3.6.3 如何提升测试自动化能力/ 80

3.6.4 如何学习测试建模/ 80

3.6.5 借力提升自己/ 81

3.7 如何与产品、开发等角色协作/ 82

3.7.1 团队协作的五大障碍/ 82

3.7.2 团队协作高于一切/ 84

3.7.3 达成对质量及其管理的共识/ 85

3.7.4 沟通的技巧/ 86

本章小结/ 87

延伸阅读/ 87

第4 章 构建强大的敏捷测试基础设施/ 89

导读/ 89

4.1 持续集成与持续交付意味着什么/ 90

4.1.1 敏捷的目标/ 91

4.1.2 持续集成中的测试活动/ 91

4.1.3 持续交付中的测试活动/ 93

4.1.4 持续集成 持续测试是关键/ 94

4.1.5 持续部署/ 95

4.1.6 持续运维/ 95

4.2 测试如何融入持续集成/ 持续交付环境/ 95

4.2.1 支撑持续集成的测试环境/ 96

4.2.2 支撑持续交付的测试环境/ 96

4.2.3 CI/CD 流水线中的测试过程/ 97

4.3 基于DevOps 的测试基础设施构成/ 99

4.3.1 DevOps 的测试/ 100

4.3.2 DevOps 测试基础设施/ 101

4.3.3 基础设施即代码/ 103

4.3.4 对基础设施进行验证——Testinfra / 104

4.4 虚拟机技术与容器技术的应用/ 105

4.4.1 虚拟化技术——虚拟机技术和容器技术/ 106

4.4.2 Sidecar 模式——容器的设计模式/ 107

4.4.3 虚拟化技术之NUMA 和DPDK / 108

4.4.4 服务虚拟化的利器——Hoverfly / 109

4.4.5 Molecule——虚拟化技术的自动化测试工具/ 111

4.4.6 Kubernetes 与测试环境/ 112

4.5 如何完成自动部署/ 113

4.5.1 配置即代码——CI 配置管理工具:Ansible、Chef / 114

4.5.2 微服务的容器化部署/ 116

4.5.3 微服务在CI 环境中的自动化部署/ 117

4.5.4  Docker 容器的集群管理之Kubernetes / 119

4.5.5  基础架构即代码的工具——Terraform、CloudFormation / 122

4.5.6  管道即代码的工具——Concourse、Drone / 123

4.5.7  新一代的部署体验——Serverless 软件系统架构/ 125

4.5.8 产品发布之导流模式/ 125

4.6 如何完成全自动的BVT / 126

4.6.1 BVT 要验证哪些点/ 126

4.6.2 不稳定的情况——Flaky / 128

4.7 自动的静态测试和测试报告生成/ 130

4.7.1 代码分析(静态测试)/ 130

4.7.2 优秀的静态测试工具/ 131

4.7.3 静态测试报告的自动生成/ 131

4.7.4 自动化测试报告的自动生成/ 135

4.8 测试分层策略与金字塔模型/ 139

4.9 搭建敏捷自动化测试框架及其案例分析/ 140

4.9.1 自动化测试框架的构成/ 140

4.9.2 自动化测试框架的分类/ 142

4.9.3 单元测试框架JUnit 5 / 143

4.9.4 API 层的TA 测试框架Karate / 144

4.9.5 验收测试框架Ginkgo / 146

本章小结/ 148

延伸阅读/ 149

第5 章 测试左移更体现敏捷测试的价值/ 150

导读/ 150

5.1 没有ATDD,就没有用户故事的可测试性/ 151

5.1.1 可测试性的概念/ 151

5.1.2 需求、设计和代码等不同层次的可测试性/ 152

5.1.3 用户故事的可测试性和ATDD / 153

5.1.4 ATDD 与TDD( UTDD)的关系/ 154

5.1.5 如何具体实施ATDD / 156

5.2  产品价值分析:商业画布、影响地图与用户故事地图/ 156

5.2.1 产品价值是基础/ 157

5.2.2 商业画布/ 158

5.2.3 影响地图/ 160

5.2.4 用户故事地图/ 161

5.3 从Epic 到用户故事完成需求评审/ 162

5.3.1 通用的评审标准/ 163

5.3.2 Epic 的评审/ 164

5.3.3 用户故事的评审/ 166

5.4 不可忽视的设计评审/ 169

5.4.1 设计评审的价值和重要性/ 170

5.4.2 如何完成架构评审/ 170

5.4.3 有层次的(组件)评审/ 172

5.4.4 接口定义的评审/ 173

5.4.5 设计的可测试性/ 173

5.5 BDD 及其自动化实践/ 174

5.5.1 什么是BDD / 174

5.5.2 BDD 和测试的关系/ 175

5.5.3 现有的BDD 自动化测试框架/ 177

5.5.4 BDD 实例/ 179

5.5.5 BDD 实践中的常见问题/ 183

5.6 再进一步,让实例化需求落地/ 183

5.6.1 什么是实例化需求/ 183

5.6.2 实例化需求的过程/ 185

5.6.3 RBE 的自动化实现/ 190

5.7 单元测试是否必须TDD / 191

5.7.1 为何TDD 是必需的/ 191

5.7.2 如何做好TDD / 192

5.7.3 UTDD 测试原则/ 193

5.7.4 UTDD 的具体实践/ 194

本章小结/ 195

延伸阅读/ 196

第6 章 敏捷测试的分析与计划/ 197

导读/ 197

6.1 基于上下文驱动思维的测试分析/ 198

6.1.1 上下文驱动测试流派/ 198

6.1.2 质量标准/ 201

6.1.3 项目背景/ 202

6.1.4 产品元素/ 204

6.2 如何培养自己的业务与用户体验分析技能/ 205

6.2.1 用户思维/ 205

6.2.2 场景是测试需求的灵魂/ 206

6.2.3 业务分析/ 207

6.2.4 用户体验要素/ 208

6.3 敏捷测试的主要风险在哪里/ 209

6.3.1 需求不清晰/ 210

6.3.2 需求频繁变更/ 211

6.3.3 时间太紧张/ 211

6.3.4 自动化测试的有效性/ 212

6.3.5 测试风险项目检查表/ 212

6.3.6 风险控制/ 213

6.4 启发式测试策略与测试策略的制定/ 215

6.4.1 什么是测试策略/ 215

6.4.2 启发式测试策略模型/ 216

6.4.3 快速、高效地制定测试策略/ 218

6.5 代码依赖性分析与精准测试/ 220

6.5.1 精准测试/ 221

6.5.2 如何建立测试用例和代码的映射关系/ 222

6.5.3 代码依赖性分析/ 223

6.5.4 代码的变更分析/ 225

6.5.5 测试用例集如何优化/ 225

6.5.6 优秀实践/ 226

6.6 敏捷测试要不要计划/ 227

6.6.1 测试计划的价值/ 227

6.6.2 一页纸的测试计划/ 228

6.6.3 如何编写一页纸的测试计划/ 229

6.7 探索式测试与基于脚本的测试/ 232

6.7.1 什么是探索式测试/ 232

6.7.2 探索式测试的应用场景/ 233

6.7.3 基于脚本的测试/ 234

6.7.4  探索式测试与基于脚本的测试的比较/ 235

6.7.5 敏捷拥抱探索式测试/ 236

6.8 SBTM 的由来及使用/ 237

6.8.1 SBTM 的由来/ 237

6.8.2 真正理解会话/ 237

6.8.3 测试计划分解成多个子目标/ 239

6.8.4 测试子目标进一步分解为会话/ 240

6.9 一个应用SBTM 的真实案例/ 241

6.9.1 案例背景/ 241

6.9.2 挑战在哪里/ 242

6.9.3 测试子目标分解的结果/ 242

6.9.4 几个典型的会话/ 243

6.9.5 会话表/ 246

6.9.6 口头汇报/ 247

6.10 敏捷测试分析与计划的案例/ 248

6.10.1 信息收集/ 249

6.10.2 测试目标/ 249

6.10.3 通过测试分析得到测试范围/ 250

6.10.4 根据测试分析进行风险分析和控制/ 251

6.10.5 基于风险的测试策略/ 252

6.10.6 测试计划/ 253

本章小结/ 254

延伸阅读/ 255

第7 章 敏捷测试的设计与执行/ 256

导读/ 256

7.1 正确理解DoD 与敏捷中的验收测试/ 257

7.1.1 什么是DoD / 257

7.1.2 如何创建DoD / 258

7.1.3 DoD 和敏捷验收测试的关系/ 260

7.1.4 如何验证DoD / 261

7.2 如何将用户故事转化为测试用例/ 261

7.2.1 转换为场景/ 262

7.2.2 场景离测试用例还差一步/ 263

7.2.3 用户故事转化为测试用例的模型/ 263

7.3 基于场景/ 事件流的测试用例设计/ 265

7.3.1 事件流图/ 265

7.3.2 在敏捷测试中的应用/ 266

7.3.3 状态图与有限状态机/ 268

7.4 探索式测试过程与生态/ 270

7.4.1 调查、分析、排序和实验/ 270

7.4.2 以分析为中心/ 270

7.4.3 自我管理环、学习环/ 271

7.4.4 协作环与测试环/ 272

7.5 探索式测试中的角色扮演与场景挖掘/ 272

7.5.1 批判性思维与探索式测试设计执行/ 272

7.5.2 角色扮演/ 273

7.5.3 场景挖掘/ 274

7.6 探索式测试的具体技巧/ 276

7.6.1 业务路径测试/ 277

7.6.2 遍历测试/ 279

7.6.3 极限情况的测试/ 279

7.6.4 异常情况的测试/ 280

7.7 测试自动化设计模式:一步到位/ 280

7.7.1 基于模型的自动化测试/ 281

7.7.2 状态图生成测试用例/ 281

7.7.3 测试数据的自动生成/ 284

7.8 UI 脚本开发与维护的常用技巧/ 287

7.8.1 脚本语言和测试框架的选择/ 287

7.8.2 UI 元素定位/ 288

7.8.3 测试代码的模块化和参数化/ 291

7.8.4 Selenium 集成自动化测试框架/ 293

7.8.5 Page Object 设计模式/ 295

7.8.6 隐式等待/ 296

7.9  质效合一:自动化测试和手工测试的完美融合/ 296

7.9.1 一个关于测试策略的案例/ 296

7.9.2 新功能手工测试,回归测试自动化/ 297

7.9.3 探索未知的,自动化已知的/ 299

7.9.4 自动化回归测试怎么做/ 300

7.10 优先实现面向接口的测试/ 300

7.10.1 接口(API)测试越来越重要/ 301

7.10.2 接口测试示例/ 301

7.10.3 如何获取接口信息/ 304

7.10.4 契约测试和微服务的接口测试/ 306

7.10.5 API 持续测试平台:API Fortress / 308

本章小结/ 308

延伸阅读/ 309

第8 章 测试右移:从敏捷到DevOps / 310

导读/ 310

8.1 在线性能测试/ 311

8.1.1 全链路压测/ 311

8.1.2 在线性能监控/ 313

8.1.3 流量回放技术/ 314

8.2 A/B 测试/ 316

8.2.1 什么是A/B 测试/ 316

8.2.2 A/B 测试的设计/ 317

8.2.3 A/B 测试平台与测试执行/ 319

8.2.4 关于用户体验的度量/ 320

8.3 监控告警系统/ 321

8.3.1 日志分析及Elastic Stack 的使用/ 323

8.3.2 调用链分析及SkyWalking 的使用/ 324

8.3.3 指标监控及Prometheus 的使用/ 327

8.3.4 监控系统解决方案/ 329

8.4 安全性监控/ 330

8.5 混沌工程/ 331

8.5.1 混沌工程的由来/ 332

8.5.2 基于故障注入的测试/ 333

8.5.3 混沌工程平台与工具/ 334

8.5.4 混沌工程的具体实施/ 336

8.5.5 为系统弹性做好设计/ 337

8.6 智能运维与测试/ 340

8.6.1 从自动化运维到智能运维/ 340

8.6.2 智能运维的典型场景/ 341

本章小结/ 342

延伸阅读/ 343

第9 章 敏捷测试的收尾与改进/ 344

导读/ 344

9.1 如何分析测试结果和评估测试工作的质量/ 345

9.1.1 如何评估敏捷测试过程/ 345

9.1.2 敏捷测试过程的度量体系/ 346

9.1.3 测试工作质量的分析/ 348

9.1.4 代码覆盖率/ 348

9.1.5 功能覆盖率/ 349

9.1.6 业务覆盖率/ 349

9.1.7 基于缺陷分析测试质量/ 350

9.2 如何获得良好的可追溯性、可视化/ 350

9.2.1 测试管理系统/ 351

9.2.2 需求与测试用例的映射关系,以及测试用例与缺陷的映射关系/ 352

9.2.3 示例:Jira Zephyr 实现可追溯性/ 353

9.2.4 测试与质量度量的可视化/ 355

9.2.5 质量雷达图/ 357

9.3 敏捷测试优秀实践/ 357

9.3.1 微软的优秀实践/ 358

9.3.2 谷歌的优秀实践/ 359

9.3.3 亚马逊的优秀实践/ 360

9.3.4 ThoughtWorks 的优秀实践/ 361

9.3.5 腾讯的优秀实践/ 364

9.3.6 阿里巴巴的优秀实践/ 365

9.4 敏捷过程的反思与持续改进/ 366

9.4.1 敏捷过程的反思/ 367

9.4.2 敏捷测试过程的改进分析/ 368

9.4.3 数据驱动改进/ 369

9.4.4 PDCA 循环/ 369

9.4.5 根因分析/ 371

本章小结/ 372

延伸阅读/ 372

第 10 章 敏捷测试的展望/ 374

导读/ 374

10.1 大数据的测试/ 375

10.1.1 大数据的特性与挑战/ 376

10.1.2 大数据的测试方法/ 378

10.1.3 大数据的测试实践/ 380

10.1.4 大数据的测试工具/ 381

10.2 人工智能系统的测试/ 382

10.2.1 人工智能系统的不确定性和不可解释性/ 383

10.2.2 人工智能系统的白盒测试/ 384

10.2.3 人工智能系统的算法验证/ 386

10.2.4 示例:针对智能语音的设计与执行/ 388

10.3 人工智能助力敏捷测试/ 392

10.3.1 基于图像识别技术的UI测试/ 392

10.3.2 基于人工智能的、全自动化的API 测试/ 397

10.3.3 人工智能助力代码深度分析/ 399

10.3.4 人工智能驱动测试/ 401

10.3.5 人工智能测试工具/ 403

10.4 敏捷测试工具的未来/ 406

10.4.1 敏捷测试工具的发展趋势/ 406

10.4.2 MBT 的前景如何/ 408

10.4.3 无代码化的测试自动化/ 409

10.5 彻底实现持续测试/ 413

10.5.1 重新理解持续测试/ 414

10.5.2 持续测试的实现框架/ 415

10.5.3 持续测试成熟度模型/ 424

10.5.4 彻底的持续测试/ 425

本章小结/ 426

延伸阅读/ 427

附录A 基于Kubernetes 和Docker搭建Jenkins 可伸缩持续集成系统/ 428

导读/ 428

A.1 工作流程图/ 429

A.2 系统配置/ 429

A.3 安装Kubernetes 集群/ 430

A.3.1 安装前的准备/ 430

A.3.2 安装配置/ 430

A.4 Harbor 的安装部署/ 434

A.4.1 下载Harbor 离线安装包/ 434

A.4.2 安装Docker / 435

A.4.3 安装Docker Compose / 435

A.4.4 Harbor 的安装与配置/ 435

A.4.5 客户端访问Harbor 仓库/ 436

A.5  采用Jenkins Pipeline 实现自动构建并部署至k8s / 438

A.5.1 部署Jenkins / 438

A.5.2 新建Spring Boot Java工程/440

A.5.3 配置Jenkins Pipeline任务/ 444

A.5.4 测试Pipeline 任务/ 446

A.5.5 遇到的问题及解决方法/ 449

附录B 敏捷实践发展史/ 451

附录C 后敏捷时代暨DevOps发展史/ 461

附录D 中国敏捷测试大事记/ 463

参考文献/ 465

内容介绍

互联网产品的快速迭代,让敏捷开发在各个领域都得到了广泛应用。同时,也加快了敏捷测试在各家企业落地生根的进程。

《敏捷测试:以持续测试促进持续交付》由测试领域老兵联合10余位测试专家对敏捷测试的实践经验汇总、整理而成。本书分为10章和4个附录。从敏捷开发和敏捷测试基础、人的因素、敏捷测试基础设施、分析与计划、设计与执行、测试右移、收尾与改进、展望等角度入手,几乎涵盖实现高效敏捷测试所需的各个方面的知识,以及测试思维、测试流程、测试基础设施和一系列的优秀实践,对提高测试效率进而提升产品交付质量具有重大的指导意义。

《敏捷测试:以持续测试促进持续交付》理论知识与实际案例深度结合,辅以思维导图、延伸阅读等模块,深入浅出,尤其适合有一定测试实践经验的软件质量保障和测试人员,想要较为深入了解敏捷测试的专业人士阅读参考。

书评

1.测试领域大咖朱少民20余年关于敏捷测试的思考和实践总结

2.给出敏捷测试落地实施的一套完整的实践方法,帮助读者显著提升个人的测试能力。

3.每章开头均有思维导图来引导读者学习,每章结尾均有延伸阅读。

4.以业界实践为基础,典型敏捷测试真实案例贯穿全书始末。

5.帮助研发经理或项目经理提升对敏捷测试全局的理解。

6.20余名亲历一线的测试开发工程师、管理者及咨询师倾情推荐!

144.7° /1447阅读/10点赞 发表评论

登录 后发表评论
认领图书 分享图书
出版社介绍

人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”的出版宗旨,不断发展壮大,成为集图书、期刊、音像电子出版物和网络出版为一体的,在国内外有专业特色和品牌影响的综合性科技出版大社。