---
title: Bits Testing
description: >-
  Use Bits Testing, an AI agent that explores your application to map critical
  user journeys and generate covering Synthetic tests.
breadcrumbs: Docs > Synthetic Testing and Monitoring > Bits Testing
---

> For the complete documentation index, see [llms.txt](https://docs.datadoghq.com/llms.txt).

# Bits Testing

{% callout %}
# Important note for users on the following Datadog sites: app.ddog-gov.com, us2.ddog-gov.com



{% alert level="danger" %}
Bits Testing is not supported for your selected [Datadog site](https://docs.datadoghq.com/getting_started/site.md) ({% placeholder "user-datadog-site-name" /%}).
{% /alert %}


{% /callout %}

## Overview{% #overview %}

Bits Testing is an AI agent that explores your application to map its most critical user journeys. It recommends ways to increase test coverage, and it can generate the Synthetic tests needed to close coverage gaps.

## Access Bits Testing{% #access-bits-testing %}

Open Bits Testing from Synthetic Monitoring & Testing using any of the following:

- **Bits Testing** in the Synthetic Monitoring & Testing top navigation.
- `Cmd+K` on macOS or `Ctrl+K` on Windows, then search for Bits Testing.
- **Bits Testing** in the side navigation menu, under **Digital Experience > Synthetic Monitoring & Testing**.
- Generate a Test With Bits Testing in a session replay's details panel. See [Generate a test from a session replay](https://docs.datadoghq.com/synthetics/guide/rum-to-synthetics.md#generate-a-test-from-a-session-replay).

## Trigger a Bits Testing job{% #trigger-a-bits-testing-job %}

1. On the Bits Testing page, describe the coverage you want in plain language, or select a suggested prompt. For example, ask Bits Testing to increase coverage generally, or to focus on specific features.
1. Confirm the starting URL. Leave Restrict Discovery to the start URL domain enabled to keep Bits Testing from following links to a different domain. Turn it off if your application's sign-in flow redirects off-site and back.
1. Select a location to run the Bits Testing job from:
   - A managed location: Frankfurt (GCP: `gcp:europe-west3`), N. Virginia (AWS: `aws:us-east-1`), Ohio (AWS: `aws:us-east-2`), or Virginia (Azure: `azure:eastus`).
   - A [private location](https://docs.datadoghq.com/synthetics/platform/private_locations.md) running remote execution. See Run Bits Testing from a private location.
1. Optionally, select a profile.
1. Select a review mode:
   - Ask about every action: Pauses before a sensitive action that changes real data, until you approve or deny it. See Approve or deny sensitive actions.
   - Auto-approve actions: Never pauses. Use only in test environments.
1. Click Start Discovery, or Start Discovery Without a Profile if you didn't select a profile.

If your application is behind bot protection or a WAF, see Troubleshooting.

{% image
   source="https://docs.dd-static.net/images/synthetics/bits_testing/start_discovery.8127ef1d8a25ca0c8897e5b95145e010.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/synthetics/bits_testing/start_discovery.8127ef1d8a25ca0c8897e5b95145e010.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="The Bits Testing job configuration panel with a starting URL, location, profile, and review mode selectors." /%}

### Run Bits Testing from a private location{% #run-bits-testing-from-a-private-location %}

Select a private location to run Discovery against an internal application that only your private network can reach. Bits Testing reaches the application using remote execution. Your private location opens a short-lived tunnel to the application. The Bits Testing job itself runs on Datadog-managed infrastructure, not inside your environment.

Remote execution requires private location worker `v1.74.0` or later. Pull the latest image from the [private location worker page on Docker Hub](https://hub.docker.com/r/datadog/synthetics-private-location-worker). Workers on earlier versions keep running but can't be selected for Bits Testing.

Enable remote execution on the private location:

- **New private locations**: In the [creation wizard's](https://docs.datadoghq.com/synthetics/platform/private_locations.md#create-your-private-location) "Configure your private location" step, leave the remote execution toggle in its default, off position.
- **Existing private locations**: Upgrade the worker image, then set `disableRemoteExecution` to `false` in the location's [configuration file](https://docs.datadoghq.com/synthetics/platform/private_locations/configuration.md) and redeploy the workers.

The location picker shows each private location's remote execution status when you select it.

Job results list the private location you selected as the job's location.

## Profiles{% #profiles %}

A profile stores context that Bits Testing uses while interacting with your application, such as login credentials.

To create a profile:

1. Open the Profile dropdown menu and select + New Profile.
1. Name the profile.
1. Add one or more variables. For each variable, set:
   - **Usage**: The variable's purpose, for example, `username` or `password`.
   - **Value**: Either a typed value, or an existing [Global Variable](https://docs.datadoghq.com/synthetics/platform/settings.md#global-variables).
1. Click Create Profile.

The new profile is automatically selected for the current job. Saved profiles can be reused in later Bits Testing jobs without redefining their variables.

{% image
   source="https://docs.dd-static.net/images/synthetics/bits_testing/bits_testing_agent_profile_modal.cdd9619b92431676ae2dedbd27351971.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/synthetics/bits_testing/bits_testing_agent_profile_modal.cdd9619b92431676ae2dedbd27351971.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="The New Profile modal for creating a profile, with fields for name, variable usage, and value." /%}

## Review results{% #review-results %}

Review a Bits Testing job while it's in progress, as it pauses for approval, or after it completes.

### Discovery in progress{% #discovery-in-progress %}

Bits Testing explores your application starting from the URL you provide. At each new page it encounters, it determines a set of actions to try, and it repeats this process as it moves through your application. Click a job under My Jobs to view it while it's in progress or after it completes.

{% image
   source="https://docs.dd-static.net/images/synthetics/bits_testing/bits_testing_in_progress.658592191e47ce44835bba6edbfdf805.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/synthetics/bits_testing/bits_testing_in_progress.658592191e47ce44835bba6edbfdf805.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="A Bits Testing job in progress, exploring an application from its starting URL." /%}

### Approve or deny sensitive actions{% #approve-or-deny-sensitive-actions %}

When review mode is set to Ask about every action, Bits Testing pauses before a sensitive action. It displays an Approval needed card describing the action and why it needs review.

- Click Approve to let Bits Testing continue down that path.
- Click Deny to skip the action. Bits Testing stops exploring that branch, marks it as denied in the map, and continues exploring other paths.
- If you don't respond before the approval expires, Bits Testing treats it like a denial and stops exploring that branch.

{% image
   source="https://docs.dd-static.net/images/synthetics/bits_testing/bits_testing_approval_needed.14137fdaa60e1894fc46eed9dd0acbb9.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/synthetics/bits_testing/bits_testing_approval_needed.14137fdaa60e1894fc46eed9dd0acbb9.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="Four Approval needed cards for two product review actions, a profile edit, and a sign-up action, each with an explanation and Approve and Deny buttons." /%}

{% image
   source="https://docs.dd-static.net/images/synthetics/bits_testing/bits_testing_action_denied.df26ffc7a924b1aecf0ddf46175c3508.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/synthetics/bits_testing/bits_testing_action_denied.df26ffc7a924b1aecf0ddf46175c3508.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="The exploration map after an action is denied, showing the branch marked as denied and no longer explored." /%}

### Inspect an explored action{% #inspect-an-explored-action %}

Click any node in the map to open a detail panel for that step. The panel shows:

- **Action**: The action Bits Testing took.
- **Page**: The URL where the action occurred.
- **Reasoning**: Why Bits Testing chose this action.
- **Step**: The specific interaction performed. For example, the action **Add product to cart** might correspond to the step **Click Add to cart button**.

Use the panel's navigation controls to move between the screenshots captured during the job.

{% image
   source="https://docs.dd-static.net/images/synthetics/bits_testing/bits_testing_step_detail.3f32544213d4a4077693555499c3c867.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/synthetics/bits_testing/bits_testing_step_detail.3f32544213d4a4077693555499c3c867.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="A step detail panel showing a screenshot, the action taken, the page URL, the agent's reasoning, and the step performed." /%}

After a job completes, Bits Testing updates the map to distinguish two kinds of paths:

- **Exploration path**: Every page and action Bits Testing tried while exploring your application.
- **Path to generated journey**: The specific sequence of actions that produced a test suite.

If a job doesn't complete successfully, the map shows the error that stopped it.

{% image
   source="https://docs.dd-static.net/images/synthetics/bits_testing/bits_testing_results_graph.5c5a2dff3244b18a6cbc24a58e6971eb.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/synthetics/bits_testing/bits_testing_results_graph.5c5a2dff3244b18a6cbc24a58e6971eb.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="A completed Bits Testing exploration map showing the branches explored and the journeys found." /%}

## Generated test suites{% #generated-test-suites %}

Click a green journey card to open the AI-generated test suite for that journey. A test suite can include:

- **[Browser tests](https://docs.datadoghq.com/synthetics/browser_tests.md)** that replay the interactions a user takes to complete the journey, with assertions along the way.
- **[HTTP tests](https://docs.datadoghq.com/synthetics/api_tests/http_tests.md)** that validate the endpoints the journey calls to retrieve data.
- **[Network path tests](https://docs.datadoghq.com/synthetics/network_path_tests.md)** that check the hosts powering the journey are reachable.

Each test in the suite includes a free sample test run. Review the suite and either:

- Click Ignore if the suite isn't relevant, and optionally share feedback about why.
- Click Start Testing to add the suite's tests to your account.

After you start testing a suite, each test becomes a regular Synthetic test that you can edit or delete. By default, generated tests run every 5 minutes from the location you selected for the Bits Testing job.

{% image
   source="https://docs.dd-static.net/images/synthetics/bits_testing/bits_testing_generated_suite.bfa3f437a9b0ba7e9877fd57dfb01dbc.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/synthetics/bits_testing/bits_testing_generated_suite.bfa3f437a9b0ba7e9877fd57dfb01dbc.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="A generated test suite with Browser, HTTP, and Network Path tests, showing a passed run's details." /%}

## Supported locations{% #supported-locations %}

Bits Testing runs from the managed locations in Trigger a Bits Testing job, or from a private location using remote execution. Browser, HTTP, and network path tests generated by Bits Testing support the same locations as any other Synthetic test, including [private locations](https://docs.datadoghq.com/synthetics/platform/private_locations.md).

## Troubleshooting{% #troubleshooting %}

### Bot protection or a WAF blocks Bits Testing{% #bot-protection-or-a-waf-blocks-bits-testing %}

If your application sits behind bot protection or a web application firewall (WAF), allow the IPs listed under `synthetics` in the [Datadog IP ranges](https://docs.datadoghq.com/api/latest/ip-ranges/list-ip-ranges.md) with your provider. To run Bits Testing from a single location, you can allow only that location's IP range instead. See Trigger a Bits Testing job for the locations Bits Testing can run from.

Run Bits Testing from a private location instead of a managed location. Traffic then reaches your application from inside your own network, so bot protection or a WAF that blocks public cloud traffic doesn't block Bits Testing.

## Further reading{% #further-reading %}

Additional helpful documentation, links, and articles:

- [Browser Testing](https://docs.datadoghq.com/synthetics/browser_tests.md)
- [HTTP Tests](https://docs.datadoghq.com/synthetics/api_tests/http_tests.md)
- [Network Path Testing](https://docs.datadoghq.com/synthetics/network_path_tests.md)
- [Test Suites](https://docs.datadoghq.com/synthetics/test_suites.md)
- [Global Variables](https://docs.datadoghq.com/synthetics/platform/settings.md#global-variables)
- [Run Synthetic Tests from Private Locations](https://docs.datadoghq.com/synthetics/platform/private_locations.md)
- [Generate Synthetic Tests From Session Replay](https://docs.datadoghq.com/synthetics/guide/rum-to-synthetics.md)
- [Synthetic Monitoring pricing](https://www.datadoghq.com/pricing/?product=synthetic-monitoring#products)
