Trade Federation は、Android デバイスでテストを実行するための継続的なテスト フレームワークです。互換性テストスイート(CTS)を実行するには、まず Tradefed テスト フレームワークを説明している Trade Federation の概要に目を通してください。
テストプランを実行するには、次のようにします。
- Android デバイスのセットアップに従って、テスト対象デバイス(DUT)をセットアップします。
- 最近のバージョンの Android Debug Bridge(adb)と Android Asset Packaging Tool(AAPT)が両方ともインストール済みで、これらのツールの場所がマシンのシステムパスに追加されていることを確認してください。これらのツールのインストールについては、CTS のセットアップ: ADB と AAPT をご覧ください。
- リリース版の CTS ビルドを Linux ホストマシンにダウンロードし、ホスト上の場所に解凍します。
- デバイスを 1 台以上接続します。DUT を準備するには、次のようにします。
- ホームボタンを押して、デバイスにホーム画面を表示します。
- 他のタスクに DUT を使用しないでください。
- DUT は、センサーが反応しないように安定した場所に置きます。
- ピント合わせが可能な物体にデバイスのカメラを向けます。
- CTS の実行中は、デバイスのキーを押さないでください。キーを押すか DUT の画面に触れると、その動作が実行中のテストに干渉して、テストが不合格になることがあります。
CTS パッケージを解凍したフォルダから、CTS コンソールの cts-tradefed スクリプトを起動します。ホストのコマンドライン シェルで、次のコマンドを実行します。
./android-cts/tools/cts-tradefed
次のコマンドでデフォルトのテストプランを実行します(すべてのテスト パッケージが含まれています)。
cts-tradefed > run cts
テストの実行時間を短縮するには、複数のデバイス間でテストをシャードします。シャードするには、少なくとも 2 台のデバイスをホストに接続する必要がありますが、適切な効果を得るには 6 台以上接続することをおすすめします。複数のデバイスにシャードするには、次のようにします。
Android 9 以降の場合は、次のコマンド オプションを使用します。
--shard-count number_of_shards
Android 8.1 以前の場合は、次のコマンド オプションを使用します。
--shards number_of_shards
テストスイート全体を実行しない場合は、コマンドラインで CTS プランを指定して実行します。
run cts --plan test_plan_name
テストプラン名を確認するには、次のようにします。
Android 7.0 以降の場合、テスト モジュールの一覧を表示するには、次のコマンドを入力します。
list modules
Android 6.0 以前の場合、リポジトリ内のテストプランの一覧を表示するには、次のコマンドを入力します。
list plans
Android 6.0 以前の場合、リポジトリ内のテスト パッケージの一覧を表示するには、次のコマンドを入力します。
list packages
CTS のバージョンによって異なるその他のコマンド オプションについては、コンソール コマンド リファレンスをご覧になるか、Tradefed コンソールで「help all」と入力してください。
すべてのテスト モジュールが完了し、最後の 2 回の再試行セッションでテスト不合格数が同じになるまで、再試行セッションを複数回実行します。
Android 9 以降の場合は、次のコマンドを使用します。
run retry --retry session_number --shard-count number_of_shards
Android 7.0~8.1 の場合は、次のコマンドを使用します。
run cts --retry session_number --shards number_of_shards
CTS のバージョンによって異なるその他の retry コマンド オプションについては、CTS v2 コマンド コンソールをご覧ください。
CTS の再試行の実装の詳細については、Trade Federation のスイートの再試行をご覧ください。
再試行セッションは、失敗したパラメータ化テストのみで実行されます。成功したパラメータ化テストは再試行されません。
Android 11 以降では、以下の再試行コマンド オプションがデフォルトで
run cts
コマンドで有効になっています。run retry --retry
--new-parameterized-handling
コンソールでテストの進捗状況と結果を確認します。
Android Test Station を使用して CTS を実行する
Android Test Station は、Android のデベロッパーとテスト エンジニアが、標準のテストスイートを実行するためのユーザー インターフェースの導入に使用できるテスト自動化ツールです。このツールは Android 互換性テストスイート(CTS)と連携して動作します。
このツールは ATS ユーザーガイドで公開されており、ツールのコードは AOSP(multitest_transport
、tradefed_cluster
)でオープンソース化されています。
代替モードで CTS を実行する
CTS 10 R4 リリースでは、代替モードのデバイスまたは複数の画面を備えたデバイス用のテストプランが追加されています。代替モードのテストプランは、run cts-foldable
で実行します。
代替画面モードで合格または不合格になったテストケースには、display_mode
の値(testcase1[display_mode=0]
など)が末尾に付加されます。
CTS 13 では、DeviceStateManager API を使用して、折りたたみ式デバイスのさまざまなデバイス状態で、次の構成オプションを持つテスト モジュールを実行できます。cts-foldable
テストプランを実行しなくても、デバイスで定義されたディスプレイの折りたたみ状態に基づいて、CTS で自動的にテストを実行できます。
<option name="config-descriptor:metadata" key="parameter" value="all_foldable_states" />
CTS でのマルチデバイス テスト
Android 13 以降では、マルチデバイス テストがサポートされています。複数のデバイスを必要とするテストは、CTS の実行中に自動的に実行されます。CTS 13 には、シャーディングの使用時に自動的にトリガーされるマルチデバイス テストがいくつかあります。物理セットアップに対する追加の変更は必要ありませんが、テストを正しく実行するには virtualenv
のインストールが必要です。詳しくは、マルチデバイス スイートをご覧ください。
マルチデバイス テストを実行する
マルチデバイス テストを個別に実行するには、次のコードを使用します。
cts-tradefed > run cts-multidevice
通常のオプションはすべてサポートされています。特定のデバイスをターゲットにするには、ターゲットとするデバイス数に --serial <serial1> --serial <serial2>
などを追加します。
マルチデバイス テストを自動的にトリガーするには、--shard-count 2
のように、シャーディングを使用します。