【转载】
手游自动化测试与App自动化测试技术上的区别
手游和App的开发技术不同,导致了两者的自动化测试技术完全不同。一般来说,安卓应用是使用Android SDK开发的,利用Java编写。那么在App的测试环节中,测试人员一般是通过获取App当前窗口的信息,查找和操作按钮等控件来完成测试,这种过程是可以标准化的,从技术上说没有什么难度。但手游就不同了,通过我们多年的测试经验来看,手游测试难度大主要的原因在于其开发需要引擎(譬如比较流行的cocos2d和unity3d)。那么在游戏运行时引擎就会将控件渲染成一幅简单的图片,我们就无法通过Android自带的服务来找出游戏中的按钮,也就无法进行常规的自动化测试了。”
两者功能测试差距最大,关键在于玩法差异
相较于App功能测试来说,手游的功能测试非常复杂,据笔者了解,造成这种情况的主要原因在于游戏大多时候是动态且随机的,无论你是重复玩一个关卡还是挂机不进行操作,场景都是时刻发生变化的,由此手游自动化测试需要更加灵活的脚本用例,并且需要适当的探索和自适应功能。而App测试就没有这个问题,大部分App的使用方式都是静态且可以重复的。因此自动化测试可以完全按照测试脚本进行编写并执行。
其次,由于手游具有关卡,PVP等更加丰富的内容,这让需要测试功能点更加繁杂,你不仅需要关注关卡间的细微差别,还要遍历所有关卡,这样重复细致的测试是非常耗时耗力的。同时在PVP模式中,手游对于网络延迟的要求非常高,网络测试就变得非常关键,我们需要模拟大量不同的使用场景来观察两个玩家的状态和数据是否一致,同时体验网络延迟对游戏体验的影响。而上述这些在传统的App测试中是并不需要的。
两者测试的侧重点不同
对于大多数非支付类App来说,安全并不是一个特别大的问题,只需要保证登录鉴权的安全性即可。App是一个方便用户的工具,没有人会在用自己的计算器App时候锁定内存,或者把加法操作变为乘法操作。但针对手游来说,几乎所有的产品都更看重商业类的测试,譬如支付、安全和收益测试。
这类测试,一般会需要在大量不同系统、不同型号的手机上进行适配操作,以降低出错的可能性。同时,对于安全性来说,手游一般通过锁定/修改内存来锁定和修改游戏资源、通过修改游戏内存来改变游戏逻辑简化游戏流程等。
总结
其实,对于两者的测试来说仍然有很多共通点:譬如来电等情况下的中断测试,大量终端的兼容性测试,客户端运行在手机上的性能测试,网络较差或者网络频繁切换的弱网络测试以及用户体验和UI测试等。这些相同点属于测试的基础内容,无论你想从事哪个方面的测试工作都需要拥有扎实的基本功。
从以上分析可以看出,手游测试一般更为深入,相较于App更为复杂,需要遍历的功能点更多更杂,也正因如此,从手游领域测试经验转入到APP测试领域,相对来说,技术门槛和积累是降低的。但对于想转入手游测试的App测试工作者来说,我们必须要建立更加全面的测试逻辑,并且要加入适应性与探索机制作为补充,才可能转型成功