一:入门阶段
【学习|软件测试入门到高级,5k-50k,你属于哪个阶段()】这个阶段的你就像一张白纸,对软件测试这个行业比较陌生,隐约有个概念就是这是一项专门找软件bug的工作,但是软件的bug长什么样?相信很多人都没有一个清晰的认识。这个时期的我们头脑里会出现很多的问题,什么是bug?做软件测试需要会什么技能?零基础该如何学习?做软件测试收入高吗?软件测试加班多吗?软件测试是不是很枯燥?等等问题可以凑成一本十万个为什么。在入门初期,我们就像一个无头苍蝇,到处乱撞,只要看到软件测试相关的东西,我们都会很感兴趣,就是想搞清楚软件测试到底是什么,我到底适不适合做这行。
“软件测试是越老越吃香的工作,岗位缺口大,工资收入高,比开发轻松”,想必很多人都曾经被这样的话洗过脑,一方面这是当时软件测试刚刚兴起,大家都不太了解这个行业,因此培训机构为了招生而想出来的一种说辞,另一方面其实对于当时刚刚出现的这个新职业,这些描述也确实有几分道理。但是时至今日,初级软件测试人员已经接近饱和,这份职业也并没有越老越吃香这种说法。
对于入门阶段的你,最重要的事就是想清楚以下3个问题:
- 你是否喜欢这一职位,有足够的热情来迎接这一岗位?
- 你是否能够接受互联网的工作节奏?
- 你是否有足够的学习能力来紧追互联网发展的步伐?
1)俗话说,干一行爱一行,你如果做着自己不喜欢的工作,每天都是一种煎熬,如果你觉得当你发现一个程序的bug时,有一种兴奋感,一种成就感,那么恭喜你,你至少还不讨厌这份工作。
2)互联网是出了名的加班多,之前热议的996事件,其实在IT人员看来,这只是生活常态。曾经我告诉朋友我们晚上一般九点下班时,他们惊讶的目光,我仍然记得,但他们还不知道,9点并不算什么,因为我还经历过很多个通宵上线。这些都是一个即将走入IT行业的人员应该慎重考虑的问题。
3)这一点是最重要的,即使你有足够的热情来迎接工作,但是热情也有耗尽的一天,唯一能支撑维持我们一路走下去的是我们的学习能力。互联网技术日新月异,一个技术往往流行2-3年就会被新的技术所代替,技术种类多,领域细分繁杂,技术更新频繁,必须要有很强的学习能力才能匹配公司发展的要求。不爱学习的同学,上进心较差的同学,劝你早点放弃。
如果上述3个问题,你都OK的话,恭喜你,进入下一阶段。
文章图片
二:初级阶段 到达此阶段,说明你已经下定决心要和软件测试死磕到底了,“干一行,爱一行”,既然选择了这个工作,那么我们就要付出自己的努力,争取在测试小圈子里激起一波涟漪。这一阶段是每个测试工程师必须经历的阶段,在不断的工作积累过程中,我们逐步对软件测试有了一个大概的概念,软件测试就是开发用代码写出来的产品,上线之前,我们测试要做好质量把关,保证产品能够顺利上线。
“哇,xx开发,这儿有个bug!”,想必刚入行的我们都曾做过这样的事吧,一脸兴奋的告诉开发,自己发现了一个bug。开发会马上回一句:“不可能,我写的代码怎么会有bug,我本地都是好的!”。初级阶段一切都是新奇的,我们总会崇拜的看着高级测试工程师和开发一起争论一个功能的实现方式或是哪段代码需要优化,否则会造成性能问题。总希望自己也能像他们那样牛逼,成为测试大牛,于是,下班后到处找资料学习,各种公开课听着走,总希望把一切知识都装进自己的肚子。
那么我们该如何利用好这段求知欲超强的阶段呢?
打好基础,脚踏实地
这段时间,我们不必急于求成,“万丈高楼平地起”,我们需要做的是夯实自己的基础知识:测试用例设计能力,业务理解能力,沟通能力。认真看看几本测试经典书籍《Google测试之道》《软件测试的艺术》,理解测试的岗位职责,学会如何在产品开发迭代过程中把好质量的关。学习别人的测试用例设计方法,学习别人的逻辑思维,尽可能写出规范且覆盖全面的测试用例。
学会巧妙的和开发、产品进行沟通,比如当你发现bug,你可以装的弱弱的和开发说:“xx开发,你来看看这里是不是有问题?为什么和PRD写的不一样呢,是不是我理解错了?”,开发肯定会想:“不会吧,难道是我写的代码有bug?”,这个时候就会避免大部分和开发的冲突。所以说,说话也是一门艺术。(本人不建议,测试用例都写不好的时候,就去搞自动化和性能,测试最重要还是业务能力,自动化测试只是辅助能力,请刚入行的测试同学要分清主次轻重)
文章图片
三:中级阶段 一般工作3年之后,你已经能够写出一套溜得很的测试用例,也能和开发搞好关系,生活走上正轨,但总觉得生活缺少点什么。没错,你已经花了很多时间来深入理解软件测试这项工作了,已经大致摸清了你测的那款产品的坑在哪儿,如何快速的完成测试任务了。因此你开始思考,是否需要做点 什么来提高自己的工作效率,做点不一样的东西。
这个时候,你开始了职业生涯中第一次抉择:是学自动化好呢还是性能好呢?是学UI自动化好呢还是接口自动化好呢?是学java好呢还是学python好呢?是主攻app测试呢还是主攻web测试呢,或者是服务端测试,亦或者是安全测试?在此,我不能帮你做决定,人生的一切抉择都是靠自己选择,即使路不好走也是自己选择的。
但是我给在此阶段且比较迷茫的同学一点建议:
1)关于测试方向的选择
不管是app还是web,或者是大数据、安全、人工智能,都不重要,软件测试划分很细,每一个种类都有它存在的必要性,无论是哪一方面,最主要的还是看自己对哪一方面更感兴趣,做起来不感觉心累,每一种都是有前景的,只要专攻某个领域,将来你就在这方面比别人有更大的优势,我们要选择一个方面重点发展学习,当然其他种类的知识点也要略知一二。
2)关于开发语言的选择
无论是java还是python或者php,语法始终只是你完成任务的工具,不要过于在意谁谁谁都在用xx语言,我也要学这个,不然过两年就找不到工作了。虽然市面上的开发语言千千万,但是作为测试人员,只要我们掌握最流行的一种就可以了,因为语言都是融会贯通的,一通则百通。
当然由于测试人员的代码水平较开发人员要差一些,如果想快速上手,写点测试脚本,我还是建议大家可以学习python。python网上资料一大堆,大家可以去搜廖雪峰的python教程(建议学习3.+版本),如果大家今后想往测试开发的方向发展,或者干了2年测试准备往开发方向发展,我建议你们可以学习Java,推荐一本书《Head First Java》图文形式,幽默风趣,或者是马士兵老师的java视频教程,虽然年代有点久远了,但是讲的确实很好。
3)关于自动化和性能的选择
在此之前我要强调一下,自动化只是用于回归测试,协助我们减轻重复劳动力的工具,不要过于夸大他的作用,更不能盲目跟风,为了自动化而自动化。我们是工具的使用者,而不是被工具牵着鼻子走。如果有精力和时间,或者在工作中有机会接触到自动化或性能的话,我建议大家都去学一下,虽然我刚才让大家不要过度追求,但是在如今的招聘要求中都免不了要求会自动化和性能技术。
自动化测试分为UI和接口,UI分为app和web两种,app自动化常用工具是appium,web自动化常用工具是selenium。就测试金字塔而言,我个人觉得接口自动化更有实用价值,UI自动化虽然看起来很炫酷,界面自动点击回放,但是UI是我们产品研发改动最多的,元素经常变动,维护成本比较大(当然已经定型的成熟项目除外)。而UI的功能交互都是依赖于接口的数据传输,接口是更为底层的一种功能测试,不要想的太过高大上,接口测试简单且好维护是各大公司都在做的,它更能早期的发现问题,不用等到前后端对接后再来改,符合敏捷测试的要求。
性能测试是比较难的一个课题,由于性能测试要求懂代码,懂运维,懂计算机原理,懂数据库,懂业务等等,很多测试同学望而却步。其实性能测试难不在于写脚本,准备测试数据或者执行,而是难在性能分析和调优。当然我们如果不想做专职的性能测试工程师的话,我们只需要学会做性能测试的流程和简单的性能分析就可以了。包括拿到性能需求后,如何设计性能脚本,如何准备大批量的测试数据,如何搭建压测环境,如何监控性能指标,是做单节点压测还是做多节点的分布式压测?这些都足够我们学一阵子了,拿到性能数据之后,我们怎么去分析问题,tps上不去是什么原因?cpu使用率过高怎么办?这些都是我们需要是实战去积累的,我们大多数人没有美团,阿里那样的高超技术和开发环境,不能自己开发性能工具,因此我觉得作为普通测试大众,只要会使用市面流行的jmeter或者loadrunner即可。
文章图片
四:高级阶段 到此阶段估计已经不需要我的建议了吧,大家都是测试老油条了,测试行业的走向,测试技术的发展,测试思维的建立,测试这一工作的坑都已经踩得差不多了。但是我还是要给那些测试经验不太丰富的同学聊一聊。
何为高级?工作年限够长就是高级了吗?不不不,高级是你已经经历了前面的种种,经受了社会的毒打,知道了自己想要什么而做的职场第二次抉择。一般到这个阶段,测试的发展方向有3种:
1)技术专家
技术专家可以狭隘的理解为测试开发(或者性能专家)。这条路坎坷不好走,但对于不太善于管理和人际沟通的同学,也不失为一条良策,专心搞技术,不问世事。工作5-6年以后就可以开始思考自己的发展方向了,如果选择了走技术这条路,就要深入的学习代码,平时多练,多和开发沟通学习,写一些测试工具或者测试平台,让自己能达到一个中级开发的技术水平,才能在测试开发(性能专家)这条路走的更远。
2)做管理
做管理不易啊,和人打交道是最难的,你要承上启下,既要把上级安抚好,又要把下面的团队管理好,夹在中间的确挺难受的(不过排除某些天生具备管理天赋的人),如果做管理的话,我劝大家尽量做一名技术管理,你要懂技术也要会管理,如果你是个什么都不懂的纯管理,手下的人是不会服你的,做技术的都一股傲气,必须以技服人。相对来说,管理的生命周期要比技术专家长一些,因为技术永远在更新,年纪大了以后,学习能力确实很难跟上。因此选择做管理的同学,平时就要多学习如何和产品,开发,领导打交道,如何完美的完成工作,让大家都觉得舒服。
3)创业转行
到达35岁人生关键点后,家庭,身体各方面原因,已经没有了刚毕业的很多优势。既不能加班,身体也不行,工资还要得高,因此,裁员就离你越来越近。所以不少这个年龄段的同学都选择创业或者转行,要从自己工作10来年的岗位去向另一个方向打拼,也是需要很大的勇气的。在此建议即将创业转行的同学,千万不要盲目创业,因为创业者的钱是最好赚的,到头来自己没赚到钱,却交了巨额学费。创业前一定要做好详细的前期调查,先小笔投入试水,一步一步来,千万不要走捷径,任何一个行业都没有捷径,唯有脚踏实地。再啰嗦一句:创业有风险,投资需谨慎,特别是现在经济下行,消费能力不足的情况下。
五:总结 前面说了很多,基本上描述了软件测试工程师这一职业的完整历程,360行行行出状元,只要用心做,不管做什么,你都可以成功,即使你很难突破你所在的阶层,但是至少能在目前这个阶层处于偏上水平。至少生活还算过得去,加油吧,成年人的生活没有容易二字,既然不能反抗,那就好好享受吧。
最后,为方便大家自学软件测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。563251944
包括软件学习路线图,上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2020软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助….. 在文章下方评论或者是私聊大白进群拿资料哦
文章图片
推荐阅读
- 机器人教育|在学习少儿编程中体会AI乐趣
- 面试集锦专栏|【面试常问】说一下你对单例模式的理解
- 面试集锦专栏|【面试常问】线程中常用的方法
- 三次握手和四次挥手
- 软件测试|老大说要自动化测试,我是怎么做的可以看看
- 程序员|你需要知道的有关Selenium异常处理的都在这儿
- spring|什么是IOC(教你手撸一个IOC容器)
- 学习|谈谈MMOG的项目测试期相关技术
- 程序人生|非科班出身,15 年,从月薪 4000 到年薪 150 万