Requirements traceability is the process of starting with a requirement and correlating it with artifacts – specs, test cases, defects – throughout the development process.
Traceability is important for a number of reasons. It helps us understand the product in terms of its intended business use, it helps us determine the quality (fitness for use) of that product, Learn from our mistakes – Project post-mortem, we can isolate the requirements that saw the most issues and/or testing effort and evaluate why those areas were such a problem.
Requirements traceability enables project teams to keep requirements foremost as they design, develop, and test software.
If your development project is subject to regulatory or legal requirements, traceability helps you demonstrate compliance. During the development process, it can help identify where a requirement hasn’t been properly incorporated farther downstream.
What about changing requirements? During the course of a lengthy development effort, it’s normal for requirements to change. How can traceability help make sure these changes become a part of the final product?What about Agile? If I go agile, then I fix the problem of spending a year+ with the same requirements; do I still care about traceability?What happens to the schedule – Does that change blow up the schedule? Does the team suffer longer hours, to meet the existing schedule?
Once we change a requirement, downstream artifacts must change to reflect that. If we don’t know what downstream artifacts a requirement refers to, we cannot ensure that changes to that requirement are reflected in the completed product.Traceability is especially important when requirements start changing. If we can’t trace changes to requirements, we can’t be sure that the right product has been built.
It’s readily apparent why we have to trace forward, in order to make sure that requirements and their changes are reflected in downstream artifacts.
It’s also important to be able to trace backward, in order to understand where an artifact came from, and whether or not it is still relevant. Is the product on track, based on new business realities?
Tracing change in requirements is especially difficult because our requirements and related artifacts often reside in different applications. There’s no single place we can go to see an overall picture of requirements, test cases, source code, and defects.
There are three ways to approach traceability. You can do it manually, and it is a lot of work. You can have a programmatic interface between different tools (such as SOAP or other communications mechanism), and pass data back and forth using a custom interface. Or you can have an integrated solution, where most or all of the traceability information is automatically available between requirements, test cases, defects, and so on.
Traceability flows out from requirements. You should have requirements referenced in test cases, specs, source code, and defects. When requirements change, this should be a documented process, so that you have a mechanism for changing requirements and associated artifacts.
Change requests/orders may or may not identify affected artifacts. If they don’t, it falls on the team to have traceability defined so that these artifacts can be readily called up and examined.
A traceability matrix visualizes the relationship between requirements and other artifacts. This relationship should also be a part of each document, but the matrix provides a means of picturing those relationships.
The traceability matrix lets you create relationships between requirements and other artifacts; in this case, test cases.
Traceability sounds like it can be a complex and high maintenance process. It shouldn’t be.
Here are some guidelines for managing change and traceability in your projects.
First, as artifacts begin to be developed, link requirements (both forward and backward) to those artifacts.An automated, integrated solution will handle the backward links for you.
Use a documented mechanism to change requirements. Initiate the change, but look at the related artifacts. Work with the artifact owners to decide if and how an artifact must change.
Make sure that you note what changes have occurred to artifacts, and why.
Use a matrix or tree to visualize the relationships.
Agenda<br />What is requirements traceability?<br />Why we care about traceability<br />Traceability and changing requirements<br />Approaches to traceability<br />Summary and questions<br />
What Is Requirements Traceability?<br />Requirements traceability refers to the ability to describe and follow the life of a requirement, from conception to deployment<br />Documents relationships between artifacts<br />Document the transformation of a requirement into design, development and testing artifacts<br />
Why is Traceability Important?<br />Traceability helps us:<br />Determine the overall quality of the application under development<br />Understand product under development and its artifacts<br />Manage and communicate change<br />Learn from our mistakes<br />
Why is Traceability Important?<br />Makes sure we deliver the product defined by the requirements<br />Requirements can get lost in day-to-day software development and test<br />
Why is Traceability Important?<br />Provides an audit trail for accountability<br />Identify where information can be lost<br />Satisfy regulatory requirements<br />
Traceability and Change<br />Design and development efforts can take a year or longer<br />Unrealistic to expect that user needs don’t change over time<br />What happens to these changes?<br />What happens to the schedule?<br />
Traceability and Change<br />Changes have to propagate in several directions<br />Functional descriptions<br />Design specifications<br />Test plans and test cases<br />Code<br />Acceptance criteria<br />
Traceability and Change<br />Changes have to trace forward and backward<br />From requirement to final acceptance test<br />From final acceptance test back to requirements<br />
Traceability and Change<br />Why trace backward?<br />Helps ensure that the evolving product remains on the right track with regards to evolving requirements<br />
Traceability and Change<br />Requirements and related artifacts often reside in isolated silos<br />Design/UML software<br />Requirements management software<br />Test management software<br />Source code control software<br />Defect tracking software<br />
Traceability and Change<br />Best solution<br />Integrated tool solution – requirements, test management, defect tracking, source code control<br />Good solution<br />A robust interfaces between different tools<br />Poor solution<br />Trying to trace manually<br />
Approaches to Traceability<br />Traceability begins with requirements<br />Product success based on fulfilling requirements<br />Requirements must be documented<br />Changes must be formally requested and documented<br />Change requests and change orders<br />
Approaches to Traceability<br />Ideally, change orders identify downstream artifacts<br />Team members know what must be changed<br />In reality, team doesn’t usually know what else needs to be changed<br />Artifact tree or matrix is needed<br />
Approaches to Traceability<br />The traceability matrix<br />Correlates requirements with development and testing artifacts<br />Provides a visual connection between requirements and other artifacts<br />Enables validation that project requirements are being met<br />
Steps to Change and Traceability<br />Link requirements to related artifacts<br />Test cases<br />Spec paragraphs<br />Code modules<br />Defects<br />Also create backward links<br />
Steps to Change and Traceability<br />Use change requests/change orders<br />Change requirements first, then look at artifacts<br />Use traceability to identify potential changes to artifacts<br />Work with artifact owners to ensure requirement changes are reflected in artifacts<br />Changed requirement changed test case<br />
Steps to Change and Traceability<br />Make sure changed requirements and artifacts are appropriately labeled<br />Team members using these artifacts need to know they have changed, and what the changes are<br />
Steps to Change and Traceability<br />Use a traceability matrix or tree for easy reference<br />These can be generated using automation<br />
Summary<br />There is a need to relate business requirements to the delivered product<br />Traceability provides the ability to define and maintain that relationship<br />Traceability doesn’t have to be difficult or time-consuming<br />Automation with integrated tools do the best job<br />