Entwurfsverifizierungs- und Validierungsprozess

⚡ Intelligente Zusammenfassung

Die Designverifizierung bestätigt, dass das Designergebnis den dokumentierten Designvorgaben entspricht, während die Designvalidierung sicherstellt, dass das fertige Produkt die tatsächlichen Bedürfnisse der Nutzer erfüllt. Beide Prozesse laufen während des gesamten Entwicklungsprozesses, nicht erst am Ende.

  • 🔘 Zwei verschiedene Fragen: Bei der Verifikation wird geprüft, ob das Produkt richtig konstruiert wurde, bei der Validierung wird geprüft, ob überhaupt das richtige Produkt konstruiert wurde.
  • ☑️ Eingänge und Ausgänge: Die Designeingabe umfasst die physikalischen und leistungsbezogenen Anforderungen; die Designausgabe ist das Ergebnis jeder Designphase und wird im Rahmen der Verifikation untersucht.
  • ✅ Objektive Beweise: Die Validierung ist erst dann abgeschlossen, wenn ein physischer Nachweis dafür vorliegt, dass das Produkt die dokumentierten Benutzeranforderungen erfüllt.
  • 🧪 Fünfstufige Verifizierung: Identifizierung und Vorbereitung, Planung, EntwicklungpingDie Ausführung und Berichterstattung bilden die Standardverifizierungssequenz.
  • ️ TracDurchgängige Verträglichkeit: Die Verknüpfung von Designvorgaben, Testfällen und Ergebnissen beweist, dass tatsächlich alle Anforderungen erfüllt wurden.
  • 📈 Die Reihenfolge ist wichtig: Die Validierung folgt auf eine erfolgreiche Verifizierung, und eine Verifizierung ist niemals ein akzeptabler Ersatz für diese.

Designverifizierungs- und Validierungsprozess in der Softwareentwicklung

Designüberprüfung

Designüberprüfung Die Verifizierung ist eine Methode, um durch Prüfung und Nachweis zu bestätigen, dass die Ausgabe eines entwickelten Softwareprodukts den Eingabespezifikationen entspricht. Ziel der Verifizierung während der Softwareentwicklung ist es, sicherzustellen, dass das entwickelte Softwareprodukt den Spezifikationen entspricht.

Als Design-Input gelten alle physikalischen und leistungsbezogenen Anforderungen, die als Grundlage für das Design dienen. Das Design-Output ist das Ergebnis jeder Designphase und des gesamten Designaufwands. In regulierten Branchen wie der Medizintechnik bildet das finale Design-Output die Grundlage für die Gerätedokumentation. Daher findet sich die Terminologie der Designkontrolle so häufig in der Verifizierungsdokumentation.

In der Praxis vergleicht die Verifizierung zwei Dokumentensätze: die ursprünglichen Spezifikationen, Normen und Vorgaben mit den resultierenden Zeichnungen, dem Code und den Testanweisungen. Jede Abweichung zwischen ihnen stellt einen Verifizierungsbefund dar.

Design-Validierung

Die Verifizierung beweist die interne Konsistenz. Die Validierung stellt die schwierigere Frage, ob die Spezifikation überhaupt das richtige Produkt beschrieben hat.

Design-Validierung Die Designvalidierung ist ein Prozess zur Bewertung des Softwareprodukts anhand der genauen Anforderungen von Endnutzern oder Stakeholdern. Ziel der Designvalidierung ist es, das Softwareprodukt nach der Entwicklung zu testen, um zu bestätigen, dass es diese Anforderungen in der jeweiligen Nutzerumgebung erfüllt.

Bei der Validierung geht es darum, die Konsistenz und Vollständigkeit eines Designs im Hinblick auf die Nutzerbedürfnisse nachzuweisen. In dieser Phase wird eine Version des Produkts entwickelt und anhand der Nutzeranforderungen validiert.

Das Banner unten kennzeichnet die beiden Hälften der Aktivität, so wie sie üblicherweise in Konstruktionsunterlagen dargestellt werden.

Überschrift „Designvalidierung“, die in Designkontrolldatensätzen verwendet wird

Das nachfolgende Diagramm zeigt den Designvalidierungsprozess selbst, von den Benutzerbedürfnissen bis zum validierten Produkt.

Ablauf des Designvalidierungsprozesses von den Benutzerbedürfnissen bis zum validierten Produkt

Ziel ist es, anhand objektiver Beweise nachzuweisen, dass das Produkt die dokumentierten Nutzerbedürfnisse erfüllt. Objektive Beweise sind schlichtweg physische Belege für das Ergebnis – beispielsweise ein Bild, eine Textdatei, eine Audiodatei oder ein unterzeichneter Bericht –, die belegen, dass das Verfahren tatsächlich durchgeführt wurde.

