Catch up on everthing we announced at this year's Firebase Summit. Learn more

iOS向けFirebaseTestLabの使用を開始する

Firebase Test Labを使用すると、さまざまなデバイスや構成でアプリの品質をテストできます。このガイドでは、Test Labの主要な概念、iOS製品の概要、およびテストの開始方法について説明します。

テストラボのクォータと料金プランの詳細については、参照使用法、クォータ、および価格設定を

重要な概念と用語

あなたが選択したテストまたはデバイスと構成に対するテストケースのセットを実行すると、テストラボは、テストマトリックスとして結果を表示し、一括でアプリに対してテストを実行します。

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

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

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

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

  • XCTest(XCUITests含む):あなたが使用して書いたユニットテストXCTestフレームワークを。訪問XCTestを作成テストラボで実行するようにXCTestを変更する手順について。

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

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

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

    • オプションで、1回のテスト実行で実行する複数のループを作成します。ラベルを使用してループを整理することもできるため、ループを追跡して特定のループを再実行できます。

    訪問ランゲームループテストテストラボでテストを実行する手順について。

ステップ2:あなたのテストを実行するツールを選択してください

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

  • Firebaseコンソールを使用すると、アプリケーションをアップロードし、どこからでもテストを開始できます。参照してくださいFirebaseコンソールでのテストを、このツールの使用方法について。

  • gcloudコマンドラインインタフェース(CLI)は、対話的にコマンドラインからテストを実行することができますし、また、同様にあなたの自動ビルドの一部およびテストプロセスなどのスクリプトに適しています。参照のgcloud CLIでのテストを、このツールの使用方法について。

  • 実際のデバイス上でテストする前に、意図した通りに振る舞うことを確認するために、シミュレータ上でローカルにテストを実行します。参照ローカルにテストを指示するために。

ステップ3:試験装置を指定します

Test Labを使用すると、GoogleデータセンターでホストされているさまざまなiOSデバイスとモデルでアプリに対してテストを実行できます。より多くを学ぶために、参照可能なデバイスを。

ステップ4:レビュー、テスト結果

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

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

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

詳細については、参照Firebaseテストラボの結果を分析します。

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

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

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


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

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

モバイル広告

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

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

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

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

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

テストラボデバイスによって生成されたすべてのネットワークトラフィックは、以下に由来するIPアドレスブロック。あなたも使って、このリストにアクセスできることを注意gcloud beta firebase test ip-blocks listのgcloud CLIでコマンドを。リストは定期的に更新されます(平均して年に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