Published 2026-10-17 · Facts checked 2026-10-17 · By ArtUp Labs, the maker of ArtUp Trace
Short answer. If requirements and tests are already Jira work items connected by issue links, plain JQL gives you a basic traceability check: which requirements have a test link and which have none. It cannot tell a test link from any other link of the same type, cannot ask about the state of the linked test, and keeps no history. For those you need an app — a test-management suite, or a lighter one that works on the links you have, such as our ArtUp Trace.
1. The matrix in Jira terms
A requirements traceability matrix (RTM) answers, for every requirement: what verifies it, and is that verification still valid? In Jira that usually means:
- requirement work items — a Story, or a custom type such as Requirement;
- verification work items — a Test, or a Task your QA team uses;
- an issue link between them — for example relates to, or a custom type such as is tested by.
Agree on one link type for "verifies". The queries below get much more reliable when that link type means only that.
2. Traceability with plain JQL
Our test project REQ has 12 requirements (Stories) and 9 test Tasks, each test linked to one Story with relates to; 3 Stories have no link. These are the queries and what they returned on 2026-10-17. Measured
| Question | JQL | Result |
|---|---|---|
| Requirements with a link of that type | project = REQ AND issuetype = Story AND issueLinkType = "relates to" | 9 Stories |
| Requirements with no links at all | project = REQ AND issuetype = Story AND issueLinkType is EMPTY | 3 Stories (REQ-9, REQ-18, REQ-19) |
| Requirements without that link type (attempt) | project = REQ AND issuetype = Story AND issueLinkType != "relates to" | 0 — not the 3 you might expect |
| Tests of one requirement | issue in linkedIssues(REQ-1, "relates to") | REQ-6 |
Two surprises worth knowing. issueLinkType != "relates to" did not return the unlinked Stories on our site, while issueLinkType is EMPTY did — although Atlassian's field reference lists =, !=, in and not in for this field and not IS. And is EMPTY finds only work items with no links of any kind; a Story that has, say, a blocks link but no test is missed. Reference: Atlassian, JQL fields, checked 2026-10-17.
To see the matrix itself, export the requirements with their links (see exporting Jira issues to Excel) and build a pivot table, or put the queries above on a dashboard as filter results gadgets.
Where plain JQL stops
- The type of the linked work item.
issueLinkType = "relates to"counts a Story linked to another Story as covered. - The state of the test. "Requirements whose test is Done" needs a query inside a query, and JQL has none:
linkedIssues()takes one key. (JQL functions) - History. When a requirement's text changes, its old test link still counts. Jira has no notion of a link that went stale — see suspect links in Jira.
- A percentage. You divide two filter counts yourself.
A JQL function app closes the second gap. With our ArtUp Query, for example, project = REQ AND issuetype = Story AND issue not in linkedIssuesOf("project = REQ AND issuetype = Task", "relates to") returned exactly the 3 unlinked Stories on our site, and linkedIssuesOf("project = REQ AND issuetype = Task AND status = Done", "relates to") returned the one requirement whose test is Done. See JQL with a query as the argument.
3. Coverage on your existing links with ArtUp Trace
ArtUp Trace is our app for Jira Cloud. It does not add issue types, custom fields or workflow changes; it reads the links you already have.
- Open a project → ArtUp Trace in the project navigation → Settings (project or Jira administrators).
- Choose the requirement types (for example Story) and the verification types (for example Test or Task). Optionally limit which link types count; empty means any link type.
- Save. The first sync runs in the background, and the Coverage tab fills in: the coverage percentage, the requirements without verification, search and sort, and Export CSV.
A requirement counts as covered only when it is linked to a work item of a verification type through a counted link type — which closes the first gap above. The Suspect links tab flags links whose requirement changed after the link was confirmed, and Baselines compares two snapshots of the requirements and their links. A panel on each requirement shows its status. The app only reads Jira and never changes your issues.
What it is not: a test-management tool. There are no test runs or executions; if you need those, a test-management app is the right category. Details are in the ArtUp Trace documentation.
Requirements coverage without a new data model
ArtUp Trace shows coverage, suspect links and baselines on the issue links you already have, with CSV export for audits. It only reads Jira.
ArtUp Trace is on the Atlassian Marketplace. Sites with up to 10 users use it free.