Verifikation und Validierung
R 2.0.0
Beschreibung
Tester können beispielsweise verifizieren, ob die Software gemäß den Anforderungen in der Testbasis korrekterweise ein Skonto von 4% auf Artikel gewährt, die innerhalb von drei Tagen bezahlt werden. Sie können aber validieren, ob zu jedem Bezahlvorgang sichtbar ist, ob Skonto in Anspruch genommen wurde. Dass diese Information direkt ermittelbar ist, dass für die Anzeige beispielweise eine eigene Zeile auf einer Bildschirmseite existiert und dass eindeutig klar ist, dass es sich hier um ein Skonto und nicht um einen anderen Rabatt handelt, sind Erwartungen, die häufig nicht dokumentiert werden. Andererseits kann die Software unbrauchbar sein, wenn diese Informationen nicht sichtbar sind – der Wert für den Kunden ist dann gering, obwohl die Software korrekt rechnet.
Die Unit Tests von Drittanbietern können während der Entwicklung gewährleisten, dass die gelieferte Software entsprechend den Anforderungen funktioniert, aber nicht, ob die Software für ihren Zweck eingesetzt werden kann. Die Software kann im Hinblick auf die Anforderungen ohne Fehler geliefert werden, aber dass bedeutet nicht, dass die Software auch fachlich brauchbar sein muss. Lücken in den Anforderungen können zu einer funktionierenden aber dennoch unbrauchbaren Software führen. Diese Mängel werden bei Software, welche durch Drittanbieter entwickelt und getestet wurde, erst nach der Fertigstellung während des Abnahmetests durch den Benutzer gefunden. Also zu einem Zeitpunkt, wo fachliche Fehler i.d.R. nur mit sehr großen finanziellen Aufwand behoben werden können. Durch fachliche Zwischenprüfungen während der Entwicklungsphase kann gewährleistet werden, dass die Anforderungen nicht nur technisch, sondern auch fachlich korrekt umgesetzt worden sind.
V-Modell
In der unteren Hälfte des V-Modells bilden die Tests die Verifikation. Dazu gehören Modultests (Komponententest), Integrationstests und Systemtests. Hierbei wird geprüft, ob die technischen Anforderungen aus dem Pflichtenheft erfüllt werden.
Nach der Verifikation wird im oberen Teil des V-Modells die Validierung durchgeführt. Hier werden die Tests zu realen Ablaufbedingungen durchgeführt (Abnahmetests). Es wird dabei geprüft, ob das entwickelte System den fachlichen Anforderungen (Lastenheft) nachkommt. Denn es könnte vorkommen, dass zwar alle technischen Anforderungen erfüllt werden, sich aber trotzdem nicht der erhoffte Nutzen aus dem System ergibt.
In der agilen Software-Entwicklung kann der Ablauf der Verifikation und Validierung variieren. Es ist dabei eine Herausforderung den in Normen für sicherheitskritische Systeme verlangten Entwicklungsablauf nachzukommen und trotzdem den Verwaltungsaufwand (z.B. Dokumentation) gering zu halten. Daher wird bei der Entwicklung sicherheitskritischer Systeme oft noch auf das V-Modell zurückgegriffen, obwohl es in anderen Branchen von der agilen Software-Entwicklung bereits großflächig abgelöst wurde.
Verifikation
Die Verifikation wird oft bei dem Testen von Produkten eingesetzt. Das unterscheidet sie von der Validierung:
-
Bei der Verifikation wird geprüft, ob ein Produkt die zuvor festgelegten Spezifikationen erfüllt.
-
Dabei sollen die im Pflichtenheft festgelegten Funktionalitäten vorhanden und implementiert sein.
-
Dadurch kann überprüft werden, ob die zuvor festgelegten Ziele des Produktes mit den tatsächlich erreichten Zielen übereinstimmen.
-
Der Sinn dahinter ist das frühzeitige Erkennen von Fehlern und Problemen, die in einem Entwicklungsprozess entstehen können. Dadurch können unnötige Kosten reduziert werden.
-
Um eine Verifikation durchzuführen, müssen geeignete Prüfverfahren herangezogen werden.
-
Die Verifikation bringt jedoch keine Sicherheit für Fehler, die schon in der Spezifikation vorhanden waren.
Verifikation wird häufig mit Testen gleichgesetzt. Dem ist für sicherheitskritische Systeme nicht so, Tests sind nur ein kleiner Teil der Verifikation.
Video: Was ist eigentlich eine Verifizierung und Validierung? (Länge 03:20)
Der größte Teil der Verifikation besteht aus Reviews.
-
Reviews: Alle Artefakte müssen vor ihrer Freigabe durch eine Review verifiziert werden, häufig sogar durch einen Reviewer mit genau definierter Unabhängigkeit vom Projektteam, sogar von der Organisation. Teilweise finden sogar mehrere Reviews statt, wenn noch ein Qualitätssicherungs-Review oder ein Review gegenüber dem Standard verlangt wird.
-
Checklisten: Zu jedem Artefakt gibt es im Normalfall eine Checkliste. Ohne Evidenz der durchgeführten Review werden diese als nicht durchgeführt betrachtet, daher müssen alle ausgefüllten Checklisten als Review-Resultate abgelegt werden.
-
Tests: Es gibt Testspezifikationen, Testinstruktionen, vielleicht auch Testcode und natürlich auch hier Evidenz aller Testresultate, d.h. alle Resultate müssen dokumentiert sein. Die Tests müssen Anforderungs-basiert sein, unter anderem darf es keinen Test ohne zugehörige Anforderung geben.
-
Code-Coverage Analyse: Für die Software müssen die Tests sicherstellen, dass aller Code durch die Tests abgedeckt wird, eingeschlossen, dass alle Verzweigungen durchlaufen werden. Man beachte, dass es Coverage-Analyse heißt: Coverage (Abdeckung) ist kein Test an sich, sondern nur eine Analyse, ob die Tests gewisse minimale Qualitätskriterien erfüllen. Coverage kann mit Werkzeugen zur dynamischen Codeanalyse nachgewiesen werden.
Vorteile des Verifikationstests
-
Häufige und frühzeitige Überprüfung reduziert das Risiko von Softwarefehlern und hilft bei der Minimierung von Fehlern und Bugs das kann sich später zeigen.
-
Stakeholder, Produktmanager und Entwickler erhalten mehr Einblicke in die Softwareanwendung, indem sie die Codes in jeder Phase überprüfen. Auf diese Weise können sie vorhersagen, wie sich die Software in späteren Phasen verhalten wird.
-
Die Verifizierung der Software trägt dazu bei, dass Ihre Software in jeder Phase der Entwicklungsphase an den Geschäfts- und Kundenanforderungen ausgerichtet bleibt. Dies hilft Entwicklern, weniger unnötige Arbeit zu leisten, während die Entwicklung fortgesetzt wird.
-
Da nicht alle Fehler vollständig eliminiert werden können, hilft die Überprüfung der QS dabei, die Probleme einzuschätzen, die später auftreten könnten.
-
Es reduziert die Kosten für Nacharbeit und erneute Auslieferung.
-
Bei der Verifikation ist die Wahrscheinlichkeit von Systemausfällen nach der Entwicklungsphase geringer.
Validierung
Die Validierung folgt auf die Verifikation. Ist die Verifikation abgeschlossen, kann mit der Validierung begonnen werden.
-
Die Validierung prüft, ob der Nutzer eines entwickelten Produkts auch wirklich das erreichen kann, was vom Produkt gefordert wird.
-
Dies geschieht meist im Rahmen eines sogenannten Feldversuchs. Dabei setzen sich reale spätere Nutzer mit dem Produkt auseinander.
-
Zum einen soll der Nutzer das Produkt hinsichtlich der Zielerreichung prüfen und zum anderen soll der Nutzer das Produkt einfach und unter den verschiedensten Rahmenbedingungen nutzen können.
-
Beispiel: Ein Wagenheber wird während der Verifikation darauf getestet, ob er für mindestens zwei Stunden ein Gewicht von 2000 kg anheben kann. Ist dies erfolgreich verlaufen, so wird im Rahmen der Validierung überprüft, ob der Wagenheber mit der Hubkraft von 2000 kg tatsächlich ein Fahrzeug anheben kann und ob der Nutzer den Wagenheber intuitiv bedienen kann.
Schritte bei der Validierung
Validierungsprozesse umfassen die folgenden Schritte:
-
Designprüfung: Das Softwaretestteam skizziert die Anforderungen der Kunden. Später erstellen sie einen Testplan, um jedes Element in der Software zu bestätigen, bevor sie in die Produktion gehen. Entwicklungsteams erhalten eine Genehmigung bezüglich der Bereitschaft des Produkts.
-
Installationsüberprüfung: Das Softwaretestteam versucht, die Softwareanwendung gemäß dem Testplan zu installieren. Der Zweck besteht darin, sicherzustellen, dass der Installationsprozess und die wesentliche Systemhardware den Spezifikationen entsprechen. Außerdem bestätigen Tester den Status der Softwarefunktionen.
-
Betriebsüberprüfung: Softwaretester unterziehen die Anwendung verschiedenen Testszenarien, um ihre Vollständigkeit zu überprüfen. Ziel ist es, alle Vorgänge oder Funktionen zu überprüfen, um festzustellen, ob die Software wie vom Kunden gewünscht funktioniert.
-
Leistungsbeurteilung: Sie zeigt, dass die Softwareanwendung unter realen Bedingungen gemäß den Geschäftsanforderungen funktionieren kann. Kunden können auch Betatests durchführen, um ein Gefühl zu bekommen und zu wissen, ob es richtig entwickelt wurde.
-
Überprüfung der Produktionsreife: Sobald alle Überprüfungen abgeschlossen sind, ist der Validierungsprozess abgeschlossen und das Produkt wird produktionsbereit gemacht. Das bedeutet, dass das Team mit der Freigabe der Anwendung für die Produktionsumgebung fortfahren kann.
Vorteile der Validierung beim Softwaretesten
-
Alle Mängel oder Fehler, die während der Verifizierungsphasen übersehen wurden, können leicht erkannt werden, während alle Validierungstests ausgeführt werden.
-
Sind Spezifikationen unzureichend oder von vornherein nicht korrekt, offenbart die Validierung deren Unwirksamkeit. Dadurch wird verhindert, dass die schlechte Softwareanwendung auf den Markt kommt.
-
Validierungstests bestätigen, dass die Softwareanwendung den Geschäfts- oder Kundenanforderungen, -erwartungen und -präferenzen unter einer Vielzahl von Bedingungen entspricht, wie z. B. schwacher Akku, langsame Konnektivität und mehr.
-
Diese Tests ermöglichen es der Software, über verschiedene Browser-Gerät-OS-Kombinationen hinweg zu funktionieren. Das bedeutet, dass die Validierung Software für Cross-Browser-Kompatibilität authentifiziert.
-
Die Validierung hilft, die Zuverlässigkeit der Softwareanwendung zu verbessern.
Quellen
-
ISTQB Glossary Verifizierung, abgerufen 22.02.2024
-
ISTQB Glossary Validierung, abgerufen 19.08.2024
-
Chip, Verifizierung und Validierung der Unterschied, abgerufen 22.02.2024
-
YouTube Imbus AG, Was ist Verifizierung und Validierung? Die imbus Softwaretest Glossarvideos erklären., abgerufen 22.02.2024
-
A. Albers, M. Behrendt, S. Klingler, K. Matros, Verifikation und Validierung im Produktentstehungsprozess, abgerufen 22.02.2024
-
Abb. 1: ReliaTec GmbH, Verifikation und Validierung, abgerufen 22.02.2024
-
Geekflare, Verifikation und Validierung Kennen Sie die Grundlagen, abgerufen 22.02.2024
-
A. Spillner, T. Linz - Basiswissen Softwaretest, 7. Auflage, 2024
-
Softwaretesten nach ISTQB für dummies; M. Schlich; 2019; S.32