先说结论:软件测试的岗位不会越来越少,但是要求会越来越高。
说个比较现实一定的结论:岗位少不可怕,要求越来越高也不可怕,可怕的是,软件测试行业已经发生巨变,而你却原地踏步!
裁员不可怕,可怕的是行业在发生巨变,而你却原地踏步
软件测试行业已经发生很大变化,你跟上变化了吗?
很多刚刚进入这个行业的同学,无论是应届毕业生还是培训班转行,发现出来以后简历投出去就是石沉大海,而在16/17年,一个手工测试就能在北京轻松找到6K+的工作,18年、19年却不好找了,那就肯定是测试的岗位减少了!
真实的情况并不是这样。
经济寒冬放大了软件测试工程师职业危机,也加速推动了行业发展
自 2018 年底开始,随着经济发展下行,互联网中小型企业甚至行业巨头(包括京东、滴滴等)开始接连不断曝出裁员新闻,裁员比例普遍在 10-20%,波及所有岗位。过往快速扩张和火热招募的情景仿佛还在眼前,转瞬间却变得寒风入骨。美团创始人王兴在饭否转发了一段文字“2019 可能会是过去十年里最差的一年,但却是未来十年里最好的一年”,某种程度上也体现了企业家对经济形式的长期悲观和压力感知。
经济大环境不好,投资和业务盈利预期收紧,企业出于生存本能,会勒紧裤腰带,减员增效,即裁掉多数低端人才,保留或重新招募少数高端人才,让公司的运营成本、人力效率和业务质量达到最佳平衡点。尤其是,前些年互联网热潮红利造成 IT 技术人才平均薪资有溢价水分,企业人力成本高企,也让裁员成为过冬最直接有效的手段。
在软件测试领域,这一现象或许更为明显。为了降低人力成本,企业会更多的使用外包测试服务,而外包市场的发展壮大,又会进一步推动企业砍掉更多不必要的人力资源。外包公司本质上是通过廉价(或者说更贴合市场价值)的劳动力赚取人力成本剪刀差,也顺带挤破了部分测试岗位的薪资泡沫。所谓潮水涨起时你只看到人人都在高处,潮退时,你才知道谁在裸泳。
所以,当下可以看到测试行业有趣的人才现象:许多互联网企业尤其是大型企业在逐步大幅降低黑盒/功能测试工程师的全职比例,同时又在高薪招聘、补充具备更高技能水平的中高级测试开发工程师。甚至由于行业人才紧缺,有相当一部分研发工程师在转型成为测试开发和质量管理高级人才。
经济环境变化只是一个外部诱因,本质原因还是软件测试行业的人才结构和从业技能要求正处于快速变革的阶段。经济寒冬只是加速了这个奇点的到来。
工作被裁,面试被拒,这些都不可怕,可怕的是行业在发生巨变,而你却原地踏步
一方面,测试行业原有的瀑布流工作模式导致传统手工测试仍然占据主导地位,另一方面,随着云计算、大数据、AI 等新技术的高速发展,以及微服务架构、 DevOps 的流行,以自动化测试技术主导的测试体系正在快速崛起。
长远来看,手工测试虽仍具有不可替代的价值,但随着测试工作逐渐被开发人员分担、被自动化测试技术体系和质量平台接管,手工测试“点点点”占据的份额其实会越来越窄,无法支撑起一个单独岗位的技能要求。
未来的软件测试工程师和质量人员必须同时具备一定的开发和运维能力。测试人员会更深入介入开发工作,通过测试左移,提前与开发人员一起制定测试计划,推动代码评审、代码审计、单元测试、自动化冒烟测试、测试精准化分析以及研发自测等来保证研发阶段的质量;另外,测试人员会也会参与配置部署,将自动化测试用例配置到持续交付链中,并通过测试右移,全流程监控发布后的应用质量。总之,作为 DevOps 关键角色,测试人员将推动开发和运维共同实现高效交付高质量产品的目标。
图片来源:TesterHome 社区软件测试行业 2018 年度调研报告
当前测试阶段的众多测试流程能有效直接的保证产品的验收质量,合理的资源分配和安排能让测试价值输出更大,这是过去测试行业很多年积累下的经验结晶。而研发阶段的质量保证手段能够对阶段性的工作的产出进行有效的评估度量,从而能更早的发现问题,有效的提升产品质量。
但过去几十年的测试行业一直没有很好的对测试工作进行有效的数据化建设,导致测试工作一直处于价值浪费的状态。在自动化测试技术和当代的数据分析科学,尤其是 AI 技术的蓬勃发展下,测试工作将迎来新机遇,发挥出过去实现不了的更大价值。
作为测试行业从业者,你是在原地踏步,还是未雨稠缪?面对未来变化,你做好准备了吗?
打造更高质量的软件工程能力是互联网科技企业的核心竞争力
互联网+时代,软件测试和质量保障人员面对逻辑复杂而迭代加速的企业业务要求,必须不断升级技术和管理水平,才能长久的保证企业业务核心竞争能力。这是所有互联网企业尤其是动辄亿级用户的大中型公司所面临的严峻挑战。
2019 年初,华为任正非公开信《全面提升软件工程能力与实践,打造可信的高质量产品》宣布华为决定投入 20 亿美元全面提升软件质量,刷爆了 IT 技术人朋友圈。华为这一呐喊可谓振聋发聩,宣示当下互联网企业竞争已经进入拼技术实力的「硬核时代」。
随后,阿里、腾讯、小米等互联网巨头纷纷跟进,在完成各自史上最大规模组织架构调整之后,技术和质量保障委员会的重要地位都进一步凸显,对质量人才的争抢也日趋激烈。
互联网大厂 BAT 想要的测试人才能力画像
当前一线互联网大厂对不同职级测试开发工程师的能力要求可以参考下图:
BAT 对测试工程师的能力要求
对应的 BAT 薪资待遇可参看下图(仅供参考):
BAT 测试工程师薪资范围
给测试同学的一点建议
对于测试行业同学的整体建议就是快速明确自己的职业方向,提升核心竞争力:
- 技术能力:编程能力、自动化测试技能(UI 自动化、接口自动化)、CI/CD、架构能力
- 领域知识:业务领域知识、数据管理意识、业务架构能力
- 编程语言:Java、Python、Shell、SQL
- 软实力:项目管理、沟通能力
- 职业选择:首选名企、大厂、一线城市
- 学历(学历建设是长期的事情)
非本科的需要注意提升学历
本科以上的同学注重能力和项目履历
提升自己的硬实力:
1、坚持少做重复性工作,提升自己的工作的幸福感和成就感,把单纯的测试工作变成项目质量保证工作。
2、掌握一门编程语言,Python或者Java都行,会了Python之后会灵活一些,能够写一些脚本或者小型的应用,将来在面对测试和运维之间的区域时,去部署和维护一些web应用和测试服务器,Python就会变得非常有用。如果是掌握Java,在面对Java写的测试框架的时候,能够很好的处理好测试与开发交叉的领域。在面试过程中,大概率也会碰到问你jvm的问题。
3、计算机的理论知识,这个简单一些,比如各层的协议,测试现在最常接触到的可能是HTTP,TCP,IP,抓包工具如fiddler,wireshark,tcpdump之类的,长远考虑,你的工作会延伸到测试和运维中间的领域,那么就需要了解更多的网络知识和常用命令。
4、操作系统上,主要还是为了将来能够解决测试和运维交叉的领域,熟悉Linux基本的操作和命令来维护好自己的测试环境,另外shell脚本、ios和Android系统(移动APP测试)都可以接触;
5、前端基础知识,目的是解决测试和开发的交叉领域,bootstrap、css、html、javascript、jquery,如果你要做一些web自动化测试脚本的话,这些前端的基础对你很重要。如果你是一点web测试都不做,那这些你可以先放一放。
6、数据库,性能测试很重要,接口测试也要用到。
基础的小能力:
1、需求分析能力,学会问问题,分析拆解问题,小到每一个小任务,大到所在项目的需求;
2、配置管理基础,Git常用命令一定要熟,老系统的话SVN的命令也可以了解一下;
3、算法基础和设计模式,用处不大,应付面试(大雾?)
旁门左道:
1、学会使用搜索引擎(别老问,别人也很忙,问到的你也不珍惜,自己查的记得还清楚)
2、英语,能力上去之后,国内的资料就不够你研究的了,然后,你懂得。
软实力:
1、不达目的誓不罢休,研究问题搞不明白就不放弃,这是你的职业精神,也是决定你能否具备钻研能力持续成长,我们的校长思寒老师,有时候半夜研究出来一个问题,还在群里很开心的说他研究出来了,人家都是架构师了,还这样呢。
2、耐得住寂寞,可能在你刚进入测试行业,很长一段时间你的能力也提升不上去,有时候工作有是比较重复,觉得自己没有价值。但是只要方向是对的,量变终究会引起质变。
3、学会沟通,学会与开发沟通,学会与产品沟通,学会与团队沟通,还有就是学会与你自己沟通。
4、不断学习,不要吃老本。