20岁零基础转行软件测试,6年自学成为测试开发···

我花了6年的时间,自学成为测试开发

我希望我的经历能够帮助到你们。
在这里插入图片描述
我的自学成为测试开发,是在3次的能力飞跃之后实现的。

第一家入职的时候是一家小公司

刚开始入行的时候,什么也不懂,就是从最简单的手工测试做起。每天做的最多的就是:编写测试用例>提交bug>回归bug。

最开始的时候不懂这些,觉得有所收获,但是3个月后,这些事情搞熟悉了,会有一种浪费时间的感觉。

另外在每次提交bug的时候,都要确认环境,还有一些bug没法复现,一方面老是被开发怼,另一方面也不得不加班。

这个时候我就想,能不能不让开发怼,能不能不加班?

我开始修炼内功,这是第一次能力飞跃的开始:

首先是看需求文档,只有了解了需求,才能知道设计这个功能的目的是什么,进而才能判断这个问题是不是bug,这样做后,一定程度上减少了被开发怼的情况,即使是开撕,也有了一定的依据;

其次就是看开发的设计文档,当然开始不熟的时候可能不给您看。你去研究他的业务逻辑,才能大致判断这个bug是如何产生的,进而能够复现和定位bug。

当然,这个过程肯定不是那么顺利。第一是因为你要主动学习和研究超出能力的事情,必须沉下心来钻研;第二是刚开始接触这些新事物的时候,处理问题会不那么完美,要扛得住质疑的压力;第三是向开发请教或者讨论的时候,必然要面对开发的鄙视和冷漠;第四就是学习会占用你的大量时间,加班不可避免。

这个过程可能1-2年,之后你就能自己排查和定位问题,提交bug之后开发也不再找你了,产品和开发开始对你刮目相看。

在找到的做测试的认同感,坚定了朝着测试持续发展的时候,我又觉得每天的重复性工作太多,能不能提升一下效率,于是我开始研究自动化,这是第二次能力飞跃的开始:

先从学一门语言开始,Java或者Python都行,开始时为了入门更容易,建议先从Python入手。掌握了语言,就可以开始编写一些脚本或者测试工具来提升效率了;

然后去研究架构,从更高的层面去提升效率,可能这个阶段你还达不到设计架构的高度,但是你要往这个方向去思考,要有这个野心。

这个阶段,大概需要2年左右的时间,如果这个阶段你完成了,你才能称得上一名合格的测试工程师,月薪15-20k以上是稀松平常的事情。话说我过了这个阶段已经跳槽了,因为第一家公司团队和业务都太小,自己已经没有太多的成长了。而这个时候,我的薪资达到了25k。

再往后,我又不满足了,不是不满足薪资,而是不满足仅仅提升效率,而是想要更早的预测缺陷以及监控缺陷,这个时候就开始往测试开发的方向去进阶,这是能力的第三次飞跃:

通过“测试左移”,提前与开发人员一起制定测试计划,推动代码评审、代码审计、单元测试、自动化冒烟测试、测试精准化分析以及研发自测等来保证研发阶段的质量;

另外,参与配置部署,将自动化测试用例配置到持续交付链中,并通过“测试右移”,全流程监控发布后的应用质量。

这里我所说的“测试左移”,也就是指的研发阶段的质量保证,“测试右移”也就是发布后的质量监控。搞定了测试开发,以我的经验来看,要去大厂,小公司用不到这个,薪资也给不起。测开目前在北京来说,年薪30W+只能算个起步。

从经验来看,如果你要自学,必须要有很强的自我学习能力,当然中间的过程也有培训,但基本上都是在职培训,还是以自学为主。

如果你坚持自学,是一定要做好一些准备的,这里我给你一些建议:

第一个准备:认知准备

在开始学习之前,首先要明确的是对于行业和学习的认知:

1、进入测试行业一定要学习一门语言,认为做测试不用写代码或者对于写代码比较排斥的,可以绕道了;

2、技术是你立足的根本,但是不要认为技术做到最强,就可以得到100%的尊重;

3、在不断学习的同时也要积极地参与行业内的交流,比如沙龙、讲座等,朋友内推比海投简历靠谱的多;

4、学历很重要,项目经验很致命,英语是加分项;

5、学习是长反馈、反人性的,不要期待短期速成,不要相信35岁失业的鬼话;

6、沟通能力是和技术同样重要的,放在任何行业都是如此;在这里插入图片描述

第二个准备:思路准备

1、语言选择是Java还是Python?不用纠结,都是相通的,也最终都要掌握。建议先从Python上手,后面再学Java;

2、专研方向选择性能还是自动化?不要被自动化蒙蔽了双眼,也不要轻视认为性能很好搞定,性能的调优很难,自动化有语言基础也能快速上手;

3、大公司还是小公司?能去大公司,就去大公司,尤其是在刚进入这个行业,大公司的流程和项目以及背书都会对职业发展有很大帮助;

4、自学还是培训?能有捷径,为什么不走呢,更何况已经25了,试错的机会已经很少了,关于如何甄选靠谱机构,请关注我主页其他回答:测吧

5、将来做管理还是技术专家?即使是做管理,也必须建立在懂技术,能搞定问题的基础上。技术是根本,其余的都是锦上添花;在这里插入图片描述
关于自学的学习路线,我分为3个阶段具体说一下:

第一个阶段:月薪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+!

另外我花了3天时间,整理了100+大厂面试经验,汇总出来这份3000字的软件测试面试题库给你!

(大厂面试真题我放在文末,自行获取,附答案!)

技术类问题

1、以前做过怎样的项目?说一下你们的测试流程?在项目组中做过怎样的工作?

2、所做项目的情况,主要做什么类型的测试?

3、你认为是bug,而开发不认同时怎么办?

4、 给你一个网站,你如何测试?

5、熟悉数据库吗 ?平时数据库用的多吗 ? (大概测试过程的1/4时间在查数据库)

6、linux查看文件用什么命令,查看进程用什么命令 ?

7 、 查看日志常用什么命令,主要查看什么内容 ?

8、 软件测试用例设计/测试用例的内容/管理工具?

9、如何判断一个问题是bug?

10、平时写测试用例会用到的设计方法?

11、有哪些不同的测试计划活动?

12、哪些信息应该包括在开发的缺陷或错误报告中?

13、你觉得自动化测试的价值在哪里?你们公司为什么要做自动化测试?

14、举例一下说明一下你遇到过那些异常

15、什么是PO模式,为什么要使用它

16、你会封装自动化测试框架吗?

职业发展类问题

1、你对测试最大的兴趣在哪里?为什么?

2、 你的测试职业发展是什么?

3、你认为测试人员需要具备哪些素质?

4、你为什么能够做测试这一行?

5、一个测试工程师应该具备哪些素质和技能?

6、你认为做好测试用例设计工作的关键是什么?

7、您认为做好测试计划工作的关键是什么?

埋坑问题

1、怎样看待加班问题?

2、基于目前中国的国情,大多数公司的项目进度紧张、人员较少、需求文档根本没有或者很不规范,你认为在这种情况下怎样保证软件的质量?

3、为何尽可能不要让时间有富裕的员工去作一些测试?

4、如何减小测试人员跳槽带来的损失?

5、你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决?

最后,为方便大家自学软件测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。 加 扣扣裙 644956177 领取哦。

包括软件学习路线图,50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2020软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助……

敲字不易,如果此文章对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值