移动互联网这十年风云变幻,移动互联网测试更是随之发生了巨大的变革。
测试人员数量的急剧增长
首先,测试这十年最大的变化也最直观感受到的就是从业人员的数量了。
早在2008年的时候行业内测试人员的占比是非常少的,就更不要谈移动互联网了。那个时候微软的很多员工说看好Android,旁人只会当为一个笑话。那时的Android G1手机,没有几人认知,更不要说明白什么是移动互联网了。
但到现在,移动互联网测试越来越多,无论是传统行业,互联网等企业,技术基本上都已经离不开移动互联网。随着时间的推移,每一年也有越来越多的应届生会选择移动互联网测试岗位。明显可以看到现在测试人员的数量越来越多,为了顺应潮流称自己是移动互联网测试的就更多了,但相对水平和素质也愈加层次不齐。总体来讲,移动互联网人员的从业数量在过去10年内几乎呈几何倍增长。
培训教育组织层出不穷
在移动互联网之前可能51CTO,51Testing等几家独大,但在移动互联网时代,尤其是在2014年开始,在线视频教育,网络直播的兴起,越来越多的草根培训机构层出不穷。相应的,前互联网时代的那些机构却并没有快速的跟上移动互联网的脚步。2013年左右开始,个人培训机构开始越来越多,2015年开始针对测试培训创业的也逐渐增多。
就移动互联网的10年来说,国内的测试培训机构到能到今天这样的状态可谓“叹为观止”。当然其实不仅只针对测试,前端、后端、编程语言等都是如此。可以说这就是移动互联网本身所带来的一种变革。
人员要求
2009年 前对于测试的要求就是能做好功能测试。功能点是否覆盖完全,用例写不写,大多数公司并不是很关心,或者不是很懂。
2010年 很多大公司逐渐正规化,需要设计正式的用例。但从业人员要求基本上就能够会运行Android Monkey的Level。
2011年 开始摸索自动化,但总体还是比较关注用例积累和设计的。
2012年 这是一个分水岭,直接从手工跳跃到了自动化。UI自动化在当时迅速火的大红大紫。
2013年 对于自动化的要求更加变本加厉,不但要会使用,而且需要在基础上二次开发。
2014年 从点扩展到了面,从自动化的使用扩展到了持续集成的了解和运用。
2015年 功能,自动化都告了一个段落,整体开始测试平台化,工具化,技术上开始转移到了无线客户端的专项测试上。
2016年 安全提上进程。全栈也好,敏捷也罢也都到了一个白热化阶段,要求测试元不但需要懂开发,还要懂业务,架构等等。应聘测试岗位比CTO都要难。
2017年 可能需要加上了解大数据分析,人工智能等概念了。OMG,软件测试员不是那么简单的。
总体来讲,短短这10年时间,移动互联网测试的技能、素质要求简直是升华了好几档,大家现在对于测试的理解已经远远不是当初那种“门槛低,只是点点点”那种看法了。虽然很多人平时的工作依然还在点点点,但人人都有往CTO发展的潜质(CTO要防着下面的测试人员了,嘎嘎)。
测试技术发展
2009年除了Android的官方文档以外,几乎没有任何的社区和博客有记载关于移动互联的测试技术(开发技术倒是蛮多的)。
2011年前基本上都是使用原生工具较多,应用本身复杂程度有限,开源工具较少。
2011年之后Robotium等一大批UI测试自动化框架开始多了起来,网络上关于测试的技术文章也开始逐步增多。同时一大批测试网站,社区也崭露头角。
2012年之后应用本身复杂程度大幅度提升,移动互联测试很清楚的分成了APP和OS两部分。同时开源测试框架,开源测试工具层出不穷。当时很火的并且做的不错的有Emmagee、athrun等框架。同时测试活动对于代码的依赖和使用开始了一个新的篇章。
2013年过后移动互联所涉及到的技术已经开始有了本质的变化,客户端的内容更多的开始依赖服务端的架构和设计,大家的关注也从一个客户端到了一整套系统的关注上。曾经的Web测试技术,API测试技术,Server测试技术也都慢慢的融入了移动互联。这也是之后为什么测试的关注点会从一个点发展到一个面的根本原因,这种情况一致延续到现在。
移动互联网本身的测试工具已经非常多,开源的框架和工具也在github上面遍地开花,另外技术本身已经出现了很多的组合使用。这一切与10年前可以说是天壤之别。现在测试技术可谓遍布各个网站(如51ste.com、51testing.com、testwo.com等),测试栈也几乎可以打通了整个常用的编程语言以及前后端系统。夸张点说现在的移动互联网的测试技术可以说已经到了让很多人望而却步的程度了。
测试意识
这确是个非常有趣的现象,但可能本质上和移动互联网关系并不是非常大,可能移动互联网只不过是加速了这一现象的发生。还是需要分成两个方面来讲,学术界和工业界。早在2009-2012年间,整个测试行业在这两方都有非常明显的活动。
学术界:办协会,做会刊,登报纸。扩散各种测试用例设计的方法、理念。从国外引入各种新的概念和设计思维等。当然测试毕竟也是研发过程中的一个环节,所以敏捷、DevOps的一些理论也都不会放过。
工业界:工业界的伙伴们忙跟狗一样,没有什么研究。之前几年基本上都是在学习移动互联的新知识,大力研究UI自动化。
他们的关注点都在一些通用的方法论上,但这些在2013年之后基本上就消失殆尽了。一来这些在行业中慢慢变得很难赚钱了,二来移动互联网加速了整个国内互联网的各种属性,理论本身也很难有趣落地实践的可能性了。但大家不得不承认一点,学术界在高校中被称之为“未来科学”是有道理的,因为他们在意识层面上的确比工业界的人们要先进的多。
测试真正意义上的自动化可能是自动化的终极目标,测试本身可以简单的分成“测试前”、“测试中”和“测试后”,但现在看来工业界基本上都还在“测试中”这个环节折腾,测试的自动化有通过软件框架实现的,也有通过opencv摄像头+硬件实现的。但无论是哪一种基本上都还在“测试执行自动化”。
在早些年工业界很少有人去关心“测试数据,用例设计自动化”以及“测试结果分析,定位,质量自动化”这两个概念,但学术界却有很多人在研究,甚至国外已经研究了几十年了。近几年才慢慢开始有相关的实践在大公司中落地,比如咸鱼在前年demo的基于脑图的用例生成、遍历技术、线上数据双引擎、大数据质量大盘等等。相信这些在未来都是工业界测试技术可以突破的点。