Was ist Exploratory Testing?
Definition von Exploratory Testing
Exploratory Testing ist ein Ansatz zur Softwarepruefung, bei dem Testdesign, Testdurchfuehrung und Testanalyse gleichzeitig stattfinden. Es handelt sich um einen Prozess, bei dem der Tester aktiv das System kennenlernt, waehrend er es testet, und das gewonnene Wissen nutzt, um nachfolgende Tests zu erstellen und zu verbessern. Im Gegensatz zu traditionellen Testmethoden, die auf vorab entworfenen Szenarien basieren, gibt Exploratory Testing dem Tester die Freiheit, potenzielle Probleme und unerwartetes Anwendungsverhalten zu entdecken.
Exploratory Testing wurde von James Bach und Cem Kaner massgeblich gepraegt und ist heute ein integraler Bestandteil moderner Qualitaetssicherungspraktiken. Es ist kein unstrukturiertes oder ad-hoc Testing, sondern ein gezielter, intellektuell anspruchsvoller Ansatz, der die Expertise und Intuition des Testers in den Mittelpunkt stellt.
Bedeutung im Softwareentwicklungsprozess
Exploratory Testing spielt eine wichtige Rolle im Softwareentwicklungsprozess und ergaenzt andere Testmethoden auf wesentliche Weise:
- Lueckenfuellung: Es deckt Fehler auf, die durch skriptbasierte Tests moeglicherweise nicht erkannt werden, insbesondere solche, die aus unerwarteten Benutzerinteraktionen oder Randfaellen resultieren.
- Fruehe Fehlererkennung: Besonders wertvoll in fruehen Entwicklungsphasen, wenn Spezifikationen noch unvollstaendig oder im Fluss sind.
- Schnelles Feedback: Ermoeglicht schnelle Rueckmeldung an das Entwicklungsteam ueber den Zustand der Software, ohne auf die Erstellung formaler Testfaelle warten zu muessen.
- Usability-Bewertung: Tester koennen gleichzeitig die Benutzerfreundlichkeit bewerten und UX-Probleme identifizieren, die in formalen Tests oft uebersehen werden.
- Kreativitaet und Innovation: Foerdert kreatives Denken und ermoeglicht die Entdeckung unerwarteter Nutzungsszenarien und Probleme.
In agilen Umgebungen, in denen sich Anforderungen haeufig aendern und die Entwicklungszyklen kurz sind, ist Exploratory Testing besonders effektiv, da es schnell an neue Gegebenheiten angepasst werden kann.
Zentrale Techniken des Exploratory Testing
Exploratory Testing nutzt verschiedene Techniken, die dem Tester helfen, systematisch und effektiv vorzugehen:
Sitzungsbasiertes Testen (Session-Based Testing)
Der Tester konzentriert sich fuer einen begrenzten Zeitraum (typischerweise 60 bis 120 Minuten) auf einen bestimmten Bereich oder eine bestimmte Funktionalitaet. Jede Sitzung hat eine klar definierte Mission (Charter), die den Fokus vorgibt. Am Ende jeder Sitzung wird ein Session Report erstellt, der die durchgefuehrten Tests, gefundenen Probleme und offene Fragen dokumentiert.
| Element | Beschreibung |
|---|---|
| Charter | Kurze Beschreibung des Testziels und -umfangs |
| Zeitrahmen | Feste Dauer, typischerweise 60-120 Minuten |
| Session Report | Dokumentation der Ergebnisse, Fehler und Erkenntnisse |
| Debrief | Besprechung der Ergebnisse mit dem Team |
Risikobasiertes Testen
Der Tester konzentriert sich auf Bereiche des Systems, die am kritischsten oder fehleranfaelligsten sind. Diese Priorisierung basiert auf Faktoren wie der Komplexitaet des Codes, der Haeufigkeit von Aenderungen, der Geschaeftskritikalitaet und historischen Fehlerdaten. Durch die Fokussierung auf Hochrisikobereiche wird der begrenzte Testaufwand optimal eingesetzt.
Pair Testing
Zwei Tester arbeiten gemeinsam, wobei einer typischerweise die Eingaben vornimmt und der andere beobachtet, analysiert und Ideen einbringt. Diese Technik fuehrt oft zu kreativeren und effektiveren Testsitzungen, da unterschiedliche Perspektiven kombiniert werden. Pair Testing kann auch zwischen einem Tester und einem Entwickler durchgefuehrt werden, was den Wissensaustausch foerdert.
Heuristisches Testen
Tester verwenden Heuristiken, also Faustregeln und Erfahrungswerte, um ihre Erkundung zu leiten. Bekannte Heuristen umfassen:
- SFDIPOT (San Francisco Depot): Struktur, Funktion, Daten, Schnittstellen, Plattform, Operationen, Zeit als Testdimensionen.
- Consistency Heuristics: Vergleich mit aaehnlichen Produkten, frueheren Versionen, Dokumentation und Benutzererwartungen.
- Grenzwertanalyse: Testen an den Raendern gueltiger Eingabebereiche.
Tour-basiertes Testen
Inspiriert von der Metapher des Tourismus durchlaeuft der Tester die Anwendung auf verschiedenen Routen, zum Beispiel die Landmark Tour (Hauptfunktionen), die Money Tour (geschaeftskritische Pfade), die Bad Neighborhood Tour (fehleranfaellige Bereiche) oder die Garbage Tour (Eingabe ungueltiger Daten).
Der Exploratory-Testing-Prozess
Ein strukturierter Exploratory-Testing-Prozess umfasst mehrere Phasen:
-
Vorbereitung und Planung: Definition der uebergeordneten Ziele, des Testumfangs und der Priorisierung. Erstellung von Test-Charters, die den Fokus der einzelnen Testsitzungen vorgeben.
-
Erkundung und Durchfuehrung: Der Tester erkundet das System, dokumentiert seine Aktionen, Beobachtungen und gefundene Probleme. Waehrend dieses Prozesses analysiert der Tester staendig die gesammelten Informationen, passt seinen Ansatz an und plant seine naechsten Schritte.
-
Dokumentation: Kontinuierliche Aufzeichnung von Testpfaden, Ergebnissen, Fragen und Ideen fuer weitere Tests. Screenshots, Screencasts und Notizen ergaenzen die formale Dokumentation.
-
Debrief und Ergebniszusammenfassung: Am Ende der Testsitzung fasst der Tester die Ergebnisse zusammen, identifiziert die wichtigsten Probleme und gibt Empfehlungen an das Entwicklungsteam. Das Debrief-Gespraech ermoeglicht Rueckfragen und die gemeinsame Bewertung der Ergebnisse.
-
Nachverfolgung: Gefundene Fehler werden im Bug-Tracking-System erfasst, priorisiert und nachverfolgt. Erkenntnisse fliessen in zukuenftige Testsitzungen ein.
Werkzeuge zur Unterstuetzung
Verschiedene Werkzeuge koennen den Exploratory-Testing-Prozess unterstuetzen:
- Session-Logging-Tools: Rapid Reporter, Session Tester und Exploratory Testing Chrome Extension helfen bei der Dokumentation von Testsitzungen.
- Bildschirmaufnahme-Tools: Snagit, Loom oder OBS Studio erfassen visuelle Nachweise von Fehlern und Testpfaden.
- Bug-Management-Tools: Jira, Azure DevOps oder Bugzilla ermoeglichen effektives Melden und Nachverfolgen gefundener Probleme.
- Mindmapping-Software: XMind, MindMeister oder Miro helfen bei der Visualisierung von Testideen, Systemabhaengigkeiten und Testergebnissen.
- Browser-Entwicklertools: Die integrierten Entwicklertools von Browsern sind unentbehrlich fuer das Testen von Webanwendungen, einschliesslich Netzwerkanalyse, Konsolenausgaben und DOM-Inspektion.
Herausforderungen des Exploratory Testing
Trotz seiner Vorteile bringt Exploratory Testing einige Herausforderungen mit sich:
- Messbarkeit der Testabdeckung: Da Tests nicht vorab definiert sind, ist es schwierig, die Testabdeckung objektiv zu messen und zu kommunizieren. Session-basierte Ansaetze mit Charters und Metriken bieten hier Abhilfe.
- Reproduzierbarkeit: Die Sicherstellung der Reproduzierbarkeit von Tests kann herausfordernd sein, was bei der Verifizierung von Fehlerbehebungen wichtig ist. Sorgfaeltige Dokumentation und Screencasts mindern dieses Problem.
- Abhaengigkeit von Tester-Faehigkeiten: Die Effektivitaet haengt stark von den Faehigkeiten, der Erfahrung und der Domaenenkenntnise des Testers ab, was zu ungleichmaessigen Ergebnissen fuehren kann.
- Skalierung: Die Skalierung von Exploratory Testing in grossen Organisationen erfordert klare Richtlinien, Schulungsprogramme und Management-Unterstuetzung.
- Wahrnehmung als unstrukturiert: Manche Stakeholder betrachten Exploratory Testing faelschlicherweise als unstrukturiert oder unprofessionell. Klare Kommunikation ueber den systematischen Charakter des Ansatzes ist wichtig.
Exploratory Testing und der Fachkraeftebedarf
Effektives Exploratory Testing erfordert erfahrene QA-Experten mit starken analytischen Faehigkeiten, Domaenenwissen und technischem Verstaendnis. ARDURA Consulting unterstuetzt Organisationen bei der Gewinnung qualifizierter Tester und QA-Engineers, die sowohl automatisierte als auch explorative Testmethoden beherrschen. Durch den Zugang zu erfahrenen Spezialisten koennen Unternehmen ihre Testabdeckung verbessern und die Qualitaet ihrer Software nachhaltig steigern.
Anwendungsbeispiele
Exploratory Testing ist in verschiedenen Kontexten der Softwareentwicklung anwendbar:
- Fruehe Projektphasen: Wenn Spezifikationen noch unvollstaendig sind und schnelles Feedback benoetigt wird.
- Neue Funktionalitaeten: Zur Aufdeckung unerwarteter Interaktionen mit dem bestehenden System.
- Agile Projekte: Wo Flexibilitaet und Geschwindigkeit entscheidend sind und Testautomatisierung oft noch hinterherhinkt.
- Mobile Anwendungen: Wo die Vielfalt an Geraeten, Bildschirmgroessen und Nutzungsszenarien gross ist.
- Regressionstest-Ergaenzung: Als Ergaenzung zu automatisierten Regressionstests, um Bereiche abzudecken, die Automatisierung schwer erfasst.
- Sicherheitstests: Zur explorativen Suche nach Sicherheitsluecken und ungewoehnlichen Systemverhaltensweisen.
Zusammenfassung
Exploratory Testing ist ein leistungsfaehiger und systematischer Ansatz zur Softwarepruefung, der die Expertise, Intuition und Kreativitaet des Testers in den Mittelpunkt stellt. Durch die gleichzeitige Durchfuehrung von Testdesign, -ausfuehrung und -analyse ermoeglicht es die schnelle Entdeckung von Problemen, die durch skriptbasierte Tests moeglicherweise uebersehen werden. In Kombination mit strukturierten Techniken wie sitzungsbasiertem und risikobasiertem Testen bietet Exploratory Testing eine wertvolle Ergaenzung zu automatisierten Tests und formalen Testmethoden. Der Erfolg haengt wesentlich von den Faehigkeiten der Tester, der richtigen Anwendung von Techniken und der sorgfaeltigen Dokumentation ab, was diesen Ansatz zu einer unverzichtbaren Komponente moderner Qualitaetssicherung macht.
Häufig gestellte Fragen
Was ist Exploratory testing?
Exploratory Testing ist ein Ansatz zur Softwarepruefung, bei dem Testdesign, Testdurchfuehrung und Testanalyse gleichzeitig stattfinden.
Warum ist Exploratory testing wichtig?
Exploratory Testing spielt eine wichtige Rolle im Softwareentwicklungsprozess und ergaenzt andere Testmethoden auf wesentliche Weise: Lueckenfuellung: Es deckt Fehler auf, die durch skriptbasierte Tests moeglicherweise nicht erkannt werden, insbesondere solche, die aus unerwarteten Benutzerinterakti...
Welche Tools werden für Exploratory testing verwendet?
Verschiedene Werkzeuge koennen den Exploratory-Testing-Prozess unterstuetzen: Session-Logging-Tools: Rapid Reporter, Session Tester und Exploratory Testing Chrome Extension helfen bei der Dokumentation von Testsitzungen.
Welche Herausforderungen gibt es bei Exploratory testing?
Trotz seiner Vorteile bringt Exploratory Testing einige Herausforderungen mit sich: Messbarkeit der Testabdeckung: Da Tests nicht vorab definiert sind, ist es schwierig, die Testabdeckung objektiv zu messen und zu kommunizieren.
Brauchen Sie Unterstuetzung bei Softwaretests?
Kostenlose Beratung vereinbaren →