伏羲實驗室一直以來致力於用人工智慧點亮遊戲未來,而這次,伏羲又將目光投向遊戲測試領域,全力打造「智能任務回歸測試」。
此次伏羲實驗室與雷火測試中心的合作,可以為遊戲測試環節節省大量的人力、財力、物力:減少重複勞動,提高測試效率,QA得到了一定程度的解放。在機器與技術的幫助下,人得以更高效地做更有意義的事情——這是伏羲一直以來的初衷與願景。
你能想像在遊戲測試上花費的時間已經可以從「周/天」的單位直接縮減為「小時」嗎?
你能想像遊戲測試工程師(QA)只需用3周時間就能完成一款mmorpg遊戲近400個任務的接入嗎?
你能想像AI能幫助每天定時對3個build版本進行全天候回歸,不放過任何一個可能的問題嗎?
這次伏羲團隊努力的結果將對遊戲測試行業帶來不小的增益。在「精簡」與「高效」的理念下,團隊將任務回歸測試建模成序列決策問題,從而可以借用強化學習等AI技術來解決相關問題。通俗來說,此項創新最直接的效果便是今後在任務測試上只需要花費一頓飯的時間,AI就能幫助QA完成所需工作。
通過伏羲×雷火的此番新嘗試,智能任務回歸測試的四大新優勢得以凸顯:
1、效率高,節省時間和人力
2、任務覆蓋率高
3、任務變更、新增自動覆蓋
4、易集成到現有的任務測試框架
總而言之,對比腳本任務回歸,伏羲實驗室成功實現了大幅提升任務回歸效率的最初願景,將回歸所需時間進行了縮減,真正做到為QA減負。
那麼,接下來讓我們具體了解伏羲如何打造「智能任務回歸測試」。
一、創意鋪墊與來源
近年來,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需要不斷嘗試搜索找到一個操作序列能夠完成遊戲劇情任務,就像找到一條路徑從迷宮的起點到達終點。對於這樣的遊戲,大家都可以通過不斷擴展動作選擇建立一個類似五子棋遊戲(下圖gif)的搜索樹。
當然對於絕大多數劇情任務,其對應的搜索樹都沒有上圖那麼複雜。訓練算法隨機選擇在當前狀態下可以執行的動作,然後一旦發現在某次嘗試之後任務已被完成,那接下來基於所收集的樣本數據就可以找到到達終點的最短路徑(對應可以完成任務的操作序列)。一旦完成訓練找到所有劇情任務對應的操作序列,後續回歸測試的過程就會十分簡單,只需要不斷的重複這個操作系列。
總而言之,到此為止,AI算法可以說是克服了腳本自動化回歸測試的不足,任務調整或新增之後也不需要重新修改或編寫腳本了,只需要讓搜索算法重新構建任務圖並找到完成新任務的操作序列。
四、智能任務回歸測試效果
當發現AI算法已經能夠完成絕大部分劇情任務之後,伏羲團隊便迫不及待地把算法應用到真實的遊戲場景中,如圖所示整個方案可以分為兩個階段:訓練階段負責運行訓練算法找到完成任務的操作序列;回歸階段只負責操作序列回放,同時遊戲端根據回歸情況生成測試分析報告。
通過AI加盟任務回歸測試,產品在具體遊戲中「大展身手」:
任務回歸服務已覆蓋《逆水寒》的290個主線任務和220多個支線任務,每天定時對3個build版本進行全天候回歸,不放過任何一個可能的問題。目前已幫項目組揪出10餘個深度隱藏的bug,其中還在「青雲寨」新劇情任務上線前發現了一些重要的bug,避免遊戲帶bug上線。
可以去B站搜索伏羲實驗室,觀看AI算法完成《逆水寒》劇情任務的過程,動圖右邊的動作序列是AI自行搜索到地可完成該任務的動作序列。
在某款mmorpg遊戲上只用了3周時間就完成了接近400個任務的接入,並且隨著接口的完善後續接入速度也會越來越快,甚至無需修改直接接入。
同時,伏羲通過不斷總結踩坑的經驗優化方案,使得方案比較容易推廣到其它MMORPG遊戲,基本解決每一款遊戲的劇情任務不完全一樣,導致動作集合和狀態集合都會有所不同的問題。當然,這套方案也是需要遊戲測試團隊一起來適配原有的自動化測試框架的。
五、後續期待
第二點中提到,伏羲團隊目前對遊戲測試需求進行了一些劃分:回歸測試,角色平衡性測試,覆蓋性測試。雖然目前團隊在任務回歸測試有一些進展,但這只是一個開始。
今後伏羲實驗室將會不懈地針對這些問題和場景進行嘗試,構建更加智能的測試系統,讓AI技術賦能遊戲測試。