Wat is apen- en gorillatesten? Voorbeelden, verschil
⚡ Slimme samenvatting
Bij monkey testing wordt willekeurige, ongeplande invoer aan een draaiende applicatie gegeven, waarna wordt gekeken of deze de test doorstaat. Hierdoor worden crashes, vastlopers en onafgehandelde situaties aan het licht gebracht lang voordat er ook maar één vooraf gedefinieerd testgeval is geschreven.

Wat is apenonderzoek?
Apenproeven Monkey testing is een softwaretesttechniek waarbij de tester willekeurige invoer in een applicatie geeft zonder vooraf gedefinieerde testgevallen en controleert hoe de applicatie zich gedraagt, met name of deze crasht. Het doel van monkey testing is om bugs en fouten te vinden door middel van experimentele, ongestructureerde interactie.
De naam is afgeleid van een eenvoudige afbeelding, zoals hieronder weergegeven.
- Bij monkey testing wordt de tester (en soms de ontwikkelaar) als de "aap" beschouwd.
- Als een aap een computer zou gebruiken, zou hij taken willekeurig uitvoeren, zonder het systeem te begrijpen.
- Op dezelfde manier past de tester willekeurige invoer toe op het te testen systeem om fouten te vinden zonder vooraf een testgeval te definiëren.
- In sommige gevallen is het testen op apen gericht op testen van een eenheid or GUI-testen.
Wat is Gorilla-testen?
Gorilla-testen Testen is een softwaretesttechniek waarbij een module van het programma herhaaldelijk wordt getest om te bevestigen dat deze correct werkt en geen fouten bevat.
Een enkele module kan honderd keer of vaker op exact dezelfde manier worden getest, vandaar dat gorilla-testen ook wel "frustrerend testen" wordt genoemd. Bij monkey-testen wordt de applicatie willekeurig getest; bij gorilla-testen wordt op één plek gefocust totdat deze het begeeft of juist waterdicht blijkt.
Soorten apentesten
Monkey testing wordt onderverdeeld in categorieën op basis van de mate waarin de tester het systeem kent. Het onderstaande diagram vat de drie typen samen.
- Domme aap: De tester heeft geen idee van het systeem of de functionaliteit ervan, en er is geen garantie dat de invoer geldig is.
- Slimme aap: De tester heeft een nauwkeurig beeld van het systeem, het doel ervan en de functionaliteit, navigeert erdoorheen en levert geldige invoer.
- Geniale aap: De tester werkt met echt gebruikersgedrag en kan aangeven waar defecten waarschijnlijk zullen optreden.
Apentesten versus gorillatesten versus ad-hoc testen
Testen op apen, testen op gorilla's en ad-hoc testen Ze hebben een onconventioneel karakter gemeen, waardoor ze vaak door elkaar worden gehaald. De twee onderstaande tabellen maken onderscheid.
Apenproeven versus gorillaproeven
| Aap testen | Gorilla-testen |
|---|---|
| Willekeurig uitgevoerd, zonder specifiek vooraf gedefinieerde testgevallen. | Ze zijn niet vooraf bepaald en ook niet willekeurig; dezelfde controles worden simpelweg herhaald. |
| Wordt uitgevoerd op het gehele systeem en kan vele testgevallen omvatten. | Uitgevoerd op een paar geselecteerde modules met een beperkt aantal testgevallen. |
| Het doel is om te controleren op een systeemcrash. | Het doel is om te controleren of de module naar behoren werkt. |
Monkey Testing versus Ad-hoc Testing
| Aap testen | Ad-hoc testen |
|---|---|
| Willekeurig uitgevoerd, zonder specifiek vooraf gedefinieerde testgevallen. | Uitgevoerd zonder planning of documentatie, dus er zijn geen testgevallen of SRS opgesteld. |
| Testers weten mogelijk niet wat het systeem is of waar het voor dient. | De tester moet het systeem goed begrijpen voordat de tests beginnen. |
| Het doel is om te controleren op een systeemcrash. | Het doel is om het systeem willekeurig in subonderdelen te verdelen en hun functionaliteit te controleren. |
Voordelen en nadelen van apenproeven
Omdat bij deze techniek planning wordt opgeofferd voor snelheid, komen de voordelen en nadelen ervan voort uit dezelfde eigenschap.
Voordelen van apenproeven
- Nieuwe soorten insecten: De tester kan nu buiten de eerder beschreven scenario's werken, waardoor fouten aan het licht komen waar niemand aan had gedacht om in het script op te nemen.
- Eenvoudig uit te voeren: Het uitvoeren van willekeurige acties in combinatie met willekeurige data is een snelle manier om het systeem te testen.
- Less bekwame mensen: Testen met apen kan vaak worden uitgevoerd zonder dat er zeer ervaren testers nodig zijn.
- Less duur: Het vereist aanzienlijk minder investering om op te zetten en te gebruiken dan een gescript softwarepakket.
Nadelen van apenproeven
- Het kan lastig zijn om bugs te reproduceren: Omdat de invoer willekeurig is, is het mogelijk dat een fout niet kan worden gereproduceerd zonder een vastgelegde seed.
- Less nauwkeurigheid: De tester kan geen exact scenario definiëren en kan de nauwkeurigheid van wat er is behandeld niet garanderen.
- Technische expertise blijft nuttig: Om de bevindingen betekenisvol te houden, moeten testers een goede kennis van het betreffende domein hebben.
- Langzaam in verhouding tot de opbrengst: Tests kunnen lang doorgaan en toch weinig defecten opleveren, waardoor er hiaten in het systeem ontstaan.
Hoe voer je een monkey testing uit?
Monkey testing wordt veel efficiënter wanneer een tool het aanstuurt en het kan worden uitgevoerd tegen Android Dit omvat zowel builds als desktop- en webapplicaties. Het algemene proces is als volgt:
- Registreer de te testen applicatie bij de tool of de speciale server die deze zal aansturen.
- Bereid de referenties en configuratie voor die de tool nodig heeft om een testsuite te bouwen.
- Voer de samengestelde testsuite uit.
- Laat de tool zijn logbestand bijhouden — het "monkey test"-logbestand registreert elke gegenereerde gebeurtenis en de resultaten.
- Laat het proces doorgaan totdat het systeem vastloopt, waarna de foutieve actie in het logboek wordt vastgelegd.
- Deel het rapport met het verantwoordelijke team en bewaar de testgegevens voor toekomstig gebruik.
Bewaar alle logbestanden. Een willekeurige run is later alleen bruikbaar als de reeks gebeurtenissen en de seed die deze heeft gegenereerd, zijn opgeslagen. defectbeheer kan de crash herleiden tot een reproduceerbare invoer.
Monkey Testing-tools
Monkey testing is meestal geautomatiseerd, omdat een machine duizenden gebeurtenissen kan genereren in de tijd dat een mens er een paar dozijn produceert. De meest gebruikte opties zijn:
- UI/Applicatie-oefenaap: een commandoregelprogramma ingebouwd in Android dat loopt in de ADB shell en stuurt pseudo-willekeurige reeksen gebruikersgebeurtenissen, zoals tikken, gebaren en toetsaanslagen, plus gebeurtenissen op systeemniveau, naar een apparaat of emulator.
- MonkeyRunner: een aparte Python API Het is een programma dat apparaten en emulators vanaf een werkstation aanstuurt, specifieke commando's verstuurt en schermafbeeldingen maakt. Ondanks de naam is het niet hetzelfde programma als de Exerciser Monkey.
- UI Automator en Appium: algemeen mobiel testen frameworks die geprogrammeerd kunnen worden om semi-willekeurige gebeurtenisreeksen te activeren tijdens een build.
- Fuzzing-tools zoals AFL: Hetzelfde idee van willekeurige invoer toegepast op data in plaats van gebaren, wat wordt behandeld in fuzz-testen.
De toolondersteuning voor monkey testing is beperkter dan voor scripted testing. automatisering testenDaarom combineren de meeste teams een generieke gebeurtenisgenerator met hun bestaande framework in plaats van een specifiek product aan te schaffen.
Wanneer moet je monkey testing gebruiken?
Monkey testing verdient zijn nut in specifieke situaties en is geen algemene vervanging voor geplande tests.
Gebruik het wanneer:
- Een vroege versie heeft een eenvoudige stabiliteitstest nodig voordat er formele testgevallen bestaan.
- De interface is zeer interactief — met spelletjes, tekenprogramma's en mediaspelers — en het daadwerkelijke gebruikersgedrag is moeilijk te voorspellen.
- Wil je een bad nemen of spanning Een run die urenlang zoekt naar crashes, geheugenlekken en onafgehandelde toestanden.
- Een release heeft de scriptmatige controles doorstaan en u wilt een onafhankelijke controle uitvoeren op alles wat het script niet heeft aangepakt.
Vermijd dit wanneer:
- Je hebt herhaalbaar bewijs nodig dat aan een vereiste is voldaan — dat is de taak van een schriftelijke verklaring. testcase.
- De build is zo instabiel dat elke uitvoering direct vastloopt, waardoor alles achter de eerste fout verborgen blijft.
- De tijd dringt, want een willekeurige zoektocht biedt geen garantie dat je iets vindt.
In de praktijk worden de beste resultaten behaald door verschillende benaderingen te combineren: gestandaardiseerde tests dekken de bekende processen af, verkennende tests Hij onderzoekt doelbewust het onbekende, terwijl hij met behulp van apenproeven alles aanpakt waarvan ze beiden aannamen dat het nooit zou gebeuren.


