It sounds complicated. Why do teams do it? It sounds like a lot of work. Is it really worth the effort? Good questions. The short answer: Yes. And, here’s why it’s so important: Change happens.
Traceability Helps You Stay Connected, Manage Change & Improve Quality. Yes!
If managed poorly, change will wreak havoc on even the most talented and experienced development teams. If managed skilfully, using tools like traceability, teams are better equipped to assess the impact of changes, track the full history, keep everyone in sync and (deep breath) consistently improve the quality of the products being built– every project, every release. Sign me up
Traceability ensures completeness, that all lower level requirements come from higher level requirements, and that all higher-level requirements are allocated to lower level requirements. Traceability is also used to manage change and provides the basis for test planning.
Requirements tracing is the process of documenting the links between the user requirements for the system you’re building and the work products developed to the implement and verify those requirements
Requirements tracing helps the project team to understand which parts of the design and code implement the user’s requirements, and which tests are necessary to Verify that the user’s requirements have been implemented correctly.
The Five Tips for Mastering Traceability
1. Create relationships to connect everyone and everything together with Trace Relationships
2. Ensure you have proper coverage using a Traceability Matrix
3. Assess the impact of a change before it occurs with Impact Analysis
4. Document changes for complete visibility and a detailed audit trail with Version History
5. Keep communication flowing and the team in sync with smarter, real-time Email Notifications
Types of Traceability Matrix
Forward Traceability Matrix
1. Tracing the requirements sources to their resulting product requirement(s) to ensure the completeness of the product requirement specification.
2. Tracing each unique product requirement forward into the design that implements that requirement, the code that implements that design and the tests that validate that requirement and so on.
3. The objective is to ensure that each requirement is implemented in the product and that each requirement is thoroughly tested.
Forward Traceability Matrix – Benefits
1. Assess the changes in the business environment by tracing from the requirement to the product
2. Forward traceability ensures proper direction of the evolving product and indicates the completeness of the subsequent implementation
Backward Traceability Matrix
1. Tracing each unique work product (e.g., design element, object/class, code unit, test) back to its associated requirement.
2. Tracing each requirement back to its source(s).
Backward Traceability Matrix – Benefits
1. Assess current status of the requirements and the project
i. Identify missing requirements
ii. Identify gold plating
2. Assess the root cause of the defect by tracing the defect from the Product to the requirement
Bi-Directional Traceability Matrix
The Combination of both forward & backward traceability is called as Bidirectional Traceability.
Bi-Directional Traceability Matrix – Benefits
1. Analyze the impact of a change
i. All work products affected by a changed requirement
ii. All requirements affected by a change or defect in a work product
2. Assess current status of the requirements and the project
iii. Identify missing requirements
iv. Identify gold plating
Why Traceability Matrix is important?
How can we ensure, for each life cycle phase, which I had correctly accounted for all customer needs?
How can I ensure that the final software product meets the customer needs? For example, I have a function that checks for invalid password I put in the password field of the application throws an error message "Invalid Password". We can only ensure that this requirement is included in the test case for the traceability matrix.