科技>计算机>网络与互联网
敏捷测试高效实践:测试架构师成长记

敏捷测试高效实践:测试架构师成长记"

作者:司文,徐欢,翁磊
ISBN:9787121416859
定价:¥79.0
字数:435千字
页数:400
出版时间:2021-06
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

本书的核心主题是“敏捷测试”与“高效测试技术实践”,讲述一名测试工程师如何从传统测试思维和工作模式中跳脱出来、拥抱变化,并逐渐融入敏捷测试的过程,详细讲解了测试行业中常用的测试方法和开发技术。本书既浓缩了丰富的软件测试方法和作者大量宝贵的实践经验,又包含了作者在职场的认知和测试技术总结。书中剖析了诸多自动化测试和敏捷测试的优秀实例,并详细介绍了三款由作者自主研发的创新测试工具。读者不仅可以将这些知识直接应用到实际工作中,还可以学习使用创新测试工具PostSuperman,一键自动生成接口自动化测试脚本。 本书既适合软件测试人员阅读,又可作为软件相关专业人士的工作参考与实践指南。

前言

推荐序一 敏捷开发模式是目前行业中比较流行的开发模式,许多企业都在推行敏捷开发的实践,在这个过程中,测试活动往往成为一个瓶颈,如何突破这个瓶颈呢?大家首先想到的是自动化测试,提高测试工作的效率,尽量让测试做得快些,以尽快完成测试任务。但这只是许多测试人员的愿望,因为在现实中,想快不一定能快起来。例如,开展自动化测试工作需要开发测试脚本,甚至有些测试团队要先写测试用例,再写自动化测试脚本,工作量反而增大了。大多数项目不是从零开始的,它不是一个全新的项目,而是一个老系统,有许多遗留的测试用例还是手工测试用例,要把它们转化成自动化测试脚本,而此时公司的项目是不会停下来的,测试人员一面接受新的测试任务,一面还要去偿还过去欠下来的技术债务:大量的非自动化的手工测试用例。 除了遗留的手工测试用例,测试方面人力紧张也是一个比较大的问题。开发人员与测试人员的比例不断放大,同时由于开发人员没有系统地完成初期测试工作,会导致测试人员的压力是越来越大,在这样的环境下,如何开展敏捷测试,我们确实会遇到很大困难。 本书作者对敏捷开发模式非常认可,书中的案例在流程和技术上有着独到的创新,打破了一些不利于做好敏捷测试的传统方式,并重构测试平台,在帮助公司做好产品测试和交付工作的同时,自己也可以快速成为测试架构师,最终可以达到一箭双雕之效果。 本书的副标题“测试架构师成长记”非常好,一方面体现了本书作者希望用自己的亲身经历,帮助读者一步一步地成长,如:要掌握哪些测试的相关知识、测试技术和测试工具,如何从理论到实践、如何提升自己的认知等。这个成长过程就是帮助自己的团队解决问题的过程,例如:先统一大家的测试工具编写与执行方式,使测试团队的技术统一化、标准化,构建一个适合自己的测试平台;然后再考虑结合自己的实践应用场景,针对测试工具进行二次开发、对某些不好用的工具进行优化等;最后在此基础上进行技术创新,开发出更高效的测试工具。在这个过程中,作者自然引入了自己之前开发的测试工具,如基于开源接口测试工具Postwoman进行二次开发的PostSuperman和代码染色覆盖率测试工具CodeColor,它们能更好地保证书中方案和做法可以落地,更贴近实际的工作需求,容易模仿或直接借鉴。 本书的作者来自业内一线的金融科技公司,有着丰富的经历和经验,所以本书的内容除了容易落地、具有良好的阅读体验之外,更是其智慧的结晶,具有非常广泛的参考价值,在你成长的路上能很好地帮助你。最后,希望你会喜欢这本书。 朱少民 《高效敏捷测试》专栏作者,QECon大会发起人 推荐序二 首先,这是一本有趣的技术书。全书以软件研发场景和案例为主线来展开,读者的阅读过程会有很强的带入感,与其说是在阅读技术书,还不如说是在看一本IT职场小说,能够让读者切身感受到研发过程中出现的各种常见的潜在的问题,也就是先学会发现“钉子”的能力,然后在敏捷测试思想的引导下逐渐找到最适合的解决方案,也就是找到那把对付“钉子”所需要的“锤子”。光是这样的行文设计,就已经和市面上很多知识填充类的测试技术书籍拉开了很大的差距,让读者阅读之后的收获更像是自己有了亲身经历一样,除了能够带来更好的阅读体验外,也能够获得模拟实战的宝贵经验。 其次,这是一本面向实战的技术书。有句话说得好“说得好的人应该去做,做得好的人应该来说”,而本书恰恰是由“做得好的人”写成的书。软件测试是一个实践重于理论的工程实践,想要获得真正的知识,就不能叉着腰站在岸上吆喝,而必须“躬身入局”,只有通过长期的实战积累,才能悟出其中的精髓。本书的后半部分完全围绕项目实战展开,采用循序渐进的方式带领读者完成三款创新测试工具的设计与开发,在拓宽读者思路的同时,也会让读者切身经历测试工具的设计与开发的全过程。在整个讲解过程中,作者关注的重点始终是思维模式和思想方法的培养,而不是简单地就事论事或堆叠概念,很好地实现了“授人以鱼不如授人以渔”的知识传播宗旨。 最后,这是一本创新的技术书。本书的创新体现在以下三个方面:写作上采用“场景式案例”的问题驱动方式,使读者知道怎么做的同时,更清楚为什么要这么做,将“知其然知其所以然”发挥到了极致;在保证全书实战性的同时,也充分考虑了全书理论体系的完整性,充分考虑了不同层次读者的阅读诉求;本书实践部分介绍的三款工具,其设计理念和实现原理本身就是很好的创新,挣脱了传统测试书籍偏理论轻实践的顽疾。 丘吉尔有一句名言:“你能看到多远的过去,就能看到多远的未来。”相信这本书给出的全局技术视野和思维模式,一定可以帮助读者以更高的视角、从更广的维度重新认识和思考敏捷测试的高效实践,同时加速完成从测试工程师向测试架构师的跃迁。 茹炳晟 腾讯TEG 基础架构部 首席研发效能架构师 T4级技术专家 腾讯云最具价值专家 TVP 《软件测试52讲——从小工到专家的实战心法》作者 推荐序三 移动互联网行业的快速发展影响了很多软件研发模式的发展,在当前追求小步快跑、持续交付、高效研发的场景下,不少传统的测试方法及实践已不再适用。在我20年从业的经历中,曾经经历过团队规模从数十人壮大至数百人,产品形态从企业内部软件产品发展到亿级用户流量的移动互联产品,目睹过开发人员为不断追求最新的技术而兴奋不已,也目睹过测试人员在质量与效率之间苦苦挣扎的窘态。测试人员到底应该具备怎样的技能?专业的测试团队价值在哪里?优秀的测试团队应具备怎样的素质?这些问题会给测试团队建设和测试管理带来困扰,我们应该如何思考和实践呢?也许这本书会有你想要的答案。 作者与我是好友,我们各自在研发和测试领域耕耘多年,闲暇时会对测试工作进行深入探讨,其中一点共识是:移动互联网时代给测试工作带来巨大挑战的同时,也带来巨大的机遇与变革,测试工作有巨大的发挥空间和价值输出点,这足以让人深入探究,并感到众多乐趣。 以下是我们在探讨过程中提到的几个令人印象深刻的观点,供大家在阅读本书时参考: 测试工作的最终目标是服务于产品的商业价值。测试工作不能只限定在交付后期的质量保障上,而应全流程参与,所有有利于提升产品商业价值的工作,测试人员都应该参与,比如:产品需求分析、原型讨论、功能测试、自动化测试、探索测试、性能测试、产品试用、产品使用情况分析等,贯穿产品研发的全流程。 产品质量必须是由测试人员和开发人员共同负责的。说得通俗一些,开发人员要懂测试,测试人员也要懂开发。可以让测试人员和开发人员成为不可分割的团队,让开发人员也能高效地参与测试,这样整个研发团队才能得到真正的高质量成果。测试团队不仅要提升自身的效率,也要提升整个研发团队的交付效率,正如《Google软件测试之道》一书中提到的,测试团队属于工程生产力团队,以产品交付和效率提升为己任。 敏捷开发强调开发人员和测试人员作为团队成员共同交付软件产品,自我驱动不分彼此地协同工作,这一思想既能指导软件开发流程,也能影响团队的管理框架,对研发团队的工作模式构建影响深远。可以鼓励大家勇于尝试,但是也要注意,不要把重心放在所谓的敏捷“流程”上,而应放在“人”这个核心要素上,争取做到开发人员和测试人员都具备这样的意识,自我驱动、相互推进、协同工作。 我们不能局限于已有的工作流程和方法。任何有助于完成测试工作或提升效率的手段都是测试人员值得去尝试的,每个测试人员都应该要求自己学习和掌握自动化测试、性能测试、工具开发等技能,把这些技能归档到“工具箱”中,拿来即用。当你能越来越熟练驾驭这些工具时,恭喜你,你已经成长为合格的测试架构师了。 更多的内容和观点,在这本书中有详细的探讨。让人愉悦的是,作者不局限于枯燥呆板的说教形式,而是通过轻松的故事与实践来逐步揭示软件测试优秀的工作模式,和读者一起思考其中的逻辑与因果关系。希望看完本书的你和我一样,对测试工作有更加前沿的认知。 刘谆 招商银行信用卡中心 信息技术部 副总经理 前 言 创作初衷 随着移动互联网的兴起,很多优秀的工作方法在行业中实施落地,例如,敏捷软件开发模式、持续集成和精益模式早已在各大公司普及和实施;人工智能、云计算、大数据和区块链等新技术已经被很多公司所采用。对于测试从业者来说,既要紧随技术的发展和变革,也要在测试工作方法、方式上进行突破创新。越来越多的公司期望软件团队可以更快、更高效地交付软件产品,“工作效率”自然是大家绕不开的热门话题。我们相信,行业从业者一定也对如何“提升工作效率”感兴趣,因此,本书将从“使用技术提升团队效率”的角度来编写。 测试技术和工具的流行往往只能持续一段时间,而掌握测试思想、提升思维认知才能真正给团队带来长久的收益,从而进一步提高整个团队工作效率。所以,我们本着开放、分享的精神撰写了本书,希望通过本书能够与业界同行们进行分享和交流。 本书特色 本书立足于“提升工作效率”,从软件测试的方向出发,站在整个软件团队的角度去破解工作中的三大难题:测试技术不统一、测试人力不足和信息不对等。对测试岗位的价值、测试工程师的技术栈和测试架构师的思考认知等诸多内容进行了系统的梳理与总结。同时,我们把成功的敏捷转型实践作为经验分享出来,希望能够为软件从业人员带来帮助,坚定对敏捷的信心,真正认可敏捷软件开发模式。 全书架构 本书以章节来划分,共7章,以下概述了每章所涵盖的内容: 第1章,讲述了软件测试在行业中的现状、行业内大家认可的测试方法,测试架构师在团队中的工作方式与价值。 第2章,围绕敏捷测试与传统测试两种测试方式进行了详细的介绍与对比分析,分享了我们所在的技术团队一次性成功转型为敏捷开发模式的经验。 第3章,通过讲述软件开发工程实践作为开篇,帮助读者建立起开发技术的工程化思维。 第4章,对接口自动化测试的方法、接口文档管理、测试工具对比、主流测试框架进行了详细讲解。 第5章,讲述了“自动化测试平台”的开发设计思路,让测试团队的技术实现标准化。 第6章,通过开发PostSuperman测试工具,解决了团队中“测试人力不足”的实际问题,实现了测试工作方式上的创新,帮助团队提高了工作效率。 第7章,通过开发一款代码染色覆盖率测试工具(工具名:CodeColor),解决了团队中“信息不对等”的实际问题,既实现了测试工作方式上的创新,也解决了实际工作中的难题。 勘误和支持 软件测试是我们从事并热爱的职业;不断适应行业变化,并将软件测试这份工作做到极致,是我们的职业奋斗方向。由于我们水平所限,加之编写的时间仓促,书中难免会出现一些错误或表述不准确的地方,恳请各位读者批评指正。如果您有对本书内容的修改意见,可以发邮件联系我们,我们将积极检查并改正错误。 联系邮箱:xiaohubook@163.com 微信:cloudpanghu(添加好友请注明来意) 致谢 感谢我们的同事们,在整个写作过程中,你们帮助我们进行了内容优化和校对,这是本书高质量呈现的保障,特别感谢以下几位朋友和同事(以姓名的拼音排序):陈彦妤、付星雪、樊小晴、洪艳华、黄熠、凌佩佩、林乐逸、韦珍文、朱旭、章期文、周志兰等。 感谢公司的领导:刘谆,在我们编写过程中遇到困难、受到挫折并想放弃时,是您让我们敢于坚持自己的想法,重拾信心完成本书。同时,在本书的方向、结构与内容等多方面,给予了我们非常专业的指导,真心地感谢您! 感谢电子工业出版社的编辑张瑞喜老师,给予了我们专业的指导和鼓励,引导我们完成对本书的编写。 学习知识是辛苦的、枯燥的,我们力求将本书写成一本有趣的书、有灵魂的书。以漫画故事为主线展开的内容,给读者更真实、更直观地感受,期望读者能够在轻松、愉悦的氛围下,掌握敏捷测试的相关技术知识,建立自己的测试体系,并成长为优秀的测试架构师。 司文、徐欢、翁磊 2021年3月

