Glossar · Testgrundlagen
Verifizierung und Validierung
Englisch: Verification and validation
Auch genannt: V&V, Verifikation und Validierung, Verifizierung vs Validierung
Definition
Verifizierung fragt „Bauen wir das Produkt richtig?“ gegen die Spezifikation. Validierung fragt „Bauen wir das richtige Produkt?“ für echte Nutzerbedürfnisse.
Verifizierung und Validierung sind zwei sich ergänzende Prüfungen, die meist mit der Formulierung von Barry Boehm beschrieben werden. Verifizierung prüft, ob ein Arbeitsergebnis seiner Spezifikation entspricht: Bauen wir das Produkt richtig? Validierung prüft, ob das Produkt die tatsächlichen Bedürfnisse seiner Nutzer in der vorgesehenen Umgebung erfüllt: Bauen wir das richtige Produkt? Ein System kann die Verifizierung vollständig bestehen und trotzdem bei der Validierung scheitern, wenn die Spezifikation falsch war.
Beispiel
Eine Anforderung lautet: „Der Export-Button erzeugt eine CSV-Datei aller Bestellungen.“
- Verifizierung: Das Team prüft das Design, inspiziert den Code und testet, dass ein Klick auf Exportieren eine korrekt formatierte CSV mit allen Bestellungen erzeugt. Das tut er, also ist die Verifizierung bestanden.
- Validierung: Das Finanzteam versucht, die Funktion zu nutzen, und stellt fest, dass es eigentlich nach Monat gefilterte Bestellungen mit der Steuer in einer eigenen Spalte braucht und seine Tabellenvorlage Semikolons als Trennzeichen erwartet. Das Feature erfüllt die Spezifikation, aber nicht den Bedarf. Die Validierung scheitert.
Der Unterschied auf einen Blick
| Verifizierung | Validierung | |
|---|---|---|
| Frage | Bauen wir das Produkt richtig? | Bauen wir das richtige Produkt? |
| Verglichen mit | Anforderungen, Design, Standards | Nutzerbedürfnissen und vorgesehenem Einsatz |
| Typische Aktivitäten | Reviews, Walkthroughs, Inspektionen, statische Analyse, Unit-, Integrations- und Systemtests | Benutzerakzeptanztests, Beta-Tests, Usability-Studien, Demos, Feedback aus der Produktion |
| Braucht laufende Software? | Nicht immer: Reviews sind Verifizierung | In der Regel ja, oder einen realistischen Prototyp |
| Hauptsächlich durchgeführt von | Entwicklern und QA | Nutzern, Kunden, Product Ownern |
Statische Techniken wie Anforderungs- und Code-Reviews sind immer Verifizierung. Auch der Großteil des dynamischen Testens, das QA gegen die Spezifikation durchführt, ist Verifizierung. Validierung bezieht die Menschen ein, für die das Produkt gedacht ist.
Warum es wichtig ist
Teams, die sich nur auf Verifizierung konzentrieren, können Software ausliefern, die exakt einer fehlerhaften Anforderung entspricht. Shift-Left-Praktiken helfen bei beidem: Akzeptanzkriterien früh mit Nutzern zu prüfen ist günstige Validierung, und automatisierte Tests bei jedem Commit sind kontinuierliche Verifizierung. In regulierten Branchen wie der Medizintechnik sind V&V getrennte, dokumentierte Aktivitäten, und Auditoren erwarten Nachweise für beide.