Anhand dieser objektiven Nachweise wird im Prozess fortlaufend geprüft, ob das Produkt die vordefinierten Anforderungen erfüllt. Dies umfasst Testaktivitäten, Inspektionen, Analysen und ähnliche Verfahren, weshalb die Validierung üblicherweise auf diesen Nachweisen basiert. Systemtests und User Acceptance Testing anstatt auf Ebene der einzelnen Einheiten zu überprüfen.

Unterschied zwischen Designverifizierung und Validierung

Es gibt immer wieder Missverständnisse zwischen Verifizierung und Validierung. Es handelt sich um unterschiedliche Aktivitäten, die beide in jeder Phase des Entwicklungsprozesses durchgeführt werden und nicht erst zu einem einzelnen Meilenstein.

Designüberprüfung Design-Validierung
Die Designverifizierung wird dort eingesetzt, wo das tatsächliche Designergebnis mit dem erwarteten Designergebnis übereinstimmen sollte, das die Spezifikationen des Produkts erfüllt. Die Validierung des Designs dient dazu, sicherzustellen, dass das endgültige Design den Erwartungen der Nutzer entspricht.
Die Designverifizierung fragt: Haben Sie das Produkt richtig gestaltet? Die Designvalidierung fragt: Haben Sie das richtige Produkt entworfen?
Die Designverifizierung umfasst die Einheit und die Primärebene. Integrationstests. Die Designvalidierung umfasst sekundäre oder übergeordnete Integrations- und Systemebenentests.
Bestimmte Aspekte der Designvalidierung können während der Designverifizierung durchgeführt werden, die Designverifizierung ist jedoch kein Ersatz für die Designvalidierung. Die Designvalidierung folgt einer erfolgreichen Designverifizierung.
Die Designverifizierung kann an einem einzelnen Modul oder am kompletten System unter beliebigen Bedingungen durchgeführt werden. Die Designvalidierung muss unter einer spezifizierten Bedingung gemäß den Benutzeranforderungen durchgeführt werden.
Die Designverifizierung kann statische Verfahren nutzen. Sie umfasst Systeminspektionen, Analysen und formale Verifizierungsaktivitäten. Die Designvalidierung umfasst den Abschlussbericht der Testergebnisse, der geprüft, genehmigt und unterzeichnet wird. Diese Dokumente werden zur späteren Verwendung archiviert.

Eine nützliche Abkürzung: Die Verifizierung erfolgt meist statische Arbeit anhand von Dokumenten, wobei die Validierung hauptsächlich dynamisches Testen gegen eine Laufformation.

Entwurfsverifizierungsprozess

Der Verifizierungsprozess läuft in fünf Phasen ab, und jede Phase erzeugt ein Artefakt, von dem die nächste Phase abhängt.

Identifizierung und Vorbereitung:

  • Während der Spezifikationsentwicklung werden parallel Verifizierungsaktivitäten identifiziert. So kann der Entwickler sicherstellen, dass die Spezifikation tatsächlich überprüfbar ist, damit der Testingenieur detaillierte Testpläne und -verfahren erstellen kann. Jede Änderung der Spezifikation muss kommuniziert werden.
  • Ermitteln Sie den besten Ansatz zur Durchführung der Verifizierung und definieren Sie die Messmethoden, erforderlichen Ressourcen, Werkzeuge und Einrichtungen.
  • Der fertige Verifizierungsplan wird mit dem Designteam besprochen, um mögliche Probleme aufzudecken, bevor der Plan endgültig festgelegt wird.

Planung:

  • Die Planung der Verifizierung ist eine parallele Aktivität der Kern- und Entwicklungsteams. Sie findet während des gesamten Projektlebenszyklus statt und wird bei jeder Änderung der Designvorgaben aktualisiert.
  • Während dieser Phase wird die zu testende Software oder das zu testende System im Umfang dokumentiert.
  • Ein vorläufiger Testplan wird erstellt und anschließend verfeinert. Der Plan erfasst die kritischen Meilensteine, die das Projektrisiko reduzieren.
  • Werkzeuge, Testumgebung und Entwicklungsstrategie werden ausgewählt, und die Anforderungen, die durch Inspektion oder Analyse bestätigt werden sollen, werden identifiziert.

Entwickelnping:

  • Testfall Die Entwicklung fällt zusammen mit der SDLC-Methodik Das Projektteam hat die Umsetzung vorgenommen. In dieser Phase werden verschiedene Testmethoden identifiziert.
  • Die Designvorgaben müssen so entwickelt werden, dass selbst einfachste Verifizierungsaktivitäten eindeutig und überprüfbar sind.
  • Die Verifizierungszeit wird verkürzt, wenn ähnliche Konzepte nacheinander verifiziert werden, da die Ausgabe eines Tests als Eingabe für einen nachfolgenden Test wiederverwendet werden kann.
  • TracEs werden Verknüpfungen zwischen Testfällen und den entsprechenden Designeingaben hergestellt, um sicherzustellen, dass jede Anforderung getestet wird und dass die Designausgabe den Designeingaben entspricht.

