Firebase Test Lab for Android Robo テスト

Robo テストは、Firebase Test Lab for Android に統合されたテストツールです。Robo テストはアプリの UI の構造を分析してから、ユーザー アクティビティを自動的にシミュレートすることによって体系的な調査を行います。Robo テストを使用して、特定の端末設定で同一の最大深度およびタイムアウトの設定のもとでアプリをテストする場合、Robo テストは UI/Application Exerciser Monkey テストとは異なり、常に同じユーザー アクティビティを同じ順序でシミュレーションします。これにより、UI/Application Exerciser Monkey テストでは不可能な方法で、Robo テストを使用してバグの修正を検証したり回帰テストを実行したりできます。

Robo テストは、ログファイルをキャプチャして一連の注釈付きスクリーンショットを保存します。次にスクリーンショットから動画を作成し、実行したユーザー操作をシミュレートして表示します。これらのログ、スクリーンショット、動画は、アプリがクラッシュした場合に根本原因を判断するのに役立ち、アプリの UI の問題を見つけるのにも役立ちます。

Robo テストの設定

Robo テストは、次のようなさまざまな設定が可能です。

  • 最大深度。テストの最大深度を設定することによって、Robo テストがアプリをどれくらい詳細に調べるかを設定できます。最大深度の設定は、テストでアプリの UI の特定ブランチをどれくらい詳細に調べたら、UI のルート(メイン画面)に戻って別のブランチを調べるかを表します。最大深度のデフォルト値は 50 です。2 よりも小さい場合、メイン画面以外でアプリが調査されることはありません。

  • タイムアウト。アプリの UI の複雑さによっては、詳細な UI インタラクションのセットを Robo テストで完了するのに 5 分以上かかることがあります。テストのタイムアウトは、通常のアプリで 120 秒(2 分)以上、中程度の複雑さのアプリで 300 秒(5 分)以上に設定することをおすすめします。タイムアウトのデフォルト値は、Android Studio と Google Developer Console からテストを実行した場合は 300 秒(5 分)、gcloud コマンドラインからテストを実行した場合は 1,500 秒(25 分)です。

アプリの UI の深度が大きく、Robo テストで調べる UI ブランチが複数ある場合は、Robo テストでアプリが詳細に調べられるように以下のいずれかを行います。

  • Robo テストで複数の UI ブランチを調べることができるように、タイムアウトの値を大きく設定します。

  • Robo テストで各 UI ブランチについてある程度の調査を完了するように、最大深度の値を小さく設定します。

Google Play との統合

Alpha チャンネルまたは Beta チャンネルを使用してアプリの APK ファイルをアップロードして公開するときに、Google Play Console で Robo テストを使用できます。Robo テストは、さまざまな地域から一般的な物理端末のセットで動作し、さまざまなフォーム ファクタとハードウェア構成に対してテストを実行できます。詳しくは、リリース前レポートを使って問題を特定する方法を参照してください。

テスト アカウントのログインと事前定義テキストの入力

Robo テストでは、テスト アカウントのログインがサポートされます。また、事前定義したテキストをアプリ内のフィールドに入力できます。カスタム ログイン、およびその他の事前定義テキストの入力では、Robo テストはアプリの EditText フィールドにテキストを入力できます。個々の文字列に対し、Android リソース名を使用して EditText フィールドを識別する必要があります。詳しくは、リソースへのアクセスを参照してください。

ログイン

Robo テストでは、相互排他的な 2 種類の方法によってログインをサポートします。

  • 自動ログイン: ログイン画面での認証に Google アカウントを使用するアプリの場合は、カスタム ログイン用のテスト アカウントの認証情報を提供する場合を除き、Robo テストでは認証用の Google テスト アカウントが作成されます。
  • カスタム ログイン: テスト アカウントの認証情報を提供する場合は、Robo テストに入力場所を指示し、その認証情報を提供する必要があります。

カスタム ログインに使用するテスト アカウントの認証情報を提供するには、次の手順を実行します。

  1. [ディメンションを選択] ページで、[詳細設定を表示] を選択します。
  2. [テスト アカウント認証情報(オプション)] で、ユーザー名およびパスワードのリソース名と、テスト アカウントのユーザー名およびパスワードを入力します。

事前定義テキストの入力

アプリで使用する他のテキスト フィールドに、カスタム入力テキストを指定できます。追加フィールドにテキスト入力を指定するには、次の手順を実行します。

  1. [ディメンションを選択] ページで、[詳細設定を表示] を選択します。
  2. [その他の項目(オプション)] で、1 つ以上のリソース名と、該当のテキスト フィールドに入力する文字列を指定します。

既知の問題

Robo テストには、現時点で以下の既知の制限があります。

  • UI フレームワークのサポート。Robo テストは、Android UI フレームワークの UI 要素を使用するアプリにしか対応していません(View および ViewGroup オブジェクトは含むが、WebView オブジェクトは含まない)。Robo テストを使用して、他の UI フレームワークを使用するアプリ(Unity ゲームエンジンを使用するアプリを含む)を実行する場合、テストは最初の画面以外を調べることなく終了することがあります。
  • ログイン キャプチャ。Robo テストは、ログイン用の認証情報を入力するだけでなく、その他のユーザー操作(キャプチャの入力など)を必要とするログイン画面を迂回することはできません。
  • スクリプティング。定義済みのシミュレートされたユーザー操作のシーケンスを使用してアプリを調べるために、Robo テストでスクリプトを使用することはできません。
  • ライセンス。現時点では、Robo テストは Google Play の提供するアプリ ライセンス サービスをサポートしていません。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。