淺談移動網際網路App測試

小金子cc發表於2018-07-05

前言

在移動網際網路高速發展的今天,測試作為技術研發流程中最重要的環節之一,其地位是不言而喻的。一個測試人員需要具備什麼樣的技術能力,怎麼樣快速對移動網際網路測試有一個全面的認識和學習,是測試人員必須面對和考慮的,也給測試人員提出了新的挑戰。

功能自動化測試

如果僅僅依靠純手工的測試,很快就會面臨瓶頸,因為每個功能幾乎都要經過 bug修復、驗證和迴歸的過程。另外針對介面協議的驗證,也必須依賴自動化才能驗證。

移動網際網路的產品和Web網際網路產品類似,後臺都有大量的介面提供相應的服務,很多的業務邏輯都是放在後臺來處理的,所以可以針對這部分邏輯做輕量級的介面自動化測試。技術方案上,從介面發起相關請求的做法效率不高且不夠穩定,所以我們一般採用直接從介面層面發起請求來驗證。

除了介面的自動化,App UI 自動化也可以幫助快速地進行App功能的迴歸。考慮到UI自動化用例建設和維護成本,可以針對相對穩定的功能進行App UI 自動化用例建設,這些用例除了UI的自動化驗證之外,持續整合和相容性測試中也能發揮他們的價值。目前業界用的比較多的App UI自動化測試框架有Robotium和Appium,Robotium相對原生的UI自動化測試框架,提供了更友好的定位控制元件的方法,在寫自動化指令碼的時候建議使用Robotium類庫來提高測試效率。Appium框架是一個開源的重量級的自動化測試框架,支援iOS和Android等平臺的自動化測試,支援跨平臺,支援真機和模擬器,也支援多種語言編寫測試指令碼。每種測試框架都有其優缺點,可以根據實際的專案來挑選適合自己的。

效能測試

產品經過了功能層面的驗證,還達不到釋出的要求,還有很多影響使用者體驗的問題需要重點關注,比如App使用時不流暢,操作時服務端響應慢,高峰期使用應用頻繁報錯,莫名閃退,App使用一段時間後佔用記憶體過高,介面開啟速度變慢等等。這些問題雖然不關乎功能,但很有可能造成使用者的流失,影響產品的口碑。所以我們需要做充分的效能測試來規避相關風險。

效能測試是一個非常綜合的測試技術,涉及面廣,測試人員需要有一定的積累才能發現隱藏較深的問題,對於移動App的效能測試,分為Web前端的效能測試、App端的效能測試,後臺服務的效能測試。Web前端的效能測試已經較為成熟,Fiddler、FireBug等工具都能輔助測試。App端的效能測試在這三項中是最重要的,頁面渲染的時間,CPU的使用情況、記憶體洩露,都會直接影響到App的執行效能,甚至導致程式崩潰。測試的時候可以藉助一些工具幫助分析記憶體使用情況。基於後臺服務的效能測試主要是從負載、壓力、永續性等方面量化地評估系統的響應時間和容量等指標。

專項測試

針對某個特殊問題進行的測試,我們稱為專項測試,它是移動網際網路產品中重要的測試型別,可以從不同的維度發現更多深層次的問題,必不可少。主要有以下幾類:

相容性測試

隨著終端裝置的型號多樣化,使用者多了以後自然而然就會遇到相容性問題,因此需要覆蓋不同的軟硬體環境來進行相容性測試。作業系統的版本、螢幕解析度、網路型別、瀏覽器型別都是需要考慮的。執行方案上,一般會藉助UI自動化和雲測試平臺來進一步提升相容性測試的效率和覆蓋面。

流量測試

App 使用過程中,很多使用者會關心流量用了多少,特別是非寬頻的流量需要付費時。如果App設計有缺陷,頻繁聯網去服務端獲取資訊,會導致流量消耗較快,最終結果是導致使用者解除安裝App。所以流量測試從兩個方面入手,前臺使用者的操作和後臺的流量消耗情況。對於Android系統,可以通過系統提供的API介面來獲取流量資料,而對於iOS系統,可以通過Instrument自帶的Network來檢視網路流量。當然還有其他方法,比如可以通過手機抓包、Wifi代理的方式來獲取流量資料進行分析。控制流量的策略也有很多,資料壓縮、訪問控制、快取、不同訪問策略和不同的資料格式等等,在App設計之初最好能提前考慮到這些方面,避免後續架構改動較多帶來一定的風險。

電量測試

電量和流量一樣,也是使用者較為關心的一個方面。耗電太快,也會導致使用者流失。Android系統上,可以藉助第三方App來評估手機上各個App的耗電情況。針對iOS系統,還是依賴Instrument提供的Energy工具,從多個維度來檢視App的耗電情況,同時蘋果提供了類庫也可以獲取當前裝置電量資訊。

弱網路測試

很多時候,問題總是在環境比較複雜的情況下才會暴露出來,弱網路就是其中之一。與其讓使用者遇到帶來不好的體驗,不如在測試階段模擬弱網路環境,及早解決。iOS系統中自帶的開發者選項可以對網路狀態進行設定。另外目前還有好多弱網路模擬工具比如Charles可以幫助測試,還可以採用真機模擬弱網路的方式。

穩定性測試

說起移動App穩定性測試,第一個想到的肯定是Monkey測試,Monkey工具使用起來也比較簡單,通過命令就可以執行。當應用程式崩潰或者產生了ANR(Application not responding),Monkey就會停止並報錯。

安全測試

移動App產品的安全測試主要有以下幾個方面:安裝包的安全測試,能否反編譯、是否簽名、許可權檢查、完整性校驗;敏感資訊測試,包括資料庫、日誌、配置檔案中的資訊;賬戶安全和資料通訊安全;服務端介面的安全測試,常用的SQL隱碼攻擊,XSS跨站指令碼攻擊、CSRF跨站請求偽造,越權訪問。

以上各項測試可以獨立執行,也可以交叉結合,構造更加複雜的測試場景。

寫在最後

也許這裡的技術/工具方案並不是最好的,但是各維度領域的測試思路,希望能對你有所幫助。


相關文章