敏捷测试:以持续测试促进持续交付

敏捷测试:以持续测试促进持续交付

我想读
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

朱少民教授20余年关于敏捷测试的思考和实践总结。

内容简介

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

《敏捷测试:以持续测试促进持续交付》由测试领域老兵联合10余位测试专家对敏捷测试的实践经验汇总、整理而成。

本书分为10章和4个附录。从敏捷开发和敏捷测试基础、人的因素、敏捷测试基础设施、分析与计划、设计与执行、测试右移、收尾与改进、展望等角度入手,几乎涵盖实现高效敏捷测试所需的各个方面的知识,以及测试思维、测试流程、测试基础设施和一系列的优秀实践,对提高测试效率进而提升产品交付质量具有重大的指导意义。

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

作者简介

作者朱少民,国内知名测试专家、同济大学特聘教授、软件绿色联盟标准评测组组长、《软件学报》审稿人、QECon大会发起人。近30年来,一直从事软件测试、质量管理等工作,先后获得安徽省、原机械工业部、青岛市等多项科技进步奖,出版《全程软件测试》《软件测试方法和技术》《软件质量保证和管理》《软件项目管理》等10余部著作。

章节目录

版权信息

内容提要

对本书的赞誉

让敏捷测试成为数字化基础能力

持续适应与优化助力高效敏捷测试落地

前言

致谢

资源与支持

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

导读

1.1 敏捷开发模式的由来

1.1.1 新产品开发模式Scrum

1.1.2 轻量级软件开发方法

1.1.3 《敏捷宣言》的诞生

1.2 敏捷价值观

1.3 敏捷开发原则

1.4 常见的敏捷开发框架

1.4.1 极限编程

1.4.2 行为驱动开发

1.4.3 特性驱动开发

1.4.4 Scrum开发框架

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

1.5.1 看板

1.5.2 精益软件开发实践

1.6 敏捷与DevOps的关系

本章小结

延伸阅读

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

导读

2.1 什么是敏捷测试

2.1.1 从一个真实的案例说起

2.1.2 敏捷测试的含义

2.1.3 敏捷测试的其他定义

2.2 传统测试与敏捷测试

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

2.2.2 3步工作法

2.2.3 凤凰项目改造前后对比

2.2.4 传统测试与敏捷测试的区别

2.3 敏捷测试的思维方式

2.3.1 固定性思维与敏捷思维

2.3.2 成长性思维

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

2.3.4 团队对质量负责的思维

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

2.4 敏捷测试流程解析

2.4.1 Scrum模式下的测试流程

2.4.2 敏捷测试的通用流程

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

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

2.5 新的敏捷测试四象限

2.5.1 敏捷测试四象限之历史

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

本章小结

延伸阅读

第3章 人是决定性因素

导读

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

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

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

3.1.3 存在即合理

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

3.2.1 Etsy公司的优秀实践

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

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

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

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

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

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

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

3.3.4 应对其他挑战

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

3.4.1 冰冻三尺并非一日之寒

3.4.2 多数团队不是谷歌

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

3.4.4 测试主负责人角色

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

3.5.1 达成质量共识

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

3.5.3 创建学习型团队

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

3.6 如何更好地为测试而学

3.6.1 系统性思维训练

3.6.2 创造性思维训练

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

3.6.4 如何学习测试建模

3.6.5 借力提升自己

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

3.7.1 团队协作的五大障碍

3.7.2 团队协作高于一切

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

3.7.4 沟通的技巧

本章小结

延伸阅读

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

导读

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

4.1.1 敏捷的目标

4.1.2 持续集成中的测试活动

4.1.3 持续交付中的测试活动

4.1.4 持续集成+持续测试是关键

4.1.5 持续部署

4.1.6 持续运维

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

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

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

4.2.3 持续集成/持续交付流水线中的测试过程

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

4.3.1 DevOps的测试

4.3.2 DevOps测试基础设施

4.3.3 基础设施即代码

4.3.4 对基础设施进行验证

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

4.4.1 虚拟化技术

4.4.2 Sidecar模式

4.4.3 虚拟化技术之NUMA和DPDK

4.4.4 服务虚拟化的利器

4.4.5 Molecule

4.4.6 Kubernetes与测试环境

4.5 如何完成自动部署

4.5.1 配置即代码

4.5.2 微服务的容器化部署

4.5.3 微服务在持续集成环境中的自动化部署

4.5.4 Docker容器的集群管理之Kubernetes

4.5.5 基础架构即代码的工具

