职业经验 测试工程师的转型之 “全栈开发”

tom · 2016年06月08日 · 最后由 hyman 回复于 2016年12月06日 · 1557 次阅读

我曾经也是一名自动化开发的测试工程师,今天写这个题目是想分享一下工作8年来转型的一些心得,所有心得均来自我和我的团队兄弟们一路走来的点点滴滴,希望能对大家有帮助。
第一个要分享的话题是,测试工程师为什么要转型,会面临什么样的问题
测试工程师要转全栈开发,这个词就想一颗炸弹一样在2前年扔在我的部门里,当时对于自己来说差别不大之前写工具,现在写业务产品,但实际上后面体会过了其实不是这么回事;当大家听了这件事只有我总结了一下,大体上分2类,第一类针对和类似的之前搞工具研发的基本思想是换个东西写,关心的更多的是坐那个产品,技术方面还缺什么,第二类是偏业务测试,开发功底一般,或者专职类的如性能测试他们最担心的是如何生存,产生了困惑,甚至开始对测试这个职业开始否定。最后的结果就是很多人离开了,留下的继续前进思考着。在这里回头在看,为什么要转型,我是这样看的,一个公司大了以后,要解决效率问题,此外还要盈利等等吧。关于效率问题很多公司的配置我想大家都了解测试部门,研发部门当这2个部门1+1大于2的时候老板不会管他,但是当出了效率问题的时候,麻烦就来了,在基于另外一个因素很多测试部门并不能直接创造营收,都属于服务支持部门,所以测试转型我理解这个是公司组织效能的一个思考,从这个角度看这只是操作的一种手法,一种有些破釜沉舟的方式;相比一些温柔的手段测试合并到研发产品线管理我个人觉得前者是从质的改变,也是对人才结构的调整,而后者仅仅是组织层面的协调。
当然还有一个原因是我觉得测试工程师转型也是必然,但是未必是全栈开发,这个疑问留下我后面的话题说完我想可能大家就明白了。暂且留个思考吧:)

第二个要分享的话题是,什么是全栈
这2个字在2年前不知道该死了多少人,今天在看只是我们的理解太粗浅了,现在想一下这也是公司的高明之处,让你自己去理解,这样每个团队的理解就会具有自己的特色。这2字我个人是这么看的,全栈不等于全能,并不是什么都要会,那么具体是什么呢,首先还是要根据你面向的业务产品或者你所在领域去看,以我们团队为例,我们是做业务应用偏web层产品,使用语言主要java,那么对于全栈我的理解是我能在这里活下来的技能,而且是在最恶劣的环境下存活,那么什么是最恶劣的环境,我认为只有你自己一个人own一个产品,那么这时候要活下来我就要具备多个角色的能力,产品,开发(前端,后端),测试,运维,网工,运营等,但是我之前只是一个纯碎的后台开发,那么我就去掌握其他的技能,让产品运作起来,当然这个例子是最极端的情况了;而在测试转型全栈的道路上,个人理解其实仅仅是把开发,测试,运维角色做了一次人员知识结构优化,这样看如果仅针对研发和测试来看,全栈就是,开发要会测试,测试要能开发业务,而且都要具备运维的能力。说到这里我想大家应该理解我说的全栈了。

第三个要分享的话题是,测试真的都要转向全栈开发?如果转需要什么
其实测试都要转全栈开发这个听起来就像测试难道真的要消亡吗这样的命题,答案是肯定的,测试不会消亡,所以都需要转全栈这个事情个人认为也不是必须,但是一切都有前提。在今天的很多互联网公司,这种转型似乎一直在翻滚着,我个人理解不管怎样,还是像上面说的你要生存你需要什么,举个例子,功能测试往往大家都觉得可替换性高,其实我不这样看,比如文档测试工程师,这个职位很多公司时不具备这样的人员的,这方面的人才也少,这个在于这个领域中的专业性。那么回到一个最常见的无边无际的web产品,移动端产品的功能测试工程师,我理解如果要想生存必需掌握这个产品领域里面的知识,绝对不是从PRD里设计出来的测试用例,也不是你搞的什么xxx工具,真正的价值在于你对行业和领域知识的思考,所以一切原则不变,如果只要一个人,把他变成你,这并不是说不可替代,在企业里没有绝对不可替代的人,所以只要做到不怕被替代。
在总结一下,不管从事哪个方面的测试,找到你能生存的东西就可以了。

