VAIVA GmbH - Safe Mobility

Zurück

Pair Specification als weiterer Schritt zur Verbesserung unseres Entwicklungsprozesses

Theresa Ley,

Bei VAIVA entwickeln wir Embedded Software und müssen dabei verschiedene Standards wie ASPICE, ISO26262 und KGAS (VW Richtlinie) einhalten. All diese Standards fordern einen mehr oder weniger hohen Grad an Unabhängigkeit für die Rolle des Softwaretesters. Dies bedeutet, dass der Tester, nicht der Ersteller der Software (des Testobjektes) sein darf. Daher nutzen wir jetzt eine neue Methode, die Pair Spezifikation, bei der der Softwareentwickler mit dem zugehörigen Softwaretester zusammengebracht wird. Beide Rollen bilden ein Paar und erstellen die Software Unit Spezifikation in Zukunft gemeinsam.

Aktuelle Situation

Aktuell sind nach unserem Entwicklungsprozess (APM) die Softwareentwickler zuständig die Software Unit Spezifikation zu erstellen. Diese Spezifikation beschreibt das Verhalten sowie den Lösungsansatz für eine einzelne Software Unit. Dieses Vorgehen führt aktuell zu Verzögerungen in unseren Projekten, da unter anderem erst sehr spät beim Review durch den Tester festgestellt wird, dass die Unit so wie sie spezifizier ist, nicht testbar ist. Auch werden für die Reviews viele Ressourcen benötigt.

All diese Probleme führen auch dazu, dass die Tests erst verzögert starten können und die Entwickler erst spät Feedback über mögliche Fehler in der Software Unit bekommen.

Motivation

Zusätzlich zu den oben genannten Problemen in der klassischen Softwareentwicklung kommt in Zukunft das Thema agile Entwicklung. Viele unserer neuen Projekte sollen in Zukunft mit agilen Prozessen und Methoden durchgeführt werden. Ein wichtiger Grundsatz in der agilen Entwicklung ist, dass die Entwickler zeitnah Feedback zu ihren Implementierungen bekommen. Hierfür wird in agilen Prozessen auf Methoden wie Test Driven Development gesetzt. Bei dieser Methode erstellt der Softwareentwickler erst seine Testfälle und implementieren dann die Software. Auf diese Weise bekommt der Entwickler sofort die Rückmeldung, ob seine Implementierung Softwarefehler aufweist.

Fragestellung

Das stellt das Prozessentwicklungsteam bei VAIVA vor die Frage: Wie können wir agile Methoden einsetzen und auch unsere aktuellen Probleme lösen und trotzdem auf der anderen Seite die Anforderungen aus den Standards nach der Unabhängigkeit von Testern erfüllen?

Lösungsansatz

Das Vorbild für unsere neue Spezifikationsmethode ist die Methode Pair Programming.

Die neue Methode, die wir nutzen nennt sich Pair Spezifikation. Hierbei werden der Softwareentwickler, der Verantwortlich ist für die Erstellung der Software Unit Spezifikation, mit dem zugehörigen Softwaretester, der die Unit entsprechend verifizieren soll, zusammengebracht. Die beiden Rollen bilden ein Paar und erstellen die Software Unit Spezifikation in Zukunft gemeinsam. Das Prinzip ist identisch zum Vorgehen des Pair Programming. Dabei übernimmt der Softwareentwickler die Rolle des Piloten und der Softwaretester die Rolle des Navigators. Beide sitzen gemeinsam vor dem PC und erstellen zusammen die Software Unit Spezifikation. Während der Pilot die Spezifikation erstellt, prüft der Navigator diese parallel. Auf diese Weise wird die Spezifikation in einem Schritt erstelle und gereviewed. Hierfür wurde ein spezielles Review Protokoll mit zugehörigen Checklistenfragen erstellt. Da der Softwaretester bei der Erstellung eingebunden ist, ist sichergestellt, dass die Spezifikation am Ende auch testbar ist.

Ein weiterer Vorteil dieser Methode ist, dass Implementierung und Software Unit Test Erstellung jetzt parallel starten können. Dadurch stehen die Testergebnisse viel früher zur Verfügung und somit bekommt der Entwickler jetzt zeitnah Feedback zu seiner Implementierung.

Die Anforderung der Unabhängigkeit des Softwaretesters ist auf diese Weise weiter gewährleistet, da dieser nur als Reviewer direkt bei der Spezifikation beteiligt ist. Die Implementierung der Software wird weiter unabhängig durch den Softwareentwickler vorgenommen, hier ist der Softwaretester nicht involviert.

Zu beachten ist noch, dass wenn die zu entwickelnde Komponenten eine ASIL Einstufung nach ISO26262 hat, je nach ASIL, zu einem definierten Zeitpunkt eine formale Inspektion durchgeführt werden muss.

Zusammenfassung

Zusammenfassend kann man sagen, dass die Methode Pair Specification einen weiteren Schritt zur Verbesserung unseres Entwicklungsprozesses (APM) beigetragen hat. Folgende Erfolge haben wir erreicht:

  • Der Review Aufwand wurde reduziert
  • Es ist sichergestellt, dass unsere Software Unit Spezifikationen testbar sind
  • Frühere Verfügbarkeit der Testergebnisse und damit zeitnahes Feedback für die Softwareentwickler

von Stefanie