CTS 検証ツールの使用

Android 互換性テストスイート検証ツール(CTS 検証ツール)は互換性テストスイート(CTS)を補完するものです。CTS は自動化できる API や機能をチェックするのに対して、CTS 検証ツールを使用すると、手動の入力や位置調整がない固定されたデバイスではテストできない API と機能をテストできます(たとえば、音質、タッチスクリーン、加速度計、カメラなど)。

要件

CTS 検証ツールを実行する前に、次の機器があることを確認します。

  • CTS に合格して Android API の互換性が確認された Android デバイス。これはテスト対象デバイス(DUT)です。
  • USB 2.0 対応ポートを備えた Linux パソコン。DUT へのすべての接続は、このポートを使用して行われます。
  • 互換性が確認されている Bluetooth、Wi-Fi Direct、Wi-Fi Aware、UWB(DUT が UWB をサポートしている場合)、NFC ホストカード エミュレーション(HCE)を実装している 2 台目の Android デバイス。
  • アクセス ポイント名とパスワードが設定された Wi-Fi ルーター。ルーターには、電源をオフにせずにインターネットから切断する機能が必要です。

UWB、Wi-Fi NAN、および Bluetooth RSSI の距離(近接)測定テストに必要な三脚、デバイス ホルダー、および測定済みの距離も準備してください。詳しくは、プレゼンス キャリブレーションをご覧ください。

NFC テストの UICC 要件

CTS 検証ツールには、次の NFC テストケースがあります。

  • フィールドオフ(0x54 のトランザクション データを使用)
  • 選択解除(0x52 のトランザクション データを使用)
  • HCI コマンド(0025000000)(0x02 のトランザクション データを使用)

トランザクション イベントのテストには 2 つのデバイスが必要です。一方のデバイスには、次のアクセスルールを持つ SecureElement UICC が必要です。

  • CtsVerifier APK ハッシュ: 61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81
  • NFC イベント アクセスの承認済みアプリケーション識別子(AID): 0xA000000476416E64726F696443545341

エミュレータ側では、トランザクション イベントが、対応するアクティビティをフォアグラウンドにプッシュすることが想定されます。

セットアップ

テストデバイスのシステム ナビゲーション モードを、以下のように 3 ボタンモードに変更します。

  1. [設定] を開きます。
  2. [システム] > [ジェスチャー] > [システム ナビゲーション] に移動します。
  3. ボタンベースのナビゲーション モードを選択します。設定可能な場合は、3 ボタンモードが優先されます。

次のようにして、CTS 検証ツールのテスト環境をセットアップします。

  1. Linux パソコンで次の作業を行います。

    • CTS 検証ツールをインストールする前に次のコマンドを実行して、非 SDK インターフェースへのアクセスを許可します。

      adb shell settings put global hidden_api_policy 1
      
    • Android Studio をインストールします。

    • テストする Android のバージョンに対応する CTS 検証ツールの APK をダウンロードします。

  2. DUT を Linux パソコンに接続します。

  3. Linux パソコンのターミナルから、DUT に CtsVerifier.apk をインストールします。

    adb install -r -g CtsVerifier.apk
    
  4. Android 10 以降の場合、次のコマンドを実行して、アプリにレポートを作成する権限を付与します。

    adb shell appops set com.android.cts.verifier android:read_device_identifiers allow
    
  5. Android 11 以降の場合、次のコマンドを実行して、デバイスの外部最上位ディレクトリにある自己定義ディレクトリにレポートを保存できるようにします。

    adb shell appops set com.android.cts.verifier MANAGE_EXTERNAL_STORAGE 0
    
  6. Android 13 以降の場合、次のコマンドを実行して、CTS 検証ツールのテスト API アクセスを許可します。

    adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier
    
  7. Android 14 以降の場合、次のコマンドを実行して、画面をオンにする権限をアプリに付与します。

    adb shell appops set com.android.cts.verifier TURN_SCREEN_ON 0
    
  8. DUT のシステムの日時が正しく設定されていることを確認します。

CTS 検証ツールの実行

DUT の CTS 検証ツールアイコンをタップして、CTS 検証ツール アプリケーションを起動します。

ランチャーの CTS 検証ツールアイコン

図 1. CTS 検証ツールアイコン

手動で検証できる複数のテストセットがアプリに表示されます。