目录

目录 第1章 测试的核心价值 001 1.1 理想与现实中的测试工作 002 1.1.1 理想中的测试工作 002 1.1.2 现实中的测试工作 002 1.1.3 如何破解窘境 003 1.2 测试工作的价值 004 1.2.1 测试岗位价值认知 004 1.2.2 提高团队成员的测试工作效率 007 1.2.3 角色认知 010 1.3 如何做一名出色的测试工程师 011 1.3.1 软件测试在校园 011 1.3.2 软件测试在软件行业 012 1.3.3 测试工程师如何从技术角度看待软件测试 014 1.3.4 怎样提升测试工程师的专业性 019 1.4 测试架构师的使命与价值 021 1.4.1 什么是测试架构师 021 1.4.2 测试架构师需要具备的四项能力 023 1.4.3 测试架构师与开发架构师 025 1.4.4 测试架构的高效实践 026 第2章 敏捷软件开发模式中的测试 031 2.1 敏捷软件开发模式 032 2.1.1 瀑布软件开发模式与敏捷软件开发模式 032 2.1.2 敏捷软件开发模式的介绍 040 2.2 一次成功的敏捷转型经验分享 051 2.2.1 简介 051 2.2.2 转型前的状况 052 2.2.3 测试团队的构成 052 2.2.4 转型阶段概述 053 2.2.5 转型的经验与心得 055 2.3 敏捷测试工程师 062 2.3.1 敏捷测试与传统测试的区别 062 2.3.2 敏捷测试工程师的技能特点 070 2.3.3 敏捷测试开展原则 071 2.4 敏捷测试工程师的思维方式 072 第3章 敏捷测试技术 081 3.1 工程实践与研究型知识 082 3.1.1 软件开发和测试工程实践 082 3.1.2 研究型知识 084 3.2 敏捷测试工程师技术 090 3.2.1 测试工程师需要掌握的软件开发技术 090 3.2.2 测试工程师需要掌握的软件测试技术 095 3.2.3 测试开发技术落地心得 107 第4章 接口自动化测试技术 109 4.1 自动化测试简介 110 4.2 接口测试文档 112 4.3 接口测试工具对比 115 4.4 Postwoman介绍 117 4.5 基于pytest框架和requests库的接口自动化测试 128 4.5.1 pytest测试框架介绍 128 4.5.2 requests库介绍 131 4.5.3 编写接口自动化测试脚本 132 第5章 自动化测试平台 141 5.1 背景介绍 142 5.1.1 自动化测试开展存在的问题 142 5.1.2 分析自动化测试问题的根本原因 144 5.1.3 解决自动化测试开展所遇到的问题 146 5.2 自动化测试平台开发设计 147 5.2.1 动手前的准备 148 5.2.2 平台开发技术介绍 150 5.2.3 自动化测试平台详细设计 153 5.2.4 自动化测试平台实现 155 5.2.5 自动化测试平台展示 166 5.3 功能优化 170 5.3.1 用户第一轮试用 170 5.3.2 第一轮工具优化 171 5.3.3 第二轮工具优化 173 5.3.4 第三轮工具优化 175 5.4 平台未来规划 176 5.5 实践心得 177 第6章 测试创新工具PostSuperman 179 6.1 开发团队介绍 180 6.1.1 理想中与现实中团队的差别 180 6.1.2 敏捷开发团队:一个实例 181 6.1.3 团队面临的效率问题 186 6.2 设计提高效率的方案 190 6.2.1 了解效率问题的全貌 191 6.2.2 分析导致效率问题的瓶颈 192 6.2.3 提高效率的方案:加强接口自动化测试 197 6.2.4 优化效率方案 199 6.2.5 本节内容回顾 203 6.3 提高效率的短期方案:借助工具 204 6.4 提高效率的长期方案:接口自动化测试框架 207 6.5 PostSuperman工具诞生 209 6.5.1 测试框架带来的效率提升效果有限 210 6.5.2 工具与测试脚本结合可行性分析 213 6.5.3 Postwoman源代码修改尝试 217 6.5.4 创新工具方案设计 224 6.5.5 PostSuperman的名字由来 226 6.5.6 PostSuperman工具实现 227 6.5.7 第一个可用版本交付 246 6.6 PostSuperman的第一轮优化 249 6.6.1 使用反馈 250 6.6.2 支持基于场景的自动化测试 253 6.6.3 工具从“可用”到“有用” 259 6.7 PostSuperman工具第二轮优化 262 6.7.1 从开发视角到用户视角 262 6.7.2 工具从“有用”到“好用” 271 6.8 团队试用情况 272 6.9 工具的后续拓展强化 274 6.10 小结 276 第7章 代码染色覆盖率工具 279 7.1 背景介绍 280 7.1.1 快速且高质量交付 280 7.1.2 故事背景介绍 282 7.1.3 发现并提出问题 283 7.2 再次向效率挑战:先定义问题 286 7.3 分析问题 288 7.3.1 再次向效率挑战 289 7.3.2 工具方法应用 290 7.3.3 技术可行性分析 296 7.4 方案设计 304 7.4.1 价值对等的沟通 304 7.4.2 设计价值对等的条件 307 7.4.3 系统设计 311 7.5 工具实现 317 7.5.1 工具名称CodeColor 318 7.5.2 管理模块设计 318 7.5.3 自动化构建插桩编译包 320 7.5.4 覆盖率文件收集 326 7.5.5 报告改造与生成 327 7.5.6 报告存档 332 7.6 功能优化 334 7.6.1 用户第一轮试用 334 7.6.2 第一轮工具优化 335 7.6.3 第二轮工具试用和优化 340 7.7 推广使用 342 7.8 后续产品功能规划 343 7.9 实践心得 345 附录A 349 A.1 资源包介绍 349 A.2 安装部署步骤 349 A.2.1 依赖软件安装 349 A.2.2 PostSuperman服务端部署 360 A.2.3 PostSuperman浏览器扩展安装 362 A.2.4 PostSuperman前端部署 364 A.3 补充说明 370 参考文献及资料 371 个人感悟 373 写本书的初衷 373 成长与发展 374 关于技术提高 375 关于技术创新 376 关于软件测试 377 本书赞誉 378

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个