4.5.6 管道即代码的工具

4.5.7 新一代的部署体验

4.5.8 产品发布之导流模式

4.6 如何完成全自动的BVT

4.6.1 BVT要验证哪些点

4.6.2 不稳定的情况

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

4.7.1 代码分析(静态测试)

4.7.2 优秀的静态测试工具

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

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

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

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

4.9.1 自动化测试框架的构成

4.9.2 自动化测试框架的分类

4.9.3 单元测试框架JUnit 5

4.9.4 API层的自动化测试框架Karate

4.9.5 验收测试框架Ginkgo

本章小结

延伸阅读

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

导读

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

5.1.1 可测试性的概念

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

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

5.1.4 ATDD与TDD(UTDD)的关系

5.1.5 如何具体实施ATDD

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

5.2.1 产品价值是基础

5.2.2 商业画布

5.2.3 影响地图

5.2.4 用户故事地图

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

5.3.1 通用的评审标准

5.3.2 Epic的评审

5.3.3 用户故事的评审

5.4 不可忽视的设计评审

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

5.4.2 如何完成架构评审

5.4.3 有层次的(组件)评审

5.4.4 接口定义的评审

5.4.5 设计的可测试性

5.5 BDD及其自动化实践

5.5.1 什么是BDD

5.5.2 BDD和测试的关系

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

5.5.4 BDD实例

5.5.5 BDD实践中的常见问题

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

5.6.1 什么是实例化需求

5.6.2 实例化需求的过程

5.6.3 RBE的自动化实现

5.7 单元测试是否必须TDD

5.7.1 为何TDD是必需的

5.7.2 如何做好TDD

5.7.3 UTDD测试原则

5.7.4 UTDD的具体实践

本章小结

延伸阅读

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

导读

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

6.1.1 上下文驱动测试流派

6.1.2 质量标准

6.1.3 项目背景

6.1.4 产品元素

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

6.2.1 用户思维

6.2.2 场景是测试需求的灵魂

6.2.3 业务分析

6.2.4 用户体验要素

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

6.3.1 需求不清晰

6.3.2 需求频繁变更

6.3.3 时间太紧张

6.3.4 自动化测试的有效性

6.3.5 测试风险项目检查表

6.3.6 风险控制

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

6.4.1 什么是测试策略

6.4.2 启发式测试策略模型

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

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

6.5.1 精准测试

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

6.5.3 代码依赖性分析

6.5.4 代码的变更分析

6.5.5 测试用例集如何优化

6.5.6 优秀实践

6.6 敏捷测试要不要计划

6.6.1 测试计划的价值

6.6.2 一页纸的测试计划

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

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

6.7.1 什么是探索式测试

6.7.2 探索式测试的应用场景

6.7.3 基于脚本的测试

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

6.7.5 敏捷拥抱探索式测试

6.8 SBTM的由来及使用

6.8.1 SBTM的由来

6.8.2 真正理解会话

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

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

6.9 一个应用SBTM的真实案例

6.9.1 案例背景

6.9.2 挑战在哪里

6.9.3 测试子目标分解的结果

6.9.4 几个典型的会话

6.9.5 会话表

6.9.6 口头汇报

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

6.10.1 信息收集

6.10.2 测试目标

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

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

6.10.5 基于风险的测试策略

6.10.6 测试计划

本章小结

延伸阅读

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

导读

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

7.1.1 什么是DoD

7.1.2 如何创建DoD

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

7.1.4 如何验证DoD

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

7.2.1 转换为场景

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

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

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

7.3.1 事件流图

7.3.2 在敏捷测试中的应用

7.3.3 状态图与有限状态机

7.4 探索式测试过程与生态

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

7.4.2 以分析为中心

7.4.3 学习环与自我管理环

7.4.4 协作环与测试环

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

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

7.5.2 角色扮演

7.5.3 场景挖掘

7.6 探索式测试的具体技巧

7.6.1 业务路径测试

7.6.2 遍历测试

7.6.3 极限情况的测试

7.6.4 异常情况的测试

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

7.7.1 基于模型的自动化测试

7.7.2 状态图生成测试用例

7.7.3 测试数据的自动生成

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

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

7.8.2 UI元素定位

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

7.8.4 Selenium集成自动化测试框架

7.8.5 Page Object设计模式

7.8.6 隐式等待

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

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

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

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

7.9.4 自动化回归测试怎么做

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

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

7.10.2 接口测试示例

7.10.3 如何获取接口信息

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

