現在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應用測試新人提供思考方向。希望看完本文,您對於移動應用的測試多了一些瞭解。