书名:软件测试从业红宝书:职场跃迁与AI实战
ISBN:978-7-115-68369-4
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
编 著 肖利琼 陈晓鹏
责任编辑 张 涛
人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
网址 http://www.ptpress.com.cn
读者服务热线:(010)81055410
反盗版热线:(010)81055315
软件测试人员在职业发展中会面临哪些关键问题?
软件测试人员如何选择合适的发展方向?
软件测试人员如何规划和实现职业目标?
在人工智能(Artificial Intellgence,AI)时代,软件测试人员又该如何应对挑战、抓住机遇?
除了硬技能,还有哪些软技能是软件测试人员必不可少的?
本书由两位资深软件测试从业者结合20多年的从业经验编写,旨在为解决上述问题提供思路。本书共12章,系统地介绍软件测试的职业发展路径、软件测试职级、职业目标的构建、自我营销、公司的选择、如何成长为测试管理者,以及AI在软件测试工作中的应用等内容。同时,本书还特别强调在软件测试人员的职业发展中,硬技能之外的不可或缺的重要软技能。书中,作者分享了他们在一线工作中的诸多案例和故事,内容生动、贴近实际,有助于读者了解真实的工作场景,并从中获得启发。
本书适合的读者对象包括:希望为职业发展规划一条更清晰的路径的软件测试从业者;对软件测试领域感兴趣,希望了解该领域职业上升空间、寻求跨界发展机会的人员;需要掌握技术新趋势(特别是AI赋能的软件测试)的技术爱好者;正在求职或需要规划职业发展路线的计算机相关专业学生。
听闻利琼与晓鹏合著的《软件测试从业红宝书:职场跃迁与AI实战》即将付梓,我倍感欣喜。作为一名在软件测试领域探索了数十年的“老兵”,我亲历了这个行业从边缘走向核心,从手动“点点点”到自动化、智能化的波澜壮阔的变革。每当看到有深度、有温度、能真正为从业者指点迷津的佳作出炉时,我都感到由衷的振奋。
我与两位作者相识多年,也曾为利琼的《软测之魂:核心测试设计精解》撰写序言。他们对测试工作的热爱、对技术趋势的敏锐感知,以及乐于分享的精神,给我留下了深刻的印象。如今,他们两位联手,将二十余载的一线实战经验与对未来的深刻洞察熔于一炉,淬炼出这本“红宝书”,实乃业界一大幸事。
这本书最打动我的,是其将“跃迁”视角与AI(Artificial Intelligence,人工智能)实战相结合的独特定位。它没有停留在“术”的层面,罗列工具或技术,而是从“道”的高度,为软件测试从业者构建了清晰、完整且与时俱进的职业发展蓝图。其构想与我多年来倡导的“全程软件测试”理念,即“将测试活动深度融入软件生命周期,提升测试人员的全局价值”不谋而合。
本书的一大特色在于其“真实”。书中穿插的数十个案例都是作者亲见或亲历过的,他们将其总结成了宝贵的成功经验与失败教训。例如,我仿佛能看到在第7章“职业发展:成长为测试管理者”的背后,曾有无数测试工程师从导师角色起步,逐步成长为技术主管乃至部门经理。书中不仅剖析了不同管理角色必备的技能,更难能可贵的是,还分享了“高效小组例会的管理方法”“团队组织模式设计的要领”等极具实践指导意义的“心法”。此外,在技术通道、测试管理通道等传统发展路径以外,本书创新性地提出了业务通道、泛测试通道等多元发展方向。
作为教育工作者,我特别欣赏本书对测试新人成长的关注。从试用期的快速成长到转正后的持续学习,从技术精进到软技能培养,作者为测试新人提供了一套完整的成长体系,帮助他们少走弯路,快速成长。
当前,AI特别是大语言模型(Large Language Model,LLM)的飞速发展,给软件测试行业带来了前所未有的机遇和挑战。许多测试人员心中充满了“会不会被替代”的焦虑。本书没有回避这一问题,而是正面、系统地给出了答案:拥抱AI,让AI为我所用,借助AI提升工作效率和质量。例如,书中的第10、11章系统展示了AI如何赋能软件测试全流程和测试求职:从利用AI进行需求评审、绘制流程图、生成测试方案,到借助AI分析岗位信息、优化简历、进行模拟面试,作者将AI从一个“黑盒”变成了一个测试人员可以随时调用的“智能助手”。“AI+测试”的实战方法论,能有效缓解从业者的技术焦虑,更能实实在在地帮助他们提升工作效率和质量,在智能化时代抢占先机。
软件工程3.0时代,测试人员不再是单纯的“找Bug者”,而是质量保障的工程师、用户体验的守护者、业务价值的贡献者。角色的转变,要求测试人员不但要掌握专业技术,还要具备洞察业务和技术发展趋势,依托新技术强化自身、高效解决问题的能力。本书正是帮助测试人员完成这种角色转型的实用手册。
注:大语言模型有时也称为大模型。
作为一名资深的测试专家,我深知,决定一个测试人员能走多远的,从来不只是硬核的技术能力。沟通协作、逻辑思维、自我营销等软技能,往往会在关键时刻起到决定性作用。本书深刻地洞察到了这一点,讨论了职业生涯的经营、自我营销之道、用好平台和自我管理等主题,将软技能的培养提升到了与硬技能同等的高度。
这种“软硬兼修”的理念告诉读者,不仅要成为一个懂技术、懂业务的专家,更要成为一个懂沟通、善协作、会思考、能影响他人的复合型人才。这正是优秀测试人员所必备的素养。
总而言之,《软件测试从业红宝书:职场跃迁与AI实战》是一部集前瞻性与实用性于一体的优秀作品。它既是初入职场者的“指路灯”,也是寻求突破的资深从业者的“加油站”。它提供了丰富的知识和技能,更传递了一种积极进取、拥抱变化的职业态度。
我很高兴能将这本“红宝书”推荐给每一位心怀梦想的软件测试同行。愿你们能通过阅读本书,找到属于自己的职业跃迁之路,在AI时代乘风破浪,成就未来的职业生涯!
朱少民
《全程软件测试》《软件工程3.0:大模型驱动的研发新范式》作者
很高兴能为《软件测试从业红宝书:职场跃迁与AI实战》作序。在这个软件无处不在的时代,测试工作的重要性日益凸显,然而许多从业者却对职业发展感到迷茫。本书的出版恰逢其时。
我想向所有软件测试从业者推荐本书,它尤其适合初入行业、对前路感到困惑的新人阅读。书中呈现了软件测试职业的全景图,并提出了一个极具启发性的理念:把职业生涯当成产品来经营,把测试职业当成事业来干。这一理念值得每位从业者深思。它倡导的不仅是一种职业态度,更是一种根本性的思维转变:从被动执行到主动经营,从关注任务到创造价值,从短期就业到长期事业。
本书系统性地介绍了测试人员的职业发展路径、技能矩阵、团队协作与影响力建设等关键内容,几乎涵盖了测试职业生涯的各个维度。更难能可贵的是,它构建起了一个从个人发展到团队贡献的完整的成长框架。无论你想成为深耕自动化测试的技术专家,还是带领团队高效完成测试业务的测试管理者,都能从中获得实用的指引。
书中融入了作者的诸多亲身经历,分享了他们对事件背后逻辑的深度思考,这些真实案例兼具实操性与启发性。读者不仅能从中学到解决问题的方法,还能了解到软件测试的丰富内涵与在该领域不断成长的职业发展路径。
在人工智能驱动软件测试持续演进的今天,测试人员的角色正经历深刻转型。本书以前瞻性的视野,探讨了如何将挑战转化为职业发展的新机遇,帮助读者培育面向未来的职业技能。
希望每位软件测试从业者在阅读本书后,都能更清晰地规划自己的职业道路,更从容地应对行业的变化。软件测试不仅是一份工作,还可以是一项创造价值的事业、一段能带来无限成就感的旅程。愿这本书成为你旅途中的伙伴,助你在测试领域走得更加自信、坚定。
徐琨
云测CEO
本书是一本聚焦软件测试职业发展与AI应用的指南,系统梳理了测试人员的技术、管理、业务等多维成长路径,结合AI在测试领域的实践,为读者搭建起从基础到高阶的能力框架。无论测试新人还是资深测试工程师,都能从中获得清晰的成长策略和实战方法。推荐所有关注软件测试未来发展的从业者阅读。
姚冬
华为云软件开发生产线首席架构师
本书以实践为基石,从职业发展、技能深化到AI赋能,系统呈现了新时代软件测试从业者的成长路径。本书特色在于将传统测试方法与智能技术融合,既讲解了测试思维与质量体系的构建,又前瞻性地探讨了AI在需求分析、用例生成及效能提升中的应用。本书案例贴近实践,可作为新入行者的学习指南,也能为有经验的软件测试从业者提供新的思考维度与进阶方向,很值得软件测试人员阅读。
熊志男
测试窝社区质量效能专家
我不清楚未来的AI时代是否还会存在专门的软件测试者角色,但是我相信,所有开发和使用AI工具的人,都需要有一些测试思维和测试技能。
在AI的加持下,把一件事从无到有、从0到1做出来很容易,可是要从有到好、到更好却很难,此时更需要测试反馈环这个“神器”了。
要想对软件测试有更多了解,尤其对非软件测试从业者而言,本书是一个好选择。
邰晓梅
海盗派方法学创始人
本书是由拥有20多年实战经验的专家撰写的职业指南,从技术通道到管理路径,从AI赋能到软技能修炼,用许多真实案例帮助读者系统解决职业发展的核心难题。无论读者正面临技术转型的迷茫,还是遭遇职业发展的瓶颈,这本书都可以在各个方面提供帮助。
茹炳晟
腾讯Tech Lead,腾讯技术委员会委员
中国计算机学会TF研发效能SIG主席
本书是软件测试人的行业指南,能满足软件测试人技术提升与职业发展的双重需求。
在研发禅道之前,我有过一段测试从业经历。这段经历让我在日后参与软件研发时,自然而然地具备了宝贵的测试视角。软件测试从来不是可被忽视的研发环节,这本书值得所有软件行业从业者一读。
王春生
禅道项目管理软件创始人
在AI浪潮席卷软件测试领域的当下,本书如一盏明灯,照亮了从业者的跃升之路。两位测试“大牛”倾力编著的这本书,系统地剖析了软件测试的职级体系、多元化发展路径,并深度融合AI实战——从需求评审到测试分析、从岗位信息分析到模拟面试,全方位讲解了AI赋能相关知识,帮助从业者提升职场竞争力。无论你是测试新人、技术爱好者,还是打算转型为管理者的资深测试人员,本书都很值得你阅读。
陈磊
《接口测试方法论》《持续测试》《大模型测试技术与实践》作者
本书从实战视角系统地梳理了测试职业成长路径,深度融合AI赋能、测试技术精进与软技能成长的相关内容,兼具理论与实战高度,为测试工程师和技术管理者在AI时代实现自我突破与职业跃迁提供了实用指导。
刘冉
软件测试与质量专家
本书系统地分析了多条软件测试职业发展路径及所需的软硬技能,能有效助力软件测试从业者构建自身“护城河”,合理规划职业生涯。
陈霁
TestOps创始人
如今,人工智能正在深刻地改变着软件测试。测试新人如何顺利进入职场,如何借力人工智能实现个人发展?《软件测试从业红宝书:职场跃迁与AI实战》提供了宝贵的职业发展指南。本书将成为软件测试人员的良师益友,助力大家在职业生涯中取得成功,书写测试职业新传奇!
崔启亮
北京昱达环球科技有限公司总经理
中国软件测试认证委员会资深专家
随着技术的飞速发展,软件测试领域正经历着前所未有的变革。从传统的手动测试到现代的自动化、智能化测试,软件测试人员的角色和职责也在不断地演变和扩展。在这个充满机遇与挑战的时代,如何在众多的职业发展方向中做出明智的选择?特别是在AI飞速发展的浪潮中,如何抓住机遇,让自己的职业生涯熠熠生辉?在此背景下,本书应运而生,旨在成为陪伴软件测试人员前行的益友。
(1)本书为渴望在软件测试领域精耕细作、追求卓越的软件测试人员提供全面而深入的职业发展路径规划指南。书中系统介绍软件测试领域的多条职业发展路径,如测试管理、业务管理等,详细阐述每条路径的职责、技能要求和特点,帮助读者根据自身兴趣、能力和职业目标,做出明智的选择。
(2)本书有助于全方位提升软件测试人员的硬技能和软技能。在硬技能方面,本书讲解软件测试涉及的知识和技术,包括测试知识、大数据、云计算、区块链和AI等;在软技能方面,本书强调时间管理、沟通技巧等的重要性,并提供丰富的提升策略和技巧。
(3)本书将助力软件测试人员应对AI时代的新挑战并抓住机遇。书中深入探讨AI技术在软件测试中的应用,分析AI时代对软件测试人员提出的新要求,帮助软件测试人员掌握与AI相关的知识,具备与AI协作的能力,以便应对AI时代的新挑战。
(1)涵盖软件测试职业发展的众多方面。
本书从软件测试的基础知识和核心技能出发,详细介绍测试职级体系、职业经营、自我营销、平台选择等相关知识,细致梳理技术通道、测试管理通道、业务通道等多条发展路径的特点及所需能力。
(2)深入探讨在AI时代如何利用AI技术赋能软件测试。
AI技术的快速发展使软件测试更高效、结果更精准,同时也要求软件测试人员不断学习和掌握新的技术和工具。本书指导读者在软件需求评审、软件测试分析等方面应用AI技术,提升软件测试效率和质量;指导读者利用AI开展岗位信息分析、简历生成、模拟面试,在行业变革中保持竞争力,紧跟时代的步伐。
(3)特别强调软技能的重要性,深入讲解沟通能力、团队协作能力等软技能的培养方法。
通过培养这些软技能,读者不仅能在职场中脱颖而出,还能提升自己的认知水平和综合素质,获得持久的竞争优势,提升个人价值。
(4)融入软件测试一线工作中的诸多案例和故事。
这些生动的案例和故事贴近实际,能为读者提供宝贵的启示。通过阅读这些案例和故事,读者能够真切品味软件测试行业的酸甜苦辣,准确把握软件测试工作的要点,深入理解不同职业发展方向的特点和挑战,从而做出更好的职业规划。
本书不仅提供理论指导,还包含实践者的智慧。无论你是希望为职业发展规划一条更清晰的路径的软件测试从业者,还是对软件测试领域感兴趣,希望了解该领域职业上升空间、寻求跨界发展机会的人员;无论你是正在求职或规划职业发展路线的计算机相关专业的学生,还是需要掌握技术新趋势(特别是AI赋能的软件测试)的技术爱好者,都能在本书中找到属于自己的答案。
让我们共同开启一段精彩的软件测试职业发展之旅,在软件测试的广阔天地中,描绘出属于自己的璀璨轨迹。愿每一位软件测试人员都能在本书的指引下,找到自己的职业发展方向,实现职业梦想,为软件测试行业的繁荣发展贡献一份力量。
写书是一项对作者的专业水平要求极高的工作,尽管作者已竭力完善本书,但书中可能仍然存在漏洞和瑕疵。欢迎读者提供反馈意见,以便作者继续提升本书的质量。如果读者在阅读本书时遇到问题需要帮助,可以通过邮件联系作者:sebook2022@126.com(肖利琼),352217@qq.com(陈晓鹏)。
感谢家人的大力支持,没有他们无私的奉献,我们就不可能在无数个周末里全身心投入写作;同时感谢良师益友对本书提出的宝贵意见。
作者

