Complete Automotive Tests in a Box(CATBox)は、最小限の構成で自動車用テストを効率化して実施するために必要なフレームワークとツールを提供するオープンソース パッケージです。CATBox はスケーラブルで、Android Automotive OS(AAOS)実装のテストと検証に使用するツール、インフラストラクチャ、テストに対応しています。したがって、高品質のプロダクトを市場に提供することが可能になります。
CATBox の設計と実装
CATBox テストスイートは、自動車をターゲットとするデバイスで、かつコンパニオン デバイスを使用している場合に、機能テストとパフォーマンス テストを実施するために必要なツール、フレームワーク、テストを提供します。
次の図は、CATBox パッケージの設計の概要を示しています。
図 1. CATBox パッケージ
Tradefed
Tradefed は、Android デバイスでテストを実行するために使用されるオープンソースの継続的テスト フレームワークです。詳しくは、Trade Federation の概要をご覧ください。
自動車用テスト フレームワーク
CATBox は、自動車用デバイスでさまざまなアプリをテストするための API を提供する Spectatio という自動車用テスト フレームワークをベースにしています。CATBox は、オープンソースのテスト フレームワークである UI Automator の上に構築されています。UI Automator は、ユーザーアプリおよびシステムアプリとやり取りする UI テストを作成するための API のセットを提供します。
CATBox テストスイートのダウンロード
Android 14
Android Automotive 14 は、「U」というコードネームが付けられた開発マイルストーンのリリースです。Android 14 用の CATBox テストスイートをダウンロードするには、次のリンクを使用してください。
Android 12
Android 12 は、「S」というコードネームが付けられた開発マイルストーンのリリースです。Android 12 用の CATBox テストスイートをダウンロードするには、次のリンクを使用してください。
Android 11
Android 11 は、「R」というコードネームが付けられた開発マイルストーンのリリースです。Android 11 用の CATBox テストスイートをダウンロードするには、次のリンクを使用してください。
CATBox をビルドする
ローカル ワークステーションで Android AOSP コードが利用可能になったら、catbox
ビルドコマンドを使用します。
CATBox パッケージをローカルでビルドするには、次のコマンドを実行します。
デバイス アーキテクチャに基づいてデバイス ターゲットを選択し、次のコマンドを実行します。
lunch <target>
CATBox をビルドするには、次のコマンドを実行します。
make catbox
このコマンドにより、
android-catbox.zip
ファイルが/out/host/linux-x86/catbox
ディレクトリに作成されます。このファイルを使用してテストを実行できます。
環境をセットアップする
CATBox テストの実行に必要な環境のセットアップは、CTS のセットアップに似ています。環境をセットアップするには、以下の各タスクを実施します。
ADB と AAPT をインストールする。
JDK をインストールする。Ubuntu 用 Java 開発キットの説明をご覧ください。
メモリ上限を増やす。ストレージ要件をご覧ください。
CATBox をセットアップして実行する
Tradefed テスト フレームワークを使用して、Android デバイスでテストを実行します。CATBox をセットアップする前に、Trade Federation の概要をご覧ください。
CATBox をセットアップして実行するには、下記のセクションをご覧ください。
デバイスをセットアップする
テストプランを実行する前に、次の手順に沿ってデバイスをセットアップします。
最新バージョンの Android Debug Bridge(adb)と Android Asset Packaging Tool(AAPT)の両方がインストールされており、それらのツールの場所がマシンのシステムパスに追加されていることを確認します。詳しくは、ADB と AAPT をご覧ください。
次のように、少なくとも 1 台のデバイスを接続して、テスト対象デバイス(DUT)を準備します。
自動車用デバイスを出荷時の設定にリセットするには、[設定] > [システム] > [リセット オプション] > [すべてのデータを消去] に移動します。
デバイスが自動的に再起動するまで待ちます。
adb が有効になっていることを確認します。デバイスが使用可能であることを確認するため、次のコマンドを実行します。
adb devices
root を有効にするため、次のコマンドを実行します。
adb -s DEVICE_SERIAL root
DEVICE_SERIAL
は、自動車用デバイスのシリアル ID に置き換えてください。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 モペッドベースの機能テスト。 |
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 |
メディア センターの機能テスト。 |
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 |
メディア センターのコールド アプリ スタートアップのパフォーマンス テスト。 |
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 |
メディア センターのホット アプリ スタートアップのパフォーマンス テスト。 |
catbox-performance-hot-app-start-up-settings |
設定のホット アプリ スタートアップのパフォーマンス テスト。 |
catbox-performance-jank-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 |