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

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

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

重要な概念と用語

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

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

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

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

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

  • XCTest(XCUITestsを含む)XCTestフレームワークを使用して作成した単体テスト。 Test Labで実行するようにXCTestを変更する手順については、「XCTestの作成」にアクセスしてください。

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

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

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

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

    テストラボでテストを実行する方法については、「ゲームループテストの実行」にアクセスしてください。

ステップ2 :テストを実行するためのツールを選択します

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

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

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

  • 実際のデバイスでテストする前に、シミュレーターでローカルにテストを実行して、意図したとおりに動作することを確認してください。手順については、ローカルでテストするを参照してください。

ステップ3 :テストデバイスを指定する

Test Labを使用すると、GoogleデータセンターでホストされているさまざまなiOSデバイスとモデルでアプリに対してテストを実行できます。詳細については、「使用可能なデバイス」を参照してください。

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

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

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

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

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

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

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

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


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

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

モバイル広告

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

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

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

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

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

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

プラットフォームとデバイスの種類CIDRIPアドレスブロック
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(拡張02-2022)

108.177.31.160/27(02-2022を追加)

199.36.156.8/29(02-2022を追加)

199.36.156.16/28(02-2022を追加)

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(02-2022を追加)

34.136.2.136 / 29(02-2022を追加)

34.136.50.136 / 29(02-2022を追加)

34.145.234.144 / 29(02-2022を追加)

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(02-2022を追加)

199.192.115.0 / 30

199.192.115.8 / 30

199.192.115.16/29

デバイスのIPブロックは使用されなくなりました

74.125.122.32/29(02-2022を削除)

216.239.44.24/29(02-2022を削除)