來自:https://www.cnblogs.com/linxiu-0925/p/7636570.html
移動APP測試,除了基礎功能測試測試方法外,需要額外關注以下方面:
-
兼容性測試
-
流量測試
-
電量測試
-
弱網絡測試
-
穩定性測試
-
安全測試
-
環境相關測試
- apk性能測試
兼容性測試
針對App通常會考慮這些方面:
1、操作系統版本
包括Andoird版本,iOS版本
2、屏幕分辨率
android 800*480, 960*640,1280*720(720p),1920*1080(1080p),2560*1440(2k).
對於iOS,考慮最近幾代機型對應的分辨率即可.
3、不同廠家的ROM
不同廠家的ROM,大多廠家都對android 系統進行了定製、實際中會遇到例如調用相機和底層服務出現的不兼容問題以及搖一搖遇到的不同手機對於方向和重力傳感器靈敏度設置不同的問題.
4、網絡類型
網絡類型通常考慮wifi,2g,3g4g下的功能情況。另外針對m版網站考慮不同瀏覽器類型和屏幕分辨率.
流量測試
在移動產品的測試中,很有必要對App使用的流量進行度量,大致來說,流量可以從用戶使用的的相關性角度分爲:一類是用戶的操作直接導致的流量消耗;另一類是後臺,即在用戶沒有直接使用情況下的流量消耗。
流量的測試方法:
1、基於系統自帶功能.
eg android proc/uid_stat/{uid} /tcp_send
android proc/uid_stat/{uid} /tcp_rcv
2、通過API或者系統埋點來獲取數據。
3、通用的流量測試方法:手機抓包,或者wifi代理(Fiddler, Charles)。
常見的流量節省方法:
1、數據壓縮。
2、壓縮包含接口文本數據的壓縮,js文件的壓縮及圖片的壓縮。
3、不同數據格式的採用
例如採用JSON格式作爲接口數據返回格式通常比XML格式要小。
4、控制訪問的頻次
這個主要針對後臺數據上報,PUSH消息檢查等定時機制的。
5、只獲取必要的數據
有時候APP一頁的內容非常多,而用戶可能只會看一部分,過多的從後臺拉去數據就是浪費,所以可以採用分屏加載或者懶加載的方式來減少流量消耗。
6、緩存
可將圖片,js等數據暫存起來,但由於手機存儲空間有限,也需要控制整個緩存大小,並給用戶提供清理緩存的選項。
7、針對不同網絡類型設計不同的訪問策略
有些APP不同的網絡類型返回的內容不一樣。
電量測試
在電器電池技術沒有取得巨大突破前提下,這方面始終會存在一些瓶頸,如果一些App架構設計的不好,或者代碼偶缺陷,就可能導致電量消耗比較高,所以電量測試也是很重要的。
工具 GSam Battery Monitor Pro.
弱網絡測試
移動互聯網產品相比PC互聯網產品,有一個特點是前者使用的網絡比較多樣,除了Wif之外,很多時候是在移動網絡下使用的,移動網絡遇到的情況又比較複雜,比如地鐵、隧道、體育場等。所以網絡不穩定的情況是比較容易發生的,很多情況下App的一些問題是在複雜的網絡情況下才會暴露,與其讓用戶發現和投訴這些問題,不如我們在測試階段儘量模擬這樣的網絡情況,及早發現和修復這些問題。
工具:
Windows下的Network Delay Simulator
Mac下的Network Link Conditioner
穩定性測試
在保證基本功能正確基礎之上,App的穩定性就顯得非常重要,如果一個App經常出現閃退或者卡死,那麼用戶體驗就會受到很大傷害,在有其他競爭產品的情況下很容易造成用戶的流失。
穩定性測試的概念有2種,
一, 穩定性測試,對應於異常性測試,即發生異常情況時,系統如何反應的測試。包含:
1 交互性測試,被打擾的情況,如來電,短信,低電量等。這些其實在上章的功能測試中有提到。
2 異常性測試,斷網,斷電,服務器異常等情況
二,穩定性測試指的是性能測試,壓力測試
1 基準性能測試,通過壓服務器端口及客戶端在不同網絡環境下響應速度
2 大數據測試,在特定環境下,客戶端一次性更新大量數據及人員列表
另有其它文章,提到性能測試,爲評估APP的時間和空間特性(真是高深啊,時間和空間,再來個4維,5維?),包括:
1 極限測試:在各種邊界壓力情況下,如電池,存儲,網速等,驗證app是否能正確響應
--內存滿時安裝app
--運行app手機斷電
--運行app時斷掉網絡
這幾點倒是與第一條的內容重複
2 響應能力測試:測試app中的各類操作是否滿足用戶響應時間要求
--app安裝 ,卸載的響應時間
--app各類功能性操作的影響時間
3 壓力測試:反覆、長期操作下,系統資源是否佔用異常
--app反覆進行安裝卸載,查看系統資源是否正常(弄個幾次就行吧,正常人,誰反覆安裝卸載啊)
--其它功能反覆進行操作,查看系統資源是否正常(這倒是應該的)
4 性能評估:評估典型用戶應用場景下,系統資源的使用情況
這裏要定義,什麼是典型用戶應用場景
5 benchmark測試(基線測試),應該不是基準性能測試:與競爭產品的benchmarking,產品演變對比測試等(沒有多大意義)。
安全測試
1、包括安裝包的安全測試(能否反編譯代碼、安裝包是否簽名,完整性校驗,權限設置檢查等)。
2、敏感信息測試(數據庫,日誌,配置文件)。
3、軟鍵盤劫持(金融類APP登錄頁面的用戶名密碼輸入框)、
賬戶安全(密碼是否明文,密碼傳輸是否加密,賬戶輸入錯誤次數過多鎖定,同時會話提醒, 註銷機制)
數據通信安全(關鍵數據是否散列或加密,關鍵連接是否使用安全通信,是否對數字證書合法性進行驗證,是否校驗數據合法性。
4、組件安全測試。
5、服務器端接口測試(SQL注入測試、XSS跨站腳本攻擊, CSRF跨站請求僞造,越權訪問等)。
環境相關測試
在實際項目中,有一些缺陷我發現是和App所處的運行環境相關的,所以設計測試的時候,要多考慮這些場景,比如:
1、干擾測試
收到電話、收到短信、收到通知欄消息、無電提示框彈出、第三方安全軟件告警彈出。
2、權限測試
一些用戶在實際使用App的時候回有意識阻止某些功能。例如有的用戶感覺讓某個App訪問電話本或者相冊可能泄漏隱私,就在手機中設置了禁止了該App訪問相冊的權限。
3、邊界測試
手機環境本身也有其邊界情況需要在測試中覆蓋。常見的場景有:
可用存儲空間過少、沒有SD卡/雙SD卡、飛行模式、系統時間有誤(晚於和早於標準時間)、第三方依賴(比如我們的App依賴第三方App,但是現在第三方App沒有安裝或者版本過低的測試情況)。
4、Android定位測試
用白盒方式模擬
apk性能測試
普遍的apk性能測試,主要是以下七類
1、響應
2、內存
3、cpu
4、FPS (app使用的流暢度)
5、GPU過度渲染
6、耗電
7、耗流