楠木軒

如果你是個苦逼的APP測試員,這些自動化測試工具或許能幫到你!

由 段幹方 發佈於 科技

現在app的開發已經是火爆的一個開發趨勢,手機應用的測試也顯得格外的重要,現在大部分還是停留在手動測試的狀態。我們知道手機app開發,要適應不同的設備,比如一個Android app要適應不同的版本,不僅是要支持最新的版本,舊的版本也需要支持,這也就導致了手動測試需要購買N部android手機來手動測試,如何應對繁瑣的手機測試呢?當然是使手機測試自動化。

經常有新手或者經驗尚淺的朋友在後台給我留言:手機App功能測試用什麼自動化工具啊?這些多測試工具到底用於什麼測試啊?針對APP測試如何選擇自動化測試工具這個問題,今天我來給大家做一個彙總。

功能測試

功能測試最開始最基礎的就是分析需求編寫測試用例,測試是把握質量的守關人,保證不漏測的第一步就是要編寫儘可能全面的測試用例。基礎打牢後多實踐。測試是講究經驗的職業,從簡單需求開始,制定測試計劃,編寫用例執行,執行過程及時調整計劃爆出風險和進度給團隊知道非常重要。而且現在是自動化的時代,你可以學習使用一些自動化測試工具來進行功能自動化測試。

自動化工具

a) 輕量接口自動化測試

jmeter

b) APP UI層面的自動化

android:UI Automator Viewer,Android Junit,Instrumentation,UIAutomator,

iOS:基於Instrument的iOS UI自動化

測試方法

根據軟件説明或用户需求驗證App的各個功能實現,採用如下方法實現並評估功能測試過程:

1)採用時間、地點、對象、行為和背景五元素或業務分析等方法分析、提煉App的用户使用場景,對比説明或需求,整理出內在、外在及非功能直接相關的需求,構建測試點,並明確測試標準。

2)根據被測功能點的特性列出相應類型的測試用例對其進行覆蓋,如:設計輸入的地方需要考慮等價、邊界、負面、異常、非法、場景回滾、關聯測試等測試類型對其進行覆蓋。

3)在測試實現的各個階段跟蹤測試實現與需求輸入的覆蓋情況,及時修正業務或需求理解錯誤。

性能測試

自動化工具

a) Web前端性能測試

網絡抓包工具:Wireshark

網頁文件大小

webpagetest

pagespeed insight

chrome adb

b) APP端性能測試

Android內存佔用分析:MAT

iOS內存問題分析:ARC模式

Android WebView性能分析:

iOS WebView性能分析

c) 後台服務性能測試

負載,壓力,耐久性

可拓展性,基準

工具:apacheAB,Jmeter,LoadRunner

測試方法:

1)響應能力測試:測試App中的各類操作是否滿足用户響應時間要求。

App安裝、卸載的響應時間

App各類功能性操作的響應時間

2)壓力測試,反覆/長期操作下,系統資源是否佔用異常。

App反覆進行安裝卸載,檢查系統資源是否正常

其他功能反覆進行操作,檢查系統資源是否正常

專項測試

APP啓動快不快?跑起來是不是常常Crash?是否有卡頓?這些問題可以靠專項測試來解決。專項測試包括CPU、內存、幀率、流量、電量等;這塊有很多工具和方法,如果能做好專項測試,那在業界是很受歡迎的。在大公司,如果APP有一個大的版本要發佈,通常是需要做全面的專項測試的。

a) 兼容性測試

手工測試:操作系統,分辨率,rom,網絡類型

雲平台:testin,腳本編寫,Android。

測試方法

主要測試內部和外部兼容性

1)與本地及主流App是否兼容

2)與各種設備是否兼容,若有跨系統支持則需要檢驗是否在個系統下,各種行為是否一致。

不同手機屏幕的兼容性

分標率

不同手機品牌的兼容性

b) 流量測試

Android自帶的流量管理,

iOS自帶的Network

tcpdump抓包

WiFi代理抓包:Fiddler

流量節省方法:壓縮數據,json優於xml;WebP優於傳統的JPG,PNG;控制訪問的頻次;只獲取必要的數據;緩存;

c) 電量測試

基於測試設備的方法,購買電量表進行測試。

GSam Battery Monitoe Pro

iOS基於Instrument Energy工具

d) 弱網絡測試

手機自帶的網絡狀況模擬工具

基於代理的弱網絡的模擬:

工具:windows:Network Delay Simulator

Mac:Network Link Conditioner

實地測試

e) 穩定性測試

Android:Monkey

模糊測試

f) 安全測試

安裝包:反編譯,簽名,完整性校驗,權限。

敏感信息測試:

鍵盤劫持

賬户安全

數據加密

組件安全測試

服務端接口測試:SQL注入,XSS跨站腳本攻擊,CSRF跨站請求偽造,越權訪問。

g) 環境相關的測試

干擾測試

權限測試

邊界情況

定位測試

輔助測試方法

a) 代碼靜態掃描

Android工具:FindBugs,Lint,

iOS工具:Analyze

b) 代碼覆蓋率測試

現有框架:emma,jacoco

c) 接口Mock方法

接口異常模擬

d) AOP測試方法

AspectJ

Aspects

總結:

由於移動互聯網的應用太多,更新頻繁,無論如何不是個人經驗所能覆蓋完全的。以上幾點,僅從我測試過的APP進行總結,僅為APP應用測試新人提供思考方向。希望看完本文,您對於移動應用的測試多了一些瞭解。