# Introduction

> What Rehearsal does, how a test is made and where it runs.

Source: https://rehearsal.dev/docs

Rehearsal checks web apps before you release them. You describe a flow your users rely on, such as signing up or inviting a teammate. Re:agent, the assistant in the Rehearsal app, uses your app in a real browser and saves the steps it took. Rehearsal turns those steps into a Playwright test that you can run again whenever your app changes.

Rehearsal never reads your source code. It tests your app the way a person uses it, through the pages in a browser.

## How a test is made

1. **You describe a flow**

   Open **Re:agent** in the app and say what to check, in plain words. If the flow signs in, give Re:agent a test account first.

2. **Re:agent uses your app**

   Re:agent opens your app in a browser and works through the flow. You can watch the browser beside the chat. If it needs an answer from you, it asks in the chat and waits.

3. **Rehearsal writes the test**

   When the flow works, Re:agent saves it. Rehearsal writes a Playwright test from the saved steps and runs it once.

4. **Rehearsal checks it again**

   The test runs a second time in a fresh browser. A test that passes there is ready to run whenever you like.

## Where tests run

Tests run in Chromium, on Rehearsal's servers. You can start a run from three places.

- **The app.** Open **Tests** and run one test, a few, or a suite.
- **Your terminal.** The [Rehearsal CLI](https://rehearsal.dev/docs/cli/install.md) starts runs and reads their results. It also connects an app that runs on your computer.
- **GitHub.** A rule runs your tests when a pull request opens or changes, or when a branch changes. Each result appears as a check on the commit.

> [!NOTE]
> An app on your computer is reachable while the CLI is connected. Keep the terminal open for as long as tests need it.

## What a run shows

Open a run to see each test's steps and its result. You can watch the recording, see the step where a test stopped and what the page showed, and download the Playwright trace.

Sometimes a run stops because of a problem on our side. The run then says **Could not run**, and it does not count towards your plan.

## Next steps

- Follow the [Quickstart](https://rehearsal.dev/docs/quickstart.md) to sign up, add your app and get your first test.
- [Install the CLI](https://rehearsal.dev/docs/cli/install.md) to run tests and connect a local app from your terminal.
