Skip to content
leera
All posts

Requirements / Test coverage / Product documentation

Requirements traceability matrix: a worked brief-to-test template

Build a requirements traceability matrix with a worked example, reusable columns, coverage calculations, and links from product decisions to test evidence.

FOLLOW THE EVIDENCE — conceptual pixel-art office illustration

At a glance

A requirements traceability matrix connects each requirement to its source, implementation work, verification, and recorded result. Use it to identify missing coverage and assess changes in both directions. A linked test shows planned coverage; only a relevant execution and its evidence show what was actually verified.

A requirements traceability matrix helps answer a practical release question: for each behavior we agreed to deliver, where is the implementation and what evidence verifies it? It also works in reverse. When a test fails or a requirement changes, the links show which work and decisions need another look.

The matrix can be a small table supported by links to issues, test cases, and runs. Its usefulness comes from the accuracy of those connections. A large spreadsheet full of stale references can make a release look documented while leaving the important questions unanswered.

This guide provides a reusable template and an illustrative bulk-archive feature in an imaginary application. The requirements, record labels, and coverage calculations are examples. They are not a claim that Leera offers that particular bulk-archive feature or that these checks have run.

Forward traceability follows a requirement into implementation and verification. Backward traceability asks which requirement justifies a piece of work or a test. Both are useful when a team needs to distinguish necessary behavior from accidental scope.

The NASA Software Engineering Handbook describes bidirectional relationships among requirements, design, code, verification, and non-conformances in its engineering context. A software team can use that linking principle without claiming that a simple matrix satisfies NASA requirements or certifies its product.

Keep three kinds of evidence distinct:

RecordWhat it establishesWhat it does not establish
RequirementAgreed intended behaviorThat the implementation follows it
Test procedureA proposed way to check behaviorThat the check has been executed
Execution resultWhat happened for a recorded build and contextThat every other behavior is correct

A closed implementation issue is useful project information. It cannot replace an execution result. Similarly, a screenshot without a build, procedure, and expected result may be difficult to interpret later.

Start from a brief with a bounded outcome

Our imaginary product lets project leads archive completed items so the active list is easier to review. The brief excludes deleting records and changing another project’s work. It also says that an unsuccessful operation must not be presented as a complete success.

That description still contains decisions. Who counts as a project lead? Can active items be archived? What should happen when one selected item changes state before the request completes? What recovery behavior is promised?

Resolve those questions before filling in test links. A matrix cannot repair an ambiguous requirement merely by assigning it an ID. If a decision remains open, record an owner and make the affected work visibly unready.

For this example, the team agrees on four requirements:

  1. REQ-01: authorization. Only an authorized project lead can submit the archive operation for that project.
  2. REQ-02: scope. The operation affects only selected completed items in the specified project.
  3. REQ-03: outcome. The response identifies which selected items were archived and which were refused; the interface reflects those outcomes.
  4. REQ-04: recovery. An authorized project lead can restore an archived item to the active list without changing its completion state.

These are example policy choices. In a real product, link each requirement to the reviewed brief or decision that establishes it.

Use stable identifiers instead of row numbers, which can change whenever a table is sorted. References such as “Implementation A” and “Case 01” below stand for links to your actual records; they are deliberately not live issue keys.

RequirementSource and acceptance criterionImplementationVerification
REQ-01Brief: only authorized leads can archiveImplementation A: permission checkCase 01: allowed role; Case 02: denied role
REQ-02Brief: selected completed items in this project onlyImplementation B: selection and state checksCase 03: selection; Case 04: invalid or foreign item
REQ-03Decision note: each selected item has an explicit outcomeImplementation C: response and messageCase 05: mixed successful and refused items
REQ-04Brief: restore without changing completion stateImplementation D: restore operationMissing; assign a case owner

Keep results in a linked execution table so a new run does not overwrite the meaning of an earlier one:

RequirementRun and buildObserved resultEvidence or gap
REQ-01Not runNo execution resultCases prepared only
REQ-02Not runNo execution resultCases prepared only
REQ-03Not runNo execution resultCases prepared only
REQ-04Not runNo execution resultNo verification procedure yet

This first version already reveals something useful: recovery has implementation work but no planned check. That gap deserves an owner before the matrix gains more columns or formatting.

Review the substance of each test connection

One requirement often needs several tests. Authorization needs both an allowed and a denied path. Scope needs checks for selected items, unselected items, incompatible state, and another project where relevant. A single successful click cannot establish all of that.

One case may support several requirements if it verifies each explicitly. For example, a mixed-result case could check that only eligible items changed and that the response describes the refused items correctly. Link both requirements only when the expected results cover both questions.

