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

此次伏羲实验室与雷火测试中心合作,为游戏测试环节节省了大量的人力、财力、物力:减少重复劳动,提高测试效率,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技术赋能游戏测试,敬请期待后续工作!