最近一个28岁老同学联系我,因为被公司辞退,找我倾诉,于是写下此文。
他是14年二本毕业,在我的印象里人特别懒,不爱学习,专业不好,毕业前因为都没找到合适工作,直接去创业了,奶茶店,托管,销售,反正什么都有做过,毕业后浑浑噩噩的度过了几年,15年那会儿互联行业特别火,他有想回头做IT行业,就联系过我,我为他推荐了软件测试,他也听了我的建议去报了个培训机构学软件测试,学的很烂,但是当时缺口大,也还是混进了一家公司,熟悉了公司业务后结果他编码能力实在太差,根本胜任不了自动化,就做手工测试。
一直做就到去年10月,离职前9.5,职位功能测试,因为公司裁员,现在人家根本根本就不要只会点点点的测试了,再加上本来就不爱学习,在外面面试两个月也是各种碰壁。
目前他是在到处碰壁有时候出去跑跑滴滴,送送外卖,勉勉强强维持家里的开销,也是入不敷出的状态。
其实对很多功能测试岗来说,30-28就有一堆人被裁了,或者家庭原因就转行了,这还算是明智的,活累钱少,更不要说35岁之后了。
人到中年最无法回避的就两个字,责任。中年人已经没有任何人可以替他分担责任了,父辈需要照顾,子女还不具备能力,这种体验不到中年是无法想象的。现在没有一份好的职业规划,日后你究竟如何应对危机,“长江后浪推前浪,前浪死在沙滩上”,曾经一句让人会心一笑的调侃,而今变成了软件测试行业的真实写照。由于软件测试行业入门门槛低,薪资报酬高,不断有新鲜血液冲刷着软件测试行业的“前行者”们,给我们带来了非常大的压力。
想破局,只能放下身段,老老实实积攒经验值,开始踏踏实实培养自己的工作能力,定期衡量自己到底值多少薪水。别轻易被光环迷了眼,对自己有清晰的认知,进阶自动化测试才是最好的破局方式。
以上并不是给不想学自动化测试的人们的一个借口。而是觉得测试者不要在工作中迷失了自己。目前就大量招聘信息来说,想要高薪得会以下几点:
会一门编程语言,懂自动化测试,懂Appium操作,元素定位、操作、等待、滑动等,深入讲解PO、unittest、yaml、配置文件、测试报告等知识,基于关键字驱动、Pytest和jenkins持续集成完成App测试框架设计与开发、测试工具、比如性能测试工具loadrunner,自动化测试工具selenium、Appium。
软件测试所有方向的学习路线
刚开始学习,如果你连完整的学习步骤都没有规划好,基本不可能学会测试。笔者的成功上岸,也得益于从网上找到了一些优质的笔记、教程和一些大佬的指导在此,也将学习软件测试所有方向技术点做的一份整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
软件测试学习(工作)技术路线:
软件测试的方向可以选一选,选好方向才能对应去学习内容,先了解下可以从事哪方面工作,这里简单介绍一下,学习软测之后可以做什么工作:
- 需求的功能测试
参与需求评审会议,制定测试计划,编写测试用例,评审测试用例,执行测试用例,提交Bug,回归验证Bug,发送测试报告,进行线上验证等一系列活动。
- 自动化测试工程师
利用自动化测试工具例如Robot Framework,Python+unitest/pytest,Selenium等完成页面UI自动化或接口自动化,提升测试效率,尽早暴露问题。
- 性能测试工程师
根据项目需求,对重要接口制定压测方案,利用Jmeter等测试工具进行压力测试,配合开发同学找到系统瓶颈,并产出压测报告。
- 测试开发工程师
有些公司有专门的测试平台、测试工具,来完成Bug统计与质量分析,接口自动化统计等等功能,这部分开发工作会由测试开发工程师来承担。测试开发对技术,编码要求更高。
初级软件测试工程师
专业技能储备
1)了解计算机以及软件测试相关的基础知识
a.计算机基础知识
计算机组成部分,操作系统分类,常见的系统架构(B/S和C/S),常用的DOS命令
b.软件测试基础
理论知识
软件测试的目的、定义、原则,产品质量模型,软件测试的基本流程
2)常用的Linux命令
在软件测试中,有时候需要我们自己去搭建测试环境,或者是在服务器部署自动化项目。而服务器基本都是使用Linux系统的,所有我们需要掌握一些基础的Linux
命令
3)SQL语句
在软件测试中,测试结果的校验或者自动化中的测试数据准备,都会操作数据库来完成。所以对于数据库的最基本的增、删、改、查的SQL语句,需要能够独立完成编写
4) 手工测试用例的编写(最重要)
作为一个软件测试工程师,最基本的要求就是用例编写的能力。如何编写出一份高覆盖率,低重复率的测试用例,是初入软件测试行业应该去不断追求的能力。
5 ) 缺陷的管理
了解在团队中,如何管理测试人员提出的BUG,从而保证项目的BUG能够及时被修复
掌握以上的技能,对于一个初入软件测试行业的同学而言,就肯定可以站稳脚跟了。
中级软件测试工程师专业技能储备
1、接口测试
相关专业技能
无论是自动化测试还是性能测试,甚至之后往测试开发方向发展,最基础的就是针对接口进行测试。所以要想做好中级软件测试工程师,第一步就是能够完成接口测试。
1)接口以及接口测试相关的理论基础知识
包括接口及接口测试的概念,接口测试的原理,接口测试的流程,http协议,Restful接口风格。这些内容都需要有所了解
2)接口工具的使用:Postman和Jmeter
接口测试,可以使用代码,也可以使用工具。通常情况下,接口测试最多还是使用工具来完成.原因无他,“高效”。
3)抓包工具:Fiddler和Charles
在测试过程中,我们为了定位前后端的问题,就会使用抓包工具,查看接口返回的结果。从而定位问题是前端的,还是后端的。
这两个工具,我们一般二选一去学习就可以了,因为他们的作用都是一样的。
2 . 编程语言学习
自动化测试的实现方式,主要还是依赖代码来完成的。所以要能进行自动化测试,首先需要掌握一门编程语言。目前行业主流的自动化测试的编程语言为python和java。我个人推荐python,因为对于新人而言,上手的难度比较低一些。如果可以全天学习,python也就差不多10天就能入门
3、自动化测试学习
Python学完以后,我们就可以开始自动化测试方面的学习。
自动化测试的目的,主要还是为了降低回归测试的时间。
软件测试中的自动化测试,分为UI自动化和接口自动化
通过以上的学习之后,我们再来看你具备哪些能力?
SQL语句,Linux常用命令
手工测试用例的编写以及缺陷的管理
使用抓包工具进行前后端问题定位
使用Postman或Jmeter进行接口测试
使用Python进行接口/UI自动化测试
高级测试工程师需要掌握的知识点
这一阶段你需要加宽你的知识体系,同时更加深入的了解前段进阶,代码质量,测试架构,微服务及中间件,容器化,自动化测试设计,测试架构,CI/CD,测试左移,测试阶段,测试右移。
测试开发和研发岗的区别,其中一点就是研发更注重深度,而测开更注重广度。
比如:你要了解CI/CD,因为你做的测试平台/工具,可能需要接入到CI/CD的流水线,或者运维的监控系统中
再比如:你做性能测试的时候,如果你对架构设计的核心知识不了解,那么在做全链路压测,服务降级等测试的时候,可能就会遇到很多问题难以解决。
找到一份测试开发JD来对照,也可以看到这个岗位对中间件,性能测试。私有化平台都有了解。
除了加宽你的知识体系,还需精进你的代码能力。简而言之,大厂Java用的多,如果你想去大厂,基本上就得熟悉Java,不然面试很容易被pass掉。
如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......
最后,为方便大家提升测试技能,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。
下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】
这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源免费分享~