Software-Verifikation und -Validierung
Software-Verifikation und -Validierung (V&V) sind komplementäre Prozesse, die bestätigen, dass Software korrekt gemäß ihrer Spezifikation erstellt wurde und dass die richtige Software zur Erfüllung der Benutzeranforderungen entwickelt wurde.
Definition
Verifikation ist die Bewertung, ob ein Produkt einer Entwicklungsphase die zu Beginn gestellten Bedingungen erfüllt, und Validierung ist die Bewertung, ob das Endprodukt seinen beabsichtigten Verwendungszweck und die Benutzeranforderungen erfüllt.
Scope
Dieses Thema behandelt statische V&V-Techniken wie Reviews, Walkthroughs und formale Inspektionen; statische Programmanalyse zur Fehlererkennung ohne Ausführung; dynamische V&V durch Tests; die Planung und Unabhängigkeit von V&V-Aktivitäten; sowie Standards wie ISO/IEC/IEEE 1012, die V&V-Prozesse und Genauigkeitsgrade regeln.
Core questions
- Wie unterscheiden sich Verifikation und Validierung in Fragestellung und Methode?
- Welche Fehler werden durch Reviews und Inspektionen erkannt, die beim Testen übersehen werden?
- Wie ergänzt die statische Analyse das dynamische Testen?
- Wie wird der Grad der V&V an die Kritikalität der Software angepasst?
Key theories
- Verifikation versus Validierung
- Verifikation fragt, ob wir das Produkt gemäß seiner Spezifikation richtig erstellen, während Validierung fragt, ob wir das richtige Produkt für den Benutzer erstellen; die beiden erfordern unterschiedliche Nachweise und umfassen den gesamten Lebenszyklus.
- Software-Inspektion
- Die Fagan-Inspektion ist ein strukturierter, rollenbasierter Überprüfungsprozess, der Fehler in Design und Code frühzeitig und kostengünstig erkennt und nach wie vor eine der effektivsten Techniken zur Fehlerbeseitigung ist.
Clinical relevance
V&V-Aktivitäten, insbesondere frühe Reviews und statische Analysen, beseitigen Fehler, bevor sie spätere Phasen erreichen, in denen sie weitaus kostspieliger sind; für sicherheits- und missionskritische Software ist eine unabhängige V&V oft durch Standards und Regulierungsbehörden vorgeschrieben.
Evidence & guidelines
ISO/IEC/IEEE 1012 definiert V&V-Prozesse und Integritätsstufen, und Domänenstandards wie DO-178C (Avionik) und IEC 61508 (funktionale Sicherheit) legen V&V-Anforderungen fest, die an das Risiko angepasst sind.
History
Die formale Inspektion wurde 1976 von Fagan bei IBM eingeführt und erwies sich wiederholt als äußerst kosteneffektiv; statische Analysetools entwickelten sich ab den 1990er Jahren, und V&V wurde zu einer regulierten Disziplin in sicherheitskritischen Bereichen, kodifiziert in Standards wie IEEE 1012.
Key figures
- Michael Fagan
- Barry Boehm
- Roger Pressman
Related topics
Seminal works
- fagan1976
- ieee1012
- pressman2014
Frequently asked questions
- Wie unterscheidet sich Verifikation von Validierung?
- Verifikation prüft die Konformität mit der Spezifikation bei jedem Schritt – das Produkt richtig bauen – während Validierung prüft, ob das fertige Produkt tatsächlich die Benutzeranforderungen erfüllt – das richtige Produkt bauen. Ein System kann verifiziert sein, aber die Validierung fehlschlagen, wenn die Anforderungen selbst falsch waren.
- Lohnen sich Code-Reviews wirklich?
- Empirische Studien, beginnend mit Fagans Arbeit, zeigen durchweg, dass strukturierte Reviews und Inspektionen einen großen Teil der Fehler frühzeitig und kostengünstig finden und oft Fehler aufdecken, die beim Testen übersehen würden, was sie zu den kostengünstigsten Qualitätstechniken macht.