由專注手遊的雲測試平臺TestBird撰寫的《2014中國手遊兼容性測試白皮書》(以下稱白皮書)正式發布。這是全球首次針對手遊兼容性問題進行研究和解析的白皮書,首次為業界定義了10大手遊兼容性問題,完整展現了手遊兼容性問題現狀,系統詮釋了手遊兼容性問題的分類,深度解析了手遊兼容性問題的根源,並提供了諸多的真實有效的解決建議。
通過白皮書,也許你能更清楚地了解上述問題的答案:作為手遊上線前必經的第一關——兼容性測試,遠非想像的那麼簡單。
16項指標,首次定義手遊兼容性
到底什麼是兼容性問題?用哪些指標可以準確考核和定義兼容性問題?哪些性能指標會影響到手遊兼容性?以往,我們單純地將手遊兼容性測試等同於安裝和啟動測試。可是如此的草率和不專業,意味著在手遊上線前的第一步,您就已經錯失先機。
TestBird已經測試了近3000款手機遊戲,發現134812個兼容性問題,通過對這些問題進行深入分析,TestBird首次在行業內對影響手遊品質的兼容性問題和性能指標進行了明確的定義。
白皮書裡將兼容性問題分為10大類,分別是安裝失敗、啟動失敗、遊戲閃退、遊戲卡頓、遊戲卡死、數據異常、UI異常、遊戲連結異常、程序異常、遊戲黑屏。性能指標則包括CPU佔用率、內存佔用值、IO等待率、溫度、啟動時延和流量共6項。
兼容性問題釋義
安裝失敗遊戲app在某款手機上進行安裝操作,但是沒有安裝成功。
啟動失敗遊戲app安裝成功,但是無法啟動,或者啟動後馬上自動退出。判斷標準:啟動後,檢測遊戲畫面是否可見。
遊戲閃退在遊戲過程中程序崩潰導致意外退出。判斷標準:崩潰日誌與遊戲畫面結合分析。
遊戲卡頓在遊戲過程中運行不流暢,畫面切換卡屏。主要原因是CPU或者內存佔用過高,需要CP進行優化。
遊戲卡死手機系統無法正常運行,不接受輸入事件,但遊戲沒有閃退。遊戲觸發了手機的系統級BUG,引起系統崩潰。
遊戲黑屏手機系統正常運行,但遊戲無法正常運行,沒有顯示任何UI界面。
數據異常遊戲客戶端與伺服器數據交互異常,但是連結未斷開。通常是手機遊戲與伺服器交互接口設計沒有經過充分驗證,導致異常數據在伺服器與手機遊戲之間傳輸。
UI異常UI界面顯示紊亂。主要原因是解析度差異或者遊戲場景切換邏輯代碼書寫有誤。
遊戲連結異常與伺服器交互連結發生異常。通常由於開發人員沒有考慮到網絡編程中的異常,或壓力過大引發伺服器崩潰。
程序異常遊戲運行時出現異常提示或現象。
性能指標解釋
CPU佔用率(%)遊戲進程佔用的CPU資源,cpu使用率過高,說明遊戲比較耗電,而且容易卡頓。
內存佔用值(kb)遊戲進程所消耗的手機內存,內存佔用高容易引起遊戲卡頓甚至閃退。
IO等待率(%)遊戲進程進行IO等待所佔用CPU時間百分比,佔用率過高說明遊戲進行了大量的io操作,例如文件讀寫。
幀速率(fps)遊戲引擎每一秒內刷新的幀數,反映了遊戲畫面流暢程度。
溫度(°C)通過android溫度傳感器獲取的手機溫度,跟手機cpu佔用率成正比。
啟動時延(ms)對遊戲發起啟動指令,到真正進入遊戲第一個界面所消耗的時間,反映了遊戲的加載速度,跟遊戲資源包大小有關。
流量(bps)遊戲運行過程中所消耗的網絡流量,主要集中在遊戲與伺服器交互過程中產生的網絡消耗。
1款遊戲52個兼容性問題,損失高達六位數
在手遊產業,任何一款手遊產品都必須經過兼容性測試後方可上線。然而,由於傳統的兼容性測試周期長,測試成本較高,加上兼容性問題屬於隱型問題,不及遊戲畫面、遊戲內容和操作設計等因素那般具象,導致兼容性問題長期未受到手遊開發者的重視,但因兼容性問題導致的用戶流失和成本損失,卻是以數十百萬計的。
《2014中國手遊兼容性測試白皮書》的研究數據顯示,平均每款遊戲存在52個兼容性問題,因為不兼容造成的用戶流失率達21%,假如每款遊戲20萬用戶,按照行業常規,一個用戶的導入成本為10塊,那麼每款遊戲因為兼容性問題導致的成本損失將達到20萬人*21%*10元/人=42萬元。
從如此高額的成本損失可以看出兼容性問題已經刻不容緩,成為手遊開發商迫待解決的關鍵問題。
12類遊戲,兼容性問題各有不同
白皮書打破了傳統手機兼容性測試粗糙的分析方式,利用TestBird手遊自動化雲測試平臺強大的遊戲分類能力,在對卡牌遊戲、策略經營、角色扮演、塔防遊戲、跑酷競速、飛行射擊、消除遊戲、棋牌撲克、動作格鬥、體育運動、虛擬養成、休閒益智等12個不同類別的遊戲進行逐個分析後發現,整體上來說動作格鬥和角色扮演類兼容性問題最多,但是在每個具體的問題上,每類遊戲確實各有不同。
通常意義上,幾乎所有人都認為角色扮演和動作格鬥類RPG重度遊戲應該是流量消耗最大的一類遊戲。可是通過白皮書的研究卻發現,平均流量消耗最大的實為虛擬養成類中度遊戲,而RPG重度遊戲甚至連前三都排不上。
白皮書的報告還顯示,在CPU佔用率上,體育運動類遊戲最高,棋牌撲克類最低;在啟動時延上,飛行射擊類遊戲最大,體育運動類最小;在內存佔用上,動作格鬥類遊戲最高,棋牌撲克類最低;在IO等待率上,酷跑競速類遊戲較高,體育運動類卻較低;在手機平均溫度上,卡牌遊戲最高,體育運動類最低。
37%+19%,閃退和卡死才是最主要的問題
過去由於傳統的兼容性測試方式僅僅只是測試安裝和啟動兩個項目,測試者對遊戲啟動後將會發生的事情一無所知。也正是因此,通常的認知中手遊兼容性問題最突出的往往是安裝失敗和啟動失敗。
然而現實是,隨著安卓手機的快速發展,以往的問題重災區安裝、啟動問題在所有問題中的佔比越來越低,絕大部分問題是在遊戲運行後發生的。而要發現這些問題,就必須要深入到遊戲內部進行測試。
TestBird採用了全球領先的鷹眼引擎測試技術,在深入近3000款遊戲內部進行測試後,對發現的134812個兼容性問題進行了統計分析,發現遊戲閃退、遊戲卡死、UI異常才是兼容性問題佔比最高的3大類問題。其中遊戲閃退現象最為嚴重,佔比高達37.18%,遊戲卡死現象佔比則達到了18.53%。
市面上,安卓系統的手機品牌高達數十個,從三星、聯想、華為等主流品牌到其他非主流的品牌手機,到底哪個品牌的手機兼容性較好?不同手機內存大小對手遊兼容性影響到底又有多大?另外,不同品牌手機的CPU也有所異同,那麼不同的CPU是否也會影響到兼容性問題的發生?
TestBird通過對816款測試手機,歷經近3000款遊戲測試後發現:對比各品牌的兼容性問題數,主流品牌的兼容性整體好於非主流品牌。兼容性問題最少的品牌當屬三星,每終端每款遊戲的失敗率(即平均每款終端在每款遊戲上的不兼容率)僅有3.82%,聯想和小米的兼容性也表現優異,失敗率不足5%。而其他非主流品牌的失敗率則高達10%以上,兼容性問題非常嚴重。
在內存大小對手機遊戲的兼容性的影響方面,白皮書的研究表明,內存越大出現兼容性問題越少,256M的兼容性問題最多,兼容性問題檢出率高達82%。而隨著內存的加大,兼容性問題發生概率明顯呈現出逐步減小的趨勢。
而在不同CPU品牌在兼容性問題的表現上,展訊出現的兼容性問題佔比最大。兼容性表現最好,檢出率最低的,並非我們所熟知的聯發科和高通兩大類CPU品牌——當然,它們二者表現也不錯——而是海思和Mmarvell。
*兼容性問題檢出率:即兼容性問題的數量佔該品牌總數的比值。
此外,白皮書還針對不同遊戲引擎的兼容性問題發生概率進行了研究,發現自定義引擎出現的兼容性問題最多,檢出率達32%,而常用的cocos2D-X和unity3D遊戲引擎的兼容性問題的檢出率分別是28%和27%,相對表現較好。
話到此處,或許你已經開始明白兼容性問題遠非想像的那麼簡單。可是,這些兼容性問題究竟該如何解決?
「我們將報告奉獻給廣大的手遊CP、發行和渠道,希望能給行業分享一些經驗和乾貨,打造更精品的手機遊戲。」這是報告開頭的第一句話,透過這句話,能了解到TestBird發布這份白皮書的初衷。而在長達47頁的白皮書最後,TestBird也確實毫無保留地針對各項兼容性問題,敘述了詳盡的解決方案。
如針對閃退、卡死、UI異常三大手遊兼容性問題,並給三類問題給予詳盡的解決建議,但因篇幅有限,現只能在此做簡單綜述,以饗同行:
閃退問題出現場景各不相同,常見原因為內存不足、溫度過高、系統不兼容、cpu不兼容等。開發人員可以根據問題現象,分析logcat和BUGreport日誌來定位原因,找到閃退原因後根據需求優化。
遊戲卡死現象很像ANR(application not response)。系統在一定時間內發現UI thread沒有響應,就會出現彈框報錯。比如輸入事件,等待通常是5秒。主要原因是在UI thread做了不必要且費時的操作。比如訪問網絡操作、本地數據讀寫操作、遊戲計算下一幀數據操作。解決方案是把這些費時用異步的方式完成。UI thread只做響應用戶操作以及繪製UI的事情。開發過程中可以StrictMode來檢查一些潛在ANR的代碼風險。開發完以後,可以使用android工具Systrace和Traceview對遊戲的性能瓶頸進行分析,避免ANR。
而遊戲卡頓問題,通過對10016個UI問題的統計和分析,TestBird認為導致UI異常主要有兩方面的問題:
1)和安卓手機解析度相關,如手機解析度尺寸,遊戲上控制項排版時需要考慮解析度,避免使用pixel unit,考慮使用dp(Density-independent pixel)、sp等.可以了解多尺寸多密度屏幕支持等相關文章。
2)和遊戲引擎相關,如Unit3D引擎遊戲,使用系統字庫,容易出現在OPPO等手機終端上,字體無法顯示,原因為部分安卓廠商深度定製安卓系統,導致部分U3D引擎遊戲,調用的系統字體不能顯示。解決建議為使用其他字體庫。