Bei den meisten Arten von Softwaretests wird ein sorgfältig definierter Testplan verwendet, um die Abdeckung sicherzustellen. Diese Parameter decken zwar viele Eventualitäten bei der Verwendung einer Software ab, aber sie werden nicht immer das Verhalten eines Benutzers nachahmen, der mit der Anwendung nicht vertraut ist und einfach nur versucht, sie zu erkunden: Hier kommen die Affentests ins Spiel.
In diesem Artikel werfen wir einen Blick auf alles, was mit Affentests zu tun hat, einschließlich Software für Affentests, Verfahren, Typen, Ansätze und mehr.
Was ist ein Affenversuch?
Monkey-Tests sind eine zunehmend beliebte Software-Testtechnik. Dabei werden zufällige Eingaben in eine Anwendung gesendet, um die Unvorhersehbarkeit der Interaktion mit der Benutzeroberfläche zu simulieren.
Ziel ist es, Fehler oder Abstürze zu finden, die mit vordefinierten Testfällen nur schwer zu entdecken wären. Ein Affentest ahmt nach, wie eine Person ohne Erfahrung oder Wissen über eine Anwendung die Software zufällig erkunden könnte.
Diese Technik ist eine gute Option sowohl für
Belastung
und
Belastungstests
Anwendungen. In der Tat liefern die Tests fortlaufend zufällige Eingaben und versuchen so, die Anwendung zu zerstören.
Es gibt viele Ähnlichkeiten zwischen Affenversuchen und
Ad-hoc-Tests
insbesondere ihre Zufälligkeit und die fehlende Abhängigkeit von einem Testplan. Es gibt jedoch genügend Unterschiede zwischen den beiden, um sie als unterschiedliche Ansätze zu betrachten.
Während einige Entwickler meinen, dass Affentests eine Art Ad-hoc-Test sind, besteht ein wesentlicher Unterschied zwischen den beiden darin, dass Affentests von Personen durchgeführt werden können, die keine Kenntnisse über die Anwendung haben.
Beim Monkey-Testing geht es darum, keinen Testplan zu haben. Es geht darum, zufällige Eingaben zu machen mit dem Ziel, die Software zum Absturz zu bringen.
Warum nennt man es Affentests?
Es besteht keine Einigkeit darüber, warum diese Technik als Affentests bezeichnet wird. Es gibt jedoch einige überzeugende Theorien zu diesem Namen.
Theorie 1: Der Satz vom unendlichen Affen
Die erste Theorie besagt, dass der Name etwas mit dem Satz vom unendlichen Affen zu tun hat, einer Metapher, die zur Diskussion der statistischen Wahrscheinlichkeit verwendet wird. Sie besagt, dass ein Affe, der sich vor eine Schreibmaschine setzt und unendlich lange auf beliebige Tasten drückt, irgendwann das Gesamtwerk von William Shakespeare produzieren würde.
Die Idee dahinter ist, dass Monkey-Tests diese zufälligen Tastenkombinationen simulieren und mit genügend Zeit alle Eventualitäten abdecken, mit denen die Anwendung in der Produktion konfrontiert sein wird.
Theorie 2: Macintoshs „Der Affe“
Die andere Theorie besagt, dass der Name von einer MacOS-Anwendung aus dem Jahr 1983 namens „The Monkey“ stammt. Kurz gesagt, das Team, das am ersten Macintosh-Computer arbeitete, wollte einen Weg finden, seine Maschine unter Stress zu testen.
Sie dachten sich, dass sie die Belastbarkeit des Computers testen könnten, wenn sie einen Affen hätten, der verzweifelt auf die Tasten hämmert und die Maus bewegt. Da sie keinen lebenden Affen zur Verfügung hatten, entwickelten sie eine Anwendung, die diese Art der Nutzung simulieren konnte, und nannten sie „The Monkey“.
Warum sind Affenversuche wichtig?
Der Hauptgrund, warum Monkey-Tests so wichtig sind, besteht darin, dass sie den Teams helfen, Grenzfälle oder unerwartete Verhaltensweisen innerhalb einer Anwendung zu entdecken. Die Idee dahinter ist, dass Entwickler neben den traditionellen Methoden auch Affentests einsetzen können, um ein besseres Gefühl dafür zu bekommen, wie die App in der freien Wildbahn ankommt.
Selbst umfassende Produkttests können nicht mit Zehntausenden oder mehr Nutzern konkurrieren, die sich über einen langen Zeitraum mit einer Anwendung beschäftigen. In einem kleinen Prozentsatz dieser Fälle fordern die Benutzer die Anwendung auf, etwas Unerwartetes zu tun. Es ist fast unmöglich, all diese Szenarien mit Hilfe von Testfällen aufzudecken.
Mit dem Monkey-Test wird versucht, diese nahezu zufälligen Szenarien abzudecken. Wenn Entwickler einen Testfall erstellen, kennen sie sich in der Regel sehr gut mit der Anwendung aus. Sie verstehen die Ziele der Benutzer und wissen, mit welcher Reihenfolge von Interaktionen sie in einer App etwas erreichen können.
Die Zufallsauswahl dieser Eingaben bedeutet, dass die Anwendung auf eine Weise getestet wird, die die Entwickler nicht bedacht haben. Insgesamt erhöht dies die allgemeine Widerstandsfähigkeit und Langlebigkeit einer Software und stellt sicher, dass sie in die Welt hinausgehen und sich den Unwägbarkeiten eines breiten Spektrums von Benutzern stellen kann, ohne abzustürzen.
Wann sollten Sie Affenversuche durchführen?
Affenversuche sind eine hervorragende ergänzende Testmethode. Der größte Vorteil liegt in der Fähigkeit, unerwartete Fehler zu finden, die durch herkömmliche Softwaretestmethoden nicht aufgedeckt werden. Daher ist es am besten, wenn es zusammen mit Methoden wie:
In der Regel setzen die Entwickler Monkey-Tests zu Beginn des Testprozesses ein. Es ist besonders nützlich, wenn es keine vordefinierten Testpläne gibt, auf die man zurückgreifen kann.
Wie werden Affenversuche durchgeführt?
In der noch nicht allzu fernen Vergangenheit wurden die Tests an Affen manuell durchgeführt. Die Tester mussten Tasten drücken, Text eingeben, Objekte auswählen usw., um zu sehen, wie das System mit unkonventionellen Eingaben zurechtkommt. Hier gibt es offensichtliche Probleme. Erstens ist es ziemlich zeitaufwändig. Zweitens gibt es kaum eine Garantie, dass diese Maßnahmen alle Eventualitäten abdecken.
Beispiele für manuelle Affentests
Hier sind einige Beispiele dafür, wie manuelle Tests mit Affen durchgeführt werden. Sie kann Ihnen auch eine Vorstellung davon vermitteln, was automatisierte Tests mit Affen simulieren sollen.
- Der Tester navigiert durch eine Website, indem er auf zufällige Links klickt, um zu sehen, ob sie die Anwendung zum Absturz bringen oder zu unerwarteten Seiten führen können
- Ein Tester gibt zufällige Texte in ein Formularfeld ein, um zu sehen, wie die Anwendung reagiert
- Der Tester zieht und lässt Symbole und Objekte fallen, um zu sehen, ob sie sich wie erwartet verhalten oder unerwünschte Ergebnisse hervorrufen.
Verschiedene Arten von Affenversuchen
Es gibt drei Haupttypen von Monkey-Tests, die Entwickler verwenden, um bestimmte Informationen über die Belastbarkeit ihrer Anwendungen zu ermitteln.
1. Dummheitstest für Affen
Dumb Monkey Testing beschreibt einen Ansatz, bei dem der Tester nichts über die zu testende Anwendung weiß. Stattdessen wird der Tester gebeten, in völliger Unkenntnis des Arbeitsablaufs herumzustochern, Tasten zu drücken, Text einzugeben und so weiter. Diese Technik kann dazu beitragen, erhebliche Schwachstellen aufzudecken, die den Entwicklern nicht bewusst sind.
2. Tests mit intelligenten Affen
Beim Smart Monkey Testing kennt der Tester die Anwendung und ihre Ziele ein wenig und hat sogar detaillierte Informationen darüber, wie sie funktioniert. Bei diesem Verfahren wird auch eine gezieltere Art von Zufallsinput verwendet, der die Anwendung an bestimmte Grenzen bringen soll. Dieser Ansatz ist sowohl für Stress- als auch für Belastungstests geeignet.
3. Brillante Affenversuche
Brilliant Monkey Testing ist die nächsthöhere Stufe von Smart Monkey Testing. Der Tester verfügt über ein fundiertes und umfassendes Wissen über die Anwendung und wird auf der Grundlage dieses Wissens ausgewählt. Dieses Versäumnis kann dem Tester helfen, viele Fehler zu entdecken, denn er sollte das Produkt aus der Sicht des Benutzers verstehen.
Vor- und Nachteile von Affenversuchen
Bevor Sie sich für die Affenversuchstechnik entscheiden, müssen Sie deren Vor- und Nachteile kennen.
Vorteile von Affentests
1. Auffinden seltener oder versteckter Fehler
Der vielleicht überzeugendste Vorteil von Monkey-Tests ist die Fähigkeit dieser Technik, Fehler, Defekte oder Verhaltensweisen aufzudecken, die andernfalls unentdeckt bleiben würden. Das Auffinden dieser Randfälle ist mit herkömmlichen Testverfahren eine Herausforderung. Daher sind Monkey-Tests eine solide Methode, um auf Abstürze, Datenbeschädigungen und alles andere zu testen, was die Stabilität einer Anwendung gefährdet.
2. Sie gewährleistet Robustheit
Monkey-Tests sollen zeigen, wie eine Anwendung auf die unvorhersehbaren Bedingungen reagiert, mit denen sie in der realen Welt konfrontiert wird. Wenn eine Anwendung in die Hände des Benutzers gelegt wird, führt dies zu vielen verschiedenen Eingaben, die die Entwickler nicht vorhersehen können. Monkey-Tests ahmen diese Situation nach und führen zu zuverlässigeren Builds.
3. Kosten-Wirksamkeit
Im Vergleich zu anderen Testarten sind Affenversuche sehr kostengünstig. Hierfür gibt es mehrere Gründe. Erstens müssen Sie nicht viel Zeit damit verbringen, Anwendungsfälle für Ihre App zu entwerfen. Außerdem sind die Software-Tools für das Testen von Affen weitgehend automatisiert, so dass die Entwickler mehr Zeit für andere Aufgaben haben und Sie Geld sparen können.
4. Vielseitigkeit
Das Beste an Affentests ist, dass sie auch von Personen ohne technischen Hintergrund durchgeführt werden können. In manchen Fällen ist es in der Tat besser, jemanden zu haben, der völlig grün ist. Darüber hinaus sind diese Tests recht einfach einzurichten, was wiederum die Abhängigkeit von erfahrenen Ingenieuren verringert.
5. Frühzeitige Fehlererkennung
Das Auffinden und Beheben von Fehlern zu einem frühen Zeitpunkt im Entwicklungszyklus spart später Zeit. Das Testen mit Affen bringt ein gewisses Maß an Zufälligkeit in das Testen ein, was Ihnen helfen kann, Fehler in Ihrem Code zu finden, die leicht zu beheben sind.
Nachteile von Affentests
1. Erfassungsbereich
Affen-Tests können zwar zu einer verbesserten Testabdeckung führen, aber es fehlt ihnen die geplante und strategische Gründlichkeit anderer Testarten. Da Sie die Anwendung mit zufälligen Eingaben beschießen, sind Sie bei der Fehlersuche dem Chaos ausgeliefert. Das heißt nicht, dass nicht alles gefunden wird, aber ohne eine klare und vordefinierte Strategie können Sie nicht zu 100 % sicher sein, dass alles erfasst wurde.
2. Begrenzte Anwendungen
Affentests sind nicht für jede Art von Anwendung geeignet. Es eignet sich hervorragend für komplexe Anwendungen mit vielen verschiedenen Merkmalen und Funktionen, die vor allem das Potenzial für unerwartete Benutzerinteraktionen haben. Programme, die eher starre und vorhersehbare Funktionen bieten, werden von diesen Tests weniger profitieren.
3. Zeitaufwendig
Manuelle Tests mit Affen sind sehr zeitaufwändig. Es erfordert eine Vielzahl von Interaktionen mit Modulen und Software, wobei nicht garantiert werden kann, dass bei jeder Sitzung Fehler entdeckt werden. Zugegeben, Sie können den Prozess automatisieren, was viel Zeit und Ressourcen spart.
4. Falsch positive Ergebnisse
Aufgrund des chaotischen oder zufälligen Charakters von Monkey-Tests können einige Eingaben Szenarien simulieren, die in der realen Nutzung des Produkts nicht vorkommen werden. Dies kann zu falsch positiven Ergebnissen führen und die Programmierer dazu veranlassen, Probleme zu beheben, die nicht notwendig sind.
Was ist ein Chaos-Affen-Test?
Chaostests sind eine Technik der Softwareentwicklung, bei der kontrollierte und absichtliche Experimente eingesetzt werden, die darauf abzielen, ein System zu stören (und sogar Ausfälle herbeizuführen), um seine Widerstandsfähigkeit und Wiederherstellungsfähigkeit zu bewerten.
Die Idee, ein System absichtlich zu zerstören, um seine Widerstandsfähigkeit zu gewährleisten, ist in der Softwareentwicklung weit verbreitet, und diese Methoden führen in der Regel zu Builds, hinter denen die Ingenieure stehen können.
Im Jahr 2008 beschloss der beliebte Streaming-Dienst Netflix nach einer dreitägigen Datenbankstörung, zu Amazon Web Services (AWS) zu migrieren. Ziel war es, einzelne Fehlerquellen zu vermeiden und Skalierbarkeitsprobleme zu verringern, die sich aus der Erweiterung des Dienstes ergeben.
Das Team implementierte Chaos-Affentests, um öffentlich zugängliche Instanzen in der AWS-Infrastruktur zu testen. Die Vorteile waren zweifach:
- Der Prozess deckte Schwachstellen auf, die die Netflix-Ingenieure beheben konnten
- Dies inspirierte das Team, automatische Wiederherstellungsmechanismen für ihren Dienst zu entwickeln.
Chaos Monkey Testing ist ein Teil von Chaos Engineering. Er dient dazu, die Fehlertoleranz eines Systems und seine Fähigkeit zu testen, Stabilität und Leistung auch dann aufrechtzuerhalten, wenn einzelne Komponenten unerwartet ausfallen.
Obwohl sie mit dem Affentest verwandt ist, handelt es sich um eine eigenständige Technik.
Affentests vs. Gorillatests
Vielleicht haben Sie auch schon von dem Konzept der Gorilla-Tests in der Softwareentwicklung gehört. Obwohl beide Techniken die Namen von Primaten tragen, haben sie viele Ähnlichkeiten und Unterschiede. Lassen Sie uns untersuchen, was Gorilla-Tests sind und wo sie eingesetzt werden können.
Gorilla-Tests gelten als eine strukturiertere Version von Affentests. Im Vergleich dazu werden Monkey-Tests häufig in den frühen Testphasen eingesetzt, wenn noch keine formalen Testfälle verfügbar sind. Beim Gorilla-Test hingegen wird ein automatisiertes Tool oder Skript verwendet, um zufällige Eingaben für eine Softwareanwendung zu erzeugen.
Gorilla-Tests sind schnell und weitaus effizienter als manuelle Affen-Tests. Sie bietet eine breite Abdeckung und ist eine hervorragende Möglichkeit, Abstürze zu finden, die behoben werden müssen. Sie eignet sich jedoch am besten für Anwendungen mit genau definierten Grenzen oder um ein bestimmtes Modul gründlich zu testen.
Sowohl Affentests als auch Gorillatests haben ihren Platz im modernen Softwareentwicklungstest. Sie zu verstehen ist der Schlüssel zur Anwendung des richtigen Ansatzes im richtigen Bereich.
Welches ist das beste Werkzeug zum Testen von Affen?
Software zum Testen von Affen ist zu einem unverzichtbaren Bestandteil des Werkzeugkastens eines modernen Entwicklers geworden. Es gibt jedoch einige Möglichkeiten. Welches ist also das beste Werkzeug für Affenversuche? Hier sind einige, über die Sie Bescheid wissen sollten.
1. ZAPTEST
ZAPTEST ist ein leistungsstarkes
kostenloses und unternehmensweites Tool zur Automatisierung von Softwaretests
die eine breite Palette von Testautomatisierungstechniken, einschließlich Affentests, unterstützt. Einige der ZAPTEST-Funktionen, die beim Testen von Affen helfen, sind:
- Skriptaufzeichnung ohne Code: Teams können Benutzerinteraktionen aufzeichnen und sie in Testcode umwandeln.
- Erzeugung von Eingaben: ZAPTEST erleichtert die Generierung zufälliger Eingaben, die ein Kernelement von Monkey-Tests sind
- Robuste Berichterstattung: ZAPTEST bietet leistungsstarke Berichtsfunktionen, die Sie bei der Dokumentation Ihrer Tests unterstützen
Natürlich sind diese Funktionen nur ein kleiner Teil der Möglichkeiten von ZAPTEST für eine breite Palette von Testverfahren, einschließlich Affentests. Mit der WebDriver-Integration, den KI-Funktionen und dem ZAPTEST CoPilot können Teams die Zukunft des Softwaretestens an einem einzigen Ort erleben.
Darüber hinaus erhalten ZAPTEST Enterprise-Benutzer Zugang zu einem Vollzeit-ZAP-Experten und unbegrenzten Lizenzen – und das alles zu einem kalkulierbaren Festpreis.
2. Appium
Appium ist ein Open-Source-Tool. Sie können es sowohl für Android als auch für iOS verwenden. Sie ermöglicht die Automatisierung von Interaktionen bei mobilen Anwendungen und bietet Funktionen für Affentests. Entwickler können eine Vielzahl von Benutzeroberflächenreaktionen nachahmen, wie Texteingabe, Klicken, Tippen und Scrollen.
Appium ist zwar ein großartiges Tool für Mobilgeräteentwickler, aber für Desktop- und Web-Tests fehlen ihm die Fähigkeiten.
3. Affenversuch
Monkey Test It ist eine cloudbasierte Testplattform mit einer Reihe von Testfunktionen, zu denen auch Affentests gehören. Monkey Test It ist zwar sehr benutzerfreundlich, aber vielleicht nicht so leistungsfähig wie andere Tools.
Weitere Nachteile sind, dass es eleganter aussehen und eine bessere Dokumentation enthalten könnte. Darüber hinaus haben sich einige Nutzer über ungenaue Testergebnisse beschwert. Allerdings handelt es sich um ein einfaches Programm zu einem niedrigen Preis, so dass man nicht viel erwarten darf.
4. MonkeyTestJS
MonkeyTestJS ist ein australisches Open-Source-Tool auf JavaScript-Basis, das ausschließlich für Webanwendungen entwickelt wurde. Es ist ziemlich einfach, aber es ist mehr als fähig, die Aufgabe zu erfüllen. Mit diesem Tool können Entwickler die Interaktionen zwischen Benutzer und Webanwendung simulieren, z. B. Klicks, Formularübermittlung, Tastatureingaben und vieles mehr.
Ein offensichtlicher Nachteil des Tools ist, dass es nur für Webanwendungen zur Verfügung steht. Es lohnt sich jedoch, sie in Ihrem Werkzeugkasten zu haben.
Welches ist das beste Tool für den Android-Affentest?
Es gibt ein paar gute Optionen für Entwickler, die ein bisschen Chaos in ihre Android-Anwendungstests bringen wollen. Schauen wir uns zwei an.
1. UI/Application Exerciser Monkey für Android
UI/Application Exerciser Monkey für Android ist ein Kommandozeilen-Tool, mit dem Entwickler pseudozufällige Eingaben oder Ereignisse sowohl an Android-Geräte als auch an Emulationen senden können. Dieses Tool wird in der Android Debug Bridge Shell ausgeführt.
2. MonkeyRunner für Android
MonkeyRunner für Android ist ein beliebtes Tool für Android-Affentests. Bei der Software handelt es sich um eine API, mit der Entwickler Programme schreiben können, die ein Android-Gerät entweder emulieren oder steuern. Es ist auch eine gute Option für Funktions- und Einheitstests.
Diese beiden Anwendungen sind eine gute Wahl. Allerdings sind sie recht technisch, was nicht allen Teams zusagen wird.
Sollten Affenversuche automatisiert werden?
Eines der größten Probleme beim manuellen Testen von Affen ist der hohe Zeitaufwand. Außerdem sollten Sie beachten, dass es für einige wenige Tester schwierig ist, die verschiedenen Interaktionen zu simulieren, die eine breite Basis von Benutzern mit einer bestimmten Anwendung haben könnte.
Drei unmittelbare Nachteile fallen uns sofort ins Auge. Manuelle Affenversuche sind:
- Zeitaufwendig
- Teuer
- Potenziell unzureichender Erfassungsgrad
Ein automatisiertes Testwerkzeug für Affen löst all diese Probleme.
Ist ZAPTEST die richtige Wahl für Ihre Bedürfnisse im Bereich Affentests?
Monkey-Tests sind eine gute Technik, die Sie in Ihrem Testrepertoire haben sollten, besonders wenn Sie komplexe Anwendungen entwickeln. Der Kauf einer speziellen Software für die Prüfung von Affen ist jedoch teuer.
ZAPTEST
ist ein flexibles und leistungsstarkes
Werkzeug zur Testautomatisierung.
Es ist in hohem Maße anpassbar und ermöglicht es sowohl Entwicklern als auch nicht-technischen Teams, eine endlose Anzahl von Software-Testtechniken zu entwickeln und zu entwerfen, einschließlich Affentests.
Affentests sind eine gute Wahl, wenn sie mit anderen Testarten ergänzt werden. ZAPTEST bietet alles unter einem Dach und zusätzlich hochwertige RPA-Werkzeuge.
Abschließende Überlegungen
Monkey-Testing-Software bietet Entwicklern eine unkonventionelle Möglichkeit, ihre Anwendungen zu testen. Die Stärke dieser Technik liegt in ihrer Fähigkeit, die unzähligen unvorhersehbaren Möglichkeiten zu simulieren, wie ein Benutzer mit einer Software umgehen könnte. Kurz gesagt, Monkey-Tests bieten eine Abdeckung, die mit einem Testplan nur schwer zu erreichen wäre.