百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

国内首创!伏羲×雷火再发力,AI加盟任务回归测试

liebian365 2024-10-14 22:14 73 浏览 0 评论

伏羲实验室一直以来致力于用人工智能点亮游戏未来,而这次,伏羲又将目光投向游戏测试领域,全力打造“智能任务回归测试”!

此次伏羲实验室与雷火测试中心合作,为游戏测试环节节省了大量的人力、财力、物力:减少重复劳动,提高测试效率,QA得到了一定程度的解放。在机器与技术的帮助下,人得以更高效地做更有意义的事情——这是伏羲一直以来的初衷与愿景。

你能想象在游戏测试上花费的时间已经可以从“周/天”的单位直接缩减为“小时”吗?

你能想象游戏测试工程师(QA)只需用3周时间就能完成一款mmorpg游戏近400个任务的接入吗?

你能想象AI能帮助每天定时对3个build版本进行全天候回归,不放过任何一个可能的问题吗?

是的,伏羲团队努力的结果将对游戏测试行业带来不小的增益。在“精简”与“高效”的理念下,团队将任务回归测试建模成序列决策问题,从而可以借用强化学习等AI技术来解决相关问题。通俗来说,此项创新最直接的效果便是今后在任务测试上只需要花费一顿饭的时间,AI就能帮助QA完成所需工作。

通过伏羲×雷火的此番新尝试,智能任务回归测试的四大新优势得以凸显:

1、效率高,节省时间和人力

2、任务覆盖率高

3、任务变更、新增自动覆盖

4、易集成到现有的任务测试框架

总而言之,对比脚本任务回归,伏羲实验室成功实现了大幅提升任务回归效率的最初愿景,将回归所需时间进行了缩减,真正做到为QA减负。

未来已来。让我们在AI技术风起云涌的浪潮中,共看伏羲如何抓准痛点、精准创新,推动游戏测试走向新的进程!

那么,接下来让我们具体了解伏羲如何打造“智能任务回归测试”。

一、创意铺垫与来源

近年来,AI技术浪潮在游戏领域已经大有表现,伏羲实验室也紧跟时代热点和未来导向,致力于用人工智能点亮游戏未来。

在此之前,伏羲实验室已陆续推出伏羲强化学习AI、伏羲智能捏脸、伏羲游戏反外挂等,AI加盟游戏领域的效果好评如潮。既然如此,AI是否又可应用在游戏测试领域,帮助解决游戏测试固有的繁杂难题呢?

基于此问题,大家可以先回顾现有的AI技术自己玩游戏的实例:下围棋的Alpha Go、玩星际的AlphaStar、撸Dota的OpenAI Five,这些技术都展现出了强大的操作水平、甚至超过真人顶尖玩家水平。那么相同的,如果能将这些“自动玩游戏”的AI技术应用到游戏测试中,就有可能帮助QA完成一些日常测试。

——为此,伏羲实验室联合雷火测试中心分析整理了目前游戏测试过程中的痛点并对需求进行分类,目前正尝试将AI技术应用在回归测试、角色平衡性测试以及覆盖性测试等方面,并不断完善智能测试技术方案和框架系统。

在任务回归测试改进上,伏羲×雷火大获成功,国内首创AI技术助力测试智能化,高效解决了“任务数目太多导致任务时长很长,人工回归工作量太大”和“游戏版本迭代快,每一个版本迭代都需要人工回归会加重工作量”的问题!

二、创意落地任务回归测试

简单来讲,游戏测试工作就是QA在游戏开发过程中,对每一个build版本进行严格测试和试玩,找到潜在的bug并及时进行修补,确保游戏顺利开发、保证游戏质量的过程。

游戏测试的重要程度不言而喻,如果任由bug存在在游戏中,那么等游戏上线后,任何一个潜藏的bug都可能会被玩家利用,并不断传播无限放大。这对游戏运营将造成巨大的损失,也会让游戏中的玩家倍感扫兴,失去游戏体验。

经过伏羲和雷火测试中心的沟通与合作,发现如下的潜在测试场景可以加入AI以提升效果:回归测试、平衡性测试和覆盖性测试。其中,回归测试又可细分为任务回归测试和战斗场景回归测试。而我们本次尝试也主要落脚在任务回归测试。

·问:那么为什么说任务回归测试需要利用AI技术来帮助实现智能化呢?

·答:因为这和任务回归测试本身的繁杂性有关——

在MMORPG游戏中,剧情任务系统是它的基石。剧情任务经常要求玩家在游戏中跑来跑去、寻找各种NPC,完成各种任务获取经验或者金钱。此外,大多MMORPG游戏除了会有主线任务,还有支线任务,甚至还有隐藏任务或者奇遇任务等类型。

