软件测试行业已经发生很大变化,你跟上变化了吗?
岗位少不可怕,要求越来越高也不可怕,可怕的是,软件测试行业已经发生巨变,而你却原地踏步!目前一线大厂更多倾向于招收测试开发,或者校招然后进行培养,低端的手工测试大多数都外包出去了。
有很多刚刚进入这个行业的朋友,无论是应届毕业生还是培训班转行,发现出来以后简历投出去就石沉大海,而在18/19年,一个手工测试就能在北京轻松找到一份薪资还不错的工作,21、22年就开始不好找了,今年更难,而且还看到很多大厂裁员的消息,那就肯定是测试的岗位减少了!【点击文末小卡片免费软件测试全套领取哦】
经济寒冬放大了软件测试工程师职业危机,也加速推动了行业发展
经济大环境不好,投资和业务盈利预期收紧,企业出于生存本能,会勒紧裤腰带,减员增效,即裁掉多数低端人才,保留或重新招募少数高端人才,让公司的运营成本、人力效率和业务质量达到最佳平衡点。尤其是,前些年互联网热潮红利造成 IT 技术人才平均薪资有溢价水分,企业人力成本高企,也让裁员成为过冬最直接有效的手段。
在软件测试领域,这一现象或许更为明显。为了降低人力成本,企业会更多的使用外包测试服务,而外包市场的发展壮大,又会进一步推动企业砍掉更多不必要的人力资源。外包公司本质上是通过廉价(或者说更贴合市场价值)的劳动力赚取人力成本剪刀差,也顺带挤破了部分测试岗位的薪资泡沫。所谓潮水涨起时你只看到人人都在高处,潮退时,你才知道谁在裸泳。
所以,当下可以看到测试行业有趣的人才现象:许多互联网企业尤其是大型企业在逐步大幅降低黑盒/功能测试工程师的全职比例,同时又在高薪招聘、补充具备更高技能水平的中高级测试开发工程师。甚至由于行业人才紧缺,有相当一部分研发工程师在转型成为测试开发和质量管理高级人才。
经济环境变化只是一个外部诱因,本质原因还是软件测试行业的人才结构和从业技能要求正处于快速变革的阶段。经济寒冬只是加速了这个奇点的到来。
一方面,测试行业原有的瀑布流工作模式导致传统手工测试仍然占据主导地位,另一方面,随着云计算、大数据、AI 等新技术的高速发展,以及微服务架构、 DevOps 的流行,以自动化测试技术主导的测试体系正在快速崛起。
长远来看,手工测试虽仍具有不可替代的价值,但随着测试工作逐渐被开发人员分担、被自动化测试技术体系和质量平台接管,手工测试“点点点”占据的份额其实会越来越窄,无法支撑起一个单独岗位的技能要求。
未来软件测试工程师要具备什么样的能力?
未来的软件测试工程师和质量人员必须同时具备一定的开发和运维能力。测试人员会更深入介入开发工作,通过测试左移,提前与开发人员一起制定测试计划,推动代码评审、代码审计、单元测试、自动化冒烟测试、测试精准化分析以及研发自测等来保证研发阶段的质量;另外,测试人员会也会参与配置部署,将自动化测试用例配置到持续交付链中,并通过测试右移,全流程监控发布后的应用质量。总之,作为 DevOps 关键角色,测试人员将推动开发和运维共同实现高效交付高质量产品的目标。
但过去几十年的测试行业一直没有很好的对测试工作进行有效的数据化建设,导致测试工作一直处于价值浪费的状态。在自动化测试技术和当代的数据分析科学,尤其是 AI 技术的蓬勃发展下,测试工作将迎来新机遇,发挥出过去实现不了的更大价值。
作为测试行业从业者,你是在原地踏步,还是未雨稠缪?你做好准备了吗?
对于测试行业同学的整体建议就是快速明确自己的职业方向,提升核心竞争力:
技术能力:编程能力、自动化测试技能(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、不断学习,不要吃老本。
最近大厂又在裁员,裁员的同时也在招人,可以肯定的是,进大厂比以前更难了。除了学历要求之外,技术要求上卡的也更严了。当然想要进入大厂,技术水平的高低不是决定性的因素,尤其在今年大环境不好,到处裁员的情况下,想要进入大厂就更难。
提升能力的一点帮助
我自己也整理了一份软件测试资料,应该是全网最好的【备战仓库】了,包括测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、Python基础、Selenium相关、性能测试、LordRunner相关等【点击文末小卡片免费领取】
一、软件测试基础
了解测试的基础技能,掌握主流缺陷管理工具的使用,熟练测试环境的操作与运维
二、Linux必备知识
Linux作为现在最流行的软件环境系统,一定需要掌握,目前的招聘要求都需要有Linux能力。
三、Shell脚本
掌握Shell脚本:包括Shell基础与运用、Shell逻辑控制、Shell逻辑函数
四、互联网程序原理
自动化必经之路:前端开发基础知识以及互联网网络必备知识四、互联网程序原理
五、MySQL数据库
软件测试工程师必备MySQL数据库知识,不仅仅停留在基本的“增删改查”。
六、抓包工具
Fiddler,Wireshark,Sniffer,Tcpdump各种抓包工具适用于各种项目,总有一款适合你的
七、接口测试工具
接口测试神器,你绕不开的强大工具:Jmeter。小巧灵活:Postman
八、Web自动化测试Java&Python
了解自动化的目的,熟练掌握TestNG&unittest自动化框架,以及断言与日志处理
九、接口与移动端自动化
专业接口调用、测试解决方案。组建完整的web和接口自动化框架,Appium整体使用
十、敏捷测试&TestOps构建
揭开TestOps的神秘面纱,持续集成Jenkins框架烂熟于心
十一、性能测试&安全测试
软件测试的彼岸:性能测试和安全测试,选个方向努力爬坑吧!
万事开头难,你只要迈出了第一步,就已经成功了一半了,等到成功之后再回顾这一段路程时,你一定会感慨良多。
合理的利用每一分每一秒的时间学习来提升自己,不要再用"没有时间“的理由来掩饰自己思想上的懒惰!趁着年轻,使劲拼,给未来的自己一个交代!
最后如果有朋友准备去面试,需要刷刷面试题的话,我这里也整理了一份软件测试面试宝典,应该会对各位有所帮助!文档一共200多页,就不全部展现出来了,以免影响各位的阅读,请见谅,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!