A user requirements specification (URS) that no test case can point back to is a promise nobody checked. The traceability matrix exists to answer one question for every requirement: where is the proof it works, and where is the proof it was tested? Skip that link and go-live decisions rest on assumption, not evidence.
Shortcut: Write the test case ID into the requirement row before you write the test script. The link comes first, the detail follows.
At a glance
| Area | Question | Evidence |
|---|---|---|
| Requirement | Is it testable, unambiguous, and owned? | URS with unique IDs and owner sign-off |
| Test case | Does it map to exactly one requirement or a defined group? | Traceability matrix row |
| Coverage | Are all requirements covered, none orphaned? | Coverage report, gap list |
| Change | What happens when a requirement changes mid-project? | Impact assessment, matrix update |
Write requirements that can actually be tested
A requirement written as "the system shall be user-friendly" cannot be tested; nobody can prove or disprove it. Every requirement needs a single, measurable, verifiable statement with one clear owner. Split compound requirements into atomic ones so each line of the matrix maps cleanly to one test outcome. Ambiguous language — "appropriate", "adequate", "as needed" — is the single most common source of traceability gaps found at inspection.
- State the expected behavior, not the intent behind it.
- Number every requirement so it survives document revisions.
- Assign an owner who can answer questions about scope during testing.
Build the matrix before scripting begins
The traceability matrix links each requirement ID to one or more test case IDs, and each test case back to the requirement it proves. Build this matrix before a single test script is written, not after, so gaps surface while there is still time to close them. A matrix built retroactively tends to force-fit tests to requirements rather than the other way round, which inspectors notice quickly.
Cover the requirement, not just the feature
Functional testing alone misses negative paths, boundary conditions, and error handling that a requirement may imply without stating explicitly. Coverage means testing what the system should do and what it should refuse to do. A login requirement implies both a successful authentication path and a rejected one; both need a test case referencing the same requirement ID.
Manage requirement changes without breaking the chain
Requirements change during a project. Scope shifts, regulations update, or a design decision forces a rewrite. Every requirement change needs an impact assessment against the existing matrix: which test cases are now invalid, which need rewriting, and which documents must be re-approved. Silently editing a requirement without touching its linked tests leaves the matrix lying about coverage.
Report gaps honestly before go-live
A coverage report that shows 100% without listing the requirements that were descoped or deferred is not trustworthy. List every requirement, its test status, and any exception with a documented rationale. A small number of honestly reported gaps with risk justification passes review better than a suspiciously perfect report with no evidence trail behind it.
Why this matters at review time
Regulators reviewing a validation package generally start with the requirements traceability matrix before opening a single test script, because it tells them in one document whether the validation exercise actually proves what it claims to prove. A matrix with unexplained gaps, orphaned test cases pointing to no requirement, or requirements with no linked test is one of the fastest ways to trigger a deeper document review. Investing in the matrix early is not bureaucratic overhead; it is the single artifact most likely to be checked first.
Who owns what
| Role | Responsibility |
|---|---|
| Business or process owner | Writes and approves the original requirement, confirms it reflects actual need |
| Validation/QA lead | Owns the traceability matrix, reviews coverage before test execution |
| Tester | Executes scripts, records pass/fail against the linked requirement ID |
| Independent reviewer | Checks matrix accuracy and coverage completeness before sign-off |
Common mistakes to avoid
- Testing the feature instead of the requirement. Scripts written against a screen or workflow, rather than the requirement wording, drift from what was actually promised in the URS and leave the traceability link technically present but practically meaningless.
- One matrix owner with no review. A traceability matrix maintained by a single person with no independent check accumulates small errors that compound; a second reviewer catches mismatches before they reach the audit stage.
- Freezing the matrix too early. Locking the matrix before design review is complete forces later requirement changes into a messy patchwork of edits instead of a clean, traceable revision.
- Treating coverage as binary. A requirement marked 'tested' with no reference to which specific test case, executed on which date, with which result, is not coverage, it is a checkbox.
Putting this into practice
Start the matrix at the same meeting where requirements are finalized, not after design begins. Assign a named owner and a named reviewer before the first row is written. Review the matrix at every major project milestone, not just before go-live, so gaps surface while there is still time and budget to close them without slipping the schedule.
Quick checklist
- Every requirement has a unique ID that survives document revisions
- Every requirement is stated as a single, testable, measurable behavior
- Every test case ID maps back to at least one requirement ID
- No test case exists without a linked requirement, and no requirement lacks a linked test
- Coverage report lists status per requirement, not just an aggregate percentage
- Any descoped or deferred requirement has a documented, risk-based rationale
- Matrix owner and independent reviewer are both named individuals
- Matrix is reviewed at each major project milestone, not only before go-live
Where this shows up in practice
This shows up most often at the point of a supplier audit or a client software validation review, where a reviewer picks three or four requirements at random and asks to see the full chain from the original requirement statement through to the executed test result. A team that can pull up the matrix and answer in minutes demonstrates a mature process. A team that has to search through separate spreadsheets, test folders, and emails to reconstruct the same answer is effectively demonstrating that the traceability, while claimed, was never actually maintained as a living artifact throughout the project.
A worked example
Consider a mid-project scenario: a validation lead discovers during a milestone review that six requirements in the URS have no linked test case, and two test cases reference a requirement ID that was deleted in a document revision three months earlier. The fix is not simply to write the missing tests. It starts with confirming whether the six orphaned requirements are still current and in scope, since a requirement change that never propagated to the matrix is a documentation control failure independent of the testing gap. Once confirmed current, the missing test cases get written, executed, and the matrix updated with a dated revision note explaining why the gap existed and when it closed. The two test cases referencing deleted requirement IDs get investigated separately: either the requirement was genuinely removed and the test case should be retired with a documented rationale, or the deletion itself was an undocumented error in the requirements document that needs its own correction. Treating both findings as the same problem, or fixing only the visible gap without investigating why the matrix diverged from the requirements document in the first place, leaves the underlying document control weakness in place for the next revision cycle.
For related control detail, see validation protocol acceptance criteria and the evidence chain behind traceability elsewhere in this archive.
Frequently asked questions
What is a requirements traceability matrix in validation?
A table that links each user requirement to the test case(s) that prove it works and, often, back to the design specification that implements it. It shows coverage and gaps at a glance.
Can one test case cover multiple requirements?
Yes, when requirements are closely related, but the matrix must record every requirement ID the test case actually proves, not just the primary one.
What happens to the matrix after go-live?
It becomes part of the validation package for audit and inspection. It should be updated whenever a change control modifies a requirement or its associated tests.
How do you handle untestable requirements?
Rewrite them into testable, measurable statements before testing starts. An untestable requirement should never appear in a final URS approved for validation.
Sources
Talk to VLMS about your validation programme
See how VLMS supports requirements and testing with a validated, audit-ready platform.
Contact VLMS