What is Trace Analyst?
When a customer asks for something to be built then they expect that they will get what they asked for. If
a customer asks for a system to be built with features A, B and C then they expect that system to supply these
features. If the system doesn’t supply the features (as the customer perceives them) then the system will be
considered to be a failure and the customer will be dissatisfied with the results. Since most large real-world
systems are built under contract then this dissatisfaction may result in legal action or other commercial
consequences.
Over the course of a large real-world project the requirements often change, or are reinterpreted as people
attempt to implement them. At the end of the project, the resulting system will almost certainly have some
differences with how the customer originally perceived that the system would be built. The version history of
various requirements documents, or email trails may contain some of the reasons why things changed, but
extracting why requirements have been changed can be a time consuming exercise. Even then the necessary reasons
may have been lost if the people concerned have left the project.
Trace Analyst is a software product and development process that provides requirements assurance. This
software product provides a process by which the customer can be assured that the requirements they initially
specified have been delivered. When requirements are changed then who, when, and why the change occurred is logged.
When the software is delivered then the customer can be assured that the no requirements have been missed and no
uncontrolled extra functionality has been delivered. One by-product of this process is detailed real-time progress
tracking of requirements completion and by implication the project completion.
Trace Analyst delivers:
- Proof to the stakeholders that all required functionality has been delivered
- Records the change history of requirements as they evolve
- Reduces the time spent on investigating why requirements have changed
- Greater customer satisfaction when a project is completed
Document your features
Define your requirements and features in an issue repository like JIRA. Track changes to requirements in detailed
changed history notes. Record the planned number of tests cases expected for each feature. Features define collections
of requirements that belong together and can be used to manage a software project at a more granular level than
something like a use case. How you define your features and what makes up a feature is completely up to you to
decide, though we have some suggestions:
- Keep features small, 1-5 developer days of work
- Bunch lots of little features together so that you don’t get too many of them, like the first point the average effort required should be in the 1-5 developer days range.
- Plan releases around collections of features rather than whole use cases.
- Communicate to your testers/customers what collections of features they should expect in each release.
Trace Analyst also currently supports defining features in an Excel spreadsheet.
Annotate your test code (unit, integration or functional) with the features they cover. Developers and Testers
then cross-reference their tests scripts and test code with the feature ID that the test covers. A test may cover
more than one feature and a feature may require more than one test case.
import nz.co.rhe.trace.junitmarkup.FeaturesCovered;
import nz.co.rhe.trace.junitmarkup.TestScript;
@TestScript("Unit")
public class MyTest extends TestCase {
@FeaturesCovered({"ABC-123"})
public void testMyFeature() {
}
}
Integrate with your continuous build server and gather up to the minute reporting on the traceability matrix of
your project. Any tests not annotated with a feature will appear in the Trace Analyst reporting and may represent;
- Functionality not required
- Non-functional requirements like performance or error handling
- Functionality that has not yet been approved
- Functionality that has been dropped
These issues may represent something you want resolved, or may represent gaps in the features that have been defined
so far. You decide what to do with these issues.
Track the progress of your project as Trace Analyst reports on how many planned test cases you have versus how many
actual test cases you have implemented.
Extend and integrate Trace Analyst with your own requirements repository or continuous build server. The results from
the Trace Analyst analysis process are available in a number of formats such as XML, HTML, Excel, or as a Java Object.
Trace Analyst features an open API that provides you with the ability to integrate with;
- Your own requirements repository
- Your own test scripts
- Your own reporting technologies