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