安卓APP测试要怎么测,测试流程和重点有哪些?我来告诉你
目錄
一、安卓系統(tǒng)知識概述
1.1 安卓系統(tǒng)架構(gòu)
1.2 安卓權(quán)限系統(tǒng)
1.3 認(rèn)識adb與安卓間的通信
二、安卓APP測試流程圖
三、安卓App測試點(diǎn)
3.1 UI測試
3.2 兼容性測試
3.3 安裝卸載/本地升級測試OTA
3.4 版本在線升級測試FOTA
3.5 交互測試
3.6并發(fā)測試
3.7 客戶端數(shù)據(jù)庫測試
3.8 接口測試
3.9 性能測試
3.10安全性測試
3.11其他測試
四、工具技術(shù)(第三方)
4.1 系統(tǒng)監(jiān)控常用ADB命令
4.2 需要功能
4.3 實(shí)現(xiàn)原理
一、安卓系統(tǒng)知識概述
1.1 安卓系統(tǒng)架構(gòu)
- 應(yīng)用程序?qū)?/li>
- 應(yīng)用程序框架層
- 系統(tǒng)運(yùn)行庫庫層
- 系統(tǒng)內(nèi)核層
- 四大組件和API
1.2 安卓權(quán)限系統(tǒng)
Android操作系統(tǒng)其實(shí)是一個(gè)多用戶的linux操作系統(tǒng),每個(gè)android應(yīng)用使用不同的用戶,運(yùn)行在自己的安全沙盤里。系統(tǒng)為所有的文件設(shè)置權(quán)限,這樣一來只有同一個(gè)用戶的應(yīng)用可以訪問它們。每個(gè)應(yīng)用都有自己單獨(dú)的虛擬機(jī),這樣應(yīng)用的代碼在運(yùn)行時(shí)是隔離的,即一個(gè)應(yīng)用的代碼不能隨意訪問或者意外修改其他應(yīng)用的內(nèi)部數(shù)據(jù)。
1.3 認(rèn)識adb與安卓間的通信
ADB,即Android Debug Bridge,他是Android提供的一個(gè)通用的調(diào)試工具,借助這個(gè)工具,我們可以很好的調(diào)試開發(fā)的程序,adb.exe在安裝的Android的sdk開發(fā)包platform-tools目錄下。
它是一個(gè)客戶端/服務(wù)器架構(gòu)的命令行工具,主要由以下3個(gè)部分組成:
- adb客戶端:一個(gè)用于用戶開發(fā)程序的電腦上運(yùn)行的客戶端
- adb服務(wù)端:負(fù)責(zé)客戶端與用戶設(shè)備的守護(hù)進(jìn)程的通信
- adb daemon(守護(hù)進(jìn)程):一個(gè)以后臺進(jìn)程的形式運(yùn)行于模擬器或者物理手機(jī)設(shè)備上的守護(hù)程序
? ? ? ? ? ? ? ? ??
二、安卓APP測試流程圖
三、安卓App測試點(diǎn)
3.1 UI測試
- 按鈕、對話框、列表和窗口等靜態(tài)界面測試
- 內(nèi)容(列表頁、提示框)等動態(tài)界面測試
- APP與系統(tǒng)相關(guān)聯(lián)之處的UI測試,如:狀態(tài)欄/鎖屏彈出的提示,設(shè)置中的應(yīng)用顯示、手機(jī)界面的APP顯示等
- APP與launcher間的交互、與系統(tǒng)其它應(yīng)用間的交互、與系統(tǒng)本身的交互UI測試
3.2 兼容性測試
- 不同手機(jī)品牌
- 不同手機(jī)的操作系統(tǒng)以及操作系統(tǒng)的不同版本
- 不同手機(jī)屏幕分辨率和不同屏幕尺寸(一般測試主流分辨率)
- 網(wǎng)絡(luò)環(huán)境的兼容性 (WiFi、移動網(wǎng)絡(luò)、弱網(wǎng)環(huán)境、無網(wǎng)絡(luò)環(huán)境、專網(wǎng)環(huán)境)
- 與本地軟件的兼容性
- APP匹配硬件設(shè)備測試(耳機(jī)、藍(lán)牙、NFC、照相機(jī)、手環(huán)等等)--根據(jù)APP的業(yè)務(wù)需求特性
3.3 安裝卸載/本地升級測試OTA
- 應(yīng)用程序的正常安裝,圖標(biāo)顯示正常,安裝后正常運(yùn)行(不同操作系統(tǒng)下安裝)、版本號是否正確
- 不同版本之間的覆蓋安裝(版本一致,版本大于、版本小于)
- 覆蓋安裝后,用戶數(shù)據(jù)的保留
- 應(yīng)用程序的正常卸載,卸載后用戶數(shù)據(jù)是否刪除
- 安裝/卸載過程中異常情況(斷電,空間不足等)
- 安裝/卸載過程是否支持取消操作
- 手動式、命令式adb、自動式(第三方輔助工具)安裝
- 安裝前后恢復(fù)出廠設(shè)置,app/數(shù)據(jù)是否丟失、版本是否改變
- 安裝/卸載權(quán)限,是否有安裝卸載權(quán)限,無權(quán)限時(shí)是否可以安裝,
- root前后安裝測試
- 直接拷貝至手機(jī)system/app目錄下是否直接使用
3.4 版本在線升級測試FOTA
- 當(dāng)客戶端有新版本時(shí),有更新提示。
- 當(dāng)版本為非強(qiáng)制升級版時(shí),用戶可以取消更新,老版本能正常使用。用戶在下次啟動app時(shí),仍能出現(xiàn)更新提示。
- 當(dāng)版本為強(qiáng)制升級版時(shí),當(dāng)給出強(qiáng)制更新后用戶沒有做更新時(shí),退出客戶端。下次啟動app時(shí),仍出現(xiàn)強(qiáng)制升級提示。
- 當(dāng)客戶端有新版本時(shí),在本地不刪除客戶端的情況下,直接更新檢查是否能正常更新。
- 用戶下載/安裝版本過程中出現(xiàn)斷網(wǎng)或斷電異常情況,是否可恢復(fù),是否支持?jǐn)嚯娤螺d
- 恢復(fù)出廠設(shè)置后是否可以支持修改
- 下載升級包后刪除,是否還可以再繼續(xù)下載/是否還有推送提示
- 整機(jī)FOTA升級、獨(dú)立APP應(yīng)用FOTA升級策略
3.5 交互測試
- 應(yīng)用的前后臺切換
- 殺進(jìn)程
- 鎖屏
- 長時(shí)間待機(jī)
- 中斷
- 搖一搖、翻轉(zhuǎn)
- 開關(guān)機(jī)、重啟
3.6并發(fā)測試
- 應(yīng)用與應(yīng)用間并發(fā)場景---使用APP時(shí)接收微信/QQ等來信(含視頻呼叫)
- 應(yīng)用與定位場景----使用APP時(shí)不影響定位準(zhǔn)確性
- 應(yīng)用與通話/短信場景----使用APP時(shí)來電話/短信
- 應(yīng)用于多媒體場景 ----使用APP時(shí)播放音樂/電影
- 應(yīng)用與流量并發(fā)沖突場景----使用APP時(shí)數(shù)據(jù)業(yè)務(wù)流量/wifi使用不受影響,且穩(wěn)定,沒有過大消耗流量場景
- 應(yīng)用并發(fā)時(shí)的功耗和數(shù)據(jù)流量場景
3.7 客戶端數(shù)據(jù)庫測試
- 客戶端后臺數(shù)據(jù)的增、刪、改、查等數(shù)據(jù)更新測試
- 數(shù)據(jù)為空的情況測試
- 檢查客戶端數(shù)據(jù)存在時(shí),app數(shù)據(jù)是否能自動從客戶端數(shù)據(jù)中取出,檢查客戶端數(shù)據(jù)是否存在時(shí),app數(shù)據(jù)是否能自動從客戶端數(shù)據(jù)中取
- 當(dāng)業(yè)務(wù)對數(shù)據(jù)進(jìn)行了修改、刪除后,客戶端和服務(wù)端是否會有相應(yīng)的更新。
- 沒有root權(quán)限,是否可以刪除全部或重要系統(tǒng)文件,會導(dǎo)致app或手機(jī)無法使用的文件
3.8 接口測試
- 業(yè)務(wù)邏輯功能測試
- 邊界值測試
- 參數(shù)組合測試
- 異常情況測試
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
3.9 性能測試
- 單位時(shí)間耗電量----功耗:軟件手段(工具、log)、硬件手段(電流表儀器)、其他策略(專項(xiàng)待機(jī)、隨機(jī)待機(jī)、非待機(jī))
- 單位時(shí)間網(wǎng)絡(luò)流量---公網(wǎng)數(shù)據(jù)/wifi流量、吞吐量
- 移動端相關(guān)資源利用率---CPU、內(nèi)存容量是否影響
- 業(yè)務(wù)響應(yīng)時(shí)間----響應(yīng)速度
- 幀率 ----流暢度
- 穩(wěn)定性
- 可靠性/可恢復(fù)性
- 壓力測試
3.10安全性測試
- 反編譯測試--代碼是否混淆(逆向工程)
- app簽名/密鑰/加密測試
- 完整性校驗(yàn)
- 敏感信息測試
- 軟鍵盤劫持
- 權(quán)限設(shè)置檢查--root
- 組件安全測試--四大組件:Activity、Service、ContentProvider、Broadcast
- 服務(wù)端接口測試
- 攻擊類測試--SQL注入、XSS跨站腳本攻擊、CSRF跨站請求偽造、越權(quán)訪問
- 安全測試工具--掃描
- 基礎(chǔ)環(huán)境--公網(wǎng)環(huán)境、網(wǎng)絡(luò)環(huán)境、數(shù)據(jù)存放環(huán)境
- 數(shù)據(jù)安全(傳輸、通信、賬戶安全)
- 程序/代碼安全--后門
- 業(yè)務(wù)安全
3.11其他測試
- 認(rèn)證測試
- 扣費(fèi)測試
- 應(yīng)用商店發(fā)布測試結(jié)果
- 上傳下載測試
- 模擬用戶體驗(yàn)測試----測試人員測(公司內(nèi)部人員)
- 用戶體驗(yàn)測試----給實(shí)際用戶使用(非公司內(nèi)部人員)
四、工具技術(shù)(第三方)
4.1 系統(tǒng)監(jiān)控常用ADB命令
1.4.1 查看應(yīng)用啟動耗時(shí)
adb-s *******設(shè)備id****** shell am start -W -n 應(yīng)用名.app/ .MainActivity1.4.2 獲得電池電量和電池溫度
adb shell dumpsys battery1.4.3 獲得最耗資源的應(yīng)用
adb -s ***設(shè)備id *** shell top -m 6 -n l -s cpu1.4.4 獲得內(nèi)存使用情況
adb -s ***設(shè)備***id adb shell dumpsys meminfo 應(yīng)用程序包名1.4.5 獲取指定程序cpu使用情況
adb -s ***設(shè)備***id shell dumpsys cpuinfo 應(yīng)用程序包名1.4.6 獲取指定程序PID
adb shell "ps | grep packageName"4.2 需要功能
- 檢測當(dāng)前時(shí)間被測應(yīng)用的CPU使用率 以及 總體CPU使用量。
- 檢測當(dāng)前時(shí)間被測應(yīng)用占用的內(nèi)存量、百分比,剩余內(nèi)存量。
- 檢測應(yīng)用從啟動開始到當(dāng)前時(shí)間消耗的流量數(shù)。
- 測試數(shù)據(jù)寫入到CSV文件中,存儲在手機(jī)/storage/sdcard0目錄下,同時(shí)支持以郵件形式發(fā)送文件。
- 可以選擇開啟浮窗功能,浮窗中實(shí)時(shí)顯示被測應(yīng)用占用性能數(shù)據(jù)信息。
- 在浮窗中可以快速啟動或者關(guān)閉手機(jī)的wifi網(wǎng)絡(luò)。
4.3 實(shí)現(xiàn)原理
4.3.1 監(jiān)控CPU的實(shí)現(xiàn)原理
Android系統(tǒng)是基于Linux內(nèi)核的,所以系統(tǒng)文件的結(jié)構(gòu)和Linux下一樣,系統(tǒng)總體CPU使用信息放在/proc/stat文件下,/proc/cpuinfo文件存放CPU的其它信息,包括CPU名稱,直接讀取即可。Emmagee是將選中應(yīng)用的PID傳入,讀取/proc/PID/stat文件信息及可獲取該P(yáng)ID對應(yīng)程序的CPU信息。
4.3.2 監(jiān)控內(nèi)存的實(shí)現(xiàn)原理
內(nèi)存和cpu的處理方式類似。先獲取到當(dāng)被測應(yīng)用的PID,然后按照PID從 /proc/meminfo文件中獲取當(dāng)前被測應(yīng)用占用的內(nèi)存信息。
4.3.3 監(jiān)控流量消耗的實(shí)現(xiàn)原理
系統(tǒng)中有存放整體流量和針對當(dāng)程序的流量統(tǒng)計(jì),/proc/net/dev和/proc/uid_stat/UID下存放tcp_rcv和tcp_send文件,分別存放下行流量和上行流量,操作前后相減就得出結(jié)果 。
4.3.4 監(jiān)控電量的實(shí)現(xiàn)原理
電量、電壓和溫度情況是通過監(jiān)聽系統(tǒng)的電池管理事件的廣播來獲取的。
4.3.5 監(jiān)控啟動時(shí)間的實(shí)現(xiàn)原理
我們點(diǎn)擊界面的開始測試時(shí),程序會啟動,之后所有的數(shù)據(jù)統(tǒng)計(jì)以及更新進(jìn)行處理的。會在onStartCommand()里面啟動一個(gè)線程“handler.postDelayed(task, 1000)”,進(jìn)行數(shù)據(jù)的更新同時(shí)會嘗試通過ActivityManger從logcat中獲取到軟件的啟動時(shí)間。
紅色框框內(nèi)的東西就是通過調(diào)用一個(gè)管理Android幀緩沖區(qū)的系統(tǒng)服務(wù)SurfaceFlinger來獲取用于計(jì)算fps的幀數(shù)據(jù)。
感謝每一個(gè)認(rèn)真閱讀我文章的人!!!
我個(gè)人整理了我這幾年軟件測試生涯整理的一些技術(shù)資料,包含:電子書,簡歷模塊,各種工作模板,面試寶典,自學(xué)項(xiàng)目等。歡迎大家點(diǎn)擊下方名片加入群聊與我一起學(xué)習(xí)交流,群里還有大佬幫忙解答問題。
?
總結(jié)
以上是生活随笔為你收集整理的安卓APP测试要怎么测,测试流程和重点有哪些?我来告诉你的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vcs -xprop的理解
- 下一篇: 手机安全卫士第五天