最近内卷严重,各种跳槽裁员,相信很多小伙伴也在准备金九银十的面试计划。

作为一个入职5年的老人家,目前工资比较乐观,但是我还是会选择跳槽,因为感觉在一个舒适圈待久了,人过得太过安逸,晋升涨工资的速度比不上房价上涨的速度。我觉得跳槽是一件需要做足准备以及需要勇气的事,到了我这个年龄已经有了家庭,需要对父母,儿女负责。

跳槽前的准备:(跳槽前一定要准备好!不能说我先裸辞再随便找个公司跳,这样还不如不跳,完全没有价值。)

公司前段缺人,也面了不少测试,前面一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在15-20k,面试的人很多,但平均水平很让人失望。看简历很多都是4年工作经验,但面试中,不提测试工具,仅仅基础的技术很多也知之不详,多数人数年的工作经验仅仅是功能测试堆起来的,毫无深度,对于APP自动化等等一问三不知,都停留接口测试的基础方法层面上,自动化进阶问题更是一问一个死,前沿技术最新动态也毫无关注。

就在我一筹莫展准备不在进行下去的时候,来了个让我们都非常欣赏又及其惊讶的人,他是前不久从腾讯离职出来的,具体好像是跟上司闹矛盾,面试也表现的非常自信,顿时让在座的几个面试官都打起精神想要深入了解,果不其然,问到的自动化技术问题全部都能答上来,基础部分也是娓娓道来,完全难不倒他,接下来就是hr直接问他多久来上班…

果然人有能力就是不一样,在哪里都发光!!!

下面主要谈谈作为一名工作3年-5年左右的软件测试工程师该具备的一些技能以及个人的一些其他感悟:

1. 入门阶段

这个阶段你或许是刚从学校毕业,也或许是从其他行业转行,就会像题主一样,对软件测试行业产生一系列的疑问,比如前景怎么样?薪资高不高?加班多不多?零基础应该如何学习?需要学会哪些技能才能找到工作?

其实这些都不重要,重要的是你一定要搞明白这个行业是做什么的,你是否适合这个行业。

前些年培训大热的时候,很多同学听到“前景很好,互联网薪资高,不用写代码,不用加班,越老越吃香”的吹嘘,便一股脑的投入到这个行业来。干了几年,钱没挣到,技术也没有沉淀,混不下去只能再次转行。

如果你像题主一样,还没有进入这个行业或者刚开始了解,那么几个问题你一定一定要进行思考:

  • 你是否能够接受互联网行业的工作节奏?
  • 你是否真的热爱这个行业,起码有足够的热情愿意去钻研?
  • 你的学习能力是否能够让你在日新月异的技术浪潮中不掉队?

首先作为互联网行业,必然会有加班,即使不是996,也必然会有紧急任务或者上线,问下自己是否能够接受这样的工作节奏。如果赶到要上线了,通宵也是常有的,第二天早上你下班了,你的同事刚刚拎着早餐上班。

其次,如果你对这个行业有者基本的热情,或者说不讨厌这个行业,那么起码你能够有动力去钻研,去自我驱动,这样才能保证你的工作对自己不是一种煎熬。

最后,互联网行业,技术日新月异,能够在软件测试这个行业长久的走下去,必然要不断的学习。如果讨厌学习,或者上进心比较差,那不建议你进入这个行业。

如果上面3个方面都没有问题,那么恭喜你可以进入下一个阶段。

2. 初级阶段

到了这个阶段,你已经开始上手做测试了,哪怕是最基础的点点点,你也已经知道互联网企业测试流程是什么样子了,可以说这个时候是你最朝气蓬勃的时候。

你在工作中遇到问题时的窘、遇见大神时的敬仰,都会转化为你努力求知的动力。阅读书籍、看公开课、逛论坛,你的各种知识和技能会在这个阶段急剧扩充。

但是这个时候,也尤其要注意不要病急乱投医。

这个阶段我不建议基础没有打牢,就开始学习自动化,最后啥也没有搞明白。业务能力才是最重要的,自动化玩的再溜,也只是个辅助。基础不牢,地动山摇。

3. 中级阶段

这个时候的你,或许已经做测试有1-2年的时间了,很多工作也得心应手,薪资也基本稳定,技术上知道的也比较多,但是仍然感觉自己什么都不会。

对,你缺少某个方向的深入研究!

处于软件测试行业的中级阶段,必然要面临的一个问题就是我该朝哪个方向去深入发展。自动化还是性能?Python还是Java?APP还是web?

