Wie tolerant muss Software mit Fehlern umgehen?

Fehlertoleranz: Frau schaut erschrocken auf ihr NotebookWir haben bestimmt alle schon einmal eine Mail abgeschickt oder bekommen obwohl sie eigentlich noch gar nicht fertig war, bzw. der Anhang fehlte. Diesen Fehler kann man nur schwer verhindern. Hier trifft der Spruch zu „ERRARE HUMANUM EST“ („Irren ist Menschlich“). Der Volksmund sagt weiter „und vergeben ist göttlich“. Was aber ist mit Software? Vergibt sie auch den ein oder anderen Fehler? Wie tolerant muss Software sein? Was versteht man unter Fehlertoleranz bei Software und Webportalen?

Die Norm

In der DIN EN ISO 9241:110 steht: „Ein Dialog ist fehlertolerant, wenn das beabsichtigte Arbeitsergebnis trotz erkennbar fehlerhafter Eingaben entweder mit keinem oder mit minimalem Korrekturaufwand durch den Benutzer erreicht werden kann.“

Wie muss die Norm interpretiert werden?

Woher soll ein System wissen was der Benutzer beabsichtigt? Die Gedanken und Wünsche des Anwenders erraten? Wie sollte man sonst „das beabsichtigte Arbeitsergebnis trotz erkennbar fehlerhafter Eingaben […] mit keinem […] Korrekturaufwand durch den Benutzer“ erreichen deuten?

Hier ein kleines Beispiel: Ihr Nachbar hat so von seiner Italienrundreise geschwärmt, dass sie beschlossen haben dort selbst einmal Urlaub zu machen. Um mehr über die Ziele der Reise zu erfahren geben sie „Iskia“ in einer Suchmaschine ein. Als Ergebnis bekommen sie u.a. auch die Insel „Ischia“ in Italien angezeigt. Die Suchmaschine hat also „erraten“ was sie meinten und ihren Fehler „mit keinem Korrekturaufwand“ für sie behoben.

Das wird leider nicht in jedem Fall gelingen, weil Software nicht raten kann, sondern auf bekannte Daten und implementierte Algorithmen zu deren Interpretation angewiesen ist. Der Norm- Zusatz „mit minimalen Korrekturaufwand durch den Benutzer“ stellt daher die Anforderung an das System, unsere Fehler zu erkennen und uns bei deren Behebung so zu unterstützen, dass wir nur wenig tun müssen.

Auch hier ein Beispiel: Beim Ausfüllen eines Formulars geben wir ein, was unserer Meinung nach richtig und wichtig ist. Wir schicken das Formular ab und bekommen eine Fehlermeldung. Ein „fehlertolerantes“ Formular würde jetzt in das falsch ausgefüllte Feld springen und es farbig unterlegen. Eine weitere Unterstützungsstufe wäre, wenn wir gleich auf alle gefundenen Eingabefehler hingewiesen werden und einfach von Lösung zu Lösung navigieren können. „Intolerante“ Formulare zeigen uns nur eine Fehlermeldung ganz oben und lassen uns die fehlerhafte Stelle mühsam suchen. „Zur Strafe“ schicken uns solche Formulare dann noch in – scheinbar endlose – Schleifen, in denen wir immer wieder mit einer neuen Meldung und einem neuen Korrekturversuch konfrontiert werden. Nur wer gute Nerven mitbringt, wird so „das beabsichtigte Arbeitsergebnis“ erreichen.

Welche Fehler sollten vermieden werden?

Sorgfältige Entwicklung und angemessene Vertrautheit der Entwickler mit der zukünftigen Anwendungssituation sollten Systeme produzieren, die vermeidbare Fehler auch wirklich vermeidet. Hier einige Beispiele:

  • Fehlerhafte Eingabe (sind nur Buchstaben erlaubt, könnte bereits bei der Eingabe einer Ziffer eine entsprechende Meldung erfolgen, bzw. kann die Eingabe unterbunden werden)
  • Eingabefelder mit einem festen Bereich an gültigen Werten (z.B. Datum) können durch pull-down Menüs ersetzt werden
  • Information über das gewünschte Eingabeformat können als Hilfe angezeigt werden (Beispiel Telefonnummer: +49(0)12345678 oder 0123 / 45678 oder 012345678)
  • Tippfehler können auf der Basis von „Erfahrungswerten“ korrigiert werden (siehe Suchmaschinenbeispiel)
  • Funktionale Fehler, z.B. falsche Konsistenzprüfungen, die den Anwender zu sinnlosen Korrekturversuchen zwingen, können durch Tests vorab identifiziert und dann vor der Freigabe behoben werden (leider wird dies oft als lästig empfunden und aufgrund von Zeit- und Kostendruck vernachlässigt)

