> [!NOTE]
> **Note:** The Automated Tester feature is now built into the **[App Testing agent](https://firebase.google.com/docs/app-distribution/android/app-testing-agent.md.txt)**. With the App Testing agent you define test goals in natural language, and the agent uses AI to understand and navigate your app, simulate user interactions, and provide detailed test results.

The Automated Tester feature is a **preview
release** . A preview release is not subject to any SLA or deprecation policy and
may receive limited or no support. During preview, [Test Lab](https://firebase.google.com/docs/test-lab/usage-quotas-pricing.md.txt#testing-quota)
rates apply. We're committed to transparent pricing for the **Automated
Tester** feature and will share all the details before it graduates to general
availability.

This guide describes how to automatically test your app using the
App Distribution Automated Tester feature in the Firebase console. The
Automated Tester performs a random crawl through your app and reports on any
problems it finds.

If you're looking for AI-powered testing, see the
[App Testing agent](https://firebase.google.com/docs/app-distribution/android/app-testing-agent.md.txt) instead.

## Before you begin

If you haven't already, [add Firebase to your Android project](https://firebase.google.com/docs/android/setup.md.txt#console).

If you aren't using any other Firebase products, you only have to create a
project and register your app. However, if you decide to use additional products
in the future, be sure to complete all of the steps in [Add Firebase using the Firebase console](https://firebase.google.com/docs/android/setup.md.txt#console).

> [!CAUTION]
> **Caution:** When you register your app with Firebase, make sure to enter the same package name as the app you're distributing. The package name value is case-sensitive and cannot be changed for your app in Firebase after it's registered with your Firebase project.

When you're ready to distribute a pre-release version of your app to testers,
build your APK using your normal process. You must sign the APK with your debug
key or app signing key.

## Distribute your app to Automated Tester using the Firebase console

The Automated Tester feature is now built into the
**[App Testing agent](https://firebase.google.com/docs/app-distribution/android/app-testing-agent.md.txt)** . To
use it,
[run a test](https://firebase.google.com/docs/app-distribution/android/app-testing-agent.md.txt#run-a-test)
in the Firebase console and choose "Random crawl".

## Distribute your app to Automated Tester using the Firebase CLI

Run the `appdistribution:distribute` command to upload your app and
distribute it to testers. Use the following parameters to
configure your distribution to the Automated Tester feature:

| appdistribution:distribute options ||
|---|---|
| `--test-devices` or `--test-devices-file` | The test devices you want to distribute builds to the Automated Tester feature. You can specify the test devices as a semicolon-separated list of test devices: `--test-devices: "model=shiba, version=34, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait"` Or, you can specify the path to a plain text file containing a semicolon-separated list of test devices: `--test-devices-file: "/path/to/test-devices.txt"` |
| `--test-username` | The username for automatic login to be used during [automated tests](https://firebase.google.com/docs/app-distribution/android-automated-tester.md.txt). |
| `--test-password` or `--test-password-file` | The password for automatic login to be used during [automated tests](https://firebase.google.com/docs/app-distribution/android-automated-tester.md.txt). Or, you can specify the path to a plain text file containing a password: `--test-password-file: "/path/to/test-password.txt"` |
| `--test-username-resource` | Resource name for the username field for automatic login to be used during [automated tests](https://firebase.google.com/docs/app-distribution/android-automated-tester.md.txt). |
| `--test-password-resource` | Resource name for the password field for automatic login to be used during [automated tests](https://firebase.google.com/docs/app-distribution/android-automated-tester.md.txt). |
| `--test-non-blocking` | Run [automated tests](https://firebase.google.com/docs/app-distribution/android-automated-tester.md.txt) asynchronously. Visit the Firebase console for the automatic test results. |

For more information on getting started with the Firebase CLI and different ways
to configure your distribution, see [Distribute Android apps to testers using
the Firebase
CLI](https://firebase.google.com/docs/app-distribution/android/distribute-cli?apptype=apk#step_2_distribute_your_app_to_testers).

## Distribute your app to Automated Tester using Gradle

You can configure App Distribution by adding at least one
`firebaseAppDistribution` section and use the following parameters to configure
the distribution to the Automated Tester feature:

| App Distribution Build Parameters ||
|---|---|
| `testDevices` or `testDevicesFile` | The test devices you want to distribute builds to using [automated tests](https://firebase.google.com/docs/app-distribution/android-automated-tester.md.txt). You can specify the test devices as a semicolon-separated list of device specifications `testDevices="model=shiba, version=34, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait"` Or you can specify the path to a file containing a semicolon-separated list of device specifications: `testDevicesFile="/path/to/testDevices.txt"` |
| `testUsername` | The username for automatic login to be used during [automated tests](https://firebase.google.com/docs/app-distribution/android-automated-tester.md.txt). |
| `testUsernameResource` | Resource name for the username field for automatic login to be used during [automated tests](https://firebase.google.com/docs/app-distribution/android-automated-tester.md.txt). |
| `testPassword` or `testPasswordFile` | The password for automatic login to be used during [automated tests](https://firebase.google.com/docs/app-distribution/android-automated-tester.md.txt). Or, you can specify the path to a plain text file containing a password: ``` testPasswordFile="/path/to/testPassword.txt" ``` |
| `testPasswordResource` | Resource name for the password field for automatic login to be used during [automated tests](https://firebase.google.com/docs/app-distribution/android-automated-tester.md.txt). |
| `testNonBlocking` | Run [automated tests](https://firebase.google.com/docs/app-distribution/android-automated-tester.md.txt) asynchronously. Visit the FIrebase console for the automatic test results. |

For more information on getting started with Gradle and different ways to configure your distribution, see [Distribute Android apps to testers using Gradle](https://firebase.google.com/docs/app-distribution/android/distribute-gradle.md.txt?apptype=apk#step_3_configure_your_distribution_properties).

## Distribute your app to Automated Tester using fastlane

In a `./fastlane/Fastfile` lane, add a
`firebase_app_distribution` block. Use the following parameters to
configure your distribution to the Automated Tester feature:

| firebase_app_distribution parameters ||
|---|---|
| `test_devices` or `test_devices_file` | The test devices you want to distribute builds to the Automated Tester feature. You can specify the test devices as a semicolon-separated list of test devices: `test_devices: "model=shiba, version=34, locale=en, orientation=portrait;model=b0q, version=33, locale=en, orientation=portrait"` Or, you can specify the path to a plain text file containing a semicolon-separated list of test devices: `test_devices_file: "/path/to/test-devices.txt"` |
| `test_username` | The username for automatic login to be used during [automated tests](https://firebase.google.com/docs/app-distribution/android-automated-tester.md.txt). |
| `test_password` or `test_password_file` | The password for automatic login to be used during [automated tests](https://firebase.google.com/docs/app-distribution/android-automated-tester.md.txt). Or, you can specify the path to a plain text file containing a password: `test_password_file: "/path/to/test-password.txt"` |
| `test_username_resource` | Resource name for the username field for automatic login to be used during [automated tests](https://firebase.google.com/docs/app-distribution/android-automated-tester.md.txt). |
| `test_password_resource` | Resource name for the password field for automatic login to be used during [automated tests](https://firebase.google.com/docs/app-distribution/android-automated-tester.md.txt). |
| `test_non_blocking` | Run [automated tests](https://firebase.google.com/docs/app-distribution/android-automated-tester.md.txt) asynchronously. Visit the FIrebase console for the automatic test results. |

For more information on getting started with fastlane and different ways to configure your distribution, see [Distribute Android apps to testers using fastlane](https://firebase.google.com/docs/app-distribution/android/distribute-fastlane.md.txt?apptype=apk#distribute).

## Automatic test crawl statuses

To help you interpret your test results, the **Automated test results** tab
shows any test issues, screenshots of the app, and a video of the test crawl
for each device. The status of the test can be found in your test results page:

| Crawl status | Description |
|---|---|
| Pending | The automatic test is still running and your results will be available soon. |
| Passed | The automatic test successfully crawled your app and did not find any crashes. |
| Failed | The automatic test failed because your app crashed during the test. |
| Inconclusive | The automatic test failed because of infrastructure errors. |