一个产品的生命周期是由产品从准备进入市场开始到被淘汰退出市场为止的全部运动过程。而一个软件测试工程师的生命周期(职业生涯)亦是如此。如何在生命周期的每个阶段最大化的利用好这段时间,是我们每一个即将成为测试或者已经成为测试工程师应该关心的问题。

软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。中国的软件测试行业发展起步较晚,但是发展速度迅速,岗位缺口也很大,因此各种行业转行的或是读过几本软件测试基础书籍的人都跑来分一杯羹,软件测试培训机构也是异军突起,这就导致了目前就业的众多测试人员中,大家的水平参差不齐。有的人做了 7、8 年仍然只是一个小公司的功能测试,而有的人起点较高,一毕业就进入大公司进行了正统的培训学习实践,本来这没有什么问题,大家各自混好自己的小圈子,做好本分工作就好了。

但是,受世界金融危机的影响,世界经济的持续低迷,人们的消费能力逐步下降,导致企业的收益下降,进而众多的小公司逐渐倒闭,加上互联网风口已经不能把猪吹的来飞起来了。互联网史上最大的裁员风波已经袭来,这是每个 IT 从业人员都能感受到的吧。那么作为一个小测试,我们该如何在这场暴风雨中挺过去,如何面对 35 岁的人生焦虑,如何让自己的职业生涯走的更长远,我们需要做的是,重视测试生命周期的每一个阶段,在每个阶段做该做的事,让你走的每一步都是按照自己的规划走,而不是被年龄的增长和生活的现实牵着鼻子走,接下来我们就一起来分析测试工程师的生命周期有哪些阶段,每个阶段我们应该如何规划自己的发展方向。

入门阶段

这个阶段的你就像一张白纸,对软件测试这个行业比较陌生,隐约有个概念就是这是一项专门找软件 bug 的工作,但是软件的 bug 长什么样?相信很多人都没有一个清晰的认识。这个时期的我们头脑里会出现很多的问题,什么是 bug?做软件测试需要会什么技能?零基础该如何学习?做软件测试收入高吗?软件测试加班多吗?软件测试是不是很枯燥?等等问题可以凑成一本十万个为什么。在入门初期,我们就像一个无头苍蝇,到处乱撞,只要看到软件测试相关的东西,我们都会很感兴趣,就是想搞清楚软件测试到底是什么,我到底适不适合做这行。

“软件测试是越老越吃香的工作,岗位缺口大,工资收入高,比开发轻松”,想必很多人都曾经被这样的话洗过脑,一方面这是当时软件测试刚刚兴起,大家都不太了解这个行业,因此培训机构为了招生而想出来的一种说辞,另一方面其实对于当时刚刚出现的这个新职业,这些描述也确实有几分道理。但是时至今日,初级软件测试人员已经接近饱和,这份职业也并没有越老越吃香这种说法。

对于入门阶段的你,最重要的事就是想清楚以下 3 个问题:

  • 你是否喜欢这一职位,有足够的热情来迎接这一岗位?
  • 你是否能够接受互联网的工作节奏?
  • 你是否有足够的学习能力来紧追互联网发展的步伐?

下面解释一下这三个问题:

1)俗话说,干一行爱一行,你如果做着自己不喜欢的工作,每天都是一种煎熬,如果你觉得当你发现一个程序的 bug 时,有一种兴奋感,一种成就感,那么恭喜你,你至少还不讨厌这份工作。

2)互联网是出了名的加班多,之前热议的 996 事件,其实在 IT 人员看来,这只是生活常态。曾经我告诉朋友我们晚上一般九点下班时,他们惊讶的目光,我仍然记得,但他们还不知道,9 点并不算什么,因为我还经历过很多个通宵上线。这些都是一个即将走入 IT 行业的人员应该慎重考虑的问题。