接下来说一下如果真的要转,需要什么,依然用我们团队来说,前面我提到了,虽然大家都是工具开发出身,去写业务应该没什么,但是我们的经历告诉我真实并不是这样,虽然很多的理论是相通的,但是面对业务场景只有真的去做的时候很多事情你才能理解。所以我的感触是,不是说你之前做测试开发的就一定可以搞业务开发,说个实际的场景,你可能是测试分布式系统的,你会开发,让你讲可能说的头头是道,但是让你开发一个那是另外一回事。我个人感觉是今天的许多测试功能师面对的一个通用问题就是这样的,尤其是做过的大项目比较多,接触领域比较多的,往往面试时可以讲的惟妙惟肖,但是仔细听听多数在告诉你这个东西是什么,多么多么牛,目前为止见到的能讲为什么的个位数。说了这么多,其实总结转型必需:执行力,你认为他是这样就去用代码证明你的想法;技能要靠自己,多看看开源产品源代码,个人是最快速的通道;一个挑战,测试经常是知道what how的,但是更需要的是why,假如你把你这块领域里的10w个为什么都搞懂了,我想你必然是大牛!

以上是一路走来的一些感受,再次希望对正在痛苦中的,或者迷茫的有所帮助;其实不管生活还是工作只要找到你生存所需,我理解就是你的全栈。

共收到 18 条回复 时间 点赞

赞一个,通过努力,转型成功,技术好的人就要赞!!!

—— 来自TesterHome官方 安卓客户端

楼主感觉应该还不是真正的开发。。。1年前和楼主想法差不多,现在。。。
2年的全栈开发(我理解的全栈是前后端,手机端全都能搞定),呵呵哒。。。
如果真转,2-3年做好一门就不错,不要那么浮躁,不要用初级水准要求自己。。。
个人理解,供喷。~~~~

全栈我觉得基本不太可能。除非每一种都只是入门级的。我们工作了10几年的架构师都不敢说自己是全栈。更别说是测试人员转全栈开发工程师了。最后只能是每种都懂一点。每种都不精通

#3楼 @ycwdaaaa 赞同,可能测试人员转型更适合找一个方向深入,其他达到了解和使用即可

这几年全栈工程师,测试架构师等等高大上的称呼忽悠住了一大批人。其中九成九都是每种技术都玩过几天,面试的时候能忽悠住那些什么都不懂的管理者们而已。如果说能写web后台,前端,测试,自动部署等这些就是全栈的话。那我们部门几乎人人皆是全栈,包括我这个小测试人员。其实是不是全栈根本不重要。在这个编程技术飞速发展的今天,我们又有什么自信能hold住一切呢。重要的是在项目需要的时候,你能不能迅速掌握一种技术并使用他。用我的两个同事举例。产品架构大变化。一切要重写。这俩以前搞PHP和python的哥们。三个礼拜就分别用java的springmvc和mybatis把server端做起来了。另一个自学Scala,用spark和yarn把整个大数据平台搭搞起来了。这时候他们是不是全栈真的很重要么?

tom #6 · 2016年06月08日 作者

感觉大家之看了标题。哈哈