7.10.5 API持续测试平台:API Fortress

本章小结

延伸阅读

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

导读

8.1 在线性能测试

8.1.1 全链路压测

8.1.2 在线性能监控

8.1.3 流量回放技术

8.2 A/B测试

8.2.1 什么是A/B测试

8.2.2 A/B测试的设计

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

8.2.4 关于用户体验的度量

8.3 监控告警系统

8.3.1 日志分析及Elastic Stack的使用

8.3.2 调用链分析及SkyWalking的使用

8.3.3 指标监控及Prometheus的使用

8.3.4 监控系统解决方案

8.4 安全性监控

8.5 混沌工程

8.5.1 混沌工程的由来

8.5.2 基于故障注入的测试

8.5.3 混沌工程平台与工具

8.5.4 混沌工程的具体实施

8.5.5 为系统弹性做好设计

8.6 智能运维与测试

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

8.6.2 智能运维的典型场景

本章小结

延伸阅读

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

导读

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

9.1.1 如何评估敏捷测试过程

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

9.1.3 测试工作质量的分析

9.1.4 代码覆盖率

9.1.5 功能覆盖率

9.1.6 业务覆盖率

9.1.7 基于缺陷分析测试质量

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

9.2.1 测试管理系统

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

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

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

9.2.5 质量雷达图

9.3 敏捷测试优秀实践

9.3.1 微软的优秀实践

9.3.2 谷歌的优秀实践

9.3.3 亚马逊的优秀实践

9.3.4 ThoughtWorks的优秀实践

9.3.5 腾讯的优秀实践

9.3.6 阿里巴巴的优秀实践

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

9.4.1 敏捷过程的反思

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

9.4.3 数据驱动改进

9.4.4 PDCA循环

9.4.5 根因分析

本章小结

延伸阅读

第10章 敏捷测试的展望

导读

10.1 大数据的测试

10.1.1 大数据的特性与挑战

10.1.2 大数据的测试方法

10.1.3 大数据的测试实践

10.1.4 大数据的测试工具

10.2 人工智能系统的测试

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

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

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

10.2.4 案例:针对智能语音的设计与执行

10.3 人工智能助力敏捷测试

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

10.3.2 基于人工智能的、全自动化的接口测试

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

10.3.4 人工智能驱动测试

10.3.5 人工智能测试工具

10.4 敏捷测试工具的未来

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

10.4.2 基于模型的测试的前景如何

10.4.3 无代码化的测试自动化

10.5 彻底实现持续测试

10.5.1 重新理解持续测试

10.5.2 持续测试的实现框架

10.5.3 持续测试成熟度模型

10.5.4 彻底的持续测试

本章小结

延伸阅读

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

导读

A.1 工作流程图

A.2 系统配置

A.3 安装Kubernetes集群

A.3.1 安装前的准备

A.3.2 安装配置

A.4 Harbor的安装部署

A.4.1 下载Harbor离线安装包

A.4.2 安装Docker

A.4.3 安装Docker Compose

A.4.4 Harbor的安装与配置

A.4.5 客户端访问Harbor仓库

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

A.5.1 部署Jenkins

A.5.2 新建Spring Boot Java工程

A.5.3 配置Jenkins Pipeline任务

A.5.4 测试Pipeline任务

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

附录B 敏捷实践发展史

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

后敏捷时代的事件

DevOps发展史

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

参考文献

敏捷测试:以持续测试促进持续交付是2021年由人民邮电出版社出版,作者李洁。

得书感谢您对《敏捷测试:以持续测试促进持续交付》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
自动化测试实战 电子书

以实际用例提炼自动化测试领域的热门主题,提高自动化测试的建设效率、执行效率和维护效率。
渗透测试基础教程 电子书

本书9章全面讲解渗透测试技术与防御方法。
SpringBoot开发与测试实战 电子书

一本关于SpringBoot应用程序开发和测试的入门图书。
全程软件测试(第3版) 电子书

适读人群:适合从事软件测试工作、软件开发管理工作、软件测试教学和培训工作,或者有志于软件项目经理的人员阅读  30位测试专家、产品经理、研发负责人、大学教授联袂推荐  知名学者...
软件测试管理与实践 电子书

软件测试理论工具实用教程,培养动手解决问题能力。
Python测试开发入门与实践 电子书

本书系统且深入阐释利用Python进行Web自动化测试涉及的方法和实践。
持续增长:从零搭建企业新媒体运营体系 电子书

把流量变流水,助你搭建一套完整的可持续增长的运营系统。