3)这一点是最重要的,即使你有足够的热情来迎接工作,但是热情也有耗尽的一天,唯一能支撑维持我们一路走下去的是我们的学习能力。互联网技术日新月异,一个技术往往流行 2-3 年就会被新的技术所代替,技术种类多,领域细分繁杂,技术更新频繁,必须要有很强的学习能力才能匹配公司发展的要求。不爱学习的同学,上进心较差的同学,劝你早点放弃。

如果上述 3 个问题,你都 OK 的话,恭喜你,进入下一阶段。

初级阶段

到达此阶段,说明你已经下定决心要和软件测试死磕到底了,“干一行,爱一行”,既然选择了这个工作,那么我们就要付出自己的努力,争取在测试小圈子里激起一波涟漪。这一阶段是每个测试工程师必须经历的阶段,在不断的工作积累过程中,我们逐步对软件测试有了一个大概的概念,软件测试就是开发用代码写出来的产品,上线之前,我们测试要做好质量把关,保证产品能够顺利上线。

“哇,xx 开发,这儿有个 bug!”,想必刚入行的我们都曾做过这样的事吧,一脸兴奋的告诉开发,自己发现了一个 bug。开发会马上回一句:“不可能,我写的代码怎么会有 bug,我本地都是好的!”。初级阶段一切都是新奇的,我们总会崇拜的看着高级测试工程师和开发一起争论一个功能的实现方式或是哪段代码需要优化,否则会造成性能问题。总希望自己也能像他们那样牛逼,成为测试大牛,于是,下班后到处找资料学习,各种公开课听着走,总希望把一切知识都装进自己的肚子。

那么我们该如何利用好这段求知欲超强的阶段呢?

打好基础,脚踏实地

这段时间,我们不必急于求成,“万丈高楼平地起”,我们需要做的是夯实自己的基础知识:测试用例设计能力,业务理解能力,沟通能力。认真看看几本测试经典书籍《Google 测试之道》《软件测试的艺术》,理解测试的岗位职责,学会如何在产品开发迭代过程中把好质量的关。学习别人的测试用例设计方法,学习别人的逻辑思维,尽可能写出规范且覆盖全面的测试用例。

学会巧妙的和开发、产品进行沟通,比如当你发现 bug,你可以装的弱弱的和开发说:“xx 开发,你来看看这里是不是有问题?为什么和 PRD 写的不一样呢,是不是我理解错了?”,开发肯定会想:“不会吧,难道是我写的代码有 bug?”,这个时候就会避免大部分和开发的冲突。所以说,说话也是一门艺术。(本人不建议,测试用例都写不好的时候,就去搞自动化和性能,测试最重要还是业务能力,自动化测试只是辅助能力,请刚入行的测试同学要分清主次轻重)

中级阶段

一般工作 3 年之后,你已经能够写出一套溜得很的测试用例,也能和开发搞好关系,生活走上正轨,但总觉得生活缺少点什么。没错,你已经花了很多时间来深入理解软件测试这项工作了,已经大致摸清了你测的那款产品的坑在哪儿,如何快速的完成测试任务了。因此你开始思考,是否需要做点 什么来提高自己的工作效率,做点不一样的东西。

这个时候,你开始了职业生涯中第一次抉择:是学自动化好呢还是性能好呢?是学 UI 自动化好呢还是接口自动化好呢?是学 java 好呢还是学 python 好呢?是主攻 app 测试呢还是主攻 web 测试呢,或者是服务端测试,亦或者是安全测试?在此,我不能帮你做决定,人生的一切抉择都是靠自己选择,即使路不好走也是自己选择的。

但是我给在此阶段且比较迷茫的同学一点建议:

1)关于测试方向的选择

不管是 app 还是 web,或者是大数据、安全、人工智能,都不重要,软件测试划分很细,每一个种类都有它存在的必要性,无论是哪一方面,最主要的还是看自己对哪一方面更感兴趣,做起来不感觉心累,每一种都是有前景的,只要专攻某个领域,将来你就在这方面比别人有更大的优势,我们要选择一个方面重点发展学习,当然其他种类的知识点也要略知一二。

