# Milestones

Source: https://docs.qualflare.com/docs/test-management/milestones · Last updated: 2026-10-27

Milestones in Qualflare collect the launches you run for a release or sprint and show how their tests did. Deleting a milestone also deletes its launches.

In Qualflare, a **milestone** groups the launches you run for a release, sprint or other checkpoint and shows how their tests did. Each milestone has one of seven kinds, and a new one defaults to Release.

|           |                                                                                                                                                                                                                |
| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Where     | **Milestones** under **Planning** in the project sidebar. A milestone opens in a side panel                                                                                                                    |
| Who       | View: (requires the Viewer role or higher in the project); create, edit, complete and assign: (requires the Editor role or higher in the project); delete in the app: (requires the Owner role in the project) |
| Plans     | Every plan, with no limit on how many milestones a project has                                                                                                                                                 |
| Linked to | Launches only: no test cases, defects or test plans                                                                                                                                                            |
| CLI       | `qf <identifier> milestones list`, `qf <identifier> milestone get <seq>`, and `--milestone` on `qf <identifier> collect` ([Milestones commands](https://docs.qualflare.com/docs/cli/read-commands#milestones)) |
| MCP       | `list_milestones` and `get_milestone`, read only ([MCP server reference](https://docs.qualflare.com/docs/api/mcp-reference))                                                                                   |
| Data loss | Deleting a milestone deletes its launches. See [Delete a milestone](https://docs.qualflare.com/docs/test-management/milestones#delete-a-milestone)                                                              |

## How milestones work

A [milestone](https://docs.qualflare.com/docs/reference/glossary#milestone) marks a checkpoint you test toward, and you link the launches you run for it:

* **Releases**: "v2.0", "Q1 GA"
* **Sprints and iterations**: "Sprint 24", "Iteration 5"
* **Test cycles**: a regression cycle before a release

Each milestone has a **Kind** that says which it is: Cycle, Feature, Iteration, Plan, Release, Sprint or Version. A milestone holds:

* **Name** and **Description**
* **Kind**, which defaults to Release
* **Due Date**
* **Assignees**: the people responsible. Other people you assign get an in-app notification and an email.
* **Launches**: the test runs linked to it

A milestone has no list of test cases and no linked defects. You only link launches to it.

### Milestones vs test plans

A [test plan](https://docs.qualflare.com/docs/test-management/test-plans) selects which cases to run. A milestone collects the launches you ran for a release, and the two aren't linked to each other.

## The milestones list

The milestones list shows every milestone in the current project.

*Figure: The Milestones list shows each milestone's health bar and assignees.*

### Columns

| Column           | Description                                                             |
| ---------------- | ----------------------------------------------------------------------- |
| **Name**         | The milestone's kind icon, its number (for example `#12`), and its name |
| **Date Created** | When the milestone was created                                          |
| **Last Update**  | When the milestone last changed                                         |
| **Due Date**     | The milestone's due date                                                |
| **Health**       | A bar of passed, failed, error, skipped, timeout, and aborted results   |
| **Assignees**    | People assigned to the milestone. Pick them from the project's members  |

### Search

Use the &#x2A;*Search milestones...** box to find milestones by name. The list has no other filters.

From the CLI, search with `qf <identifier> milestones list --query "v2.0"`.

### Sorting

Click a column header to sort by **Name** (milestone number), **Date Created**, **Last Update**, or **Due Date**.

To edit, complete or delete a milestone, open it. See [Milestone panel](https://docs.qualflare.com/docs/test-management/milestones#milestone-panel). The list's own actions don't work: **Mark as completed** in a row's menu and the bulk **Complete** button fail with an error, **Delete** in a row's menu does nothing, and the bulk **Archive** button only shows "Archive coming soon".

## Create a milestone

Requires the Editor role or higher in the project.

1. Go to **Milestones** and click **Create Milestone**.
2. Fill in the fields below.
3. Click **Create**.

| Field           | Required | Notes                                                                                                      |
| --------------- | -------- | ---------------------------------------------------------------------------------------------------------- |
| **Name**        | Yes      | 3 to 128 characters. Longer names fail to save.                                                            |
| **Description** | Yes      | Up to 256 characters. Longer text fails to save. Qualflare doesn't save a milestone without a description. |
| **Kind**        | Yes      | Cycle, Feature, Iteration, Plan, Release, Sprint or Version. Defaults to Release.                          |
| **Due Date**    | Yes      | Any date, past or future                                                                                   |

*Figure: Pick a Kind when you create a milestone. New milestones default to Release.*

## Milestone panel

The milestone panel is the side panel that opens over the list when you click a milestone. Press Esc or use the close button to close it.

The header shows the milestone number and name, an **Active** or **Completed** badge, the kind, when it was created and the description. Below that are four values:

| Value        | What it shows                |
| ------------ | ---------------------------- |
| **Type**     | The milestone's kind         |
| **Due Date** | The due date, or "Not set"   |
| **Launches** | How many launches are linked |
| **Health**   | A bar of the result counts   |

The **More options** (⋯) menu holds **Edit**, **Mark Complete** (**Reopen** on a completed milestone) and **Delete**. **Mark Complete** and **Reopen** don't work, so use **Edit** to complete or reopen a milestone.

| Tab          | What it shows                                                                                                                                              |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Overview** | **Test Health**: result counts by status, with the **Pass Rate**                                                                                           |
| **Health**   | The latest run of each suite in the linked launches, with the pass rate on the tab                                                                         |
| **Launches** | The linked launches, with State, Type, Branch, Environment, Platform and Date Created. Click a launch's **Launch at** link in the State column to open it. |
| **Comments** | Discussion about the milestone                                                                                                                             |

*Figure: The milestone panel shows whether the milestone is Active or Completed.*

*Figure: The Health tab counts only the latest run of each suite in the milestone's launches.*

*Figure: The Launches tab lists every launch linked to the milestone.*

## Link launches to a milestone

Launches are what you link to a milestone. You don't add test cases to it.

* **Manual runs**: go to **Launches** > **Start Launch**, choose the suites, then pick the milestone in the optional **Milestone** field. Completed milestones aren't listed. The **Milestone** field lists only the open milestones among the project's first 10 milestones by number, so a newer milestone may be missing from it. See [Start a manual launch](https://docs.qualflare.com/docs/runs).
* **Uploaded results**: pass the milestone number to the CLI, or set `QF_MILESTONE`:

```bash
qf <identifier> collect results.xml --milestone 12
```

If the project has no milestone with that number, Qualflare refuses the upload and creates no launch, and qf's error includes `milestone #12 does not exist in this project`.

See [collect](https://docs.qualflare.com/docs/cli/collect) for the other options. In CI, set `QF_MILESTONE` once for the job; see [CI/CD](https://docs.qualflare.com/docs/cli/ci-cd).

## Edit a milestone

Open the milestone and choose **More options** (⋯) > **Edit**. You can change:

* **Name** (at least 3 characters)
* **Description** (at least 3 characters)
* **Due Date**
* **Type**
* **Is Completed**, and **Date Completed** while it's on

Click **Save** to apply your changes. **Cancel** or Esc discards them.

## Complete or reopen a milestone

A milestone is either **Active** or **Completed**, and it stays **Active** until you complete it. Qualflare never completes a milestone on its own, and runs no checks before you do. The list doesn't show the status: open the milestone to see its badge.

1. Open the milestone and choose **More options** (⋯) > **Edit**.
2. Turn on **Is Completed**. Optionally pick a **Date Completed**.
3. Click **Save**.

The badge changes to **Completed**. To reopen the milestone, turn **Is Completed** off and save. Completed milestones don't appear in the **Milestone** field of **Start Launch**. **Mark Complete** and **Reopen** in the menu don't work, so use **Edit**.

Many teams agree on a checklist before they complete a milestone, such as "all critical tests pass" or "no open Critical defects". Qualflare doesn't enforce it.

*Figure: To complete a milestone, turn on Is Completed in Edit and save.*

## How milestone health is calculated

Milestone health counts the results of the launches linked to the milestone:

* Only launches linked to the milestone count.
* For each suite, only its most recent run across those launches counts.
* Health counts that run's case results by status: passed, failed, error, skipped, timeout and aborted.
* Pass rate is passed results divided by all results. Skipped, timeout, aborted and error results all lower it.
* Defects don't affect milestone health.

Before a release, check open defects separately: filter [Defects](https://docs.qualflare.com/docs/defects) by **Status** and **Severity**. See also [Check milestone health](https://docs.qualflare.com/docs/analytics#workflow-4-check-milestone-health).

## Delete a milestone

> **Caution:** Deleting a milestone permanently deletes every launch linked to it, with all of their suite results, case results and comments. Test cases and defects are kept. This can't be undone, and the confirmation doesn't mention the launches. To close a milestone and keep its launches, complete it instead.

To complete it, open **Edit** and turn on **Is Completed**, as [Complete or reopen a milestone](https://docs.qualflare.com/docs/test-management/milestones#complete-or-reopen-a-milestone) shows.

Requires the Owner role in the project.

1. Open the milestone and choose **More options** (⋯) > **Delete**.
2. In **Delete Milestone**, click **Delete**.

## Permissions

| Action                                    | Role                                                |
| ----------------------------------------- | --------------------------------------------------- |
| View milestones and their launches        | (requires the Viewer role or higher in the project) |
| Create, edit, complete, reopen and assign | (requires the Editor role or higher in the project) |
| Delete in the app                         | (requires the Owner role in the project)            |

Your role on a project is the higher of your project role and your workspace role. In the web app today, buttons follow your project role. See [Roles and permissions](https://docs.qualflare.com/docs/administration/roles-permissions#workspace-and-project-roles).

Qualflare records creating, editing, completing, reopening, assigning and deleting a milestone in the workspace [audit log](https://docs.qualflare.com/docs/administration/audit-logs) (available on Scale, Enterprise, Open Source).

## Limits and availability

Milestones are on every plan, and a project can have any number of them. **Name** is 3 to 128 characters, **Description** is required and up to 256 characters, **Kind** is one of the seven kinds and **Due Date** is required. Longer text fails to save.

## Related

* **Guides:** [Start a manual launch](https://docs.qualflare.com/docs/runs) · [Run tests in the Test Wizard](https://docs.qualflare.com/docs/runs/manual-testing) · [Upload results with qf collect](https://docs.qualflare.com/docs/cli/collect) · [Check milestone health](https://docs.qualflare.com/docs/analytics#workflow-4-check-milestone-health)
* **Reference:** [Launches](https://docs.qualflare.com/docs/runs/launches) · [Environments](https://docs.qualflare.com/docs/runs/environments) · [Test Plans](https://docs.qualflare.com/docs/test-management/test-plans) · [Defects](https://docs.qualflare.com/docs/defects) · [Roles and permissions](https://docs.qualflare.com/docs/administration/roles-permissions) · [Glossary: Milestone](https://docs.qualflare.com/docs/reference/glossary#milestone)
* **CLI/API:** [Milestones commands](https://docs.qualflare.com/docs/cli/read-commands#milestones) · [CI/CD](https://docs.qualflare.com/docs/cli/ci-cd) · [MCP server reference](https://docs.qualflare.com/docs/api/mcp-reference)
