微信号:grzlwx

介绍:光荣之路官方资讯

移动测试的伪银弹——UI自动化

2015-07-08 23:04 光荣之路


其实本章原本是不存在本书当中的,但是由于笔者感觉移动互联网绝大部分的人都在UI自动化,从而带给这个世界一个错觉,自动化只有UI,别的没有办法做了,而且感觉就是要做一辈子的样子。所以决定开一个新的章节来谈下UI自动化,笔者已经很久不做这传说中的UI自动化了,所以如果以下说(tu)明(cao)中如果有问题,还请大家随时来咬我。


1.1 为什么测试热衷于UI自动化

我的原则其实很多人都知道,那么我们来说下为什么移动互联网的测试那么热衷于UI自动化。首先我需要在这里定义下UI自动化,免得很多小人吐槽我。这里的UI自动化指的无非是两类:

l 界面层面(控件,元素,位置、显示等)

l 功能交互层面(往往是通过代码或者测试框架来模拟真实用户的操作)

接着我们来说为什么那么热衷,与两个平台的历史以及提供的框架都有关系。大部分接触移动无线的测试而言,Android的同学肯定是Monkey这个工具,这个工具的使用我在《大话移动app测试》这本书中已经很详细讲过了,这里不多提了。而iOS的同学,我真的不是鄙视测试iOS的同学,曾经我说过这样一段话“100个测试iOS的里面,有50个没有macbook10个没有用过xcode10个没有用过instruments10个没有看过产品代码”,所以大部分测试iOS的同学仅仅也只是拿着iphone在自己模拟monkeytest。但无论AndroidMonkey还是iOS的手动测试,其本质都是UI的测试,这也决定了很多入门的测试潜意识中被UI测试,黑盒测试,功能测试等所占据,从而认为世界就那么点大了。

然后我们再来看两个平台的框架。Android从发展到现在大家最熟悉的莫过于ActivityInstrumentationTestCaseActivityInstrumentationTestCase2这样两个类。但我相信大部分的只做UI自动化的测试们,其实他们并不知道有ActivityInstrumentationTestCase的存在,并且认为ActivityInstrumentationTestCase2Instrumentation的全部,其实你们并不知道Instrumentation作为Android最早的合法的测试框架已经哭了很久了。从行业以及Google近几年提供的测试框架来看,热门的有RobotiumNativeDriverAthruntmts)、CalabashAppiumEspressoMonkeyRunnerMonkeyuiautomator等,无一不是UI自动化框架,所以也不能怪测试人员被这样一个趋势就带着走了。当然笔者表示如果像笔者这样这些框架都用过,源码都解析过的话,那么肯定是不会大波框架所迷惑的。iOS的话相对就好很多,非侵入式的话无非就是使用instruments下面的UIAutomation,这就不用解释了,这个名字已经说明了一切。侵入式的话代表有KIFCalabash等,这两个也都是UI自动化测试框架。

以上的历史和目前的框架发展情况来看,不难看出UI自动化工具和框架的确有很多,多到足以让一个资深测试眼花缭乱,然而这并不能成为测试热衷UI自动化的一个主要原因,但可以成为一个借口。

两个平台的发展历史谈完,我们来看下测试人员热衷于此还有什么有关系。是的,和测试人员所在的环境,所在的企业有着密不可分的关系。其实移动互联网行业中的大部分企业的确就是喜欢做UI自动化,这主要有几个原因:

l 企业中中的管理者大多不懂技术,但为了凸显自己很懂技术所以就会去选择一个大家都在做的,而且框架相对多,最好下手的切入点

l 管理者大多不懂测试,几乎有除了测试以外所有行业的人成为管理者(包括卖水果的,破产的等),所以对他们来讲,最接近模拟用户操作的UI自动化成为了首选

l 测试行业的从业人员大多技术能力不高,同时也认为UI自动化就是自动化和技术的全部,所以就一头钻进UI自动化中。

