Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

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

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

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

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

主要な概念と用語

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

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

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

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

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

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

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

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

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

    • 必要に応じて、1 回のテスト実行で実行する複数のループを作成します。ラベルを使用してループを整理することもできるため、それらを追跡して特定のループを再実行できます。

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

ステップ 2 : テストを実行するツールを選択する

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

一部のモバイル アプリは、テスト中に正しく機能するためにプライベート バックエンド サービスと通信する必要があります。バックエンド サーバーがファイアウォール ルールで保護されている場合は、以下の 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 月削除)