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


何為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的權限。

為什么需要CTS?

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

通過CTS測試,可以保證

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

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根目錄中

CTS目錄結構說明

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目錄下

CTS操作基本命令

分類 命令 說明
Host help 基本命令幫助說明
Host help all 全部命令幫助說明
Host exit 退出控制台
Run run cts --plan test_plan_name 運行指定計划
Run run cts --package/-p 運行指定包
Run run cts --class/-c [--method/-m] 運行指定方法
Run run cts --continue-session session_ID 繼續運行指定回話ID
Run run cts [options] --serial/-s device_ID 運行指定設備
Run run cts [options] --shards number_of_shards 運行多個設備
Run run cts --help/--help-all 運行幫助
List l/list d/devices 列出連接的設備
List l/list packages 列出所有測試包
List l/list p/plans 列出所有測試計划
List l/list r/results 列出已經保存的結果

CTS測試結果分析

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

  • 一類是可以waive的,可以waive的項是谷歌自身的原因,經谷歌同意可以不用處理的項。另一類是需要我們分析修復的。 關於可以waive的選項,可以waive的選項一般會有一個表格維護,這個表格會不定時更新,可主動向相關人員索取。

  • 如果不是google waive項,請查看log,在異常log的附近會有一些相關的信息,看能否找到原因。如果在之前的版本上測試PASS,可定位一下OK版本和fail版本之間的代碼提交,進而縮小排除范圍。有些時候想在測試包里面加一些LOG信息,可以自行編譯工程代碼的CTS,用來測試調試。若實在不能分析,可向平台商(如MTK/Qualcomm)尋求幫助。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM