Complete Automotive Tests in a Box(CATBox)は、最小限の構成で自動車テストを合理化および実行するために必要なフレームワークとツールを提供するオープンソースパッケージです。 CATBoxはスケーラブルであり、Android Automotive OS(AAOS)の実装をテストおよび検証するために使用するツール、インフラストラクチャ、およびテストと互換性があります。その結果、高品質の製品を市場に提供することができます。
CATBoxの設計と実装
CATBoxテストスイートは、自動車のターゲットデバイスで機能テストとパフォーマンステストを実行するために必要なツール、フレームワーク、およびテストを提供します。
次の画像は、CATBoxパッケージの高レベルの設計を示しています。
図1.CATBoxパッケージ
Tradefed
Tradefedは、Androidデバイスでテストを実行するために使用されるオープンソースの継続的テストフレームワークです。詳細については、通商連合の概要を参照してください。
自動車テストフレームワーク
CATBoxは、Spectatioと呼ばれる自動車テストフレームワークに基づいています。これは、自動車デバイスでさまざまなアプリケーションをテストするためのAPIを提供します。これは、オープンソースのテストフレームワークであるUI Automatorの上に構築されており、ユーザーおよびシステムアプリケーションと対話するUIテストを構築するための一連のAPIを提供します。
CATBoxテストスイートのダウンロード
Android 12
Android 12は、コードネームSの開発マイルストーンのリリースです。Android12用のCATBoxテストスイートをダウンロードするには、次のリンクを使用してください。
Android 11
Android 11は、コードネームRの開発マイルストーンのリリースです。Android11用の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用のJavaDevelopmentKitを参照してください。
- メモリ制限を増やします。ストレージ要件を参照してください。
CATBoxのセットアップと実行
Tradefedテストフレームワークを使用して、Androidデバイスでテストを実行します。 CATBoxを設定する前に、通商連合の概要をよく理解してください。
CATBoxを設定して実行するには、以下のセクションを参照してください。
デバイスのセットアップ
テストプランを実行する前に、次の手順を実行してデバイスをセットアップします。
Android Debug Bridge(adb)とAndroid Asset Packaging Tool(AAPT)の両方の最新バージョンをインストールし、これらのツールの場所をマシンのシステムパスに追加したことを確認してください。詳細については、 ADBおよびAAPTを参照してください。
少なくとも1つのデバイスを接続し、次のようにテスト対象デバイス(DUT)を準備します。
- 自動車用デバイスを工場出荷時にリセットするには、[設定]>[システム]>[リセットオプション]>[すべてのデータを消去]をクリックします。
- デバイスが自動的に再起動するのを待ちます。
adbが有効になっていることを確認してください。デバイスが使用可能であることを確認するには、次のコマンドを実行します。
$ adb devices
ルートを有効にするには、次のコマンドを実行します。
# 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を介して電話を自動車のデバイスに手動でペアリングします。
- 電話がペアリングされると、デバイスで連絡先にアクセスできるようになります。