Validierung (Informatik)

Validierung in der Informatik und Softwaretechnik ist die dokumentierte Beweisführung, dass ein System die Anforderungen in der Praxis erfüllt.

Inhaltsverzeichnis

Validierung als Plausibilitätsprüfung

In der Softwaretechnik bezeichnet Validierung (auch Plausibilisierung, als Test auf Plausibilität, oder engl. Sanity Check genannt) die Kontrolle eines konkreten Wertes darauf, ob er zu einem bestimmten Datentyp gehört oder in einem vorgegebenen Wertebereich oder einer vorgegebenen Wertemenge liegt. Die meisten Programmfehler und Sicherheitsprobleme sind auf fehlende Plausibilisierung von Eingabewerten zurückzuführen.

Für die Validierung gilt die goldene Regel: never trust the user (traue niemals dem Benutzer) (auch: Never trust a user input) - wobei der „Benutzer“ auch ein Programmierer sein kann, der die fraglichen Funktionen und Module verwendet. Die Validierung von Werten kann und soll also an verschiedenen Punkten der Lebenszeit einer Software stattfinden:

  • Im Entwicklungsprozess: Während das Programm entsteht, sollten regelmäßig die einzelnen Funktionen und Module so genannten Unit-Tests unterzogen werden, die den Quellcode flächendeckend (Code Coverage Analysis) auf korrektes Verhalten überprüfen .
  • Bei der Übersetzung des Programmes: Einige Arten der Validierung können bereits von dem Compiler vorgenommen werden, insbesondere die Typprüfung.
  • Durch die Laufzeitumgebung: Viele Programmiersprachen haben ein Laufzeitsystem, das bestimmte Arten von Fehlern selbständig erkennt; insbesondere der Zugriff auf nicht vorhandene Objekte wird von vielen modernen Systemen erkannt.
  • Zur Laufzeit: Alle Funktionen und Module sollten defensiv umgesetzt sein, sich also nicht darauf verlassen, dass sie korrekt verwendet werden. Das heißt sie sollten, wenn sie mit falschen Parametern verwendet werden, sofort einen Fehler melden statt komplizierte Folgefehler zu riskieren (es gilt die Faustregel: fail fast - schneller Abbruch). Hierfür eignet sich vor allem das Konzept der Ausnahmebehandlung. Bei falschen Parameterwerten, die nach Ansicht des Programmieres "eigentlich nie vorkommen dürfen", kommen Assertions zum Einsatz.
  • Bei Benutzereingaben: hier gilt der Grundsatz was sich überprüfen lässt, wird auch überprüft. Bei ungültigen Eingaben wird die Fehlerbehandlung gestartet, eine Fehlermeldung ausgegeben und die Verarbeitung abgelehnt. Bei zweifelhaften Eingaben kann eine Warnung, d. h. eine Bitte um Überprüfung durch den Anwender ausgegeben werden.

Einsatzgebiete

  • Die Eingaben von Online-Formularen sollten grundsätzlich validiert werden, um Sicherheitsrisiken auszuschließen.
  • Bei XML-Daten werden Elemente gegenüber einem Schema überprüft. Schlägt diese Überprüfung fehl, gelten die XML-Daten als nicht valide (well-formed).

Validierung in der Softwarequalitätssicherung

Im Bereich der Softwarequalitätssicherung wird unter Validierung (Validation) die Prüfung der Eignung beziehungsweise der Wert einer Software bezogen auf ihren Einsatzzweck verstanden. Die Eignungsprüfung erfolgt auf Grundlage vorher aufgestellten Anforderungsprofils und kann sowohl technisch als auch personell geschehen.

Umgangssprachlich formuliert wird die Frage "Wird das richtige Produkt entwickelt?" beantwortet. (Lit.: Balzert S. 101) Es wird also die Effektivität der Entwicklung sichergestellt.

Im Zusammenhang mit dem V-Modell wird die Validierung der Anforderungsdefinition bzw. dem Abnahmetest zugeordnet. Insofern ist unter der Validierung die Überprüfung der Eignung der Anforderungsdefinition mit den ursprünglichen Zielen des Kunden zu verstehen. Methoden der Validierung umfassen:

  • Reviews mit dem Kunden zur Aufdeckung von Unklarheiten und irrtümlichen Annahmen
  • Prototyping von Benutzeroberflächen als Kommunikationsgrundlage mit dem Anwender
  • Inkrementelle Entwicklung für schnelles Kundenfeedback

In agilen Entwicklungsprozessen wie XP wird Validierung durch die

sichergestellt.

Beispiel für das Validieren von Benutzereingaben in PHP

Werden Eingaben eines Benutzers nicht validiert, kann es im weiteren Programmverlauf zu Fehlern kommen. Hier ein Beispiel für eine PHP-Skript, welches Formulardaten via HTTP-POST empfängt und die erste Zahl durch die zweite dividiert:

$zahl1 = $_POST['zahl1'];
$zahl2 = $_POST['zahl2'];
echo $zahl1 / $zahl2;

Hier hat der Entwickler einige Fehlerquellen nicht bedacht:

  • Es kommt zu einem unerwarteten Ergebnis, wenn der Benutzer eines der beiden Textfelder nicht ausgefüllt hat
  • Ebenso darf der Benutzer nur Zahlen in das Textfeld einfügen, da PHP aufgrund seiner dynamischen Typisierung den String womöglich falsch interpretiert
  • Beträgt der Wert in zahl2 '0', schlägt die Division fehl (Teilen durch 0 nicht möglich)

