產(chǎn)品體驗中心 下載與支持 產(chǎn)品社區(qū) 合作代理 |  咨詢電話:400-035-7887/021-6072 5088

怎么做游戲UI自動化測試?游戲UI自動化測試的方法

發(fā)布時間:2020-07-17

游戲UI自動化測試一般需要滿足幾個條件:UI相對穩(wěn)定、操作過程及結(jié)果可預(yù)期、產(chǎn)品生命周期長。

UI相對穩(wěn)定:是指UI元素及布局在各個版本間變動不大,各個UI元素的關(guān)鍵屬性(特別是用于唯一標識該UI元素的屬性)保持穩(wěn)定,其他屬性可以根據(jù)需要發(fā)生變化。因為測試腳本是直接操作這些UI元素的,如果UI不夠穩(wěn)定,測試腳本就無法定位UI元素,也無法有效的操控UI元素。

自動化測試

操作過程及結(jié)果可預(yù)期:是指交互的過程及預(yù)期結(jié)果是明確的,即使有操作分支也是有限的,可以很容易遍歷。這樣測試腳本的設(shè)計就比較簡單,基本是線性往下執(zhí)行。如果交互過程及預(yù)期結(jié)果不明確,有太多的隨機性,會大大增加腳本的邏輯復(fù)雜度。過于復(fù)雜的腳本邏輯對于測試人員的能力要求高,而且會提高測試腳本的后期維護成本。

產(chǎn)品生命周期長:因為UI自動化測試腳本的開發(fā)、維護成本都比較高,如果被測產(chǎn)品的生命周期太短,或者只發(fā)幾個版本,就會導(dǎo)致自動化測試的投入產(chǎn)出比太低。

基于上述UI自動化測試的要求,我們來看看游戲的情況,一般的游戲往往不具備上述條件,常常是:UI不穩(wěn)定:UI酷炫,各種特效,每個版本都會更新UI。

操作過程及結(jié)果很難預(yù)期:游戲戰(zhàn)斗過程充斥著各種隨機性和玩家操作的不確定性,導(dǎo)致預(yù)期結(jié)果需要復(fù)雜的實時計算才可以得出,無法提前預(yù)期。

生命周期短:很多游戲只有短短幾個月的生命周期。這些因素都導(dǎo)致了游戲的UI自動化測試成本太高。

確實很多游戲不適合做UI自動化測試,但是對于一些生命周期長、收入高的游戲投入人力做UI自動化測試還是很有價值的。而且隨著測試人員技能及測試工具能力的提升,一些普通游戲也可以開展部分UI自動化測試。

做任何UI自動化測試都要考慮投入產(chǎn)出比,我們就按投入產(chǎn)出比來從高到低來探討下游戲的UI自動化測試如何開展。

1、功能邏輯明確模塊UI自動化

游戲中一般只有戰(zhàn)斗模塊的功能邏輯各種不確定,其他輔助模塊的功能邏輯都是比較明確的,比如登錄、商城、背包、設(shè)置、社區(qū)等都跟普通的商業(yè)軟件沒有什么區(qū)別。

針對這些模塊可以很方便的實施UI自動化測試,而且這些輔助模塊占游戲的全部UI功能的比例也很高,實現(xiàn)UI自動化測試具有很高價值。

對于這些相對功能邏輯明確的UI模塊,實施自動化測試成本是最低的,幾乎不需要改動游戲代碼,只需要在引擎一級簡單修改就可以實現(xiàn)UI自動化測試。

2、簡單狀態(tài)機實現(xiàn)兼容測試UI自動化

目前針對游戲的兼容性測試有:簡單的monkey test、事件錄制回放。但是這兩種方式有明顯的不足:

簡單的monkey test:只是隨機的點擊UI,沒有UI元素屬性獲取能力,更沒有UI驅(qū)動能力,無法做邏輯判斷,覆蓋的UI深度是有限的。連簡單的登錄都登錄不了,更不要說更深的UI。

事件錄制回放:通過事件錄制、回放來實現(xiàn)簡單hardcode的UI自動化,也不具備UI元素屬性獲取能力,只要UI發(fā)生簡單變化就會導(dǎo)致自動化失敗。

針對這兩種方式的不足,利用基于引擎的UI驅(qū)動能力,可以開啟一個子線程實時檢測當前UI狀態(tài),根據(jù)不同的UI狀態(tài)在主線程中執(zhí)行適用于當前狀態(tài)的功能腳本即可實現(xiàn)相對穩(wěn)定的UI兼容性測試。

舉個簡單的例子:以UI狀態(tài)來劃分一般游戲中會有登錄、公告、主界面、對局、結(jié)算等UI狀態(tài)。

如果子線程檢測到當前UI是登錄,則主線程執(zhí)行登錄相關(guān)腳本;

如果子線程檢測到當前UI是公告,則主線程執(zhí)行公告相關(guān)腳本;

如果子線程檢測到當前UI是主界面,則執(zhí)行啟動對局相關(guān)腳本;

