2022 年 10 月 18 日に開催される Firebase Summit に、直接会場で、またはオンラインでご参加ください。Firebase を使用してアプリ開発を加速させ、自信を持ってアプリをリリースし、簡単にスケールする方法をご紹介します。 今すぐ登録

Firebase TestLabでAndroidのテストを開始する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Firebase Test Lab を使用すると、さまざまなデバイスと構成でアプリをテストできます。このスタート ガイドでは、従うべき実装パスと、Test Lab の Android 製品の紹介を提供します。

Test Lab のクォータと料金プランについては、 Usage, Quotas, and Pricingを参照してください。

重要な概念

選択したデバイスと構成に対してテストまたは一連のテスト ケースを実行すると、Test Lab はアプリに対してテストをバッチで実行し、結果をテスト マトリックスとして表示します。

デバイス × テスト実行 = テスト マトリックス

デバイス
電話、タブレット、ウェアラブル デバイスなど、テストを実行する物理デバイスまたは仮想デバイス (Android のみ)。テスト マトリックス内のデバイスは、デバイス モデル、OS バージョン、画面の向き、およびロケール (地域および言語設定とも呼ばれます) によって識別されます。
テスト、テスト実行
デバイスで実行するテスト (または一連のテスト ケース)。デバイスごとに 1 つのテストを実行するか、必要に応じてテストを分割して、そのテスト ケースを異なるデバイスで実行できます。
テスト マトリックス
テスト実行のステータスとテスト結果が含まれます。マトリックス内のいずれかのテスト実行が失敗すると、マトリックス全体が失敗します。

ステップ 1 : Test Lab にアップロードするテストを準備する

利用可能なテストの種類

Test Lab で次のテストを実行できます。すべてのテスト タイプは、物理デバイスで 45 分間、仮想デバイスで 60 分間の実行に制限されていることに注意してください。キャッチされない例外があると、テストは失敗します。

  • インストルメンテーション テストまたはインストルメント化された単体テスト: EspressoまたはUI Automatorフレームワークを使用して記述したテスト。このテストでは、アプリの状態に関する明示的なアサーションを作成して、 AndroidJUnitRunnerAPIsを使用して正しい機能を検証できます。

  • ロボ テスト: アプリの UI を分析し、ユーザー アクティビティをシミュレートすることで体系的に調査する自動テストです。コードを記述する必要はありません。詳細については、 Robo テストについてをご覧ください。

  • ゲーム ループ テスト: 「デモ モード」を使用して、ゲーム アプリでプレーヤーのアクションをシミュレートするテスト。これは、ゲームがユーザーにとって適切に機能することを確認するための高速でスケーラブルな方法です。ゲーム ループ テストの実行を選択すると、次のことができます。

    • ゲーム エンジンにネイティブなテストを作成する

    • 異なる UI やテスト フレームワークに対して同じコードを記述しないようにする

    • 必要に応じて、1 回のテスト実行で実行する複数のループを作成します (詳細については、ゲーム ループ テストについてをご覧ください)。ラベルを使用してループを整理することもできるため、それらを追跡して特定のループを再実行できます。

    Test Lab でこのテストを実行する手順については、「ゲーム ループ テストを実行する」を参照してください。

テストを実行するためのツール

次のツールを選択して、テストを実行できます。

  • 初めてのユーザーに推奨: Firebase コンソールを使用すると、アプリをアップロードしてウェブブラウザからテストを開始できます。このツールを使用してテストを実行する手順については、Firebase コンソールでのテストをご覧ください。

  • Android Studio の統合により、開発環境を離れることなくアプリをテストできます。このツールを使用してテストを実行する手順については、Android Studio でのテストをご覧ください。

  • gcloud コマンドライン インターフェースを使用すると、コマンドラインからインタラクティブにテストを実行できます。また、自動化されたビルドおよびテスト プロセスの一部としてスクリプトを作成するのにも適しています。このツールを使用してテストを実行する手順については、gcloud CLIを使用したテストをご覧ください。

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

ステップ 2 : テスト デバイスを選択する

Test Lab は、Google データ センターにインストールされて実行されている Android デバイスのいくつかのメーカーとモデルでのテストをサポートしています。 Test Lab でデバイスをテストすると、Android Studio でエミュレータを使用してアプリをテストするときに発生しない可能性がある問題を検出するのに役立ちます。詳細については、利用可能なデバイスを参照してください。

ステップ 3 : テスト結果の確認

テストの開始方法に関係なく、すべてのテスト結果は Test Lab によって管理され、オンラインで表示できます。

