【2021版】测试提升方向:你是选自动化测试?测试开发?性能测试?还是安全测试?语言选python还是java?(看完恍然大悟)...

热文推荐:2019-2020:测试实用干货精选汇总

请务必读完,让你少走弯路,避免被忽悠。

前言

忙忙碌碌又一年,2020的计划完成了么?目标达成了么?买房、买车、脱单、加薪等等,都是很现实的事儿,2021了,80后步入40+,90后步入30+,曾经的追风少年,如今的油腻大叔,突然感觉时间好残酷,职场也一样,竞争、裁员,不知道下一刻的命运,只有强者才能主宰自己的命运,无畏未来,正因为如此,大城市才兴起了很多付费的自习室,因为氛围很重要;

接触了很多测试,说自己年龄大,或者技术不好,焦虑,有职业危机感,也是,如果你的测试技能和你的年龄、工作年限等不匹配,怎么和别人竞争呢?特别是,00后都要来抢饭碗了,如果技术本来就一般,薪资低也很正常;

作为一名测试人员,如何成为主宰自己命运的强者呢?

如果想要在测试领域好好发展,提升自己的测试技术是必不可少的,首先,选对方向更为重要,之前写过一篇《测试技术提升建议》,引起了广泛共鸣,功能测试、自动化测试、测试开发、性能测试、安全测试、测试管理,每个测试方向都不简单,但是,大环境就是,你不会点代码、懂点底层原理啥的,都是算low的。下面先来看下求职者的反馈。

求职者反馈

最近两位求职者面试后的反馈:

看来面测开也会问性能相关的,去boss上搜几个招聘,看下招聘要求。 

招聘要求(截图自boss直聘)

测开20k以上

性能20k以上

招聘要求分析及行情

1、我搜索了下20k上下的岗位,确实测开岗位比性能岗位多,但是很多测开要求性能、或者有性能经验优先

2、不管是测开还是性能,开发的主流技术、性能先关的,都是面试造火箭、要高薪必备的

3、语言,还是java更有竞争力

4、测试薪资行情

一直以来,不管是私聊还是群聊,我发现大家最向往的两个提升方向是测试开发和性能测试, 既然有的测开也要求性能,那先说说性能。

性能测试

说明:这里说的性能测试不是只会用工具瞎跑而不会监控分析的,只会工具瞎跑的是性能外行。

为什么选择性能测试?

1、面试造火箭、要高薪必备:互联网用户越来越大,对性能要求越来越高,所以性能测试越来越被重视,很多薪资偏高的招聘把性能作为必须项,或者加分项;

2、提升测试地位:要提升测试地位,就要多做和开发有交集的测试,比如性能,因为性能是大部分开发的弱项,终于有机会扬眉吐气、怂开发了,很多测试不是抱怨测试没地位么?

3、代码弱不想写代码:绝大部分性能测试任务确实不需要写多少代码,因为有主流工具功能强大,偶尔写点简单的beanshell;

4、前景:持久的竞争力,性能是经验的积累,做的越多,能力越强,薪资待遇也会越高,职业周期也越长,类似中医;性能是架构师的知识面,需要不断深入、不断实践、不断积累、不断总结,能力才会不断提升,而且,经常和高级开发、架构师沟通交流,和优秀的人一起,肯定能学到很多;另外,还有机会接私活哦,最近太忙,我都婉拒了2个了,性能比较好的,可以联系我,转介给你。

性能要不要代码?

之前写过一篇:性能测试的一些大实话 ←点击查看

关于代码,不是所有性能问题都是代码问题:比如压测过程中,错误日志提升“获取不到jdbc连接”,这个就该考虑jdbc配置的问题了;dba不会代码,还不是照样数据库调优;

如果性能要深入全面,还是需要代码的,因为有些问题是代码的问题,至少能根据线程栈信息去看懂对应的代码,然后进行分析、定位,所以,强烈建议后期补一补代码;

刚开始困难,可以让开发帮忙一起看(毕竟代码量庞大,有些问题不是看几行代码就能分析等位到的),你就旁边学,多请教,哈哈,日积月累,慢慢就上手了;

总之,性能可以让你触类旁通;

需要的知识:

性能需要学的东西很多,总之就是架构师的知识面了,需要不断的学习、实践、总结,要做深入,也需要代码,至少能看懂,这就是为什么面试造火箭性能必备;

  基础:性能理论、并发工具(jmeter、loadrunner等)及协议
  后端性能:技术栈基础(linux、nginx、tomcat、mysql、jvm、分布式消息中间件、分布式存储中间件、分布式框架、微服务)--监控、分析及工具--全链路--性能自动化;性能最好能看懂开发的代码(建议学java)
  前端性能 :有工具可以做
  其它扩展:maven--git--shell--jenkins--docker--kubernetes

关于性能等级,来看看网上有些资料是怎么说的:

  性能外行(简称瞎跑型):会做简单的脚本跑并发(复杂的,需要写代码的,就搞不定了);

  性能初级:会性能监控;

  性能中级:会常见性能问题的定位调优;

  性能高级:会调优,性能自动化预警监控、容量规划;

严格说:jmeter≠性能,切记,别被别人忽悠了,而且,性能和jmeter也非强关联,jmeter只是并发工具而已,并发工具很多,用其它工具或者自己写并发代码都可以模拟并发,性能重点是监控、分析、调优。

测试开发 

说明:这里说的测试开发,是能开发测试产品、测试工具的测试开发。

为什么热衷测试开发?

1、招聘岗位多,待遇可观:貌似测开成了大半个全栈的代名词了,大家去看下招聘,有些测开,除了能测试开发,还要求会性能、会自动化等等,总之就是要会性能,待遇当然不会低;