相对于全栈的说法,觉得架构师、资深测试、测试专家等更恰当。
然而头衔是虚的,相信很多人心里清楚,草根不一定就是庸人,架构师也不一定就是高人。这里面的因素很多,bat圈子文化、面试官不懂行被忽悠、面试官视野问题(履历歧视、学历歧视、职业歧视。。。)
以上吐槽,相对于技术,个人觉得创新思维和解决问题的能力更重要,否则就像看阿三阅兵式的摩托方队,技术很牛逼的然并卵模式。

阿里的测试发展 是整个行业的一个缩影吧. 我也算是见证人之一. 因为八年前我在阿里的时候, 正是阿里去测试化的萌芽阶段. 作为行业为数不多经历整个历史的老骨灰. 我就给大家科普下吧

萌芽阶段

阿里B2B当初还是卫哲是CEO的时候, 就推崇Facebook Groupon和twitter等公司的崛起. 他们的创业公司风格为公司和产品的发展带来了很强大的动力. 就是更新快, 发布快. 产品迭代快. 然后阿里的高层就去美国学习了一番.
回来之后带来的一些思潮, 这些阿里内网应该都有记录, 这里面也提到了一点, 就是他们一开始是没有QA的

发展阶段

原来面试阿里QA是不需要懂技术的, 后来随着公司发展的需要, 对技能的要求也越来越高. 并开始从百度挖懂技术的一些测试工程师. 同时自身也加强培养. 提升各种测试效率来力图保证公司的产品发展.
这期间即是QA发展的黄金阶段. 又是阿里自身提升效率的一个动手阶段. 这个阶段开始. 需求分析师和项目管理岗位被裁掉. 变成产品+研发+测试三足鼎立. (这期间为了提升能力我跳槽去了百度)

瓶颈阶段

阿里QA人数继续发展, 产品质量没有明显的提升, 但是效率却下降.
而且随着各种新技术的发展, QA的话语权也越来越弱. 很多地方不深入产品和架构是没法很好测试的. 研发的话语权也越来越重.
公司高层也意识到要进一步提升效率就必须从QA开刀了.
这期间有几个标志性的事件.
左耳朵耗子率先对QA发起质疑.


这文章是4年前发的. 地址是 http://coolshell.cn/articles/6994.html
(TesterHome也是这个时期成立的. 力图培养新兴的技术型测试工程师群体来逆转测试行业的局面)

衰落阶段

以淘宝的QA老大郭芙离职为标志性事件.阿里QA最辉煌的时代过去了. 郭芙对测试行业的发展还是有目共睹的.
接着QA被划入各个子业务线, 然后各个业务线就展开了对测试的改造. 基本是3个趋势

  • 有技术能力的转入研发团队做业务, 这也是楼主所处的历史时代.
  • 有技术能力的自己做测试服务和工具
  • 不懂技术的转岗到还是离不开QA的重人力型的部门
    巧合的是正好左耳朵耗子又和玉伯发生了一件轰动整个IT行业的微博骂战
    这是玉伯的观点.

    两个对立的研发派系的人, 在对测试的态度却是十分一致的. 那就是能不要就不要. 能自己干就自己干.

    后测试时代

    工作7-8年以上还是不懂技术的测试工程师会发现越来越难找工作了. 研发测试比也逐步的从1:2到1:6发展. 也就是整个QA行业三分之一的人工作受到了影响. 庆幸的是移动互联网的崛起和创业公司的数量增多, 吸纳了这部分人. 但是这波移动互联网创业浪潮也即将退潮了, 这三分之一的人还是会难以逃避自己的命运.
    这期间BAT等大公司也都逐步完成分拆并消化QA的过程. 大的质量部一去不复返, 测试工程师的晋升之路也终止于测试主管和高级测试工程师.

    重生阶段

    说实话测试行业发展成这个样子 ,并不是测试行业不好, 是之前测试行业带头的那些大佬们太坑了. 测试理论测试技术都很陈旧. 根本跟不上行业发展的需求. 当一家发展型的公司苛求更高的产品质量和更好的迭代效率的时候, 不能满足需求的一切力量都会被逐步淘汰. 能满足的就会崛起. 我希望这部分力量可以有很大的部分来自于我们的社区.
    一个团队或者团体生存的依据就是价值, 而价值是通过业务体现. 找到了自己业务也就找到了存在. 这是我定义的新时代的测试工程师业务

  • 业务测试. 手工和自动化都会用到, 合理搭配

  • 流程管理. 产品迭代上的业务需求管理和节奏把控. 监督研发和产品的产出和完善度. 通过持续集成和持续交付来打通流水线.

  • 质量监控. 监控用户级别的质量和体验. 有自己的平台和数据. 支撑产品和研发做改进. 包括研发自测, 内测, 灰度测试的质量保证和数据分析.

