Was ist Adhoc Testing?
„Verlassen Sie sich nicht immer auf Pläne, folgen Sie Ihrem Instinkt.“ Ein Satz wie dieser ist Ihnen sicherlich schon einmal begegnet – sei es von geliebten Menschen, aus einem Buch oder einem Film. Kann das auch in einem so technischen Bereich wie der Qualitätssicherung gelten? Die Antwort lautet ja, und genau das ermöglicht Ihnen das Ad-hoc-Testing.
Beim Ad-hoc-Testing erkunden Sie Ihre Software ohne einen vorab definierten Plan und nutzen dabei Ihren Instinkt, um Probleme zu finden, die durch geskriptete Tests möglicherweise übersehen werden. Ihre Kreativität und Ihr Verständnis des Systems treiben diese Methode voran.
Ad-hoc-Testing ist spontan und unstrukturiert. Anstatt Testfälle zu befolgen, tauchen Sie in die Software ein und interagieren auf unvorhersehbare Weise mit ihr. Dabei können Sie sich auf Bereiche konzentrieren, die Ihrer Meinung nach anfällig sein könnten, oder mit ungewöhnlichem Nutzerverhalten experimentieren.
Allerdings handelt es sich nicht um zufälliges Testen. Auch wenn Ad-hoc-Testing keine formelle Vorbereitung erfordert, wird es von Ihrem Wissen über das System und potenzielle Risikobereiche geleitet. Es ersetzt auch keine strukturierten Testmethoden wie Funktionstests, Regressionstests oder Leistungstests. Diese sind nach wie vor notwendig, um alle Aspekte abzudecken – Ad-hoc-Testing ergänzt den Prozess lediglich um eine zusätzliche Ebene.
Arten des Ad-hoc-Testings
Nun, da Sie die Grundlagen des Ad-hoc-Testings kennen, werfen wir einen Blick auf die verschiedenen Arten, die Ihnen begegnen könnten. Jede dieser Methoden kann äußerst effektiv sein, wenn die Zeit knapp ist und Sie schnell Fehler identifizieren müssen.
1. Exploratives Testen
Dies ist die häufigste Form des Ad-hoc-Testings. Dabei nutzen Sie Ihr Bauchgefühl, um die Anwendung ohne ein vordefiniertes Skript zu erkunden. Ziel ist es, ein intuitives Verständnis dafür zu entwickeln, wie die Software funktioniert, und Defekte zu entdecken, die in einem strukturierten Test oft übersehen werden. Studien zeigen, dass exploratives Testen 29 % mehr Fehler aufdecken kann als strukturierte Ansätze.
Beispiel: Stellen Sie sich vor, Sie testen eine neue Social-Media-App. Sie folgen keinem bestimmten Pfad, sondern klicken sich durch verschiedene Funktionen wie das Hochladen von Fotos, das Versenden von Nachrichten oder das Aktualisieren Ihres Profils. Auf den ersten Blick mag das wie zielloses Erkunden wirken. Aber in diesem Beispiel könnten Sie feststellen, dass die App einfriert, wenn Sie ein Foto hochladen, das größer als eine bestimmte Größe ist.
Menschen verwechseln dies oft mit Ad-hoc-Tests, aber exploratives Testen bedeutet speziell, eine Funktion zu untersuchen, um Entdeckungen zu machen, die Ihre späteren Tests informieren.
2. Monkey Testing
Dies dreht sich ganz um Zufälligkeit. Dabei drücken Sie zufällig Tasten oder geben zufällige Daten ein, um zu sehen, ob die App damit umgehen kann. Es ist, als würde man der Software eine unerwartete Herausforderung stellen, um ihre Stabilität und Fehlerbehandlung zu testen.
Beispiel: Stellen Sie sich vor, Sie klicken zufällig auf verschiedene Buttons auf einer Online-Shopping-Website, geben zufällige Werte für Ihre Lieferadresse ein oder wählen zufällige Zahlungsoptionen. Dabei stellen Sie fest, dass die Seite abstürzt oder der Warenkorb nicht aktualisiert wird, wenn Sie zu schnell zwischen verschiedenen Produktseiten wechseln.
3. Buddy Testing
Beim Buddy-Testing arbeiten Sie mit einem Kollegen zusammen, um verschiedene Teile der Anwendung zu testen. Es ist informell, aber es ermöglicht Ihnen, Ihre Erkenntnisse zu kombinieren. Gemeinsam erkunden Sie die Software und entdecken Probleme, indem Sie Ihre Ergebnisse während des Tests austauschen. Es ist auch eine großartige Gelegenheit, enge Beziehungen zu Ihren Kollegen aufzubauen.
Beispiel: Einer von Ihnen testet die Login-Funktion einer Bank-App, indem er falsche Passwörter oder Benutzernamen eingibt. Währenddessen prüft der andere den “Passwort vergessen”-Link, um zu sehen, ob dieser wie erwartet funktioniert. Durch den Austausch Ihrer Notizen stellen Sie fest, dass eine Fehlermeldung irreführend ist.
4. Fault Injection Testing
Fault Injection Testing ist darauf ausgerichtet, das System absichtlich zu “brechen”, um zu sehen, wie es darauf reagiert. Dabei fügen Sie absichtlich Fehler in das System ein, um seine Belastbarkeit zu testen und zu überprüfen, ob das System mit unerwarteten Situationen umgehen kann, ohne abzustürzen.
Beispiel: Sie korrumpieren absichtlich Daten-Dateien, indem Sie sie umbenennen oder Teile der Daten entfernen. Wenn Sie versuchen, auf diese Dateien zuzugreifen, prüfen Sie, wie das System mit den Fehlern umgeht—stürzt es ab oder zeigt es eine klare Fehlermeldung an?
5. Negatives Testing
Negatives Testing ist ähnlich wie Fault Injection, aber ein wenig anders. Dabei liegt der Fokus darauf, falscheingaben zu liefern oder die Anwendung auf unvorhergesehene Weise zu verwenden. Ziel ist es, zu beobachten, wie das System auf Fehler oder unerwünschte Eingaben reagiert.
Beispiel: Sie geben eine Telefonnummer mit zu vielen Ziffern ein oder fügen einen Namen mit Sonderzeichen hinzu. Dabei könnte es sein, dass das Formular diese Fehler nicht erkennt oder keine Warnung anzeigt, was dazu führen kann, dass falsche Daten in das System gelangen.
Jeder Typ von Ad-Hoc-Testing hilft, unterschiedliche Arten von Problemen zu finden—Dinge, die in einem strukturierten Test möglicherweise übersehen werden. Allerdings sollte man nicht vergessen: Ad-Hoc-Testing ist nicht umfassend. Es sollte immer ergänzend zu strukturierten Testmethoden eingesetzt werden, um einen vollständigen Ansatz zu gewährleisten.
Und bei strukturierten Methoden kann man nicht immer nur auf menschliche Expertise oder Instinkte vertrauen; hier kommt ein Testmanagementsystem (TMS) ins Spiel. Ein TMS ist entscheidend, um diese Tests zu organisieren und zu verfolgen. Es sorgt dafür, dass alle Tests durchgeführt werden, Ergebnisse protokolliert werden und Fehler korrekt verwaltet und behoben werden. Wenn ein Kollege beim Buddy-Testing Ihr Partner ist, dann ist TMS der Partner bei strukturierten Methoden.
Und hier kommt aqua cloud ins Spiel. Mit 100 % Nachvollziehbarkeit, Testabdeckung und KI-gestützten Einblicken hilft es Ihnen, Ihre Testbemühungen zu optimieren und sicherzustellen, dass kein Bereich Ihrer Anwendung übersehen wird. Die zentrale Datenbank hält alle Ihre Testdaten organisiert, sodass Sie Ergebnisse einfach abrufen und überprüfen können. Automatisierungs- oder Projektmanagement-Integrationen wie Jira, Selenium und Jenkins helfen Ihnen dabei, Tests zu automatisieren und kontinuierliche Integration zu verwalten. Das 1-Klick-Fehlerberichterstattungstool Capture integriert sich nahtlos in Jira und beschleunigt die Fehlerbehebung. Darüber hinaus hilft Ihnen aqua cloud, Testfälle in Sekundenschnelle aus Anforderungen zu generieren und stellt umfassende Testdaten zur Verfügung, was Ihnen wertvolle Zeit spart. Es ist das perfekte Werkzeug, um Ihre strukturierten Testmethoden zu ergänzen. Kombinieren Sie es mit Ihrem Ad-Hoc-Testing und liefern Sie immer hochwertige, fehlerfreie Software.
Komplementieren Sie Ihre Ad-Hoc-Testbemühungen mit einer zu 100 % KI-unterstützten Lösung
Vorteile des Ad-Hoc-Tests
Schauen wir uns nun die zwei Seiten der Medaille an, oder? Ad-Hoc-Testing bietet mehrere Vorteile, die es besonders attraktiv machen, wenn Geschwindigkeit von entscheidender Bedeutung ist.
1. Schnell und Flexibel
Ad-Hoc-Testing ist schnell, weil es keine starren Testfälle gibt. Man springt einfach hinein und beginnt mit dem Testen, was es perfekt macht, wenn die Zeit knapp ist.
Beispiel: Sie müssen überprüfen, ob eine neue Funktion in Ihrer App unter verschiedenen Bedingungen funktioniert. Anstatt Zeit mit der Planung zu verbringen, beginnen Sie einfach mit der Erkundung. In wenigen Minuten finden Sie bereits Fehler, für die Sie sonst Stunden mit der Planung gebraucht hätten.
2. Hilft, unvorhergesehene Fehler zu finden
Da Sie keine strukturierten Skripte befolgen, werden Sie wahrscheinlich Fehler entdecken, die durch traditionelle Tests nicht gefunden worden wären.
Beispiel: Beim Testen einer E-Commerce-Website wählen Sie zufällig ein Produkt aus, fügen es zum Warenkorb hinzu und wenden dann einen zufälligen Gutscheincode an. Diese unerwartete Vorgehensweise kann einen Fehler aufdecken, der nur in diesem spezifischen Szenario auftritt.
3. Kein Bedarf an Dokumentation
Es ist nicht nötig, detaillierte Testfälle zu schreiben oder komplexe Verfahren zu befolgen, was es zu einer problemlosen Methode macht. Da viele Tester Dokumentation nicht mögen, ist dies eine gute Nachricht für viele.
Beispiel: Anstatt für jeden Schritt der Benutzerreise Testskripte zu schreiben, erkunden Sie einfach die App, was das Testen natürlicher und weniger zeitaufwendig macht.
4. Fördert Kreativität
Da Sie nicht an ein Skript gebunden sind, können Sie über den Tellerrand hinausdenken. Diese Freiheit fördert kreatives Testen und ermöglicht es Ihnen, Dinge zu entdecken, die andere möglicherweise übersehen.
Beispiel: Während des Tests einer Kalender-App könnten Sie experimentieren, indem Sie schnell zwischen verschiedenen Zeitzonen wechseln. Wer weiß, vielleicht entdecken Sie Probleme, die strukturierte Tester nicht einmal in Betracht gezogen hätten.
Nachteile von Ad-Hoc-Testing
Obwohl Ad-Hoc-Tests schnelle Ergebnisse liefern, gibt es auch einige Einschränkungen, die Sie berücksichtigen sollten.
1. Mangel an umfassender Abdeckung
Ad-hoc-Tests folgen keinem strukturierten Pfad, was bedeutet, dass es leicht ist, kritische Bereiche der Software zu übersehen.
Beispiel: Vielleicht konzentrieren Sie sich auf das Testen der Login-Seite, vergessen jedoch zu überprüfen, wie sich die App bei niedrigem Akku oder unterbrochenen Internetverbindungen verhält. Das Ergebnis? Potenzielle Bugs in diesen Bereichen werden übersehen.
2. Schwierigkeit, Ergebnisse zu reproduzieren
Da die Testschritte nicht dokumentiert sind, ist es schwer, die Testergebnisse genau zu reproduzieren. Obwohl viele Tester Dokumentation möglicherweise nicht mögen, ist sie dennoch erforderlich. Ohne formelle Testfälle gibt es wenig Dokumentation, auf die in der Zukunft verwiesen werden kann. Wenn Fehler erneut auftreten, wird es schwierig sein, nachzuvollziehen, warum sie beim ersten Mal nicht erkannt wurden.
Beispiel: Ein Fehler wird in einer Sitzung gefunden, aber wenn Sie versuchen, den Test erneut durchzuführen, können Sie die genauen Bedingungen nicht reproduzieren. Dies erschwert die effektive Lösung des Problems.
3. Kann uneinheitlich sein
Da Ad-hoc-Tests auf Intuition und Entdeckung basieren, kann der Prozess jedes Mal variieren und zu Inkonsistenzen bei den Ergebnissen führen.
Beispiel: Ein Tester könnte die Anwendung in einer anderen Reihenfolge durchklicken als ein anderer Tester. Dadurch besteht eine hohe Wahrscheinlichkeit, dass unterschiedliche Bugs übersehen oder gefunden werden, je nachdem, welchen Entdeckungsweg jeder Tester wählt.
Wann sollte man Ad-Hoc-Tests durchführen?
Ad-Hoc-Tests eignen sich am besten für Situationen, in denen Geschwindigkeit entscheidend ist und Flexibilität erforderlich wird. Hier sind einige Szenarien, in denen sie besonders nützlich sind:
- Enger Deadline: Wenn Sie schnell überprüfen müssen, ob eine Funktion nach einem Update oder Fix funktioniert
- Last-Minute-Überprüfungen: Vor einer großen Veröffentlichung, wenn Sie sicherstellen möchten, dass keine verbleibenden Probleme bestehen.
- Erkundung neuer Bereiche: Wenn neue Funktionen oder Änderungen eingeführt werden, die nicht Teil des ursprünglichen Testplans waren.
In diesen Fällen ermöglicht es das Ad-Hoc-Testing, direkt einzutauchen und die Anwendung ohne die Einschränkungen formeller Testfälle zu erkunden.
Wie man Ad-Hoc-Tests durchführt: Ein praktisches Beispiel
Lassen Sie uns den Prozess des Ad-Hoc-Testens anhand eines einfachen Beispiels durchgehen: das Testen einer Login-Funktion auf einer Website.
1. Verstehen Sie das Ziel
Bevor Sie beginnen, sollten Sie wissen, was die Login-Funktion tun soll. In der Regel bedeutet dies, zu überprüfen, ob Benutzer sich mit gültigen Anmeldedaten einloggen können und bei falschen Anmeldedaten ordnungsgemäß daran gehindert werden.
2. Machen Sie sich mit dem Produkt vertraut
Verbringen Sie ein paar Minuten damit, die Login-Seite zu erkunden. Verstehen Sie die Felder, Schaltflächen und Fehlermeldungen. Dies verschafft Ihnen eine klare Basis, um mit den Tests zu beginnen.
3. Beginnen Sie mit der Erkundung
Nachdem Sie die Grundlagen verstanden haben, beginnen Sie damit, mit dem Login-Formular zu interagieren. Probieren Sie verschiedene Kombinationen von Benutzername und Passwort aus. Geben Sie zum Beispiel einen gültigen Benutzernamen ein, lassen Sie das Passwort jedoch leer oder geben Sie falsche Anmeldedaten ein. Hier folgen Sie keinem Skript, sondern sehen einfach, was passiert, wenn Sie mit dem Formular spielen.
4. Testen Sie verschiedene Eingabekombinationen
Versuchen Sie ungewöhnliche Eingaben, um zu sehen, ob sie etwas kaputt machen. Geben Sie Sonderzeichen oder sehr langen Text in die Felder ein. Dies kann Eingabevalidierungsprobleme aufdecken, die formelle Testfälle möglicherweise übersehen.
5. Simulieren Sie das Benutzerverhalten
Testen Sie die Login-Funktion unter realen Bedingungen. Versuchen Sie zum Beispiel, sich mit den geöffneten Entwicklertools des Browsers anzumelden oder testen Sie das Login auf verschiedenen Geräten oder Browsern, um mögliche Inkonsistenzen zu entdecken.
6. Dokumentieren Sie die wichtigsten Erkenntnisse
Achten Sie darauf, alle Fehler oder unerwartetes Verhalten zu notieren, während Sie testen. Auch wenn diese Probleme klein erscheinen, könnten sie auf größere Probleme hinweisen.
7. Arbeiten Sie mit den Entwicklern zusammen
Teilen Sie schließlich Ihre Ergebnisse mit dem Entwicklungsteam. Besprechen Sie die entdeckten Probleme und arbeiten Sie gemeinsam daran, diese nach Priorität für die Lösung zu ordnen.
Es ist ein bisschen paradox, oder? Wir sprechen über Struktur in instinktbasierte, unstrukturierte Methoden. Aber man muss dennoch wissen, welche Schritte oder in welcher Reihenfolge man sie umsetzen soll, auch ohne formelle Testskripte.
Werkzeuge für Ad Hoc-Testing
Obwohl Ad Hoc-Testing weniger strukturiert ist und keine Werkzeuge erfordert, entstehen dennoch Lücken im Testprozess, wie wir oben gesehen haben. Es gibt jedoch Werkzeuge, die helfen können, diese Lücken zu schließen und Ihre Testbemühungen effizienter zu gestalten:
- aqua cloud: aqua bietet eine einheitliche Plattform, auf der Sie Ihre Ad-Hoc-Tests verfolgen und dokumentieren können. Dank 100% Nachvollziehbarkeit müssen Sie sich keine Sorgen machen, dass Fehler oder Testszenarien verloren gehen. Die zentrale Datenbank sorgt dafür, dass alle Ihre Tests, Ergebnisse und Fehler an einem Ort gespeichert werden, sodass Sie einfach darauf zugreifen und zusammenarbeiten können. Die 1-Klick-Capture-Integration ermöglicht eine nahtlose und visuell beeindruckende Kommunikation mit den Entwicklern. Die Integrationen von aqua mit Jira, Jenkins, Selenium oder Ranorex ermöglichen nahtloses Fehlertracking und Testautomatisierung. Wenn es um Geschwindigkeit geht, ist aqua auch in dieser Hinsicht eine starke Konkurrenz zum Ad-Hoc-Testing. Stellen Sie sich vor, Sie erstellen innerhalb von 3 Sekunden einen Testfall aus einer Anforderung. Dies bedeutet fast denselben Aufwand wie beim Ad-Hoc-Testing, bei dem keine Testfälle erforderlich sind. Sind Sie also bereit, einzutauchen?
Passen Sie die Geschwindigkeit des Ad-Hoc-Tests an mit 3 Sekunden AI-unterstütztem TMS
- Jira
Während Jira hauptsächlich ein Fehlerverfolgungstool ist, hilft es dabei, unerwartetes Verhalten, das während des Ad-Hoc-Tests auftritt, zu dokumentieren und zu verfolgen. Es ist entscheidend für das Melden von Fehlern und die Zusammenarbeit mit Entwicklern bei deren Behebung. Die Integration von aqua mit Jira stellt sicher, dass alle Fehler, die Sie während Ihres Ad-Hoc-Tests feststellen, schneller verfolgt, gemeldet und behoben werden können. - Selenium
Selenium kann verwendet werden, um einige Ihrer explorativen Tests schnell zu automatisieren, insbesondere bei sich wiederholenden Aktionen wie dem Einloggen oder dem Durchklicken von Seiten. Obwohl es kein traditioneller Ad-Hoc-Test ist, kann es Ihre Bemühungen unterstützen, indem es Zeit spart. aqua funktioniert auch gut mit Selenium, sodass Sie Zeit und Mühe sparen können. - Postman
Perfekt für API-Tests, hilft Ihnen Postman, schnell Anfragen zu senden, Antworten zu überprüfen und Probleme zu erkennen.
Fazit
Ad-Hoc-Tests bieten Flexibilität und schnelle Einblicke in das Verhalten Ihrer Software, insbesondere in Situationen, in denen strukturierte Testpläne möglicherweise nicht passen. Sie gedeihen in Situationen, die eine schnelle Problemidentifikation erfordern, und wenn Sie kreativ denken müssen, um Probleme aufzudecken. Denken Sie jedoch daran, dass es sich nicht um einen eigenständigen Ansatz handelt; strukturierte und moderne Testmethoden wie KI-Testmanagement spielen weiterhin eine entscheidende Rolle, um eine umfassende Abdeckung sicherzustellen.