Complete Automotive Tests in a Box

Complete Automotive Tests in a Box (CATBox) は、最小限の構成で自動車テストを合理化し実行するために必要なフレームワークとツールを提供するオープン ソース パッケージです。 CATBox はスケーラブルであり、Android Automotive OS (AAOS) 実装のテストと検証に使用するツール、インフラストラクチャ、テストと互換性があります。その結果、高品質の製品を市場に提供することができます。

CATBox の設計と実装

CATBox テスト スイートは、車載ターゲット デバイス上およびコンパニオン デバイスの使用中に機能テストとパフォーマンス テストを実行するために必要なツール、フレームワーク、テストを提供します。

次の図は、CATBox パッケージの高レベルの設計を示しています。

CATBox

図 1. CATBox パッケージ

トレードフェッド

Tradefed は、Android デバイスでテストを実行するために使用されるオープンソースの継続的テスト フレームワークです。詳細については、 Trade Federation の概要を参照してください。

自動車試験フレームワーク

CATBox は、自動車デバイス上のさまざまなアプリをテストするための API を提供するSpectatioと呼ばれる自動車テスト フレームワークに基づいています。これは、オープン ソースのテスト フレームワークであるUI Automatorの上に構築されており、ユーザー アプリケーションやシステム アプリケーションと対話する UI テストを構築するための API セットを提供します。

CATBox テスト スイートのダウンロード

アンドロイド14

Android Automotive 14 は、コード名 U という開発マイルストーンのリリースです。Android 14 用の CATBox テスト スイートをダウンロードするには、次のリンクを使用します。

アンドロイド12

Android 12 は、コード名 S の開発マイルストーンのリリースです。Android 12 用の CATBox テスト スイートをダウンロードするには、次のリンクを使用します。

アンドロイド11

Android 11 は、コード名 R という開発マイルストーンのリリースです。Android 11 用の CATBox テスト スイートをダウンロードするには、次のリンクを使用します。

CATBox を構築する

Android AOSP コードがローカル ワークステーションで利用可能になったら、 catbox build コマンドを使用します。

CATBox パッケージをローカルでビルドするには:

  1. デバイス アーキテクチャに基づいてデバイス ターゲットを選択し、次のコマンドを実行します。

    lunch <target>
    
  2. CATBox を構築するには、次のコマンドを実行します。

    make catbox
    

    このコマンドは、 /out/host/linux-x86/catboxディレクトリにandroid-catbox.zipファイルを作成します。このファイルは、テストの実行に使用できます。

環境をセットアップする

CATBox テストの実行に必要な環境セットアップは、 「CTS のセットアップ」と似ています。環境をセットアップするには、次の各タスクを完了します。

CATBox のセットアップと実行

Tradefed テスト フレームワークを使用して、Android デバイスでテストを実行します。 CATBox をセットアップする前に、 「 Trade Federation の概要 」を参照してください。

CATBox をセットアップして実行するには、以下のセクションを参照してください。

デバイスをセットアップする

テスト計画を実行する前に、次の手順を実行してデバイスをセットアップします。

  1. Android Debug Bridge (adb)Android Asset Packaging Tool (AAPT)の両方の最新バージョンがインストールされていること、およびこれらのツールの場所がマシンのシステム パスに追加されていることを確認してください。詳細については、 「ADB および AAPT」を参照してください。

  2. 少なくとも 1 つのデバイスを接続し、次のようにテスト対象デバイス (DUT) を準備します。

    1. 車載デバイスを工場出荷時設定にリセットするには、 [設定] > [システム] > [リセット オプション] > [すべてのデータを消去]に移動します。

    2. デバイスが自動的に再起動するまで待ちます。

    3. adb が有効になっていることを確認してください。デバイスが利用可能であることを確認するには、次のコマンドを実行します。

      adb devices
      
    4. root を有効にするには、次のコマンドを実行します。

      adb -s DEVICE_SERIAL root
      

      DEVICE_SERIAL車載デバイスのシリアル ID に置き換えます。

    5. Wi-Fiに接続します。

CATBox パッケージを抽出する

デバイスをセットアップした後、CATBox パッケージを解凍し、抽出されたフォルダーに移動します。

unzip android-catbox.zip
cd android-catbox

CATBox でテストを実行する

CATBox パッケージ内のテスト計画を使用して CATBox を実行するには:

./tools/catbox-tradefed run commandAndExit TEST_PLAN_NAME --serial DEVICE_SERIAL

DEVICE_SERIAL車載デバイスのシリアル ID に置き換えます。ホスト マシンに複数のデバイスが接続されている場合は、 DEVICE_SERIALを使用してそれらを区別します。 TEST_PLAN_NAMEを、実行するテスト計画の名前に置き換えます。

利用可能なプランの最も完全なリストを取得するには、コマンド ラインを使用します。

./tools/catbox-tradefed list plans | grep -i catbox

テスト計画の種類

次の表に、利用可能な機能テスト計画を示します。

