本文为资深测试架构师思寒对测试工程师职业发展的思考总结,经典长文,值得每一位测试人品读。思寒主讲《互联网测试技术体系&测试工程师职业发展》公开课,报名方式见文末
应不少同学的要求,通过本文分享下对测试工程师职业发展的看法,话题较大,不敢随便乱写,抛砖引玉,供大家参考。
中国最早的对 IT 工程的启蒙和测试定位的探索大多来自于微软。当年的大背景是微软故意放任 Windows 的盗版,并积极的输出他自身的 IT 生态技术栈到中国。中国从政府到民间几乎全部使用了 Windows。中国有大量的微软认证的 VP 等各种专家。
强调工程的严谨性。CMMI 一统天下。无数中国公司为了通过这个认证费尽脑汁。大部分公司通过它也不是为了自己的规范,而是为了能拿到政府或者国外机构的外包业务。
测试和研发的比例。因为都是客户端产品。如果交付出去出现质量问题是很难解决的。所以测试被放在一个非常重要的位置上。测试与研发比一度是 1:2
外包公司发展迅猛。短短的几年。中软,东软,软通动力,博彦等公司迅猛的发展起来。
测试技术的启蒙和发展。主要是自动化为主。在十年前的年代,听一些前辈说,有公司做性能测试,就是有人用哨子吹下,然后一屋子的人就开始一起点。所以当 QTP 和 LoadRunner 出现后,就迅速占领了市场。
CMMI 逐渐被互联网公司忽略。国内崛起的公司有自己的业务,他们不屑于不实用的认证,开启了自己独特的野蛮发展的节奏。这也是之前在外企工作的白领有优越感的一个原因。
测试技术大发展。不再是简单的自动化测试,技术开始更加细化。比如单元测试,代码动静态测试,接口测试,持续集成,各种端的自动化测试。大家也不再迷信 UI 自动化,而分层自动化,持续集成,测试即服务等理念开始流行。
测试工程师技术型转变。以前的测试工程师就是点点点,不会要求技术的。但现在 BAT 等一线公司已经全部推行技术笔试了。可以说,不懂开发基础的测试人已经难以发展了。点点点测试工程师已经退化到只能用于用户端的功能校验工作了。
移动互联网爆发,IT 研发技术栈和云计算服务也发展迅猛,这让小公司的生产力有飞跃性变化,也催生了一场席卷全球的创业浪潮。这股浪潮起源于硅谷,并迅速通过Copy to China模式烧到了中国。另外一个是中国大环境的变化,导致了外资企业生存困难,很多优秀的企业都从中国撤离。
服务于国内企业的测试工程师开始增多。外包测试工程师,外企工作白领测试工程师都被外企撤离影响到了,开始逐渐转到国内公司。外企工作的优越感逐渐丧失,国内的工程师开始崛起。
敏捷理念盛行。SCRUM 和 XP 理念被迅速的普及。Scrum 迎合了产品管理的需求,XP 迎合了工程化发展的需求。各自发展都很迅猛,然后逐渐衍生了更深入的 CI CD 和 devops 等模式。
测试研发比。下降到 1:8 甚至更低。其实 BAT 都向往 google 的 1:10。只是国内目前做不到。
大质量部模式被打散。为了提高运作效率,QA 或者测试工程师团队被逐渐分拆到各个具体业务部门。大质量部模式消失意味着测试工程师的发展开始遭遇天花板。很多人还没能体会到这个模式带来的巨大影响。
测试技术新发展。测试平台得到了很大的发展。研发工程师,技术型测试工程师也开始逐渐发挥价值。比如新型的全链路压测,全链路追,测试监控,各种接口测试和 mock 平台,各种云测和专项测试平台。独立的测试服务公司也开始层出不穷。
人类已经进入 DT 时代。大数据,机器学习,深度学习,图形渲染等技术栈也已经成熟了。随之而来会形成新的生产力并落地到测试行业,这个阶段大家刚开始感受到。我暂时不做评论。
之所以列举过去的行业变化,其实是为了告诉大家,不要认为目前的模式就是行业的长期现状。目前不同企业仍然是处于不同的理念和不同的历史阶段中。没有绝对的对错,只有适合与否。
业务发展的需求影响到了产品研发和测试。它和资本一样是贪婪的,无时无刻不在追求着突破瓶颈。追求更快更好的发展。它决定着很多公司的生死和很多行业工程师的前途。研发,产品,QA 都是要为业务服务的。
技术是生产力的重要组成部分,技术的发展是自带加速度的。每次质变都会带来一些行业重大的变更。技术的成熟度决定了测试行业的成就能做多大。
公司主体在追求简单高效的管理上是永不止步的。技术和工具的每前进一步,就意味着组织沟通的能力在增强。管理这个方向会逐渐的扁平化。高层管理会越来越少。一线管理会越来越多。
作为测试行业比较尴尬的一点是大质量部模式模式的消失,让测试行业的发展开始遭遇天花板。如果 Hold 不住研发和产品,在测试行业发展的人是没法往上有很好的晋升的。
我根据测试人才的基本属性并用实际的例子总结,按照 8 年跨度(08-16),总结了行业的一些典型人才的职业发展现状(鉴于隐私要求,模糊了相关数据,与真实情况略有偏差)。
我手里也有更多的数据,之前也一直想搞个决策树模型,但是一直没完整的做出来。这次就先简单列举这几个典型个案,简要分析下测试人的职业发展关键因素。
技术能力决定了你的薪资增长加速度。在月薪 1-3w 中间。技术能力助力会较多。
管理能力决定了你的薪资阶层。月薪 2-5w 是管理层基本薪资。后面的要靠公司的股票和奖金。
业务能力决定了你的地位和长期回报。对业务的把控决定你在团队的影响力和重视度,也关联期权和股票的数量。
作为个人发展,我的建议是扎实的提升你的技能,培养好你的人脉和软实力。至于运气和选择不用焦虑,如果你有能力,自然会有高人拉拢你。比如之前就经常有朋友联系我,说是 XX 公司要发期权了,XX 公司要上市了,跟我们一起干吧。人品好,技术好,大家都会喜欢与你为伍的。
这会断送你的整个前程。在一些面试场合,如果面试官问你愿不愿意做管理,如果你回答是,那么面试基本就挂了。一定要确认面试你的人是不是真的希望你走管理路线。大多只是测试你是不是真的是个实干家。
过早参与管理工作也会导致个人技能发展的不健全。这会为以后带来隐患。过于追求权力必然也会引发办公室政治和各种利益斗争。所以请谨慎面对这个毒苹果。
每家公司都有自己的薪资体系。你要参考这个数据来合理的确定自己的薪资,不要有幻想。不要觉得别人因为某次成功的忽悠拿到多就懊恼。
一个优秀而扎实的工作经历会让你受益一生,会为你的简历增光不少。对于这种机会降薪也值得去。
一个合理的节奏是,刚参加工作 1-2 年内主要是积累能力,薪资能糊口即可。2-5 年,可以适当的跳槽追求更好的待遇或者更闪光的工作履历。5年以上,就是要物色好的机会一飞冲天了。
如果跳槽太多,一些大公司也会非常的在意,会影响你的面试。比如工作经验不到一年或者两年就跳槽的人,很容易被 BAT 认为轻浮。
鉴于过去的大形势变化,不懂技术的测试工程师会逐渐被淘汰出局。一波测试工程师的失业潮是在所难免的。虽然早期我也呼吁身边的人赶紧脱离落后的业务体系,脱离落后的测试技能,但是看到很多人越来越生活艰难,也是挺心痛的。
包括测试工程师的需求越来越少,招聘职位也越来越少,典型的新崛起的巨无霸公司比如 Facebook 早期都没有 QA。甚至前几年一度有 QA 团队是否值得存在的争论。表面看起来是测试行业衰落了。
有趣的是,大家讨论 QA 团队是否值得存在的初衷,是为了更好的保证质量。这还是挺耐人寻味的。绝大多数的公司,都是非常支持 QA 部门的存在的,问题在于 QA 团队的存在的价值到底是大还是小。
过去陈旧的测试体系,落后的测试人员能力,冗长的测试流程是被整个 IT 行业诟病的一个关键。当研发的生产力在逐渐的提升,运维的部署在逐渐的自动化,QA 所带来的价值和耗费的成本就越来越不能忽视了。甚至成为了一个项目的最大的成本。
这是任何一家公司都无法忽视的问题。早年阿里巴巴的高管曾经集体去硅谷拜访新崛起的巨无霸,得到的结论就是他们的流程和执行力比国内强很多。甚至 Facebook 早年都没有 QA 就成长为大公司了。所以阿里就迅速推动了流程的裁剪。这部分包括裁撤 SQA,裁撤需求分析师,裁撤项目经理,削减 QA 名额。进入产品,研发,测试三足鼎立的最简模式。
QA 会不会被撤掉也取决于这个部门的价值。所以不要想当然的觉得存在即合理,现在部分的公司已经在试验无 QA的模式了。互联网行业唯一不变的就是变化。
比如一个典型的例子,在搜索,推荐,机器学习等方向的算法测试是很重要的领域,是需要专业的测试工程师参与的。这个行业能容纳很多的测试团队。但是测试行业这些年就没形成对这个领域的正确测试方法,结果最后丢失了这个市场。现在都是研发自己保证了。因为找不到合格的测试工程师去保证这个业务。
同样在性能测试领域也是如此,随着性能测试平台,全链路压测,性能监控,AB Test,云压测这类技术和服务的出现,性能测试工程师的需求也会缩小。越来越多公司里的性能测试都已经变成研发主导了。丢失了这块的业务,性能测试 QA 的需求量自然会受影响。
一定要记住,业务空间决定 QA 的生存空间,这是所有行业都通行的道理。如果你不能满足业务需求,就会被淘汰出局,要么选择退守防御要么选择勇于接受挑战。
那测试行业的未来是什么样的那,很多人会担心。不过我还是整体乐观的。因为我喜欢整个行业,这些年也一直在进行不断的思辨。这里说下我的看法。
从业人员规模跟生产力负相关,跟业务规模正相关。以后能有多大取决于技术和业务规模的双重因素。
首先,是大环境因素。随着各种行业的互联网化,IT 行业在扩大, 外卖,美甲,甚至是无人机汽车航天产业都将成为科技公司。研发的队伍会扩大,QA 的队伍自然也会整体扩大。前提是 QA 自己要跟得上时代。
其次,是随着生产力提升自然就不会需要这么多人的。哪个行业都这样,测试行业并不特殊。就跟汽车行业一样。早年堆人,然后堆工具,堆技术,上机器人,改进流程。
行业技术改进,测试技术改进,测试工具和测试服务的改进,都会一定程度提高了测试效率,减少了成本。这种改进会导致 QA 的团队更精炼高效。
人数多意味着大家的价值跟富士康工厂里的工人一样廉价。追求高附加值才是正确的路。这对公司和测试团队都是双赢的。
第三个因素是行业地位。Devops 的流行是推动了研发和运维的密切合作。一旦这个阶段完成,产品的生产部署会非常的流畅。随之而来的就是问题会越来越早的暴露,大家对质量会更加的重视。到时候就会进入一个新的时代,DevQA。
运维逐渐会管道化,Dev 和 QA 会成为新的主角。只是到时候能撑大局的不一定是现在的软件测试工程师了 会是新时代的测试工程师。
测试行业会越来越专业。人才,技术,工具,开源平台,服务会越来越多。越来越完善。术业有专攻,专业化分工仍然是大趋势。
技术层面上也会有创新。以前的测试只能留下测试用例和业务知识文档,没有什么连续性积累。
随着接口测试,质量监控,覆盖率分析,业务建模等技术的突破, QA 也会形成自己稳定可积累的业务数据, 并逐渐形成自己的平台和业务。
业务空间 + 技术门槛的双重因素,是我坚信 QA 部门能长期存在的一个核心原因。
几乎大部分的互联网公司都在分拆业务和 QA 团队,从而提高执行力。所以管理上百人的总监职位会越来越少,而管理百人以下的总监会越来越多。不排除少量的巨无霸仍然没有改变。或者有些烧钱的初创公司倒行逆施。
其中这些测试管理者会遇到一些新的挑战,比如更高层是研发出身居多。不懂研发体系几乎没有发展空间了。测试管理体系失去了上层建筑,对未来的影响还是深远的。会有阵痛,但是结果肯定会是好的。
原因是多方面的。大公司因为分拆的问题。不再有统一的测试技术支撑部门,所以分拆之后的每个团队都需要组建对应的职能团队,对测试技术人员的需求反而会增多。
中小型公司也苛求质量保证效果,不止是要好,而且要求更快,也需要大量的技术人才。这几年通过各种招聘网站的招聘 JD 的描述也能看得出来。
原来做欧美日韩外包业务的公司会因为国内互联网的发展逐渐式微,他们需要转型做国内。但是国内对外包业务也大多排斥,而且外包业务在效率沟通管理上都有诸多弊端。其自身也无法承载对测试工程师的培养和长期发展。所以这几年会有大量的外包测试工程师转型。
这方面需要有新的优秀的外包服务公司。能做到有自己的测试服务,测试技术和高级的测试研究工程师才行。比如东软也开始做自己的各种云测平台之类的,就是一种为了迎合新时代的变更。
第一个是工作上已经没有太大的晋升空间。第二个是也很难跳槽。最好的结果是凭借多年的经验转管理。
我跟行业的很多测试经理交流过,大部分工作超过 6 年的人,在测试执行上会倦怠,在测试技术的改进上已经无法入门,还不如招实习生。相对来说,有技术基础的人在工作 8 年以上仍然会保持自己的学习热情。
所以未来测试团队的架构基本会是多数业务测试工程师 + 少数测试专家 + 测试经理的管理模式。
以前不识字的是文盲,后来是不识英文的是文盲,在继各国呼吁加强对 IT 技术的重视后,新时代的文盲就已经快是不懂开发的人了。TesterHome 社区成立的初衷就是希望唤醒整个行业对测试技术的重视。
以前处于发展期,行业对人才的苛求是第一位的。现在随着大公司发展稳定,招人已经稳定了。
他们基本只在 211 院校校招。社招也看学历。初创公司多是融资烧钱为主,在学历上和阅历上也是看的很高。能够不拘一格降人才的公司会越来越少。
我之前推荐了不少同学去其他优秀的公司,其中有一部分同学就是技术不错,但是学历未过关。所以希望大家技能和学历上能够好好的重视这个问题。除了学历门槛,如上一条所说技术门槛也存在。所以加油吧,少年!
测试行业经过自身的净化洗涤会有新生。典型的变化就是薪资从以前的 3k-15k 的范围,整体提升到 1w-3w 之间。
技术含量的提升,责任的提升必然会带来整体的回报。现在测试工程师只要技术好,学历没问题。工作 3 年拿个两三万的月薪是很平常的。
这些年整个 IT 行业对测试行业的发展非常不满意,通俗点讲,大家都觉得测试很 Low,但是又不能没有。研发提交项目给测试的心情就跟以前过年要去火车站排队买票一样。要申请测试资源,给测试讲解业务和实现,遇到比较 low 的或者新入职的,连搭建环境都不会,还得手把手教。
研发只是修改一行代码,QA 或者测试那边就炸锅了。各种流程足以让研发头发都能掉好几根。
作为参考对比,再思考下运维。当年部署个环境跟提交测试很像。要申请运维的介入,要申请机器资源,然后提交部署文档,还要明确基础环境,依赖库等各种细节的版本号。
遇到本地发布环境不行之类的问题还得跟运维撕逼。当年运维行业还流行着一句, 人 才是最关键的发布保证者。
而现在随着持续交付和 DevOps 的流行。发布都已经做到丝般柔滑了,一键发布,自由选择灰度,平时的发布甚至都不需要运维参与。尝试了新模式的甜头后,对测试行业的弊端已经很难忍受了。
所以在优秀的测试工程师和测试架构师难找的情况下,已经有越来越多的公司选择直接用研发工程师来顶了。他们的追求很简单。单测-接口测试-基础的冒烟测试,能够做到自动化就可以了。如果能像运维那样做成测试即服务就更完美了。
我一直坚信,QA 的价值是非常的大,测试行业在经过这次调整后也会发展的很好。至于说未来能有多辉煌,就要看大家的努力了。
测试行业和其他行业的发展没有本质的区别。这些年都已经规范化了。一般的公司都会有两条路线发展。一个是 P 或者 T 简称的技术路线,一个是 M 的管理路线。
每个方向都有很大的发展空间,级别也是很多,年薪也是从 20w 到 100w 以上都有。稍大的公司大都是并行发展的。小公司可能就只有管理路线可走了。所以做技术的同学,最好是在大公司发展,去小公司就要适当调整自己工作重心。
而随着敏捷开发、DevOps、持续交付的流行,软件测试人员必须成长进阶为测试开发工程师,同时具备一定的开发和运维能力。
测试开发工程师会通过测试左移,更深入介入开发工作,提前与开发人员一起制定测试计划,推动代码评审、代码审计、单元测试、自动化冒烟测试、测试精准化分析以及研发自测等来保证研发阶段的质量。
测试开发工程师会也通过测试右移,参与配置部署,将自动化测试用例配置到持续交付链中,并全流程监控发布后的应用质量。总之,作为 DevOps 关键角色,测试人员将推动开发和运维共同实现高效交付高质量产品的目标。
但这里想强调一点,并不看好只开发测试工具的测试开发工程师。开发一款测试工具,设计一个更好的测试框架,发明一种更先进的测试手段。这是个人成长带来的自然成果,但不是目标。
很多人会觉得开发测试工具的测试开发是有前途的,其实也不是。只是他碰巧赶上了测试行业的技术转型期的需要。我记得在百度的时候,好多负责单测工具,单测框架的维护团队,经常凌晨两三点还在修复 Bug。但是几年过去,这些人的努力大多没有很好的回报。
这是因为他们做的事情脱离业务目标太远。一旦完成目标,他们也容易被“管道化”,成为边缘角色。这个行业除了极少数技术的狂热爱好者,能够找到自己在行业的技术地位外,大多数人都应该去追随业务的发展。业务才是测试的根基。
测试行业和以前的战国时代一样,成为一个统帅团队叱咤风云的将军,还是成为一个打造兵器满怀工匠精神的铁匠,都是值得尊敬的。在冷兵器时代排兵布阵管理就是王道,在热兵器时代下技术和科技是重要力量。这个需要看每个人的爱好和追求。明确自己的发展方向和爱好就可以。
多看别人的代码。他山之石可以攻玉。别人的开源代码里面藏着很多的经验和智慧。要善于学习。
多承担开源维护工作。尽可能的参与开源社区的维护工作。跟这些人的协作你能学习到很多有用的实践知识。能够强化自己的沟通协调和架构设计的能力。
多泡论坛交流。闭门造车,敝帚自珍,固步自封都是没什么成长的。跟这些保守的人交流你也学不到太多。
以前纯做测试团队管理的人估计是很难适应互联网行业的变化了。可能要面临着诸多的挑战。需要加强自身的能力建设。
不少早年做了管理的同学现在有些其实都开始后悔了,弄的高不成低不就。现象就是总监升不上去。经理级别没亮点也不能升级别。业务发展一般,团队也没变化,而跳槽最怕遇到笔试或者技术测验。
真正能做好测试管理的精英还是蛮少的。如果踏入这个行业,应该多关心如下的事情
管理相对技术在大公司向上发展是比较难的。一般跳槽到初创公司是最容易变现的。比如一个 BAT 的测试经理,月薪不过是 2w 多的样子。跳槽到创业公司做测试管理。月薪就到 3w-5w 了。甚至能力上去,直接跳槽过去当高管和 CTO 的也不少。管理这块,我就不班门弄斧了。
以上只是侃侃而谈,没有什么深度,仅供参考。因为帖子过长,原来提到的一些技术话题,我先暂时剥离出去了,以后再写独立的技术篇。(end)
【作者介绍】黄延胜(思寒),测吧科技公司创始人兼 CTO,霍格沃兹测试学院校长,TesterHome 社区联合创始人,开源自动化测试工具 AppCrawler 作者,资深测试架构师,有 10 余年软件测试开发经验,曾服务于阿里巴巴,百度、雪球等公司。原文地址
看完本文深有共鸣,想与作者直接提问交流?推荐本周六思寒主讲的《互联网测试技术体系 & 测试工程师职业发展》在线)。