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.
- 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.
| Mechanism | What it is | Best for | Weakness |
|---|---|---|---|
| Test Set | Ordered collection of Tests as a Jira issue | Named suites you reuse across plans and executions | Requires deliberate ownership and pruning |
| Folder (Xray Test Repository) | Hierarchical browsing structure | Navigating large catalogs by product area | Easy to treat as the suite of record when it is not |
| Labels | Free-form tags on issues | Cross-cutting filters (smoke, api, flaky) | No ordering, weak governance, easy sprawl |
| Components | Project-scoped classification | Aligning tests with Jira components / teams | Coarse; not a substitute for suite design |
| JQL filters | Dynamic query results | Ad-hoc reporting and dashboards | Membership 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
- Create a new issue with type Test Set in the target project.
- Name it by purpose, not by date. Prefer
Smoke — Customer WeboverSprint 42 tests. - Fill description with owner, intent, and maintenance rules (for example: “Owner: Payments QA. Must stay under 25 cases. Changes require peer review.”).
- 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?
Step 5: Link to plans and create executions from the set
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 & SessionFeature — CheckoutFeature — 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 movementRisk — Auth & account takeoverRisk — 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:
| Slot | Example coverage | Notes |
|---|---|---|
| 1 | Health / home loads | Catches bad deploys early |
| 2 | Sign-in happy path | Blocks almost everything else if broken |
| 3 | Primary create/read action | One representative write path |
| 4 | Critical third-party dependency | Payments, SSO, or search as applicable |
| 5–15 | Thin vertical samples | Not 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:
- Create or open the release Test Plan
- Add one or more Test Sets (smoke, critical regression, feature packs for in-scope epics)
- 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 type | Soft max (manual) | Why |
|---|---|---|
| Smoke | 15–25 | Must stay runnable every build |
| Sanity / hotfix | 5–20 | Scoped to change + neighbors |
| Feature | 40–60 before split | Cognitive load during planning |
| Risk | 20–40 | High 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
- 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.
- One giant “Regression” set. If it contains everything, it selects nothing. Slice it.
- Sprint-named sets.
Sprint 19 suiteis obsolete by Sprint 20. Name by purpose. - No smoke budget. Adding “just one more” until smoke takes half a day.
- Labels as the real suite. Sets exist on paper; JQL is what people trust. Pick one source of truth.
- Orphan tests never promoted. Critical cases live only on stories and never enter reusable sets, so release testing reinvents scope every time.
- Sets without descriptions. Future you will not remember why
TESTSET-88excludes refunds. - Ignoring order. Random order wastes setup/teardown and buries early blockers.
- Creating sets before cases are stable. You will link drafts, forget them, and ship fiction.
- 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.
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.
Related articles
Jira Test Case Management: A Practical Guide for QA Teams
How QA teams manage test case lifecycle in Jira—structure, story traceability, review, and a practical workflow from draft to Xray delivery.
August 18, 2026 · 12 min read
Xray Test Plan vs Test Execution: What's the Difference?
Xray Test vs Test Set vs Test Plan vs Test Execution explained—what each object is for, how they relate in UAT and regression, and common mix-ups to avoid.
August 18, 2026 · 10 min read
Jira Test Management: Complete Guide for QA Teams Using Jira and Xray
Learn jira test management from issue types to execution and reporting—when native Jira is enough, when Xray helps, and how to link stories to reusable tests.
August 16, 2026 · 14 min read