科技>计算机>网络与互联网
敏捷测试价值观、方法与实践——传统测试人员转型宝典  

敏捷测试价值观、方法与实践——传统测试人员转型宝典  "

作者:陈晓鹏,顾宇,陈能技
ISBN:9787121443497
定价:¥105.0
字数:530千字
页数:340
出版时间:2022-10
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

随着近几年敏捷开发方法的流行,市面上已经出现不少与敏捷相关的书籍。但遗憾的是,这些著作大多从开发或项目管理的角度阐述,没有从测试的视角阐述。在敏捷环境下测试该怎么做,测试人员依然没有答案。本书从敏捷与测试相融合的角度出发,通过对文化、组织、流程和实践4 个维度层层剖析,总结出一套从瀑布模型到敏捷模式的转型框架,为广大测试人员提供借鉴。本书理论与实践相结合,适用的读者非常广泛,可以是测试总监、测试经理、测试主管等测试行业的测试管理者,也可以是测试工程师、自动化测试工程师等具体执行层面的测试相关从业人员,对于敏捷教练或Scrum Master 等敏捷从业人员来说,这也是一本难得的测试领域的敏捷图书。当然,这本书也适合计算机相关专业的学生阅读。

前言

推荐序1 两年前,在某微信群里聊到敏捷测试时,了解到当时有多位测试同仁在写作或计划出版敏捷测试方面的图书,我就在微信朋友圈发了一条消息:“2020 年是敏捷测试年。”本书作者之一晓鹏留言:“我要避开锋芒,选择2021 年。”其实,写一本书不容易,每位作者都有日常工作在身,只能利用业余时间写作,况且出版社这几年也严抓图书质量,出版周期明显变长,最终2020 年国内未能出版一本敏捷测试的图书,只等到2021 年,三本原创的敏捷测试图书才相继出版,而这本就是国内原创的第四本敏捷测试图书,今年才和大家见面。“敏捷测试年”就从2020 年顺延到了2021 年、2022 年,此时距离敏捷宣言发布已超过20 年。是不是有点儿不寻常?倒也正常,请容我慢慢道来。 敏捷实践,如水晶开发模式、Scrum、极限编程、FDD 等,在20 世纪90 年代就已经开展,只是百花齐放、百家争鸣,直到2001 年敏捷宣言发布,人们才有了统一的敏捷价值观和开发原则。 为何近20 年后国内才开始关注敏捷测试呢?一方面,软件开发的敏捷方法论是舶来品,引入国内需要时间,一开始还会水土不服,需要结合国情进行更多实践,才能慢慢适应环境,为我们所用;另一方面,在敏捷开发实践中,大家一开始更关注开发实践、关注持续集成/持续构建(CI/CD)流水线的建立,严重忽视了测试,直到有一天发现测试才是敏捷、持续交付的最大瓶颈,才不得不回头审视测试。即使到了今天,有人还觉得敏捷测试是一个伪命题,这说明要改变人们的意识和认知是很难的,正如本书在敏捷测试转型的测试金字塔模型中,将“文化”放在最底层,强调“文化”是最难的,但也是最重要的。许多企业软件开发仍旧属于伪敏捷,不仅在思维、认知上较为传统,团队缺乏共识,而且在流程和实践上也比较扭曲,使敏捷开发模式形成一系列“迷你瀑布”,开发和测试不能同步,甚至开发和测试分离,依旧保留了“开发人员提测”这样的传统研发环节,从而造成敏捷落地实施的效果不理想,甚至更糟糕——“测试人员每天都在赶”“根本测不过来”“工作很累”等。 如果想要改变这种糟糕的状态,不仅要改变人们的思维和认知,而且要改变其开发的流程和实践,这样才能把其研发拉上“正道”。这也就是为什么本书的副标题是“传统测试人员转型宝典”,以及在第2 篇用了两章的篇幅从文化、组织、流程和实践等多个维度讨论如何进行敏捷测试转型,进一步彰显了敏捷测试的核心内涵——“遵守敏捷开发原则、开发和测试融合、团队协作和价值交付”。 本书一大亮点是其实践及其案例。除了给出整体的实践框架,本书还介绍了CI/CD、持续反馈和DevOps 等知识,详细讨论了在敏捷测试环境中如何开展功能测试和非功能性测试,并且根据企业的不同规模给出不同的案例,为读者提供更多参考与借鉴价值。 本书作者曾在IT 咨询公司之一埃森哲公司工作,较早接触到敏捷开发模式。为了解决在大型敏捷团队下如何进行测试的问题,作者还特意学习了SAFe、LeSS 等不同的规模 化敏捷框架,梳理出在多团队环境下测试该如何进行的套路。三位作者做事非常认真,从2017 年开始就不断收集敏捷测试方面的资料,一边探索、实验和总结敏捷环境下测试的方法和实践,一边写作本书,之后和编辑一起一遍遍打磨稿件,历时4 年,终于将心血凝聚成书。 相信读者一定能从本书中获益匪浅,从此在测试工作中顺风顺水,轻松应对。 朱少民 同济大学特聘教授 《敏捷测试:以持续测试促进持续交付》《全程软件测试》作者 推荐序2 测试是软件开发绕不开的话题,也是研发人员心中永远的痛。测试是一个专项领域,其重要性不言自明,不可或缺,但又总被忽视,一旦(或者说是经常)时间紧、任务重,往往第一个被牺牲。 敏捷开发与DevOps 是大势所趋,业务人员与开发人员要频繁沟通,开发与运维要一体化,测试人员应该何去何从?总会有测试人员询问职业发展方向,眼前过于真实的“苟且”,看不清楚的“诗和远方”,谁能够指点迷津?好的测试人员不多,既要懂技术,又要了解业务,上能体验产品,下能写脚本,明明是全能型选手,却往往被视为全天候救火队 员,如何找到自己的定位,并且体现出测试真正的价值? 关于测试的相关实践,你能想到无数的问题:如何在敏捷开发中践行测试?如何敏捷地进行测试?敏捷测试会是“银弹”吗?敏捷的测试需要注意哪些问题?DevOps 与测试的关系是什么?如何将测试融入DevOps 流程?手工与自动化如何共存?测试是越多越好吗?测试如何“左移”又如何“右移”? 我是提问题的人,而本书的三位作者则负责答疑解惑,我们一直苦苦探寻的答案,也许在眼前这本书中就能够找到启示。 与三位作者相识相知多年,他们均是本领域的专家,如今携手共撰本书,强强联合的产出,绝对是值得庆幸并仔细研读的一本好书! 姚冬 华为云应用平台部首席技术架构师 中国DevOps 社区2021 年度理事长 IDCF 社区联合发起人 推荐序3 没有敏捷测试,就没有敏捷交付!我们经常说敏捷开发,表面上只强调开发(代码编写),但其实要实现敏捷交付,敏捷测试是重要的环节之一,也是难点之一。 所谓敏捷,就是快速反馈和及时响应。敏捷测试就是在敏捷交付过程中,不断给予交付团队快速、及时的质量反馈,确保交付的正确性和稳定性,但这件事情知易行难。很多人会把敏捷测试等同于自动化测试。自动化对于提升效率、减少无价值的重复人工操作、避免人工失误起到非常重要的作用。但是,自动化只是实现敏捷测试的支持性因素,它是我们漫漫敏捷测试转型的“最后一公里”工程,并不是敏捷测试转型的决定性因素。 敏捷测试,或者说测试的决定性因素,还是在测试用例本身的质量上,包括其有效性和完整性。而测试用例的编写,其实和开发一样,需要针对每个具体需求下工夫,没有捷径。一个好的测试用例和一段好的代码同样弥足珍贵,但其重要性和挑战性,以及完成其所需要花费的时间和精力却往往被轻视。业内需要把对测试能力的重视程度与开发能力对齐,特别是在敏捷测试的环境下,否则敏捷交付将无法实现,成为“半吊子”工程。 如果你的组织或团队想实现真正的敏捷交付,对敏捷测试的深入理解不可或缺。本书从文化、组织架构、流程和实践等多个方面系统剖析和讲解了敏捷测试及转型,是不可多得的敏捷测试方面的宝典。 我和本书作者之一陈晓鹏相识多年,他在测试和敏捷测试领域深耕多年,也是国内敏捷圈的活跃分子和著名讲师,经常在国内多个敏捷论坛、技术大型论坛发表主题演讲。本书是他与其他几位作者多年呕心沥血的结晶,不可错过。 刘华 汇丰科技公共服务与云平台中国区总监 《猎豹行动:硝烟中的敏捷转型之旅》作者 《图数据库实战》译者之一 前 言 随着近几年业务诉求的快速变化,以及敏捷开发方法的流行,越来越多的组织都采用敏捷模式进行项目开发。这种间隔时间极短、发布极其频繁的迭代让习惯传统瀑布模型开发的测试人员感到应对吃力、心力交瘁,不少测试人员抱怨做敏捷项目需要经常加班,压力更大,测试也更累了。长久以往,项目将面临极大的风险。那么,如何才能改变这种现状,让测试人员能够顺利在敏捷项目下保质保量地工作呢?本书将从文化、组织架构、流程和实践4 个方面为读者系统剖析和讲解。 本书一共分为4 篇。 第1 篇是敏捷测试基础篇,包括第1 章敏捷的定义和第2 章敏捷测试。在第1 章中,读者可以了解到软件工程发展史、敏捷的起源和定义、敏捷Scrum 介绍,以及规模化敏捷的3 种流行框架。第2 章是对敏捷测试的介绍,读者可以了解传统测试在敏捷环境下面临的挑战、敏捷测试的概念、特点与价值等。 第2 篇是敏捷测试转型篇,包括第3 章敏捷测试转型框架及第4 章敏捷测试执行。在第3 章中,读者可以了解传统测试如果要进行敏捷转型需要关注哪些维度,包括敏捷测试文化、敏捷测试组织与个人、敏捷测试流程等。第4 章根据敏捷测试执行的先后顺序介绍了敏捷中的测试需求、测试视角下的用户故事生命周期、敏捷中的测试计划、敏捷中的 测试任务,以及敏捷测试度量等。 第3 篇是敏捷测试实践篇,包括第5 章敏捷测试实践框架、第6 章敏捷功能性测试实践、第7 章敏捷非功能性测试实践,以及第8 章敏捷测试延伸实践。第5 章主要介绍敏捷测试整体的实践框架,为读者构建完整的知识体系。第6 章主要介绍敏捷测试中的各种功能性测试实践,如TDD、ATDD、BDD、探索式测试等。第7 章主要介绍性能测试、安全测试和可用性测试等非功能性测试。第8 章主要介绍与测试密切相关的持续集成、持续部署、持续反馈和DevOps 等相关知识。 第4 篇是敏捷测试案例篇,包括第9 章小型敏捷团队的测试实践案例和第10 章规模化敏捷软件开发团队的测试实践案例。第9 章主要介绍小型敏捷团队该如何开展测试工作。第10 章则分享了一个在SAFe 环境下的大型敏捷测试团队如何进行质量管控及测试的案例。 本书内容由易到难、层层递进,建议普通读者从前到后、循序渐进地阅读。如果读者已经具备一定的敏捷背景,掌握一定的敏捷知识,则可以跳过第1 章,直接从第2 章开始阅读。另外,如果读者认为自己的代码基础比较薄弱,也可以将重点放在前5 章,相信能够有所收获。 本书适合测试总监、测试经理、测试主管及测试工程师等相关从业者阅读。对于敏捷教练或Scrum Master 来说,这也是一本难得的测试领域的敏捷图书。当然,本书也同样适合相关专业及感兴趣的高校师生阅读参考。 接下来就让我们开启传统测试的敏捷转型之旅吧!

