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

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 パッケージをローカルでビルドするには、次のコマンドを実行します。

  1. デバイス ターゲットを選択して、次のコマンドを実行します。

    # Select Device Target Based on Device Architecture
    $ lunch <target>
    
  2. CATBox をビルドするには、次のコマンドを実行します。

    # Build CATBox
    $ make catbox
    

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

環境のセットアップ

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 を有効にするため、次のコマンドを実行します。

      # Enable Root
      $ adb -s DEVICE_SERIAL root
      

      DEVICE_SERIAL は、自動車用デバイスのシリアル ID に置き換えてください。

    5. 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 オーディオ テスト、連絡先リストのジャンクテストなど、一部のテストではデバイスの追加のセットアップが必要です。

ダイヤルテスト

ダイヤルテストでは、デバイスのセットアップとランタイム パラメータが必要です。デバイスをセットアップする手順は次のとおりです。

  1. Bluetooth 経由でモバイル デバイスを自動車用ヘッドユニットに接続します。
  2. ダイヤルテストを実行するための SIM カードがテスト用スマートフォンに挿入されていて、テスト用スマートフォンがモバイル ネットワークに接続されていることを確認します。
  3. ダイヤルテストでは、スマートフォンに保存されているデフォルトの連絡先を使用します。スマートフォンに連絡先を読み込むには、contacts.vcf を使用してください。
  4. 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 オーディオ テスト用のデバイスをセットアップする手順は次のとおりです。

  1. YouTube Music アプリがスマートフォンにインストール済みで、アカウントにログインしていることを確認します。まだの場合は、アプリをインストールしてアカウントにログインします。
  2. Bluetooth 経由で、スマートフォンを自動車用デバイスに手動でペア設定します。
  3. スマートフォンをペア設定したら、スマートフォンで曲を再生してから、テストの実行を開始します。

連絡先リストのジャンクテスト

連絡先リストのジャンクテスト用のデバイスをセットアップする手順は次のとおりです。

  1. テストで連絡先リストをスクロールしてジャンク指標を収集できるように、スマートフォンに複数の連絡先があることを確認します。
  2. Bluetooth 経由で、スマートフォンを自動車用デバイスに手動でペア設定します。
  3. スマートフォンをペア設定すると、デバイスで連絡先にアクセスできるようになります。