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

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

テストラボのクォータと料金プランについては、使用量、クォータ、および料金を参照してください。

重要な概念

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

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

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

ステップ1 :テストラボにアップロードするためのテストを準備します

利用可能なテストタイプ

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

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

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

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

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

    • 異なるUIやテストフレームワークに同じコードを書くことは避けてください

    • オプションで、1回のテスト実行で実行する複数のループを作成します(詳細については、ゲームループテストについてを参照してください)。ラベルを使用してループを整理することもできるため、ループを追跡して特定のループを再実行できます。

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

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

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

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

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

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

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

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

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

ステップ3 :テスト結果を確認する

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

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

生のテスト結果には、テストログとアプリの失敗の詳細が含まれ、GoogleCloudバケットに自動的に保存されます。バケットを指定する場合は、ストレージのコストを負担する必要があります。バケットを指定しない場合、TestLabは無料でバケットを作成します。

詳細については、 Firebase TestLabの結果の分析をご覧ください。

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

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

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

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


テストラボとGooglePlayサービス

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

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

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

モバイル広告

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

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

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

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

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

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

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

108.177.6.0/23

70.32.147.112/28(2020年 3月に追加)

74.125.122.32/29(2020年 4月に追加)

108.177.29.80 / 28(2020年4月に追加)

216.239.44.24 / 29(2020年4月に追加)

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月追加)

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月追加)

199.192.115.0 / 30

199.192.115.8 / 30

199.192.115.16/29