Firebase Test Lab for Android Robo テスト

Robo テストは、Firebase Test Lab for Android に統合されたテストツールです。Robo テストはアプリの UI の構造を分析してから、ユーザー アクティビティを自動的にシミュレートすることによって体系的な調査を行います。Robo テストを使用して、特定の端末設定で同じ最大深度とタイムアウトの設定のもとでアプリをテストする際は、UI/Application Exerciser Monkey テストとは異なり、Robo テストは常に同じユーザー アクティビティを同じ順番でシミュレーションします。これにより、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 Developer Console で Robo テストを使用できます。Robo テストは、さまざまな地域から一般的な物理端末のセットで動作し、さまざまなフォーム ファクタとハードウェア構成に対してテストを実行できます。詳しくはリリース前レポートを使って問題を特定する方法についての記事をご覧ください。

既知の制限

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

  • UI フレームワークのサポート。Robo テストは、Android UI フレームワーク(View オブジェクトと ViewGroup オブジェクトを含む)の UI 要素を使用するアプリとのみ互換性があります。Robo テストを使用して、他の UI フレームワークを使用するアプリ(Unity ゲームエンジンを使用するアプリを含む)を実行する場合、テストは最初の画面以外を調べることなく終了することがあります。
  • ログイン。Robo テストでは、ほとんどのログイン画面を迂回できません。迂回できるのは、認証に Google アカウントを使用し、ログイン時にユーザーが追加の操作をする必要がないログイン画面のみです。
  • スクリプティング。定義済みのシミュレートされたユーザー操作のシーケンスを使用してアプリを調べるために、Robo テストでスクリプトを使用することはできません。

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