Monkey TestingMonkey-Testing (eng. Affentesten) ist eine Technik des Softwaretestens, bei der simuliert wird, ein Affe würde die Anwendung nutzen, d. h. es werden zufällige Eingaben auf der Benutzeroberfläche erzeugt und dabei überprüft, ob die Anwendung oder das System abstürzt. Der Affentest ist also die Extremform des Negativtests. ÜberblickWährend die Quelle des Namens „Monkey“ (eng. Affe) unsicher ist, wird von einigen angenommen, dass der Name mit dem Infinite-Monkey-Theorem zu tun hat,[1] welches besagt, dass ein Affe, wenn er lange genug auf einer Schreibmaschine tippt, irgendwann die kompletten Werke von William Shakespeare erzeuge. Andere nehmen an, dass der Name von der klassischen Mac-OS-Anwendung „The Monkey“ abgeleitet wurde, die von Steve Capps vor 1983 entwickelt wurde, um zufällige Ereignisse in Mac-Programmen zu füttern, und um Programmfehler in MacPaint zu finden.[2] Arten von Monkey TestingMonkey-Testing kann in „dummes“ und „intelligentes“ Monkey-Testing (eng. dumb bzw. smart monkey testing) unterschieden werden. Dummes Monkey-TestingDummes Monkey-Testing hat folgende Eigenschaften:
Intelligentes Monkey-TestingIntelligentes Monkey-Testing wird normalerweise über folgende Eigenschaften unterschieden:
Manchmal wird intelligentes Monkey-Testing auch als brillantes Monkey-Testing (eng. brilliant monkey testing) bezeichnet, wenn es versucht, sich dem typischen Nutzerverhalten anzunähern und Aussagen über die Wahrscheinlichkeit des Auftretens der gefundenen Fehler machen kann. Vor- und NachteileVorteile Monkey-Testing ist ein effizienter Weg, um einige Out-of-the-Box-Fehler zu identifizieren. Da die getesteten Szenarien meist ad hoc sind, kann die Affenprüfung auch ein guter Weg sein, um Last- und Stresstests durchzuführen. Die intrinsische Zufälligkeit von Monkey-Testing macht es auch zu einer guten Methode, um kritische Fehler zu finden, die das gesamte System zerstören können. Das Aufsetzen von Monkey-Testing ist einfach, also gut geeignet für jede Art von Anwendung. Wenn intelligentes Monkey-Testing richtig konfiguriert ist und über ein ausreichend gutes Zustandsmodell verfügt, kann es gut verschiedene Arten von Fehlern finden. Nachteile Die Zufälligkeit von Monkey-Testing macht es oft schwierig oder unmöglich, die Fehler zu reproduzieren und damit auch anspruchsvoll und zeitaufwendig, sie zu analysieren. Bei bestimmten Systemen muss Monkey-Testing lange Zeit laufen, bevor es einen Fehler findet. Ähnliche Techniken und UnterscheidungenWährend Monkey-Testing gelegentlich als eine Unterart von Fuzz Testing[3][4] angesehen wird und die beiden Begriffe in der Regel zusammen verwendet werden, sind andere der Meinung, sie unterscheiden sich darin, dass Monkey-Testing sich mehr über zufällige Aktionen definiert, Fuzz-Testing hingegen mehr über zufällige, aber strukturierte Daten (bspw. XML).[5] Monkey-Testing unterscheidet sich auch von Ad-hoc-Tests, da Ad-hoc-Tests ohne Planung und Dokumentation durchgeführt werden, und es das Ziel einer Ad-hoc-Prüfung ist, das System zufällig in Unterabschnitte aufzuteilen und ihre Funktionalität zu überprüfen. Monkey-Testing hingegen prüft nicht die fachliche Funktionalität, sondern nur auf Robustheit. Tool-Unterstützung
Einzelnachweise
|
Portal di Ensiklopedia Dunia