網易遊戲是如何做測試的?

遊資網發表於2019-03-26
導讀:遊戲質量與玩家的體驗息息相關,作為QA(遊戲測試工程師),通過嚴格的測試來保障遊戲質量是QA的工作日常。既關注驗證,也關注預防,涵蓋遊戲從研發初期到上線運營的全生命週期。面對質量問題,QA需要充分開發和利用各類工具來提高測試效率和準確性。

大家好,我是質量保障中心的負責人SZ,今天來向大家介紹一下QA這個職業

我們為什麼需要QA?

網易遊戲是如何做測試的?

遊戲從廣義來講也是一個計算機軟體。計算機軟體在研發過程中,不可避免的會引入各種各樣的bug,而這些bug交到使用者手裡,有可能會引起或大或小的問題,我們們玩遊戲的時候,也可能碰到過閃退或者卡頓。

相信大家都聽說過計算機軟體的bug造成嚴重事故的案例,在這裡給大家舉幾個例子。電子計算機從發明至今,bug就一直伴隨,1962年,美國發射水手一號火箭,升空6秒後,由於控制軟體的bug造成爆炸。1994年,英國的軍演中有一臺運輸直升機,它的導航系統出了bug,造成觀看軍演直升機的人群有20多人傷亡。飛機導航系統,已經是我們們日常能接觸到軟體裡,對安全要求特別嚴苛的系統了,而bug依舊不可避免。

網易遊戲是如何做測試的?

還有一個讓人唏噓的例子,80年代,加拿大的一家醫療器械公司做了一款X光刀,用聚焦X射線來切除人體器官。然而它的輻射計量控制軟體裡出了一個bug,導致了幾千名病人都遭受了超量的X光射線的輻射,最終造成六人死亡。加拿大的醫療監管機構和美國的FBA對這件事情進行了調查,發現這個事故最終原因是由於寫劑量控制軟體的兩個程式設計師造成的。

當然bug也有正面的作用。美劇裡面有個機構叫疾病預防與控制中心,這個機構在美國是真實存在的,目的是預防疾病大規模傳染。他們就曾經把暴雪的伺服器資料copy過去,用來研究假如瘟疫爆發,應該怎麼處理。

Bug給遊戲體驗帶來巨大影響

對遊戲行業來說,bug一般不會造成玩家的直接傷害,而是摧殘心理,導致遊戲體驗大打折扣。

網易遊戲的研發歷程中,也有被bug傷害的經歷。早年的一款遊戲出了一個收集書以獲得稀有物品的新玩法,那時大家比較缺乏經驗,沒有設計物品掉落的上限,導致大量收集後,稀有的物品不再稀有。

發現這個問題之後,開發組就把掉落的概率改低了。網上指責開發組暗改概率,引起大範圍討論,使得當時遊戲遭遇了重大危機,線上人數大幅跌落。這是遊戲設計上的bug。

程式上會出現什麼樣的問題呢?

我們在遊戲裡做了一個新的副本,為了更有意思和新鮮感,副本里面的怪是隨機出現的。剛開服的時候確實是隨機的,但是玩了一會兒之後發現在進去之後,副本里只會出現一種怪。經過了很長時間調查,發現這是因為底層呼叫系統的錯誤導致的。由於我們的玩家數量多,這些隱藏很深的問題都必然會暴露出來。

千萬DAU的手遊,又會出現什麼bug?

當時某產品有一個很火的主播,8萬多個人邀請他加好友。這個主播一開啟他的好友列表,我們伺服器就直接當機了。其實我們的伺服器配置都是不錯的,但是為什麼還是會當機呢?原因是太多人想加主播好友了,程式沒辦法響應這種級別的請求。後來為了避免這個問題,我們會把使用者請求查詢的資料限制一下。

之後我們建立了一個評價質量的體系,網易遊戲已經達到了較高的品質要求。但即使這樣的情況下,我們也出過很多問題。

因此,通過嚴格的測試來避免這些bug出現在玩家手裡是十分有必要的。

網易遊戲的QA如何開展工作?

我們是如何在遊戲中去做這些測試,保證提供給玩家的遊戲是高品質的呢?

