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 との統合

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

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

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

ログイン

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

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

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

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

事前定義テキストの入力

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

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

アプリのライセンス サポート

Test Lab は、Google Play が提供するアプリ ライセンス サービスを使用するアプリをサポートしています。Test Lab でアプリをテストする際にライセンスを確認するには、アプリを Play ストアの製品版チャネルに公開する必要があります。Test Lab を使用してアルファまたはベータチャネルでアプリをテストするには、アプリを Test Lab にアップロードする前にライセンス チェックを削除します。

既知の問題

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

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

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

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