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

# Test Milestones

> Group runs and sessions under a milestone, plan scope and timeline, and roll up manual and automated progress into one number.

A milestone is the planning container for a sprint, version, or cycle of testing. It captures scope, dates, branch, environment, build target, and testers, then rolls up progress across every linked run and session.

Milestones were called releases before. The Public API, the MCP tools, and links still use `release` (for example `/releases` and `create_release`), so existing integrations keep working.

## Create or edit a milestone

Open **Test Execution → Milestones** and click **Create milestone**. The same form is used for editing: open a milestone, click **...** in the header, then **Edit**.

The form shows the fields most milestones use. The rest sit under **More options** at the bottom, which starts closed and names the fields inside it. When you edit a milestone that already has any of those fields set, **More options** opens by itself.

| Field | Where | Description |
| :- | :- | :- |
| `Name` | Basics | Milestone name, required |
| `Description` | Basics | Short description |
| `Type` | Type | Value from [Milestone type settings](#milestone-type-settings), e.g. `release`, `hotfix`, `patch` |
| `Start Date` | Schedule | Planned start date |
| `Due Date` | Schedule | Planned due date; drives the `Past Due` status |
| `Branch` | Branch & Environment | Source-control branch |
| `Environment` | Branch & Environment | Target environment from project settings |
| `Testers` | Testers | Assigned testers; must be organization members |
| `Parent milestone` | More options | Optional parent milestone; see [Milestone scope](#milestone-scope) |
| `Build Target` | More options | Platform, version, build number, source, and deploy URL |
| `Linked Issues` | More options | Jira or Linear issues, by key or URL; same field as on runs, see [Link work items](https://docs.testdino.com/test-management/manual-testing/manual-runs.md#link-work-items) |
| `Note` | More options | Internal note with inline image support |

## Milestone scope

From a milestone's detail page, you can add 3 items: a test run, an exploratory session, or a sub-milestone.

* **Test run**: creates a [manual run](https://docs.testdino.com/test-management/manual-testing/manual-runs.md) under this milestone. Good for a fixed list of test cases, like a smoke check before a deploy or a regression pass.
* **Exploratory session**: creates a [session](https://docs.testdino.com/test-management/manual-testing/sessions.md) under this milestone. Best for unscripted testing where you set a mission, explore, and log findings as you go.
* **Sub-milestone**: creates a child milestone inside this one. Useful when a long cycle needs to split into phases, like a major version broken into a beta phase and a final phase (`v2.0 → Beta → Final`). The form opens with **Parent milestone** already set under **More options**.

**Note**

* Items added from the detail page link automatically to the milestone.
* Sub-milestones support up to 3 levels.

## Track progress on milestone detail

The detail page shows the milestone status, dates, edit options, and action buttons. Use the `Results` tab to track test progress and the `Activity` tab to see its runs and sessions.

### Milestone states

Milestones move through `Not Started`, `In Progress`, and `Completed`. `Past Due` appears if the due date passes before completion. Use Start, Complete, or Reopen to update the milestone state. Linked runs and sessions must be closed separately.

### Results tab

The `Results` tab combines test case results from every run in this milestone and its sub-milestones. Session findings are counted in their own breakdown.

A test case that appears in more than 1 run counts once, using its most recently updated entry. Adding a case to a new run shows it as `Untested` until someone records a result. A case a tester passed by hand and CI later failed counts as failed, the same way it reads inside the run.

Automated results reach a milestone through its runs. Pick the CI run on the run itself, under **Read automated results from**.

A milestone is only as accurate as the links behind its automated cases. A wrong or broken link reports the wrong result in the run, and the milestone rolls that number up without questioning it. See [Keeping links accurate](https://docs.testdino.com/test-management/test-cases/list-view.md#keeping-links-accurate).

### Activity tab

The `Activity` tab lists the milestone's runs and sessions, newest first, with each one's status and who created it.

## Milestone type settings

Use `Type` to categorize milestones. You can also customize and manage these values via ** Test Case Settings → `Test Execution → Milestones → Milestone Type`** in the header.

> [card] [Runs](https://docs.testdino.com/test-management/manual-testing/manual-runs.md)
>
> Track manual and automated cases inside a milestone

> [card] [Sessions](https://docs.testdino.com/test-management/manual-testing/sessions.md)
>
> Track exploratory work linked to a milestone


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.