Verifikation vs. Validierung

Zwei Aufgaben. Zwei Nachweissätze. Beide sind erforderlich.

Verifikation und Validierung befassen sich mit unterschiedlichen Fragestellungen, erfordern unterschiedliche Maßnahmen und liefern unterschiedliche Nachweise. In regulierten Branchen gelten für sie zudem unterschiedliche verbindliche Dokumentationsanforderungen nach ISO 26262, DO-178C und IEC 61508. Entwicklungsteams, die diese Begriffe synonym verwenden, erkennen den Unterschied in der Regel im ungünstigsten Moment: während eines Audits.

Der wesentliche Unterschied

Die einfachste Art, sie zu unterscheiden:

Verifikation

Haben wir die Software korrekt entwickelt?

Validierung

Haben wir die richtige Software entwickelt?

Bei der Verifikation wird geprüft, ob die Software ihre Spezifikationen korrekt umsetzt. Bei der Validierung wird geprüft, ob die Spezifikation die Anforderungen des Benutzers oder des Systems korrekt widerspiegelt.

Verifikation in der Praxis

Verifikationsmaßnahmen konzentrieren sich auf die interne Korrektheit der Software. Dazu gehören:

  • Statische Codeanalyse: Untersuchung des Quellcodes auf Fehler und Verstöße gegen Standards, ohne diesen auszuführen
  • Unit-Tests: Isoliertes Testen einzelner Komponenten anhand ihrer Spezifikationen
  • Code-Coverage-Messung: Überprüfung , ob die Tests den Code ausreichend abdecken
  • Anforderungsbasiertes Testen: Verknüpfung jedes Testfalls mit einer spezifischen Anforderung
  • Peer-Reviews und Inspektionen: Strukturierte Überprüfung von Code und Dokumentation

 

Das Ergebnis der Verifikation sind dokumentierte Nachweise: Testergebnisse, Abdeckungsberichte und Rückverfolgbarkeitsmatrizen, aus denen hervorgeht, welche Anforderungen wie verifiziert wurden.

Validierung in der Praxis

Validierungsmaßnahmen bestätigen, dass das System tatsächlich das tut, was von ihm erwartet wird, und nicht nur das, was in der Spezifikation festgelegt wurde. Sie finden in der Regel zu einem späteren Zeitpunkt im Lebenszyklus statt und beinhalten folgende Maßnahmen:

  • Systemtests anhand von Endanwenderanforderungen oder Betriebsszenarien
  • Hardware-in-the-Loop-Tests (HIL) für Embedded Systeme
  • Abnahmetests unter Einbeziehung des Kunden oder von Zulassungsbehörden

 

Die Validierung bestätigt, dass ein korrekt erstelltes System auch das richtige System ist.

Warum beides in regulierten Branchen erforderlich ist

Normen einschließlich ISO 26262, DO-178C, IEC 61508 und IEC 62304 schreiben ausdrücklich sowohl Verifikations- als auch Validierungsmaßnahmen vor, für die jeweils dokumentierte Nachweise vorliegen müssen. Zu den Verifikationsnachweisen zählen in der Regel Testberichte zu Komponententests, Ergebnisse statischer Analysen sowie Coverage-Daten. Zu den Validierungsnachweisen gehören Testergebnisse auf Systemebene und Abnahmeprotokolle.

VectorCAST und PC-lint Plus unterstützen den Verifikationsaspekt dieses Prozesses, indem sie die von diesen Normen geforderten, auditierbaren Nachweise generieren.