作者:周大军/孙大伟, 腾讯后台开发 高级工程师 
商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。 


WeTest导读

做好自动化测试从来不件容易的事情,更何况是手游的自动化测试,相比传统的APP,手游画面纯OPENGL绘制无可识别控件,且界面动画多、随机性大。举个例子,拿新手引导来说,手游中新账号试玩会有一系列的新手引导,当新手引导过程通过之后,后面就不会再出现,但当账号升级到一定等级,又会出现新玩法的新手引导。且手游的版本迭代非常快,平均1-2周就会出一个版本,界面也经常发生变化,这些都给自动化测试带来很多障碍。

为解决手游自动化测试的这一瓶颈,腾讯WeTest依托腾讯人工智能研究的技术优势,率先尝试将基于深度学习的人工智能应用于手游测试当中,开启AI手游自动化测试时代。2017 ChinaJoy WeTest展台上火爆的贪吃蛇AI互动展示,正是这一探索的成果之一。

AI自动化测试系统,开启手游测试新风向

腾讯游戏的QA团队,对于更高质量手游的追求从未停歇过,如今AI大火,技术上也有比较大的进步以及成熟的框架,这也给手游的自动化测试带来很多新的可能性,目前腾讯内部也有不少团队在积极研究手游的AI自动化测试,大体上分为两种,一种是让AI模型可以测试绝大多数的手游;另一种则是基于特定的手游做更细更有针对性的AI测试模型。

1、AI自动化测试系统的处理过程

手游自动化测试最重要的核心,在于如何让电脑更智能的模拟真人的操作行为。一套基于深度学习的AI自动游戏系统,可以通过迭代训练,让机器自己做出动作决策,从而完成一系列的游戏操作。

AI自动游戏系统主要由4部分组成,说明如下: 
● 处理模块1:负责和手机交互,UI自动化操作,管理,结果记录和存储等; 
● 处理模块2:负责游戏UI界面的识别; 
● 处理模块3:负责识别一局游戏内的物体和数据等; 
● 处理模块4:负责决策玩游戏的动作决策,采用深度强化学习算法;

AI自动游戏系统整体框架如下图: 

以天天酷跑为例,看AI自动化测试实战演练

以天天酷跑游戏的AI自动化测试为例,整个测试过程主要分为前期训练、接入测试、性能与结构反馈三个步骤:

前期训练 
前期训练得到神经网络的权值(文件),后面测试只需要让神经网络加载这个权值(文件)就可输出学习到的动作决策,达到自动玩游戏的目的。

系统采用特定算法对模型进行训练。训练结果如下图,横坐标是玩的游戏局数,纵坐标是一局跑的里程数。整个训练过程共进行了上万局游戏,随着训练的次数增多,每局的里程数也在上升。 

接入测试 
天天酷跑游戏运行在WeTest云真机上,自动化进程和云真机交互,实时抓取游戏画面数据。

进入游戏后,检测进程识别游戏画面中的物体和数据,例如天天酷跑中的台阶、坑、柱子等物体信息以及距离等数值信息。游戏画面和识别出的物体和数据最终发给深度学习进程作为输入,深度学习进程的输出就是执行玩游戏的动作,例如天天酷跑中就是“下蹲”、“起身”、“跳跃”等。

一局游戏结束后,再重复上述的过程进行下一局测试。 

性能和结果数据 
AI在玩游戏的同时,系统可以获取手机的性能数据和游戏的结果数据,并在网页端进行展示。

如下图所示,每一行对应天天酷跑一局游戏,分别展示了手机CPU利用率,内存使用量,电池电量,温度,玩一局跑的里程数和游戏时间以及死亡前的游戏画面。 

除了天天酷跑,AI自动游戏系统已接入腾讯多项精品游戏的测试工作。

腾讯WeTest携AI自动化手游测试,为游戏创造更大价值

使用AI自动游戏系统进行手游测试,游戏厂商可以借助AI的智能轻松实现类似于人工测试时在真机上玩游戏的过程,节省大量的测试人力成本。

随着人工智能技术的飞速发展,简单机械的游戏测试工作必将逐步向自动化、智能化转移。腾讯WeTest作为游戏质量的守护者,将为游戏开发者们提供操作更加便捷高效的AI自动化测试方案,让游戏开发者能更多地专注于游戏创意性、可玩性、操作习惯等更需要创意的环节,为游戏创造更大的价值。


关于腾讯WeTest (wetest.qq.com)

腾讯WeTest是腾讯游戏官方推出的一站式游戏测试平台,用十年腾讯游戏测试经验帮助广大开发者对游戏开发全生命周期进行质量保障。腾讯WeTest提供:适配兼容测试;云端真机调试;安全测试;耗电量测试;服务器性能测试;舆情分析等服务。

点击地址:http://wetest.qq.com/立即体验!

 

最新文章

  1. java 运算符使表达式结果类型自动提升
  2. js常用的地址栏参数获取
  3. j2ee ehcache
  4. Android使用Webview加载网页
  5. 阿里云 RDS 怎么保证高可用性
  6. BOOST 线程完全攻略 - 基础篇
  7. STL的一些泛型算法
  8. 浅谈canvas绘画王者荣耀--雷达图
  9. Windows Azure Platform Introduction (14) 申请海外的Windows Azure账户
  10. HttpWebRequest,HttpWebResponse C# 代码调用webservice,参数为xml
  11. Servlet之cookie处理
  12. eclipse汉化链接
  13. SQL Server作业报错特殊案例
  14. idea中经常用到的快捷键
  15. Windows和Linux下 Java开发ping工具类
  16. c++中利用localtime_s函数格式化输出当地日期与时间
  17. dojo:如何显示ListBox风格的选择框
  18. java通过接口扩展枚举
  19. JUC源码1-原子量
  20. 【进阶修炼】——改善C#程序质量(7)

热门文章

  1. 【javascript】数组的操作
  2. 初识RabbitMQ系列之一:简单介绍
  3. 关于javascript在OJ系统上编程的注意事项
  4. 定时任务FluentScheduler 学习笔记 .net
  5. SSE再学习:灵活运用SIMD指令6倍提升Sobel边缘检测的速度(4000*3000的24位图像时间由180ms降低到30ms)。
  6. 聪聪和可可[NOI2005]
  7. mybatis example使用 and和or联合查询(转)
  8. T-SQL笔记总结(1)
  9. Typescript 解构 、展开
  10. ASP.NET程序运行出现WebDev.WebServer40.exe已停止工作解决方法(netsh winsock reset)