作者:周大军/孙大伟, 腾讯后台开发 高级工程师
商业转载请联系腾讯 WeTest 获得授权,非商业转载请注明出处。
原文链接:http://wetest.qq.com/lab/view/333.html
做好自动化测试从来不件容易的事情,更何况是手游的自动化测试,相比传统的 APP,手游画面纯 OPENGL 绘制无可识别控件,且界面动画多、随机性大。举个例子,拿新手引导来说,手游中新账号试玩会有一系列的新手引导,当新手引导过程通过之后,后面就不会再出现,但当账号升级到一定等级,又会出现新玩法的新手引导。且手游的版本迭代非常快,平均 1-2 周就会出一个版本,界面也经常发生变化,这些都给自动化测试带来很多障碍。
为解决手游自动化测试的这一瓶颈,腾讯 WeTest 依托腾讯人工智能研究的技术优势,率先尝试将基于深度学习的人工智能应用于手游测试当中,开启 AI 手游自动化测试时代。2017 ChinaJoy WeTest 展台上火爆的贪吃蛇 AI 互动展示,正是这一探索的成果之一。
腾讯游戏的 QA 团队,对于更高质量手游的追求从未停歇过,如今 AI 大火,技术上也有比较大的进步以及成熟的框架,这也给手游的自动化测试带来很多新的可能性,目前腾讯内部也有不少团队在积极研究手游的 AI 自动化测试,大体上分为两种,一种是让 AI 模型可以测试绝大多数的手游;另一种则是基于特定的手游做更细更有针对性的 AI 测试模型。
手游自动化测试最重要的核心,在于如何让电脑更智能的模拟真人的操作行为。一套基于深度学习的 AI 自动游戏系统,可以通过迭代训练,让机器自己做出动作决策,从而完成一系列的游戏操作。
AI 自动游戏系统主要由 4 部分组成,说明如下:
● 处理模块 1:负责和手机交互,UI 自动化操作,管理,结果记录和存储等;
● 处理模块 2:负责游戏 UI 界面的识别;
● 处理模块 3:负责识别一局游戏内的物体和数据等;
● 处理模块 4:负责决策玩游戏的动作决策,采用深度强化学习算法;
AI 自动游戏系统整体框架如下图:
以天天酷跑游戏的 AI 自动化测试为例,整个测试过程主要分为前期训练、接入测试、性能与结构反馈三个步骤:
前期训练
前期训练得到神经网络的权值(文件),后面测试只需要让神经网络加载这个权值(文件)就可输出学习到的动作决策,达到自动玩游戏的目的。
系统采用特定算法对模型进行训练。训练结果如下图,横坐标是玩的游戏局数,纵坐标是一局跑的里程数。整个训练过程共进行了上万局游戏,随着训练的次数增多,每局的里程数也在上升。
接入测试
天天酷跑游戏运行在 WeTest 云真机上,自动化进程和云真机交互,实时抓取游戏画面数据。
进入游戏后,检测进程识别游戏画面中的物体和数据,例如天天酷跑中的台阶、坑、柱子等物体信息以及距离等数值信息。游戏画面和识别出的物体和数据最终发给深度学习进程作为输入,深度学习进程的输出就是执行玩游戏的动作,例如天天酷跑中就是 “下蹲”、“起身”、“跳跃” 等。
一局游戏结束后,再重复上述的过程进行下一局测试。
性能和结果数据
AI 在玩游戏的同时,系统可以获取手机的性能数据和游戏的结果数据,并在网页端进行展示。
如下图所示,每一行对应天天酷跑一局游戏,分别展示了手机 CPU 利用率,内存使用量,电池电量,温度,玩一局跑的里程数和游戏时间以及死亡前的游戏画面。
除了天天酷跑,AI 自动游戏系统已接入腾讯多项精品游戏的测试工作。
使用 AI 自动游戏系统进行手游测试,游戏厂商可以借助 AI 的智能轻松实现类似于人工测试时在真机上玩游戏的过程,节省大量的测试人力成本。
随着人工智能技术的飞速发展,简单机械的游戏测试工作必将逐步向自动化、智能化转移。腾讯 WeTest 作为游戏质量的守护者,将为游戏开发者们提供操作更加便捷高效的 AI 自动化测试方案,让游戏开发者能更多地专注于游戏创意性、可玩性、操作习惯等更需要创意的环节,为游戏创造更大的价值。
腾讯 WeTest 是腾讯游戏官方推出的一站式游戏测试平台,用十年腾讯游戏测试经验帮助广大开发者对游戏开发全生命周期进行质量保障。腾讯 WeTest 提供:适配兼容测试;云端真机调试;安全测试;耗电量测试;服务器性能测试;舆情分析等服务。
点击地址:http://wetest.qq.com/立即体验!