本章首先介绍软件测试在国内外的发展历程,让读者对软件测试在全球视野下的发展情况有初步的了解;随后介绍国内软件测试目前所面临的挑战及蕴含的机遇;然后介绍软件测试在国内衍生出的多元化职业发展路径与岗位,为读者进行岗位选择提供一定的参考;最后概述软件测试技能矩阵,让读者对硬技能和软技能有初步的认识。
国外的软件测试始于20世纪50年代,起步较早。1972年,北卡罗来纳大学举办了首届软件测试正式会议,这标志着软件测试作为一个独立的领域开始发展,并发展出软件测试这一专门的岗位。国内的软件测试起步较晚,然而,随着国内IT(Information Technology,信息技术)行业的快速发展,软件测试也逐渐走向成熟。本节将对国内外软件测试发展历程进行详细讲解。
在软件测试领域,习惯将软件中的缺陷称为“Bug”(本意是臭虫)。那么,为什么将软件缺陷称为Bug?有说法称,美国发明家托马斯·爱迪生(Thomas Edison)曾在写给同事的一封信中将机器中的缺陷描述为“Bug”。但这个用法真正流行是从1947年开始。当时美国数学家格雷丝·默里·霍珀(Grace Murray Hopper)使用Mark II计算机工作,她发现计算机的继电器中卡住了一只飞蛾,导致计算机无法正常工作。格雷丝把飞蛾移出,并把它粘贴在工作日志上。而这与现在的测试人员所做的事情类似:找到Bug并在Bug管理系统中报告它。所以,Bug一词进入计算机世界源于现实世界的Bug,而“debug”(调试)一词同样非常形象。
国外的软件测试从20世纪50年代开始发展至今,经历了以下5个阶段。
在面向调试(debugging)的阶段中,测试和调试之间没有太大的区别,人们重点关注的是修复错误。在企业中没有专门的测试岗位和测试人员。开发人员如果在编写代码时遇到错误,会自己修复这些错误。
在面向演示(demonstration)的阶段中,测试作为软件开发中一项单独的活动,与调试存在明显的区别。此阶段测试的主要目标是确保软件满足客户的需求。比如,客户的需求是“应用程序页面每次只展示 5 个产品”,测试人员则会按照客户的需求验证页面每次是否只展示 5 个产品。
在面向破坏(destruction)的阶段中,测试人员采用“破坏性思维”,对代码进行破坏性测试以检测代码中未被发现的错误。1979 年格伦福德·J.迈尔斯(Glenford J. Myers)等人在《软件测试的艺术》中提出“测试是为发现错误而执行程序的过程”。
在面向评估(evaluation)的阶段中,软件测试不仅包含发现错误,还包含对软件质量的评估。而软件质量评估可以提高大家对软件正常运行的信心。特别是大型软件,测试人员往往会在整个软件生命周期内进行评估,直至软件质量达标。
在面向预防(prevention)的阶段中,人们开始意识到,软件测试不应该在问题发生后才进行,而应该用于防止问题的发生。所以测试人员的工作重点从对软件进行测试,以表明软件符合需求和规范,转向通过软件测试来预防缺陷。
进入21世纪后,软件测试向自动化及智能化发展。特别是最近几年,随着ChatGPT 等大语言模型(Large Language Model,LLM)的火爆,AI赋能让软件测试有了无限的可能。新时代软件测试发展的重点是借助自动化测试技术、AI 技术及相关工具来提升效率。
由于我国的软件行业起步相对较晚,所以软件测试起步也比较晚。国内软件测试发展历程主要包括以下3个阶段。
初始阶段主要为20世纪90年代。随着计算机在我国逐渐普及,软件行业进入快速发展阶段,软件企业如雨后春笋般涌现。但是,大多数软件企业处于初创阶段,规模比较小,资源不充足,所以软件开发往往没有按照规范的方法进行。很多企业没有专门的测试团队或测试岗位,测试工作由开发人员一并完成。在这种情况下,软件非常容易出现质量问题。
发展阶段主要为21世纪初的10年。随着我国软件行业的蓬勃发展,用户对软件质量的要求也越来越高。这迫使软件企业想方设法地提升软件质量,因此规范的软件开发方法和体系越来越受到国内软件企业的重视。CMM/CMMI(Capability Maturity Model/Capability Maturity Model Integration,能力成熟度模型/能力成熟度模型集成)在国内的流行,让软件企业开始重视测试工作、建立规范的测试体系、组建专门的测试部门和团队。测试阶段和流程也变得更加细致。除此之外,在这个阶段,自动化测试技术和工具也有了很大的发展。
成熟阶段主要在2010年以后,随着敏捷和DevOps(开发运维一体化)的流行,软件测试强调开发与测试的融合,所以测试组织逐渐由传统的职能型组织转向项目型组织,对测试人员的技能要求也变得越来越高。测试人员不仅需要掌握测试知识和业务知识,还需要学习敏捷和 DevOps 相关知识。此外,测试人员还可能需要了解微服务、容器、云计算、大数据、AI等前沿技术,软件测试岗位的专业性变得越来越强,测试人员面临的挑战变得越来越大。
软件测试领域正经历着前所未有的变革。在技术不断进步的今天,测试人员不仅要面对复杂多变的测试场景,还需不断更新知识和技能以应对新的挑战。然而,这些挑战也为测试人员带来了前所未有的机遇。他们可以通过新兴技术,如自动化测试、AI辅助测试等,来提升自己的竞争力,开拓更广阔的职业前景。
与软件测试技术更先进的国家相比,国内软件测试起步比较晚,在测试意识、测试理论研究、大型测试工具开发及测试团队规模等方面存在一定的差距。国内软件测试目前面临的挑战有以下几个方面。
国内不少软件管理者缺乏质量意识,不重视测试,认为测试是可有可无的环节。之所以会出现这种现象,既包含客观因素,也包含主观因素。
客观因素是国内很多项目的资源有限、经费少、开发周期短,但需要开发的软件功能多。在这种情况下,软件管理者会尽可能地把有限的资源投入软件开发中,因为这样做能保证生产出可执行的软件,显性价值明显;而测试的作用更多表现在保障软件的质量上。如果最后连软件都没开发出来,那就谈不上测试了。
主观因素是目前大多数软件管理者是做开发出身,一方面,他们对测试了解不深,没有真正意识到测试的重要性;另一方面,他们可能觉得测试比开发容易得多,所以不是很重视测试,也不愿意在测试上面投入过多的资源。
国内一些企业对测试工作缺乏重视,因此测试团队的规模较小,测试资源分散。目前国内拥有千人以上测试团队的软件企业并不多见,而国外不少软件企业都拥有规模庞大的测试团队,如IT咨询企业埃森哲等。测试人员的缺乏一方面可能导致无法在短时间内对软件进行全面而深入的测试,从而增加软件发布后出现问题的风险;另一方面可能导致很多创新性的测试工作无法开展,比如新型测试工具的研发等。
随着敏捷与 DevOps 的流行,企业对软件测试的要求也越来越高,软件测试人员需要具备一定的技术和专业知识,包括自动化测试、性能测试、安全测试等相关的知识。但是实际上,一方面,测试长期不受重视,导致测试岗位门槛偏低,测试人员初始技术水平普遍不足;另一方面,在一些企业或组织中,测试人员得不到进一步的培训,难以持续提升技术水平。
软件研发需要测试团队与开发团队密切合作。然而,由于组织结构固化、开发进度压力大、团队间缺乏沟通等问题,测试团队可能无法与开发团队高效协作。比如,很多时候需求阶段或者设计开发阶段的工作没有如期完成,软件上线的时间又不能推迟,这相当于压缩了测试时间,使测试人员无法正常完成测试工作,从而影响了软件的质量。
近年来,随着AI、区块链、云计算、大数据等新技术的发展,相关的软件产品测试给测试人员带来了巨大的挑战。一方面,大数据、AI等新技术使测试人员很难预先设定Test Oracle(测试预言),无法用传统的测试方法对相关的软件产品进行测试;另一方面,目前业界介绍新技术相关产品的测试方法的书也很少,这给测试人员带来了非常大的困难。
1.2.1小节阐述了国内软件测试面临的挑战,但挑战也往往蕴含机遇,无论对于测试人员个人还是对于企业而言都是如此。
工业和信息化部发布的数据显示,2023年,全国软件和IT服务业规模以上企业超3.8万家,累计完成软件业务收入123258亿元,同比增长13.4%;2023年,软件业利润总额14591亿元,同比增长13.6%,增长速度令人瞩目。而软件业务收入增长,意味着软件测试也有相应的增长。所以从整体市场环境来看,软件测试领域呈现快速发展和上升的态势,这对于测试人员个人和企业而言,都是积极的信号。
从个人角度来看,首先,由于我国的软件行业正处于蓬勃发展的阶段,所以无论开发岗位还是测试岗位,对相关人员的需求量都会增加。这意味着测试人员就业的机会更多,获得的报酬也会水涨船高。其次,在开发领域,由于开发人员基数比较大,所以晋升的竞争会很激烈,开发人员要脱颖而出,难度不小;而在测试领域,测试人员基数比较小,所以晋升的竞争相对会小一些。最后,随着近几年新技术的不断发展,企业对测试人员的要求越来越高,测试不再是任何人想从事就可以从事的职业。这种“良币驱逐劣币”的趋势将会使真正懂测试技术的测试人员获得与能力相匹配的回报。
从企业角度来看,一方面,随着国民经济和软件行业的蓬勃发展,软件测试这块“蛋糕”会越来越大;再加上现在用户对于产品质量的要求越来越高,也使企业必须通过不断加大人力等投入来提升产品质量,从而满足用户要求。另一方面,虽然新技术给测试带来了挑战,但是新技术同样可以赋能测试,帮助企业降本增效。测试人员借助AI、大数据等新技术,可以省时省力地完成测试。比如,测试人员可以通过输入测试需求,让ChatGPT自动生成一系列的测试用例,再对这些测试用例进行人工校验和修正。另外,测试人员还可以让ChatGPT根据测试用例自动生成自动化测试的脚本。这不仅能节省准备测试用例的时间,还能节省编写自动化测试脚本的时间,从而大大提升整体的测试效率。对于企业而言,测试效率的提升就意味着以较少的投入保证软件的质量。
与开发人员相比,软件测试人员的职业发展路径更加多元化。原因是开发人员需要深度发展,比如深入学习编程和开发技术,深入了解自己所负责的模块的需求和实现方案,否则难以开发出满足用户需求的软件;而测试人员偏向于广度发展,他们需要掌握更加广泛的知识,比如业务知识、系统整体架构、整体业务流和数据流、测试知识、代码知识、管理知识、沟通技巧等。当前测试人员的职业发展路径一般包括技术通道、测试管理通道、项目管理通道、业务通道和泛测试通道等。
技术通道主要是指测试人员沿技术方向发展。而技术方向主要包括自动化测试、性能测试、安全测试等对技术要求比较高的方向。测试人员在技术通道上的发展路线如下。
初级测试工程师一般是工作时长在3年以内的职场新人或者从其他行业转到软件测试行业的“小白”。他们主要在实际的工作场景中学习软件测试的相关知识,比如如何制定测试用例、如何执行测试、如何编写测试报告等。除此之外,他们还需要学习相关的业务知识和操作系统、数据库、网络等技术知识。
自动化测试工程师一般由已工作3~6年的测试人员担任。当测试人员有了一定的测试基础知识、业务知识和实际测试经验后,喜欢编程或者喜欢新技术的测试人员可以考虑往自动化测试方向发展。自动化测试包括功能自动化测试、性能自动化测试等。自动化测试工程师的主要目标是熟练掌握业界流行的自动化测试工具,包括运用工具来编写和制作自动化测试脚本、运用工具执行自动化测试等。
测试开发工程师一般由已工作6~9年的测试人员担任。当测试人员积累了一定的自动化测试经验后,可以考虑往测试开发工程师发展。自动化测试工程师与测试开发工程师的区别在于前者主要使用自动化测试工具进行脚本开发,目的是把原本手动执行的业务测试用例转化成自动化测试脚本并且执行它;而后者主要负责开发测试工具或者测试平台,提供给开发人员或者测试人员使用,助力他们更便捷地执行测试。总的来说,测试开发工程师会更多地考虑如何赋能开发人员或测试人员,所以从岗位作用角度来看,自动化测试工程师和测试开发工程师有很大的差异。但是在实际的工作场景中,因为资源不够充裕,可能会由同一个测试人员来承担这两个岗位的工作。
测试架构师一般由已工作9~15年的测试人员担任。当测试人员对自动化测试熟悉之后,他们需要考虑的是如何从公司或组织层面去设计测试体系架构,例如测试需求和测试用例如何组织管理;缺陷管理流程如何与测试管理平台、项目管理平台集成;自动化测试平台如何支持不同技术栈等。测试架构师的作用与项目中的架构师类似,不同的是项目中的架构师主要负责应用软件的体系架构设计,而测试架构师主要负责测试体系架构设计。
测试专家一般由工作15年以上的测试人员担任。这时的测试人员积累了非常丰富的测试经验,也经历过各种各样的测试场景,克服过众多的困难,因此可以指导项目组解决测试的相关难题。可以把测试专家理解为医术高超、经验丰富的医生,他们能给项目把脉,找出问题所在,并提出相应的解决办法和改进方向。
测试管理通道主要是指测试人员沿测试管理方向发展,管理的范围主要聚焦测试领域,包括测试团队管理、测试交付管理等。测试人员在测试管理通道上的发展路线如下。
与技术通道的初级测试工程师相似。
中高级测试工程师一般由已工作3~6年的测试人员担任。当测试人员有一定的测试基础知识、业务知识和实际测试经验后,可以开始独立负责项目中某些核心模块或者子系统的测试工作,并且作为团队中的核心力量,帮助团队解决业务上或者技术上的棘手问题。
测试(高级)主管一般由已工作6~9年的测试人员担任。他们带领一个或者几个测试小组(团队)负责某个项目的测试工作,或者在大项目中负责某子系统的测试工作。测试(高级)主管的工作重点不再是执行测试工作,而是管理整个测试小组,负责资源安排分配、进度计划管理、任务过程追踪等管理类工作。
测试(部门)经理一般由已工作9~15年的测试人员担任。当测试人员有非常丰富的测试管理经验后,可以带领多个测试小组负责多个项目或者某个大项目的整体测试工作。测试(部门)经理主要负责和客户、业务方、管理层等关键利益相关方进行沟通,带领测试团队实现项目的测试目标。
测试总监一般由工作15年以上的测试人员担任。他们是企业或者组织的测试负责人,领导整个企业或者组织的测试工作。测试总监的工作重心是从业务层面获取更多的测试机会、从战略层面提升整个测试团队的效率、从组织层面保持测试团队的稳定性,以及从执行层面建设自动化测试体系等。
项目管理通道主要是指测试人员沿项目管理方向发展。项目管理通道与测试管理通道不同的是,测试管理主要管理的是项目里的测试业务,而项目管理则是对整个项目进行管理,其中包括测试管理。但是由于测试领域的专业性,测试管理通常会由测试主管或测试经理等来负责。测试人员在项目管理通道上的发展路线如下。
与技术通道的初级测试工程师相似。
与测试管理通道的中高级测试工程师相似。
与测试管理通道的测试(高级)主管相似。
项目经理、Scrum Master、敏捷教练一般由已工作9~15年的测试人员担任。由于测试(高级)主管在进行测试管理的过程中也会参与到项目管理的工作中,因此能够积累一定的项目管理经验。如果他们对项目管理感兴趣的话,可以尝试转型为项目经理,负责整个项目的管理工作。当然,转型为项目经理并不是一件简单的事情,需要测试人员下定决心并且在项目中不断地学习与磨炼才行。
如果之前测试人员接触并且系统学习过敏捷相关知识,也参与过敏捷项目的话,可以往Scrum Master或者敏捷教练方向转型。同样,这也需要测试人员的决心和持之以恒的努力。
项目总监一般由工作15年以上的测试人员担任。当测试人员作为项目经理负责了多个项目并积累了丰富的项目管理经验之后,再往上发展,可以进一步地对多个项目或者某个大型项目进行管理。项目总监主要的职责不再是对某个项目进行具体细致的管理,而是带领多名项目经理进行项目群管理、与客户或领导层进行沟通、寻求新的项目机会、开拓新的业务、组建团队完成新的项目等。
业务通道主要是指测试人员沿业务方向发展。测试人员在业务通道上的发展路线如下。
与技术通道的初级测试工程师相似。
与测试管理通道的中高级测试工程师相似。
需求分析师(Business Analyst,BA)一般由已工作6~9年的测试人员担任。对业务知识非常了解是测试人员转型为需求分析师的先决条件。如果测试人员性格比较外向、沟通能力强,又喜欢与人打交道,则可以考虑往业务方向发展,成为一名需求分析师。因为需求分析师需要经常和客户或者业务方进行沟通,获取他们的需求,进行梳理和分析后,再把需求转达给开发团队。
产品负责人(Product Owner,PO)/产品经理一般由已工作9~15年的测试人员担任。积累一定的业务经验后,需求分析师可以往产品负责人/产品经理方向发展。产品负责人/产品经理的工作主要是进行用户需求沟通或市场调研,对产品市场前景或者竞争产品进行分析,对产品进行定位和设计,协调开发、测试、技术等部门,保证产品从概念设计到开发上线能如期完成。
产品总监一般由工作15年以上的测试人员担任。产品经理再往上发展,可以成为产品总监。产品总监负责公司主要产品线的策略制定、实施及产品生命周期管理;确认产品路线图;进行产品调研、产品策划、产品发布,并对产品的各项运营指标负责。
此外,一些岗位虽然不属于这4条职业发展路径,但是这些岗位的职责仍然与测试领域相关。比如,近几年火热的DevOps工程师、测试咨询顾问、测试业务售前或销售人员等。通常把这些岗位称为“泛测试工作”,把向这些岗位发展的职业发展路径称为“泛测试通道”。测试人员在泛测试通道上的发展路线如下。
与技术通道的初级测试工程师相似。
与测试管理通道的中高级测试工程师相似。
DevOps工程师、测试咨询顾问、测试业务售前或销售人员等,一般由已工作6~9年的测试人员担任。这几个岗位虽然不负责具体的测试执行或者管理工作,但是都与测试相关。DevOps工程师主要负责CI/CD(Continuous Integration/Continuous Delivery,持续集成/持续交付)流水线的搭建工作,其中涉及非常多与质量或者自动化测试相关的内容;测试咨询顾问主要基于在之前的测试职业生涯中积累的大量经验,为企业提供测试咨询和解决方案等;测试业务售前或者销售人员则主要从事测试产品、测试工具或测试服务等方面的售前和销售工作。
资深DevOps工程师、测试咨询经理、测试业务售前或销售经理一般由已工作9~15年的测试人员担任。当经过一定时间积累了足够的经验后,DevOps工程师可以晋升为资深DevOps工程师,带领其他工程师完成CI/CD流水线的设计和实施工作;测试咨询顾问可以晋升为测试咨询经理,带领其他顾问交付项目,为客户提供价值;测试业务售前或销售人员可以晋升为测试业务售前或销售经理,带领售前或者销售团队制定售前和销售方案,为客户提供测试相关服务,完成公司要求的业绩。
DevOps专家、测试咨询总监、测试业务售前或销售总监一般由工作15年以上的测试人员担任。资深DevOps工程师可以晋升为DevOps专家,聚焦从组织、流程、工程实践等方面提升组织的效能,而不只是关注CI/CD流水线等具体的工程实践;测试咨询经理可以晋升为测试咨询总监,主要负责某条业务线或者多个咨询项目的管理工作;测试业务售前或销售经理可以晋升为测试业务售前总监或销售总监,主要负责制定销售战略规划、明确技术方向、维护客户关系、发掘新客户和新业务等。
需要注意的是,上述各个岗位员工的工作年限仅供参考,具体以个人实际情况为准。比如,有些测试人员本身比较优秀,既聪明又肯学肯干,情商也高,那他们的晋升速度可能就会比其他人要快;相反,若本身资质比较普通,又喜欢“躺平”,不主动追求进步,晋升速度就会比较慢。所以上文提到的年限因人和环境等因素而异,并非固定不变的。综上,测试人员发展路径如图1-1所示。

