Firebase Test Lab の概要

Firebase Test Lab を使用すると、アプリをさまざまな端末や構成でテストして、ユーザーの端末でどのように動作するかをより正確に把握できます。Test Lab では、このような幅広いテストを容易にするために、テスト マトリックスと呼ばれるバッチでテストを実行します。各マトリックスでは、アプリが複数の端末構成の組み合わせに対してテストされます。

テスト ディメンション × テスト実行 = テスト マトリックス

  • テスト ディメンション: 端末の機種、OS バージョン、ロケール、画面の向きなど、アプリをテストするデバイス属性。

  • テスト実行: テスト対象として選択したテスト ディメンションの組み合わせがそれぞれ異なる個々のテスト実行。

  • テスト マトリックス: 選択したテスト ディメンションに対してテストを実行した結果。マトリックス内のいずれかのテストが失敗した場合、Test Lab ではマトリックス全体に失敗のマークが表示されます。

アプリのテストを開始する方法を選択できます。

  • Android Studio の統合では、開発環境からアプリをテストできます。
  • gcloud コマンドライン インターフェースでは、コマンドラインからインタラクティブにテストを実行できます。また、自動化されたビルドとテストプロセスの一部として、スクリプト作成にも適しています。
  • Firebase コンソールの Test Lab UI では、アプリバイナリをアップロードし、どこからでもテストを開始できます。

アルファ チャネルまたはベータチャネルを使用して Play ストアにアプリの APK ファイルをアップロードして公開するときも、Test Lab でアプリをテストできます。詳細については、リリース前レポートを使って問題を特定するRobo テストをご覧ください。

テスト方法を選択する

Test Lab を使用して、さまざまな端末でアプリのユーザー エクスペリエンスの安定性とアプリの互換性を検証できます。

アプリのテストに役立つ 2 つのテスト方法として、インストゥルメンテーション テストと Test Lab Robo テストが用意されています。

インストゥルメンテーション テスト

インストゥルメンテーション テストは、EspressoUI Automator 2.0 の Android テスト フレームワークを使用してアプリをテストするために特別に記述されたテストです。インストゥルメンテーション テストには、物理端末では最大 30 分、仮想端末では最大 60 分かかります。その時間内に実行が完了したすべてのテストのテスト結果が提供されます。

インストゥルメンテーション テストを記述する場合は、後でアプリの APK モジュールとともに Test Lab をアップロードする第 2 の APK モジュールを作成します。テスト APK の作成については、アプリのテストをご覧ください。

Robo テスト

アプリのインストゥルメンテーション テストを記述していない場合でも、Robo テストを使用して、ユーザー操作をシミュレートすることによってアプリを動かすことができます。詳しくは Robo テストについての記事をご覧ください。

ゲームループ テスト

ゲームアプリのテストをサポートするために、Test Lab に「デモモード」のサポートが追加されました。このモードを使用すると、プレーヤーの動作をシミュレートしながらゲームアプリを実行できます。このモードでは複数のループ(シナリオ)を実行できます。また、関連するループを一緒に実行できるように、ラベルで論理的にまとめることもできます。詳細は、ゲームループ テストをご覧ください。

端末タイプを選択する

Test Lab では、Google データセンターにインストールされ、動作している Android 端末の複数のメーカーとモデルに対してテストを実行できます。端末上のテストは、Android エミュレーターを使用してアプリをテストするときには発生しない問題を検出するのに役立ちます。詳細については、使用可能なデバイスをご覧ください。

テスト結果を確認する

テストを開始する方法にかかわらず、すべてのテスト結果は Test Lab で管理され、オンラインで表示できます。テスト結果には、テストログとアプリエラーの詳細が含まれます。Robo テストでは、動画とスクリーンショットも提供されます。詳しくは、Firebase Test Lab の結果を分析するをご覧ください。

Android Studio からテストを開始した場合は、開発環境内でテスト結果を確認することもできます。

