In software development, a traceability matrix (TM)[1] is a document, usually in the form of a table, used to assist in determining the completeness of a relationship by correlating any two baselined documents using a many-to-many relationship comparison. It is often used with high-level requirements (these often consist of marketing requirements) and detailed requirements of the product to the matching parts of high-level design, detailed design, test plan, and test cases.
A requirements traceability matrix may be used to check if the current project requirements are being met, and to help in the creation of a request for proposal,[2] software requirements specification,[3] various deliverable documents, and project plan tasks.[4]
Common usage is to take the identifier for each of the items of one document and place them in the left column. The identifiers for the other document are placed across the top row. When an item in the left column is related to an item across the top, a mark is placed in the intersecting cell. The number of relationships are added up for each row and each column. This value indicates the mapping of the two items. Zero values indicate that no relationship exists. It must be determined if a relationship must be made. Large values imply that the relationship is too complex and should be simplified.
To ease the creation of traceability matrices, it is advisable to add the relationships to the source documents for both backward and forward traceability.[5] That way, when an item is changed in one baselined document, it is easy to see what needs to be changed in the other.
Requirement identifiers | Reqs tested | REQ1 UC 1.1 | REQ1 UC 1.2 | REQ1 UC 1.3 | REQ1 UC 2.1 | REQ1 UC 2.2 | REQ1 UC 2.3.1 | REQ1 UC 2.3.2 | REQ1 UC 2.3.3 | REQ1 UC 2.4 | REQ1 UC 3.1 | REQ1 UC 3.2 | REQ1 TECH 1.1 | REQ1 TECH 1.2 | REQ1 TECH 1.3 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Test cases | 321 | 3 | 2 | 3 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 3 | 1 | 1 | 1 | |
Tested implicitly | 77 | |||||||||||||||
1.1.1 | 1 | x | ||||||||||||||
1.1.2 | 2 | x | x | |||||||||||||
1.1.3 | 2 | x | x | |||||||||||||
1.1.4 | 1 | x | ||||||||||||||
1.1.5 | 2 | x | x | |||||||||||||
1.1.6 | 1 | x | ||||||||||||||
1.1.7 | 1 | x | ||||||||||||||
1.2.1 | 2 | x | x | |||||||||||||
1.2.2 | 2 | x | x | |||||||||||||
1.2.3 | 2 | x | x | |||||||||||||
1.3.1 | 1 | x | ||||||||||||||
1.3.2 | 1 | x | ||||||||||||||
1.3.3 | 1 | x | ||||||||||||||
1.3.4 | 1 | x | ||||||||||||||
1.3.5 | 1 | x | ||||||||||||||
etc. ... | ||||||||||||||||
5.6.2 | 1 | x |