在移动互联网和大数据时代,互联网企业通常具备“产品功能丰富、用户基数大、业务逻辑复杂、更新迭代频繁、海量数据不容差错、实时性要求高”等显著特点。而随着企业规模扩张,用户对数据和业务稳定性的要求也会越来越高,所谓质量第一。 在这种严苛背景下,IT 技术团队为了应对产品快速迭代要求,就必须具备持续交付的能力。而在测试这个环节,就意味着必须拥有自动化测试、持续测试以及质量实时监控能力,才能高效保障产品质量。所谓效率为王。1.不懂开发的手工测试是新时代“文盲”只会点点点,不懂开发的手工测试工程师无法满足互联网测试技术体系“质量第一,效率为王”的要求,已经是新时代的”文盲“,成为“被优化”的对象。
一方面是工作上已经没有太大的晋升空间,另外也很难跳槽。个别人最好的结果是凭借多年的经验转管理(早些年也许还行,现在也几无可能)。在 TesterHome 社区职业发展版块,能经常看到各种测试中年危机、被裁员、转行的热门贴,令人唏嘘。
现在 BAT 等互联网一线企业社招,已几乎不再招募传统测试工程师,而只招测试开发工程师。部分功能测试任务会交给在校实习生、应届毕业生,其余则交给兼职众测和外包测试人员。而外包测试公司通常人员技术水平差,流动性高,普遍无法满足高要求,也急需变革升级。 这只是测试行业在过渡期的权宜之计,未来的测试团队架构一定会是测试开发工程师主导 + 少数测试专家 + 测试经理的管理模式。2.测试岗位薪资提高,测试开发迎来黄金时代测试行业通过自身净化洗涤,就如凤凰涅槃,在浴火新生。典型的变化是技术含量在提升、责任在提升,带来的回报也显著提升。测试岗位薪资从以前 3K-15K 的范围,整体普遍提升到 1W-3W 之间。 当然测试就业门槛也显著提升,在优秀的测试开发工程师和测试架构师难找的情况下,已经有越来越多的公司选择直接用研发工程师来顶测试了。他们的追求很简单:单测->接口测试->基础的冒烟测试,能够做到自动化就可以了。如果能像运维那样做成测试即服务就更完美了。 而技术栈要求和项目实战经验最为匹配,也是最稀缺的中高级测试开发工程师(阿里巴巴 P6+),目前在人才市场上可谓高薪溢价,一将难求。一个优秀的测试开发工程师手里可能同时会拿 4、5 个 BAT 大厂 Offer(年薪 50W+ 起,年薪 100W+ 也大有人在)。 经与业内 BAT 测试经理/高工交流,据不完全粗略统计,目前优秀的测试开发工程师在业内预估占比仅为 1% 左右。这就是靠谱的测试开发一马平川,通吃高薪岗位的本质原因,因为供需矛盾实在是太明显了。所以,如果你对测试开发技术和质量保障怀有热忱,并希望借此谋得一份在北上广都能说的过去的工作收入,现在就是转型为测试开发工程师的黄金时代!测试开发技术也在快速发展,各种新技术新应用层出不穷。BAT、TMD 等互联网巨头企业都在普遍落地全链路压测、精准化测试、大数据测试、AI+ 测试等等,更多的中小企业也在奋起直追。可以说,测试未来已来,只是分布不均。能否在行业变化中把握住新的历史机遇,就看你是否做好了准备?3.怎样才算合格的测试开发工程师?经常看到不少测试行业新人、传统测试工程师会有疑问,甚至一些初级测试开发也感觉自己做的很杂,并不清楚:
- 测试开发工程师岗位职责是什么?
- 进 BAT 大厂需要重点掌握哪些技能?
- 如何保证核心竞争力?规划成长路径?
一个优秀的测试开发工程师需要具备以下几个核心能力(职级越高,要求越综合): 1. 互联网测试基础能力:深入理解互联网前沿测试技术体系和相关理论知识; 2. 扎实的编程开发能力:熟悉 Linux/Shell 编程,能熟练掌握一门高级开发语言(初级推荐 Python,高级推荐 Java,甚至包括特定领域语言如 Go/Rust); 3. 深入代码分析的能力:Sonar 等各类代码静态分析和建模技术; 4. 深入运行时分析的能力:覆盖率、代码插桩统计、Hook 等技术; 5. 深入测试业务的能力:能完成业务建模、用户行为和风险分析; 6. 深入重点的自动化测试项目能力:接口、UI、移动专项的自动化测试; 7. 能够完成工具化和平台化任务的能力:能够创建领域专用工具和平台; 8. 能够完成线上测试和线上质量监控的能力:性能压测、线上数据分析和质量统计; 9. 能够完成公司测试流程改进和工程效率提升的能力:推动 DevOps、持续交付落地; 大家可以对照以上几条,评估自己的能力等级和分析下一步的技术投资方向。 另,也可以填写霍格沃兹测试学院出品的「测试开发能力快速测评」表单(地址文末获取),只需花 5 分钟时间,就可以明确自己的能力层级。 这里也推荐一个更清晰的从传统测试到测试开发工程师的成长路径图。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
4.测试开发学习与落地实践难点从手工测试为主到自动化测试开发,从瀑布模式到持续交付、DevOps,这条转型升级之路对绝大部分测试工程师和测试团队来说,都可谓充满挑战! 一方面,测试开发涉及到的技术知识繁杂,有一定的技术门槛。另一方面,每个团队在落地自动化测试技术体系时,又会衍生出各种各样的个性化实战问题。 因为质量保障是一个复杂的系统工程,根本不是测试一个环节可以搞定的,牵涉到的变量因素除了技术问题,也会有业务场景、团队技术实力、发展阶段目标、管理风格,甚至办公室政治等各方面的客观影响。 之前的一篇文章《移动自动化测试落地的典型困惑,你遇到过吗?》就有类似案例。看到别人家的测试技术很牛,是不是照搬过来就可以了?对你们团队来说,自动化测试如何做?做到哪个程度?是拿来主义,还是自主研发?团队人员素质能否跟上?一步到位,还是逐步演进?在当下这个阶段,这样的投入产出比是否值得?如果换个团队和业务线,你是否可以从 0 到 1 搞定?等等,总之,理想很美好,现实很骨感。 可以说,短期内掌握先进的测试技术和工具,快速提升测试技术水平,是可以实现的,甚至是相对比较容易的。比如各种自动化测试框架工具,压测工具的学习使用。但结合具体公司的业务情况落地,平衡好“质量-效率-成本”三者关系,在每个阶段作出正确的选择,并能高效应对各种各样的实际问题,就没那么容易了。 因为这背后需要大量的项目实战经验,以及综合素质能力的提升(包括案例分析和解决问题的实战能力,以及更高超的沟通技巧和统筹管理能力)。技能二字,技术提升容易,能力提升却很难!所以,测试高手之所以成为高手,不仅是因为技术实力强大,更重要的是经历过风雨,有各种踏坑填坑的血泪经验!这也是测试开发工程师从入门到高手技能成长的核心挑战。