割り当てと課金

Firebase は Spark(無料)、Flame、Blaze のすべてのお支払いプランで使用できます。

Spark プランと Flame プランの割り当て

Spark プランと Flame プランでは、無料で Test Lab を使用できます。Spark と Flame のどちらのプランでも、テスト実行のみに限定された 1 日の割り当て(仮想端末 10 台と物理端末 5 台)を使用してテストできます。テスト マトリックスごとに最大 15 台の端末を使用できます。

Blaze プランの課金

1 日の使用量またはテスト マトリックスのサイズに対する制限なしで Test Lab を使用するには、プロジェクトの選択後に Firebase Blaze プランにアップグレードします。料金プランをアップグレードするには、Firebase コンソールで [アップグレード] をクリックし、[Blaze] プラン列の [プランを選択] をクリックします。

Blaze プランの場合、Test Lab を使用してアプリをテストする際の 1 時間あたりの料金は以下の通りです。

  • 各物理デバイスにつき 1 時間あたり 5 ドル
  • 仮想端末につき 1 時間あたり 1 ドル

料金は分単位で計算され、テストの実行に必要な時間のみ課金対象となります(アプリのインストールやテスト結果の収集にかかる時間に対しては課金されません)。テスト マトリックスを実行すると、テスト実行結果とテスト マトリックスの結果ページに、各端末でテストごとに実行に要した時間が表示されます。各テスト実行で課金される時間は、最も近い分の単位に切り上げられます。

Test Lab と Google Play 開発者サービス

通常、Test Lab を行う端末では最新バージョンの Google Play 開発者サービスが実行されます。ただし、端末と設定の数が多いため、新しい Google Play 開発者サービスのリリース後、Test Lab が端末を更新するまでに数日かかることがあります。テストが適切に実行されるように、アプリで使用される Google Play 開発者サービス SDK のバージョンが、次に示したバージョン以前であることをご確認ください。

現在サポートされている Google Play 開発者サービス SDK: 11.8.0

Test Lab とモバイル広告

デジタル広告プロバイダ(広告ネットワーク、デマンドサイド プラットフォームなど)をご利用のアプリ デベロッパーの皆様と、デジタル広告プロバイダの皆様は、以下の問題にご注意ください。

Test Lab は、アプリのテストを自動化するスケーラブルなアプリテスト インフラストラクチャをデベロッパーに提供します。残念ながら、この機能は、不正な広告収益を生むように設計された悪意のあるアプリによって悪用される可能性があります。

この問題には次のように対処してください。

  • アプリ デベロッパーは、Test Lab を含むテスト プロバイダに属する端末から生じる収益と、対応するすべてのトラフィックを除外するように、ご利用のデジタル広告プロバイダに通知する必要があります。

  • デジタル広告プロバイダは、次の IP アドレス ブロックから送信されるトラフィックを除外することによって、Test Lab から生じる広告収益と、対応するすべてのトラフィックを除外することができます。

    端末

    • 108.177.6.0/23

    仮想端末

    • 35.192.160.56/29
    • 35.196.166.80/29
    • 35.196.169.240/29
    • 35.203.128.0/28
    • 35.234.176.160/28
    • 199.192.115.0/30
    • 199.192.115.8/30
    • 199.192.115.16/29

端末のクリーンアップ

Google ではアプリデータのセキュリティを重要視しています。Test Lab で物理端末を使用する場合は、業界標準のベスト プラクティスに従って、テスト完了後に必ず端末からアプリデータを削除し、新しいテストを実行できる状態にしています。カスタムの復旧イメージでフラッシュできる端末の場合は、テストを実行するたびに端末をフラッシュするためのステップを加えています。

Test Lab で仮想端末を使用する場合は、端末の使用後にそれらのインスタンスが削除されるため、どのテストでも新しい仮想端末インスタンスが使用されます。

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

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