几年前进入到IT行业,现在发现学习软件测试的人越来越多,今天我想根据自己的行业经验给大家提一些建议。跟其他行业相比,做软件测试的岗位确实算是高薪职业,我们那个时候起步的工资并不高,而看现在很多毕业的学生薪资都是6000起步,工资越来越高是肯定的,因为现在都伴随着通货膨胀。目前软件测试工程师如果拥有2年测试经验,他的薪资范围最少都要在10K这个阶段,所以就导致来转行学习软件测试的人越来越多,毕竟现在做其他很多行业都赚不到什么钱。
但是高薪并没有像大家想的那样容易拿到,很多人都认为身边的朋友有做自动化测试月薪都几万几万的,但是我们往往忽略了他们在学习技术上付出了多少辛苦,只是看到了别人表面的风光而已。但我认为问题的关键还是很多人忽略了学习自动化测试的难度,想转行学习软件测试的人虽然不少,但最后真正能拿高薪的也就是百分之30的概率,这些人往往学习能力强,有强烈的赚钱欲望,并且不怕吃学习的苦,肯付出时间去研究学习。
我用了五天的时候整理了今年我认为软件测试就业的主流技术栈大纲,由于内容实在太多,我就能弄成了一张长图
自学的初学者学习软件测试中的误区:
1.学习软件测试之前没有制定合理系统的学习规划,不了解初级就业水平应该学习什么主要技术,造成学习没有目标,很盲目的学,后面造成的结果就是对自己产生怀疑,最终放弃。
2.学习的内容过于陈旧,都是已经被企业淘汰的方法,无法满足企业招聘的标准,在面试中很难回答上面试官的问题,最终找不到工作。
3.整个过程的学习效率很低,罪魁祸首是遇到问题无法在短时间内解决,严重拖延了后面的学习,浪费了很多时间。当这类问题多的时候,学习者就会萌生退缩的想法,因为总是遇到坎坷,人的内心都受不了,最终放弃学习。
4.不了解学习编程最终要干什么,像无头苍蝇一样没有方向。其实学习编程最终的目的是为了开发出好的软件产品,最终给大众使用从而方便生活,但很多学习者并不知道这点。
5.无脑的刷视频,却很少写代码,不懂得最终要把学到的知识落实到键盘上编程代码。总是认为自己会了,但是让他写却写不出来,这是由于学习方法错误造成的,所谓的学了其实和没学并没有太大区别。
正确的学习步骤如下:
1、 首选要去了解清楚初步的就业标准是什么,应该学习什么内容,把整个过程的目标明确。2、 规定好自己每天在什么时间段进行学习,每天的这个时间只留给自己学习软件测试,不要被其他事情所干扰。
3、 一天的时间内,只学两个小时的新知识,其他的时间要进行大量的代码编写,提高自己编码的能力,把大量的时间都用在写代码中。
4、 就目前的就业标准来看,我之前带我弟弟学习软件测试,大概用了150天的时间,带他把软件测试就业的主要知识学会,在北京找到了一份8K的工作(仅代表本人个人收益)。对于那些工作的人来说,能坚持学习150天并不容易,所以这非常考验人的毅力。
5、如果你遇到了解决不了的难题,立刻先去百度进行查找,由于目前Java技术的生态圈比较成熟,大部分的问题在百度都可以解决。如果你解决不了,可以加一些氛围好的软件测试交流学习群,多认识一些大佬可以让你少走很多弯路,即使花点钱也是值得的,毕竟能就业后一个月的工资都不低。
6、 要对项目有所重视,学习编程不做项目的人与没学过的人并没有太大额差别,所以在每个阶段学完后,必须要进行项目的练习,如果你不知道去哪里找项目实战,可以向我索要。
7、 当你学完所有主流框架后,要把之前的项目都重做一遍,用框架搭建至少两个大型项目才能去找工作,没有项目作品,别想着有公司会要你。
8、 学完全部内容,恭喜你距离成功之差最后一步,尽快入职一家公司,在工作中才是提升最快的。
9、你以为这样结束了吗?一切才刚刚开始,以后的路还很长......
我觉得自己已经说的够详细了,如果还有不理解的地方,可以跟我单独沟通,自认为自己对这个行业还是非常了解的,也带过不少新人。
给要从其他行业转行的人一些建议:
建议1
学习编程是九死一生的,并不是你智商不行,也不是你学习能力不行,而是这方面你从未接触过,所遇到的问题没见过,所以问题解决不了是常态,所以我建议如果你”真的“以后想在这个行业发展,一定要找一个技术全面认真负责能全程带你学习到入行的老师。前期有人给你指路会非常顺利,不然能有幸进入到这个行业的概率很低。我虽然进入这个行业好几年了,但是曾经在学习的时候也是有人带我入行,自己太难了。
建议2
现在是技术更迭很快的时代,但是我们转行的人往往对于这个行业不了解,所以真的有太多人学了一些“老态龙钟”的技术,这是特别可怕的事情,别人都已经淘汰了然后你去学,你这样能找到工作才是奇迹,白白浪费自己的时间。如果真的打算转行,一定要记得找最新的学习教程,去学习企业需要的技术,如果大家没有最新的Java教程,到我的Java学习群下载。
建议3
任何行业都需要有指路人,与专业的人交流非常重要,其实我们在哪个行业都一样,如果自己身边有很多大佬,真的会被影响很多,在他们的身上能学到很多知识,让自己少走弯路,所以我建议大家要长一个心眼,能尽量的多认识一些大佬,对你以后帮助很大,最起码可以推荐个工作啥的。
建议4:
刚开始不了解这个行业的人,都是认为学习软件测试工程师就是无脑的刷视频,并且认为自己能看懂就是会了,这是非常无知的想法。学习编程是为了开发软件,你自己连代码都不会写,还开发什么软件呢?所以我再一次给你们强调:多写测试用例!多写测试用例!多写测试用例!
我根据薪资的不同,划分成以下几个阶段具体说一下:
- 月薪5-9k:从零基础入门到能够找到工作
- 月薪15-25k:测试在职搞定性能测试和自动化测试
- 年薪30W+:搞定测试开发,进入一线大厂
第一个阶段:月薪5-9k,刚刚入行,先学会功能测试!
可能你是刚毕业的学生,也可能你是打算转行进入软件测试这个行业,那么首先以下基本的理论你是必须要掌握的:
软件测试的定义、生命周期、工作流程、需求分析;
测试用例的设计、编写、评审;
bug的基本知识以及禅道的使用;
测试计划、测试报告的编写;
SVN、Git版本控制工具的使用;
搞定上上面的这些基本必备内容,就已经知道可以做具体的实战内容,这个时候最好是先找一个web测试项目去做一下,假如一个项目拿到手之后,按照下面的一套流程跑一遍:
发布项目进行立项,建立项目组进行分工;
需求评审,学会如何看需求文档,进行需求分析,罗列测试点;
整理测试点,编写测试用例,然后进行用例评审;
执行测试,比如功能、界面、前后台、兼容性、数据库,对于发现的bug提交到禅道;
分析、总结、编写测试报告;
这个流程完整的跑一遍之后,只能说对于整体的测试流程算是掌握了,但是仍然不足以找到一份合适的工作,想要学会做功能测试,以下的内容也是必须掌握的:
Linux相关技能
操作环境、命令、安装数据库、部署测试环境等
数据库相关技能
各种命令用法、字段、增删改查
接口测试相关技能
接口测试基本理论、http协议、测试方法;
接口测试需求分析、用例编写、评审;
几种工具的掌握,jmeter、postman、soupUI;
APP测试相关技能
安装/卸载、离线、UI、登录等测试内容;
兼容性测试、monkey、fiddler抓包;
OK,搞定了这些,恭喜你已经可以投出你的简历去寻找一份测试的工作了!
简历不会写?文末帮你解决这个问题!
如果你已经入行了,且能够正常上手业务了,那么你就要思考第二个问题:如何获取更高的薪资?
第二个阶段:月薪15-25k,搞定性能、自动化测试,独当一面!
都说自动化玩好了很牛掰,但是性能测试才是互联网企业的核心痛点!
对于性能测试,业界很多都是在“耍流氓”,举个栗子:
我拿到了一份“流氓”的性能测试报告,上面只写了响应时间、TPS是多少,然后罗列了一下压力机基本配置情况,比如40个并发相应时间是5秒,TPS是260。
那么,我该怎么判断这次性能测试的有效性:
1.场景是否合理?
2.压力是否传递均匀或者传递到指定目标?
3.是否有干扰因素,或者说那些数据是否有效?
4.有没有一些可信的判断方法?
这些问题的出现,其实就是反映出了目前在做性能测试的一些误区:
- 只测不调,无法给出研发和运维人员执行建议
- 无法定位问题,缺乏清晰的逻辑和数据证明价值
- 性能测试工具≠性能测试
- 性能测试技术体系落后(loadrunner),急需拥抱开源软件
如果要搞定这些问题,那么性能测试你得这么去学:
性能测试的概念和流程
常见问题剖析、流行工具、方案设计
性能测试工具
jmeter工具的使用、实战;
jmeter多协议、拓展与定制;
分布式压测与任务调度;
性能监控
性能监控体系与监控数据采集
性能实施
分布式服务压测,场景设计、场景执行
测试结果关联分析,TPS、响应时间、线程关联分析,压力和资源使用率关联分析
性能分析与报告
jvm调试与系统调试
性能瓶颈分析
搞定这些,你完全可以很自信的和面试官说自己精通性能测试!
性能测试你能到这个程度,15k那是妥妥的了,如果下面自动化测试的学习内容你能够掌握,那就可以直接冲击月薪25k!
搞定Python或者Java语言,建议先从Python入手
基本的语言知识,语法、函数、模块、输入与输出、面向对象编程
脚本编写、标准库、多线程、第三方库,外部数据处理
unittest、pytest测试框架、参数化、数据驱动
web端的自动化测试
selenium安装、录制、处理
web控件、JavaScript脚本、PO模式
移动端APP自动化测试
appium使用、录制、元素定位方法
APP控件定位、交互,参数化用例
appium问题定位分析、源码分析、二次封装
服务端接口自动化测试
接口自动化测试框架request
接口请求构造、断言
json/xml请求、响应断言
headcookie处理、认证体系
上面这些说的是性能和自动化测试的学习路线和内容,搞定这些,基本上在这个行业,月薪2万以上是非常轻松的事情了!当然如果你想成为技术专家,或者想带领技术团队进行实施落地,那么请你接着往下看,关于年薪30W+的测试开发需要学习哪些内容:
完善测试技术体系
Linux、docker、shell、SQL、Python/java
打牢自动化测试技术基础
web自动化测试
selenium测试框架
PageObject设计模式、原则、演练
APP自动化测试
Android自动化测试框架
appium高级应用于原理剖析
APP自动化测试实战
测试框架封装改造
ios自动化测试
移动专项测试
健壮性测试、弱网测试、崩溃检测、耗电量分析等
移动端性能测试
移动端安全测试
接口自动化测试
接口协议与抓包、代理技术与mock
接口自动化测试框架、HTTPrunner测试框架
dubbo接口自动化测试
接口管理工具swagger、接口安全测试
docker容器技术
docker容器、docker镜像
持续集成/持续交付/devops
jenkins持续集成
Jenkins持续交付
如果你是测试在职,那么相信文章后半段的内容,你一定能够看到其中的价值所在!毕竟按照这个路线和内容去学习的同学,已经进入了BAT等一线的名企,目前最高级别是阿里P7,年薪最高是60W+!
最后可能对你有用的教程和学习资源
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走
面试资料
我们学习软件测试必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….
如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入下方我的企鹅qun大家一起讨论交流,里面也有各种软件测试资料和技术交流。