How to run regression test cycles in Jira every release

You wrote your regression tests once. Now you need to run them again for every release and still know what passed last time. The usual problem is that a Test in Jira has one status, so the new run overwrites the old one, or an old "passed" shows up as if it were today's result. Here is a no-app setup that keeps each release separate, its limits, and when a test management app is the better fit.

This guide assumes you already keep test cases as their own work type with a regression label. If not, start with managing test cases in Jira without a plugin.

The idea: separate the test from the run

Because every round gets new Test Run sub-tasks, results from release 4.1 stay on the 4.1 cycle and release 4.2 starts from Not run.

Step 1: add the work types and a run workflow

  1. Ask a Jira admin to add a Test Cycle work type (a standard type) and a Test Run sub-task type to your QA project in Settings > Work items > Work types.
  2. Give Test Run a small workflow: Not run, Passed, Failed, Blocked and Skipped.
  3. Optional fields on Test Run: Environment (select) and Build (short text), so a failure can be traced to where it ran.

Step 2: create the runs with Automation

Creating 80 sub-tasks by hand each release is where most teams give up. One Automation rule does it from the cycle work item:

  1. Trigger: Manual trigger, so a tester starts it from the Test Cycle when the round begins. Add a condition that the work type is Test Cycle.
  2. Branch: Related work items with JQL, for example project = QA AND issuetype = Test AND labels = regression ORDER BY key. Inside the branch, {{issue}} is each Test and {{triggerIssue}} is the cycle.
  3. Inside the branch, add Create work item: work type Test Run, parent set to the trigger work item (the cycle), summary {{issue.key}} {{issue.summary}}, description {{issue.description}}, and Fix versions copied from the trigger work item.
  4. Optional: in the same action, link the new run to the Test with a link type such as "tests", so each Test shows its runs across releases.

Run it on a cycle with a few tests first and check the audit log. Keep Automation's service limits in mind: a rule can fetch at most 5,000 associated items per run, the Lookup work items action only uses the first 100 results, and every run counts toward your plan's monthly Automation usage. For a large suite, split the JQL by component and use one rule per area.

Step 3: run the cycle

Step 4: report on the release

Where this setup breaks down

For a few dozen manual checks and one or two releases a month, this setup can work well. Larger suites, several releases in flight or CI pipelines usually make the upkeep cost more than an app.

When a test management app is the better fit

A test management app stores cycles and runs outside your work item list and keeps each round separate by design. Proofline builds a cycle from a folder or a selection of test cases, with an optional version, and every test in a new cycle starts as not run, so last release's pass never counts for this one. Testers run it step by step, mark pass, fail, blocked or skipped, add comments and defect keys, and jump to the next test. Reusable steps live in one test case and are called from others instead of copied. The issue panel shows each story's linked tests and latest results, and the coverage report shows what is passing, failing, not run or untested for any JQL, such as a fix version. Automated suites can post results straight into a named cycle from CI (JUnit, Playwright or Cypress). Proofline runs entirely on Atlassian Forge, is free for up to 10 users and is pending Atlassian Marketplace review.

Whatever you choose, try it with your real regression suite and one full round before you commit. Moving from a spreadsheet or another tool? See migrating test cases from CSV or TestRail.

Frequently asked questions

How do I rerun the same test cases for a new release in Jira?

Keep test cases as a library that never stores a result, and create a new set of runs for each release. Without an app, that means a Test Cycle work item with one Test Run sub-task per test, created by an Automation rule. Test management apps do this with test cycles.

Why does my new release show old test results?

Because the result is stored on the test case itself, or the tool reuses the latest result. Store results on a run that belongs to one cycle or release, so a new round starts from Not run.

Can Jira Automation create a sub-task for every regression test?

Yes. Use a manual trigger on the cycle, a Related work items branch with JQL for your regression tests, and a Create work item action that sets the cycle as parent. Mind the Automation service limits and your plan's monthly usage.

How do I report regression results per release in Jira?

Set Fix versions on the cycle and its runs, then use JQL such as issuetype = "Test Run" AND fixVersion = "4.2" in a pie chart or two dimensional statistics gadget on a dashboard.

Should automated regression tests be tracked in Jira too?

Yes, if you want one release picture. Without an app you need scripts against the Jira REST API. Test management apps such as Proofline import JUnit, Playwright or Cypress results into a cycle from CI.

Related guides