安卓APP测试要怎么测,测试流程和重点有哪些?我来告诉你
目錄
一、安卓系統知識概述
1.1 安卓系統架構
1.2 安卓權限系統
1.3 認識adb與安卓間的通信
二、安卓APP測試流程圖
三、安卓App測試點
3.1 UI測試
3.2 兼容性測試
3.3 安裝卸載/本地升級測試OTA
3.4 版本在線升級測試FOTA
3.5 交互測試
3.6并發測試
3.7 客戶端數據庫測試
3.8 接口測試
3.9 性能測試
3.10安全性測試
3.11其他測試
四、工具技術(第三方)
4.1 系統監控常用ADB命令
4.2 需要功能
4.3 實現原理
一、安卓系統知識概述
1.1 安卓系統架構
- 應用程序層
- 應用程序框架層
- 系統運行庫庫層
- 系統內核層
- 四大組件和API
1.2 安卓權限系統
Android操作系統其實是一個多用戶的linux操作系統,每個android應用使用不同的用戶,運行在自己的安全沙盤里。系統為所有的文件設置權限,這樣一來只有同一個用戶的應用可以訪問它們。每個應用都有自己單獨的虛擬機,這樣應用的代碼在運行時是隔離的,即一個應用的代碼不能隨意訪問或者意外修改其他應用的內部數據。
1.3 認識adb與安卓間的通信
ADB,即Android Debug Bridge,他是Android提供的一個通用的調試工具,借助這個工具,我們可以很好的調試開發的程序,adb.exe在安裝的Android的sdk開發包platform-tools目錄下。
它是一個客戶端/服務器架構的命令行工具,主要由以下3個部分組成:
- 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.11其他測試
- 認證測試
- 扣費測試
- 應用商店發布測試結果
- 上傳下載測試
- 模擬用戶體驗測試----測試人員測(公司內部人員)
- 用戶體驗測試----給實際用戶使用(非公司內部人員)
四、工具技術(第三方)
4.1 系統監控常用ADB命令
1.4.1 查看應用啟動耗時
adb-s *******設備id****** shell am start -W -n 應用名.app/ .MainActivity1.4.2 獲得電池電量和電池溫度
adb shell dumpsys battery1.4.3 獲得最耗資源的應用
adb -s ***設備id *** shell top -m 6 -n l -s cpu1.4.4 獲得內存使用情況
adb -s ***設備***id adb shell dumpsys meminfo 應用程序包名1.4.5 獲取指定程序cpu使用情況
adb -s ***設備***id shell dumpsys cpuinfo 應用程序包名1.4.6 獲取指定程序PID
adb shell "ps | grep packageName"4.2 需要功能
- 檢測當前時間被測應用的CPU使用率 以及 總體CPU使用量。
- 檢測當前時間被測應用占用的內存量、百分比,剩余內存量。
- 檢測應用從啟動開始到當前時間消耗的流量數。
- 測試數據寫入到CSV文件中,存儲在手機/storage/sdcard0目錄下,同時支持以郵件形式發送文件。
- 可以選擇開啟浮窗功能,浮窗中實時顯示被測應用占用性能數據信息。
- 在浮窗中可以快速啟動或者關閉手機的wifi網絡。
4.3 實現原理
4.3.1 監控CPU的實現原理
Android系統是基于Linux內核的,所以系統文件的結構和Linux下一樣,系統總體CPU使用信息放在/proc/stat文件下,/proc/cpuinfo文件存放CPU的其它信息,包括CPU名稱,直接讀取即可。Emmagee是將選中應用的PID傳入,讀取/proc/PID/stat文件信息及可獲取該PID對應程序的CPU信息。
4.3.2 監控內存的實現原理
內存和cpu的處理方式類似。先獲取到當被測應用的PID,然后按照PID從 /proc/meminfo文件中獲取當前被測應用占用的內存信息。
4.3.3 監控流量消耗的實現原理
系統中有存放整體流量和針對當程序的流量統計,/proc/net/dev和/proc/uid_stat/UID下存放tcp_rcv和tcp_send文件,分別存放下行流量和上行流量,操作前后相減就得出結果 。
4.3.4 監控電量的實現原理
電量、電壓和溫度情況是通過監聽系統的電池管理事件的廣播來獲取的。
4.3.5 監控啟動時間的實現原理
我們點擊界面的開始測試時,程序會啟動,之后所有的數據統計以及更新進行處理的。會在onStartCommand()里面啟動一個線程“handler.postDelayed(task, 1000)”,進行數據的更新同時會嘗試通過ActivityManger從logcat中獲取到軟件的啟動時間。
紅色框框內的東西就是通過調用一個管理Android幀緩沖區的系統服務SurfaceFlinger來獲取用于計算fps的幀數據。
感謝每一個認真閱讀我文章的人!!!
我個人整理了我這幾年軟件測試生涯整理的一些技術資料,包含:電子書,簡歷模塊,各種工作模板,面試寶典,自學項目等。歡迎大家點擊下方名片加入群聊與我一起學習交流,群里還有大佬幫忙解答問題。
?
總結
以上是生活随笔為你收集整理的安卓APP测试要怎么测,测试流程和重点有哪些?我来告诉你的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vcs -xprop的理解
- 下一篇: 手机安全卫士第五天