前言
我花了5年的时间,经历了3次的能力飞跃,自学成为测试开发
我希望我的经历能够帮助到你
第一家入职的时候是一家小公司
刚开始入行的时候,什么也不懂,就是从最简单的手工测试做起。每天做的最多的就是:编写测试用例>提交bug>回归bug。
最开始的时候不懂这些,觉得有所收获,但是3个月后,这些事情搞熟悉了,会有一种浪费时间的感觉。
另外在每次提交bug的时候,都要确认环境,还有一些bug没法复现,一方面老是被开发怼,另一方面也不得不加班。
这个时候我就想,能不能不让开发怼,能不能不加班?
我开始修炼内功,这是第一次能力飞跃的开始:
首先是看需求文档,只有了解了需求,才能知道设计这个功能的目的是什么,进而才能判断这个问题是不是bug,这样做后,一定程度上减少了被开发怼的情况,即使是开撕,也有了一定的依据;
其次就是看开发的设计文档,当然开始不熟的时候可能不给您看。你去研究他的业务逻辑,才能大致判断这个bug是如何产生的,进而能够复现和定位bug。
当然,这个过程肯定不是那么顺利。第一是因为你要主动学习和研究超出能力的事情,必须沉下心来钻研;第二是刚开始接触这些新事物的时候,处理问题会不那么完美,要扛得住质疑的压力;第三是向开发请教或者讨论的时候,必然要面对开发的鄙视和冷漠;第四就是学习会占用你的大量时间,加班不可避免。
这个过程可能1-2年,之后你就能自己排查和定位问题,提交bug之后开发也不再找你了,产品和开发开始对你刮目相看。
在找到做测试的认同感,坚定了朝着测试持续发展的时候,我又觉得每天的重复性工作太多,能不能提升一下效率,于是我开始研究自动化,这是第二次能力飞跃的开始:
先从学一门语言开始,Java或者Python都行,开始时为了入门更容易,建议先从Python入手。掌握了语言,就可以开始编写一些脚本或者测试工具来提升效率了;
然后去研究架构,从更高的层面去提升效率,可能这个阶段你还达不到设计架构的高度,但是你要往这个方向去思考,要有这个野心。
这个阶段,大概需要2年左右的时间,如果这个阶段你完成了,你才能称得上一名合格的测试工程师,月薪15-20k以上是稀松平常的事情。话说我过了这个阶段已经跳槽了,因为第一家公司团队和业务都太小,自己已经没有太多的成长了。而这个时候,我的薪资达到了30k。
再往后,我又不满足了,不是不满足薪资,而是不满足仅仅提升效率,而是想要更早的预测缺陷以及监控缺陷,这个时候就开始往测试开发的方向去进阶,这是能力的第三次飞跃:
通过“测试左移”,提前与开发人员一起制定测试计划,推动代码评审、代码审计、单元测试、自动化冒烟测试、测试精准化分析以及研发自测等来保证研发阶段的质量;
另外,参与配置部署,将自动化测试用例配置到持续交付链中,并通过“测试右移”,全流程监控发布后的应用质量。
这里我所说的“测试左移”,也就是指的研发阶段的质量保证,“测试右移”也就是发布后的质量监控。搞定了测试开发,以我的经验来看,要去大厂,小公司用不到这个,薪资也给不起。测开目前在北京来说,年薪30W+只能算个起步。
从经验来看,如果你要自学,必须要有很强的自我学习能力,当然中间的过程也有培训,但基本上都是在职培训,还是以自学为主。如果你坚持自学,是一定要做好一些准备的,这里我给你一些建议:
一、熟悉底层的业务
作为功能测试工程师来讲,了解开发的框架、开发的业务设计流程以及数据库的底层结构,不管是对于我们熟悉业务还是在测试过程中遇到问题进行问题定位,都能给我们带来很大的帮助。所以在这个方面建议大家尽量去参加开的设计评审、数据库评审,另外在参加开发设计评审和数据库评审时还能提前发现问题。举个很简单的例子,之前我在工作中就真实的遇到过的,开发在设计数据库时,将一个URL字段设计成了64长度的字符串,这肯定是不合理的,为URL的长度很容易就超过64。当我们提出这个问题时,也相当于提前发现并解决了问题了。
二、优化项目的开发流程
另一个方面,可以从项目的流程优化方面来提升自己。产品的质量从来不是靠一个人,而是需要整个团队重视产品的质量,在流程上测试可以要求开发转测前时进行自测,转测试时,先进行冒烟测试,冒烟通过了再进入到转测试阶段。如果产品测试过程中有多个测试工程师,可以做交叉测试,以便发现一些隐藏的BUG。
三、时刻复盘,总结沉淀工作经验
还可以从复盘,总结工作经验,来进行提升。比如说保证用例的覆盖率,不管是通过用例评审也好,还是通过工作经验也好,尽量保证用例不要出现遗漏的功能点。同时,当产品上线后,如果在线上发生了问题,一定要总结分析漏测原因,避免下次再发生同样的问题及犯同样的错误。
四、专业技能方向
1、学习一门语言
专业技能的提升可以从学习一门语言开始,未来的公司对测试的要求会越来越高,而会一门语言是做为往自动化测试方向发展和提升的基础,不管是学习Java或者Python都可以。如果不是IT专业毕业,建议先上手python。
2、学习自动化
当有一门语言基础后,可以基于该语言去学习一些自动化测试框架,比如接口自动化(python的requests)、web自动化(selenium测试框架)或者app自动化(appium测试框架)等等,最终通过自动化来实现我们做回归测试或者冒烟测试的主要功能,以此减少我们的工作量,提高工作效率。推荐视频如下,?? 【点击图片即可安利】
3、学习性能测试
还可以学习一些性能测试工具的使用,比如jmeter或者loadrunner。当产品系统稳定后,可以通过性能测试工具对产品进行性能测试,以确定产品的性能是否达到需求。
4、按照测试技能树提升自己的技能
除了以上三个方面,实际上技能提升还可以根据测试技能树去提升,如下图所示: 不能只告诉你学习路线,而不告诉你需要什么资料,所以我给大家准备好多年积累下来的优质资源50G的软件测试资料文档:👇 ?? 建议大家关注微信公众号【程序员一凡】关注我?? 一些资料会放在公众号,不想让大家花积分在csdn下载。简历模板+面试技巧+自动化+性能+用例模板+核心教程
5、为什么要转型自动化测试
手工测试可替代性太强。只要你会分析需求,只要会编写测试用例,就可以进行手工测试,而且3年的手工测试和5年的手工测试并没有什么大的区别,企业在招聘的时候更倾向于3年的应聘者,因为3年和5年的手工测试,工作能力差不多,3年的手工测试该会的都已经会了,并且3年的应聘者的期望薪资要低于5年的应聘者,所以手工测试的工作时间越长反而越没有竞争优势。
反观自动化测试,需要有一定的代码基础和逻辑思维能力,及随时处理脚本编写过程中的各种问题的能力,这个随着工作经验的增长,各种能力也会随之增长,所以说经验越丰富的自动化测试工程师越吃香。
“追风口的人疲于奔命,准备好了的人等风起”,祝你有前瞻性的眼光,能把握住测试开发的风口,等待起飞。加油吧少年少女们。
今日投票:
|