大家都说软件测试入门容易,似乎软件测试成了跳进互联网生态圈的最佳途径。
但是不少小伙伴在入门软件测试后,却变的相当的迷茫,不知道自己应该做什么,似乎点点点就成了工作中唯一的事情了。
趁现在负能量还没有缠身的时候,给大家讲讲软件测试如何打破瓶颈,怎么才能继续向上提升。
一、认清自己
好多小伙伴都是从黑盒测试入门的,从最开始或者更长的时间一直都在从事点点点的工作。
觉得工作没有乐趣,枯燥,想要提升自己,但不知道自己该怎么做。
不得不说,每个人都会有迷茫期,记得我刚出来工作的时候,隔三岔五的迷茫,根本不知道自己到底想要做什么,只能随波逐流的过一天是一天。
但每次度过迷茫期都会有一点提升,因为在迷茫期的时候,会不断的纠正自己要走的路。
所以,各位小伙伴在这个阶段就应该想想自己未来到底要怎么走。
二、软件测试职业发展
说到软件测试的职业发展,和开发是一样的,不外乎那么几条路。
•管理方向。
•技术方向。
•半路掉头方向。
先简单的说说这个三个方向吧。
1、管理型
首先是管理方向,这个其实是最不好做的了,因为要想转型成为管理,除了个人的能力提升以外,更多的是需要机遇,正好遇到那么一个机会,正好被你抓住了。然后有了管理的经验,后面也就水到渠成了。
要做管理,自然需要关注的就是各种管理方法了,包括了不限于项目管理,流程管理,QA,CMMI等等东西。要想走管理路线的小伙伴,不要守株待兔,在等待机遇的时候也要多学习才行呀。
2、技术型
然后是技术型路线了,其实技术型路线的发展是最靠谱最能通过个人奋斗实现的一个路线了。
软件测试的技术型路线发展,大概的来讲可以分为以下几种。
•自动化测试工程师
•性能测试工程师
•持续集成工程师
•测试开发工程师
•开发工程师
然后这个几个路线做到最高的境界可能就是架构工程师或者全栈工程师了吧。
再持续往上我也不知道是什么了,也许就是全球知名IT工程师之类的了吧。
3、半路调头型
因为软件测试是一门横向发展的技术,要求的是测试人员什么都要了解,什么都需要知道。所以,在整个IT行业里,软件测试一个相当容易转行的岗位。
比如,精通业务,可以去做需求分析。
精通用户体验,可以转行做产品经理。
喜欢开发,可以转行做开发。
文档写的6,文档工程师。
以及售后工程师,售前工程师,技术支持工程师等等各种各样的工程师。
相信就算我不提这些,大概各位都感觉的到吧,毕竟我是经常在我的团队吐槽,我是公司的打杂小弟,什么事情都可以去插一脚。
三、如何往技术型路线发展
前面说了那么多,其实都没提到重点,毕竟上文写的内容谁不知道呢,不是吗。
这里,主要给大家讲讲软件测试在技术路线上的发展应该主要关注什么东西。
1、自动化测试工程师
自动化测试工程师细分可以有UI自动化测试工程师,APP自动化测试工程师、接口自动化测试工程师等等。
那么怎么才能成为一个合格的自动化测试工程师呢。
首先,必须要掌握一门编程语言,应该以Java或者python为主,虽然什么语言都可以用来做自动化测试,但毕竟这个两个最流行嘛,如果不想成为自动化测试工程师里的非主流自动化测试工程师,那我还是强烈推荐大家选择这两门语言。
编程语言是自动化的核心,不会编程,都是白搭。然后要会主流的测试框架,和一些辅助工具。
主流的框架啊,不外乎selenium,appium,monkey,monkeyrunner之类的,基本上掌握了这个几个APP和UI自动化都可以玩的转了。
然后接口自动化的话当然各位要知道什么是接口啊,不然玩个什么鬼。
辅助工具就太多了,大家各有各的喜好,没什么是必须要会的,这里就给大家推荐几个常用的工具。
postman,接口测试工具。
fiddle,抓包工具。
navicat,数据库管理工具。
HTTPwatch,网页监测工具
uiautomator,APP元素查看工具。
等等啦。
还有什么sql,linux,IDE啊这种就不要单独说了吧,通用的知识都是必须掌握的。
相信初步掌握了这些你就可以自动化入门了,熟练掌握就基本上可以完成大多数的工作了。
2、性能测试工程师
性能测试工程师,其实我不是很推荐,因为这个很容易遇到学习瓶颈。
做性能测试简单,只要熟练使用loadrunner,jmeter等工具,基本上都可以做性能测试了。
可是为什么不推荐呢,
因为如果只需要会工具就能成为一个性能测试工程师,那这个门槛也太低了。
性能测试好做也好学,可是性能调优,这个性能测试工程师的核心,最关键的技能,学习周期太长,学习代价太高,见效太慢。
所以啊,其实就是我也不知道这个性能调优到底怎么玩。
言归正传啊,刚刚提到的那两个工具是必须要掌握的,然后C、Java也是要会的。
毕竟你不能完全依靠录制来完成脚本的编写。
然后各种协议是要掌握的,IP/TCP/UDP/HTTP/SOCKET等等。
Linux就不提了,毕竟性能测试一般都是测试服务器,而服务器一般都在Linux上。
不会Linux的话,你也就最多算个玩工具的,工程师就呵呵呵了。
3、持续集成工程师
如果大家关注业内新闻资讯都知道,持续集成是未来这几年软件行业的发展趋势,是一个更加高效更加能把控质量的管理方法。
要入门持续集成,需要各位小伙伴先知道什么是devops。
DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。
大概的概念就是这样了,详细的内容大家需要自己去查资料,毕竟这东西和敏捷一样,几句话是说不清楚的。
了解了这个东西后,技术上,需要懂代码(废话啊),服务器运维,持续集成平台CI,如Jenkins这种。
最终的一个目标就是可以实现完整这么一个平台,开发提交代码后,自动触发任务,开始编译部署到测试环境,然后自动进行自动化测试,如果通过了再自动推动到生产环境,如果测试没通过,自动回滚版本,邮件分分钟通知各个负责人哪里没通过,然后开发立刻修改。
有很多业内的小伙伴认为,devops一旦全面实行,对初级软件测试工程师的需求会大大减少。
所以啊,各位,压力山大啊!
4、测试开发工程师
其实这个没什么多说的,测试开发就是一个偏技术测的打杂的,什么都能玩一玩,既可以为测试团队开发辅助测试的工具,又可以和大家一起写自动化测试,还能帮开发coding代码!
想一想,你去给开发说,这里有个问题赶紧改,开发一甩脸色,就知道瞎BB,你行你上啊。
然后你一把推开他,抄起键盘噼里啪啦的把BUG改了,还顺便优化了下他的代码。
哈哈哈,解气不?!各位老铁,就问你6不6。
游艇、飞机还不赶紧来一波!
所以啊,这个怎么入门,就是精通测试的时候顺便精通开发就行了。
如果你觉得你测试已经精通了,你就直接学开发的东西就行了,没什么特别要求的东西。
四、不要成为一条咸鱼
虽然我真的好像什么都不管了,就上上班,混混日子,过一条咸鱼,但是真是不敢停下,害怕担心自己一停下来,就被这个世界甩进了垃圾桶。
做为社会主义接班人的我们!
还需要为早日实现社会主义中级阶段而奋斗啊!
各位老铁。
测试工程师应当具备以下技能:
1、测试人员必须掌握目前比较流行的语言,比如说JAVA、Python、C++、C#等等多种平台下的一种或者多种语言,具备进行简单应用开发的能力。——软件编程技能
2、对Windows、Linux、Unix等大型主流操作系统的使用和应用开发的熟练掌握,包括一些网络的基础知识。
3、熟练掌握SQL Server、Mysql、Oracle等一种或多种数据库系统的使用,熟悉使用SQL语言。
4、掌握信息安全知识和网络知识。随着信息技术的发展和各个领域的信息化程度越为越高,安全也提到越来越重要的位置上,没有安全其他都无从谈起。
5、 必须深刻理解和熟练掌握软件测试基础理论与技术。——软件测试专业技能
•首先是精通各种黑盒测试技术,能够进行测试用例设计、测试执行、编写缺陷报告;
•其次是熟悉软件测试流程和测试过程管理,能够编写测试计划,具备组织测试工作的能力;还有熟悉白盒测试技术,能够手工或利用相关工具进行单元测试;
•最后还有测试管理相关知识的掌握,虽然这在企业里是对测试组长和经理的要求,但是达内软件测试教研总监表示学校是按照优秀软件测试工程师来要求学员的,学员具备这一能力将来才有可能走上管理岗位。
6、测试人员要掌握和熟练使用当前主流的功能、性能自动化测试工具以及测试管理工具,具备编写测试脚本、进行功能和性能测试自动化测试的能力。
7、学会软件质量分析技术,包括对软件的分析和度量各种技术,包括软件静态和动态分析技术,以及编写软件质量报告和测试分析报告的能力等等。测试人员作为软件开发过程中的一员,学员应该对企业的质量管理体系和项目管理应该熟悉,应该了解IS9000、CMM、CMMI项目管理等等知识。