一、安卓系統知識概述
1.1 安卓系統架構
應用程序層
應用程序框架層
系統運行庫庫層
系統內核層
四大組件和API
1.2 安卓權限系統
1.3 認識adb與安卓間的通信
adb客戶端:一個用於用戶開發程序的電腦上運行的客戶端
adb服務端:負責客戶端與用戶設備的守護進程的通信
adb daemon(守護進程):一個以後臺進程的形式運行於模擬器或者物理手機設備上的守護程序
二、安卓APP測試流程圖(轉)
三、安卓App測試點
3.1 UI測試
按鈕、對話框、列表和窗口等靜態界面測試
內容(列表頁、提示框)等動態界面測試
APP與系統相關聯之處的UI測試,如:狀態欄/鎖屏彈出的提示,設置中的應用顯示、手機界面的APP顯示等
APP與launcher間的交互、與系統其它應用間的交互、與系統本身的交互UI測試
3.2 兼容性測試
不同手機品牌
不同手機的操作系統以及操作系統的不同版本
不同手機屏幕分辨率和不同屏幕尺寸(一般測試主流分辨率)
網絡環境的兼容性 (WiFi、移動網絡、弱網環境、無網絡環境、專網環境)
與本地軟件的兼容性
APP匹配硬件設備測試(耳機、藍牙、NFC、照相機、手環等等)--根據APP的業務需求特性
3.3 安裝卸載/本地升級測試OTA
應用程序的正常安裝,圖標顯示正常,安裝後正常運行(不同操作系統下安裝)、版本號是否正確
不同版本之間的覆蓋安裝(版本一致,版本大於、版本小於)
覆蓋安裝後,用戶數據的保留
應用程序的正常卸載,卸載後用戶數據是否刪除
安裝/卸載過程中異常情況(斷電,空間不足等)
安裝/卸載過程是否支持取消操作
手動式、命令式adb、自動式(第三方輔助工具)安裝
安裝前後恢復出廠設置,app/數據是否丟失、版本是否改變
安裝/卸載權限,是否有安裝卸載權限,無權限時是否可安裝,
root前後安裝測試
直接拷貝至手機system/app目錄下是否直接使用
3.4 版本在線升級測試FOTA
當客戶端有新版本時,有更新提示。
當版本爲非強制升級版時,用戶可以取消更新,老版本能正常使用。用戶在下次啓動app時,仍能出現更新提示。
當版本爲強制升級版時,當給出強制更新後用戶沒有做更新時,退出客戶端。下次啓動app時,仍出現強制升級提示。
當客戶端有新版本時,在本地不刪除客戶端的情況下,直接更新檢查是否能正常更新。
用戶下載/安裝版本過程中斷網或斷電異常情況,是否可恢復,是否支持斷電下載
恢復出廠設置後是否可以支持修改
下載升級包後刪除,是否還可以在繼續下載/是否還有推送提示
整機FOTA升級、獨立APP應用FOTA升級策略
3.5 交互測試
應用的前後臺切換
殺進程
鎖屏
長時間待機
中斷
搖一搖、翻轉
開關機、重啓
3.6 併發測試
應用與應用間併發場景---使用APP時接收微信/QQ等來信(含視頻呼叫)
應用與定位場景----使用APP時不影響定位準確性
應用與通話/短信場景----使用APP時來電話/短信
應用與多媒體場景 ----使用APP時播放音樂/電影
應用與流量併發衝突場景----使用APP時數據業務流量/wifi使用不受影響,且穩定,沒有過大消耗流量場景
應用併發時的功耗和數據流量場景
3.7 客戶端數據庫測試
客戶端後臺數據的增、刪、改、查等數據更新測試
數據爲空的情況測試
檢查客戶端數據存在時,app數據是否能自動從客戶端數據中取出,檢查客戶端數據存在時,app數據是否能自動從客戶端數據中取
當業務對數據進行了修改、刪除後,客戶端和服務端是否會有相應的更新。
沒有root權限,是否可以刪除全部或重要系統文件,會導致app或手機無法使用的文件
3.8 接口測試
業務邏輯功能測試
邊界值測試
參數組合測試
異常情況測試
3.9 性能測試
單位時間耗電量----功耗:軟件手段(工具、log)、硬件手段(電流表儀器)、其他策略(專項待機、隨機待機、非待機)
單位時間網絡流量---公網數據/wifi流量、吞吐量
移動端相關資源利用率---CPU、內存容量是否影響
業務響應時間----響應速度
幀率 ----流暢度
穩定性
可靠性/可恢復性
壓力測試
3.10 安全性測試
反編譯測試--代碼示否混淆(逆向工程)
app簽名/密鑰/加密測試
完整性校驗
敏感信息測試
軟鍵盤劫持
權限設置檢查--root
組件安全測試--四大組件:Activity、Service、ContentProvider、Broadcast
服務端接口測試
攻擊類測試--SQL注入、XSS跨站腳本攻擊、CSRF跨站請求僞造、越權訪問
安全測試工具--掃描
基礎環境--公網環境、網絡環境、數據存放環境
數據安全(傳輸、通信、賬戶安全)
程序/代碼安全--後門
業務安全
3.10 其他測試
認證測試
扣費測試
應用商店發佈測試
上傳下載測試
模擬用戶體驗測試----測試人員測(公司內部人員)
用戶體驗測試----給實際用戶使用(非公司內部人員)
四、工具技術(第三方)
4.1 系統監控常用ADB命令
adb-s *******設備id****** shell am start -W -n 應用名.app/ .MainActivity
adb shell dumpsys battery
adb -s ***設備id *** shell top -m 6 -n l -s cpu
adb -s ***設備***id adb shell dumpsys meminfo 應用程序包名
adb -s ***設備***id shell dumpsys cpuinfo 應用程序包名
adb shell "ps | grep packageName"
4.2 需要功能
檢測當前時間被測應用的CPU使用率 以及 總體CPU使用量。
檢測當前時間被測應用佔用的內存量、百分比,剩餘內存量。
檢測應用從啓動開始到當前時間消耗的流量數。
測試數據寫入到CSV文件中,存儲在手機/storage/sdcard0目錄下,同時支持以郵件形式發送文件。
可以選擇開啓浮窗功能,浮窗中實時顯示被測應用佔用性能數據信息。
在浮窗中可以快速啓動或者關閉手機的wifi網絡。
4.3 實現原理
「Have Fun ~ Tester !」
-
FunTester測試框架架構圖初探 -
10萬QPS,K6、Gatling和FunTester終極對決! -
環境基礎【FunTester框架教程】 -
生產環境中進行自動化測試 -
小白自動化測試指南 -
成爲自動化測試的7種技能 -
Selenium4前線快報 -
測試爲何會錯過Bug -
httpclient使用HTTP代理實踐 -
Socket.IO接口多用戶測試實踐 -
無數據驅動自動化測試 -
從Java到Groovy的八級進化論 -
Selenium 4以後,再不相見的API·
「點擊閱讀閱文,查看FunTester歷史原創集合」
本文分享自微信公衆號 - FunTester(NuclearTester)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。