遊戲測試為什麼要那麼久? 提及遊戲,相信很多人想到的是一款款DAU上千萬甚至過億的爆款遊戲然而,享受了爽到尖叫的遊戲體驗後,玩家在興奮之餘可能會好奇是哪家公司或者哪個工作室開發出來的,卻少有人提及如此優異的遊戲性能是如何做到的,今天小編就來聊一聊關于遊戲測試為什麼要那麼久?接下來我們就一起去研究一下吧!
提及遊戲,相信很多人想到的是一款款DAU上千萬甚至過億的爆款遊戲。然而,享受了爽到尖叫的遊戲體驗後,玩家在興奮之餘可能會好奇是哪家公司或者哪個工作室開發出來的,卻少有人提及如此優異的遊戲性能是如何做到的。
其實,打造一款爆款遊戲的背後,除了精心的策劃與研發之外,更重要的,則是遊戲性能專項與質量測試。遊戲測試在外人看來好像是在“打遊戲”,實則有非常繁冗複雜的技術細節值得思考,比如:如何保證遊戲産品上線質量和用良好的用戶體驗,各種專項技術測試是怎麼做的?使用的測試技術方法及工具是什麼?不同的遊戲場景會遇到哪些測試技術難題?如何提升測試效率及專業性?這些過程中又該如何協調好測試與開發、産品團隊的進度?
帶着這些問題,“T前線”有幸采訪到了騰訊Wetest。Wetest平台依托10餘年騰訊産品品質管理經驗,曆經千款騰訊産品磨砺,提供了優質的質量測試解決方案,在全球企業及開發者之間被廣泛應用。
其中,PerfDog作為WeTest針對開發者性能專項測試需求所推出的移動全平台性能工具,由于其快速定位,而且無需對手機硬件、遊戲及應用進行任何更改、即插即用的特點,得到了遊戲測試及開發者的好評與認可。
今天,“T前線”有幸邀請到騰訊互娛資深測試技術總監、多款大DAU産品性能測試專家,明星性能工具PerfDog創始人曹文升先生,為我們分享他在遊戲專項測試領域的實踐經驗與心得。
1 .卡頓和内存是遊戲性能最主要的問題
性能話題是近幾年遊戲圈,特别是手遊圈最熱門的話題之一。對玩家來說,除了玩法,最影響體驗的就是性能了。以某款戰術競技類遊戲為例,這款遊戲的成功,與能保證畫質及互動效果的性能因素是分不開的。
但對測試人員來說,遊戲性能則是一個複雜的技術問題:性能會涉及硬件、操作系統、GPU層面的渲染等諸多方面。根據自己多年的項目經驗,曹文升發現遊戲的性能問題主要集中在卡頓、内存等方面。
(1)卡頓:經常要面對的問題
當今手機硬件性能叠代很快,用戶的預期也在提高,随着用戶對遊戲的性能體驗要求越來越高,大家對卡頓的容忍度越來越低。舉個例子,原來大家能容忍五六十毫秒出現一次小的卡頓,但現在微小的一次卡頓,用戶都覺得影響他的體驗。
與此同時,遊戲研發對性能的要求也在提高,原來覺得遊戲達到30幀就很不錯了,現在可能要求達到60幀才算合格。
這就讓卡頓成為目前遊戲最主要面臨的性能問題。
然而在遊戲性能專項測試中,卡頓的出現帶有一定的偶然性,可能第一遍測試時沒有卡頓,第二遍測試時就會有卡頓。所以要想解決這個問題,首先需要記錄卡頓或者性能的現場環境,為此專項測試人員需要用專業、方便、快捷的工具反複去測,同時也要通過統計算法建立更精準化的卡頓指标,從而更準确地識别出卡頓的點與原因。
有了指标體系,便能更好地評估每一幀的功耗,專項人員就能給開發人員提出更有針對性的優化能耗建議,來解決卡頓問題。
(2)内存:遊戲的制約因素
遊戲和其他程序不一樣,遊戲會涉及加載非常多的圖片紋理、場景模型及Shader(一種專門用來渲染3D圖形的技術)等消耗相當大内存的程序。
内存不足會導緻手機運行不起來,或者即便跑起來也會挂掉,因此專項人員需要通過各種内存的工具,比如引擎自帶的memory等工具,去精準定位哪一個對象、哪一個模塊内存過大,進而解決内存問題,比如可以讓某一部分不加載太大的圖片。
當然,内存不如卡頓的影響嚴重,因為卡頓可能在任何平台都存在,即便旗艦手機上也可能會存在卡頓,但是内存問題通常隻在一些低端的或者内存比較小的手機上才會出現。
2.專項人的成長之路:善用工具,學會複盤
對遊戲專項測試來說,确定和解決問題是最關鍵的兩個步驟。在曹文升看來,專項人員要想此方面遊刃有餘,需要熟悉并掌握各種專項測試技術能力及工具的用法,同時還要學會邊幹邊學,懂得總結以往項目的經驗。
(1)沒有通用的工具
曹文升認為,專項人員要對工具的技術形态有一定的認知,認識到不同形态的工具能做的事是非常不一樣的。
遊戲性能專項測試用到的工具,大體可分為嵌入式的SDK集成源碼工具和非嵌入式的獨立工具兩類。SDK集成源碼工具,這類工具收集的信息要更全面,但是SDK工具的使用門檻高(對開發團隊和項目的要求都很高);獨立工具可以做到即插即用,使用門檻低,但獲取的性能指标可能沒那麼全。
另外,曹文升還提醒一點,各大引擎、IDE和硬件廠家會有自己的性能分析輔助工具,專項人員要了解這些工具有什麼樣的要求。比如,有的工具會要求遊戲編譯的版本是開發版,并不是常規發布的release版。再比如,像高通或者ARM公司的這樣的硬件廠商,他們研發的工具可能隻适用于自己的硬件,有一定局限性,這些都需要專項人員注意。
所以,專項人員在進行測試時,不能隻使用某一類工具,而是将不同工具組合在一起進行測試定位。
(2)鑽研與熱愛缺一不可
曹文升相信,專項測試人員要想高效地解決測試過程中出現的問題,用好從前的項目經驗是非常重要的。如何才能用好從前的經驗呢?
一方面要做到邊幹變學。專項測試人員要掌握的技術點是很多的,想要一開始就掌握所有的技術是不現實的。因此,專項測試人員要有開闊的視野,對性能、網絡、兼容性、壓測都要有一定了解,同時還可根據自己感興趣或者擅長的一個縱向領域,付出時間和精力把該領域研究透,這樣才能在專項測試中有立身之本。
另一方面,如果在項目中遇到了問題,踩了坑,一定要深入鑽研,如此記憶才會深刻,能力提升才會快。對此,曹文升講到了自己在PC遊戲的時代負責兼容性的專項測試的一段經曆。
所謂兼容性問題,舉個常見的例子,就是一部遊戲在很多電腦上會存在花屏、黑屏,或者顯示不正常的問題。曹文升在做這項工作的時候,發現在某些顯卡上會存在顯示不正常的問題。
當時曹文升不知道這是什麼原因,也不知道什麼樣的顯卡會存在這樣的問題。後來通過大量的顯卡測試、分析、總結,發現這種問題是有原因的:這樣的遊戲會用到一些3D caps的能力,某些顯卡不支持。
于是他很快開發一款虛拟顯卡兼容性測試工具Bench3D,很快模拟定位那些顯卡可能是有問題的,哪些顯卡應該是沒有問題的,這就加強了曹文升對兼容性底層技術的理解,進而快速提升做專項測試的效率和專業性。
除了以上能力,曹文升還提及了優秀的遊戲專項測試人員另一項必備的素質:對遊戲的熱愛。
遊戲測試和普通的App測試是不一樣的。App專項測試,可以很快把所有的測試用例走下來。但遊戲有千萬種玩法,對應着千萬種操作路徑,每一種操作路徑都可能存在這個問題,這樣的話測試人員需要對遊戲本身足夠熟悉,隻有對遊戲感興趣,熱愛遊戲,測試人員才能做到這一點。
在專項技術方面,遊戲測試的要求也比一般App測試高,比如在弱網絡、引擎、安全,遊戲專項測試都有更高的要求,這意味着對遊戲專項測試人員來說,隻有對遊戲足夠熱愛,才能應對好這些挑戰。
3.團隊意識不可或缺
(1)發現有效需求
專項測試團隊的工作産出更多是服務公司内部的研發人員。通常有了新的工作成果時,專項測試開發團隊需要推廣給公司内的各個研發團隊,但很多專項測試開發團隊會遇到一類問題:各個小團隊、小組或者自己開發一個所謂的能用的工具,自己用起來OK,自己所在的項目組用起來也覺得OK。但是一到讓更多的項目組、更多的人去使用的時候,卻發現工具用不上或者幫助不大。
對于這個問題,曹文升發現,根源在于專項測試團隊将自己開發出的工具始終當成一個小工具,完全沒有把它當做一個大工具甚至一個産品來對待。小工具在功能各方面是受限的,這個時候工具隻能滿足自己的需求。
隻有把開發出來的工具做成更大的工具,乃至升華成一個産品的時候,你才會意識到有成千上萬的需求要滿足。這時你要冷靜思考,你沒法在一個工具裡面實現一萬種需求,你需要區分什麼是有效的需求,将這些需求進行分類,把它轉成通用的需求。如何評估哪些需求才是有效需求呢?
一是要看有多少項目組、用戶有這些需求,二是要看可操作和可實現性。
(2)反饋真實情況是職責所在
除了技術上的測試工作,測試人員可能還需要跟很多人打交道,比如QA、項目經理、産品人員、開發人員,跟他們很多人進行溝通交流。
曹文升說,測試人員在跟這些人進行溝通協作時,由于測試人員最清楚整個項目進展及品質狀況,因而也最能反饋這個項目的真實信息。這個時候,測試人員可能會和團隊裡的開發人員站在對立面,比如項目開發人員開發了新功能,測試人員會“專門”去找新功能模塊設計中的一些bug,因而兩者會有一些對立面的情緒,這就需要雙方多一些溝通。
除了要對開發人員反饋真實信息,測試人員還要對項目負責人反饋真實信息。項目負責人要了解整個項目的進展,這時測試人員扮演的角色就是該項目負責人的一個“錦衣衛”:測試人員要敢出來說一些真實的項目研發的進展和品質的狀況。
有時,遊戲測試人員在整個遊戲團隊還要扮演更重要的角色。在騰訊遊戲,質量是決定遊戲能否上線的最後一道關,遊戲測試人員就有這樣的把關權力,如果測試人員覺得某個遊戲品質不夠,那麼該遊戲就上不了線。
4.遊戲測試的自動化:全面落地還很遠
雖然很多傳統的App測試自動化做得不錯,但曹文升發現遊戲測試的自動化一直做得不是很成功。據曹文升估計,目前自動化測試的覆蓋率隻有15%左右。
在現階段,隻有遊戲場景比較單一,比如跑地圖(業界稱作跑性能熱力圖),或者單一的技能的釋放,自動化測試做得還算差強人意。
自動化在遊戲測試領域的應用範圍如此之小,在曹文升看來,主要有這樣兩個因素。
第一,遊戲中畫面實時渲染及半透明特效粒子效果,會導緻畫面很難圖像自動化,同時遊戲事件、系統事件響應,這些都是自己實現的,自動化很難捕捉落地。
第二,遊戲版本的更新叠代是非常快的,甚至每天都會做一個非常大的版本更新,這導緻接口變化非常快,這也導緻自動化很難落地。
關于AI在遊戲自動化測試的話題,曹文升的看法是,AI在普通的App測試中也許能發揮作用,因為App無論怎麼操作,界面的變化不大,一緻性較強。而在遊戲測試中,AI恐怕難以和場景進行匹配。比如,遊戲的某一個像素或者幾個像素顯示不對了,AI很難去判斷的。
再有一個是性能,遊戲裡面鏡頭稍微一旋轉,玩家看到的東西完全不一樣,這導緻性能也完全不一樣,AI同樣很難發現這樣的細微問題。
因此對測試人員來說,還是要明白哪些可以做自動化測試,哪些仍然需要用手工測試,而不能把希望都寄托在自動化上。
5.寫在最後
在遊戲行業,正是有了專項測試團隊默默的付出,玩家的注意力才能放到操作、玩法上,而不是時不時地為性能問題而煩惱。
而對遊戲專項測試人員來說,也許自己的工作很少能得到外界的認可,但内在的成就感才是最重要的獎勵。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!