Ausführung:

  • Die während der Entwicklungsphase erstellten Testverfahren werden gemäß dem Testplan ausgeführt und während der Verifizierungsaktivität strikt eingehalten.
  • Falls ungültige Ergebnisse auftreten oder ein Verfahren geändert werden muss, müssen die Änderungen dokumentiert und formell genehmigt werden.
  • Jedes gefundene Problem wird wie üblich als Defekt protokolliert. Fehlermanagementprozess.
  • A tracEabilitätsmatrix wird erstellt, um zu überprüfen, ob alle im Verifizierungstestplan aufgeführten Designeingaben getestet wurden, und um die Erfolgsquote zu ermitteln.

Berichte:

  • Diese Aktivität wird am Ende jeder Phase der Verifizierungsausführung durchgeführt.
  • Der Designverifizierungsbericht enthält eine detaillierte Zusammenfassung der Verifizierungsergebnisse, einschließlich Konfigurationsmanagement, den Ergebnissen für jede Testart und den während der Verifizierungsaktivität festgestellten Problemen.
  • Eine Designverifizierung tracDer Machbarkeitsbericht wird anhand der Anforderungen und der entsprechenden Testergebnisse erstellt, um zu bestätigen, dass alle Anforderungen getestet wurden und entsprechende Ergebnisse erfasst wurden.
  • Jede Abweichung wird dokumentiert und angemessen behandelt.
  • RevNach Abschluss der Designverifizierungsaktivitäten werden Überprüfungen durchgeführt und die Ergebnisse formell genehmigt.

Entwurfsvalidierungsprozess

Die Validierung folgt keiner starren Abfolge. Stattdessen greift sie auf eine kleine Auswahl akzeptierter Methoden zurück, und ein Projekt verwendet normalerweise mehr als eine davon.

  • Vergleich mit gleichwertigen Konstruktionen. Manche Konstruktionen lassen sich validieren, indem man sie mit ähnlichen Geräten für einen ähnlichen Zweck vergleicht. Dies ist insbesondere relevant bei der Validierung von Konfigurationsänderungen an bestehender Infrastruktur oder von Standardkonstruktionen, die in ein neues System oder eine neue Anwendung integriert werden.
  • Vorführung und Inspektion. Eine oder beide Methoden können verwendet werden, um Anforderungen und andere Funktionalitäten des Produkts zu validieren.
  • Analysis. Das Design kann mittels mathematischer Modellierung oder einer Simulation analysiert werden, die die erforderliche Funktionalität nachbildet.
  • Testen. Am endgültigen Entwurf werden Tests durchgeführt, um die Funktionsfähigkeit des Systems gemäß den Spezifikationen zu bestätigen. Funktionsprüfung und nicht-funktionale Tests den Benutzeranforderungen entsprechen.
  • Dokumentation. Der Testplan, die Durchführung und die Ergebnisse sollten dokumentiert und als Teil der Konstruktionsunterlagen aufbewahrt werden. Die Validierung umfasst letztendlich die gesammelten Ergebnisse aller Validierungsaktivitäten.
  • Äquivalenzbegründung. Werden bei der abschließenden Designvalidierung gleichwertige Produkte verwendet, muss der Hersteller die Ähnlichkeit und etwaige Unterschiede zur ursprünglichen Produktion dokumentieren.

Beispiel

Ein kurzes, ausgearbeitetes Beispiel verdeutlicht den Unterschied.

  • Nehmen wir ein einfaches Produkt: eine wasserdichte Uhr.
  • Im Produktanforderungsdokument könnte beispielsweise stehen: „Die Uhr muss beim Schwimmen wasserdicht sein.“ Das ist die Nutzeranforderung, und daran werden die Validierungsergebnisse gemessen.
  • Die Designspezifikation könnte beispielsweise festlegen, dass „die Uhr auch dann funktionieren sollte, wenn der Benutzer längere Zeit schwimmt“. Dies ist die Designvorgabe, und anhand derer die Überprüfung erfolgt.
  • Die Testergebnisse sollten bestätigen, dass die Uhr diese Anforderungen erfüllt. Falls nicht, werden so lange Überarbeitungen durchgeführt, bis sie diese erfüllt.

Beachten Sie, wie eine Uhr die Verifizierung bestehen, aber dennoch die Validierung nicht erfüllen kann. Wenn die Spezifikation ein längeres Schwimmen als fünfzehn Minuten definiert und Schwimmer in der Realität eine Stunde im Wasser bleiben, entspricht die Ausgabe des Designs zwar perfekt den Eingaben, aber der Benutzer scheitert trotzdem.