Welche Fehler bekannt sein sollten, aber nicht vermieden werden können?

Nicht alle möglichen Anwenderfehler lassen sich vermeiden. Der Entwickler sollte diese jedoch berücksichtigen und versuchen einfache Korrekturmöglichkeiten anzubieten. Auch hier einige Beispiele:

  • Unvollständige / fehlerhafte Eingabe
    • die Software sollte zu dem Feld springen das übersehen oder falsch ausgefüllt wurde
    • fehlerhafte Felder sollten farbig unterlegt werden
    • alle fehlerhaften Felder werden mit entsprechender Information über den Fehler angezeigt
  • Tippfehler
    • bei mehreren Eingaben sollte in der Fehlermeldung genau stehen welche Eingabe falsch war
    • das System könnte den Anwender über mögliche Fehlerquellen informieren (z.B. wenn Capslock gedrückt wurde)
    • der Benutzer sollte nur die fehlerhaften Eingaben korrigieren müssen, ohne alle anderen Eingaben wiederholen zu müssen

Wie geht man nicht vorhersehbaren Fehlern um?

Nicht alle Fehler können durch entsprechende Tests identifiziert und behoben werden, wie beispielsweise

  • Probleme die nur in einer bestimmten Browserversion auftreten (auch wenn man sehr gründlich testet dürfte es unmöglich sein alle Browser in allen Versionen durchtesten)
  • Probleme mit eingesetzter Software (Kompatibilitätsprobleme mit neueren Versionen, die zum Testzeitpunkt noch nicht freigegeben waren)
  • Treiberprobleme (Probleme mit Hard- und Softwaretreibern, da es auch hier jeden Test sprengen dürfte alle Varianten durchzutesten)

In diesen Fällen sollte der Anbieter auf bekannte Einschränkungen (z.B. bestimmte Voraussetzungen bzgl. Betriebssystem und Browser) hinweisen werden und die Software selbst sollte auf fehlende oder inkompatible Umgebungen mit Fehlermeldungen reagieren, die den Zielanwender in die Lage versetzen, auch hier „mit minimalem Aufwand“ reagieren zu können.

Bereits eingegebene Daten sollten erhalten bleiben und ein späteres Wiederaufsetzen sollte unterstützt werden. Der Anwender sollte auch die Möglichkeit haben den Fehler zu melden, so dass dieser analysiert und in einer späteren Version korrigiert werden kann.

Wann und wie sollte man Fehlertoleranz von Software überprüfen?

Die Entwickler sollten die Arbeitsweise der zukünftigen Benutzer genau kennen um das System so zu gestalten, dass mögliche Anwenderfehler von vornherein vermieden werden, bzw. unvermeidbare Fehler möglichst einfach durch den Anwender korrigiert werden können. Bei der Identifikation der möglichen Fehlerquellen können ihnen erfahrene Usability Experten bereits in der Entwicklungsphase helfen.

Anschließend kann das System u.a. durch funktionale und Usability Tests auf „Herz und Nieren“ untersucht werden.

Fazit

Wir alle machen Fehler – aus Versehen oder Unwissen. Weil wir selbst die Fehler anderer tolerieren, dürfen wir auch Toleranz von unserer Umgebung erwarten, d.h. auch von Software, bzw. Internetauftritten. Das Ziel sollte es sein, dass das System auf den Benutzer eingeht, ihn leitet und bei seiner Aufgabe unterstützt. Vermeidbare Fehler sollten bereits während der Entwicklung vermieden werden und unvermeidbare so behandelt werden, dass sie möglichst einfach korrigiert werden können ohne dem Benutzer das Gefühl der Unzulänglichkeit, bzw. Dummheit zu geben. Mit einer entsprechenden Fehlertoleranz des Systems wird der Anwender dies sicher gerne wieder benutzen und weiterempfehlen.

 

Nie wieder einen Blogartikel verpassen >>> Zum Blog-Newsletter anmelden

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

zehn − sechs =