而任务回归测试就是指游戏版本发生变化后,QA需要对游戏内所有任务重新玩一遍,以保证每个任务还是能够按照设计的流程在规定的时间内完成。一旦某个任务卡住就说明这个任务受到可能存在的bug的影响,上线之后同样也会导致玩家无法继续游戏。

对于当前游戏测试行业来说,如果游戏世界中纷繁的任务都需要QA手动测试,那基本是天方夜谭,一是因为任务数目太多导致任务时间长,人工回归工作量太大;二是因为游戏版本迭代快,每一个版本迭代都需要人工回归更会加重工作量。

所以大多数游戏项目都会搭建自动化回归测试,也就是写好每个任务的执行脚本,然后定期执行对应的脚本。然而,这还不够。在这种方法下,人力投入依旧是巨大的,因为它需要针对每一个任务单独编写测试脚本,而且任务发生变化之后需要更新对应的脚本。

伏羲实验室正是看到了此间的需求与痛点,于是全力打造更好的解决方案——智能任务回归测试!

三、智能任务回归测试详述

伏羲实验室再发力,首创AI交互游戏测试:AI算法充当Tester,它通过和游戏不断交互,获取游戏状态、发送游戏操作,以完成剧情任务。

这个说法是不是非常熟悉?的确,其实这就是仿照人类玩家“玩游戏”的过程完成的建模。这样的建模方式十分通用,只要设计出AI算法能够以这样的方式完成剧情任务,那么这个AI算法就有可能可以举一反三地完成各种任务,而不需要针对每个任务写回归测试脚本了。

当然,虽然这看起来简单,但是很多细节不容忽视。首先,伏羲团队需要对具体的“游戏状态”和“动作”进行定义:

游戏状态:游戏状态的定义依然仿造真人玩家玩游戏,它包括当前界面上能看到的信息,如下图所示:

动作:动作的定义和真人玩家玩游戏有所不同,它不是通过鼠标键盘来操作游戏,而是通过游戏提供的内部接口实现。

定义好状态和动作之后,在AI算法的眼里剧情任务就已经不再是一个MMORPG玩法,而是一个五子棋游戏,甚至更简单地可以当做一个迷宫游戏。

AI需要不断尝试搜索找到一个操作序列能够完成游戏剧情任务,就像找到一条路径从迷宫的起点到达终点。对于这样的游戏,大家都可以通过不断扩展动作选择建立一个类似五子棋游戏的搜索树。

当然对于绝大多数剧情任务,其对应的搜索树都没有上图那么复杂。训练算法随机选择在当前状态下可以执行的动作,然后一旦发现在某次尝试之后任务已被完成,那接下来基于所收集的样本数据就可以找到到达终点的最短路径(对应可以完成任务的操作序列)。一旦完成训练找到所有剧情任务对应的操作序列,后续回归测试的过程就会十分简单,只需要不断的重复这个操作系列。

总而言之,到此为止,AI算法可以说是克服了脚本自动化回归测试的不足,任务调整或新增之后也不需要重新修改或编写脚本了,只需要让搜索算法重新构建任务图并找到完成新任务的操作序列。

四、智能任务回归测试效果

当发现AI算法已经能够完成绝大部分剧情任务之后,伏羲团队便迫不及待地把算法应用到真实的游戏场景中,如下图所示整个方案可以分为两个阶段:训练阶段负责运行训练算法找到完成任务的操作序列;回归阶段只负责操作序列回放,同时游戏端根据回归情况生成测试分析报告。

通过AI加盟任务回归测试,产品在具体游戏中“大展身手”:

任务回归服务已覆盖《逆水寒》的290个主线任务和220多个支线任务,每天定时对3个build版本进行全天候回归,不放过任何一个可能的问题。目前已帮项目组揪出10余个深度隐藏的bug,其中还在“青云寨”新剧情任务上线前发现了一些重要的bug,避免游戏带bug上线。

下面的视频展示了AI算法完成《逆水寒》剧情任务的过程,动图右边的动作序列是AI自行搜索到地可完成该任务的动作序列。

在某款mmorpg游戏上只用了3周时间就完成了接近400个任务的接入,并且随着接口的完善后续接入速度也会越来越快,甚至无需修改直接接入。

同时,伏羲通过不断总结踩坑的经验优化方案,使得方案比较容易推广到其它MMORPG游戏,基本解决每一款游戏的剧情任务不完全一样,导致动作集合和状态集合都会有所不同的问题。当然,这套方案也是需要游戏测试团队一起来适配原有的自动化测试框架的。

五、后续期待

第二点中提到,伏羲团队目前对游戏测试需求进行了一些划分:回归测试,角色平衡性测试,覆盖性测试。虽然目前团队在任务回归测试有一些进展,但这只是一个开始。

今后伏羲实验室将会不懈地针对这些问题和场景进行尝试,希望未来能够构建更加智能的测试系统,让AI技术赋能游戏测试,敬请期待后续工作!

