互联网
类型
可以朗读
语音朗读
358千字
字数
2021-08-01
发行日期
展开全部
主编推荐语
朱少民教授20余年关于敏捷测试的思考和实践总结。
内容简介
互联网产品的快速迭代,让敏捷开发在各个领域都得到了广泛应用。同时,也加快了敏捷测试在各家企业落地生根的进程。
《敏捷测试:以持续测试促进持续交付》由测试领域老兵联合10余位测试专家对敏捷测试的实践经验汇总、整理而成。
本书分为10章和4个附录。从敏捷开发和敏捷测试基础、人的因素、敏捷测试基础设施、分析与计划、设计与执行、测试右移、收尾与改进、展望等角度入手,几乎涵盖实现高效敏捷测试所需的各个方面的知识,以及测试思维、测试流程、测试基础设施和一系列的优秀实践,对提高测试效率进而提升产品交付质量具有重大的指导意义。
本书理论知识与实际案例深度结合,辅以思维导图、延伸阅读等模块,深入浅出,尤其适合有一定测试实践经验的软件质量保障和测试人员,想要较为深入了解敏捷测试的专业人士阅读参考。
目录
- 版权信息
- 内容提要
- 对本书的赞誉
- 让敏捷测试成为数字化基础能力
- 持续适应与优化助力高效敏捷测试落地
- 前言
- 致谢
- 资源与支持
- 第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 中国敏捷测试大事记
- 参考文献
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。
