作者:周大军/孙大伟, 腾讯后台开发 高级工程师 
商业转载请联系腾讯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/立即体验!

 

为测试赋能,腾讯WeTest探索手游AI自动化测试之路的更多相关文章

  1. 打造游戏金融小程序行业测试标准腾讯WeTest携各专家共探品质未来

    在获客成本不断上升的时代里,产品品质愈发是互联网应用的决胜标准.随着用户需求更加多样,开发者不仅要深挖应用功能,更需要面向业务所在领域,建立全面.专业的测试架构,掌控开发进度.提高开发效率,才能在互联 ...

  2. AirtestIDE实践一:梦幻西游手游师门任务自动化

    Airtest Project是网易自研的游戏自动化项目.Airtest IDE是这个项目的一个IDE,就像Eclipse.Pycharm一样,是一个集成开发工具.Airtest框架是一个基于Open ...

  3. python selenium自动化测试之路(1)--分层测试概念、selenium工具介绍

    1.分层自动化测试概念 传统的自动化市场更关注产品UI层的自动化测试,而分层的自动化测试倡导产品开发的不同阶段都需要自动化测试 大多公司与研发团队其实是忽略了单元测试与集成测试阶段的自动化测试工作,所 ...

  4. 打造移动应用与游戏安全防线,腾讯WeTest安全服务全线升级

    当移动互联网渗透到千家万户,与工业控制.智慧交通.实时社交.休闲娱乐紧密结合时,应用安全就变得尤为重要. 尤其在网络强相关的APP流行年代,当APP应用客户端上传与获取信息,大多通过接口在服务器双向通 ...

  5. 如何快速优化手游性能问题?从UGUI优化说起

    WeTest 导读   本文作者从自身多年的Unity项目UI开发及优化的经验出发,从UGUI,CPU,GPU以及unity特有资源等几个维度,介绍了unity手游性能优化的一些方法.   在之前的文 ...

  6. 建一座安全的“天空城” ——揭秘腾讯WeTest如何与祖龙共同挖掘手游安全漏洞

    作者:腾讯WeTest手游安全测试团队商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. WeTest导读 <九州天空城3D>上线至今,长期稳定在APP Store畅销排行的前 ...

  7. 腾讯WeTest发布《2017中国移动游戏质量白皮书》,专注手游品质提升

    1月8日,腾讯质量开放平台WeTest正式发布<2017中国移动游戏质量白皮书>. 刚刚过去的这一年,市场逐渐成熟,中国移动互联网由增量市场转向存量市场.中国移动游戏市场急剧变化,真正的精 ...

  8. 质造未来,首届腾讯WeTest技术交流开放日成功举办

    WeTest 导读 北京时间12月21日下午1点整,2018年度腾讯WeTest技术交流开放日在上海举办.盛大.巨人.电魂.bilibili.方趣等十余家来自不同优秀企业的测试技术负责人均来到现场,共 ...

  9. 改革春风吹满地,安卓新系统Q上线腾讯WeTest

    “刚要适配安卓派,Q就来了.” 3月14日谷歌推出了期待已久的Android Q的首个测试版本Android Q Beta 1 ,这是Android系统推出以来的第十个大版本. 安卓Q相比之前的版本, ...

随机推荐

  1. Go语言学习笔记(六)net

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 net import "net" net包提供了可移植的网络I/O接口,包括TCP/IP.UD ...

  2. [补档]从OI学麻将

    背景 作为一名川娃子,怎么能不懂麻将呢= = T1 さきなに~~ [咲 -Saki-] 天才麻将少女什么编 题目 二十一世纪,世界上的麻将竞技人数超过一亿,日本每年也有大规模的全国大赛来对麻将选手进行 ...

  3. appach-maven-3.5.0配置与下载

    今天需要搭建javaweb开发的环境,需要配置maven.弄了半天终于配置好了.蛋疼的一批.楼主用的是win10的系统.不知道Linux下的也是不是这么坑! 首先,需要把maven的包下载下来.进入h ...

  4. ExtJs 思维导图

    搭建环境: 1. 建tomcat , eclipse2. 复制 Extjs 到 项目的 webcontent下 (建议用自己一个熟悉的Extjs版本,我用Ext JS 4.2), 备份一个ext目录, ...

  5. QTextEdit控件使用

    QTextEdit控件使用 QTextEdit *mpContentTextEdit = new QTextEdit(this); //设置占位符文本 mpContentTextEdit->se ...

  6. 使用requests模块爬虫

    虽然干技术多年了,但从没有写过博客,想来甚是惭愧,本篇作为我博客的第一篇,也是测试篇.不为写的好,只为博诸君一眸而已. 使用python爬虫,有几个比较常用的,获取html_content的模块url ...

  7. 爬取西刺ip代理池

    好久没更新博客啦~,今天来更新一篇利用爬虫爬取西刺的代理池的小代码 先说下需求,我们都是用python写一段小代码去爬取自己所需要的信息,这是可取的,但是,有一些网站呢,对我们的网络爬虫做了一些限制, ...

  8. MSPointerEvent属性

    MSPointerEvent属性 属性 描述 hwTimestamp 创建事件的时间(ms) isPrimary 标识该指针是不是主指针 pointerId 指针的唯一ID(类似于触摸事件的标识符) ...

  9. Swift语言中与C/C++和Java不同的语法(一)

    ---恢复内容开始--- Swift作为苹果官方推出的IOS开发的推荐语言,在过去的几年间受到了越来越广泛的关注,其实编程的人都知道,不同的编程语言大同小异,掌握一门新的语言关键是了解它与其它语言不同 ...

  10. MySQL GROUP BY多个字段分组用法详解

    mysql语句中group by 很容易理解 是分组查询.比如 select sum(score) from user group by name 意思是查询每个人的分数总和但是, select su ...