2、工作压力小:开发测试工具或者测试产品,一般不会很紧急,因为都是内部使用,所以,相对公司里面临产品上线、项目交付压力的专职开发来说,压力小了很多,所以秃顶的测试开发很少;

3、无法胜任开发:部分短暂做过开发,或者培训过开发,但是无法胜任开发的,就转测开了,毕竟会写一些代码,有点优势;

4、前景:可能对自己的开发能力提升有限,因为测试开发开发出来的工具或者产品,都是本公司内部使用,用户量有限,基本上不会考虑高并发、高可用、安全性等(因为是内部用,基本上就没这些需求),估计也不会有这些性能及安全需求,不像专职开发,用到各种前沿的技术、框架,必须考虑性能、安全等等,提升肯定不如专职开发快;当然,测开的产品,能满足公司需求即可,况且,每个人对自己以后定位、规划不一样,如果以后考虑转其它方向,比如产品,这都是要和开发打交道的,懂主流开发技术,是优势也是趋势;所以,我对年龄小的都是建议转开发,不要怕压力大,能吃苦,几年后,你的职业路径完全不一样。吃得苦中苦,方为人上人;如果你单纯喜欢写代码的测试开发,那请以高级开发的目标来严格要求自己,这样职业周期才长,转项目其它方向,优势也大;另外,建议java,这样方便多和开发交流学习;

需要的知识

测试开发要求前端、后端都要会(一般的公司,不会给测试开发还配专职前端),可能还要自己设计产品,那就是全栈开发+了,对能力要求也很高,如果产品设计不佳,可能最终无法落地投产,也可能迭代困难,最终要完全重构;

  前端:html--css--js--vue
  后端:javase--tomcat--jsp--springboot(最好先学spring--springmvc)--mysql--mybatis--shiro--redis--nginx--消息中间件
  其它:maven--git--shell--jenkins--docker 

  当然,也可以选择python技术栈,我还是推荐java,详见下面语言选择。

自动化测试

经常看到一些测友花大量时间研究自动化,虽然是当前测试基础必备技能(12年左右测试基础必备是会功能用例设计方法等价类、边界值等等,17年左右测试基础必备是功能自动化),但是自动化只是回归,发现不了新问题(除非你业务测试漏测);

就算你专职做自动化,不出1年,保证让你感觉没意思,因为每天复制粘贴维护脚本,技术含量有多少?你的提升有多少?哪有每天写框架的活儿?

建议:ui自动化会面试即可,接口自动化更实用,能自动化持续集成、跑起来出结果即可;

so,不建议花太多时间折腾,自动化没机构吹得那么高大上,要提升竞争力,还是多花点时间学代码、性能之类的吧,以及了解主流技术栈的底层原理,这样才能面试造火箭要高薪;

如何快速学习自动化?

代码基础就不说了,至于框架,我建议网上找个自动化框架看懂,修改下满足当前工作使用即可,也可以找我要一个。

安全测试

至于安全,除了下面说到的知识范围,我觉得还应该再加上行为学、心理学等,安全的水太深了,而且,稍微不注意,就突破底线,可能就进去包吃包住了,还配备保安,so,不推荐;

测试管理

部分测试朋友说,打算转管理了,我建议,最好是做技术型管理,否则难以服众,所以,还是先提升技术,然后业务、管理方面再提升下,总之,机会是留给有准备的人的。

测试提升建议:语言&技术方向

语言选择

至于语言的选择,推荐一个高级(java),加上1-2个脚本(python、shell),很多招聘也是这么要求的,可以说是标配,脚本语言会基础即可,尽量深入高级的,也就是java,而且,当前项目绝大多数是java吧(其次是go,python的太少了),学java,自动化、测开、性能、白盒都能做,和开发无障碍交流。有问题,也可以问开发,何乐而不为呢?

代码,只要坚持多写多练,入门还是挺快的。 

实在困难的,特别是非计算机专业的,可以先python入门,把简单实用的接口自动化搞定,找找成就感,可以加我微信给你发一个自动化框架,看懂,改改,持续集成跑起来就ok,自动化是回归,不要花过多时间,然后再深入java。

推荐:java

技术方向选择

如果你不想写代码,又想高薪,性能是个不错的技术提升方向,面试造火箭、高薪必备,而且提升竞争力、提升测试地位,值得选择。但是要做深入,至少得看懂代码,so后期还是需要学;

如果你喜欢写代码,就选择开发或者测试开发,哪怕你不做性能,但是有些岗位还是要求性能,所以,还是得学性能,哪怕不做性能,还是得先过面试造火箭这一关吧?

不管哪个方向,只要努力做好,都不会差,而且,不管哪个方向,做到最后都是:测试开发要会性能,性能测试要会代码,安全也需要代码(厉害的安全都是自己写工具);

推荐:接口自动化 + 性能

我再解释下,不写代码不代表说可以不会代码,代码是当前测试的必备技能之一;学代码肯定要多写,这都是自己工作外的事儿,在工作中,对于性能,我是说至少能看懂相关的就ok;对于jmeter脚本,beanshell倒是常用,但是很简单,写纯java脚本不多,绝大多数都是http,tcp,websocket等,这些jmeter都支持,另外,jmeter二次开发,如果需要做一些集成,比如和jenkins,或者集成到性能测试平台,那需要较强代码能力,估计就是测开了,但是如果写一个函数啥的,这种翻看源码自带函数,照葫芦画瓢就行了。性能的重点是设计场景,监控分析,调优或者配合调优(有些问题不是一个人能搞定的),性能测试人员能读代码,又熟练写,那牛逼了,25k保底没问题。 

后记

人的精力是有限的,特别是有娃后,或者年龄大了后,所以,不建议学多个方向,选一个方向深入即可,因为技术更新快,学太多,后期维护技术成本也大; 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值