Was sind Affen- und Gorilla-Tests? Beispiele, Unterschied
โก Intelligente Zusammenfassung
Beim Monkey-Testing werden zufรคllige, ungeplante Eingaben in eine laufende Anwendung eingespeist und beobachtet, ob diese รผberlebt. Dadurch werden Abstรผrze, Einfrieren und unbehandelte Zustรคnde lange vor dem Schreiben eines vordefinierten Testfalls aufgedeckt.
Was ist Monkey Testing?
Affentest Monkey-Testing ist eine Softwaretestmethode, bei der der Tester zufรคllige Eingaben in eine Anwendung macht, ohne vordefinierte Testfรคlle, und das Verhalten der Anwendung รผberprรผft, insbesondere ob sie abstรผrzt. Ziel des Monkey-Testings ist es, Fehler und Bugs durch experimentelle, unstrukturierte Interaktion aufzuspรผren.
Der Name leitet sich von einem einfachen Bild ab, das unten abgebildet ist.
- Beim Monkey-Testing wird der Tester (und manchmal auch der Entwickler) als โAffeโ behandelt.
- Wenn ein Affe einen Computer benutzen wรผrde, wรผrde er Aufgaben zufรคllig ausfรผhren, ohne das System zu verstehen.
- Auf die gleiche Weise wendet der Tester zufรคllige Eingaben auf das zu testende System an, um Fehler zu finden, ohne vorher einen Testfall zu definieren.
- In einigen Fรคllen zielen Affentests darauf ab, Unit-Test or GUI-Tests.
Was ist Gorilla-Test?
Gorilla-Test ist eine Softwaretesttechnik, bei der ein Modul des Programms wiederholt getestet wird, um zu bestรคtigen, dass es korrekt funktioniert und keine Fehler enthรคlt.
Ein einzelnes Modul kann hundertmal oder รถfter auf exakt dieselbe Weise getestet werden, weshalb Gorilla-Testing auch als โfrustrierendes Testenโ bekannt ist. Monkey-Testing verteilt sich zufรคllig รผber die gesamte Anwendung; Gorilla-Testing hingegen testet gezielt eine Stelle, bis ein Fehler auftritt oder die Anwendung sich als stabil erweist.
Arten von Affentests
Monkey-Testing wird in Kategorien unterteilt, je nachdem, wie gut der Tester das System kennt. Das folgende Diagramm fasst die drei Typen zusammen.
- Dummer Affe: Der Tester hat keine Kenntnis vom System oder dessen Funktionsweise, und es gibt keine Gewรคhr dafรผr, dass die Eingaben gรผltig sind.
- Schlauer Affe: Der Tester hat eine genaue Vorstellung vom System, seinem Zweck und seiner Funktionsweise, navigiert darin und liefert gรผltige Eingaben.
- Brillanter Affe: Der Tester arbeitet mit dem Verhalten realer Nutzer und kann angeben, wo Fehler wahrscheinlich auftreten.
Affentest vs. Gorillatest vs. Ad-hoc-Test
Affentests, Gorillatests und Ad-hoc-Tests Sie haben einen unvorhersehbaren Charakter, weshalb sie oft verwechselt werden. Die beiden folgenden Tabellen verdeutlichen die Unterschiede.
Affentest vs. Gorillatest
| Affentest | Gorilla-Tests |
|---|---|
| Die Tests wurden zufรคllig durchgefรผhrt, ohne dass speziell vordefinierte Testfรคlle vorab festgelegt wurden. | Weder vordefiniert noch zufรคllig โ es werden einfach dieselben Prรผfungen wiederholt. |
| Wird am gesamten System durchgefรผhrt und kann zahlreiche Testfรคlle umfassen. | Die Durchfรผhrung erfolgte an einigen ausgewรคhlten Modulen mit wenigen Testfรคllen. |
| Ziel ist es, einen Systemabsturz festzustellen. | Ziel ist es zu รผberprรผfen, ob das Modul ordnungsgemรคร funktioniert. |
Monkey-Testing vs. Ad-hoc-Testing
| Affentest | Ad-hoc-Tests |
|---|---|
| Die Tests wurden zufรคllig durchgefรผhrt, ohne dass speziell vordefinierte Testfรคlle vorab festgelegt wurden. | Die Durchfรผhrung erfolgte ohne Planung oder Dokumentation, daher wurden keine Testfรคlle oder SRS vorbereitet. |
| Die Tester wissen mรถglicherweise nicht, was das System ist oder wozu es dient. | Der Tester muss das System gut verstehen, bevor der Test beginnt. |
| Ziel ist es, einen Systemabsturz festzustellen. | Ziel ist es, das System nach dem Zufallsprinzip in Teilsysteme zu zerlegen und deren Funktionalitรคt zu รผberprรผfen. |
Vor- und Nachteile des Affentests
Da bei dieser Technik die Planung gegen die Geschwindigkeit eingetauscht wird, beruhen ihre Vorteile und ihre Schwรคchen auf derselben Eigenschaft.
Vorteile des Affentests
- Neue Arten von Fehlern: Dem Tester steht es frei, auch auรerhalb der zuvor genannten Szenarien zu arbeiten, wodurch Fehler aufgedeckt werden, an deren Skript niemand gedacht hat.
- Einfach auszufรผhren: Das Anordnen zufรคlliger Aktionen auf zufรคllige Daten ist eine schnelle Mรถglichkeit, das System zu testen.
- Less Fachkrรคfte: Affentests kรถnnen oft auch ohne hochqualifizierte Testpersonen durchgefรผhrt werden.
- Less teuer: Es benรถtigt wesentlich weniger Aufwand fรผr Einrichtung und Betrieb als eine skriptbasierte Suite.
Nachteile von Affentests
- Fehler kรถnnen schwer zu reproduzieren sein: Da die Eingaben zufรคllig sind, ist es unter Umstรคnden nicht mรถglich, einen Fehler ohne einen aufgezeichneten Startwert zu reproduzieren.
- Less Richtigkeit: Der Tester kann kein genaues Szenario definieren und kann die Richtigkeit des Abgedeckten nicht garantieren.
- Technisches Fachwissen ist nach wie vor hilfreich: Damit die Ergebnisse aussagekrรคftig sind, benรถtigen die Tester gute Fachkenntnisse.
- Langsam im Verhรคltnis zum Ertrag: Die Testlรคufe kรถnnen sich รผber einen langen Zeitraum erstrecken und dennoch nur wenige Fehler liefern, wodurch Lรผcken im System entstehen.
Wie man Affentests durchfรผhrt
Monkey-Testing wird wesentlich effizienter, wenn ein Tool den Prozess steuert und er gegen โฆ ausgefรผhrt werden kann. Android Erstellt sowohl Desktop- als auch Webanwendungen. Der allgemeine Ablauf ist wie folgt:
- Registrieren Sie die zu testende Anwendung bei dem Tool oder dem dedizierten Server, der sie ausfรผhren wird.
- Bereiten Sie die Referenzen und Konfigurationen vor, die das Tool zum Erstellen einer Testsuite benรถtigt.
- Fรผhren Sie die erstellte Testsuite aus.
- Lassen Sie das Tool sein Protokoll schreiben โ die Protokolldatei โmonkey testโ zeichnet jedes generierte Ereignis und die Ergebnisse auf.
- Lassen Sie den Vorgang so lange laufen, bis das System einen Absturzpunkt erreicht, an dem die fehlerhafte Aktion im Protokoll erfasst wird.
- Teilen Sie den Bericht mit dem zustรคndigen Team und speichern Sie die Testdaten zur spรคteren Verwendung.
Bewahren Sie alle Protokolle auf. Ein Zufallslauf ist spรคter nur dann nรผtzlich, wenn die Ereignissequenz und der zugehรถrige Seed gespeichert wurden. Mรคngelmanagement kann den Absturz auf eine reproduzierbare Eingabe zurรผckfรผhren.
Affen-Testwerkzeuge
Monkey-Testing ist รผblicherweise automatisiert, da eine Maschine Tausende von Ereignissen generieren kann, wรคhrend eine Person nur einige Dutzend erzeugt. Die gรคngigen Optionen sind:
- UI/Anwendungs-รbungsaffe: ein in integriertes Befehlszeilentool Android das lรคuft in der adb shell und sendet pseudozufรคllige Datenstrรถme von Benutzerereignissen, wie Tippen, Gesten und Tastendrรผcken, sowie Systemereignisse an ein Gerรคt oder einen Emulator.
- MonkeyRunner: ein separates Python API Es steuert Gerรคte und Emulatoren von einer Workstation aus, sendet spezifische Befehle und erstellt Screenshots. Trotz des Namens ist es nicht dasselbe Tool wie der Exerciser Monkey.
- UI Automator und Appium: General mobile Tests Frameworks, die so programmiert werden kรถnnen, dass sie wรคhrend eines Builds halbzufรคllige Ereignissequenzen auslรถsen.
- Fuzzing-Tools wie AFL: Die gleiche Idee der Zufallseingabe, angewendet auf Daten anstatt auf Gesten, wird in Fuzz-Tests.
Die Tool-Unterstรผtzung fรผr Monkey-Tests ist geringer als fรผr skriptbasierte Tests. AutomatisierungstestsDaher kombinieren die meisten Teams einen generischen Ereignisgenerator mit ihrem bestehenden Framework, anstatt ein dediziertes Produkt zu kaufen.
Wann man Monkey-Testing einsetzen sollte
Monkey-Testing verdient seinen Platz eher in bestimmten Situationen als als allgemeiner Ersatz fรผr geplante Tests.
Verwenden Sie es, wenn:
- Fรผr eine frรผhe Version ist ein einfacher Stabilitรคtscheck erforderlich, bevor formale Testfรคlle vorliegen.
- Die Benutzeroberflรคche ist hochgradig interaktiv โ Spiele, Zeichenwerkzeuge, Mediaplayer โ und das tatsรคchliche Nutzerverhalten ist schwer vorherzusagen.
- Sie mรถchten ein Bad nehmen oder Der Stress Ein Prozess, der รผber viele Stunden hinweg nach Abstรผrzen, Speicherlecks und unbehandelten Zustรคnden sucht.
- Eine Freigabe hat die vorprogrammierten Prรผfungen bestanden, und Sie mรถchten eine unabhรคngige รberprรผfung durchfรผhren, um sicherzustellen, dass alles, was vom Skript nicht berรผhrt wurde, abgedeckt ist.
Vermeiden Sie es, wenn:
- Sie benรถtigen wiederholbare Nachweise dafรผr, dass eine Anforderung erfรผllt ist โ das ist die Aufgabe eines schriftlichen Testfall.
- Der Build ist so instabil, dass jeder Durchlauf sofort abstรผrzt, wodurch alles hinter dem ersten Fehlschlag verborgen bleibt.
- Die Zeit drรคngt, da ein zufรคlliger Durchlauf keine Garantie dafรผr bietet, etwas zu finden.
In der Praxis erzielt man die besten Ergebnisse durch die Kombination verschiedener Ansรคtze: Skriptbasierte Tests decken die bekannten Ablรคufe ab. exploratives Testen Er erforscht das Unbekannte bewusst und testet mit Affen das, was beide fรผr unmรถglich hielten.


