自动化搜索测试-微信

发表于2015-06-02
评论1 3.7k浏览

 

把机器变成人WeTest GDOC现场分享精选

 

答应各位GDOC现场分享终于整理成文了。特地精选了最重要干货的部分呈现给大家。 By 爱你们小助手

C:UsersayuzzhangDocumentsWeChat FilesxiaoyundarenImage949526212991388952.jpg

(GDOC分享现场)

 

 

谨以此文祭奠这些年我在适配上栽过的坑By 分享人Kevindwsun

 

安卓平台的诞生为手机智能化的普及立下汗马功劳,但安卓平台最大的缺点也越来越凸显,那就是碎片化严重:设备繁多,品牌众多,版本各异,分辨率不统一等等,这些都逐渐成为安卓系统发展的障碍,碎片化严重不仅造成安卓系统混乱,也导致安卓应用的隐形开发成本的增多。

 

Android碎片化让适配测试必不可少

 

开始话题前,先看看适配中心提供的数据,了解下Android到底有多碎片化?

 

数据上可以明显看出,android 碎片化主要体现在机型上,细分下去还关乎系统版本、手机品牌(定制rom)、分辨率等好几个维度。

 

为了解决机型碎片化,平时发布一个手游或迭代一个大版本前,都需要做一个比较全面的适配测试。不同工作室要求不一样,有的要求TOP50,有的要求TOP100,但即使是做到了TOP100也只是覆盖了市面上一小部分的机型,更何况TOP50TOP10

 

看到这里你肯定会问“到底测试多少款设备够呢?个没有统一的定论目前工测试情况做到TOP100已经不错了另外由于人力限制,适配测试也不可能做到每日构建,一般上线之前根据情况做个2-4次,还包括回归测试适配问题的修改通常也是突击式的,那有没有更好的办法来做适配测试呢?

 

探索中诞生的新思路——把机器变成人,让手机自动探索帮助适配测试

 

 

要实现适配测试自动化需要借助UI自动化工具模拟人的操作到UI自动化,如果你做过Web测试 ,你可能会接触过SeleniumWatirIBM RFT等,做过Windows平台的,你可能知道AutoITPyWinAuto等,做过Android平台的,你可能知道RobotiumAppium等,还有基于图像识别的工具Sikuli做过的同学都知道UI自动化有一个天敌——UI变化!想想都是泪!

 

变化对手游来说更是天天在发生,怎么办呢?——不用写脚本就可以自动化

 

 

 

你可能会想应该是写一个比较复杂的AI脚本完成!但是我想告诉你,这个视频中的效果不需要写一句脚本那么是怎么做到的呢?

 

技术揭秘如何机器变成人?

 

目前,我们的自动化探索技术,可以针对适配测试的特点,在大量真机上运行,尽量可能的深入到游戏中的各个场景中,关注是否有Crash/ANR以及画面方面的问题那么如何去探索呢?

 

这部分核心技术目前是保密的,小助手只能透露到核心技术使用了自研的UI识别和自动学习算法。目前这套自研的自动化探索技术对比需要写脚本的传统坐标录制(普遍应用在一些测试工具上)有着非常大的优势可以下图

 

把机器变成人,最终会代替

 

目前看来,永远不会。

我们只是辅助优化测试团队,减轻测试团队的工作负担然后让测试人员更专注在专业领域上,变成更专业的测试专家。也团队能够优化得更有效率。

 

目前自动化探索技术尚未对外开放,感兴趣朋友发送试用申请邮件203896752@qq.com申请

 

 

附录现场精彩Q&A

 

1、 能支持哪些游戏引擎?

目前支持Unitycocos2dx,具体引擎的版本也会根据需求扩充。

 

2、 这种方法,XX玩法的手游能支持?

这方法对不同玩法的游戏适应能力不同,具体需要大家一起去探讨,如何利用这样的机制来更好的服务手游的适配测试,比如棋牌类,机器是不会打牌的,但是可以利用托管来打牌。有些比较复杂的游戏,可以通过使用GM命令或是开发同学做一些可测试性的配合来提高测试的有效性。比如天天飞车或是雷霆战机这样的游戏,可以通过GM命令把车或飞机变的很牛逼,然后过很多关;如果开发同学可以提供更多的信息,通过扩展方式可以躲藏前面的障碍(我YY的)。

 

3、 可以获取哪些适配问题?

安装失败、拉起失败、CrashANR、画面类的问题,如黑屏和白屏这样的可以考虑通过图像识别来自动化检测,但是对于一些主观性很强的画面问题目前看只能通过人来看测试过程中的截图来识别。

 

 

4、 市面上的一些云测试工具是怎么做的呢?

对于手游基本都是用录制屏幕的方式,这种方法成本比较低,但是坐标的方法限制也很多,首先脚本需要人工录制,屏幕分辨率会影响,而且只能测试一些很固定的流程,流程变化了需要重录,如果流程中有些随机因素,那后面全部乱掉。

也有少数基于引擎编写脚本,但由于编写脚本工作大,尤其是面对游戏复杂多变的逻辑有很强的随机性游戏变化后维护的工作量也很大,因此通常只是用于相对比较稳定的新手引导部分固定逻辑的场景

C:UsersayuzzhangDocumentsWeChat FilesxiaoyundarenImage6823027778211811115.jpgC:UsersayuzzhangDocumentsWeChat FilesxiaoyundarenImage1770524384927035601.jpgC:UsersayuzzhangDocumentsWeChat FilesxiaoyundarenImage7717539782287238365.jpg

 

最后的最后,感谢每一位在现场给我们点赞的小伙伴

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引