Skip to content
QA Workflow Assistant

Blog

Xray Test Sets: How to Organize Reusable Test Suites in Jira

Learn how Xray Test Sets work, when to use them over folders or labels, and how to organize smoke, feature, and risk-based suites that stay maintainable.

QA Workflow Assistant13 min read
  • xray
  • test-sets
  • jira
  • test-management

Xray Test Sets are one of the most useful—and most misused—containers in Jira-based test management. Teams adopt them to group reusable tests, then discover six months later that every set is stale, overlapping, or secretly acting as a dumping ground for every case anyone ever wrote.

This guide explains what Test Sets actually are, how they differ from folders and labels, when they earn their keep, and how to build suites you can still trust after the next three releases. It sits inside a broader Jira test management approach; for authoring and execution depth, pair it with the Xray tutorial, Xray test execution, and Xray best practices.

What Xray Test Sets are

A Test Set in Xray is a Jira issue type that holds an ordered collection of Test issues. It is not an execution run. It is not a folder in a file tree. It is a reusable definition of which tests belong together for a purpose you can name out loud: smoke, checkout regression, payments high-risk, or onboarding happy path.

When you open a Test Set, you typically see:

  • A list of linked Test issues (manual, Cucumber, or Generic, depending on your project)
  • Ordering that matters when you later create a Test Execution from the set
  • Metadata such as components, labels, fix versions, and custom fields your project requires
  • Traceability into Test Plans and Test Executions that reference the set

The mental model that works: a Test Set is a playlist, not a concert. The playlist defines the songs. The concert is the Test Execution—someone actually running those tests against a build in an environment.

Without sets, teams rebuild the same selection inside every execution or rely on JQL filters that drift when fields change. Sets give you a first-class, reviewable artifact: open the set and see what “release candidate readiness” actually means.

Test Sets vs folders vs labels

Xray and Jira offer several grouping mechanisms. Using the wrong one creates cleanup debt.

MechanismWhat it isBest forWeakness
Test SetOrdered collection of Tests as a Jira issueNamed suites you reuse across plans and executionsRequires deliberate ownership and pruning
Folder (Xray Test Repository)Hierarchical browsing structureNavigating large catalogs by product areaEasy to treat as the suite of record when it is not
LabelsFree-form tags on issuesCross-cutting filters (smoke, api, flaky)No ordering, weak governance, easy sprawl
ComponentsProject-scoped classificationAligning tests with Jira components / teamsCoarse; not a substitute for suite design
JQL filtersDynamic query resultsAd-hoc reporting and dashboardsMembership changes silently when fields change

Decision rule

Use a Test Set when the membership itself is a managed deliverable—something you version, review, and link to plans. Use folders for discovery (“where do checkout tests live?”). Use labels for secondary facets (“this test is also p0 and mobile”). Use JQL for reports, not as the only definition of your smoke suite.

If your “suite” only exists as labels = smoke AND component = Payments, you do not have a smoke suite—you have a query that will quietly include the next poorly labeled case.

When to use Test Sets (and when not to)

Good reasons to create a set

  • Smoke / build acceptance: a short, stable list that gates deeper testing (smoke vs sanity clarifies the intent)
  • Feature packs: all tests for checkout, search, or password reset that you want to schedule as a unit
  • Risk tiers: high-risk financial paths that must run before every release
  • Regression slices: curated subsets of your broader regression test cases, not “everything ever written”
  • Onboarding packs: a known-good path new testers can execute without inventing scope

Weak reasons to create a set

  • Mirroring every Jira epic one-for-one (you will drown in empty and half-empty sets)
  • Creating a set per sprint (sets are durable; executions are temporal)
  • Dumping all Tests in a project into one mega-set “for convenience”
  • Replacing Test Plans (plans schedule and track progress; sets define reusable membership)

For story-level work, prefer linking Tests to the story or requirement and designing cases from acceptance criteria—see how to write QA test cases and a solid QA test case template. Promote cases into sets only when reuse is real.

Creating Xray Test Sets: a practical walkthrough

Exact UI labels vary by Xray Cloud vs Data Center and by your project screens, but the workflow is consistent.

