> ## How Antithesis works

> Autonomous testing that generates test cases, explores system states, and reproduces bugs deterministically.

> Fetch the complete documentation index at: https://antithesis.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

---

## What's software testing really about?

Fundamentally, testing stateful software is about exploring a very large state space thoroughly enough -- because some of those states are bugs.

Antithesis does this for you by running multiple copies of your software in a simulation environment that's much more hostile than prod.

### Exploring your software

Running in Antithesis is like an extreme version of chaos engineering, where *everything* is running in our fault-filled environment -- your software, your client, your checkers. We throw random inputs at it (as though we're fuzzing), while filling the environment with [a wide range of faults](/docs/concepts/fault_injection/).

We don't just throw random inputs at the system -- we have an intelligent guidance component (it uses RL, but you can tell your boss it's AI) that constantly drives the platform to seek out new system states.

This creates a [multiverse of branching execution paths](/docs/product/debugging/advanced_multiverse_debugging/moment_branch/) in every Antithesis test. You can think of these as tens of thousands of alternate universes. In one universe, the network partitioned at time=t, and in many others, it didn't.

### Spotting bugs

To tell if a particular state is a bug, Antithesis relies on [properties you define](/docs/resources/property_based_testing/).

Instead of writing a vast test harness, you simply [state that your system should have certain properties](/docs/concepts/properties_assertions/assertions/), and Antithesis checks whether they're ever violated.

For example: You could write a hundred tests that each cover a different execution path and check whether your program crashes. But it's simpler and more powerful to write a *single* statement that the program should never crash!

And because properties are long-lived, you never have to update your tests (unless you decide that you *do* want, e.g. to stop checking for race conditions).

### Fixing bugs

The Antithesis environment is [fully deterministic](https://antithesis.com/blog/deterministic_hypervisor/). This makes every bug we find *perfectly reproducible,* so you'll never waste time trying to reproduce a flaky bug again.

Determinism enables us to provide [detailed artifacts](/docs/product/reports/) and [powerful, one-of-a-kind debugging tools](/docs/product/debugging/causality_analysis/), like a [deterministic time-traveling debugger](/docs/product/debugging/advanced_multiverse_debugging/overview/).

### What next?

Ready to get started? [Contact us](/company/contact/) to request a container registry and credentials. Once you have those, you can [dive right in](https://antithesis.com/login/).
