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