Softwareentwicklung ist ein vielseitiges Abenteuer - exploratives Testen ist eine Lernreise zu dessen Gelingen.

Software-Entwicklung ist ein komplexes Unterfangen, bei dem man manche Auswirkungen erst (er)kennt, wenn man sie sieht. Diese unbekannten Unbekannten sind ein kritisches Risiko bei fast jedem Produktentwicklungs-Vorhaben.

Eine leistungsstarke und dennoch einfache Technik, um mit unbekannten Unbekannten umzugehen, ist das explorative Testen. Dieser Ansatz bringt Licht in die dunklen Ecken der übersehenen und missverstandenen Anforderungen und hilft dabei, die Fehler zu finden, an die noch niemand gedacht hat.

Exploratives Testen ist ein kontinuierlicher Prozess des Experimentierens mit der zu testenden Software, bei dem kleine Experimente entworfen und durchgeführt werden, um etwas über das System und sein Verhalten zu erfahren. Die Ergebnisse des Experiments werden als Ideen für neue Experimente zurückgespielt, um den Lernprozess fortzusetzen.

Auf den ersten Blick scheint exploratives Testen ein eher planloser Ansatz zu sein, da man mit nicht viel mehr als einer Timebox und einem Ziel beginnt. In der Praxis ist es jedoch eine sehr disziplinierte Art, um Software zu testen. Denn neue Erkenntnisse werden durch eine strukturierte und bewusste schrittweise Erkundung des Systems gewonnen.

Exploratives Testen kann während des gesamten Entwicklungsprozesses eingesetzt werden, sobald ein Teil des Systems fertig ist. Es besteht keine Notwendigkeit, auf ein vollständig entwickeltes und integriertes System zu warten - je früher das Feedback mit dem Rest des Teams geteilt und diskutiert wird, desto besser.

 

Wie funktioniert's?

Exploratives Testen ist ein Zyklus aus Lernen, Entwerfen, Ausführen und Analysieren. Der erste Schritt besteht darin, darüber nachzudenken, was getestet werden soll und welcher Ansatz sinnvoll ist, um die gewünschten Informationen zu finden. Danach wird ein kleines Experiment (oder ein Testfall) entworfen und quasi gleich ausgeführt. Die beobachteten Ergebnisse werden schließlich analysiert und interpretiert. Basierend auf dieser Analyse wird der nächste Testdurchlauf eingeleitet.

Um den Überblick über den Testaufwand nicht zu verlieren, hat es sich bewährt, die Testsitzung vorzubereiten und eine Timebox festzulegen. Das Ziel für die Sitzung und die Testideen werden in einer einfachen Test-Charta dokumentiert, die auch zur Dokumentation während des Testaufwands verwendet wird. Als Timebox wird eine Dauer von 30 bis 120 Minuten empfohlen.

Nach Abschluss der Testsession ist es sinnvoll, die gewonnenen Erkenntnisse mit dem Rest des Teams zu teilen, um Feedback zu geben und die Kommunikation über das System und seine Qualität zu fördern.

So viel zur Theorie. In der Praxis ist der schwierigste Teil, den richtigen Ansatzpunkt zu finden. Wo kannst Du also Ideen finden, wie Du gezielt starten kannst?

 

Einige Testideen

Die Hauptquellen für Testideen beim explorativen Testen sind die Intuition und Erfahrung des Testers. Aber es gibt Möglichkeiten zu schummeln oder besser gesagt: Inspiration zu finden.

Einer der am häufigsten verwendeten Ansätze für exploratives Testen sind Touren. Man findet sie im Internet in hunderten von Varianten. Eine Tour für Softwaretests zu verwenden ist ein bisschen wie eine Städtereise - es gibt ein Grundthema oder einen Plan für den Rundgang, der sich aber ändern kann, wenn etwas Interessantes oder Unerwartetes passiert. 

Ein anderer weit verbreiteter Ansatz ist der Wechsel der Perspektive, indem man sich mit einem möglichen Benutzer des Systems identifiziert. Diese aus der Produktentwicklung entlehnte Technik wird Persona-Methode genannt und allein das Erfinden von realistischen Personas macht Spaß.

Falls das Hauptziel das Finden von Fehlern ist, sind Fehler-Taxonomien eine gute Quelle für Testideen. Im Grunde sind das Register von Fehlerquellen und deren Symptome.

Und es gibt buchstäblich Dutzende von Mnemonics, die Heuristiken für den Einsatz beim Testen darstellen. 

Neugierig geworden durch diesen kurzen Blog über exploratives Testen? Warum nicht gleich mit einem Rundgang durch Dein System beginnen? Nimm einfach das Benutzerhandbuch und probiere aus, was passiert, wenn Du ihm wortwörtlich folgst - viel Glück und viel Spaß!

 

Falls Du zunächst mehr über die Methode erfahren und sie in einer Gruppe mit Hilfe eines erfahrenen explorativen Testers üben möchtest, lade ich Dich ein, an meiner Session über exploratives Testen teilzunehmen, die ich von Zeit zu Zeit als techtalk-Praktinar "Exploratives Testen" veranstalten werden!