A milestone is a container that groups test runs, exploratory sessions, and automation runs together under a single tracking entity. Use milestones to represent anything you test against — a release, a sprint, a version, a testing cycle, or an internal review. Attaching your testing activity to milestones lets you see the combined progress and results across all that work in one place, track whether testing is on schedule, and review issues that surfaced during execution.
The Milestones page is the main hub for all milestones in a project. It lists active milestones grouped by due date on the Active tab and shows historical milestones on the Completed tab.
Creating a Milestone
Click the + Milestone button in the toolbar on the Milestones main page to open the Add milestone dialog.
The dialog has two tabs: Milestone and Notes.
Milestone tab
- Name (required): the display name for the milestone.
- Summary (optional): a short sentence describing the milestone (up to 80 characters). It appears below the milestone name on the Milestones main page. Use the Notes tab for longer documentation.
- Parent (optional): assigns this milestone as a child of an existing milestone, creating a hierarchy. The dropdown lists active milestones and, when editing, completed milestones that could serve as parents. See Sub-milestones for hierarchy rules.
- Type (required): the milestone type, which controls the icon shown for this milestone. Types are configured in the Admin area and can be scoped to specific projects or all projects.
- Planned start (optional): the intended start date for the milestone. This field is only shown before the milestone has been started.
- Due date (optional): the date by which the milestone should be complete. Shortcut links (+1w, +2w, +3w, +4w) let you set the due date relative to the planned start date.
- Issues: links from a connected issue tracker (such as Jira or GitHub) that represent the features, stories, or bug fixes this milestone covers. These links appear in the About panel on the milestone's detail pages and in the Issues tab.
- Automation tags: one or more tags that Testmo uses to automatically link incoming automation runs to this milestone. See Linking Automation to a Milestone.
Notes tab
The Notes tab contains a rich text editor for milestone-level documentation: scope, objectives, requirements, or any context relevant to the milestone.
Milestone Types
Every milestone is assigned a type. Types give milestones a meaningful label and a distinct icon that appears throughout the interface, on the Milestones main page, in milestone selectors, and in reports.
Types are managed in the Admin area. Each type has a name and an icon. A type can apply to all projects or be restricted to specific projects. One type is designated as the default and is pre-selected when creating a new milestone.
Use types to distinguish between different categories of milestones you track in your projects, for example, using separate types for releases, sprints, and quarterly test cycles.
Sub-milestones
Milestones can be nested up to 3 levels deep. A milestone with a parent is called a sub-milestone. This lets you model hierarchies such as a major release containing individual sprints, or a product cycle containing separate component releases.
To make a milestone a sub-milestone, set its Parent field in the Add or Edit milestone dialog.
The Parent dropdown lists active milestones and, when editing, also shows completed milestones that could serve as parents.
Hierarchy rules:
- There can be at most 3 levels (a root milestone, a child, and a grandchild).
- An active milestone cannot be a child of a completed milestone.
- Sub-milestones cannot be added to a completed milestone.
On the Milestones main page, sub-milestones appear nested under their parent. Each sub-milestone shows its own schedule and a compact progress bar.
On a milestone's Results page, the Sub milestones section lists all direct children and grandchildren with their individual progress bars and Start/Complete action buttons.
Stats shown for a parent milestone always aggregate the results of all its sub-milestones. When you look at a parent milestone's progress, you are seeing the combined testing status across its entire hierarchy.
The Milestones Main Page
Active tab
Active milestones are displayed as a timeline, grouped by due date. Each group header shows the due date; groups without a due date appear at the top. Due date headers for past-due milestones are highlighted to draw attention.
Each milestone card shows:
- The milestone type icon and name (clicking the name opens the milestone)
- A schedule description, for example Starts Nov 12, Nov 12 – Dec 6, or Unscheduled
- A status label: Started, Upcoming, or Past due
- A color-coded progress bar representing the test result breakdown across all linked runs and sessions, plus a completion percentage
- A Start button (for unstarted milestones) or Complete button (for started milestones)
Sub-milestones appear indented below their parent, each with its own compact progress bar and Start/Complete button.
Completed tab
The Completed tab shows a searchable table of all milestones that have been marked complete. The table includes the milestone name, status, started date, and completed date. A panel on the right shows summary metrics: total completed count, how many were past due, a chart of recently completed milestones by month, and a breakdown of completed milestones by type.
Starting and Completing a Milestone
Milestones have a lifecycle: they start as upcoming, then are started, then completed.
To start a milestone, click the Start button on the milestone card on the main page, or click Start in the toolbar on the milestone's detail page. The Start milestone dialog opens with a Start date field that defaults to today. You can set a past date if the milestone has already been underway.
To complete a milestone, click the Complete button (available after the milestone is started). The Complete milestone dialog opens with a Completion date field that defaults to today. You can set a past date if the milestone was completed in the past. Once completed, the milestone moves to the Completed tab.
A completed milestone can be reopened using the action menu on its detail page, unless its parent milestone is also completed.
Milestone Detail Pages
Opening a milestone takes you to its detail view, which has four tabs in the header:
| Tab | Contents |
|---|---|
| Results | Sub milestones, test runs, exploratory sessions, and automation runs linked to this milestone. |
| Status | Testing status summary, automation status by source, and a progress burndown chart. |
| Activity | Recent test results and automation activity across all linked runs, sessions, and automation runs. |
| Issues | Issues found during testing and issues linked directly from the milestone. |
The right panel (visible on all tabs) shows the About section: the milestone's type, schedule, summary, parent hierarchy (if this is a sub-milestone), linked issues, automation tags, and contributors.
Viewing Testing Status with Milestones
The Results tab shows compact status metrics alongside a Milestone activity widget displaying the count of active and closed runs, active and closed sessions, and automation runs. Below that, tables list each run, session, and automation run individually.
The Status tab gives you a high-level view of where testing stands for the milestone.
- Run & session status: a pie chart showing the breakdown of all test results by status across every manual run and session in this milestone and all its sub-milestones. This reflects the latest result for every manual test included, so it represents the current overall pass/fail/blocked state.
- Automation status: a list of automation sources that have runs linked to this milestone. For each source, Testmo shows the overall status (pass or fail) based on the latest completed runs per configuration, along with the date of the most recent run and the number of configurations.
- Progress: a burndown chart showing how testing effort and todo completion have changed over time. The chart is available once the milestone has been started and has runs or sessions with activity. It shows remaining work and completed work per day, and can display a forecast completion date if enough data is available. The due date is marked as a vertical reference line when set.
Viewing Milestone Activity
The Activity tab shows recent test results and automation outcomes across all runs, sessions, and automation runs linked to this milestone and any sub-milestones.
- Run & session activity: a line chart at the top of the page showing manual test results entered over the recent timeframe, broken down by status. This gives a day-by-day picture of how quickly testing is progressing and where results are landing.
- Automation activity: a column chart below the run & session chart showing recent automation run outcomes over time, with pass and fail columns per day.
Below the two charts, a set of tabs organizes the detailed results:
- Runs — lists individual test results from all runs in the milestone, filterable by status. Each result shows the test name, the run it belongs to, and its current status.
- Sessions — lists individual test results from all exploratory sessions in the milestone, similarly filterable by status.
- Automation — shows two tables: Most failures, listing the automated test cases with the highest failure count across all automation runs in the milestone, and Slowest tests, listing the automated test cases with the highest average elapsed time.
Viewing Issues Linked to Milestones
The Issues tab surfaces issue tracker references related to the milestone from two different sources.
- Issues found during testing: issues added to individual test results and session logs within this milestone. These are the bugs, defects, or notes that testers linked while executing tests. The list is searchable by issue ID and can be filtered by test result status.
- Issues linked from milestone: issues attached directly to this milestone or to any of its parent milestones. These typically represent the features, user stories, or bugs that this milestone is intended to verify.
Both sections are independent. A milestone can show issues in both sections simultaneously, the features it was meant to test (linked from the milestone) alongside the defects found while testing (linked from execution).
Linking Automation to a Milestone
Automation runs submitted from CI/CD pipelines can be linked to milestones in two ways: manually, by specifying the milestone ID when submitting a run, or automatically, using automation tags.
Automation tags are labels you assign to a milestone. When an automation run is submitted with a matching tag, Testmo automatically links the run to the most recent milestone that carries that tag. This way, you can keep your CI/CD pipeline configuration unchanged across releases; just tag each new milestone with the same tag to automatically attach incoming automation runs to the current milestone.
To assign automation tags to a milestone, use the Automation tags field in the Add or Edit milestone dialog. You can add existing tags from the dropdown or create new ones inline. Tags appear in the About panel on the milestone's detail pages.
Only the newest milestone with a given tag receives new automation runs, so you can use the same tag on successive milestones without removing it from older ones. Older milestones retain the runs that were linked to them; new runs go to the newest matching milestone.
Once automation runs are linked to a milestone, they appear in the Automation section on the Results tab and in the Automation status section on the Status tab.