Inspect the test procedure, not just its title. A case named “Verify permissions” may only check that a button is hidden. If the requirement concerns an operation, verify the permission boundary where the operation is accepted or refused as well.

Remove decorative links. If an implementation task is attached to every requirement because it “touches the feature,” reviewers cannot identify the affected scope when something changes. Prefer specific relationships that another person can explain.

Calculate coverage without confusing it with success

In the first table, three of four requirements have a proposed verification case. The illustrative planned coverage is therefore 3 divided by 4, or 75%. None has execution evidence yet.

Adding a recovery case raises planned linkage to 100%. It does not mean the product passed. A case could be blocked, unsuitable, or not executed against the candidate build.

Report the question alongside the metric:

  • Planned coverage: how many in-scope requirements have reviewed verification procedures?
  • Execution coverage: how many received the intended checks for this release context?
  • Results: what passed, failed, was blocked, or was not run?
  • Residual risk: which important behaviors remain uncertain, and who owns the decision?

Be explicit about the denominator when scope changes. Removing an untested requirement from a spreadsheet can improve the percentage while concealing a product decision. Record why it left the release and what happens to its implementation and promised behavior.

Preserve the context of an execution

Attach the application build or commit, environment, relevant configuration, and date to each run. Include dataset or role details when they affect the check. “Passed in staging” is insufficient when staging changes several times during a release review.

Preserve the procedure associated with the result. In Leera QA, a run keeps case snapshots, so later changes in the library do not rewrite what the run captured. If a requirement changes, decide which results still apply and create the necessary new execution.

Keep a failure connected to its defect, then record the follow-up result after the fix. A developer resolving the defect is a handoff for verification, not evidence that the original symptom is gone.

For a completed Leera run, a test manager can create a frozen test report with a verdict and optional review and approval. The report records the submitted results; the team still needs to assess whether the selected checks answer the release question.

Suppose the example team changes REQ-02 to allow archiving active items as well as completed ones. Start from the requirement and inspect the selection logic, Case 03, Case 04, the mixed-result behavior, and any wording that says active items will be refused.

Then inspect the reverse direction. Does the recovery behavior still make sense? Does the documentation distinguish archived state from completion state? Are any tests now enforcing a rule that the product deliberately removed?

Keep the old requirement context with the earlier release evidence. Mark the new requirement version and its affected work rather than editing history until an old passing result appears to verify the new policy.

This is where a small, maintained matrix repays its cost. It turns “we changed one sentence” into a reviewable list of consequences without pretending that a link automatically identifies every consequence.

Fit maintenance into the team’s existing workflow

Assign responsibility for keeping links current when work is created, requirements change, and a release is reviewed. Product owns the intended behavior; engineers and testers help establish implementation and verification connections. One person can coordinate the matrix without becoming the only person able to interpret it.

In Leera, keep the reviewed brief in Documents, record acceptance criteria in Planner issues, and link QA cases to the issues they verify. Use a project document for this template and release notes for the relevant run and report references. This is a practical arrangement of existing records, not a separate automatic matrix feature.

Start with one release slice and ask a teammate to follow a row from the original decision to its latest evidence. If the path is understandable and missing coverage is visible, the matrix is doing useful work. Continue with the QA test management guide for case, plan, and run practices. The NASA reference was checked on October 11, 2026.

Frequently asked questions

What is a requirements traceability matrix?

It is a table or equivalent set of maintained links connecting requirements with their source, implementation, verification, and results. It helps a team find requirements without checks, work without a clear purpose, and the records affected by a changed requirement.

What columns should a traceability matrix include?

Start with a stable requirement ID, source or brief reference, concise acceptance criterion, implementation reference, verification reference, and result with execution context. Add owner, risk, version, or decision fields when they answer a real review question. Keep detailed procedures in their test cases rather than copying them into every row.

Does 100% requirements coverage mean a release is ready?

No. A coverage percentage may only mean that every requirement has a linked test. It does not establish that the tests are sufficient, ran against the release candidate, passed, or cover important risks. Report planned coverage, execution, results, and accepted gaps separately.

Can one test cover more than one requirement?

Yes, if the test contains a meaningful assertion for each linked requirement. Likewise, one requirement may need several tests for roles, boundaries, or failure paths. Avoid adding broad links simply to make a coverage report look complete.

How do we maintain traceability in Leera?

Keep the brief in Documents, acceptance criteria in Planner issues, and verification cases linked to those issues in QA. Plans select coverage and runs retain execution snapshots and results. You can maintain the template in a project document; this guide does not describe a separate automatically generated traceability-matrix feature.

Sources and further reading