Agiles Requirements Tracing mit Teamscale
Requirements (dt. Anforderungen) sind wichtige Artefakte im Software- und Systems Engineering. Sie beschreiben, welche Funktionalität ein System aufweisen muss und das korrekte Systemverhalten. Sie sind nicht nur Grundlage für Architektur, Design und Implementierung eines Systems, sondern auch eine wesentliche Voraussetzung für Verifikation und Test.
Als Teil des Anfordungsmanagements bezeichnet Requirements Tracing (dt. Rückverfolgbarkeit) die Maßgabe, Anforderungen zu jedweden anderen Artefakten zuordnen zu können. Ein Kernpunkt dabei ist, den Nachweis zu schaffen, dass vor allem kritische Anforderungen ausreichend abgesichert wurden. Dabei hilft es beispielsweise zu wissen, welcher Softwaretest welche Anforderungen prüft oder wo eine Anforderung im Code umgesetzt ist.
Für Branchen, in denen Anwendungen fast immer sicherheitskritisch sind, sind Standards beim Requirements Tracing vorgeschrieben. Bekannt sind zum Beispiel die
- ISO 26262 im Automobilsektor,
- DO-178C/ED-12C in der Avionik oder die
- ISO 13485/IEC 62304 für die Medizintechnik.
Diese Standards nehmen im Regelfall Top-down-Entwicklungsprozesse (s. unten stehendes Bild) an: Ausgehend von stabilen Anforderungen sollen Informationen, die die Rückverfolgbarkeit ermöglichen, im weiteren Entwicklungsprozess festgehalten werden. Projekte, die sich in komplexen Domänen bewegen, folgen aber keinem strikt linearen Prozess, und Anforderungen erfahren häufige Änderungen. Dennoch sind sie zu Requirements Tracing angehalten oder verpflichtet.
Sind alle Anforderungen erfolgreich getestet?
Teamscale erzeugt Verifikationsmatrix automatisch
In vielen Projekten werden auch heutezutage noch händisch Tabellen gepflegt, um festzuhalten, ob die Tests zu allen Anforderungen erfolgreich laufen. Besonderes Augenmerk liegt auf den Tests, die kritische Anforderungen prüfen. Das Requirements Tracing in Teamscale nimmt die aufwändige Arbeit ab, Anforderungen und Tests zusammenzubringen. Ein Highlight: Da die Berechnung automatisch stattfindet, sind die Daten immer aktuell.
Eine separate und manuelle Tabellenpflege dafür entfällt: Testfälle werden automatisch im Testcode erkannt oder aus Testmanagementwerkzeugen extrahiert. Die Verlinkung zwischen Test und Anforderung findet dabei entweder durch Annotation im Testcode statt oder wird im Testwerkzeug gespeichert. Teamscale liest diese Informationen ein, speichert deren Entwicklung über die Zeit und präsentiert sie allen Stakeholdern des Projekts in geeigneter Weise, z. B. in Form einer klassischen Verifikationsmatrix.
Die Anzeige lässt sich bei Bedarf auf eine bestimmte Menge von Anforderungen einschränken, z. B. die einer einzelnen Komponente.
Typische Fragen wie:
- “Für welche Anforderungen haben wir keine Tests?”
- “Welche Tests prüfen zu viele Requirements?”
- “Welche Tests von welchen Anforderungen failen?”
sind mit Teamscales Requirements-Tracing einfach zu beantworten.
Federführend durch die Kollegen der CQSE America und in enger Zusammenarbeit mit unseren Kunden im Silicon Valley konzipiert, wird mit Teamscale 7.0 agiles Requirements-Tracing erstmals Realität. Auch in den nächsten Versionen sind zahlreiche Erweiterungen geplant, um den bürokratischen Aufgaben des Sicherheits- und Korrektheitsnachweises den Schrecken zu nehmen.