图1-1 测试人员发展路径
测试人员需要掌握什么技能?这个问题没有标准答案。因为每个测试人员在工作中扮演的角色不同,所以根据不同的角色去分析需要什么技能才更实际。此外,企业对每个角色掌握不同技能的要求也不一样。比如,对测试开发工程师的编程技能的要求通常比较高,而对其管理技能的要求可能相对较低。基于上述分析,我们总结了测试领域各常见角色的测试技能要求矩阵,如图1-2所示。在图1-2中,通过颜色深浅来区分某项技能对于某个角色的重要程度:深灰色表示关键技能,中等深度的灰色表示重要技能,浅灰色表示普通技能。

图1-2 测试技能要求矩阵
与测试相关的技能很多,可分为两大类:一类是硬技能,一类是软技能。
硬技能是指人们从学习、培训或工作中获得的专业知识和技巧。测试技能要求矩阵中列出的大部分技能都属于硬技能,包括业务知识、测试知识、IT知识(编程知识、数据库知识、网络知识等)、项目管理知识、咨询知识和销售知识等。对于这些硬技能,我们只要努力学习,最终都是可以掌握的。
对于初级/中级的测试人员,在硬技能中,首先需要掌握的是业务知识、测试知识和IT知识,因为这几项技能是进行测试、完成基本工作任务的基础。业务知识让测试人员知道应该测什么,测试知识让测试人员知道应该怎么测,而IT知识则助力测试人员更快、更好地进行测试。初级/中级的测试人员需要打好技术基础,修炼好“内功”,熟练掌握工作中经常使用到的硬技能,切忌好高骛远,什么都想学,而所学又不精,最终得不偿失。
对于高级/资深的测试人员,随着工作经验越来越丰富,他们有可能作为管理者开始管理团队,也有可能作为技术专家负责自动化测试框架的实施,还有可能作为对接人与客户等重要干系人交流、沟通。所以他们可能还需要学习架构知识、项目管理知识、敏捷知识等其他硬技能,为未来发展做好准备。
软技能是指人们在办公场景中常用的非专业技能,包括时间管理能力、持续学习能力、沟通能力等。软技能是每个人都需要学习和掌握的技能。
有些人觉得自己是刚入行的新人,只要干好具体的工作就行;或者已经工作了一段时间,觉得自己只想往技术方向发展,不想成为管理者,就没有必要学习和提升软技能了。其实这些想法并不正确,无论对于职场新人,还是对于资深从业者而言,软技能都是非常必要的。它贯穿于我们的整个职业生涯,能帮助我们与同事高效协作、顺利推进工作,助力职业良性发展。
例如,无论你是测试“新兵”还是资深测试人员,沟通能力都是必须掌握的一项技能。当测试人员发现程序有缺陷,需要反馈给开发人员时,如果只是生硬地告知开发人员,甚至埋怨对方,那么可能会令开发人员不适,导致后续配合不畅。比如,测试人员对开发人员小王说:“小王,你开发的程序中某个地方有Bug,我测试了你的程序,好几次都通过不了。”这种沟通方式很容易让小王感到不舒服,让他觉得测试人员在指责他。小王可能会生气地回答:“怎么可能呢?你的测试方式有问题吧?”如此一来,双方就形成了针锋相对的局面,不利于解决问题。测试人员与开发人员沟通,目的通常是请开发人员修复程序中的缺陷。如果采用更有技巧的沟通方式,比如更委婉的说辞:“小王,你现在有空吗?请你过来帮忙看看,这个程序怎么运行不了?是不是我的操作有什么问题?”这会让小王觉得测试人员和他是同一个“战壕”的战友,大家是在友好地解决问题。这时小王可能会认真地检查他开发的程序,排查并解决程序中的问题。
关于时间管理、沟通等软技能方面的内容,会在第12章中详细讨论。