開發人員推動的 CTS

本頁面列出開發人員主導的 CTS (CTS-D) 使用規範。

測試涵蓋範圍

與 CTS 和 CTS 驗證器一樣,CTS-D 只能強制執行下列項目:

  • 開發人員 SDK (developer.android.com) 中針對特定 API 級別說明的所有公開 API。
  • Android 相容性定義說明文件 (CDD) 中,特定 API 級別的所有 MUST 需求。

非 MUST 規定 (例如「強烈建議」、「應」、「可能」) 為選用規定,無法使用 CTS 測試。

由於所有 API 和 CDD 要求都與特定 API 級別相關聯,因此所有 CTS 測試 (CTS、CTS-D 和 CTS 驗證器) 都與相關聯的 API 或要求屬於同一 API 級別。如果特定 API 已淘汰或變更,對應的測試也必須淘汰或更新。

CTS 測試建立規則

  • 測試必須持續產生相同的客觀結果。
  • 測試必須判斷裝置是否通過測試,方法是測試裝置是否能正常運作。
  • 測試建立者必須移除所有可能影響測試結果的因素。
  • 如果裝置需要特定硬體條件/環境/設定,則必須在提交訊息中清楚定義該設定。如需設定操作說明範例,請參閱「設定 CTS」。
  • 測試一次不得執行超過 6 小時。如果需要執行更長時間,請在測試提案中說明原因,我們會進行審查。

以下是測試應用程式限制的一組測試條件範例:

  • Wi-Fi 連線穩定 (適用於需要 Wi-Fi 的測試)。
  • 測試期間,裝置保持靜止 (或不保持靜止,視測試而定)。
  • 裝置已拔除電源,電池電量為 X%。
  • 除了 CTS 之外,沒有任何應用程式、前景服務或背景服務正在執行。
  • 執行 CTS 時,螢幕會關閉。
  • 裝置「不是」isLowRamDevice
  • 省電模式 / 應用程式限制未變更為「開箱即用」狀態。

測試資格

我們接受的新測試會強制執行現有 CTS、CTS 驗證器或 CTS-D 測試未測試的行為。如果測試檢查的行為超出測試涵蓋範圍,系統會拒絕。

CTS 提交程序

  1. 撰寫測試提案:應用程式開發人員使用 Google Issue Tracker 提交測試提案,說明已發現的問題,並提議進行測試來檢查問題。提案必須包含相關的CDD 需求 ID。Android 團隊會審查提案。
  2. 開發 CTS 測試:提案通過後,提案者會在 Android 最新發行版本分支 (android16-release) 的 AOSP 上建立 CTS 測試。Android 團隊會審查程式碼,如果接受,就會挑選變更並合併至內部開發分支。詳情請參閱「我應該在哪裡提議變更 AOSP?」。

CTS-D 測試撰寫指南

  • 請遵守 Java 程式碼樣式指南
  • 按照「CTS 開發」一文中的所有步驟操作。
  • 將測試新增至適當的測試計畫:
    • 使用 include-filters 將新測試新增至 CTS-D 測試計畫:platform/cts/tools/cts-tradefed/res/config/cts-developer.xml
    • 使用 exclude-filters 從主要 CTS 測試計畫中排除新測試:platform/cts/tools/cts-tradefed/res/config/cts-developer-exclude.xml
  • 處理 build_error.log 中的所有 errorprone 警告和建議。
  • 將變更重新設定基準至 head。包括 cts-developer.xmlcts-developer-exclude.xml 測試計畫。
  • 與 Google 工程聯絡人合作,判斷測試案例是否可納入現有 CTS 模組。如果無法,他們會協助你建立新模組。
  • 為建立的每個新測試模組,在新測試模組目錄中建立 OWNERS 檔案。
    • OWNERS 檔案應包含下列資訊,這些資訊來自您合作的 Google 測試擁有者:
    • # Bug component: xxx
    • Google 測試擁有者 LDAP
  • AndroidTest.xml 中,指定下列參數。請參閱範例檔案 (12):
    • Instant_appnot_instant_app
    • secondary_usernot_secondary_user
    • all_foldable_statesno_foldable_states
  • 如要指定正確的 minSDK,請參閱 <uses-sdk> 說明文件
  • 簽入新的測試方法、類別或模組時,請將這些項目加入 CTS-D 測試計畫,並以與新測試相同的方式,將這些項目從主要 CTS 測試計畫中排除。

執行 CTS-D 測試

透過指令列使用 run cts --plan cts-developer 執行 CTS-D 測試計畫。

如要執行特定測試案例,請使用 run cts --include-filter "test_module_name test_name"

如要瞭解如何執行完整 CTS,請參閱「執行 CTS 測試」。

接受與發布

提交測試要求後,內部團隊會進行審查,確保測試內容符合 CDD 規定或已記錄的 API 行為。如果測試是為了檢查有效需求或行為,團隊會將這個測試案例轉交給 Google 工程師進一步審查。Google 工程師會與您聯絡,提供測試改進建議,然後才能將測試納入 CTS。

如要瞭解 CTS 發布時間表,請參閱「發布時間表和分支資訊」。