機能テスト計画説明
catbox-functional機能テスト。
catbox-functional-app-info-settingアプリ情報設定の機能テスト。
catbox-functional-admin-user-grant-permissions管理者ユーザーの権限付与の機能テスト。
catbox-functional-app-info-setting-ui-elementsアプリ情報設定の機能テスト。
catbox-functional-appgridアプリグリッドの機能テスト。
catbox-functional-base機能テストのリスト。
catbox-functional-bluetooth-audio Bluetooth オーディオの機能テスト。
catbox-functional-bluetooth-paletteステータスバーの機能テスト。
catbox-functional-bluetooth-tests Mobly を使用して Bluetooth テストを行います。
catbox-functional-brightness-paletteステータスバーの機能テスト。
catbox-functional-btmoped Bluetooth Moped ベースの機能テスト。
catbox-functional-date-time-setting日付と時刻の設定機能テスト。
catbox-functional-dialダイヤル機能テスト。
catbox-functional-display-setting表示設定の機能テスト。
catbox-functional-driving-optimized-apps UX制限の機能テスト。
catbox-functional-enable-developers-option開発者オプションの機能テストを有効にします。
catbox-functional-home家庭での機能テスト。
catbox-functional-lock-screenロック画面の機能テスト。
catbox-functional-mediacenter Media Center の機能テスト。
catbox-functional-microphone-recent-appsマイク設定の機能テスト。
catbox-functional-microphone-settingマイク設定の機能テスト。
catbox-functional-multiuserマルチユーザー機能テスト。
catbox-functional-multiuser-system-userマルチユーザー機能テスト。
catbox-functional-navigation-barナビゲーション バーの機能テスト。
catbox-functional-network-paletteステータスバーの機能テスト。
catbox-functional-network-settingネットワーク設定の機能テスト。
catbox-functional-notification通知機能のテスト。
catbox-functional-privacy-permission-managerプライバシー アプリの権限設定の機能テスト。
catbox-functional-privacy-settingマイク設定の機能テスト。
catbox-functional-privacy-setting-ui-elementsプライバシー設定の機能テスト。
catbox-functional-profile-iconプロファイル アイコン バーの機能テスト。
catbox-functional-profiles-icon-listプロファイルアイコンリストのテスト。
catbox-functional-security-settingセキュリティ設定の機能テスト。
catbox-functional-setting機能テストの設定。
catbox-functional-settings-location設置場所のテスト。
catbox-functional-sound-settingサウンド設定の機能テスト。
catbox-functional-status-barステータスバーの機能テスト。
catbox-functional-storage-settingストレージ設定の機能テスト。
catbox-functional-system-settingシステム設定の機能テスト。
catbox-functional-systemuiシステム UI テスト。
catbox-functional-ux-restriction UX制限の機能テスト。
catbox-functional-ux-restriction-facet-bar UX制限の機能テスト。

次の表に、CATBox のパフォーマンステスト計画を示します。

パフォーマンステスト計画説明
catbox-performance-cold-app-start-up-dialerダイヤラーと電話のコールド アプリ起動パフォーマンス テスト。
catbox-performance-cold-app-start-up-mediacenter Media Center のコールド アプリ起動パフォーマンス テスト。
catbox-performance-cold-app-start-up-settings設定のコールド アプリ起動パフォーマンス テスト。
catbox-performance-create-and-switch-to-new-guest新しいゲストに切り替えるまでの遅延を測定します。
catbox-performance-create-and-switch-to-new-user新しい非管理者ユーザーに切り替えるまでの待ち時間を測定します。
catbox-performance-hot-app-start-up-dialerダイヤラーと電話のホット アプリ起動パフォーマンス テスト。
catbox-performance-hot-app-start-up-mediacenter Media Center のホット アプリ起動パフォーマンス テスト。
catbox-performance-hot-app-start-up-settings設定のホットアプリ起動パフォーマンステスト。
catbox-performance-jank-appgrid Appgrid のパフォーマンス テスト。
catbox-performance-jank-contact-listコンタクトの性能テスト。
catbox-performance-jank-mediaメディアのパフォーマンス テスト。
catbox-performance-jank-media-switch-playbackメディアスイッチ再生のパフォーマンステスト。
catbox-performance-jank-notifications通知のパフォーマンス テスト。
catbox-performance-jank-settings設定のパフォーマンステスト。
catbox-performance-switch-to-existing-user既存のユーザーに切り替えるまでの待ち時間を測定します。

マルチデバイスのホスト側テストを実行する

マルチデバイスのホスト側テストの実行では、CATBox を使用して 1 つのセッションでテストを実行します。たとえば、 BTDiscoveryTest :

make catbox
./tools/catbox-tradefed run commandAndExit catbox-functional-bluetooth-tests --{phone}serial <serial> --{auto}serial <serial> --mobly-host:mobly-par-file-name BTDiscoveryTest

CATBox はapkをインストールし、正しい Python 実行環境でテストが実行されます。

CATBox テスト結果を確認する

機能テストとパフォーマンス テストの実行結果はandroid-catbox/results/latestに保存されます。

結果の種類位置
試験結果test_result.xml
失敗テストの詳細test_result_failures_suite.html
パフォーマンスメトリクスの結果/report-log-files/CatboxPerformanceTests.reportlog.json
機能およびパフォーマンスのテストの実行/android-catbox/logs/latest