Requirements are important artifacts in software and systems engineering. They describe which kind of system functionality is required as well as the correct system behavior. They are not only the foundation for architecture, design and implementation of a system but also an essential prerequisite for verification and testing.
Requirements Tracing is a part of Requirements Management and means that requirements can be linked to all other kinds of artifacts. Here, a crucial factor is proving that critical requirements, in particular, have been sufficiently covered. In such a case, it helps to know which software test verifies which requirements or where a specific requirement has been implemented in the code.
Requirements Tracing is heavily used in the engineering of safety-critical systems and described in various industry standards. Among the most common are
- ISO 26262 for automotive software
- DO-178C/ED-12C for avionic systems
- ISO 13485/IEC 62304 which is used for medical devices
Standards like the ones mentioned above often use top-down development processes as their underlying mental model: Assuming the requirements are stable, data to facilitate traceability is to be collected during the subsequent development process. However, projects from complex domains do not necessarily follow a strictly linear process and their requirements are subject to change. Nevertheless, in these cases Requirements Tracing is still encouraged or even obligatory.
Even today, many people still manually maintain spreadsheets in order to record whether their tests have successfully covered all requirements. Tests verifying critical requirements are treated as particularly important. Requirements Tracing in Teamscale saves you all the hard work of bringing requirements and tests together. A highlight is that calculation is done automatically which means your data will always be up-to-date.
Maintaining spreadsheets separately and manually is no longer necessary: Test cases are detected automatically within the test code or are extracted from test management tools. Linking tests and requirements can either take place via annotation within the test code or is saved within the testing tool. Teamscale reads this information, saves its development over time and presents it to all the project’s stakeholders in an appropriate form, for example, in the shape of a classic verification matrix:
If necessary, the number of requirements displayed can be limited, for example, to only a single component.
Typical questions, such as:
- “Are there any requirements without associated tests?”
- “Which tests verify too many requirements?”
- “Which tests of a given requirement fail?”
are easy to answer with the help of Teamscale’s Requirements Tracing.
Our colleagues in the US have played a leading role in designing Agile Requirements Tracing in close collaboration with our clients in Silicon Valley and starting with Teamscale 7.0, this has finally become a reality. Numerous extensions are planned for the coming versions, taking the fear out of the bureaucracy of security and accuracy verification.