在開發者頭條上看到應該怎么做Android的兼容性測試,這里做一下記錄。
Android兼容性測試方案
1 概述
兼容性測試是指測試軟件在特定的硬件平台上、不同的應用軟件之間、不同的操作系統平台上、不同的網絡等環境中是否能夠很友好的運行的測試。
2 兼容性測試的目的
由於Android設備在品牌、系統、屏幕、硬件等碎片化較為嚴重,導致一些app在特定的機型上未能按預計的設計展示和運行,導致用戶體驗較差,不利於app的推廣,影響業務發展。為此,app需在上線前進行兼容性專項測試,以便盡可能適配市面上已上市或即將上市的手機和系統。
3 影響兼容性問題的因素
3.1 硬件
1、處理器
a) CPU架構,常規手機均是arm64 ,若app要適配x86架構則需要針對性測試
b) 不同CPU廠商,尤其是小眾CPU,需要特別考慮,例如華為海思、小米澎湃
2、 顯卡
a) 顯卡影響圖形渲染和部分場景的計算,app如用到OpenGL、OpenCV、深度學習、AR、VR、AI,則需要重點考慮
3、 屏幕
a) 分辨率影響UI展示,需兼容HVGA、VGA、WVGA、FWVGA、720p、1080p屏幕分辨率,並考慮不同PPI的情況
b) 關注異形屏幕:劉海屏、水滴屏、打孔屏、全面屏
ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | Total | |
Small | 0.3% | 0.1% | 0.4% | ||||
Normal | 0.7% | 0.3% | 24.7% | 41.9% | 25.2% | 92.8% | |
Large | 2.0% | 1.3% | 0.4% | 0.3% | 0.5% | 4.5% | |
Xlarge | 1.5% | 0.5% | 0.3% | 2.3% | |||
Total | 0.3% | 4.2% | 1.6% | 25.6% | 42.5% | 25.8% |
以 7 天為周期收集的數據(截止於 2018 年 10 月 26 日)。
未顯示任何分布份額不足 0.1% 的屏幕配置。
4、 傳感器
a) 視app實際調用情況進行選擇:如指紋模塊,則需要考慮不同供應商的情況
5、 物理按鍵
a) 檢測物理按鍵是否生效:音量鍵、電源鍵、拍照鍵
b) 與系統或其他app是否存在沖突
3.2 系統
1、 Rom
a) 不同版本的系統存在一些API、功能、權限等差異,需要結合app的功能進行適配;
b) 第三方定制rom具有一些特殊功能或權限,需要特別考慮,如MIUI
2、 編譯版本
a) app編譯時以最低版本設置值為標准,操作系統會拒絕將應用安裝在系統版本低於標准的設備上
b) Android版本更新,新的版本會引入一些新的特性和方法,新的方法帶來很多便利,但是對系統版本有要求,無法再低版本手機上運行,如果未做兼容性處理,強行運行,會導致Crash
附:Android 已發布版本和API對應表及占用率(官方數據)
Version | Codename | API | Distribution |
2.3.3 - 2.3.7 |
Gingerbread | 10 | 0.2% |
4.0.3 - 4.0.4 |
Ice Cream Sandwich | 15 | 0.3% |
4.1.x | Jelly Bean | 16 | 1.1% |
4.2.x | 17 | 1.5% | |
4.3 | 18 | 0.4% | |
4.4 | KitKat | 19 | 7.6% |
5.0 | Lollipop | 21 | 3.5% |
5.1 | 22 | 14.4% | |
6.0 | Marshmallow | 23 | 21.3% |
7.0 | Nougat | 24 | 18.1% |
7.1 | 25 | 10.1% | |
8.0 | Oreo | 26 | 14.0% |
8.1 | 27 | 7.5% |
7 天為周期收集的數據(截止於 2018 年 10 月 26 日)。
未顯示任何分布份額不足 0.1% 的版本。
3、 瀏覽器內核
a) 不同瀏覽器內核影響web頁面展示及功能
3.3 網絡
1、 2G/3G/4G/5G
a) 不同網絡下兼容各種類型的網絡請求,關注數據請求過程及結果
2、 WiFi
a) 部分WiFi非直連網絡,需要有一步認證的過程,需要特別考慮
b) 對於可能彈出廣告的WiFi要做兼容處理
4 介入時機
1、產品發布前或發布后更新涉及上述 “影響兼容性問題的因素”中一個或多個點時,且面臨用戶數較多、使用人群較為復雜
2、產品上市后出現較多兼容性問題
5 場景選擇
以下羅列的一些通用場景,並針對場景做了具體的描述,有些場景是非必測項,具體可視app功能來確定
5.1 安裝卸載
該場景會涉及系統權限,可能會出現無法安裝或安裝后數據丟失,甚至無法啟動
5.2 UI展示
受不同屏幕分辨率、PPI影響,可能會出現展示錯亂、圖片丟失、圖片穿透等
5.3 高頻交互
高頻交互場景受一系列因素影響,考驗整機兼容性,需特別考慮
5.4 H5頁面(JS/CSS)
不同瀏覽器內核、瀏覽器標識會影響具體樣式的展示及數據請求
5.5 文字輸入
受輸入法、虛擬鍵盤影響,可能會出現無法上屏,或上屏錯亂
5.6 系統API交互
受不同廠家、版本的rom影響,可能會導致功能無法使用
5.7 權限相關
受不同廠家、版本的rom影響,可能會導致一些權限無法正常獲取
5.8 音視頻播放/錄制
音視頻的錄制會調用麥克風(多麥)及攝像頭(雙攝、三攝等),可能存在不可使用或音視頻出現錯亂
5.9 傳感器調用
可能存在傳感器無法調用、權限異常或數據異常
5.10 升級覆蓋
受存儲權限、安全性影響,可能會出現數據丟失、無法啟動等錯誤
5.11 三方SDK
三方SDK的架構、技術選型會影響上層正常調用
5.12 外設交互
特殊廠商的鍵盤、鼠標等外設可能存在沖突或無法調用
6 設備選擇
1、通過用戶調研、競品分析、三方平台數據(近階段各設備占用率分布及設備出貨量、預出貨量等)等確定設備選擇范圍;
附:
友盟設備統計:https://compass.umeng.com/trend
百度設備統計:https://mtj.baidu.com/data/mobile/device/
艾瑞移動設備分析:http://index.iresearch.com.cn/device
騰訊移動分析:https://mta.qq.com/mta/data/device
2、根據app類型,確定重點考慮的指標(通常考慮rom、分辨率、廠商),剔除重復,保留用戶量較多的設備
7 測試方法
參照上文中列出的和兼容性相關的點以及產品特性,整體相關場景,並選擇合適的設備進行手工活自動化方式進行測試驗證(附:設備選擇方式參考)
自行協調 | 雲測平台 | |
優點 | 擁有設備的完全控制權,測試范圍更廣 | 設備豐富,執行較為簡單,有完整的測試報告 |
缺點 | 需要采購,成本較大,有些特殊系統很難協調到資源 | 需要支出一定費用,設備不完全可控,靈活性較差 |
附:
常見雲測平台對比報告
8 案例
7.1 某工具類APP兼容性測試簡述
1、分析:通過對app的定位、使用場景、功能等分析,確定以UI切圖展示、主功能、三方應用交互、網絡、輸入框和分辨率作為主要測試點
2、用例設計:分別針對上述測試點設計測試用例3、選擇設備:由於該款app面向大眾人群,所以選擇從整體設備占用率來進行機型篩選
a、UI切圖和分辨率的測試點選擇top20機型中篩選不同的分辨率,分別包含:WVGA、VGA、HVGA等不同類型的10余種分辨率
b、主功能測試點選擇top20機型
c、三方應用交互測試點選擇top20機型種不同的品牌的代表性機型(占用量靠前)
d、網絡測試點選擇top20機型中不同基帶、網絡制式的代表性機型(占用量考前)
綜上,可以得出兼容性測試的最終機型
4、測試執行:本案例中采用手工執行
5、測試報告:按測試點、場景、機型、結果列出
(喜歡請轉發,謝謝!)
更多精彩文章: