本頁面列出開發人員主導的 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 提交程序
- 撰寫測試提案:應用程式開發人員使用 Google Issue Tracker 提交測試提案,說明已發現的問題,並提議進行測試來檢查問題。提案必須包含相關的CDD 需求 ID。Android 團隊會審查提案。
- 開發 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.xml
和cts-developer-exclude.xml
測試計畫。 - 與 Google 工程聯絡人合作,判斷測試案例是否可納入現有 CTS 模組。如果無法,他們會協助你建立新模組。
- 為建立的每個新測試模組,在新測試模組目錄中建立 OWNERS 檔案。
- OWNERS 檔案應包含下列資訊,這些資訊來自您合作的 Google 測試擁有者:
# Bug component: xxx
- Google 測試擁有者 LDAP
- 在
AndroidTest.xml
中,指定下列參數。請參閱範例檔案 (1、2):Instant_app
或not_instant_app
secondary_user
或not_secondary_user
all_foldable_states
或no_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 發布時間表,請參閱「發布時間表和分支資訊」。