作为一个入行软件测试十多年的老兵来说,最初我的工作也不是做软件测试的,只是一个偶然后机会可以转到这个行业,所以就豪不犹豫的转到这个行业,虽然前期会感觉有点压力,毕竟没有真正的做过,但是只要在工作中保持积极乐观的态度、多问、多学、多实践操作,软件测试工作上手其实并不难。
一、软件测试是做什么的?
所谓的软件测试就是指通过人工或工具的手段去校验软件产品的完整性、安全性、正确性。简单的讲就是找BUG、找茬。找出软件中可能出现的各种问题。而在软件测试的工作中,又可以细分为几个方面:功能测试、自动化测试、性能测试、测试开发等。
对于无经验的应届生来说,建议首选的工作岗位应该是功能测试。毕竟功能测试入门相对简单,没有太高的门槛。
二、软件测试的发展前景?
关于软件测试的发展前景,我们可以从以下几个方面来讨论一下:
人员需求
随着IT互联网的发展,互联网各个赛道开始内卷,越来越多的企业会更重视软件的产品质量。在一个技术团队中,开发、测试是不可或缺的两个角色。所以企业对测试的需求也越来越多,同时对测试的要求越来越高。在未来5-10年,软件测试绝对会是一个发展良好的职业。
薪酬
软件测试行业的薪酬也能体现出其未来的发展,在某勾和某boss上,初级软件测试工程师(一年经验)的薪水在6-10K左右,而中级软件测试工程师的薪水在8-15K(2-4年),高级软件测试工程师(3-10年)的薪水在12-40K左右。下图为某BOSS上最新的软件测试招聘信息。
职业晋升
软件测试的晋升通道有三种方式,一个是走技术路线,比如可以走自动化测试、性能测试或者测试开发工程师等。另一个是走管理路线,比如测试主管、测试经理、测试总监等。另一个是业务方向,精耕一个行业。
三、 软件测试入门会不会很难?
难不难,是相对的。我们可以结合当前互联网的其他工作职位来对比一下。
开发
作为开发人员需要有很强的逻辑思维能力,同时要会复杂的编程语言(Java、C#等),掌握复杂的编程语言的框架及数据结构、算法等。同时各种开发语言及框架更新非常快,需要时时刻刻保持着学习才能跟上技术的更迭。另外开发人员也会有年龄的瓶颈,到35岁没走上管理层,后续想在公司继续呆下去会比较尴尬。
但测试不一样,虽然测试工作中也会使用编程语言python,但是python语言入门简单,也没有太复杂的逻辑和框架等。且测试人员没有所谓的年龄瓶颈,经验越丰富越好。
运维
作为运维工程师来讲,需要对Linux操作系统、web中间件软件、数据库、信息安全、各种运维软件要熟悉。另外有可能经常需要呆在机房或者出差,如果线上环境临时发生故障,随时都要处理线上问题,所以时间上是随时待命状态的。这种工作状态肯定是不适合女生的。
而作为测试工程师只需要了解Linux的基本操作及中间件和数据库的基本操作即可。
产品
作为产品经理则需要有一定的互联网经验的沉淀,以及需要对C端或者B端用户的行为、心里进行研究。另外产品经理需要把控整个项目的进度,需要有很强的管理能力,所以肯定不适合刚毕业的新手。再者产品经理要设计系统底层的业务逻辑,跟开发人员沟通实现细节等,所以对开发的一些技术及沟通能力也是有要求的。
而测试工程师只需要理解产品经理设计好的需求并理解其中业务,实现测试用例的设计即可。
总结:综合对以上三个职位的对比,你会发现测试工作比以上三个职位的工作会更简单、更容易入门、更容易上手。
四、做销售,猜想是文科专业,文科专业可以做测试吗?
文科生当然也可以做测试,且会有自己的优势,比如沟通能力、文档编写能力。
作为测试人员来讲,沟通能力是非常重要的一个技能,比如需求的评审、用例评审等,都需要跟技术团队的成员好好沟通,达成目 标的一致性。另外文科生在文档编写方面也会具有优势,比如测试用例的编写、测试计划编写、测试报告编写等。
五、 0基础如何转学测试,学到什么程度可以去找工作?
文科生想要转行到软件测试行来可以通过以下两个途径:
1、通过培训
找一个可靠的培训机构,培训完后可以直接做当前市场上需求较火的自动化测试工程师。
2、通过自学
怎么自学呢?这里给各位朋友做一个学习规划,按照薪资来(相信大家转行看重的也是薪资)
我按照薪资的不同大致划分成3个档位:
· 月薪5-9k:从零基础入门到能够找到工作
· 月薪15-25k:测试在职搞定性能测试和自动化测试
· 年薪30W+:搞定测试开发,进入一线大厂
第一阶段:月薪5-9k,刚刚入行,先学会功能测试!
可能你是刚毕业的学生,也可能你是打算转行进入软件测试这个行业,那么首先以下基本的理论你是必须要掌握的:
软件测试的定义、生命周期、工作流程、需求分析;
测试用例的设计、编写、评审;
bug的基本知识以及禅道的使用;
测试计划、测试报告的编写;
SVN、Git版本控制工具的使用;
搞定上面的这些基本必备内容,就已经知道可以做具体的实战内容,这个时候最好是先找一个web测试项目去做一下,假如一个项目拿到手之后,按照下面的一套流程跑一遍:
发布项目进行立项,建立项目组进行分工;
需求评审,学会如何看需求文档,进行需求分析,罗列测试点;
整理测试点,编写测试用例,然后进行用例评审;
执行测试,比如功能、界面、前后台、兼容性、数据库,对于发现的bug提交到禅道;
分析、总结、编写测试报告;
这个流程完整的跑一遍之后,只能说对于整体的测试流程算是掌握了,但是仍然不足以找到一份合适的工作,想要学会做功能测试,以下的内容也是必须掌握的:
Linux、数据库、接口测试、APP测试等。
OK,搞定了这些,恭喜你已经可以投出你的简历去寻找一份测试的工作了!
会了以上这些内容,只能说是能够获得一份工作,但是现在行业招人的要求原来越高,搞定自动化或者性能测试,才能拿到10k以上的月薪。
第二阶段:月薪15-25k,搞定性能、自动化测试,独当一面!
先说性能测试,行业内是有很多误区和痛点的:
只测不调,无法给出研发和运维人员执行建议
无法定位问题,缺乏清晰的逻辑和数据证明价值
性能测试工具≠性能测试
性能测试技术体系落后(loadrunner),急需拥抱开源软件
如果要搞定这些问题,那么性能测试你得这么去学:
性能测试的概念和流程:常见问题剖析、流行工具、方案设计
性能测试工具:jmeter工具的使用、实战;jmeter多协议、拓展与定制;分布式压测与任务调度;
性能监控:性能监控体系与监控数据采集
性能实施:分布式服务压测,场景设计、场景执行;测试结果关联分析,TPS、响应时间、线程关联分析,压力和资源使用率关联分析
性能分析与报告:jvm调试与系统调试;性能瓶颈分析
性能测试你能到这个程度,15k那是妥妥的了,如果下面自动化测试的学习内容你能够掌握,那就可以直接冲击月薪25k!
搞定Python或者Java语言,建议先从Python入手,先学习Python的基本语法等。
web端的自动化测试:selenium安装、录制、处理;web控件、JavaScript脚本、PO模式;
移动端APP自动化测试:appium使用、录制、元素定位方法;APP控件定位、交互,参数化用例;appium问题定位分析、源码分析、二次封装;
服务端接口自动化测试:接口自动化测试框架request;接口请求构造、断言;json/xml请求、响应断言;headcookie处理、认证体系;
第三阶段:月薪30k+,对标大厂,冲击测试开发岗位!
性能和自动化玩精通,月薪在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持续交付;