Vorteile der Designvalidierung und -verifizierung

Die folgenden Vorteile ergeben sich daraus, dass beide Aktivitäten kontinuierlich und nicht nur als abschließende Maßnahme durchgeführt werden.

  • Die Entwürfe können kontinuierlich überwacht werden, wodurch es möglich ist, die vom Benutzer definierten Anforderungen in jeder Phase zu erfüllen.
  • Die Validierung des Designs verdeutlicht den Unterschied zwischen der tatsächlichen Funktionsweise und der erwarteten Funktionsweise.
  • Durch die Dokumentation der Validierungsverfahren wird die Funktionalität später leicht verständlich, insbesondere bei Änderungen oder Erweiterungen.
  • Die Entwicklungszeit wird kontinuierlich verkürzt und die Produktivität verbessert sich, was dazu beiträgt, das Produkt wie erwartet zu liefern.
  • Der Prozess definiert den Umfang und die Reichweite jeder anzuwendenden Validierungsmethode.
  • Die Validierung kann anhand detaillierter Konstruktionsdaten erfolgen, die die Anforderungen des Endnutzers repräsentieren.
  • Jegliche Abweichung zwischen dem Ergebnis und den Benutzeranforderungen wird erfasst und geht nicht verloren.
  • Änderungen an einem validierten Design lösen eine erneute Validierung aus, sodass der Datensatz nie vom Produkt abweicht.
  • Die Dokumentation aller Aktivitäten während des Validierungsprozesses ist der einzige hinreichende Beweis dafür, dass das Design den Benutzeranforderungen entspricht.

Die Überprüfung und Validierung des Designs sollten daher am besten innerhalb des größeren Projekts geplant werden. Lebenszyklus von Softwaretests und gegenüber dem anderen abgebildet Arten von Softwaretests, anstatt als separate Compliance-Übung behandelt zu werden.

Häufig gestellte Fragen

Der absteigende linke Arm umfasst die Verifizierungsaktivitäten – Anforderungs-, Design- und Code-Reviews. Der aufsteigende rechte Arm umfasst die Validierungsaktivitäten, von Unit- und Integrationstests bis hin zu System- und Abnahmetests, wobei jede Ebene die ihr gegenüberliegende Spezifikation erfüllt.

Größtenteils, aber nicht strikt. Die Verifizierung stützt sich auf Reviews, Inspektionen und Walkthroughs, während die Validierung den Build ausführt. Die Verifizierung kann weiterhin ausgeführte Unit-Tests umfassen, daher sollte die Unterscheidung zwischen statischen und dynamischen Tests eher als Tendenz denn als Regel betrachtet werden.

IEEE 1012Der Standard für die Verifizierung und Validierung von Systemen, Software und Hardware bildet das Hauptrahmenwerk. Qualitätsmanagementnormen wie ISO 9001 fordern sowohl Design- als auch Entwicklungskontrollen, und regulierte Branchen ergänzen diese durch eigene Designkontrollregeln.

Die Verifizierung wird üblicherweise von Ingenieuren und Prüfern durchgeführt, die unabhängig von demjenigen sind, der das Design erstellt hat. Die Validierung hingegen bezieht Endnutzer oder deren Vertreter ein, da nur sie beurteilen können, ob das gelieferte Produkt den tatsächlichen Anforderungen entspricht.

KI-gestützte Tools kennzeichnen mehrdeutige oder nicht testbare Anforderungen während der Überprüfung und schlagen Folgendes vor: tracDie Verifizierungsmatrix stellt die Verbindungen zwischen Designvorgaben und Testfällen her und hebt Abdeckungslücken hervor. Die Genehmigungsentscheidung liegt weiterhin beim Prüfer, da die Nachweise stichhaltig sein müssen.

GitHub-Copilot Sie kann den Testcode entwerfen, der ein Verifizierungsverfahren implementiert, und unbekannte Module während einer Codeüberprüfung erläutern. Sie kann jedoch nicht selbst objektive Nachweise erbringen, weshalb die generierten Ergebnisse weiterhin überprüft und formell genehmigt werden müssen.

Die Validierung als reine Formalität nach bestandener Verifizierung zu behandeln, Designvorgaben zu formulieren, die nicht messbar sind, und … tracFunktionsfähigkeit bis zum Schluss. Jeder einzelne Datensatz sieht vollständig aus, hält aber weder einer Prüfung noch der Nutzung durch einen echten Benutzer stand.

Immer wenn die Änderung ein Benutzerbedürfnis oder die Bedingungen, unter denen das Produkt validiert wurde, beeinträchtigen könnte, bestimmt eine Folgenabschätzung den Umfang: Eine begrenzte Korrektur kann erforderlich sein Regressionstests Nur bei einem geänderten Arbeitsablauf muss die betroffene Validierung wiederholt werden.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: