Android アプリを自動的にテストする

このガイドでは、Firebase コンソールの App Distribution 自動テスター機能を使用して、ビルドをテスターに自動的に配布する方法について説明します。自動テスター機能は、いつでも使用できる、使いやすいスモークテスト ツールをアプリに提供します。

始める前に

まだ Firebase を Android プロジェクトに追加していない場合は追加します。

他の Firebase プロダクトを使用していない場合は、プロジェクトを作成してアプリを登録するだけでかまいません。ただし、今後追加のプロダクトを使用する場合は、Firebase コンソールを使用して Firebase を追加するのステップをすべて完了してください。

アプリのプレリリース版をテスターに配布する準備ができたら、通常のプロセスに従って APK をビルドします。APK はデバッグ鍵またはアプリ署名鍵を使用して署名する必要があります。

Firebase コンソールを使用してアプリを自動テスターに配布する

アプリを自動テスターに配布するには、Firebase コンソールを使用して APK ファイルをアップロードします。

  1. Firebase コンソールの App Distribution ページを開きます。指示に従って Firebase プロジェクトを選択します。
  2. [リリース] ページで、配布するアプリをプルダウン メニューから選択します。
  3. アプリの APK ファイルをコンソールにドラッグしてアップロードします。
  4. アップロードが完了したら、[テスターまたはグループを追加] 検索バーで [自動テスター] を選択します。
  5. 自動テストをカスタマイズするには、[編集] アイコンをクリックし、[自動テストのカスタマイズ] ダイアログでカスタマイズを選択します。
  6. (省略可)[デバイス構成] ダイアログで、テストの仕様を満たす API レベル、デバイスの向き、ロケールを選択します。
  7. (省略可)[ログイン認証情報] プルダウン メニューをクリックして、アプリでログイン認証情報が必要な場合に、テスト中に使用できるカスタムのユーザー名とパスワードを作成します。
  8. [配布] をクリックします。必要に応じて、アプリのリリースノートを追加することもできます。

Firebase CLI を使用してアプリを自動テスターに配布する

appdistribution:distribute コマンドを実行してアプリをアップロードし、テスターに配布します。次のパラメータを使用して、自動テスター機能への配布を構成します。

appdistribution:distribute オプション
--test-devices または --test-devices-file

自動テスター機能にビルドを配布するテストデバイス。

テストデバイスは、テストデバイスのセミコロン区切りのリストとして指定できます。

--test-devices: "model=shiba, version=34, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait"

または、テストデバイスのセミコロン区切りのリストを含む書式なしテキスト ファイルのパスを指定します。

--test-devices-file: "/path/to/test-devices.txt"
--test-username

自動テスト中に使用する自動ログインのユーザー名。

--test-password または --test-password-file

自動テスト中に使用する自動ログイン用のパスワード。

または、パスワードを含む書式なしテキスト ファイルのパスを指定します。

--test-password-file: "/path/to/test-password.txt"
--test-username-resource

自動テスト中に自動ログインに使用するユーザー名フィールドのリソース名。

--test-password-resource

自動テスト中に自動ログインに使用するパスワード フィールドのリソース名。

--test-non-blocking

自動テストを非同期で実行します。自動テストの結果は Firebase コンソールで確認できます。

Firebase CLI の使い方と配布を構成するさまざまな方法について詳しくは、Firebase CLI を使用して Android アプリをテスターに配布するをご覧ください。

Gradle を使用してアプリを自動テスターに配布する

App Distribution を構成するには、firebaseAppDistribution セクションを少なくとも 1 つ追加し、次のパラメータを使用して、自動テスター機能への配布を構成します。

App Distribution ビルド パラメータ
testDevices または testDevicesFile

自動テストを使用してビルドを配布するテストデバイス。

テストデバイスは、デバイス仕様のセミコロンで区切ったリストとして指定できます。

testDevices="model=shiba, version=34, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait"

または、デバイス仕様のセミコロン区切りリストを含むファイルへのパスを指定することもできます。

testDevicesFile="/path/to/testDevices.txt"
testUsername

自動テスト中に使用する自動ログインのユーザー名。

testUsernameResource

自動テスト中に自動ログインに使用するユーザー名フィールドのリソース名。

testPassword または testPasswordFile

自動テスト中に使用する自動ログイン用のパスワード。

または、パスワードを含む書式なしテキスト ファイルのパスを指定します。

testPasswordFile="/path/to/testPassword.txt"
testPasswordResource

自動テスト中に使用する自動ログインのパスワード フィールドのリソース名。

testNonBlocking

自動テストを非同期で実行します。自動テストの結果は Firebase コンソールで確認できます。

Gradle の使い方と配布を構成するさまざまな方法について詳しくは、Gradle を使用して Android アプリをテスターに配布するをご覧ください。

fastlane を使用してアプリを自動テスターに配布する

./fastlane/Fastfile のレーンに firebase_app_distribution ブロックを追加します。次のパラメータを使用して、自動テスター機能への配布を構成します。

firebase_app_distribution のパラメータ
test_devices または test_devices_file

自動テスター機能にビルドを配布するテストデバイス。テストデバイスは、テストデバイスのセミコロン区切りのリストとして指定できます。

test_devices: "model=shiba, version=34, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait"

または、テストデバイスのセミコロン区切りのリストを含む書式なしテキスト ファイルのパスを指定します。

test_devices_file: "/path/to/test-devices.txt"
test_username

自動テスト中に使用する自動ログインのユーザー名。

test_password または test_password_file

自動テスト中に使用する自動ログイン用のパスワード。

または、パスワードを含む書式なしテキスト ファイルのパスを指定します。

test_password_file: "/path/to/test-password.txt"
test_username_resource

自動テスト中に自動ログインに使用するユーザー名フィールドのリソース名。

test_password_resource

自動テスト中に自動ログインに使用するパスワード フィールドのリソース名。

test_non_blocking

自動テストを非同期で実行します。自動テストの結果は Firebase コンソールで確認できます。

fastlane の使い方と配布を構成するさまざまな方法について詳しくは、fastlane を使用して Android アプリをテスターに配布するをご覧ください。

自動テストクロールのステータス

テスト結果の解釈に役立つように、[自動テストの結果] タブには、テストに関する問題、アプリのスクリーンショット、各デバイスのテストクロールの動画が表示されます。テストのステータスは、テスト結果ページに表示されます。

クロール ステータス 説明
保留中 自動テストはまだ実行中です。結果はまもなく表示されます。
合格 自動テストによるアプリのクロールが正常に完了し、クラッシュは検出されませんでした。
失敗 テスト中にアプリがクラッシュしたため、自動テストは失敗しました。
不確定 インフラストラクチャ エラーのため、自動テストは失敗しました。