很多人解释为什么公司都要招聘测试开发,在说效率,在说岗位职责,没有人从这个行业发展的变化去说的。
在开始正文之前,我先抛出一个观点,做80%的做测试的,都称不上为测试工程师。
好的,带着这个观点,咱们从行业目前的发展来说一下。如果你没有进入这个行业,那么有些概念可能不太理解,没关系,先接触一下。
- 作为 DevOps 关键角色,未来的软件测试工程师和质量人员必须同时具备一定的开发和运维能力。
- 测试人员会更深入介入开发工作,通过“测试左移”,提前与开发人员一起制定测试计划,推动代码评审、代码审计、单元测试、自动化冒烟测试、测试精准化分析以及研发自测等来保证研发阶段的质量;
- 另外,测试人员会也会参与配置部署,将自动化测试用例配置到持续交付链中,并通过“测试右移”,全流程监控发布后的应用质量。
这里我所说的“测试左移”,也就是指的研发阶段的质量保证,“测试右移”也就是发布后的质量监控,搞明白这连个理念,就能很清晰的明白测试开发具体指的是什么了。
如果你是测试人员,你认为自己的公司不大,这些东西涉及不到我,我不关心。那么,上面我已经说了什么是测试开发了,下面就不用往下看了,你选择坐井观天,谁也拦不住的。
下面我就说一下整个测试行业目前,一个整体的一个现状。
这些情况不是我一个人得出的,是私下同阿里、360等行业内的测试经理交流所公认的。
第一个观点:XP、Scrum、CI/CD/DevOps的项目管理迭代的方法论的流行加大了测试压力
你要是刚开始进入这个行业,可能认为测试就是找bug,但是测试工程师的核心是质量保证。举个例子,以前一个项目,按月发布,两月发布一个,一月发布一个,现在呢,一个月也慢慢变成了两周,三周,甚至一周,甚至有的时候2天就可以发布一个功能,如果是按照这个节奏,研发只需要改一行代码,你要保证这一行代码的正确性,你要写很多的用例,甚至要回归,几十条甚至上百条的都有可能。那么他的改动会越来越频繁,而对于测试来说,每一次的改动,我们都要去做回归的,而这种回归,在这种短时间迭代越来越短的节奏下,其实已经没有办法再靠人力去支撑了,到时候必然就会带来测试工程师要进行加班,而且光加班也是解决不了的问题,所以这个时候,测试的压力是非常大的。
第二个观点:是原有的质量保证体系缺乏可以融入架构的工程化技术支撑。
原有的质量保证体系指的是什么呢,我们说最早期的手工测试的方法论,什么边界值啦,以及我们自动化最简单的一些自动化测试、压测,所有原来的这一套测试体系其实在当今的这个测试行业下,尤其是互联网快速发展的阶段里面已经慢慢的不太适用了。虽然说目前它仍然非常的有用,但是这样的一套体系很难融入已经流行的比如说持续交付、持续集成、DevOps等这样一个大的环境里面。你所做的自动化测试,如何融入到这个体系中去,如何能快速的发现线上的问题,以及更早的发现研发级别的问题,靠原有的这些质量保证手段,其实已经有点匮乏了。
第三个观点:行业大量技术根基薄弱的测试工程师面临淘汰和外包
这句话听起来比较残酷,但是你必须要看到这种变化。通过和一些测试经理进行沟通,也都是认为现在很多的测试工程师都不及格,要么是会点点点,要么是会一点自动化。20%-30%的人懂一点最基础的自动化,自动化的能力也是属于一个很薄弱的环节,既解决不了公司里面深层次的问题,又没有办法帮公司支撑和搭建更高的平台,完善更好的一套测试流程,所以也会导致这一类人也不太及格。
比如说阿里的一些现状,就是招测试开发,或者说招研发做测试,由测试开发以及研发来负责完成公司内的质量体系建设,公司的持续集成,持续交付,DevOps,以及一些质量监控平台,剩下的点点点,外包给其他的公司来做,这是他们目前的一个现状,也就是说,如果你们只是点点点,那么很快你将失去在大的公司的工作机会,直接会被外包公司吸收过去。
所以,这些也就是为什么很多公司都要招聘测试开发
说到这里,肯定很多会点点点的,都在抱怨为什么招普通的测试,还要会自动化,会语言基础?如果前面行业发展你可以理解,那么你也就可以懂得,他们对测试是有更高的期待的,已有的测试又不能解决,所以只能在招聘中体现这一点。
-----------------------此处加个分割线-----------------------
延伸的多说一点吧
测试开发工程师的概念怎么来的?
这个名词一开始并不叫测试开发,只是说懂技术,懂研发的测试工程师,后来这个词又很长,再加上以前测试开发曾经在老的时代是有一个对应的词的,从微软的时代的时候,微软就把工程师称为软件工程师on testing,就是属于测试领域的一个开发工程师。后来这个词就慢慢的受到很多公司的采纳,之后测试开发这个词,逐渐的开始流行。
测试工程师需要会多少语言?
2门。第一门,推荐大家使用Python。Python是做自动化工作首选的一门语言,所以Python是第一位的。
第二个语言,等你月薪达到2万或者2万5以上的时候,这个时候光靠做测试,已经很难再产生更大的影响力了,这个时候需要怎么做呢?第一个,在研发角度,去影响研发团队提高质量,第二个,从运维和线上角度,去影响运维和线上用户,然后去分析更好的质量。
如果要做这两个事情,只靠Python,就有些乏力了,比如说全公司都在用Java,go,你用Python对接就会很麻烦,比如你要分析他们代码的规范,代码里面的内存泄漏,多性能的死锁,各方面的问题,你要发明工具去发现这些问题,技术栈不一样,会很麻烦。所以Python是你入门的第一门语言,Python之后可以走2个方向,一个是Java,一个是go,懂2门语言就够了。当然像前端,html,js,css,这肯定是每个人都需要去懂的,这些基本上都属于基础知识了。
测试开发做到后面,是不是和开发没有区别了?
测试实际上是比开发更牛的,只不过大家碍于现状,不好意思说这个事情。对测试的能力要求,比开发还要高,只不过是说现在的测试行业里面,大量的人是没有成长起来,导致大家觉得开发比测试牛。
举个例子,开发工程师每天做什么呢,学网站开发,学数据库查询,学各种工具,每天的工作就是产品经理告诉你我要在页面上加一个好评,有多少人点赞,你给我实现这个功能,开发就去后台里面,第一个,数据库里面加一个字段,第二个,代码里面加一段查询,第三个,在网页端,加一个展示的效果。每天,每年常年的都是在做这样的事情,你可以认为就是数据库的增删改查,加上网页的展现,多数的开发都是这样,只有少数的开发会走出来,比如说进到更强的架构层去思考解决方案。多数的研发也是困扰于日常的搬砖。
测试做什么呢?首先是人工的测试需要去做,第二个是自动化的测试要去做,第三个,专项的测试也要去做,之后是什么呢,测试的左移,对研发质量要提前发现一些问题,同时上线之后的产品要进行质量的监控,发现一些线上用户的崩溃问题,了解所有的业务场景。所以在总体的范围里面,测试比研发更有前途的。在技术能力的要求上,也要求测试具备比研发所不知道的一些东西。
举个例子,耗电量怎么去测,内存泄漏怎么去测,一些底层的性能,压测怎么去测,这些东西研发日常是接触不到的,反而是我们测试经常需要去关注这些指标。测试是比研发更有价值的一个岗位,但是遗憾的是,我们。行业所有的测试基本上都去忙点点点去了,忽略了对质量体系的建设,以及测试流程的建设。
后面你们会慢慢发现,随着devops、持续交付这一套东西的流行,测试,运维,会慢慢的去管控整个公司的质量,然后研发只需要负责写代码。在目前以及过去的这些年,研发是比测试有优势的,就是因为高阶的质量保障,测试行业基本上都没有做,大家做的都是低端的,不是点点点,就是低端的自动化,然后很少有人往上去走,如果你走上来你会发现,测试比开发更有价值。但是两者都是殊途同归,都是开发工程师,只不过一个专注于测试,一个专注于功能的开发。所以现在很多公司,特别是大的公司,招测试开发以及研发去做测试,然后点点点,外包。
好了,闲扯这么多,以后我会专门开始说说测试开发的简历是什么样的,关注我,受益你。
我是老白,来了不白来。