#8楼 @seveniruby 其实也就是现在的全栈测试工程师。。。。啥都要会,懂技术,懂业务,还要写工具,平台解决问题。

—— 来自TesterHome官方 安卓客户端

#5楼 @ycwdaaaa 就是要有这个能力,才能适合现在的发展

—— 来自TesterHome官方 安卓客户端

我在测试行业工作十多年了,就行业的现状来说,所谓全栈、架构师、专家的水分还是很大的。我对技术的重要性有不同的看法,技术只是测试的一项技能并不是全部,一个人谦虚的胸怀、思想、对测试的理解、解决问题的能力都是重要属性,能否真正的解决公司的痛点才能体现价值,这样的人才会赢得尊重。
之所以把谦虚的胸怀考虑进去,是因为你的技术再好,如果忍受不了人家善意而直白的建议,批评(即便对方是错的),是会遇到瓶颈的。
我是衷心的希望testerhome能培养出越来越多的有宽广胸怀的,有思考能力的,懂技术的测试同行,让更多货真价实的人才走上管理岗,净化测试行业的土壤,为提升测试行业现状做出努力。

让更多货真价实的人才走上管理岗,净化测试行业的土壤,为提升测试行业现状做出努力。

哈哈,赞这句话,可惜史诗并非如此。

见得多就心如止水了,也不要太悲观

必须赞

让更多货真价实的人才走上管理岗,净化测试行业的土壤,为提升测试行业现状做出努力。

手机端不能给评论点赞!

—— 来自TesterHome官方 安卓客户端

#13楼 @quqing 果然工作十年的测试人感悟就是有高度,赞!

—— 来自TesterHome官方 安卓客户端

难得看到tom发帖呀!
还记得12年的时候一次圆桌会议上,包括耗子本人一起讨论了这个话题。关于全栈,关于要不要测试人员,大家的结论和tom、思寒说的接近:纯业务型的测试人员职业路线将越来越窄,如何让自己在公司中成为不能轻易被替代的人,是大龄测试人员需要深思的问题。
当然我个人认为,是否需要全栈人员,有几大重要因素:公司文化,产品特征,业务流程,团队人员结构。举个例子,比如说智能硬件产品,是非常需要在专业领域有深度的测试来把控质量,而非什么都会一些的测试来参与全程。再比如电商业务,需要在短时间内确保一次性的促销业务逻辑不出问题,以上等等业务都是离不开深耕某一特定领域的测试人员来全程参与的。
facebook,tw等公司号称没有测试,用耗子的话说,测试开发属于开发岗位,功能测试全部外包出去,如果这样的话,不用业务测试也是ok的。
综上所述,于我自己而言,无论做的是什么工作,努力让自己难以被替代,才是不断鞭策自己进步的动力。

—— 来自TesterHome官方 安卓客户端

其实大部分测试人员和开发人员一样都有自己的情怀,都想专心做好自己测试份内的事,退到局外人来看这个问题,其实测试人员最需要懂得怎么做人,做好自己的本职公司后怎么去维护产品,开发之间的关系(除了部分大公司),只要学习能力强,态度端正也不会被替代反而会得到别人的尊重的!

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册