移动测试中游戏和应用的不同之处
隨著智能設備的普及和移動互聯網的興起,各家互聯網巨頭紛紛在往移動端布局和轉型,同時初創的移動互聯網公司也都盯著這個市場希望分一杯羹。在這個大環境下,互聯網的重心已經慢慢從Web端轉向了移動端,而移動端的軟件測試也變得越來越重要了。今天就說說移動測試中最重要的兩個方向。
APP自動化測試完全不同于手游自動化測試
手機App和手游的開發技術不同,這導致了兩者的自動化測試技術是截然不同的。以安卓開發舉例,手機App一般使用Android SDK開發,使用Java編寫。通過Android提供的服務,我們可以獲取App當前窗口的視圖信息,進而查找和操作按鈕等控件,以完成自動化測試,如Uiautomator。這個過程是標準化的,從技術上來說沒有任何難度,因此各個公司各個App自動化測試的方法都大同小異。
但手游的開發卻不是這樣。手游一般使用引擎開發,現在著名的有cocos2d和unity3d。兩者都是使用引擎自帶的語言進行開發,主流的分別是c++和c#,雖然在開發過程中也有按鈕等控件的概念。手游測試的自動化很難實現,現在也TestBird這種專門做測試公司能深入游戲引擎來進行自動化測試。
接下來具體說說不同之處
玩法不同導致功能測試更復雜
隨機性。游戲的場景和過程是動態并且伴有隨機要素的,這體現在兩點。
1、你重復玩一個游戲關卡,很可能兩次出現敵人以及游戲過程是不同的。
2、你玩一個手游的時候不進行操作,敵人和周圍的場景也在時刻發生改變。
這兩點對自動化測試帶來了極大的挑戰,如果測試腳本寫的不夠靈活,很容易導致上一次運行成功的腳本這一次就無法運行了。我們需要在測試腳本里適當的加入探索和自適應的功能。
App測試就沒有這個問題,大部分App的使用方式都是靜態且可以重復的。因此自動化測試可以完全按照測試腳本進行編寫并執行。
探索性。手游和App的第二個玩法不同在于探索性。App一般都是功能性的,好的App需要把它的功能簡單明了地告訴用戶。而游戲重在娛樂性,需要給玩家一定的探索要素。因此在做手游測試的時候,我們需要測試游戲的用戶幫助說明是否清晰,同時后續的游玩和探索過程和前面給出的說明之間是否有合理聯系,規則的指示是否有足夠的提示性。
難度測試。App希望做的越簡單,用戶的使用成本越低越好。而手游是有難度設置的。我們在做手游功能測試的時候,會把資源和等級調到最大以方便后期功能的執行,但當所有的功能測試都做完后,我們需要把自己的資源初始化,以"回歸"一個普通玩家的水平,通過普通玩家的視角來查看游戲的難度提升是否合理,資源分配是否均勻。
關卡測試。App的使用是功能性的,一個功能的重復使用總是一樣的。而手游具有關卡的概念,即便是同一種玩法,關卡和關卡之間也有細微的差別,前面的關卡測試正確了,并不表示后面的關卡一定是正確的。作者曾經碰到過一個手游的Bug,當游戲進行到某個后期關卡時,游戲一定會崩潰。而導致這個Bug的原因也很簡單:這個關卡的圖片資源在打包客戶端的時候沒有加入。因此當我們玩前面的關卡時并不會觸發這個Bug,但一到后面的關卡就出錯了。
這類Bug雖然原因簡單,但確實非常難測試到。因為各個關卡的玩法雖然都一致,但一個游戲的關卡數卻是非常多。如果我們要遍歷所有的關卡走一遍,那耗費的人力成本將是非常大的。對于這類重復性的關卡測試,建議使用自動化腳本進行遍歷。
PvP測試。App的使用普遍是單人的,而手游往往有玩家對戰的PvP模式,好的手游更是具有實時的PvP模式。由于兩個玩家實時進行游戲合作或者對戰,因此網絡延遲的測試就變得非常關鍵了。我們在測試中需要模擬不同的網絡對游戲延遲的影響,觀察兩個玩家的狀態和數據是否一致,同時體驗網絡延遲對游戲手感的影響,這在傳統的App測試中是完全不需要的。
總結
以上是生活随笔為你收集整理的移动测试中游戏和应用的不同之处的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RxJava 中的Map函数原理分析
- 下一篇: Lightoj-1356 Prime I