Fehlerrobustheit (Error tolerance)

Ergonomische und wirtschaftliche Software muss eine Robustheit gegenüber Fehlern bei der Benutzung aufweisen (Error Tolerance).

Die Fehlerrobustheit betrifft sowohl die Zuverlässigkeit der Arbeitsergebnisse (Berechnungen) als auch der Zuverlässigkeit der Software selbst (Software-Stabilität).

Eine zu lange Zahl oder Zeichenkette oder Daten, welche in einem anderen Format erwartet wurden, können das Arbeitsergebnis unbrauchbar machen oder gar zum Programmabsturz führen.

Wird eine Zahl beispielsweise vom Typ Integer erwartet, ist das Eingabefeld auf die richtige maximale Länge zu begrenzen und zu prüfen, ob die Eingabedaten tatsächlich nur Zahlen (und nicht etwa Sonderzeichen oder Buchstaben) enthalten. Wird ein Datum erwartet, ist nicht nur die richtige Länge zu begrenzen, sondern auch ein (möglichst gängiges) Format zu definieren und auf Einhaltung zu prüfen.

Fehler können bei jeder Eingabe durch den Benutzer aus Unwissenheit, Unerfahrenheit, Missgeschick oder Unaufmerksamkeit erfolgen. Es gilt daher, dem Benutzer niemals zu vertrauen, sondern alle Eingaben auf Fehlerfreiheit zu überprüfen. Der Benutzer wird diese kritische Einstellung gegenüber seinen Eingaben mit Vertrauen in die Programmzuverlässigkeit würdigen.

Ein weiterer Aspekt ist die gezielte Ausnutzung eines Fehlers (SQL-Injection, gezielte Herbeiführung eines Buffer-Overflows für Exploits u.a.), welche durch Fehlerrobustheit so weit wie möglich erschwert werden soll.

Fehlerhafte Eingaben müssen korrigierbar sein. Trotz fehlerhafter Eingaben muss das beabsichtigte Arbeitsergebnis nur mit geringem oder besser gar keinem Korrekturaufwand (durch selbstständige Fehlerkorrektur) erreicht werden können.

Der Benutzer soll auf Fehler hingewiesen und zur Korrektur aufgefordert oder ihm diese empfohlen werden. Fehlermeldungen sowie Korrekturaufforderungen müssen verständlich, sachlich und konstruktiv formuliert und logisch, aber leicht nachvollziehbar strukturiert sein (abhängig von der Komplexität und vom zu erwartenden Kenntnisstand der Benutzer, können “logisch” und “nachvollziehbar” zwei gegensätzliche Adjektive sein!).

Eine selbstständige Fehlerkorrektur durch das System gilt als kritisch und sollte dem Benutzer angezeigt werden, so dass er die Korrektur bestätigen oder ggf. abändern kann.

Zur Fehlermeldung gehören Fehlererkennung, wo ein Fehler auftrat, warum er auftrat (Erklärung eines kausalen Zusammenhangs) sowie ggf. Empfehlungen zur zukünftigen Fehlervermeidung.

Durch sinnvolle Gestaltung der Mensch-Maschine-Schnittstelle (Fehlerprävention) durch sinnvolle Strukturierung, Benennung, Beschriftung und weiterführenden Informationen, soll das Auftreten von Fehlern bereits von vorne herein unwahrscheinlich werden. So sollte das richtige Format z. B. für ein Datum oder eine Telefonnummer vorgegeben werden (idealerweise mit Beispiel), bestenfalls aber kann der Benutzer sofort an Hand der Eingabefeldgestaltung das zu verwendende Format erkennen.

Bei der Software-Entwicklung ist ein systemeigenes Fehlermanagement zu überlegen. Ein solches Fehlermanagement soll negative Auswirkungen (z. B. Zeitverlust) von Fehlern begrenzen. Dazu gehört u.a. die Reversibilität von
Fehlern (z. B. mit UNDO-Funktionen zum rückgängig machen von Eingabeschritten). Je komplexer die Software wird, desto schwieriger sind allerdings i.d.R. auch der Entwurf und die Implementierung einer Reversibilität.

Schreibe einen Kommentar