Step 1: Create the Test Set issue

  1. Create a new issue with type Test Set in the target project.
  2. Name it by purpose, not by date. Prefer Smoke — Customer Web over Sprint 42 tests.
  3. Fill description with owner, intent, and maintenance rules (for example: “Owner: Payments QA. Must stay under 25 cases. Changes require peer review.”).
  4. Set components, versions, and labels your reporting depends on.

Step 2: Add Tests

Add existing Test issues and prune immediately after any bulk add. Every linked Test should have a clear title, current steps, expected results, and priority/type fields. Finish story authoring first—see how to create test cases in Jira—then promote stable cases into the set.

Step 3: Order the Tests

Order is not cosmetic. Smoke suites should front-load the cheapest failures: app boots, auth works, then core journey. Regression slices often group by user flow so context switches stay low during execution.

Step 4: Peer review the set like a PR

Treat set membership as code. Review:

  • Does every test still match the stated purpose?
  • Is anything missing that production incidents taught you?
  • Is anything included that belongs in deep regression only?
  • Can a stranger understand the set from the description alone?

Attach the set to a Test Plan for a release, then create Test Executions from the set (or from the plan) when a build is ready. Details of run-time behavior belong in Xray test execution and the broader Jira test execution guide.

Organizing sets by feature, risk, and smoke

A healthy catalog usually mixes a few orthogonal set types. Avoid inventing ten taxonomies.

Feature-oriented sets

Example:

  • Feature — Login & Session
  • Feature — Checkout
  • Feature — Password Reset

These map cleanly to product ownership and to story clusters. Keep them medium-sized. If a feature set exceeds ~40–60 manual cases, split by subflow (Checkout — Payments, Checkout — Shipping) rather than letting it become unreadably long.

Risk-oriented sets

Risk sets cut across features:

  • Risk — Money movement
  • Risk — Auth & account takeover
  • Risk — Data export / privacy

Use these when release decisions care about blast radius more than feature boundaries. A payment hotfix may pull Risk — Money movement plus a short sanity set even if the full checkout feature set is deferred.

Smoke sets

Smoke sets should be short, boring, and sacred. Typical shape:

SlotExample coverageNotes
1Health / home loadsCatches bad deploys early
2Sign-in happy pathBlocks almost everything else if broken
3Primary create/read actionOne representative write path
4Critical third-party dependencyPayments, SSO, or search as applicable
5–15Thin vertical samplesNot deep validation

If your smoke set takes longer than a coffee break for a trained tester (or more than a few minutes for automation), it has stopped being smoke. Re-read smoke testing vs sanity testing before “just adding one more case.”

Example: building a checkout smoke set

With dozens of checkout tests, smoke still picks only the thin path: add to cart → start checkout → sandbox payment → confirmation. Coupons, address-book quirks, and multi-currency tax stay in feature or risk sets. That selection discipline is why sets exist.

Nesting limits and the reality of hierarchy

Teams often want sets inside sets. Xray’s reliable contract is Tests inside Sets, with Sets referenced by Plans and Executions. Deep nesting is limited, awkward, or unavailable depending on version—design as if one level of composition is all you get.

Practical implications:

  • Do not need three nested layers to answer “what is smoke?”
  • Prefer composition via Test Plans (include multiple sets) over nesting
  • Use Test Repository folders for browsing; keep sets flat and purposeful
  • If smoke = auth + checkout + search smokes, use one aggregated smoke set or a Plan that includes those sets—pick one pattern and document it

Avoid shadow hierarchy (Set — All that “conceptually” contains other sets you never nested). Prefer explicit membership you can open and audit.

Linking Test Sets to Test Plans and Test Executions

Test Plans

A Test Plan answers: for this release (or milestone), what testing scope are we committing to, and how are we progressing?

Typical pattern:

  1. Create or open the release Test Plan
  2. Add one or more Test Sets (smoke, critical regression, feature packs for in-scope epics)
  3. Track progress from the plan as executions complete

Plans should change with the release. Sets should change when the product’s reusable suite definition changes.

Test Executions

A Test Execution answers: against this build/environment, who ran which tests, and what were the results?

Create executions from the set (or plan) so membership stays consistent. Assign testers, set environment and build fields, and execute step by step. Defects link back from failed tests. For the full run loop, use Xray test execution.

Traceability that actually helps

Aim for Requirement / Story → Tests → Test Set → Test Plan → Test Execution → Defects. When that chain is intact, you can answer whether the money-movement suite ran on a given build without archaeology—the same spirit as a living requirements traceability practice, expressed in Xray objects.