说到这里,有人会有问前面两点难道仅仅是那么“单纯”的原因么?答案是当然不是,企业中他们这样做还有一个很大的动力——KPI。为了去争功劳去忽悠更上面的老板从而谋取“暴利”,谁都会去挑软柿子捏吧,UI自动化就是其中的一个。而第三点在本章后面还会提到,测试人员对自己没有要求以及坐井观天的态度也是养成了企业现在对测试不重视,甚至认为任何一个人都可以做测试这样习惯的罪魁祸首,这两者绝对是相辅相成。所以我也一直说一句话“测试老是抱怨薪资低,抱怨企业不重视,首先先看看自己是不是正确的理解测试了,自己是不是正确的态度对待测试了。自己都不明白,不知道怎么去做,你还让别人来重视自己,这不是扯淡是啥”。

以上的论述不难看出,UI自动化在各个企业就是最好捏的柿子。当然我需要去明确一点的是,最好捏的柿子并不代表就很容易去做,UI自动化要做的好,无论对于设计模式,代码架构,团队合作,测试策略等各个方面都是需要极高要求的。当然这并不在本章节里去讨论,在本章节里我们只要知道UI自动化是各个公司扯淡领导拿来换取KPI的上古神器就足够了,那下面的测试人员们自然也为了生存只要去做,所以才有很多测试人员抱怨自己什么都不懂,却要做这个做那个。其实我想说的是,这不是废话吗,你不做,哪里来的KPI,没有KPI,你的主管怎么嗨?

历史说完了,企业也说完了,那么最终我们还是要谈下根本问题,那就是为什么测试人员那么热衷于UI自动化呢?以上所有的论点都能很完美的去套用在测试人员身上,除了这些还有如下原因:

l 我就是黑盒测试啊,那么UI自动化最贴近黑盒,模拟用户操作嘛

l 我不会代码啊,反正Monkey只要跑一个命令,不服来咬我啊

l 公司不给我代码啊,我怎么办呢?谁教教我?

l UI最好出成绩啊,为了成为扯淡的领导我也是要好好拼一下的

l 移动无线的自动化就是UI自动化啊,不要说我坐井观天好么?你们其实就是在嫉妒我

当然还有很多理由,我已经不想一一列出了,写到这里我觉得我自己的吐槽能量就已经可以放出大招足以毁灭一个地球了好么!测试行业就到现在2015年了,从各个方面都能够散发出一种屌丝气息,真不知道这样怎么让企业,让整个IT行业去重视呢(叹气),关键是很多人还真的就觉得很自己很牛逼,感觉已经到了世界的顶峰一样,这莫名的优越感不知何处而来。

我们言归正传,从上面的理由来看,其实测试人员那么多人喜欢去做UI自动化不是没有道理,反而显得那么顺理成章。但总体来讲就还是我上面说的,这都是相辅相成的,但凡测试人员自己要求高点,对测试的理解正确点,对技术有点追求,那么整个行业至少肯定比现在要好。但是,有个很奇怪的现象,AndroidUI自动化的从业人员远远比iOSUI自动化的人员来的多,原因很露骨:

l 我没有钱买mac book

l 我没钱买AppleDeveloper

l 公司不给配mac

l 我买不起iphone

l 我不会配置xcode导致我instruments也启动不了

l 我不会写js

好了,不想列了。大家会发现虽然测试都很喜欢UI自动化,但是又有各种理由来证明自己做不了iOSUI自动化,只要仔细一看这理由,真的惨不忍睹。我也不想再说了,再说下去,估计书都没有人要买了。

(未完待续,敬请期待《2.1 我们为什么不做UI自动化》)

(作者:Monkey陳曄曄 来源:http://blog.sina.com.cn/s/blog_7022adbf0102vkmq.html)

一字一句当思来之不易,感谢作者,传播测试知识、技能与正能量!

光荣之路软件测试培训

官网:http://www.gloryroad.cn/

微信公众号:gloryroadtrain

性能测试QQ群:415987441
软件测试招聘QQ群: 203715128
自动化3群QQ: 371211499


 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 拥抱 Android Studio 之五:Gradle 插件开发 你的代码写的很烂 ··· 千锋入驻大上海,一期iOS培训提前爆满 黑科技之无障碍访问 Google 互联网重新定义产品