网易伏羲人工智能实验室http://fuxi.163.com/

相关推荐

go语言也可以做gui,go-fltk让你做出c++级别的桌面应用

大家都知道go语言生态并没有什么好的gui开发框架,“能用”的一个手就能数的清,好用的就更是少之又少。今天为大家推荐一个go的gui库go-fltk。它是通过cgo调用了c++的fltk库,性能非常高...

旧电脑的首选系统:TinyCore!体积小+精简+速度极快,你敢安装吗

这几天老毛桃整理了几个微型Linux发行版,准备分享给大家。要知道可供我们日常使用的Linux发行版有很多,但其中的一些发行版经常会被大家忽视。其实这些微型Linux发行版是一种非常强大的创新:在一台...

codeblocks和VS2019下的fltk使用中文

在fltk中用中文有点问题。英文是这样。中文就成这个样子了。我查了查资料,说用UTF-8编码就行了。edit->Fileencoding->UTF-8然后保存文件。看下下边的编码指示确...

FLTK(Fast Light Toolkit)一个轻量级的跨平台Python GUI库

FLTK(FastLightToolkit)是一个轻量级的跨平台GUI库,特别适用于开发需要快速、高效且简单界面的应用程序。本文将介绍Python中的FLTK库,包括其特性、应用场景以及如何通过代...

中科院开源 RISC-V 处理器“香山”流片,已成功运行 Linux

IT之家1月29日消息,去年6月份,中科院大学教授、中科院计算所研究员包云岗,发布了开源高性能RISC-V处理器核心——香山。近日,包云岗在社交平台晒出图片,香山芯片已流片,回片后...

Linux 5.13内核有望合并对苹果M1处理器支持的初步代码

预计Linux5.13将初步支持苹果SiliconM1处理器,不过完整的支持工作可能还需要几年时间才能完全完成。虽然Linux已经可以在苹果SiliconM1上运行,但这需要通过一系列的补丁才能...

Ubuntu系统下COM口测试教程(ubuntu port)

1、在待测试的板上下载minicom,下载minicom有两种方法:方法一:在Ubuntu软件中心里面搜索下载方法二:按“Ctrl+Alt+T”打开终端,打开终端后输入“sudosu”回车;在下...

湖北嵌入式软件工程师培训怎么选,让自己脱颖而出

很多年轻人毕业即失业、面试总是不如意、薪酬不满意、在家躺平。“就业难”该如何应对,参加培训是否能改变自己的职业走向,在湖北,有哪些嵌入式软件工程师培训怎么选值得推荐?粤嵌科技在嵌入式培训领域有十几年经...

新阁上位机开发---10年工程师的Modbus总结

前言我算了一下,今年是我跟Modbus相识的第10年,从最开始的简单应用到协议了解,从协议开发到协议讲解,这个陪伴了10年的协议,它一直没变,变的只是我对它的理解和认识。我一直认为Modbus协议的存...

创建你的第一个可运行的嵌入式Linux系统-5

@ZHangZMo在MicrochipBuildroot中配置QT5选择Graphic配置文件增加QT5的配置修改根文件系统支持QT5修改output/target/etc/profile配置文件...

如何在Linux下给zigbee CC2530实现上位机

0、前言网友提问如下:粉丝提问项目框架汇总下这个网友的问题,其实就是实现一个网关程序,内容分为几块:下位机,通过串口与上位机相连;下位机要能够接收上位机下发的命令,并解析这些命令;下位机能够根据这些命...

Python实现串口助手 - 03串口功能实现

 串口调试助手是最核心的当然是串口数据收发与显示的功能,pzh-py-com借助的是pySerial库实现串口收发功能,今天痞子衡为大家介绍pySerial是如何在pzh-py-com发挥功能的。一、...

为什么选择UART(串口)作为调试接口,而不是I2C、SPI等其他接口

UART(通用异步收发传输器)通常被选作调试接口有以下几个原因:简单性:协议简单:UART的协议非常简单,只需设置波特率、数据位、停止位和校验位就可以进行通信。相比之下,I2C和SPI需要处理更多的通...

同一个类,不同代码,Qt 串口类QSerialPort 与各种外设通讯处理

串口通讯在各种外设通讯中是常见接口,因为各种嵌入式CPU中串口标配,工业控制中如果不够还通过各种串口芯片进行扩展。比如spi接口的W25Q128FV.对于软件而言,因为驱动接口固定,软件也相对好写,因...

嵌入式linux为什么可以通过PC上的串口去执行命令?

1、uboot(负责初始化基本硬bai件,如串口,网卡,usb口等,然du后引导系统zhi运行)2、linux系统(真正的操作系统)3、你的应用程序(基于操作系统的软件应用)当你开发板上电时,u...

取消回复欢迎 发表评论: