自动化搜索测试-微信
把机器变成人!WeTest GDOC现场分享精选
答应各位的GDOC现场分享终于整理成文了。特地精选了最重要、干货的部分呈现给大家。 By 爱你们的小助手
(GDOC分享现场)
谨以此文祭奠这些年我在适配上栽过的坑。 By 分享人Kevindwsun
安卓平台的诞生为手机智能化的普及立下汗马功劳,但安卓平台最大的缺点也越来越凸显,那就是碎片化严重:设备繁多,品牌众多,版本各异,分辨率不统一等等,这些都逐渐成为安卓系统发展的障碍,碎片化严重不仅造成安卓系统混乱,也导致安卓应用的隐形开发成本的增多。
Android碎片化让适配测试必不可少
开始话题前,先看看适配中心提供的数据,了解下Android到底有多碎片化?
数据上可以明显看出,android 碎片化主要体现在机型上,细分下去还关乎系统版本、手机品牌(定制rom)、分辨率等好几个维度。
为了解决机型碎片化,平时发布一个手游或迭代一个大版本前,都需要做一个比较全面的适配测试。不同工作室要求不一样,有的要求TOP50,有的要求TOP100,但即使是做到了TOP100也只是覆盖了市面上一小部分的机型,更何况TOP50和TOP10 。
看到这里你肯定会问“到底测试多少款设备够呢?”,这个没有统一的定论,但就目前人工测试的情况,能做到TOP100就已经不错了;另外由于人力限制,适配测试也不可能做到每日构建,一般上线之前根据情况做个2-4次,还包括回归测试,且适配问题的修改通常也是突击式的,那有没有更好的办法来做适配测试呢?
探索中诞生的新思路——把机器变成人,让手机自动探索帮助适配测试
要实现适配测试自动化需要借助UI自动化工具来模拟人的操作,说到UI自动化,如果你做过Web测试 ,你可能会接触过Selenium,Watir,IBM RFT等,做过Windows平台的,你可能知道AutoIT,PyWinAuto等,做过Android平台的,你可能知道Robotium,Appium等,还有基于图像识别的工具Sikuli,做过的同学都知道UI自动化有一个天敌——UI变化!想想都是泪!
而变化对手游来说更是天天在发生,那怎么办呢?——不用写脚本就可以自动化!
你可能会想这应该是写一个比较复杂的AI脚本完成的!但是我想告诉你,这个视频中的效果不需要写一句脚本,那么是怎么做到的呢?
技术揭秘!如何把机器变成人?
目前,我们的自动化云探索技术,可以针对适配测试的特点,在大量真机上运行,尽量可能的深入到游戏中的各个场景中,关注是否有Crash/ANR以及画面方面的问题。那么如何去探索呢?
这部分核心技术目前是保密的,小助手只能透露到核心技术是使用了自研的UI识别和自动学习算法。目前,这套自研的自动化云探索技术,对比需要写脚本的传统坐标录制法(普遍应用在一些测试工具上),也有着有非常大的优势,可以见下图:
把机器变成人,最终会代替人吗?
目前看来,永远不会。
我们只是辅助优化测试团队,减轻测试团队的工作负担,然后让测试人员更专注在专业领域上,变成更专业的测试专家。也让团队能够优化得更有效率。
目前,自动化云探索技术尚未对外开放,感兴趣的朋友发送试用申请邮件给203896752@qq.com申请。
附录:现场精彩Q&A
1、 能支持哪些游戏引擎?
目前支持Unity和cocos2dx,具体引擎的版本也会根据需求扩充。
2、 这种方法,XX玩法的手游能否支持?
这方法对不同玩法的游戏适应能力不同,具体需要大家一起去探讨,如何利用这样的机制来更好的服务手游的适配测试,比如棋牌类,机器是不会打牌的,但是可以利用托管来打牌。有些比较复杂的游戏,可以通过使用GM命令或是开发同学做一些可测试性的配合来提高测试的有效性。比如天天飞车或是雷霆战机这样的游戏,可以通过GM命令把车或飞机变的很牛逼,然后过很多关;如果开发同学可以提供更多的信息,通过扩展方式可以躲藏前面的障碍(我YY的)。
3、 可以获取哪些适配问题?
安装失败、拉起失败、Crash、ANR、画面类的问题,如黑屏和白屏这样的可以考虑通过图像识别来自动化检测,但是对于一些主观性很强的画面问题目前看只能通过人来看测试过程中的截图来识别。
4、 市面上的一些云测试工具是怎么做的呢?
对于手游基本都是用录制屏幕的方式,这种方法成本比较低,但是坐标的方法限制也很多,首先脚本需要人工录制,屏幕分辨率会影响,而且只能测试一些很固定的流程,流程变化了需要重录,如果流程中有些随机因素,那后面全部乱掉。
也有少数基于引擎编写脚本,但由于编写脚本工作量很大,尤其是面对游戏复杂多变的逻辑还有很强的随机性,游戏变化后维护的工作量也很大,因此通常也只是用于相对比较稳定的新手引导部分或某些固定逻辑的场景。
最后的最后,感谢每一位在现场给我们点赞的小伙伴!