最簡單的東西叫做驗證,看一看遊戲開發者的想法和設計者的想法是不是一致,看跳轉規則跟UI設計是否一樣。現在市面上有各種各樣的手機,遊戲在不同的機子上執行會存在不同的問題,所以我們要去驗證不同手機上的問題。

網易遊戲是如何做測試的?

有時候我們手機遊戲玩起來雖然沒有什麼bug,但是流暢性也是一個問題,在團戰的時候會卡,或者完全在瞬移。我們把遊戲的測試分成三個方面,第一方面最簡單的驗證就是流暢性。第二方面我們叫量化評估,看看它的量化指標有沒有達到標準。第三點叫做建立標準

我舉一個例子,荒野行動市面上70%多的手機上都可以玩。這件事情是怎麼樣做到的?如果我們美術同學想表現一個非常炫酷的美術效果,我們遊戲的畫面會設計得非常精美。但如果玩家的手機效能不足,可能實際呈現出來的效果會變成幻燈片一樣。所以我們在遊戲研發初期就會去用假的模型測試一些場景,去看它的真實手機效能,根據這樣的測試定下來美術製作的標準。

網易遊戲是如何做測試的?

根據這樣的標準,我們來製作遊戲,可以避免非常多的返工。這些返工一方面會增加成本,另一方面會讓我們錯失市場的良機。其實一般的軟體工程上也有這樣的概念,軟體中的問題我們越早去修復,越早去發現,修復的成本越低。所以預防永遠是要優於驗證的。網易遊戲對品質要求非常高。一款產品從研發初期到研發後期一直要達到一個高標準,才會交付到玩家手裡面去。

自動化測試工具助力測試效率和效果

網易遊戲是如何做測試的?

下面介紹一下我們做遊戲測試用的一些工具。

手機測試有一個很大的問題:安卓手機市場碎片化非常嚴重。玩家的裝置非常多,我們實驗室裡面採購了幾千臺手機,這麼多的手機裝置才能覆蓋中國市場上一半多的玩家。

網易遊戲是如何做測試的?

這是網易遊戲的一個測試機架,在機架上放著不同的手機,我們可以在上面執行各種各樣的測試,可以支援不同渠道的登入,同時也可以調動不同的遊戲,包括同樣一個遊戲裡面不同的玩法和各種各樣的場景介面。這些測試都是靠自動化完成後生成結果,這樣就可以花很少的人力去發現問題。

我們自己也研發了一套技術,實現自動化測試的功能。目前在和Google合作,用於全球安卓開發者使用的雲測試環境中。

網易遊戲是如何做測試的?

有的時候我們只是在遊戲裡面做一些小小的改動,也不需要寫複雜的測試指令碼。一些小工具可以提高人工測試效率。比如能夠同時操縱多臺裝置,即使這些裝置有不同的解析度或者不同的長寬比,也可以去適配。

網易遊戲是如何做測試的?

還有量化測試,如定義幀率發熱等,這時候要藉助各種各樣的測試硬體。下圖是一個測試手機幀率用的視訊採集卡,及樹莓派的裝置。

網易遊戲是如何做測試的?

網易遊戲是如何做測試的?

有玩家提過商場人多,手機訊號比較差。為了驗證,我們可以帶一個裝置去商場裡面採集真實的網路情況,然後拿到我們實驗室的樹莓派裝置上進行回放。就可以在實驗室裡面模擬弱網路環境,然後在弱網路環境下去測試我們遊戲的體驗。

這幅圖是一個高速攝像機,就是大家平時看慢鏡頭就是用這樣的高速攝像機拍出的。我們用這些慢鏡頭來幹什麼?遊戲中有一個東西叫反應靈敏度,我們用他們來測試點開一個介面的時候,是秒開還是非常遲鈍。這些都是遊戲體驗中一些很細節的問題。

網易遊戲是如何做測試的?

總而言之,做網際網路產品,細節決定成敗,關注遊戲體驗的各個細節,採用各種方式來保障遊戲的質量,這就是我們QA的工作。

來源:網易遊戲學院
原地址:https://mp.weixin.qq.com/s/sBjkm05t61W8D1CwWk-Qsg

相關文章