Complete Automotive Tests in a Box (CATBox) は、最小限の構成で自動車テストを合理化し実行するために必要なフレームワークとツールを提供するオープン ソース パッケージです。 CATBox はスケーラブルであり、Android Automotive OS (AAOS) 実装のテストと検証に使用するツール、インフラストラクチャ、テストと互換性があります。その結果、高品質の製品を市場に提供することができます。
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 パッケージをローカルでビルドするには:
デバイス アーキテクチャに基づいてデバイス ターゲットを選択し、次のコマンドを実行します。
lunch <target>
CATBox を構築するには、次のコマンドを実行します。
make catbox
このコマンドは、
/out/host/linux-x86/catbox
ディレクトリにandroid-catbox.zip
ファイルを作成します。このファイルは、テストの実行に使用できます。
環境をセットアップする
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 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 |