Unter Aspekten der Prüfung müssen diese Punkte also ausgeschlossen werden, um ein fehlerfreies Arbeiten zu ermöglichen:

if(isset($_POST['zahl1']) && isset($_POST['zahl2'])) { // Sind überhaupt beide Textfelder ausgefüllt?
    $zahl1 = $_POST['zahl1'];
    $zahl2 = $_POST['zahl2'];
 
    if(is_numeric($zahl1) && is_numeric($zahl2)) { // Sind beide Angaben numerisch?
        if($zahl2 != 0) {  // Ist zahl2 ungleich 0 ?
            echo $zahl1 / $zahl2;
        } else {
            echo 'Teilen durch 0 unmöglich!';
        }
    } else {
        echo 'Beide Felder dürfen nur Zahlen enthalten';
    }
} else {
    echo 'Bitte füllen Sie beide Textfelder aus';
}

Abgrenzung zur Verifikation

Verifikation als Beweis der Korrektheit

Im Gegensatz zur Validierung bezeichnet die Verifikation in der Softwaretechnik den Nachweis, dass ein Softwareartefakt (Methode, Klasse, Modul, …) die korrekten Ergebnisse liefert. Wurde ein Softwareartefakt verifiziert, so ist sichergestellt, dass es korrekt funktioniert, d. h. das spezifizierte Verhalten aufweist.

Verifikation in der Softwarequalitätssicherung

In der Verifikation wird dagegen überprüft, ob ein System seiner formalen Spezifikation genügt. Die umgangssprachliche Formulierung lautet: "Bauen wir das Produkt richtig?". Es ist durchaus denkbar, dass eine Software ihre Spezifikation erfüllt, jedoch für den Kunden nur geringen Nutzen hat.

Methoden zur Verifikation umfassen:

Literatur

  • H. Balzert: Lehrbuch der Software-Technik. Bd.2. Software-Management, Software-Qualitätssicherung, Unternehmensmodellierung. Spektrum Akademischer Verlag, Heidelberg 1998. ISBN 3-8274-0065-1

Weblinks

Siehe auch


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Validierung — oder Validation (von lateinisch validus: stark, wirksam, gesund) bezeichnet: Validität, das argumentative Gewicht einer wiss. Aussage, Untersuchung, Theorie oder Prämisse Validierung (Chipentwurf), Phase beim Chipentwurf Validierung (GRI),… …   Deutsch Wikipedia

  • Validierung (Statistik) — Validierung oder Validation bezeichnen sowohl in der Statistik als auch in der Informatik eine Prüfung der Gültigkeit. Gegenstände derselben können sein Werte: Diese Prüfung nennt man in Statistik und Informatik Prüfung auf Plausibilität Tests:… …   Deutsch Wikipedia

  • Test (Informatik) — Ein Softwaretest ist ein Test während der Softwareentwicklung, um die Funktionalität einer Software an den Anforderungen und ihre Qualität zu messen, und Softwarefehler zu ermitteln. Inhaltsverzeichnis 1 Definition 2 Ziele 3 Testplanung …   Deutsch Wikipedia

  • Klassifikator (Informatik) — Ein Klassifikator (Informatik) ist ein Algorithmus, der Objekte (z.B. Dokumente) anhand ihrer Merkmale in vorgegebene Kategorien einordnet. Der Begriff Klassifikator wird meist spezifisch für solche Algorithmen verwendet, in denen der… …   Deutsch Wikipedia

  • Vector Informatik — Vector Gruppe Rechtsform Muttergesellschaft:GmbH Gründung 1. April 1988 Sitz …   Deutsch Wikipedia

  • Korrektheit (Informatik) — Unter Korrektheit versteht man in der Informatik die Eigenschaft eines Computerprogramms, einer Spezifikation zu genügen (siehe auch Verifikation). Spezialgebiete der Informatik, die sich mit dieser Eigenschaft befassen, sind die Formale Semantik …   Deutsch Wikipedia

  • Validation — Validierung oder Validation (von lat. validus: stark, wirksam, gesund) ist die Prüfung einer These, eines Plans oder Lösungsansatzes in Bezug auf das zu lösende Problem, die mit der Verifizierung, Falsifizierung oder unklar endet. Validierung ist …   Deutsch Wikipedia

  • Validieren — Validierung oder Validation (von lat. validus: stark, wirksam, gesund) ist die Prüfung einer These, eines Plans oder Lösungsansatzes in Bezug auf das zu lösende Problem, die mit der Verifizierung, Falsifizierung oder unklar endet. Validierung ist …   Deutsch Wikipedia

  • Validiert — Validierung oder Validation (von lat. validus: stark, wirksam, gesund) ist die Prüfung einer These, eines Plans oder Lösungsansatzes in Bezug auf das zu lösende Problem, die mit der Verifizierung, Falsifizierung oder unklar endet. Validierung ist …   Deutsch Wikipedia

  • Beglaubigen — Verifizierung oder Verifikation (von lat. veritas, Wahrheit und facere, machen) ist der Nachweis, dass ein vermuteter oder behaupteter Sachverhalt wahr ist. Der Begriff wird unterschiedlich gebraucht, je nachdem, ob man sich bei der… …   Deutsch Wikipedia


Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.