我以我的经验给你一点建议:

  • 关于发展方向

无论APP测试也好、web测试也好,或者想研究自动化,或者想专精性能,都是可以的。没有什么所谓的好不好,重要的是你喜不喜欢,如果你觉得性能做着心累,没有自动化测试有成就感,那就一门心思去研究自动化测试。只要往某个方向专精,一段时间后你就可以成为大神。

  • 关于语言选择

以前我专门写过一篇关于软件测试工程师语言选择的回答,简单来说,就是刚接触的时候,可以选择Python,上手更快,更加灵活,到了高级阶段,应对更大的业务形态,还得学会Java。做技术的,会很多种语言很正常。

  • 自动化测试还是性能测试

对于自动化测试,不要被其牵着走,不要过分夸大作用,也不要为了自动化而去自动化。

性能测试某种程度上会比自动化更难搞定。代码、运维、计算机原理、数据库、业务等等,你都要搞懂。写脚本或者执行都还好,难的是性能分析和调优。当然如果这个阶段你对自己的要求还不是很高,那么掌握性能测试的基本流程和简单的性能分析就可以了。更多的比如搭建压测环境、监控性能指标等等,还是要在实战中去积累经验的。

对于这两个方面,我建议都去学习,因为目前的招聘需求,都已经是标配要求。

4. 高级阶段

如果你已经是软件测试行业的老油条了,那相信你很多“坑”都已经踩过了。

到了这个阶段,可以说是软件测试工程师的最大的职业发展瓶颈。业内的大神们,也都是突破了这个阶段,才获得新的发展。

一般在这个阶段,会面临3个方向的发展:

  • 技术专家

这条路较为坎坷,但是也最为抗打。如果你不善于人际关系,不问世事,又对技术有这浓厚的兴趣,那么建议你走技术这条路。平时多撸代码、多和开发沟通,写一些测试平台或者测试工具。同时开发能力也要不错,这样才能成为一个高阶的测试开发工程师。

  • 管理方向

做技术累,做管理更累,因为和人打交道是最复杂的。既要协调上下级的关系,又要统筹安排好各项工作。如果喜欢走管理路线,不要脱离业务只做管理,建议做一名技术管理,在带领团队的同时,不断的提升自己的技术。一方面技术不行很难服众,另一方面也是锻炼自己落地一些团队方案的能力。虽然说管理的“生命周期”比纯技术会长一些,但是一定不能放弃技术。

  • 转行其他

研发、产品、运维,或者创业,都是面临瓶颈之后的新的出路。其中尤其是创业,不要草率,见过太多创业失败又回来上班的,啥都折腾没了。

那么,作为一名软件测试工程师,该怎样努力才能快速成为一名优秀的测试开发大佬,或者性能测试大佬,或者说作为一名软件测试工程师需要掌握哪些知识体系。这不仅是一个刚刚踏入职场的软件测试工程师,也是工作三五年之后开始迷茫的工程师,都必须要面对和想明白的问题。

1.前置基础知识:

  • 计算机基础
  • 测试理论
  • HTML基础
  • CSS基础
  • JS基础

二,linux和数据库

  • linux
  • 数据库介绍
  • SQL语言(重点)
  • 数据库高级功能

三,测试基础

  • 软件测试理论
  • 软件生命周期
  • 测试方法和分类
  • 测试用例设计
  • 缺陷管理
  • web项目实战
  • 测试管理工具

四,编程+数据结构

  • Python基础
  • 面向对象
  • 异常处理
  • 模块和包

五,WEB自动化

  • WEB自动化入门
  • WEB自动化基础
  • WEB自动化中级
  • WEB自动化高级
  • 项目实战

六,移动自动化

  • 移动自动化基础
  • 移动自动化中级
  • 移动自动化高级

七,接口测试

  • 接口基础
  • postman实现接口测试
  • 数据库操作
  • 代码实现接口测试
  • 持续集成
  • 接口测试扩展

八,性能测试

  • 性能测试基础
  • 性能测试工具
  • 项目-接口性能测试
  • 项目-web性能测试
  • 性能测试调优

九,综合项目实战

功能测试,ui自动化测试,接口测试,性能测试

总结:

相信你如果掌握了上图上面所有的知识技能,并且能够灵活的运用的话,月薪20k以上并不会是什么问题,上图的所有学习资料都已经整理好了,小伙伴们可以下方进群自取