テスト結果の概要は自動的に保存され、Firebase コンソールで表示できます。これには、テスト ケース固有のビデオ、スクリーンショット、合格、不合格、不安定な結果となったテストの数など、テストに最も関連するデータが含まれています。

生のテスト結果には、テスト ログとアプリの失敗の詳細が含まれ、Google Cloud バケットに自動的に保存されます。バケットを指定する場合、ストレージの費用はお客様の負担となります。バケットを指定しない場合は、Test Lab が無料でバケットを作成します。

詳細については、 Firebase テスト ラボの結果を分析するをご覧ください。

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

デバイスのクリーンアップ

Google では、アプリ データのセキュリティを非常に重視しています。業界標準のベスト プラクティスに従って、テスト実行ごとにアプリ データを削除し、物理デバイスのシステム設定をリセットして、新しいテストを実行する準備が整っていることを確認します。カスタム リカバリ イメージでフラッシュできるデバイスについては、テスト実行の間にこれらのデバイスをフラッシュすることで、さらに一歩進んでいます。

Test Lab で使用される仮想デバイスの場合、デバイス インスタンスは使用後に削除されるため、テストの実行ごとに新しい仮想デバイス インスタンスが使用されます。


テスト ラボと Google Play サービス

Test Lab デバイスは通常、Google Play サービス SDK の最新バージョンで実行されますが、SDK の新しいバージョンがリリースされた後、更新に数日かかる場合があります。一部のデバイスでは互換性の問題が発生する可能性があることに注意してください。

テスト デバイスがプライベート バックエンド サーバーにアクセスできるようにする

一部のモバイル アプリは、テスト中に正しく機能するためにプライベート バックエンド サービスと通信する必要があります。バックエンド サーバーがファイアウォール ルールで保護されている場合は、以下の IP アドレス ブロックを使用してファイアウォールを通過するルートを開くことで、Test Lab の物理デバイスと仮想デバイスへのアクセスを許可できます。

モバイル広告

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

この問題を軽減するには:

  • サードパーティのデジタル広告プロバイダー (広告ネットワークやデマンド サイド プラットフォームなど) を使用または連携している場合は、アプリの開発とテスト中に実際の広告ではなくテスト広告を使用することをお勧めします。

  • テストで実際の広告を使用する必要がある場合は、以下のIP アドレス ブロックを使用して、収益と、テスト ラボから生成されたすべての対応するトラフィックを除外するよう、提携しているデジタル広告プロバイダーに通知してください。 Google 所有の広告プロバイダに通知する必要はありません。 Test Lab がそれを処理します。

Test Lab デバイスで使用される IP アドレス

Test Lab デバイスによって生成されるすべてのネットワーク トラフィックは、次のIP アドレス ブロックから発信されます。 gcloud CLI でgcloud beta firebase test ip-blocks listコマンドを使用して、このリストにアクセスすることもできます。リストは平均して年に 1 回更新されます。

プラットフォームとデバイスの種類CIDR IP アドレス ブロック
Android および iOS 物理デバイス

70.32.128.0/19 (02-2022 追加)

108.177.6.0/23

108.177.18.192/26 (02-2022 追加)

108.177.29.64/27 (2022 年 2 月に拡張)

108.177.31.160/27 (2022 年 2 月追加)

199.36.156.8/29(2022年2月追加)

199.36.156.16/28(2022年2月追加)

209.85.131.0/27 (02-2022 追加)

2001:4860:1008::/48 (02-2022 追加)

2001:4860:1018::/48 (02-2022 追加)

2001:4860:1019::/48 (02-2022 追加)

2001:4860:1020::/48 (02-2022 追加)

2001:4860:1022::/48 (02-2022 追加)

Android 仮想デバイス

34.68.194.64/29 (2019年11月追加)

34.69.234.64/29 (2019年11月追加)

34.73.34.72/29(2019年11月追加)

34.73.178.72/29 (2019年11月追加)

34.74.10.72/29(2022年2月追加)

34.136.2.136/29 (02-2022 追加)

34.136.50.136/29 (02-2022 追加)

34.145.234.144/29 (2022 年 2 月追加)

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

35.243.2.0/27 (2019年7月追加)

35.245.243.240/29 (2022 年 2 月追加)

199.192.115.0/30

199.192.115.8/30

199.192.115.16/29

使用されなくなったデバイスの IP ブロック

74.125.122.32/29 (2022 年 2 月削除)

216.239.44.24/29 (2022 年 2 月削除)