Test und Validierung der Eingabedaten

Validierung

Validierungsfunktion prüfen, ob Informationen richtig eingegeben wurden. Sie kennen sicherlich diese nervigen Hinweise der Websites à la „Sie müssen Ihr Geburtsdatum angeben!“. Auch wenn es für den Anwendern häufig nervig erscheint, spart gute Datenvalidierung im späteren Arbeitsablauf Zeit und damit Geld. Dieser Artikel wirbt dafür, in Projekten Zeit für die Umsetzung guter

„Datenvalidierung in der Softwaretechnik bezeichnet die Prüfung von beispielsweise Benutzereingaben. Weil fehlende oder unbrauchbare Eingaben zu schwerwiegenden Fehlern innerhalb eines Programms führen können, sollten diese Werte vor einer Übernahme in ein Programm validiert werden.“ (Quelle: Wikipedia)

Validierung findet in Softwareprodukten auf mehreren Ebenen statt:

  • Validierung von Feldeingaben („Der eingegebene Wert ‚13.13.2016‘ ist kein gültiges Datum.“): Mit Prüfungen von Feldwerten wird verhindert, dass ein Datenwert im weiteren Verlauf der Software nicht interpretierbar ist.
  • Validierung auf Datensatzebene („Der Urlaubsbeginn muss früher als das Urlaubsende sein.“): Datensatzprüfungen stellen sicher, dass die eingegebenen Werte eines Datensatzes zueinander konsistent sind. Sie beziehen allerdings keine weiteren Datensätze in die Prüfung mit ein.
  • Validierung auf Tabellen/Datensatzgruppen („Am Tag ‚13.12.2016‘ ist der Dienstwagen bereits reserviert.“): Durch Tabellenprüfungen kann verhindert werden, dass Datensätze gleicher Art (hier: Reservierungen) sich widersprechen oder falsch ergänzen.
  • Validierungen des Domänenkontextes („Am Tag ‚13.12.2016‘ kann der Dienstwagen nicht reserviert werden, da der Leasingvertrag dort bereits beendet ist.“): Diese komplexeren Prüfungen bringen Teile des Geschäftsprozesses miteinander in Verbindung, die für Anwender evtl. verständlich, aber innerhalb einer Software nicht leicht in Zusammenhang zu bringen sind, da Daten in unterschiedlichen Masken angezeigt werden oder einzelne Datensätze aus großen Mengen nicht zu erkennen sind.

Es steckt also großes Potential in den Domänenvalidierungen. Inhaltliche Zusammenhänge der Fragestellung lassen sich prüfen und damit Fehler vermeiden. Allerdings ist es nicht einfach, die richtigen Stellen für solche Prüfungen zu erkennen. Der offensichtliche Weg ist, in Gesprächen mit Anwendern und Entwicklern mögliche Eingabe-Fehlerquellen zu suchen. Ist eine Softwarefunktion komplex, benötigt viele Daten oder ist Anwendern schwierig zu vermitteln? Dann könnte das ein guter Kandidat für Prüfungen sind. Grübeln Sie, welche Fehler gemacht werden (können) – und formalisieren Sie sie. Die Prüffunktionen, die dabei entstehen, werden einigen Mitarbeitern viel Zeit sparen: den Testern, den Testanwendern und später im Betrieb natürlich allen Anwendern. Nutzen Sie Test- und Einführungsphasen, um weiteren Bedarf nach Prüfungen zu erkennen. Immer, wenn ein Fehler auftritt, der auf falsche Daten zurückzuführen ist: Kann dieser Fehler durch automatisierte Prüfroutinen sicher erkannt werden?

Häufig ist es hierbei hilfreich, zwischen Fehlern und Warnungen zu unterschieden. Fehler sollten als „Ohne Korrektur ist keine Berechnung sinnvoll!“ und Warnungen als „Es könnte ein Fehler vorliegen, aber dieser Zusammenhang kann gewünscht sein.“ verwendet werden. Warnungen sollten ausgeblendet werden können und den weiteren Prozess nicht behindern, falls der Umstand gewünscht ist.

Beispiele für Prüfungen im Bereich der Netzwerkplanung:

  • Ermöglicht die Netzwerkstruktur, dass jeder Markt mit den dort nachgefragten Produkten beliefert werden kann?
  • Kann jede Linie (jeder Produktionsort) die Produkte herstellen, die Nachfolger (z.B. Märkte oder andere Produktionsorte) benötigen?
  • Ist für jedes Produkt definiert, welche Bauteile verwendet werden sollen?
  • Kann jedes Bauteil, das an einem Produktionsort benötigt wird, zugeliefert werden?
  • Ist die ermittelte Produktionskapazität an einem Produktionsort über einen längeren Zeitraum gleich null? (Kurze Zeitabschnitte ohne Produktionskapazität können z.B. durch Umbau, Betriebsferien o.ä.. vorkommen.)

Warnungen können z.B. folgende Prüfungen sein:

  • Ein Produktionsort liefert nur an einen einzigen Markt/Abnehmer.
  • Ein Produkt kann nur an einem Produktionsort hergestellt werden.
  • Das Gewicht eines Bauteils ist um den Faktor 1000 größer als das aller anderen Produkte (Der Fehler „mal 1000“ schleicht sich gerne ein, wenn im Umfeld der Software Werte mit Tausendertrennzeichen verwendet werden.)

Ist die Fehlerquelle erkannt und bereits eine Prüfroutine konzipiert, ist ein Weg zur Korrektur einfach. Diese kann durch Algorithmen automatisiert ablaufen oder die Ansicht öffnen, in der die Korrektur vorgenommen werden muss.

Zum Abschluss…

…eine Liste mit Punkten, anhand derer Sie prüfen können, ob eine Software Ihren Erwartungen zur Fehlerprüfung und -vermeidung entspricht:

  • Werden Fehlerprüfungen auf Feldebene durchgeführt und die Prüfungsergebnisse sichtbar gemacht, ohne den Arbeitsprozess zu unterbrechen (z.B. Zelle rot hinterlegt, aber Verlassen der Zelle nicht verhindert)?
  • Sind Fehlerprüfungen auf Tabellenebene möglich und werden verständliche, d.h. individuelle Erklärungstexte angezeigt?
  • Kann eine Prüfung komplexer, domänen-spezifischer Zusammenhänge durchgeführt werden?
  • Können Prüfergebnisse
    • so angezeigt werden, dass sie den Korrekturprozess unterstützen (z.B. in einem Bereich des Fensters)?
    • ausgeblendet werden, wenn z.B. Warnungen nicht zutreffen?
    • direkt zu dem relevanten Datensatz führen?
    • Funktionsaufrufe enthalten, die eine automatische oder teilweise automatische Korrektur durchführen?

Nutzen Sie die Möglichkeiten, die Datenvalidierungen bieten – OPTANO kann sie dabei unterstützen!

Sie haben Anregungen, Fragen, Kommentare? Ihnen fehlt ein Gedanke in diesem Artikel oder Sie haben einen Vorschlag, wie wir OPTANO besser machen können? Ich freue mich auf Ihre Nachricht!