2)关于开发语言的选择

无论是 java 还是 python 或者 php,语法始终只是你完成任务的工具,不要过于在意谁谁谁都在用 xx 语言,我也要学这个,不然过两年就找不到工作了。虽然市面上的开发语言千千万,但是作为测试人员,只要我们掌握最流行的一种就可以了,因为语言都是融会贯通的,一通则百通。

当然由于测试人员的代码水平较开发人员要差一些,如果想快速上手,写点测试脚本,我还是建议大家可以学习 python。python 网上资料一大堆,大家可以去搜廖雪峰的 python 教程(建议学习 3.+ 版本),如果大家今后想往测试开发的方向发展,或者干了 2 年测试准备往开发方向发展,我建议你们可以学习 Java,推荐一本书《Head First Java》图文形式,幽默风趣,或者是马士兵老师的 java 视频教程,虽然年代有点久远了,但是讲的确实很好。

3)关于自动化和性能的选择

在此之前我要强调一下,自动化只是用于回归测试,协助我们减轻重复劳动力的工具,不要过于夸大他的作用,更不能盲目跟风,为了自动化而自动化。我们是工具的使用者,而不是被工具牵着鼻子走。如果有精力和时间,或者在工作中有机会接触到自动化或性能的话,我建议大家都去学一下,虽然我刚才让大家不要过度追求,但是在如今的招聘要求中都免不了要求会自动化和性能技术。

自动化测试分为 UI 和接口,UI 分为 app 和 web 两种,app 自动化常用工具是 appium,web 自动化常用工具是 selenium。就测试金字塔而言,我个人觉得接口自动化更有实用价值,UI 自动化虽然看起来很炫酷,界面自动点击回放,但是 UI 是我们产品研发改动最多的,元素经常变动,维护成本比较大(当然已经定型的成熟项目除外)。而 UI 的功能交互都是依赖于接口的数据传输,接口是更为底层的一种功能测试,不要想的太过高大上,接口测试简单且好维护是各大公司都在做的,它更能早期的发现问题,不用等到前后端对接后再来改,符合敏捷测试的要求。

性能测试是比较难的一个课题,由于性能测试要求懂代码,懂运维,懂计算机原理,懂数据库,懂业务等等,很多测试同学望而却步。其实性能测试难不在于写脚本,准备测试数据或者执行,而是难在性能分析和调优。当然我们如果不想做专职的性能测试工程师的话,我们只需要学会做性能测试的流程和简单的性能分析就可以了。包括拿到性能需求后,如何设计性能脚本,如何准备大批量的测试数据,如何搭建压测环境,如何监控性能指标,是做单节点压测还是做多节点的分布式压测?这些都足够我们学一阵子了,拿到性能数据之后,我们怎么去分析问题,tps 上不去是什么原因?cpu 使用率过高怎么办?这些都是我们需要是实战去积累的,我们大多数人没有美团,阿里那样的高超技术和开发环境,不能自己开发性能工具,因此我觉得作为普通测试大众,只要会使用市面流行的 jmeter 或者 loadrunner 即可。

高级阶段

到此阶段估计已经不需要我的建议了吧,大家都是测试老油条了,测试行业的走向,测试技术的发展,测试思维的建立,测试这一工作的坑都已经踩得差不多了。但是我还是要给那些测试经验不太丰富的同学聊一聊。

何为高级?工作年限够长就是高级了吗?不不不,高级是你已经经历了前面的种种,经受了社会的毒打,知道了自己想要什么而做的职场第二次抉择。一般到这个阶段,测试的发展方向有 3 种:

1)技术专家

