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 12
Android 12 は、「S」というコードネームが付けられた開発マイルストーンのリリースです。Android 12 用の CATBox テストスイートをダウンロードするには、次のリンクを使用してください。
Android 11
Android 11 は、「R」というコードネームが付けられた開発マイルストーンのリリースです。Android 11 用の CATBox テストスイートをダウンロードするには、次のリンクを使用してください。
CATBox をビルドする
ローカル ワークステーションで Android AOSP コードが利用可能になったら、catbox
ビルドコマンドを使用します。CATBox パッケージをローカルでビルドするには、次のコマンドを実行します。
デバイス ターゲットを選択して、次のコマンドを実行します。
# Select Device Target Based on Device Architecture $ lunch <target>
CATBox をビルドするには、次のコマンドを実行します。
# Build 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 を有効にするため、次のコマンドを実行します。
# Enable Root $ adb -s DEVICE_SERIAL root
DEVICE_SERIAL
は、自動車用デバイスのシリアル ID に置き換えてください。Wi-Fi に接続します。
CATBox パッケージを抽出する
デバイスのセットアップが完了したら、CATBox パッケージを解凍して、展開されたフォルダに移動します。
# Extract the CATBox Package
$ unzip android-catbox.zip
# Navigate to extracted CATBox Package
$ 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-notification catbox-functional-setting catbox-functional-dial catbox-functional-system-setting catbox-functional-app-info-setting catbox-functional-network-setting catbox-functional-security-setting catbox-functional-sound-setting catbox-functional-date-time-setting catbox-functional-appgrid catbox-functional-home catbox-functional-lock-screen catbox-functional-navigation-bar catbox-functional-ux-restriction catbox-functional-bluetooth-audio |
パフォーマンス テストプラン | catbox-performance-cold-app-start-up-settings catbox-performance-hot-app-start-up-settings catbox-performance-jank-settings catbox-performance-cold-app-start-up-dialer catbox-performance-hot-app-start-up-dialer catbox-performance-jank-contact-list catbox-performance-jank-notifications catbox-performance-jank-appgrid catbox-performance-cold-app-start-up-mediacenter catbox-performance-hot-app-start-up-mediacenter catbox-performance-create-and-switch-to-new-guest catbox-performance-create-and-switch-to-new-user catbox-performance-create-and-switch-to-precreated-guest catbox-performance-create-and-switch-to-precreated-user catbox-performance-switch-to-existing-user |
CATBox のテスト結果
機能テストとパフォーマンス テストの実行結果は、両方とも android-catbox/results/latest
フォルダに保存されます。
- テスト結果については、
test_result.xml
を参照してください。 - 失敗したテストの詳細については、
test_result_failures_suite.html
を参照してください。 - パフォーマンス指標の結果については、
report-log-files
ディレクトリにあるCatboxPerformanceTests.reportlog.json
を参照してください。
機能テストとパフォーマンス テストの実行ログは、両方ともパス android-catbox/logs/latest
に保存されます。
ダイヤルテスト、Bluetooth オーディオ テスト、連絡先リストのジャンクテストなど、一部のテストではデバイスの追加のセットアップが必要です。
ダイヤルテスト
ダイヤルテストでは、デバイスのセットアップとランタイム パラメータが必要です。デバイスをセットアップする手順は次のとおりです。
- Bluetooth 経由でモバイル デバイスを自動車用ヘッドユニットに接続します。
- ダイヤルテストを実行するための SIM カードがテスト用スマートフォンに挿入されていて、テスト用スマートフォンがモバイル ネットワークに接続されていることを確認します。
- ダイヤルテストでは、スマートフォンに保存されているデフォルトの連絡先を使用します。スマートフォンに連絡先を読み込むには、contacts.vcf を使用してください。
COMPANION_SERIAL
をスマートフォンのシリアル ID に置き換えて、次のコマンドを実行します。# Contacts can be loaded on the phone by pushing the contacts.vcf file on the phone and importing it in the Contacts application. OR # Importing contacts using adb. # Push contacts VCF file to phone $ adb -s COMPANION_SERIAL push <path-to-downloaded-contacts-vcf-file> /storage/emulated/0/Android/data/com.google.android.contacts/contacts.vcf # Grant Read Permissions $ adb -s COMPANION_SERIAL shell pm grant com.google.android.contacts android.permission.READ_EXTERNAL_STORAGE # Import contacts from the VCF file $ adb -s COMPANION_SERIAL shell am start-activity -W -t 'text/x-vcard' -d file:///storage/emulated/0/Android/data/com.google.android.contacts/contacts.vcf -a android.intent.action.VIEW com.google.android.contacts # Then accept the prompts on the UI to load the contacts.
ランタイム パラメータ
ダイヤルテストでは、テスト実行に短い電話番号と長い電話番号を使用します。また、ダイヤルテストでは、検索テストで連絡先の名前と連絡先の電話番号を使用します。この情報を指定するには、次のパラメータを使用します。
Parameters for Large Phone Number:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:large-phone-number:=< 10 digit phone number>
Parameters for Small Phone Number:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:small-phone-number:=< 3 digit phone number>
Parameters for Search Contact Name:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:search-contact-name:=< some contact name stored on the phone >
Parameters for Search Contact Number:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:search-contact-number:=< contact number of the name provided in the search contact name >
Bluetooth オーディオ テスト
Bluetooth オーディオ テスト用のデバイスをセットアップする手順は次のとおりです。
- YouTube Music アプリがスマートフォンにインストール済みで、アカウントにログインしていることを確認します。まだの場合は、アプリをインストールしてアカウントにログインします。
- Bluetooth 経由で、スマートフォンを自動車用デバイスに手動でペア設定します。
- スマートフォンをペア設定したら、スマートフォンで曲を再生してから、テストの実行を開始します。
連絡先リストのジャンクテスト
連絡先リストのジャンクテスト用のデバイスをセットアップする手順は次のとおりです。
- テストで連絡先リストをスクロールしてジャンク指標を収集できるように、スマートフォンに複数の連絡先があることを確認します。
- Bluetooth 経由で、スマートフォンを自動車用デバイスに手動でペア設定します。
- スマートフォンをペア設定すると、デバイスで連絡先にアクセスできるようになります。