Test Management in Jira: Xray, Zephyr and Lighter Options

Jira has no test runs of its own, so test management in Jira means an app or a convention. How Xray and Zephyr each model tests, according to their own documentation, and two lighter ways to run tests next to Jira.

7 min read

Jira tracks work, not test runs, so test management in Jira means adding an app or adopting a convention. The two best-known apps take different shapes. Xray for Jira makes tests ordinary Jira work items (Test, Precondition, Test Set, Test Plan, Test Execution) and records each result as a test run. Zephyr keeps test cases in its own library of folders inside Jira and links them to your stories and bugs. The lighter options are a Test work type you add yourself, or a separate test tool that links into Jira. Which fits depends on how many tests you rerun, and how much you need to prove afterward.

What a Jira test management tool adds

Out of the box, a Jira work item can say “test the checkout” and be moved to Done once. Real testing needs more than that, and these five things are what the apps add:

  • Reusable test cases: steps, data and expected results you can run again next release.
  • Executions: one run of a set of tests against one build or environment, with a result per test.
  • History: how a test did last time, and the time before.
  • Coverage: which stories and bugs have tests, and whether those tests passed.
  • Automation results: pass and fail imported from your CI, next to the manual results.

If you only need the first item, you may not need an app at all. If you need the last three, you almost certainly do.

Xray for Jira: tests as work items

Xray describes itself as “a complete Test Management tool for Jira”. The defining choice, set out in About Xray (opens in a new tab), is that its main entities are Jira work types: Test, Precondition, Test Set, Test Plan, Test Execution and Sub-Test Execution. A test has a key like any other work item, sits in your spaces, follows a workflow, and shows up in JQL, boards and dashboards.

Results live one level down. Xray’s page on the Test Execution (opens in a new tab) defines it as a work type that “aggregates a user-determined collection of Tests”, and the pairing of one execution with one test is a test run, with statuses such as To Do, Executing, Passed and Failed. A Test Plan groups tests for a release and the executions that ran them, and from a plan you can create a new execution for only the tests that are still failing.

  • Test types: manual step-by-step tests, Cucumber and other BDD scenarios, and generic automated tests.
  • Automation: results from JUnit, TestNG, NUnit, Robot Framework and other runners come in through Xray’s REST API, so a CI job can post results to an execution.
  • Editions: Xray Cloud for Jira Cloud, and a Server and Data Center edition with its own documentation.

The trade-off follows from the design. Because tests are work items, your Jira space fills with them, and filters, boards and permissions have to allow for that. Teams usually keep tests in their own space or exclude the test work types from the development board.

Zephyr: a test library inside Jira

First, the name. SmartBear says in its Zephyr documentation (opens in a new tab) that it has “consolidated Zephyr Squad and Zephyr Scale into a single product family: Zephyr”, offered in editions it names Essential, Standard and Advanced. Older guides that compare Squad with Scale describe products that are now one family, so check which documentation your site actually uses.

Zephyr organizes testing in three layers. Test cases “define the steps, data, and expected results”; test cycles group tests for execution “within a release or sprint”; test plans combine cycles across a larger release. The key difference from Xray is where a test case lives. SmartBear’s guide to creating a test case (opens in a new tab) puts it in Zephyr’s own library, filed in folders, with a name (the only required field), a status such as Draft or Approved, and a Test Script tab for the steps. You then link test cases and cycles to any Jira work item for traceability.

  • BDD: Gherkin scenarios are a supported test case format.
  • Automation and CI: SmartBear lists integrations with tools such as Jenkins, Bamboo, Cypress and JUnit.
  • AI: the documentation describes AI features for drafting tests and analyzing coverage.

The trade-off is the mirror image of Xray’s. Your Jira spaces stay free of test work items, but tests are not ordinary work items, so you work with them through Zephyr’s screens and links rather than plain JQL.

Xray vs Zephyr, in five lines

  • Where a test lives: Xray, as a Jira work item; Zephyr, in its own folder library linked to work items.
  • Grouping: Xray, Test Sets and Test Plans; Zephyr, test cycles and test plans.
  • Results: Xray, test runs inside a Test Execution; Zephyr, executions inside a test cycle.
  • Searching: Xray tests answer to JQL like any work item; Zephyr test cases are found in Zephyr’s library and through their links to work items.
  • Pick Xray if you want tests in the same lists, permissions and reports as everything else. Pick Zephyr if you want testing kept out of the development spaces.

