做兼容性測試的原因:
Android,iOS版本多,API在不同版本上的行為不一致,系統(tǒng)機制發(fā)生變化。Android定制Rom多,系統(tǒng)函數(shù)和機制被修改,系統(tǒng)參數(shù)差異,比如默認堆大小。硬件差異,GPU太差影響卡頓和渲染,屏幕尺寸,分辨率不同影響UI布局,相關(guān)的傳感器硬件差異。
兼容性不好造成的問題:
App安裝不上,App crash,業(yè)務(wù)流程中斷,尺寸錯亂,告警和報錯,卡頓,相應(yīng)慢,花屏,黑屏,白屏等。
Android 設(shè)備組合:
android版本覆蓋:4.4 ,6.x,8.x,9.x,10.x,11x
手機廠商定制Rom覆蓋:華為,小米,OPPO,VIVO,三星,魅族等
典型機型覆蓋:從用戶數(shù)據(jù)中提取
典型分辨率:可用模擬器代替
iOS設(shè)備組合:
iOS版本覆蓋:9.x ~ 13.x
典型機型覆蓋:iPad,iPhone
典型分辨率:常見分辨率,劉海屏,可用模擬器代替
模擬器可以用來做UI,分辨率的測試,真機用來測試定制ROM的兼容性測試。
ROM是由英文Read only Memory的首字母構(gòu)成的,意為只讀存儲器。顧名思義,就是這樣的存儲器只能讀,不能像RAM一樣可以隨時讀和寫。手機ROM指的是存放手機固件代碼的存儲器(常說的刷機也就是指的是重新構(gòu)建自己想要的ROM),比如手機的操作系統(tǒng)、一些應(yīng)用程序如游戲等。手機ROM主要指的是手機內(nèi)部可存儲資料、程序、文檔的空間,如果有不足的,可通過SD卡,mmd卡等外置卡解決文檔存量需求。 而手機RAM主要是指手機的內(nèi)存,主要針對手機軟件運行所需要的緩存堆棧,一般對手機的運行速度有直接的影響。
兼容性測試一般的流程:

測試環(huán)節(jié)可以用monkey工具或者Appcrawler來完成。

也可以使用第三方兼容性測試平臺,例如騰訊的WeTest。需要上傳直接可登錄的App安裝包,挑選想測試的機型,例如top100機型。完成測試之后,WeTest會生成兼容型測試報告:
首先是測試結(jié)論,包含測試機型的數(shù)據(jù),適配結(jié)果的分布,不兼容問題的分布,測試失敗的原因,和適配結(jié)果。

第二部分是設(shè)備詳情,列出了所有測試設(shè)備,并分成適配失敗的機型和適配通過的機型:

點擊每個設(shè)備的測試詳情頁面,能看到測試的數(shù)據(jù)和截圖:

最后是性能報告,統(tǒng)計了安裝耗時的分布圖,啟動耗時的分布圖,cpu使用率分布圖,內(nèi)存占用分布圖,流量使用分布圖:

性能測試數(shù)據(jù):

可以使用Jenkins的STF插件or 節(jié)點來設(shè)計兼容性測試的策略,要求每個case要在每個設(shè)備上都執(zhí)行一遍