如果子線程檢測到當前UI是對局,則執(zhí)行對局相關(guān)腳本(或monkey test或回放錄制的腳本);

如果子線程檢測到當前UI是結(jié)算,則執(zhí)行結(jié)算相關(guān)腳本。

利用基于引擎的UI驅(qū)動能力,可以獲取、操作UI元素,再結(jié)合一定的的邏輯判斷就可以覆蓋更多/更深的UI,非常適合兼容性測試。

通過簡單狀態(tài)級實現(xiàn)兼容測試UI自動化也幾乎不需要改動游戲代碼,只在引擎一級簡單修改就可以實現(xiàn)。

3、結(jié)合接口實現(xiàn)實時性要求比較低的游戲的UI自動化

對于一些卡牌類游戲或者實時性要求不高的游戲,由于UI比較簡單,戰(zhàn)斗交互不復(fù)雜,實時性要求并不高。結(jié)合開發(fā)人員或者測試人員實現(xiàn)的一些接口,再加上基于引擎的UI驅(qū)動能力就可以實現(xiàn)功能測試的UI自動化。

如果有了關(guān)卡數(shù)據(jù)獲取接口,通過該接口在進入戰(zhàn)斗前獲取到關(guān)卡數(shù)據(jù),再結(jié)合戰(zhàn)斗過程中的UI表現(xiàn),通過一定的邏輯判斷就可以實現(xiàn)戰(zhàn)斗過程的UI自動化。

如果有了結(jié)算數(shù)據(jù)獲取接口,通過該接口在戰(zhàn)斗結(jié)束后獲取該局的結(jié)算數(shù)據(jù),再獲取結(jié)算UI顯示數(shù)據(jù)即可以驗證結(jié)算結(jié)果UI顯示是否正確。

這種方式只需要游戲提供接口,可能會需要改動游戲代碼,如果通過協(xié)議截獲的方式對游戲程序影響最小,那么對UI的驅(qū)動基本不需要改動游戲代碼,只在引擎一級簡單修改即可實現(xiàn)。

4、結(jié)合AI實現(xiàn)實時性要求很高的游戲的UI自動化

對于一些復(fù)雜的,對實時性要求很高的動作類游戲,比如格斗、射擊類游戲,則建議結(jié)合AI來實現(xiàn)UI自動化測試。AI實現(xiàn)對實時性要求很高的戰(zhàn)斗過程的自動化,并對外提供接口用以獲取戰(zhàn)斗數(shù)據(jù)。

利用基于引擎的UI驅(qū)動能力實現(xiàn)其他模塊的自動化,結(jié)合AI實現(xiàn)戰(zhàn)斗模塊的自動化,從而實現(xiàn)整個游戲的UI自動化測試。

可能會有人認為:既然有了AI,就可以完全用AI實現(xiàn)自動化測試。

但是UI自動化測試不僅僅需要UI驅(qū)動能力,還需要自動化測試框架提供調(diào)度、執(zhí)行、統(tǒng)計、展示等功能,這些功能顯然不適合讓AI來實現(xiàn)。AI最適合實現(xiàn)戰(zhàn)斗的驅(qū)動及對外提供游戲數(shù)據(jù)獲取接口。AI一般集成在游戲內(nèi)部,顯然不適合用來完成整個游戲的自動化測試功能。

結(jié)合AI實現(xiàn)的UI自動化成本是最高的,需要開發(fā)AI代碼,好在一般具有一定規(guī)模的游戲開發(fā)團隊也都會自己開發(fā)AI來做一些開發(fā)自測或者作為內(nèi)掛提供游戲托管功能,所以只需要在這些已有的AI上擴展一些功能即可,成本也是可控的。

以上就是對游戲UI自動化測試的一些想法,各個游戲可以根據(jù)各自項目的情況有選擇性的實施投入產(chǎn)出比可控的UI自動化測試。

推薦閱讀:

Web UI自動化測試框架哪個好?WebUI自動化測試框架如何分層?

如何開展 UI 自動化測試?UI自動化測試流程

界面自動化測試工具有哪些?常用UI自動化工具推薦

如何進行前端自動化測試?如何選擇前端頁面自動化測試工具?

Selenium自動化測試框架中常見異常分析及解決方案

本文內(nèi)容不用于商業(yè)目的,如涉及知識產(chǎn)權(quán)問題,請權(quán)利人聯(lián)系SPASVO小編(021-60725088-8054),我們將立即處理,馬上刪除。
滬ICP備07036474號 2003-2024 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.
微信
咨詢

添加客服微信 歡迎咨詢測試工具和測試服務(wù)

微信客服
問題
反饋
產(chǎn)品
畫冊

掃描二維碼下載澤眾軟件企業(yè)宣傳冊

產(chǎn)品畫冊
返回
頂部

方案咨詢

×
提交信息

電話咨詢,400-035-7887,安排專業(yè)技術(shù)售前給您解答(產(chǎn)品試用、技術(shù)交流、服務(wù)咨詢和商務(wù)報價)。

您的信息已成功提交!

我們的客服人員稍后會與您聯(lián)系