大家好,我是質(zhì)量保障中心的負(fù)責(zé)人SZ,今天來向大家介紹一下QA這個(gè)職業(yè)。 我們?yōu)槭裁葱枰猀A? ![]() 游戲從廣義來講也是一個(gè)計(jì)算機(jī)軟件。計(jì)算機(jī)軟件在研發(fā)過程中,不可避免的會(huì)引入各種各樣的bug,而這些bug交到用戶手里,有可能會(huì)引起或大或小的問題,咱們玩游戲的時(shí)候,也可能碰到過閃退或者卡頓。 相信大家都聽說過計(jì)算機(jī)軟件的bug造成嚴(yán)重事故的案例,在這里給大家舉幾個(gè)例子。電子計(jì)算機(jī)從發(fā)明至今,bug就一直伴隨,1962年,美國(guó)發(fā)射水手一號(hào)火箭,升空6秒后,由于控制軟件的bug造成爆炸。1994年,英國(guó)的軍演中有一臺(tái)運(yùn)輸直升機(jī),它的導(dǎo)航系統(tǒng)出了bug,造成觀看軍演直升機(jī)的人群有20多人傷亡。飛機(jī)導(dǎo)航系統(tǒng),已經(jīng)是咱們?nèi)粘D芙佑|到軟件里,對(duì)安全要求特別嚴(yán)苛的系統(tǒng)了,而bug依舊不可避免。 ![]() 還有一個(gè)讓人唏噓的例子,80年代,加拿大的一家醫(yī)療器械公司做了一款X光刀,用聚焦X射線來切除人體器官。然而它的輻射計(jì)量控制軟件里出了一個(gè)bug,導(dǎo)致了幾千名病人都遭受了超量的X光射線的輻射,最終造成六人死亡。加拿大的醫(yī)療監(jiān)管機(jī)構(gòu)和美國(guó)的FBA對(duì)這件事情進(jìn)行了調(diào)查,發(fā)現(xiàn)這個(gè)事故最終原因是由于寫劑量控制軟件的兩個(gè)程序員造成的。 當(dāng)然bug也有正面的作用。美劇里面有個(gè)機(jī)構(gòu)叫疾病預(yù)防與控制中心,這個(gè)機(jī)構(gòu)在美國(guó)是真實(shí)存在的,目的是預(yù)防疾病大規(guī)模傳染。他們就曾經(jīng)把暴雪的服務(wù)器數(shù)據(jù)copy過去,用來研究假如瘟疫爆發(fā),應(yīng)該怎么處理。 Bug給游戲體驗(yàn)帶來巨大影響 對(duì)游戲行業(yè)來說,bug一般不會(huì)造成玩家的直接傷害,而是摧殘心理,導(dǎo)致游戲體驗(yàn)大打折扣。 網(wǎng)易游戲的研發(fā)歷程中,也有被bug傷害的經(jīng)歷。早年的一款游戲出了一個(gè)收集書以獲得稀有物品的新玩法,那時(shí)大家比較缺乏經(jīng)驗(yàn),沒有設(shè)計(jì)物品掉落的上限,導(dǎo)致大量收集后,稀有的物品不再稀有。 發(fā)現(xiàn)這個(gè)問題之后,開發(fā)組就把掉落的概率改低了。網(wǎng)上指責(zé)開發(fā)組暗改概率,引起大范圍討論,使得當(dāng)時(shí)游戲遭遇了重大危機(jī),在線人數(shù)大幅跌落。這是游戲設(shè)計(jì)上的bug。 程序上會(huì)出現(xiàn)什么樣的問題呢? 我們?cè)谟螒蚶镒隽艘粋(gè)新的副本,為了更有意思和新鮮感,副本里面的怪是隨機(jī)出現(xiàn)的。剛開服的時(shí)候確實(shí)是隨機(jī)的,但是玩了一會(huì)兒之后發(fā)現(xiàn)在進(jìn)去之后,副本里只會(huì)出現(xiàn)一種怪。經(jīng)過了很長(zhǎng)時(shí)間調(diào)查,發(fā)現(xiàn)這是因?yàn)榈讓诱{(diào)用系統(tǒng)的錯(cuò)誤導(dǎo)致的。由于我們的玩家數(shù)量多,這些隱藏很深的問題都必然會(huì)暴露出來。 千萬(wàn)DAU的手游,又會(huì)出現(xiàn)什么bug? 當(dāng)時(shí)某產(chǎn)品有一個(gè)很火的主播,8萬(wàn)多個(gè)人邀請(qǐng)他加好友。這個(gè)主播一打開他的好友列表,我們服務(wù)器就直接死機(jī)了。其實(shí)我們的服務(wù)器配置都是不錯(cuò)的,但是為什么還是會(huì)死機(jī)呢?原因是太多人想加主播好友了,程序沒辦法響應(yīng)這種級(jí)別的請(qǐng)求。后來為了避免這個(gè)問題,我們會(huì)把用戶請(qǐng)求查詢的數(shù)據(jù)限制一下。 之后我們建立了一個(gè)評(píng)價(jià)質(zhì)量的體系,網(wǎng)易游戲已經(jīng)達(dá)到了較高的品質(zhì)要求。但即使這樣的情況下,我們也出過很多問題。 因此,通過嚴(yán)格的測(cè)試來避免這些bug出現(xiàn)在玩家手里是十分有必要的。 網(wǎng)易游戲的QA如何開展工作? 我們是如何在游戲中去做這些測(cè)試,保證提供給玩家的游戲是高品質(zhì)的呢? 最簡(jiǎn)單的東西叫做驗(yàn)證,看一看游戲開發(fā)者的想法和設(shè)計(jì)者的想法是不是一致,看跳轉(zhuǎn)規(guī)則跟UI設(shè)計(jì)是否一樣,F(xiàn)在市面上有各種各樣的手機(jī),游戲在不同的機(jī)子上運(yùn)行會(huì)存在不同的問題,所以我們要去驗(yàn)證不同手機(jī)上的問題。 ![]() 有時(shí)候我們手機(jī)游戲玩起來雖然沒有什么bug,但是流暢性也是一個(gè)問題,在團(tuán)戰(zhàn)的時(shí)候會(huì)卡,或者完全在瞬移。我們把游戲的測(cè)試分成三個(gè)方面,第一方面最簡(jiǎn)單的驗(yàn)證就是流暢性。第二方面我們叫量化評(píng)估,看看它的量化指標(biāo)有沒有達(dá)到標(biāo)準(zhǔn)。第三點(diǎn)叫做建立標(biāo)準(zhǔn)。 我舉一個(gè)例子,荒野行動(dòng)市面上70%多的手機(jī)上都可以玩。這件事情是怎么樣做到的?如果我們美術(shù)同學(xué)想表現(xiàn)一個(gè)非常炫酷的美術(shù)效果,我們游戲的畫面會(huì)設(shè)計(jì)得非常精美。但如果玩家的手機(jī)性能不足,可能實(shí)際呈現(xiàn)出來的效果會(huì)變成幻燈片一樣。所以我們?cè)谟螒蜓邪l(fā)初期就會(huì)去用假的模型測(cè)試一些場(chǎng)景,去看它的真實(shí)手機(jī)性能,根據(jù)這樣的測(cè)試定下來美術(shù)制作的標(biāo)準(zhǔn)。 ![]() 根據(jù)這樣的標(biāo)準(zhǔn),我們來制作游戲,可以避免非常多的返工。這些返工一方面會(huì)增加成本,另一方面會(huì)讓我們錯(cuò)失市場(chǎng)的良機(jī)。其實(shí)一般的軟件工程上也有這樣的概念,軟件中的問題我們?cè)皆缛バ迯?fù),越早去發(fā)現(xiàn),修復(fù)的成本越低。所以預(yù)防永遠(yuǎn)是要優(yōu)于驗(yàn)證的。網(wǎng)易游戲?qū)ζ焚|(zhì)要求非常高。一款產(chǎn)品從研發(fā)初期到研發(fā)后期一直要達(dá)到一個(gè)高標(biāo)準(zhǔn),才會(huì)交付到玩家手里面去。 自動(dòng)化測(cè)試工具助力測(cè)試效率和效果 ![]() 下面介紹一下我們做游戲測(cè)試用的一些工具。 手機(jī)測(cè)試有一個(gè)很大的問題:安卓手機(jī)市場(chǎng)碎片化非常嚴(yán)重。玩家的設(shè)備非常多,我們實(shí)驗(yàn)室里面采購(gòu)了幾千臺(tái)手機(jī),這么多的手機(jī)設(shè)備才能覆蓋中國(guó)市場(chǎng)上一半多的玩家。 ![]() 這是網(wǎng)易游戲的一個(gè)測(cè)試機(jī)架,在機(jī)架上放著不同的手機(jī),我們可以在上面運(yùn)行各種各樣的測(cè)試,可以支持不同渠道的登錄,同時(shí)也可以調(diào)動(dòng)不同的游戲,包括同樣一個(gè)游戲里面不同的玩法和各種各樣的場(chǎng)景界面。這些測(cè)試都是靠自動(dòng)化完成后生成結(jié)果,這樣就可以花很少的人力去發(fā)現(xiàn)問題。 我們自己也研發(fā)了一套技術(shù),實(shí)現(xiàn)自動(dòng)化測(cè)試的功能。目前在和Google合作,用于全球安卓開發(fā)者使用的云測(cè)試環(huán)境中。 ![]() 有的時(shí)候我們只是在游戲里面做一些小小的改動(dòng),也不需要寫復(fù)雜的測(cè)試腳本。一些小工具可以提高人工測(cè)試效率。比如能夠同時(shí)操縱多臺(tái)設(shè)備,即使這些設(shè)備有不同的分辨率或者不同的長(zhǎng)寬比,也可以去適配。 ![]() 還有量化測(cè)試,如定義幀率發(fā)熱等,這時(shí)候要借助各種各樣的測(cè)試硬件。下圖是一個(gè)測(cè)試手機(jī)幀率用的視頻采集卡,及樹莓派的設(shè)備。 ![]() ![]() 有玩家提過商場(chǎng)人多,手機(jī)信號(hào)比較差。為了驗(yàn)證,我們可以帶一個(gè)設(shè)備去商場(chǎng)里面采集真實(shí)的網(wǎng)絡(luò)情況,然后拿到我們實(shí)驗(yàn)室的樹莓派設(shè)備上進(jìn)行回放。就可以在實(shí)驗(yàn)室里面模擬弱網(wǎng)絡(luò)環(huán)境,然后在弱網(wǎng)絡(luò)環(huán)境下去測(cè)試我們游戲的體驗(yàn)。 這幅圖是一個(gè)高速攝像機(jī),就是大家平時(shí)看慢鏡頭就是用這樣的高速攝像機(jī)拍出的。我們用這些慢鏡頭來干什么?游戲中有一個(gè)東西叫反應(yīng)靈敏度,我們用他們來測(cè)試點(diǎn)開一個(gè)界面的時(shí)候,是秒開還是非常遲鈍。這些都是游戲體驗(yàn)中一些很細(xì)節(jié)的問題。 ![]() 總而言之,做互聯(lián)網(wǎng)產(chǎn)品,細(xì)節(jié)決定成敗,關(guān)注游戲體驗(yàn)的各個(gè)細(xì)節(jié),采用各種方式來保障游戲的質(zhì)量,這就是我們QA的工作。 |