Was ist Fehlereinpflanzung?
Fehlereinpflanzung bezeichnet den bewussten und kontrollierten Prozess des Hinzufügens von bekannten Fehlerzuständen zu einer Komponente oder einem System, um bestimmte Aspekte des Testprozesses zu überprüfen. Ziel der Fehlereinpflanzung ist es, eine Grundlage für die Schätzung der verbleibenden Fehler im System zu bieten und die Fähigkeit des Testprozesses zu prüfen, diese Fehler zu erkennen. Zudem kann sie verwendet werden, um die Korrektheit und Vollständigkeit der Fehlermeldungen und des Fehlerbehandlungsmechanismus zu testen.
Merkmale der Fehlereinpflanzung:
- Gezielte Fehler: Es werden gezielt bekannte Fehler in das System eingefügt, die dann während des Tests aufgedeckt werden müssen. Diese Fehler sind dem Tester im Vorfeld bekannt, was eine Kontrolle darüber ermöglicht, welche Fehler im System vorhanden sind.
- Schätzung verbleibender Fehler: Durch das Hinzufügen von Fehlern und die Analyse, wie viele dieser Fehler während des Tests entdeckt werden, kann eine Schätzung über die Fehlerabdeckung und die Fehlerdichte im System gemacht werden.
- Test der Fehlermeldungen: Fehlereinpflanzung kann auch dazu verwendet werden, zu überprüfen, ob das System die richtigen Fehlermeldungen generiert und ob die Fehlerbehandlung korrekt funktioniert.
- Bewertung der Testeffektivität: Sie hilft, die Effektivität des Testprozesses zu bewerten, indem überprüft wird, wie gut der Test Fehler erkennen kann, die absichtlich eingebaut wurden.
Beispiel für Fehlereinpflanzung:
Ein Entwickler fügt absichtlich einen Speicherüberlauffehler in einem Teil des Codes ein, der die Verwaltung von Benutzerdaten betrifft. Der Testplan für diese Funktion sieht vor, dass der Fehler während des Tests entdeckt wird. Wenn der Test erfolgreich ist, wird der Fehler erkannt und die Fehlermeldung ausgegeben. Das Testerteam kann dann abschätzen, wie gut ihre Tests in der Lage sind, diesen Fehler zu erkennen und auf ähnliche Probleme zu reagieren.
Ziele der Fehlereinpflanzung:
- Fehlererkennungsrate messen: Durch das gezielte Einfügen von Fehlern und das Überprüfen, wie viele dieser Fehler während der Tests erkannt werden, lässt sich die Fehlererkennungsrate des Systems und des Testprozesses messen.
- Qualitätssicherung des Testprozesses: Fehlereinpflanzung hilft dabei, zu bewerten, wie gut der Testprozess funktioniert, um sicherzustellen, dass bekannte Fehler identifiziert und die entsprechenden Fehlermeldungen ausgelöst werden.
- Überprüfung der Testabdeckung: Sie hilft zu überprüfen, ob alle wichtigen Szenarien und potenziellen Fehlerquellen getestet wurden, um die Testabdeckung zu erhöhen.
- Fehlermeldungstests: Sie kann verwendet werden, um zu testen, ob das System korrekt auf Fehler reagiert, indem es die richtigen Fehlermeldungen und -codes anzeigt, die den Benutzer oder Entwickler über den Fehler informieren.
Vorteile der Fehlereinpflanzung:
- Schnelle Fehleridentifikation: Fehlereinpflanzung kann dazu beitragen, Fehler schnell zu identifizieren und zu überprüfen, wie gut ein Testfall diese Fehler erkennt.
- Verbesserung des Testprozesses: Durch die gezielte Einführung von Fehlern kann der Testprozess verbessert werden, indem Schwächen im Fehlererkennungsmechanismus oder in der Teststrategie identifiziert werden.
- Steigerung der Testabdeckung: Sie stellt sicher, dass keine wichtigen Fehlerarten übersehen werden und alle Szenarien aufgedeckt werden, auch solche, die möglicherweise nicht durch die ursprünglichen Testfälle abgedeckt sind.
Nachteile der Fehlereinpflanzung:
- Keine echten Fehler: Fehlereinpflanzung simuliert Fehler, die nicht unbedingt die realen Fehler im System widerspiegeln, die in der Produktion auftreten könnten. Dies bedeutet, dass das System in echten Anwendungsfällen möglicherweise anderen Problemen begegnet, die nicht getestet wurden.
- Testteam könnte voreingenommen werden: Wenn die Tester wissen, dass Fehler absichtlich eingebaut wurden, kann es sein, dass sie nicht so rigoros nach realen Fehlern suchen, was zu einer falschen Sicherheitswahrnehmung führen kann.
- Fehler können untypisch sein: Die eingefügten Fehler müssen gut ausgewählt und realistisch sein, sonst könnten sie von echten Fehlern im System abweichen und keine realistische Fehlererkennung ermöglichen.
Hinweise für die Praxis:
- Gezielte Fehler hinzufügen: Es ist wichtig, Fehler gezielt und in einer Weise einzufügen, die realistische Szenarien widerspiegelt und nicht nur aus experimentellen oder theoretischen Gründen.
- Ergänzung zu anderen Testmethoden: Fehlereinpflanzung sollte nicht die einzige Methode zur Fehlererkennung sein, sondern als Ergänzung zu anderen systematischen Testmethoden wie Regressionstests, Lasttests oder Exploratory Testing eingesetzt werden.
- Dokumentation: Die Fehlereinpflanzung sollte sorgfältig dokumentiert werden, damit die Auswirkungen der eingefügten Fehler im Testprozess später nachvollzogen und analysiert werden können.
