移动软件测试工程师的未来:测试开发技术的融合(一)
发布时间:2016-04-28 00:00:00
小编首先要声明,软件测试包括很多领域,这次所谈的测试未来,其实是移动互联网测试的未来。这些年我和很多公司的同学都做过交流,经过了长时间的交流,基本上对现状有一个清楚的了解,这里就大胆的对未来进行一个预测。 另外我还想说,软件测试行业还是一个不成熟的行业,存在很多成就伟人的机会,学术界和工业界都存在着大量看不清客观事实的人,同样的也存在大量的扯淡的人,本篇文章希望大家都能够认清楚现在的局势,以便找到正确的发展方向,从而将行业整体推向一个正确的道路上。
过去:从极易到极难 要预测未来,我们首先必须对过去和现状有一个清晰的了解,所以,下面首先介绍一下移动测试过去是什么样的。 我自己是从09年底开始接触Android无线应用的功能测试,那么就从那个时间开始说起吧。 09年到11年底属于移动互联网测试在中国的卓绝个阶段,那个阶段几乎网络上除了Android、iOS的官方文档,不存在其它任何相关的测试技术博客或者文档,这对当初接触这个行业的我们是一个非常大的挑战。 对于一个**的领域,为了保证产品质量,测试必然是从功能方面切入进行。不过好在那个时期的App大多都是纯Native的逻辑,并不像现在那么的复杂。但由于开发整体技术的不成熟以及硬件上不充分的支持,我们更常见的其实就是OOM(Out Of Memory),那个时期真的算是习以为常了。 09年到11年的时候,整个行业的大部分互联网公司都感觉到了移动互联网的到来,这个时候,很多大企业也觉得应该开始储备移动团队和技术基础了,所以开始大范围招人。 初创企业招入的测试肯定是One Man One Team,一个人就相当于一个团队,而大公司的话,会将自己公司内以往做服务端测试,或者web测试经验丰富的人,拉过来做移动测试团队的leader,然后开始招兵买马。 但无论是哪一类公司,测试工作肯定集中在功能测试用例的设计、执行测试用例上,而且非常的累。所以当时如果你会或者说掌握Android Monkey测试以及iOS的Monkey测试的话,那么已经是神一样的人物了,很多公司会争先恐后的抢着要的。(这里我不得不提一句,我面试了那么多的人,大部分人就是知道基础的命令,也不知道Monkey执行的策略包括实现,这些人就不要说掌握或者熟练了。) 在移动互联网早期,功能测试就被放在了一个很低的位置,直到现在依然没有什么一个很好的改观。 然后过了快2年,各个公司发现,移动互联网不如自己设想中的赚钱,反而烧钱很快。
于是11年下半年部分公司就开始裁员了,而首当其冲的就是测试工程师。在这个阶段中,几乎所有公司都不知道自己要招什么样的人,JD(岗位描述)都会很模糊,会写上要移动互联网测试经验,但不知道具体要什么经验。整整2年就处于这样一个阶段,我称之为移动测试卓绝阶段。 接着12年开始到13年底基本上又是两年,进入了第二阶段。 这个阶段,移动互联网的项目迭代周期也基本定型了,1~2月内一次大迭代,小版本可能每天都有。此时的公司对移动测试的要求也开始具体化——当然,中国是一个跟风严重的国家,比如当初BAT或者各个大公司写出来具体的测试JD,行业的其它公司纷纷开始抄袭,所以这阶段的移动测试的要求基本是从BAT和大公司出来的。 12年开始,行业对测试人员的招聘要求来了一个180度的转变,Robotium,Monkey,Monkeyrunner,Instrumentation,Objective-C,Java,Python等各种详细的要求接踵而来,整个12年的面试会给测试人员一个感觉———面试测试岗位比面试一个CTO岗位都要累。记得某些公司在面试测试人员之前,首先先要笔试,做各种卷子,包括软件工程,测试,算法,代码,智力题等,从我看来简直变态的可以。
另一方面,移动互联网的产品本身从Native开始慢慢的转变成部分Native,部分WebView。Native主要用来实现一些类似于设置、本地界面框架的功能,而WebView更多的会做一些活动界面、广告投放的功能。之后Hybrid混合式应用就变成了移动互联网应用的主流实现方式。测试工作也从以往的纯功能性测试,增加到现在的自动化测试、持续集成、碎片化测试等等。移动测试的技术在这段时间也得到了非常大的进步和提升。 其实在这两年里,还是有很大的变化,那就是开源测试技术的发展越来越快。现在在移动互联网存在一个普遍现象,那就是UI自动化测试就会有几十个框架,根本就不知道选什么。