CTS 常見問題

Android 兼容性計劃是維持 Android 生態系統積極反饋的關鍵驅動力。 CTS是保證量表兼容質量的關鍵工具。 Android 團隊不斷完善 CTS 工具和測試覆蓋率。定期添加測試用例對兼容設備的質量有顯著提升。

本文提供常見問題解答以更有效地運行 CTS 測試。

CTS Sharding 和 TF Sharding 有什麼區別?

CTS Sharding 和 TF Sharding 是完全不同的測試計劃,由不同的測試基礎設施代碼庫提供支持。雖然不同版本的運行命令相同,但分片結果的行為不同。 CTS Sharding 將測試用例靜態分配給被測設備 (DUT),如下所示:

TF Sharding 動態地將測試用例分配給可用的 DUT,如下所示:

  • 命令:運行cts
  • Android 9 的配置:/platform/test/suite_harness/+/pie-cts-dev/tools/cts-tradefed/res/config/ cts-suite.xml

支持多個 ABI 的設備有什麼期望?

設備必須通過它聲稱支持的每種 ABI 模式的所有 CTS/驗證程序。因此,有必要為特定的 ABI 執行應用程序。多個 ABI 的指南如下:

  • 對於 CTS/Verifier,每種架構都有ARM 和 x86 版本。它們中的每一個都可以支持 32 位或 64 位模式。
  • 對於 CTS 測試,如果設備同時支持 ARM 和 x86,則它必須分別運行並通過 ARM 和 x86 CTS 測試。

CDD 3.3.1。用於 ABI 上 CDD 要求的應用程序二進制接口

僅在主要 ABI(例如 64 位)上運行測試是否足以減少測試執行時間?

不會。Android 應用程序在其自己的 32 位或 64 位運行時上運行。實際機器碼、代碼路徑和狀態在 32 和 64 之間是不同的。如果你跳過一種模式,你只覆蓋了 50% 的設備 ABI。

為什麼有這麼多測試用例報告為未執行?

您應該檢查Module Done編號而不是Not Executed編號。

在舊版本中,CTS 模塊在完成之前被報告為Module Done過於激進。因此,即使某些設備出現問題,也沒有完成所有測試用例就報告了Modules Done編號。新的測試工具更加保守,並在出現問題時報告更多的未執行測試。

模塊運行到完成在報告中的最近調用中報告模塊未完成(done="false") 在以下期間:

  • 模塊的測試運行因設備連接問題而中斷。
  • 並未執行該模塊的所有預期測試運行。
  • 使用其他過濾選項重試(使用選項-r/--retry ),例如:

    • --include-filter
    • --排除過濾器
    • -t/--test(重試時尚不支持該選項)
    • --重試類型失敗
    • --子計劃

要獲得這些模塊的Module Done (done="true") 狀態,請為最近的調用重試以下操作:

run retry --retry <session_id> for Android 9 and later versions
run cts --retry <session_id> for Android 8.1 and previous versions

沒有上述任何問題(即使剩餘 0 個測試)執行的模塊在新報告中被標記為Module Done

例外

  • 由於 linux/OS 對 args 的限制,CtsNNAPITestCases 存在一個已知問題。該模塊可以通過直接run cts -m CtsNNAPITestCases單獨重新運行。

如何避免企業防火牆後的測試準備失敗?

所有自動化測試套件都嘗試在運行時下載 CTS 媒體文件或業務邏輯文件。在許多公司環境中,防火牆/代理是典型的,這會導致測試準備失敗。執行以下行或將其添加到 .profile(在 Ubuntu 上)。

export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'

我是否需要用於 CTS for Secure Element 的 SIM 卡?

測試是否需要 SIM 卡取決於對測試設備是否支持該功能的了解。

  • 如果您的設備不需要支持訪問安全元素的 Android 應用程序(無論是在移動網絡運營商(運營商)分發的UICC (例如 SIM 卡)中還是嵌入在設備中),您可以將 HIDL 清單配置為不包括android.hardware.secure_element HAL 元素。在這種情況下, android.se.omapi.SEService.getReaders() API 將報告一個空列表,CTS 測試將自動通過並報告 CTS 通過。
  • 如果您的設備確實需要支持訪問安全元素的 Android 應用程序——無論是在移動網絡運營商(運營商)分發的UICC (例如 SIM 卡)中還是嵌入在設備中——您需要正確實施安全元素並對其進行測試內部。安全元素的 CTS 測試概述瞭如何準備運行 CTS 測試以確保 Android 9 中添加的android.se.omapi API 包正常運行。我們還建議您自行執行其他測試,因為 CTS 測試覆蓋率極低。

我在哪裡可以獲得 CTS for Secure Element 的 SIM 卡?

您可以聯繫您首選的 SIM 供應商。

為什麼在使用令牌分片的 CTS 執行期間,Orange SIM 在鎖定屏幕上?

測試用例沒有啟動,因為測試 SIM 卡被鎖定。在使用令牌分片執行 CTS 之前,禁用“SIM 卡鎖定設置”中的“鎖定 SIM 卡”選項。