Traceability Matrix
One of the usual tasks for a software testing engineer is a creation of the test documentation. The
creation of checklists, test cases, and test scenarios is a second chance for testers to perform requirements
analysis as well. But how to be sure that created tests cover the requirements in the best possible way?
This is where traceability matrix comes into play.
📚 According to ISTQB Glossary, traceability matrix is a two-dimensional table, which correlates two
entities (e.g., requirements and test cases). The table allows tracing back and forth the links of one entity
to the other, thus enabling the determination of coverage achieved and the assessment of impact of
proposed changes.
What is a Traceability Matrix?
In other (simpler) words, it is a two-dimensional table which shows the correspondence between
the functional requirements of the product (functional requirements) and the prepared test scenarios
(test cases).
At the intersection of the corresponding row and column, a mark is placed indicating that this
requirement is covered by this test case. Thus, the table gives a visual display of two parameters:
✅ if there are any requirements in the system that are not covered yet (if the requirement does
not have a single intersection with test cases;
✅ if there is any redundant testing in the system - if the requirements have too many intersections
(a necessary condition.
Here is the example:
Sometimes traceability matrices are used not only to evaluate the coverage of the requirements, but
also to determine the relationship between the development tasks, requirements, and test artifacts.
Therefore, the matrix looks like a table, each row of which contains:
📌 number and description of the development task from the task tracker;
📌 the logical block to which the task belongs (optional);
📌 atomic requirement or acceptance criteria;
📌 a priority;
📌 the number and description of the corresponding test artifact.
Types of Traceability Test Matrix
In Software Engineering, traceability matrix can be divided into three major component as mentioned
below:
Forward traceability: This matrix is used to check whether the project progresses in the desired
direction and for the right product. It makes sure that each requirement is applied to the product and
that each requirement is tested thoroughly. It maps requirements to test cases.
Backward or reverse traceability: It is used to ensure whether the current product remains on the right
track. The purpose behind this type of traceability is to verify that we are not expanding the scope of the
project by adding code, design elements, test or other work that is not specified in the requirements. It
maps test cases to requirements.
Bi-directional traceability ( Forward+Backward): This traceability matrix ensures that all requirements
are covered by test cases. It analyzes the impact of a change in requirements affected by the Defect in a
work product and vice versa.
Traceability matrices provide the following benefits:
🟥 They ensure that all the requirements have been captured in the test cases.
🟥 They assure the client that a product has been developed and tested per their requirements.
🟥 They make it easier to identify missing functionalities.