技术专家可以狭隘的理解为测试开发(或者性能专家)。这条路坎坷不好走,但对于不太善于管理和人际沟通的同学,也不失为一条良策,专心搞技术,不问世事。工作 5-6 年以后就可以开始思考自己的发展方向了,如果选择了走技术这条路,就要深入的学习代码,平时多练,多和开发沟通学习,写一些测试工具或者测试平台,让自己能达到一个中级开发的技术水平,才能在测试开发(性能专家)这条路走的更远。

2)做管理

做管理不易啊,和人打交道是最难的,你要承上启下,既要把上级安抚好,又要把下面的团队管理好,夹在中间的确挺难受的(不过排除某些天生具备管理天赋的人),如果做管理的话,我劝大家尽量做一名技术管理,你要懂技术也要会管理,如果你是个什么都不懂的纯管理,手下的人是不会服你的,做技术的都一股傲气,必须以技服人。相对来说,管理的生命周期要比技术专家长一些,因为技术永远在更新,年纪大了以后,学习能力确实很难跟上。因此选择做管理的同学,平时就要多学习如何和产品,开发,领导打交道,如何完美的完成工作,让大家都觉得舒服。

3)创业转行

到达 35 岁人生关键点后,家庭,身体各方面原因,已经没有了刚毕业的很多优势。既不能加班,身体也不行,工资还要的高,因此,裁员就离你越来越近。所以不少这个年龄段的同学都选择创业或者转行,要从自己工作 10 来年的岗位去向另一个方向打拼,也是需要很大的勇气的。在此建议即将创业转行的同学,千万不要盲目创业,因为创业者的钱是最好赚的,到头来自己没赚到钱,却交了巨额学费。创业前一定要做好详细的前期调查,先小笔投入试水,一步一步来,千万不要走捷径,任何一个行业都没有捷径,唯有脚踏实地。再啰嗦一句:创业有风险,投资需谨慎,特别是现在经济下行,消费能力不足的情况下。

总结

前面说了很多,基本上描述了软件测试工程师这一职业的完整历程,360 行行行出状元,只要用心做,不管做什么,你都可以成功,即使你很难突破你所在的阶层,但是至少能在目前这个阶层处于偏上水平。至少生活还算过得去,加油吧,成年人的生活没有容易二字,既然不能反抗,那就好好享受吧。

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你

关注我的微信公众号【程序员二黑】免费获取

最后,写给大家:每一个优秀的人,都不是带着与生俱来的光环的,也不一定是比别人幸运。他们只是在任何一件小事上,都对自己有所要求,不因舒适而散漫放纵,不因辛苦而放弃追求。雕塑自己的过程,必定伴随着疼痛与辛苦,可那一锤一凿的自我敲打,终究能让我们收获一个更好的自己。

希望大家都能努力奔跑,追上那个曾经被赋予厚望的自己!