目录

第1 篇 敏捷测试基础 第1 章 敏捷的定义 ............................................................................................................... 002 1.1 软件工程发展史 ...................................................................................................... 002 1.1.1 软件工程的前世今生 .................................................................................. 002 1.1.2 瀑布模型的局限 .......................................................................................... 003 1.2 什么是敏捷 .............................................................................................................. 004 1.2.1 敏捷的起源 .................................................................................................. 004 1.2.2 敏捷的定义 .................................................................................................. 006 1.3 敏捷Scrum 介绍 ..................................................................................................... 008 1.3.1 Scrum 的起源 ............................................................................................... 008 1.3.2 Scrum 核心内容 ........................................................................................... 009 1.4 规模化敏捷 .............................................................................................................. 012 1.4.1 SAFe 框架 .................................................................................................... 012 1.4.2 Scrum@Scale 框架 ...................................................................................... 013 1.4.3 LeSS 框架 .................................................................................................... 013 1.5 本章小结 .................................................................................................................. 014 第2 章 敏捷测试 ................................................................................................................... 016 2.1 在敏捷环境下的传统测试 ...................................................................................... 016 2.1.1 在敏捷环境下传统测试面临的困境 .......................................................... 016 2.1.2 在敏捷环境下传统测试面临的挑战 .......................................................... 016 2.2 敏捷测试的概念 ...................................................................................................... 017 2.2.1 敏捷测试的定义 .......................................................................................... 017 2.2.2 敏捷测试的核心内涵 .................................................................................. 018 2.3 敏捷测试宣言 .......................................................................................................... 018 2.3.1 什么是敏捷测试宣言 .................................................................................. 018 2.3.2 敏捷测试宣言解读 ...................................................................................... 019 2.4 敏捷测试的特点与价值 .......................................................................................... 021 2.4.1 敏捷测试的特点 .......................................................................................... 021 2.4.2 敏捷测试与传统测试的差异 ...................................................................... 022 2.4.3 敏捷测试的价值 .......................................................................................... 023 2.5 本章小结 .................................................................................................................. 024 4.5 敏捷中的测试度量 .................................................................................................. 060 4.6 本章小结 .................................................................................................................. 061 第3 篇 敏捷测试实践 第5 章 敏捷测试实践框架 ................................................................................................... 064 5.1 敏捷测试象限 .......................................................................................................... 064 5.1.1 敏捷测试象限起源 ...................................................................................... 064 5.1.2 敏捷测试象限介绍 ...................................................................................... 065 5.2 测试金字塔 .............................................................................................................. 066 5.2.1 传统测试V 模型存在的问题 ..................................................................... 066 5.2.2 测试金字塔介绍 .......................................................................................... 067 5.2.3 分层自动化测试 .......................................................................................... 068 5.3 测试自动化与自动化测试 ...................................................................................... 069 5.3.1 测试自动化与自动化测试的区别 .............................................................. 069 5.3.2 测试自动化的目的 ...................................................................................... 069 5.3.3 增强的分层自动化 ...................................................................................... 070 5.3.4 自动化测试工具的选型策略 ...................................................................... 071 5.3.5 自动化测试框架介绍 .................................................................................. 072 5.3.6 什么样的项目适合测试自动化 .................................................................. 075 5.4 敏捷测试实践框架 .................................................................................................. 075 5.4.1 敏捷测试实践框架概述 .............................................................................. 075 5.4.2 敏捷测试实践活动与赋能 .......................................................................... 076 5.5 本章小结 .................................................................................................................. 077 第6 章 敏捷功能性测试实践 ............................................................................................... 078 6.1 测试驱动开发(TDD) .......................................................................................... 078 6.1.1 什么是单元 .................................................................................................. 078 6.1.2 什么是单元测试 .......................................................................................... 078 6.1.3 什么是TDD ................................................................................................. 079 6.1.4 TDD 实例 ..................................................................................................... 081 6.1.5 模拟对象 ...................................................................................................... 089 6.1.6 采用自动化构建工具管理自动化测试任务 .............................................. 100 6.1.7 生成单元测试分析报告 .............................................................................. 101 6.1.8 代码覆盖率的意义 ...................................................................................... 104 6.2 验收测试驱动开发(ATDD) ............................................................................... 106 6.2.1 什么是验收测试 .......................................................................................... 107 6.2.2 验收测试和单元测试的关系 ...................................................................... 109 6.2.3 ATDD 的实践 .............................................................................................. 110 6.2.4 采用Robot Framework 实现自动化验收测试 ........................................... 112 6.3 行为驱动开发(BDD) ......................................................................................... 120 6.3.1 什么是BDD ................................................................................................. 120 6.3.2 使用Cucumber 进行BDD .......................................................................... 122 6.3.3 使用Cucumber 和Selenium 对Web 页面的行为进行测试 ...................... 135 6.3.4 BDD 的落地策略 ......................................................................................... 145 6.4 API 测试 .................................................................................................................. 151 6.4.1 API 基础介绍 ............................................................................................... 151 6.4.2 介绍Web Services ....................................................................................... 152 6.4.3 在项目中如何进行API 测试 ...................................................................... 155 6.4.4 服务虚拟化和测试替身 .............................................................................. 159 6.4.5 API 测试工具需要具备的功能 .................................................................. 164 6.4.6 API 测试实例 ............................................................................................... 165 6.5 微服务测试 .............................................................................................................. 169 6.5.1 微服务介绍 .................................................................................................. 170 6.5.2 微服务测试难点 .......................................................................................... 170 6.5.3 契约测试 ...................................................................................................... 171 6.5.4 契约测试与其他测试的区别 ...................................................................... 172 6.5.5 契约测试常见测试框架与测试实例 .......................................................... 173 ?小技巧:在项目一开始就使用独立的契约测试仓库 ...................................... 196 6.5.6 契约测试的价值 .......................................................................................... 196 6.6 探索式测试 .............................................................................................................. 197 6.6.1 传统脚本测试的局限 .................................................................................. 197 6.6.2 探索式测试介绍 .......................................................................................... 197 6.6.3 探索式测试与脚本测试的区别 .................................................................. 198 6.6.4 探索式测试与随机测试的区别 .................................................................. 199 6.6.5 探索式测试的适用场景 .............................................................................. 200 6.6.6 探索式测试执行实例 .................................................................................. 200 6.7 本章小结 .................................................................................................................. 204 第7 章 敏捷非功能性测试实践 ........................................................................................... 206 7.1 性能测试 .................................................................................................................. 206 7.1.1 性能测试定义 .............................................................................................. 206 7.1.2 性能测试目标 .............................................................................................. 206 7.1.3 性能测试的类型 .......................................................................................... 207 7.1.4 性能测试的流程 .......................................................................................... 209 7.1.5 敏捷中的性能测试 ...................................................................................... 210 7.1.6 敏捷性能测试实例 ...................................................................................... 212 7.2 安全测试 .................................................................................................................. 217 7.2.1 安全威胁的类型 .......................................................................................... 217 7.2.2 安全测试的定义与分类 .............................................................................. 218 7.2.3 安全测试技术介绍 ...................................................................................... 219 7.2.4 常见Web 应用系统安全测试工具 ............................................................. 222 7.2.5 敏捷Web 安全测试实例 ............................................................................. 222 7.3 可用性测试 .............................................................................................................. 229 7.3.1 可用性原则 .................................................................................................. 229 7.3.2 可用性测试的定义 ...................................................................................... 230 7.3.3 可用性测试的价值 ...................................................................................... 230 7.3.4 可用性测试技术 .......................................................................................... 231 7.3.5 可用性测试实验室 ...................................................................................... 232 7.3.6 寻找测试参与者 .......................................................................................... 232 7.3.7 时间线 .......................................................................................................... 233 7.3.8 可用性测试过程实例 .................................................................................. 234 7.4 本章小结 .................................................................................................................. 240 第8 章 敏捷测试延伸实践 ................................................................................................... 241 8.1 持续集成 .................................................................................................................. 241 8.1.1 持续集成的定义 .......................................................................................... 241 8.1.2 持续集成与测试 .......................................................................................... 242 8.1.3 与测试相关的持续集成实践 ...................................................................... 243 8.1.4 基于Jenkins 和Docker 的微服务持续集成案例 ....................................... 244 8.2 持续部署 .................................................................................................................. 260 8.2.1 持续部署实践 .............................................................................................. 260 8.2.2 基于环境的部署 .......................................................................................... 261 8.2.3 基于应用的部署 .......................................................................................... 263 8.3 持续反馈 .................................................................................................................. 263 8.3.1 A/B 测试 ...................................................................................................... 263 8.3.2 混沌工程 ...................................................................................................... 265 8.3.3 生产环境测试 .............................................................................................. 269 8.4 DevOps ..................................................................................................................... 271 8.4.1 DevOps 的由来 ............................................................................................ 271 8.4.2 DevOps 三步工作法 .................................................................................... 271 8.4.3 DevOps 与测试 ............................................................................................ 272 8.4.4 DevOps 与敏捷测试的集成指导原则 ........................................................ 273 8.5 本章小结 .................................................................................................................. 274 第4 篇 敏捷测试案例 第9 章 小型敏捷团队的测试实践案例 ............................................................................... 276 9.1 项目背景 .................................................................................................................. 276 9.2 团队成员 .................................................................................................................. 277 9.2.1 团队角色和组织 .......................................................................................... 277 9.2.2 价值交付责任人 .......................................................................................... 278 9.3 测试策略和测试流程 .............................................................................................. 278 9.3.1 测试用例策略 .............................................................................................. 280 9.3.2 ATDD 流程 .................................................................................................. 281 9.4 持续集成策略 .......................................................................................................... 282 9.5 本章小结 .................................................................................................................. 283 第10 章 规模化敏捷软件开发团队的测试实践案例 ......................................................... 284 10.1 规模化敏捷框架简介 ............................................................................................ 284 10.2 案例背景 ................................................................................................................ 286 10.3 根据SAFe 需求模型重新梳理需求,提升需求质量 ......................................... 288 10.3.1 史诗及其质量要点说明 ............................................................................ 290 10.3.2 特性及其质量要点说明 ............................................................................ 292 10.3.3 故事及其质量要点说明 ............................................................................ 295 10.4 建立各粒度需求的管理组织和流转机制,将质量要求逐级分解 .................... 297 10.4.1 从精益敏捷卓越中心开始 ........................................................................ 297 10.4.2 成立精益投资组合管理委员会并形成史诗看板 .................................... 298 10.4.3 成立产品和解决方案管理委员会并建立产品开发看板......................... 302 10.4.4 组建敏捷发布火车、解决方案火车和各敏捷软件开发团队看板 ......... 304 10.4.5 各级别需求看板的级联流转机制 ............................................................ 306 10.5 启动敏捷发布火车,构建质量的反馈闭环 ........................................................ 308 10.5.1 PI 规划会.................................................................................................... 310 10.5.2 PI 执行中的发布火车同步会 .................................................................... 315 10.5.3 PI 的系统演示会 ........................................................................................ 315 10.5.4 准备PI 规划会 ........................................................................................... 316 10.5.5 检查和适配会 ............................................................................................ 316 10.6 规模化敏捷团队的测试策略和转型建议 ............................................................ 318 10.6.1 让企业高管参与提升软件质量的相关活动 ............................................ 318 10.6.2 采用BDD 作为开发流程 .......................................................................... 318 10.6.3 维持敏捷团队中测试人员的占比,促进测试“左移” ........................ 319 10.6.4 组建共享测试团队,并使其参与产品管理委员会 ................................ 319 10.6.5 通过DevOps 流水线维持单元测试覆盖率基线 ..................................... 320 10.6.6 调整度量考核体系 .................................................................................... 320 10.7 本章小结 ................................................................................................................ 321 参考文献 ··································································································.322

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个