自从走出校园,从事软件测试岗位,一转眼5年过去了。这5年,我从一个软件测试0基础的小白成长为懂测试又熟悉开发的测试开发工程师;回顾这些年发展历程,感概万千!!!
第一次听说软件测试这个词,还是在大学最后的一个学期(想必大多数和我一样吧)。即将毕业面临找工作,我当时也在选择软件测试还是开发岗位之间纠结,当时的我也不知道软件测试到底是干什么,就觉得应该不用写代码吧。
可是工作了之后,才发现软件测试工作,如果只停留在功能测试点点点上,没有前途可言,技术含量低而且非常枯草,并且极易被年轻的“后浪”替代(事实上也是如此,如今大厂已经没有功能测试岗位,取而代之的是测试开发岗位,但是并不是说大厂没有功能测试的需求,而是这部分工作都是外包出去了)。
测开才是未来!寻求改变势在必行。
测试开发岗位增速是测试工程师岗位的将近4倍,预测未来仍会保持高增速。现阶段来看,测试未来是就是测试开发!
那么,怎么寻求突破呢?可惜我当时还不玩知乎,身边也没有“导师”相助。几乎是在摸着石头过河(对于这些在知乎上求答的后浪们,我想说的是你们的起点比当时的我高多了,哈哈哈)。我当时的做法就是,在熟悉软件测试本职工作的基础上,去主动学习开发以及运维的知识。
“不但要知道怎么测,还要知道测什么”。
怎么理解这句话呢?功能测试作为测试的基本功,你要掌握测试产品的方法,例如黑盒测试、用例如何设计、缺陷如何管理等。但是如果想更进一步,你必须清楚黑盒里面到底是什么,黑盒里面的系统是如何工作的!
孙子兵法曰:知己知彼,百战不殆。黑盒测试是做不到知己知彼的,你看到的只是产品的表象,要想看到表象内在的东西,必须打开黑盒,这也是掌握开发技能的本质。
OK,问题来了,怎么学开发技能?
首先要明确学习对象,这还用说,当然是你测试的产品啦!例如你复杂测试的xx平台,你可以扒一下它是什么技术栈。以我为例,我当时负责的产品,前后端分离,前端使用vue.js,后端使用Spring MVC框架。所以我当时就学习Java、spring mvc、javascript、vue.js框架,怎么检验学习成效,就是自己开发一个系统,让它跑起来(当然刚开始更多考虑的是产品功能的实现,性能和安全还没考虑太多)。
有了开发基础,再做软件测试,你就会发现单纯黑盒测试是多么的“危险”。因为代码里面潜在的bug,可能无法通过点点点发现,这也增加了测试遗漏的概率,所以我认为code review应是优秀测试工程师基本功,就像黑盒测试一样;
日益更“卷”的当下,如何让自己立于不败?
如何破“卷”,唯有“读书”!毕竟“读书破万卷”!!!
养成持续学习的习惯,才能不慌!
唯有学习,才能“不焦虑”!
当然我说的这些,对于刚入职场的小白来说,可能有点“深奥”。但是我相信你工作多年后,应该会有和我相似的感受!下面我就总结一下,我这几年从小白成长为测开的职业发展路线,希望给即将踏入测试和对测试迷茫的小伙伴送去“星星之火”。
下面的【软件测试入门与进阶路线】,希望对你的职业规划有所帮助!
一、测试基础知识
掌握测试方法论以及计算机网络基础,熟悉主流缺陷管理工具的使用。
二、Linux必备知识
Linux作为现在最流行的软件环境系统,也是你工作中接触最多的操作系统,掌握如何操作Linux至关重要。
三、MySQL数据库
MySQL的“增删改查”是基础,还要掌握事务的ACID。
四、自动化测试
自动化测试是解决繁琐手工测试的第一步。理论上,超过三次以上的重复工作均建议自动化实现。
五、CI/CD
敏捷开发模式的测试基础能力
六、编程能力&框架开发
接口自动化工具自然好用,但是扩展很难,能开发符合自己业务特点的自动化框架非常重要。
七、Docker
容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。
八、DevOps
DevOps不是一个工具,而是团队不同部门(不同角色)之间沟通、协作的流程和方法。
九、非功能测试
上面就是我为大家沉淀的软件测试职业发展所涉及到的知识面,希望对大家有所帮助,enjoy!!!