Traceability 101
You’re the project manager of a large project and from a requirements perspective it looks like everything is on track for success:
- Business Requirements. Written and Approved. Check.
- Functional Requirements. Written and Approved. Check.
Seems like everything is covered. Except… where’s your traceability matrix? You have one, right?
If you don’t, you’re missing one of the best tools for ensuring a successful project.
By creating links – traces – between your business requirements, functional requirements, and test scripts you reveal a number of critical things about your project:
- Is each business requirement being implemented by a functional requirement?
- Is each functional requirement being driven by a business requirement?
- Is each functional requirement covered by a test script?
A full matrix might look something like this:
These Business Requirements… | Trace to these Functional Requirements… | Which trace to (are “covered by”) these Test Scripts |
---|---|---|
BusReq1 | FuncReq1 | TestScriptA |
FuncReq2 | TestScriptA | |
BusReq2 | FuncReq3 | TestScriptB |
TestScriptC | ||
BusReq3 | FuncReq4 | TestScriptD |
BusReq4 | ||
BusReq5 | FuncReq5 | TestScriptE |
BusReq6 | FuncReq6 | |
FuncReq7 | TestScriptF |
As you can see, a 1:1:1 ratio between business requirements, functional requirements, and test scripts doesn’t always exist:
- A single business requirement can trace to multiple functional requirements
- A single test script can trace from (“cover”) multiple functional requirements
- Multiple test scripts might be necessary to cover a single functional requirement
What you can also see is that your project has some serious problems.
Without even looking at the actual text of the business or functional requirements, the traceability matrix raises a number of red flags:
- BusReq4 does not trace to a single functional requirement. This reveals a gap in the project’s design.
- FuncReq6 does not trace to a test script. By creating a traceability matrix you can discover and correct a gap like this during the development phase, not during the expensive post-release phase.
- FuncReq7 does not trace from a single business requirement. Hmm…where did this requirement come from? If it’s not driven by a business requirement, what is it doing in this project? This is an indication of possible scope creep.
We’ve just touched the surface of what a traceability matrix can reveal about your project. Future discussions of this topic will probe a little deeper into the rewards and risks of maintaining a traceability matrix.
Latest posts by Robert Bedick (see all)
- Lies, Damn Lies, and Traceability - Dec 17, 2012
- Traceability 101 - Feb 8, 2012