CTS 検証ツールのテストのメニュー

図 2. CTS 検証ツールのテストのメニュー

各テストでは、画面の下部に共通のボタンが表示されます。

ストリーミング動画の品質検証ツール

図 3. 共通のテスト要素がハイライト表示されたテスト画面

  • 合格(✓): DUT が「情報」で表示された手順に照らしてテスト要件を満たしている場合にタップします。
  • 情報(?): タップするとテスト手順が表示されます。また、テストを初めて開いたときにも自動的に表示されます。
  • 不合格(!): DUT が「情報」で表示された手順に照らしてテスト要件を満たしていない場合にタップします。

USB アクセサリ モードやカメラ較正テストなどの一部のテストには、以降のセクションで説明する追加のセットアップと手順が必要です。

USB アクセサリ モード(8.0 以降)のテスト

CTS 検証ツール USB アクセサリ テスト

図 4. 8.0 以降での USB アクセサリ テストの手順

CTS 検証ツール USB アクセサリ テスト

図 5. 8.0 以降での USB アクセサリ モードのテスト

USB アクセサリ モード(7.x 以前)のテスト

USB アクセサリ テストを行うには、USB デスクトップ マシン(ホスト)プログラムを実行する Linux パソコンが必要です。

  1. DUT を Linux パソコンに接続します。
  2. パソコンで、CTS 検証ツール パッケージから cts-usb-accessory プログラムを実行します。

    ./cts-usb-accessory
  3. ポップアップ メッセージが DUT に表示されるのを待ってから、[OK] を選択します。
    CTS 検証ツール USB アクセサリ テスト

    図 6. USB アクセサリ テスト

  4. DUT の CTS 検証ツール アプリケーションで USB アクセサリ テストに進みます。

  5. パソコンで、コンソールからの出力を確認します。出力例:

    CTS USB Accessory Tester
    Found possible Android device (413c:2106) - attempting to switch to accessory
    mode...
    Failed to read protocol versionfigure3
    Found Android device in accessory mode (18d1:2d01)...
    [RECV] Message from Android device #0
    [SENT] Message from Android accessory #0
    [RECV] Message from Android device #1
    [SENT] Message from Android accessory #1
    [RECV] Message from Android device #2
    [SENT] Message from Android accessory #2
    [RECV] Message from Android device #3
    [SENT] Message from Android accessory #3
    [RECV] Message from Android device #4
    [SENT] Message from Android accessory #4
    [RECV] Message from Android device #5
    [SENT] Message from Android accessory #5
    [RECV] Message from Android device #6
    [SENT] Message from Android accessory #6
    [RECV] Message from Android device #7
    [SENT] Message from Android accessory #7
    [RECV] Message from Android device #8
    [SENT] Message from Android accessory #8
    [RECV] Message from Android device #9
    [SENT] Message from Android accessory #9
    [RECV] Message from Android device #10
    [SENT] Message from Android accessory #10
    

カメラの画角調整

画角較正手順を使用して、デバイスの画角を適度な精度ですばやく特定します。

  1. 次のようにして、テスト環境をセットアップします。

    1. ターゲットのファイル calibration-pattern.pdf を 11x17 インチまたは A3 サイズの用紙に印刷します。
    2. 印刷されたパターンを硬い裏板に取り付けます。
    3. 以下の図のように、カメラデバイスと印刷されたターゲットの方向を合わせます。
      カメラと印刷されたターゲット

      図 7. カメラと印刷されたターゲット

  2. 次のようにして、ターゲットの幅を設定します。

    1. 印刷の誤差を考慮して、ターゲット パターン上の実線間の距離(cm 単位)を測ります(約 38 cm)。
    2. 較正アプリケーションを開始します。
    3. セットアップ ボタンを押し、[Marker distance] を選択します。
    4. ターゲット パターンまでの距離(約 100 cm)を測定して入力します。
    5. [戻る] ボタンを押して、較正プレビューに戻ります。
  3. デバイスとターゲットが図のように配置され、正しい距離がセットアップ ダイアログに入力されていることを確認します。プレビューには、画像に縦線が重なったものが表示されます。この線は、ターゲット パターンの中心線に揃える必要があります。光軸がターゲットと直交するように、透明グリッドを他の縦線と組み合わせて使用できます。

  4. 次のようにして、較正テストを実行します。

    1. 左下のセレクタを使用して画像の解像度を選択してから、画面をタップして写真を撮影します。テストは較正モードに入り、2 本の縦線が画像に重なった写真が表示されます。
    2. 次のようにして、精度を確認します。
      • その線とターゲット パターン上の縦線が数 cm 以内の誤差で揃っていれば、表示されている選択した解像度に対する画角は正確です。
      • 線が揃っていない場合、表示されている画角は不正確です。これを修正するには、上に重なった線がターゲット パターンにできる限り近くに揃うまで、画面の下のスライダーを調整します。上に重なった線とターゲット パターン画像が揃った場合に、表示された視野は正しい値の近似値になっています。表示される視野は、較正値の +/-2 度以内になります。
    3. [戻る] ボタンを押し、DUT でサポートされているすべての画像解像度で較正テストを繰り返します。

