---
title: "Smarter Testing overview"
description: "Learn what Smarter Testing is, which capabilities are free and which have a credit charge, and the terms used across the Smarter Testing docs."
platform: "Cloud"
doc_version: "unversioned"
last_updated: "2026-10-13"
cloud_plans: "Free, Performance, Scale"
version_control: "All supported providers"
---

> For current CircleCI product defaults, deprecated patterns, and Cloud/Server differences, see [AGENTS.md](https://circleci.com/docs/AGENTS.md).
>
> For the complete documentation index and site structure, see [llms.txt](https://circleci.com/docs/llms.txt).

# Smarter Testing overview

**Cloud plans:** Free, Performance, Scale

**Version control:** [All supported providers](https://circleci.com/docs/guides/integration/version-control-system-integration-overview/)

Smarter Testing is CircleCI’s way to run tests on CircleCI Cloud. It reduces test execution time while maintaining test confidence. Smarter Testing is built on the `circleci testsuite` command, which discovers and runs your tests.

## Why use Smarter Testing

Smarter Testing gives you the following benefits:

*   **Free capabilities with no extra configuration**: static test splitting across parallel nodes, rerunning only failed tests when you rerun a workflow from failed, and test uploads.
    
*   **Faster test runs when you need them**: run only the tests impacted by your code changes, and keep parallel nodes evenly loaded. You can also set the number of parallel nodes to match the work, and retry flaky tests automatically. You enable each of these capabilities on its own, and they have a credit charge above your plan’s allowance.
    
*   **The same command locally and in CI**: run and validate your test setup on your own machine before you push.
    

## Capabilities

The following capabilities are free and built in:

*   **[Static Test Splitting](https://circleci.com/docs/guides/test/use-static-test-splitting/)**: split tests across parallel execution nodes using timing data from previous runs.
    
*   **[Rerun Only Failed Tests](https://circleci.com/docs/guides/test/rerun-only-failed-tests/)**: rerun only the failed tests when you rerun a workflow from failed.
    
*   **[Test Uploads](https://circleci.com/docs/guides/test/collect-test-data/)**: upload your test results with the `store_test_results` step to access more test analytics, such as the **Tests** tab and Test Insights.
    

The following capabilities build on top of them and have a credit charge above your plan’s allowance. You can enable each one independently:

*   **[Test Impact Analysis](https://circleci.com/docs/guides/test/set-up-test-impact-analysis/)**: learn which tests are impacted by which source files, then run only the tests impacted by your code changes.
    
*   **[Dynamic Test Splitting](https://circleci.com/docs/guides/test/use-dynamic-test-splitting/)**: evenly distribute tests across parallel execution nodes as they run.
    
*   **[Dynamic Parallelism](https://circleci.com/docs/guides/test/set-parallelism-dynamically/)**: set a test job’s parallelism when the pipeline runs, from the selected tests or a target duration for each node.
    
*   **[Auto Rerun Failed Tests](https://circleci.com/docs/guides/test/auto-rerun-failed-tests/)**: automatically retry failed tests during the same run.
    

## Credit charge

Test impact analysis, dynamic test splitting, dynamic parallelism, and auto rerun failed tests count test atoms toward your plan’s monthly allowance. The allowance depends on your plan:

| Plan | Monthly allowance (test atoms) |
| --- | --- |
| Free | 1,000 |
| Performance | 10,000 |
| Scale | 100,000 |

Overall usage above your plan’s allowance has a credit charge of 3,000 credits per 100,000 test atoms. See [Credits](https://circleci.com/docs/guides/plans-pricing/credits/).

### How test atoms are counted

Each `circleci testsuite run` with one or more of these capabilities enabled counts its discovered test atoms once. Enabling one capability or several makes no difference, and neither does the job’s parallelism. If a job runs more than one test suite, each run counts separately.

## Get started

To set up `circleci testsuite` for your project, follow the [Getting Started With Smarter Testing](https://circleci.com/docs/guides/test/getting-started-with-smarter-testing/) guide.

If your project already uses the `circleci tests glob`, `circleci tests split`, or `circleci tests run` commands, follow the same guide to migrate them.

You can use the [CircleCI Agent Skills](https://circleci.com/docs/guides/toolkit/circleci-agent-skills/) to get set up for Smarter Testing. Install the [CircleCI Public Skills](https://github.com/CircleCI-Public/skills) plugin to your AI coding agent and ask your agent to get set up for Smarter Testing.

## Smarter Testing glossary

The following terms are used throughout the Smarter Testing documentation. They also appear in the main [Glossary](https://circleci.com/docs/reference/glossary/).

Analysis

The phase of test impact analysis that runs your tests with coverage instrumentation to produce impact data. By default, analysis runs on your default branch, using the `analysis` command in `test-suites.yml`. See the [Set Up Test Impact Analysis](https://circleci.com/docs/guides/test/set-up-test-impact-analysis/#analysis-on-default-branches) page.

Auto rerun failed tests

A Smarter Testing capability with a credit charge. Auto rerun failed tests automatically reruns failed test atoms during the same job, until they pass or a rerun limit is reached. See the [Auto Rerun Failed Tests](https://circleci.com/docs/guides/test/auto-rerun-failed-tests/) page.

Dynamic parallelism

A Smarter Testing capability with a credit charge. Dynamic parallelism sets a test job’s parallelism when the pipeline runs, either by scaling it with the selected test atoms or by targeting a duration for each parallel node. Dynamic parallelism is experimental. See the [Set Parallelism Dynamically](https://circleci.com/docs/guides/test/set-parallelism-dynamically/) page.

Dynamic test splitting

A Smarter Testing capability with a credit charge. Dynamic test splitting distributes test atoms from a shared queue across parallel nodes as the job runs, so that all nodes finish at about the same time. See the [Use Dynamic Test Splitting](https://circleci.com/docs/guides/test/use-dynamic-test-splitting/) page.

Impact data

The data that analysis produces. Impact data records which source files each test atom covers, and a hash of each file’s contents. Test selection compares your code against impact data to choose which test atoms to run. See the [Set Up Test Impact Analysis](https://circleci.com/docs/guides/test/set-up-test-impact-analysis/#analysis-on-default-branches) page.

Rerun only failed tests

A free Smarter Testing capability. When you rerun a workflow from failed, `circleci testsuite run` reruns only the test atoms that failed, instead of the whole test suite. See the [Rerun Only Failed Tests](https://circleci.com/docs/guides/test/rerun-only-failed-tests/) page.

Smarter Testing

CircleCI’s set of capabilities for running tests on CircleCI Cloud, built on the `circleci testsuite` command. Static test splitting, rerun only failed tests, and test uploads are free. Test impact analysis, dynamic test splitting, dynamic parallelism, and auto rerun failed tests have a credit charge above your plan’s allowance.

Static test splitting

A free Smarter Testing capability that splits test atoms across parallel nodes before they run, using timing data from previous runs. Set `parallelism` on your job to use static test splitting. See the [Use Static Test Splitting](https://circleci.com/docs/guides/test/use-static-test-splitting/) page.

Test atom

The smallest unit of work your test runner can execute independently. A test atom is typically a test file, for example `tests/auth_test.py`, but can also be a test package or module. Smarter Testing credit charges are counted in test atoms.

Test impact analysis

A Smarter Testing capability with a credit charge. Test impact analysis runs in two phases. Analysis maps which test atoms cover which source files, using code coverage data. Test selection then runs only the test atoms impacted by a code change. See the [Set Up Test Impact Analysis](https://circleci.com/docs/guides/test/set-up-test-impact-analysis/) page.

Test selection

The phase of test impact analysis that runs only the test atoms affected by a code change. Test selection compares your checked-out code against impact data. It selects new test atoms, test atoms that failed on the previous run, and test atoms whose covered files have changed or no longer exist. By default, test selection runs on feature branches. See the [Set Up Test Impact Analysis](https://circleci.com/docs/guides/test/set-up-test-impact-analysis/#test-selection-on-feature-branches) page.

Test suite

A named configuration in the `.circleci/test-suites.yml` file that defines how Smarter Testing discovers, runs, and analyzes a set of test atoms. See the [Testsuite Configuration Reference](https://circleci.com/docs/reference/testsuite-configuration-reference/).

Test uploads

A free Smarter Testing capability that uploads your JUnit XML test results to CircleCI with the `store_test_results` step. Uploaded results appear on the job’s **Tests** tab, and on CircleCI Cloud they also feed Test Insights. See the [Upload Test Results](https://circleci.com/docs/guides/test/collect-test-data/) page.

Testsuite command

The `circleci testsuite` command that runs Smarter Testing, available in every CircleCI job and in the latest CircleCI CLI. Its subcommands include `doctor`, which checks your `test-suites.yml` setup, `run`, which runs a test suite, and `list-tests`, which lists the test atoms a run would select without running them. See the [Getting Started With Smarter Testing](https://circleci.com/docs/guides/test/getting-started-with-smarter-testing/) page.