Exploratives Testen
Erfahre, was exploratives Testen ist und lerne seine Geschichte kennen. Entdecke die Vor- und Nachteile von explorativem Testen, wie es sich von skriptbasiertem Testen unterscheidet und in welchem entsprechenden Kontext es verwendet werden kann.
Deepak Parmar
Gastautor
Exploratives Testen ist ein Ansatz für Softwaretests, der häufig als gleichzeitiges Lernen, Testdesign und Ausführung bezeichnet wird. Es konzentriert sich auf Discovery und stützt sich auf die Anleitung des einzelnen Testers, um Defekte aufzudecken, die im Rahmen anderer Tests nicht ohne Weiteres abgedeckt werden können.
Die Praxis des explorativen Testens hat in den letzten Jahren an Dynamik gewonnen. Tester und QS-Manager werden ermutigt, exploratives Testen als Teil einer umfassenden Testabdeckungsstrategie mit einzubeziehen.
Geschichte des explorativen Testens
Exploratives Testen gibt es schon seit einiger Zeit, wurde aber meistens als "Ad-hoc-Testen" bezeichnet. Der Begriff "exploratives Testen" wurde offiziell von dem Software-Testexperten Cem Kaner in seinem klassischen Buch "Testing Computer Software" eingeführt.
Die Einleitung ist inzwischen berühmt: "Egal, wie viele Testfälle wie vieler Arten du erstellt hast, dir werden die formell geplanten Tests ausgehen. Du kannst weiter testen. Führe neue Tests durch, wenn sie dir einfallen. Verschwende keine Zeit mit langen Vorbereitungen oder Erklärungen der Tests. Vertraue einfach deinen Instinkten."
Warum exploratives Testen nutzen
Teams müssen heutzutage Continuous Integration einführen und der Marktnachfrage nach qualitativ hochwertigen, digitalen Erlebnissen nachkommen, um die steigenden Kundenerwartungen zu erfüllen. Auch wenn eine schnelle Markteinführung wichtig ist, gibt es Fälle von millionenschweren Bugs oder einfachen, aber sehr kostspieligen Katastrophen bei der Benutzererfahrung. Von Boeing bis Instagram gibt es viele Beispiele, bei denen die Eile, fristgerecht zu liefern, und mangelhafte Tests zu Reputations- sowie finanziellen Schäden geführt haben.
Die meisten Software-Qualitätstests verwenden einen strukturierten Ansatz. Testfälle werden auf der Grundlage bereits definierter User Storys definiert und die Testdaten werden basierend auf den definierten Testfällen strukturiert. Die Testabdeckung wird anhand von Softwareentwicklungsmetriken gemessen, und in den meisten Fällen ist die Abdeckung technisch angemessen.
Lösung anzeigen
Hochwertige Software entwickeln und ausführen mit Open DevOps
Zugehöriges Material
Automatisiertes Testen für DevOps
Was dabei oft übersehen wird, sind Grenzfälle, die durch Benutzerakzeptanztests (UATs) entdeckt und anhand von Benutzertypen getestet werden. Andererseits ist das explorative Testen zufällig bzw. unstrukturiert und kann Bugs aufdecken, die während der strukturierten Testphase unentdeckt bleiben würden.
Beim explorativen Testen können die Tester mit einer User Story herumspielen, die einem bestimmten Ablauf folgt. Tester können Defekte kommentieren, Assert-Anweisungen und Sprachnotizen hinzufügen und im Handumdrehen eine Dokumentation erstellen. Auf diese Weise wird eine User Story in einen Testfall umgewandelt. Diese Informationen können auch für die QA verwendet werden.
Im Endeffekt erfolgt die Testdurchführung ohne formale Erstellung von Testschritten. Das explorative Testtool wird dann zu einem Vorläufer der Automatisierung. Es hilft dabei, die Ergebnisse zu formalisieren und automatisch zu dokumentieren. Mithilfe von visuellem Feedback und kollaborativen Testtools kann jeder am explorativen Testen teilnehmen. Dadurch können Teams schnell reagieren und sich an Änderungen anpassen – so wird ein agiler Workflow ermöglicht.
Darüber hinaus kann der Tester explorative Testsequenzen mithilfe von Tools für die automatisierte Testfalldokumentation in funktionale Testskripte umwandeln. Dies verstärkt den traditionellen Testprozess.
Durch die Integration mit Tools wie Jira und Testmanagement-Produkten können Teams die aufgezeichnete Dokumentation direkt in Testfälle exportieren.
So beschleunigt exploratives Testen die Dokumentation, erleichtert Unit-Tests und hilft, eine sofortige Feedbackschleife einzurichten. Wie James Bach, Mitbegründer der Schule für kontextgesteuerte Software-Tests, es ausdrückt: "Exploratives Testen fördert das wissenschaftliche Denken in Echtzeit."
Wann solltest du exploratives Testen nutzen?
Exploratives Testen eignet sich für bestimmte Testszenarien, z. B. wenn jemand schnell etwas über ein Produkt oder eine Anwendung erfahren und schnelles Feedback geben muss. Damit lässt sich u. a. die Qualität eines Produkts aus der Sicht des Benutzers zu überprüfen.
In vielen Software-Zyklen ist eine frühzeitige Iteration erforderlich, wenn Teams nicht viel Zeit haben, ihre Tests zu strukturieren. Exploratives Testen ist in diesem Szenario sehr hilfreich.
Beim Testen geschäftskritischer Anwendungen stellt das explorative Testen sicher, dass du keine Grenzfälle übersiehst, die zu kritischen Qualitätsmängeln führen. Nutze exploratives Testen außerdem, um den Unit-Test-Prozess zu unterstützen, dokumentiere die Schritte und nutze diese Informationen, um in späteren Sprints ausgiebig zu testen.
Es ist besonders nützlich, neue Testszenarien zu finden, um die Testabdeckung zu verbessern.
Wann du Nein zu explorativem Testen sagen solltest
Unternehmen müssen in der Lage sein, die richtige Balance zwischen explorativem Testen und skriptbasiertem Testen zu finden. Exploratives Testen allein kann keine angemessene Abdeckung bieten, und Teams sollten es erst dann versuchen, wenn sie ein paar erste Meilensteine erreicht haben.
Gerade bei allen Arten von regulierten oder Compliance-basierten Tests sind skriptbasierte Tests der richtige Weg. Bei Compliance-basierten Tests, bei denen bestimmte Checklisten und Mandate aus rechtlichen Gründen befolgt werden müssen, wird empfohlen, sich an skriptbasierte Tests zu halten. Ein Beispiel hierfür ist das Testen der Barrierefreiheit, bei dem mehrere Gesetze das Prüfprotokoll regeln und es definierte Standards gibt, die erfüllt werden müssen.
Bedeutung von explorativem Testen für CI/CD
Exploratives Testen öffnet das Testen für alle wichtigen Stakeholder und nicht nur für ausgebildete Tester. Mit einem explorativen Testtool kann man während der Sitzungen Screenshots aufnehmen, Sprachnotizen aufzeichnen und Feedback notieren. So ist eine schnellere und effizientere Überprüfung durch Personen möglich, die auch über traditionelle Softwaretester hinausgehen.
Exploratives Testen ergänzt die bestehende Teststrategie von QS-Teams. Es umfasst eine Reihe von nicht dokumentierten Testsitzungen, um noch unentdeckte Probleme/Bugs zu erkennen. In Kombination mit automatisiertem Testen und anderen Testverfahren erhöht es die Testabdeckung, erkennt Grenzfälle, fügt möglicherweise neue Funktionen hinzu und verbessert das Softwareprodukt insgesamt. Ohne strukturelle Starrheit fördert es die Experimentierfreudigkeit, Kreativität und Discovery innerhalb der Teams.
Das fast sofortige Feedback hilft dabei, die Lücken zwischen Testern und Entwicklern zu schließen. Die Ergebnisse des explorativen Testens liefern den Entwicklerteams vor allem eine nutzerorientierte Perspektive und Feedback. Das Ziel ist es, traditionelles Testen zu ergänzen, um millionenschwere Fehler zu finden, die in der Regel hinter dem definierten Workflow verborgen sind.
Im Atlassian Marketplace findest du mehr zum Thema Testmanagement-Anwendungen. In unseren DevOps-Testtutorials kannst du dir zudem anschauen, wie du mit den Tools von Atlassian und Drittanbietern einen Testschritt in deinen Workflow integrierst.
Diesen Artikel teilen
Nächstes Thema
Lesenswert
Füge diese Ressourcen deinen Lesezeichen hinzu, um mehr über DevOps-Teams und fortlaufende Updates zu DevOps bei Atlassian zu erfahren.