Schatzsuche mit explorativen Testtechniken

Wie viele Schätze findest du in den Weltmeeren, wenn du mit einer Schatzkarte suchst? Richtig, genau die Schätze, die mit einem roten X vermerkt sind. Softwarebugs mit Schätzen zu vergleichen ist gewagt, die Suche danach hat aber Parallelen. In diesem Blog zeige ich Techniken, mit denen ich schon Schätze (Fehler) in der Software entdeckt habe.

Durch die agile Arbeitsmethodik und kontinuierliche Releases ist es wichtig, automatisierte Tests zu schreiben. Es wird schwierig und teuer, bei jedem Release manuelle Tests durchzuführen. Automatisiere, wenn sinnvoll und möglich, alle Tests während jedes Sprints. Automatisierte Tests bieten viele Vorteile, jedoch beschränken sie sich auf vordefinierte Abläufe. Tester finden weitere Bugs, wenn sie vom Skript abweichen. Überzeuge dich selbst mit diesem Video.

Scripted vs. Exploratives Testing
Werden während des Requirements Engeneerings Anwendungsfälle erfasst, ergeben sich Tests aus den Akzeptanzkriterien. Solche Scripted oder vordefinierten Tests sind für die Tester einen mehr oder weniger direkten Pfad in der Software, um einen konkreten Anwendungsfall durchzuführen. Im Gegensatz zum Scripted Testing erfordert das Explorative Testing mehr Wissen und Kreativität vom Tester. Richtig ausgeführt ist das Explorative Testen definitiv keine unstrukturierte und zeitraubende Art des Testens. Bei dieser Art des Testens findet das Testdesign und die Testdurchführung gleichzeitig statt. Oder anders gesagt, gibt es keine unterscheidbaren Phasen der Testfallerstellung und der Testfalldurchführung. Die daraus entstandenen Tests können (müssen aber nicht) als automatisierte Tests geschrieben werden. Denn beide Testarten können und sollen nebeneinander existieren.

«Simultaneously designing and executing tests to learn about the system, using your insights from the last experiment to inform the next.» (Elisabeth Hendrickson)

Für einen Einblick stelle ich zwei explorative Techniken vor:

Verben und Nomen
Um z.B. einen Webshop zu testen, schreibe Nomen (Warenkorb, Zahlungsart, Adresse, Produkt, …) und Verben (kaufen, ändern, vergleichen, merken, …) auf, die dir zum Thema in den Sinn kommen. Danach kombinierst du Nomen und Verben zufällig zu Paaren.
– Produkt kaufen
– Adresse ändern
– Zahlungsart merken
– Warenkorb vergleichen
Jetzt machst du dir Gedanken darüber, wie du die Kombinationen auf der Webseite durchführst. Kombinationen wie „Adresse“ und „kaufen“ benötigen gewiss etwas sehr viel Fantasie. Mit dieser Technik findest du neue Wege, etwas im Webshop zu erzielen. Ein weiterer Vorteil ist es, neue Tests zu finden, die noch nicht als Testfälle existieren. Diese Technik eignet sich besonders in Kombination mit Personas.

Monkey Testing
Zugegeben ist der Name dieser Technik wenig schmeichelhaft für das Tier. Bei dieser Technik geht es darum, durch zufällige Eingaben auf der Benutzeroberfläche Fehler oder Abstürze zu finden. Dazu tippt der Tester Zeichen in Eingabefelder, die da nicht hingehören (z.B. Buchstaben in Datumsfelder). Wichtig bei dieser Technik ist, dass sich der Tester beim Testen filmt. Denn es gibt nichts Qualvolleres für einen Softwareentwickler einen Bug mit der Beschreibung «durch zufälliges Drücken ist die Applikation abgestürzt» zu erhalten.

Fazit
Hoffentlich taucht nicht eine Woche vor der Abnahme der Software die Frage auf, ob man vielleicht noch testen soll. Sondern nur noch, was können wir noch testen. Testen ist eine Disziplin, die während jedes Sprints berücksichtigt werden muss. Testfälle sollten, wenn möglich und sinnvoll, automatisiert werden. Explorative Techniken eignen sich besonders, um noch mehr Sicherheit für die Software zu gewinnen und machen die Arbeit des Testers noch spannender.

Viel Glück bei der Schatzsuche!

Weiterführende Quellen:

  • Explor It! von Elisabeth Hendrickson (ISBN-13: 978-1937785024)
  • Exploratory Testing von Martin Fowler
Beitrag teilen

Christoph Bühlmann

Christoph Bühlmann ist Softwareentwickler bei der Firma Thermoplan AG und bloggt aus dem Unterricht des CAS Requirements Engineering.

Alle Beiträge ansehen von Christoph Bühlmann →

Schreibe einen Kommentar