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.