Maintaining Test Sets without ceremony theater

Maintenance is where most set strategies die. Every set needs a named owner in the description—unowned sets rot.

Update a set when a production incident reveals a gap, a happy path changes, a test is retired, or automation absorbs a manual case. Do not wait for a quarterly cleanup day; those days get canceled.

Publish soft size caps:

Set typeSoft max (manual)Why
Smoke15–25Must stay runnable every build
Sanity / hotfix5–20Scoped to change + neighbors
Feature40–60 before splitCognitive load during planning
Risk20–40High value, not encyclopedic

Automation changes the math; automated junk is still junk. Record why membership changed in the description or linked notes; for regulated contexts, snapshot membership at release freeze.

Common mistakes with Xray Test Sets

  1. Confusing sets with executions. Updating a set mid-run does not rewrite history for in-progress executions the way people assume. Plan membership changes deliberately.
  2. One giant “Regression” set. If it contains everything, it selects nothing. Slice it.
  3. Sprint-named sets. Sprint 19 suite is obsolete by Sprint 20. Name by purpose.
  4. No smoke budget. Adding “just one more” until smoke takes half a day.
  5. Labels as the real suite. Sets exist on paper; JQL is what people trust. Pick one source of truth.
  6. Orphan tests never promoted. Critical cases live only on stories and never enter reusable sets, so release testing reinvents scope every time.
  7. Sets without descriptions. Future you will not remember why TESTSET-88 excludes refunds.
  8. Ignoring order. Random order wastes setup/teardown and buries early blockers.
  9. Creating sets before cases are stable. You will link drafts, forget them, and ship fiction.
  10. Skipping peer review. Suite membership is a quality decision, not clerical linking.

Best practices checklist

  • Name sets by durable purpose
  • Keep smoke short and sacred
  • Prefer Plans to compose multiple sets rather than deep nesting
  • Review membership when incidents happen, not only at release
  • Align case quality with how to write QA test cases before linking
  • Use a consistent QA test case template so sets do not mix vague and precise cases
  • Document owner, intent, and size budget in the set description
  • Link sets into the release Test Plan early enough to negotiate scope
  • Retire obsolete Tests; do not leave dead weight in smoke
  • Cross-check against Xray best practices for project-wide conventions

Conclusion

Xray Test Sets pay off when they encode a reusable, reviewable answer to “which tests belong together?” They fail when they mirror folders, sprint names, or every test in the project. Keep sets purpose-driven, size-bounded, and owned—then let Test Plans and Test Executions handle scheduling and results. For the surrounding system design, start from the Jira test management guide and deepen execution habits with Xray test execution.

FAQ

What is an Xray Test Set?

An Xray Test Set is a Jira issue that stores an ordered list of Test issues so you can reuse that selection across Test Plans and Test Executions without rebuilding filters every time.

Are Test Sets the same as folders in the Xray repository?

No. Folders help you browse and organize the catalog. Test Sets define a managed suite membership you can link, review, and execute as a unit.

Can Test Sets contain other Test Sets?

Do not design around deep nesting. Depend on Tests inside Sets, and compose multiple Sets via Test Plans (or an explicit aggregated set) rather than fragile hierarchies.

Should every Jira story get its own Test Set?

Usually no. Link Tests to the story for story validation. Promote stable, reusable cases into feature, risk, or smoke sets when the same group will be scheduled repeatedly.

How many tests should a smoke Test Set include?

Prefer a small build-acceptance list—often under 25 manual cases—focused on “is this build worth testing?” rather than deep verification.

How do Test Sets relate to Test Executions?

The set defines what to run. The execution records that you ran those tests against a specific build and environment, with assignees, statuses, and defects.

What is the biggest maintenance mistake?

Leaving sets unowned. Without a named owner and change triggers, membership drifts until nobody trusts the suite.

Improve your QA workflow faster

QA Workflow Assistant helps QA engineers generate structured test cases from Jira stories, improve coverage, and organize testing workflows.

→ Try QA Workflow Assistant

See Pricing and Docs for plans and Jira/Xray integration details.

Stay ahead in QA

Get practical QA guides, Jira & Xray tutorials, testing checklists, AI testing insights, and occasional product updates.

No spam. Unsubscribe anytime.