The Tesults web app is designed for desktop browsers. Sign up and configure your project on a laptop or desktop. Use the iOS app or Android app to view results on the go.

Set Priorities for Test Cases

A community requested feature

blog-title-image

Setting priorities for test cases means ranking them by how much their failure would matter, so that when time is short you know which tests and which failures to deal with first. Not every test carries the same weight. A test covering sign in or payment is far more important than one covering a cosmetic detail, and treating them as equal wastes effort and risks shipping serious problems. This post covers why prioritisation matters, how to decide what counts as high priority, and how to record priority against your test cases so the ordering is visible when you need it.

Why prioritise test cases at all?

Because your time and attention are finite and your tests are not equally important. Prioritisation pays off in several concrete situations. When a build produces many failures, priority tells you which to investigate first rather than working through them in arbitrary order. When you cannot run or automate every test, priority tells you which to cover first for the best return. And when you are deciding what to build into a fast pre release smoke suite versus a slower full regression run, priority is the natural basis for that split. In short, prioritisation turns a flat list of tests into an ordered one, so the most consequential work happens first.

How do you decide what is high priority?

The core question for any test case is simple: how bad is it if the functionality this test covers is broken? The higher the impact of failure, the higher the priority. A few factors feed into that judgement:

  • Severity of failure. If this breaks, how much damage is done? Being unable to sign in or complete a purchase is critical. A misaligned icon is not.
  • Criticality of the flow. Core paths that many other features depend on, authentication, authorisation, checkout, data saving, rank highest because their failure can render large parts of the system unusable.
  • Likelihood and frequency of use. Functionality that almost every user hits on every visit deserves higher priority than an edge feature used rarely.
  • Blast radius. A failure that cascades into many other areas is higher priority than one contained to a single isolated feature.

A common approach is to assign each test case a priority level, for example from highest down to lowest, based on the above. The exact scale matters less than applying it consistently, so that anyone looking at the list understands the ordering the same way.

How do you record priority against your test cases?

Deciding priority only helps if it is written down somewhere visible, rather than living in one person's head. Recording a priority value against each case means that anyone reviewing the tests can immediately see what to handle first.

In Tesults, test cases that are part of a List or Run can have a priority value assigned, from 0 (Highest) down to 4 (Lowest). You set it when adding or editing a test case:

Assigning a priority value from 0 (Highest) to 4 (Lowest) when adding or editing a test case in a Tesults List or Run

With priorities assigned, it becomes easy to see what to handle first when viewing a full test list, because the priority is shown alongside each case:

A Tesults test list showing priority values assigned to each test case so the most important ones are clear

This turns a plain list of manual test cases into a prioritised one, which is what you want when preparing for a release and working out what must be verified before you ship.

Prioritising manual and automated tests

The priority field described above applies to manual test cases managed through Tesults Lists and Runs. For automated test results, prioritisation is currently something you apply in how you structure and name your tests and suites, rather than a per case priority field on automated results, so a common practice is to group your highest priority automated tests into a dedicated smoke or critical path suite that runs first and gates the pipeline, with lower priority tests in fuller runs.

Extending an explicit priority value to automated test results is something we are interested in developing further. If a per case priority on automated results would help your workflow, we would like to hear how, so please get in contact.

Prioritisation in practice

Prioritisation is most useful when it feeds directly into decisions. Automate and run your highest priority cases first and most often, since they give the best return on the time invested. When triaging a run with many failures, deal with the high priority failures before the rest. And when a release is under time pressure, let priority decide the minimum set that must pass before you are comfortable shipping. Used this way, setting priorities is not busywork, it is what lets a small team focus its limited testing effort where it matters most.

To record priority against your manual test cases, see the Tesults Lists and Runs documentation.

Test automation reporting and failure intelligence

Consolidated test reporting for engineering teams. Store, track, and understand test results across every run and system.

Latest Posts

How AI Coding Agents Use Test Results to Verify Their Own Work
How AI Coding Agents Use Test Results to Verify Their Own Work
Why a raw pass or fail is not enough for an agent to trust its own change, and how failure intelligence closes the self-verification loop
Store and View Pytest Results Over Time
Store and View Pytest Results Over Time
Why pytest results vanish after each CI run, and how to keep a durable history you can view, compare, and track over time
How to Group and Categorize Failing Tests by Root Cause
How to Group and Categorize Failing Tests by Root Cause
When a CI run shows dozens of failures, label each one with a root cause category and group them to see how many distinct problems you actually have
How to View JUnit XML Test Results in a Dashboard
How to View JUnit XML Test Results in a Dashboard
Upload JUnit XML to a dashboard in one step, and why a test framework library gives you richer reporting with logs, screenshots, and full history
How to Keep a History of Test Results Instead of Losing Them After Each CI Run
How to Keep a History of Test Results Instead of Losing Them After Each CI Run
Why CI logs and artifacts disappear, what you lose when they do, and how to retain a durable history of every test run
How to Query Test Results With AI Agents Using MCP
How to Query Test Results With AI Agents Using MCP
How to query your CI test data failures, flaky tests and regressions with AI agents using the Model Context Protocol
ROS 2 Test Reporting with Tesults
ROS 2 Test Reporting with Tesults
Native support for the full ROS 2 testing stack — C++, Python, Rust, and beyond
Cypress Test Reporting - Beyond the Built-in Reporters
Cypress Test Reporting - Beyond the Built-in Reporters
What Cypress's built-in reporters give you and where they fall short
Playwright Test Reporting: Beyond the Built-in Reporters
Playwright Test Reporting: Beyond the Built-in Reporters
What Playwright's built-in reporters give you and where they fall short
How AI is Transforming Software Testing and Automation
How AI is Transforming Software Testing and Automation
AI is impacting software testing and automation in a big way. Here’s how AI is reshaping the testing landscape.
What is Automated Regression Testing and How to Do It
What is Automated Regression Testing and How to Do It
Learn about what automated regression testing is, how to do it, benefits, why it matters, tooling, reporting and best practices
Guide to API Automation Testing
Guide to API Automation Testing
What is api automation testing, how to do it, best practices and how to report and analyze test results