代替モードでの CTS 検証ツールの実行

CTS 10 R6 と CTS 11 R2 のリリース以降、CTS 検証ツールでは、代替モードのあるデバイスやマルチ画面モードのあるデバイスに必要なテストがサポートされます。

CTS 検証ツールのメインリスト表示の最上部に表示されるボタンで、広げられた表示モードと折りたたまれた表示モードの切り替えを行うことができます。選択した表示モードに必要なテストが CTS 検証ツールに表示されます。CTS 検証ツールで代替モードを実行するには、ボタンを適切な表示モードに切り替えて、表示されたテストのリストを実行する必要があります。

CTS-V の切り替えスイッチ

折りたたまれたモードのテストの結果は、広げられたモードのテストと同じレポートに記録されます。テストセットが属する各テスト結果を区別するために、折りたたみモードの各テスト名にサフィックスが追加されます。

<Test result="fail" name="com.android.cts.verifier.deskclock.DeskClockTestsActivity[folded]">
  <RunHistory subtest="CREATE_ALARM[folded]">
    <Run start="1594176663973" end="1594176665841" isAutomated="false" />
  </RunHistory>
</Test>

結果をエクスポート

すべてのテストが完了すると、結果をレポートとして保存してパソコンにダウンロードできます。レポート名には、DUT のシステム時刻に基づいて自動的にタイムスタンプが付けられます。

  1. テスト結果を保存するには、テストカテゴリのリストの上部にある保存(ディスク)アイコンをタップします。

  2. 保存したレポートへのファイルパス(たとえば、/sdcard/verifierReports/ctsVerifierReport-date-time.zip)を表示するポップアップ メッセージが表示されるまで待ち、そのパスを記録します。

  3. DUT を Linux パソコンに接続します。

  4. Linux パソコンにインストールした Android SDK から、adb shell content read または adb pull CTSVerifierReportPath のコマンドを使用して、接続したデバイスからレポートをダウンロードします。

    • Android 7.x 以降の場合は、次のコマンドを使用してすべてのレポートをダウンロードします。

      adb pull /sdcard/verifierReports
      
    • Android 6.0 以前の場合は、次のコマンドを使用してすべてのレポートをダウンロードします。

      adb pull /mnt/sdcard/ctsVerifierReports/
      
    • Android 10 以降では、セカンダリ ユーザーとして Automotive およびデバイスを実装する場合、次のコマンドで最新のレポートをダウンロードします。

      adb shell content read --user CURRENT_USER --uri
      
      content://com.android.cts.verifier.testresultsprovider/reports/latest > report.zip
      

      接続したデバイスで利用できるすべてのレポートの一覧を表示するには、次のコマンドを実行します。

      adb shell content query --user CURRENT_USER --uri
      
      content://com.android.cts.verifier.testresultsprovider/reports
      

      リストからレポートをダウンロードするには、行 ID またはファイル名を指定します。次に例を示します。

      adb shell content read --user CURRENT_USER --uri
      
      content://com.android.cts.verifier.testresultsprovider/reports/0 > report.zip
      
      adb shell content read --user CURRENT_USER --uri
      
      content://com.android.cts.verifier.testresultsprovider/reports/ctsVerifierReport-date-time.zip >
      report.zip
      
  5. 合否の結果をクリアするには、CTS 検証ツールアプリで結果を選択し、[Menu] > [Clear] の順に選択します。