最近在CSDN留言区看了不少大家的留言,给我的一个明显感受是:今年的测试开发面试,无论一面还是二面,都非常考验技术功底。尤其是一线互联网大厂,对程序员的要求越来越高,不少想跳槽加薪的朋友都连连碰壁,甚至开始陷入了“自我怀疑”。
网友一
网友二
网友三
坦白讲,像阿里、腾讯、美团、字节跳动等一线大厂,无论薪资待遇还是技术氛围与技术规范度都是要明显优于一些创业型公司/小公司的,如果有机会在这样的公司锻炼几年,相信对自己的能力提升是非常大的。
今天我们来聊一聊“测试开发跳槽大厂那些事儿”,希望能够给正在迷茫的你提供及时的帮助。
相比于过去一段时间的浮躁,现在大厂对测试工程师的要求,更回归于编程的本质,包括性能、编程语言、安全、自动化测试等等。
面对大厂面试官的“连环炮”,如果你给对方留下的印象是“感觉你只会山寨别人的代码”、“底层原理一概不知”,那么你就真的只能“回家等通知”了。
相比于过去,中年危机加快了测试工程师的职业生涯。现在,不仅要求你能加班,而且,在加班的基础上还要你解决更多的BUG,写出优质的代码。原来是“码农”,现在是“工程师”,所以大厂的要求自然也会越来越高。
从BAT一线大厂的招聘信息中对于 Android 工程师的要求来看,我们大概可以总结出大厂对招聘者的能力要求。
我们以阿里巴巴为例子,看看大厂的实际要求:
其实我们能看出,其实大厂对测试工程师的招聘要求主要集中在两个方面。
一是考察你对编程语言的基础知识(包括了技术广度、深度、对技术的热情度等)和底层原理的掌握程度,因为基础知识决定了一个技术人员发展的上限;而底层原理是决定了一个技术人员的学习竞争力。
二是考察你的工程能力,比如:做过哪些项目?遇到最难的问题怎样解决的?说说最有成就感的一项任务?工程能力是考察你当下能为公司带来的利益。
基于此,我结合一线大厂的测试工程师面试招人需求,做了一份学习规划(文末有作者学习笔记分享)
从2019年行业报告上来看,目前行业内约70%的人是在26岁以上,所以29岁零基础开始学习入行,只能加速追赶。
在开始学习之前,首先要明确的是对于行业和学习的认知:
1、进入测试行业一定要学习一门语言,认为做测试不用写代码或者对于写代码比较排斥的,可以绕道了;
2、技术是你立足的根本,但是不要认为技术做到最强,就可以得到100%的尊重;
3、在不断学习的同时也要积极地参与行业内的交流,比如沙龙、讲座等,朋友内推比海投简历靠谱的多;
4、学历很重要,项目经验很致命,英语是加分项;
5、学习是长反馈、反人性的,不要期待短期速成,不要相信35岁失业的鬼话;
6、沟通能力是和技术同样重要的,放在任何行业都是如此;
1、语言选择是Java还是Python?不用纠结,都是相通的,也最终都要掌握。建议先从Python上手,后面再学Java;
2、专研方向选择性能还是自动化?不要被自动化蒙蔽了双眼,也不要轻视认为性能很好搞定,性能的调优很难,自动化有语言基础也能快速上手;
3、大公司还是小公司?能去大公司,就去大公司,尤其是在刚进入这个行业,大公司的流程和项目以及背书都会对职业发展有很大帮助;
4、自学还是培训?能有捷径,为什么不走呢,更何况已经29了,试错的机会已经很少了,关于如何甄选靠谱机构,可以私聊我
5、将来做管理还是技术专家?即使是做管理,也必须建立在懂技术,能搞定问题的基础上。技术是根本,其余的都是锦上添花;
我按照薪资的不同大致划分成3个档位:
可能你是刚毕业的学生,也可能你是打算转行进入软件测试这个行业,那么首先以下基本的理论你是必须要掌握的:
软件测试的定义、生命周期、工作流程、需求分析;
测试用例的设计、编写、评审;
bug的基本知识以及禅道的使用;
测试计划、测试报告的编写;
SVN、Git版本控制工具的使用;
搞定上上面的这些基本必备内容,就已经知道可以做具体的实战内容,这个时候最好是先找一个web测试项目去做一下,假如一个项目拿到手之后,按照下面的一套流程跑一遍:
发布项目进行立项,建立项目组进行分工;
需求评审,学会如何看需求文档,进行需求分析,罗列测试点;
整理测试点,编写测试用例,然后进行用例评审;
执行测试,比如功能、界面、前后台、兼容性、数据库,对于发现的bug提交到禅道;
分析、总结、编写测试报告;
这个流程完整的跑一遍之后,只能说对于整体的测试流程算是掌握了,但是仍然不足以找到一份合适的工作,想要学会做功能测试,以下的内容也是必须掌握的:
Linux、数据库、接口测试、APP测试等
OK,搞定了这些,恭喜你已经可以投出你的简历去寻找一份测试的工作了!
嗯,大概就是以上的内容吧,以上全部都是理论和文档能力、只要你肯背、肯写,都是能独立的掌握的。
会了以上这些内容,只能说是能够获得一份工作,但是现在行业招人的要求原来越高,搞定自动化或者性能测试,才能拿到10k以上的月薪。
先说性能测试,行业内是有很多误区和痛点的:
如果要搞定这些问题,那么性能测试你得这么去学:
性能测试的概念和流程:常见问题剖析、流行工具、方案设计
性能测试工具:jmeter工具的使用、实战;jmeter多协议、拓展与定制;分布式压测与任务调度;
性能监控:性能监控体系与监控数据采集
性能实施:分布式服务压测,场景设计、场景执行;测试结果关联分析,TPS、响应时间、线程关联分析,压力和资源使用率关联分析
性能分析与报告:jvm调试与系统调试;性能瓶颈分析
性能测试你能到这个程度,15k那是妥妥的了,如果下面自动化测试的学习内容你能够掌握,那就可以直接冲击月薪25k!
搞定Python或者Java语言,建议先从Python入手,先学习Python的基本语法等。
web端的自动化测试:selenium安装、录制、处理;web控件、JavaScript脚本、PO模式;
移动端APP自动化测试:appium使用、录制、元素定位方法;APP控件定位、交互,参数化用例;appium问题定位分析、源码分析、二次封装;
服务端接口自动化测试:接口自动化测试框架request;接口请求构造、断言;json/xml请求、响应断言;headcookie处理、认证体系;
性能和自动化玩精通,月薪在10k+甚至是20k+都是很轻松的,那如何冲击30k+呢,这就要求往技术专家或者管理层去发展了,但是即使做管理,也必要要求技术水平够硬?说做管理不需要技术精通?你试试底下的人会不会反你?
在测试开发的路线上,就要求更加专精,更加全面:
完善测试技术体系:Linux、docker、shell、SQL、Python/java
打牢自动化测试技术基础:
web自动化测试:selenium测试框架;PageObject设计模式、原则、演练;
APP自动化测试:Android自动化测试框架;appium高级应用于原理剖析;APP自动化测试实战;测试框架封装改造;ios自动化测试;
移动专项测试:健壮性测试、弱网测试、崩溃检测、耗电量分析等;移动端性能测试;移动端安全测试;
接口自动化测试:接口协议与抓包、代理技术与mock;接口自动化测试框架、HTTPrunner测试框架;dubbo接口自动化测试;接口管理工具swagger、接口安全测试
docker容器技术:docker容器、docker镜像;
持续集成/持续交付/devops:jenkins持续集成;Jenkins持续交付;
在这里,我想给想进阶的朋友们一点建议:很多时候,很多事情,并不像你想象中的那么简单,千万不要自认为简单而不愿意去做,很多东西只有你亲手去做了之后,才会发现事情并不像你最初想的那么简单。
其实自动化测试的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点了解的程度。so,出去面试时先看看自己复习到了哪个阶段就好。
最后为了帮助大家迅速建立测试思维能力,早日斩获大厂Offer、掌握职场话语权,下面这份《软件测试全栈学习路线图》应该会对你很有帮助
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的整理了一份2021软件测试资源关注我获取~