听完网易大佬描述 “ 软件测试工程师的一生 ”,我哭了!相关推荐

  1. 软件测试工程师面试如何描述自动化测试是怎么实现的?

    软件测试工程师面试的时候,但凡简历中有透露一点点自己会自动化测试的技能点的描述,都会被面试官问,那你结合你的测试项目说说自动化测试是怎么实现的?一到这里,很多网友,包括我的学生,也都一脸懵逼的样子. ...

  2. 完整版软件测试工程师培训视频教程下载

    132讲完整版软件测试工程师培训视频教程,教程分为4个阶段: 第一阶段: 本阶段通过一套实例化软件测试教学课程,项目背景为汝城县网上审批大厅项目,通过学习,学生可以在最短的时间掌握测试环境的搭建以 及 ...

  3. 面试官偷偷给我的软件测试工程师面试题,看完你还怕拿不到offer?

    软件测试工程师,和开发工程师相比起来,虽然前期可能不会太深,但是涉及的面还是比较广的.前期面试实习生或者一年左右的岗位,问的也主要是一些基础性的问题比较多.涉及的知识主要有MySQL数据库的使用.Li ...

  4. 全网最全软件测试工程师面试题,看完你还怕拿不到offer?

    与开发工程师相比,软件测试工程师前期可能不会太深,但涉及面还是很广的. 在一年左右的实习生或岗位的早期面试中,主要是问一些基本的问题. 涉及到的知识主要包括MySQL数据库的使用.Linux操作系统的 ...

  5. 写一篇作为软件测试工程师的年度总结,从以下方面进行描述:本年度的工作概况、个人主要存在的问题及解决措施、收获与心得体会、给团队的建议、下一年的目标与规划。...

    这一年来作为一名软件测试工程师,我负责了多个项目的测试工作.在这些项目中,我负责了测试用例的编写.执行和维护,参与了 bug 的提交.修复和验证,并协助团队优化测试流程. 在本年度的工作中,我发现我存 ...

  6. 【测试文档】软件测试工程师:岗位描述文案

    目录 一.初级软件测试工程师 二.中级软件测试工程师 三.高级软件测试工程师 一.初级软件测试工程师 (1)年限:1 ~ 3 年/ 1 年以内 / 应届生 / 实习生 (2)学历:大专及以上 (3)岗 ...

  7. 软件测试工程师怎么样面试上好的公司?

    首先卖个关子,如果你是面试官,你希望招一个什么样的人进来? 如果这个问题搞明白了,那么可以说测试岗位的面试,就变得非常轻松了. 按照一般的惯例,面试官都会让你自我介绍,介绍你的项目经验,询问你的技术能 ...

  8. 史上最全软件测试工程师常见的面试题总结(九)【多测师】

    author:多测师_王sir原创 1000道软件测试工程师最全面试题链接:https://www.cnblogs.com/xiaoshubass/p/12865319.html 微联创智面试: 1. ...

  9. 什么是软件测试工程师

    测试这份工作确实入门相对来说是比较低的,看起来谁都能做,但是不一定谁都能做好,并且在一些小公司里面,测试往往还会被其他人认为是没有技术含量的工作,但是我想说在大厂里面,测试是跟开发同等级的存在,无论是 ...

最新文章

  1. 辩论届人机大战:IBM新AI完胜人类冠军!
  2. ImportError: Could not import backend for traitsui. Make sure you have a suitable UI toolkit like
  3. 创业产品经理需要懂技术吗?
  4. firebase使用_如何开始使用Firebase Hosting
  5. 博客园里输入latex公式
  6. Android笔记 android 7.0 动态申请权限
  7. 关于Shiro的标签应用
  8. mysql 导入1045错误_解决MyQL数据库中1045错误的方法——Windows系统
  9. canon mp 258清零方法
  10. JAVA游戏——潜艇大战
  11. vue 百度地图中文文档
  12. html微信怎么转发,微信朋友圈怎么转发别人的文章(链接、视频、图片、文字)
  13. 网上流行护眼色的RGB值和颜色代码汇总
  14. mac safari java插件_如果提示您信任或更新 Mac 上 Safari 浏览器中的插件
  15. 华为云 - 在华为云主机上部署宝塔6.x面板
  16. 大鹏教你python数据分析
  17. usart hmi(串口屏)常用命令
  18. 粗糙集的概念和一些例子
  19. 什么是大数据?如何入门学习大数据?
  20. 怎样才能保证单元测试效果

热门文章

  1. 个人收藏的一些资源网站
  2. 【Linux共享内存】
  3. BT面板创建站点显示已存在问题解决
  4. 不站队的UCloud,才是最可怕的
  5. 办北京居住证,定制社保缴费记录,个人权益记录最近6个月的查询与打印,社保,北京市社会保险,北京市社会保险网上服务平台,北京市社会保险网上申报查询系统
  6. Eclipse视频教程
  7. SQLServer 查询匹配字符(CHARINDEX)和替换字符
  8. c++ overload 、override、overwrite
  9. 嵌入式linux 修改mac,MAC to MAC 环境下,嵌入式linux的修改
  10. 什么是VLAN?VXLAN?以及VLAN和VXLAN的区别?