Lighter option 1: test cases as work items, no app

A small team that runs twenty manual checks before each release can do it with Jira alone. A Jira admin can add a work type (opens in a new tab) called Test Case and associate it with the space through a work type scheme. Each test case is a work item, written with the same care as any Jira ticket, with the steps in the description and a link to the story it covers. Each release, you clone the set, run it, and record the result.

A test case as a Jira work item
Title: TC-Checkout-07: ZIP+4 accepted at shipping
Type: Test Case    Labels: regression, checkout
Links: tests PAY-142

Preconditions
Signed-in customer, one item in the cart.

Steps
1. Go to checkout, enter a US shipping address.
2. Enter ZIP 94105-1804. Select Continue.
3. Enter ZIP 9410. Select Continue.

Expected
Step 2: shipping options appear, sales tax is shown.
Step 3: "Enter a valid ZIP code", order blocked.

Result for release 4.2 (comment, then close)
Passed in Chrome on macOS and Safari on iPhone. Build 4.2.0-rc1.

What you lose: there are no test runs, so history is a trail of comments and closed clones, and there is no coverage report. When the cloning becomes a chore, that is the signal to try an app. For writing the steps themselves, use our test case template, and file every failure as a bug linked to the test.

Lighter option 2: a test tool beside Jira

Some teams keep test cases in a dedicated test management tool and connect it to Jira rather than installing an app inside it. TestRail is a common example. Its support guide to reference and defect integrations describes two halves: a References field on test cases, runs and plans that links the stories being tested, and a defect integration that reports bugs into your tracker straight from a test result. Testing stays in one tool, the defects land in the other, and each side keeps its own permissions and reports.

How to choose

  • Fewer than about fifty manual checks, run before each release: a Test Case work type and a checklist. Revisit when it hurts.
  • You need coverage reports, history per test and CI results in Jira: Xray or Zephyr. Try both against the same twenty tests.
  • Tests should be searchable and reportable like any other work item: lean toward Xray.
  • Development spaces should stay free of test items: lean toward Zephyr, or a separate tool linked into Jira.
  • Auditors or customers ask what was tested in each release: pick the app whose execution report answers that question on one screen.

If what you need is “was this checked?”

Plenty of small teams do not run test suites at all. They need to know, for each change, whether someone checked it and how. That is a field on the task, not a product. On a fenbs board every task carries a test status (Not tested, Tested, Partly tested, Failed, or Needs owner check for what only a person can confirm, such as a store build or a real payment) and test notes saying what was checked, where and with what result. An AI assistant working the board over MCP fills in the same two fields when it finishes, so “tested” means the same thing whoever did the work.

Be clear that this is not test management. fenbs has no test case library, no test runs, no execution history and no coverage report. Use it beside a QA checklist or a regression testing checklist; if you need runs and coverage, use Xray or Zephyr.

Related

Bugs found in testing: bug tracking in Jira. Reporting test progress to a team: Jira dashboards. A quick pass before a deeper one: smoke testing. The fenbs side by side with Jira: fenbs vs Jira.

Questions people ask.

What is Xray in Jira?

Xray is a test management app for Jira. It adds work types for tests, preconditions, test sets, test plans and test executions, records each result as a test run, and imports automated results from CI through its REST API. Because tests are Jira work items, they can be searched with JQL and shown on boards and dashboards.

What is the difference between Xray and Zephyr?

Mainly where tests live. Xray makes tests Jira work items. Zephyr keeps test cases in its own folder library inside Jira and links them to work items, with test cycles for execution and test plans across a release. Both support manual tests, BDD scenarios and automated results.

Are Zephyr Squad and Zephyr Scale still separate products?

SmartBear says it has consolidated Zephyr Squad and Zephyr Scale into a single product family called Zephyr, sold in editions it names Essential, Standard and Advanced. Older comparisons of Squad and Scale describe the products before that change.

Can you do test management in Jira without an app?

For a small set of manual tests, yes. Add a Test Case work type, write steps and expected results in the description, link each test to the story it covers, and record results in comments. You get no test runs, history or coverage reports, which is when an app becomes worth it.

Start with one thing.

There is nothing to set up first. Write one line and you’ve started.