> For the complete documentation index, see [llms.txt](https://docs.dbnl.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dbnl.com/v0.21.x/learning-about-distributional/defining-tests-in-distributional.md).

# Defining Tests in Distributional

What's in a test?

Tests are the core mechanism for asserting acceptable app behavior within Distributional.  In this section, we introduce the necessary tools and explain how they can be used -- either with guidance from Distributional or by users based on unique needs.

At its core, a **Test** is a combination of a **Statistic**, derived from a run, which defines some behavior of the run, and an **Assertion** which enumerates the acceptable values of that statistic (and, thus, the acceptable behavior of a run). The run under consideration in a test is referred to as the **Experiment** run; often, there will also be a **Baseline** run used for comparison.

**Test Tags** can be created and applied to tests to group them together for, among other purposes, signaling the shared purpose of several tests (e.g., tests for text sentiment).

When a group of tests is executed on a chosen Experiment and Baseline Run, the output is a **Test Session** containing which assertions Pass and Fail.
