手機大廠必備測試技能-CTS 兼容測試

檸檬班軟件測試 發佈 2020-01-03T12:53:50+00:00

如果不是googlewaive項,請查看log,在異常log的附近會有一些相關的信息,看能否找到原因 如果在之前的版本上測試PASS,可定位一下OK版本和fail版本之間的代碼提交,進而縮小排除範圍 ,有些時候想在測試包裡面加一些LOG信息,可以自行編譯工程代碼的CTS,用來測試

01、何為CTS

相信小夥伴們都有用過各種款式的Android手機,如小米、魅族、華為、oppo、vivo,雖然他們的頁面長的都不太一樣,比如小米的長這樣:

魅族的:


oppo的:


還有垂死掙扎的錘子...

但是這些手機其實都是搭載的Android系統,只不過國內的手機廠商在原生Android的基礎上進行修改/定製。其實原生的Android長這樣:

這麼多手機廠商都要改造成自己的UI,甚至要對Android底層進行改動,難免不會改出什麼問題。所以Google為了這些定製的系統能夠符合統一的規範、兼容Android底層的API,就引入了CTS測試。


以下是其官方介紹

Compatibility Test suite系列兼容測試,Google定義了一個兼容性規範(Compatible Definition),而CTS就是為了確保某個測試符合該規範。從而基於Android的應用程式能在基於同一個api版本的設備上面運行。通過CTS測試的device可以獲得android的商標,並且享受android market的權限。


02、為什麼需要CTS


由於Google的開放策略,越來越多的終端廠商以及網際網路企業加入到手機終端商的領域,加劇了Android移動終端的碎片化,導致出現基於Android客戶端的App產品因為兼容性差,不能在用戶手機上正常安裝、運行錯誤、強制退出等問題,嚴重影響用戶的體驗。

通過CTS測試,可以保證

  • 讓APP提供更好的用戶體驗,用戶可以選擇更多的適合自己設備的APP;
  • 讓開發者設計更高質量的APP;
  • 通過CTS的設備可以運行Android market;


03、CTS配置

下載和配置CTS

官網:http://source.android.com/compatibility/downloads.html

注意:此網站需要FQ

下載文件:(Android 4.4為例)

  • Android 4.4 Compatibility Definition Document (CDD)
  • Android 4.4 R3 Compatibility Test Suite (CTS) - ARM
  • Android 4.4 R3 Compatibility Test Suite (CTS) - x86
  • Android 4.4 R3 CTS Verifier - ARM
  • Android 4.4 R3 CTS Verifier - x86
  • Compatibility Test Suite (CTS)
  • User Manual CTS Media 1.1

配置CTS

  • 解壓Compatibility Test Suite對應的壓縮包
  • 將解壓出來的android-cts文件夾,複製到SDK根目錄中


04、CTS目錄結構說明


05、CTS測試流程


測試準備

step1:測試環境:

  • linux系統(最好是64位的ubuntu)
  • 需正確配置JAVA JDK , android SDK

step2:工具準備:

  • 將下載的CTS包解壓到/data目錄
  • 下載需要進行測試的軟體版本(ROM)
  • 插入可用的SD卡,容量最好是大於1G
  • 插入可用的Sim卡,如果為雙卡版本,需確保卡一的卡槽有可用的Sim卡.
  • 寫入合法的IMEI號

step3:手機配置:

  • 手機恢復出廠設置(Settings→Backup and reset→Factory data reset)
  • 確保SD中有足夠的空間(大於1G),可將SD格式化清空。
  • 確保手機里沒有Google帳號或者其他帳號存在
  • 確保日期和時間的正確(開了Wifi或者數據連接以後會自動更新時間,時區選默認的)
  • 設置螢幕為常亮(Settings→Display→Sleep→Never)
  • 設置無鎖屏(Settings→Security→Set up screen lock→None)安裝CtsDeviceAdmin.apk,(在android-cts/repository/testcases下,可用adb install CtsDeviceAdmin.apk),並進入Settings→Security→Device administrators開啟裡面的兩個包

測試執行

進入到/android-cts/tools目錄輸入:./ cts-tradefed

進入測試環境

再執行run cts --plan CTS進行整體測試:

run cts -c android.app.cts.SystemFeaturesTest

測試過程持續時間超過10+小時

測試結果會生成在android-cts/repository/results目錄中的 testResult.xml

Log日誌文件位於android-cts/repository/logs目錄下


06、CTS操作基本命令


07、CTS測試結果分析


測試報告的fail項分為兩類:

  • 一類是可以waive的,可以waive的項是谷歌自身的原因,經谷歌同意可以不用處理的項。另一類是需要我們分析修復的。 關於可以waive的選項,可以waive的選項一般會有一個表格維護,這個表格會不定時更新,可主動向相關人員索取。
  • 如果不是google waive項,請查看log,在異常log的附近會有一些相關的信息,看能否找到原因 如果在之前的版本上測試PASS,可定位一下OK版本和fail版本之間的代碼提交,進而縮小排除範圍 ,有些時候想在測試包裡面加一些LOG信息,可以自行編譯工程代碼的CTS,用來測試調試。 若實在不能分析,可向平台商(如MTK/Qualcomm)尋求幫助。
關鍵字: