De meeste soorten softwaretests maken gebruik van een zorgvuldig gedefinieerd testplan om dekking te garanderen. Maar hoewel deze parameters veel van de mogelijkheden van het gebruik van software dekken, zullen ze niet altijd het gedrag nabootsen van een gebruiker die niet bekend is met de applicatie en er op een verkennende manier mee probeert om te gaan: Enter aap testen.
In dit artikel kijken we naar alles wat met apen testen te maken heeft, zoals software voor apen testen, processen, soorten testen, benaderingen en meer.
Wat zijn tests met apen?
Aaptesten is een steeds populairdere testtechniek voor software. Hierbij worden willekeurige invoergegevens naar een toepassing gestuurd om de onvoorspelbaarheid van interactie met gebruikersinterfaces te simuleren.
Het doel is om bugs of crashes te vinden die moeilijk te detecteren zijn met vooraf gedefinieerde testgevallen. Een apentest bootst na hoe iemand zonder ervaring of kennis van een applicatie de software willekeurig zou kunnen verkennen.
Deze techniek is een goede optie voor zowel
belasting
en
belastingstesten
toepassingen. In feite bieden tests continue willekeurige invoer in een poging om de applicatie te breken.
Er zijn veel overeenkomsten tussen testen met apen en
ad hoc testen
In het bijzonder hun willekeurige aard en het gebrek aan afhankelijkheid van een testplan. Er zijn echter genoeg verschillen tussen de twee om ze als verschillende benaderingen te beschouwen.
Hoewel sommige ontwikkelaars suggereren dat testen met apen een soort ad-hoc testen is, is een belangrijk verschil tussen de twee dat testen met apen kan worden uitgevoerd door mensen zonder enige kennis van de applicatie.
Aaptesten gaat over het niet hebben van een testplan. Het gaat om het invoeren van willekeurige gegevens met als doel de software te laten crashen.
Waarom wordt het testen met apen genoemd?
Er is geen consensus over waarom deze techniek aaptesten wordt genoemd. Er zijn echter een paar overtuigende theorieën achter de naam.
Theorie 1: Stelling van de oneindige aap
De eerste theorie suggereert dat de naam te maken heeft met de oneindige aap stelling, een metafoor die gebruikt wordt om statistische waarschijnlijkheid te bespreken. In het kort komt het erop neer dat als een aap voor een typemachine zou zitten en oneindig lang op willekeurige toetsen zou drukken, hij op een gegeven moment het complete werk van William Shakespeare zou produceren.
Het idee hierachter is dat het testen met een aap deze willekeurige toetsaanslagen simuleert en met genoeg tijd zal het elke eventualiteit die de applicatie in productie tegenkomt dekken.
Theorie 2: “De aap” van Macintosh
De andere theorie is dat de naam afkomstig is van een MacOS-programma uit 1983 met de naam “The Monkey”. Kortom, het team dat werkte aan de eerste Macintosh-computer wilde een manier vinden om hun machine te testen op stress.
Ze redeneerden dat als ze een aap als een bezetene op de toetsen lieten rammen en de muis lieten bewegen, dit hen zou helpen om de veerkracht van de computer te testen. Ze hadden geen levende aap bij de hand, dus bouwden ze een applicatie die dit soort gebruik kon simuleren en noemden het “The Monkey”.
Waarom is het testen van apen belangrijk?
De belangrijkste reden waarom monkey testing belangrijk is, is dat het teams helpt om edge cases of onverwacht gedrag in een app te ontdekken. Het idee hierachter is dat ontwikkelaars aaptesten kunnen gebruiken naast meer traditionele methoden om een beter idee te krijgen van hoe de app in het wild zal worden ontvangen.
Zelfs het uitgebreid testen van een product kan niet op tegen tienduizenden of meer gebruikers die langdurig met een applicatie bezig zijn. In een klein percentage van deze gevallen vragen gebruikers de applicatie om iets onverwachts te doen. Het is bijna onmogelijk om al deze scenario’s via testgevallen te achterhalen.
Apen testen probeert deze bijna willekeurige scenario’s te dekken. Wanneer ontwikkelaars een testcase bouwen, hebben ze meestal een grondige kennis van de app. Ze begrijpen wat de doelen van gebruikers zijn en ze weten welke volgorde van interacties ze het beste kunnen gebruiken om iets te bereiken binnen een app.
Door deze invoer in willekeurige volgorde te zetten, wordt de applicatie getest op manieren waar de ontwikkelaars geen rekening mee hebben gehouden. Over het geheel genomen verbetert dit de algehele veerkracht en duurzaamheid van een stuk software en zorgt het ervoor dat het de wereld in kan gaan en de onvoorspelbaarheid van een breed scala aan gebruikers kan trotseren zonder te crashen.
Wanneer moet je testen met apen?
Testen met apen is een uitstekende aanvullende testtechniek. Het grootste voordeel ligt in de mogelijkheid om onverwachte bugs te vinden die met meer traditionele testmethoden voor software niet aan het licht zouden komen. Daarom kan het het beste worden gebruikt in combinatie met methoden zoals:
Doorgaans gebruiken ontwikkelaars het aaptesten vroeg in het testproces. Het is vooral handig als er een gebrek is aan vooraf gedefinieerde testplannen om uit te putten.
Hoe worden tests op apen uitgevoerd?
In een niet zo ver verleden werden tests op apen handmatig uitgevoerd. Testers werden ingezet om op knoppen te drukken, tekst in te voeren, objecten te selecteren, enzovoort om te zien hoe het systeem zou reageren op ongebruikelijke invoer. Er zijn hier duidelijke problemen. Ten eerste is het behoorlijk tijdrovend. Ten tweede is er weinig garantie dat deze acties elke eventualiteit zullen dekken.
Voorbeelden van handmatig testen met een aap
Hier zijn een paar voorbeelden van hoe handmatige apentests worden uitgevoerd. Het kan je ook een idee geven van wat geautomatiseerde tests met apen proberen te simuleren.
- De tester navigeert door een website door op willekeurige links te klikken om te zien of deze de applicatie kunnen laten crashen of naar onverwachte pagina’s kunnen leiden.
- Een tester voert willekeurige teksten in een formulierveld in om te zien hoe de applicatie reageert
- De tester sleept pictogrammen en objecten om te zien of ze zich gedragen zoals verwacht of ongewenste resultaten opleveren.
Verschillende soorten testen op apen
Er zijn drie hoofdtypen apentests die ontwikkelaars gebruiken om onderscheidende informatie te ontdekken over de veerkracht van hun applicaties.
1. Stomme aap testen
Dumb monkey testing beschrijft een aanpak waarbij de tester niets weet over de te testen applicatie. In plaats daarvan wordt de tester gevraagd om rond te neuzen zonder zich bewust te zijn van de workflow, door op knoppen te drukken, tekst in te voeren, enzovoort. Deze techniek kan belangrijke fouten aan het licht brengen waar ontwikkelaars zich niet bewust van zijn.
2. Testen met slimme apen
Met smart monkey testing weet de tester een beetje over de applicatie en de doelen ervan en heeft hij zelfs gedetailleerde informatie over hoe het werkt. Dit proces maakt ook gebruik van een meer gerichte vorm van willekeurige invoer die is ontworpen om de applicatie over bepaalde grenzen te duwen. Deze aanpak is goed voor zowel stress- als belastingtests.
3. Briljante tests met apen
Briljant aapje testen is het volgende niveau van slim aapje testen. De tester heeft een sterke en uitgebreide kennis van de applicatie en wordt op basis van deze kennis gekozen. Dit overzicht kan de tester helpen om veel bugs te ontdekken, omdat ze het product vanuit het perspectief van de gebruiker moeten begrijpen.
Voor- en nadelen van testen met apen
Voordat je besluit om de testtechniek met apen te gebruiken, moet je de voor- en nadelen ervan begrijpen.
Voordelen van testen met apen
1. Zeldzame of verborgen bugs vinden
Misschien wel het meest overtuigende voordeel van monkeytesting is de mogelijkheid van de techniek om bugs, defecten of gedrag aan het licht te brengen die anders misschien onopgemerkt zouden blijven. Het vinden van deze randgevallen is een uitdaging met traditionele testtechnieken, dus is monkey testing een goede manier om te testen op crashes, datacorrupties en al het andere dat de stabiliteit van een applicatie bedreigt.
2. Het zorgt voor robuustheid
Monkey testing is ontworpen om te zien hoe een applicatie reageert op de onvoorspelbare omstandigheden waarmee het te maken krijgt tijdens gebruik in de echte wereld. Wanneer een applicatie in handen van de gebruiker komt, zal dit resulteren in veel verschillende inputs die ontwikkelaars niet kunnen voorzien. Testen met apen bootst die situatie na, wat leidt tot betrouwbaardere builds.
3. Kosteneffectiviteit
Vergeleken met andere soorten testen zijn tests op apen erg kosteneffectief. Daar zijn een paar redenen voor. Ten eerste hoef je niet veel tijd te besteden aan het ontwerpen van use cases voor je app. Daarnaast zijn software tools voor het testen van apen grotendeels geautomatiseerd, waardoor ontwikkelaars meer tijd overhouden voor andere taken en u geld bespaart.
4. Veelzijdigheid
Een van de beste dingen van testen met apen is dat de tests kunnen worden uitgevoerd door mensen zonder technische achtergrond. In sommige gevallen is het zelfs beter om iemand te hebben die helemaal groen is. Bovendien zijn deze tests vrij eenvoudig op te zetten, wat de afhankelijkheid van ervaren technici weer vermindert.
5. Vroegtijdige opsporing van bugs
Het vinden en oplossen van bugs in een vroeg stadium van de ontwikkelingscyclus bespaart tijd in de toekomst. Monkey testing voegt een niveau van willekeur toe aan het testen, wat je kan helpen om fouten in je code te vinden terwijl deze eenvoudig te repareren zijn.
Nadelen van testen met apen
1. Dekking
Hoewel monkey testing kan resulteren in een betere testdekking, mist het de geplande en strategische grondigheid van andere testtypes. Omdat je de app bestookt met willekeurige invoer, ben je in feite overgeleverd aan de chaos bij het vinden van bugs. Dat wil niet zeggen dat het niet alles zal vinden, maar zonder een duidelijke en vooraf gedefinieerde strategie kun je er niet 100% zeker van zijn dat alles is vastgelegd.
2. Beperkte toepassingen
Testen met apen is niet geschikt voor elk type toepassing. Het is geweldig voor complexe apps met veel verschillende mogelijkheden en functies die, en dat is het belangrijkst, het potentieel hebben voor onverwachte gebruikersinteracties. Programma’s die meer rigide en voorspelbare functies bieden, zullen waarschijnlijk minder profiteren van deze tests.
3. Tijdrovend
Handmatig testen op apen is erg tijdrovend. Het vereist veel interacties met modules en software, zonder garantie dat elke sessie bugs zal ontdekken. Toegegeven, je kunt het proces automatiseren, wat veel tijd en middelen bespaart.
4. Valse positieven
Door de chaotische of willekeurige aard van aaptesten kunnen sommige inputs scenario’s simuleren die zich niet zullen voordoen tijdens het echte gebruik van het product. Deze situatie kan resulteren in het genereren van valse positieven, waardoor programmeurs problemen oplossen die niet nodig zijn.
Wat is chaos-aap testen?
Chaos testen is een software engineering techniek die gebruik maakt van gecontroleerde en opzettelijke experimenten die ontworpen zijn om een systeem te verstoren (en zelfs storingen te veroorzaken) om de veerkracht en het vermogen om te herstellen te beoordelen.
Het idee om een systeem opzettelijk kapot te maken om veerkracht te garanderen is vrij gebruikelijk bij softwareontwikkeling en deze methoden resulteren meestal in bouwwerken waar engineers achter kunnen staan.
In 2008 besloot de populaire streamingdienst Netflix om over te stappen op Amazon Web Services (AWS), nadat de database drie dagen corrupt was geweest. Het doel was om single points of failure te vermijden en schaalbaarheidsproblemen als gevolg van de uitbreiding van hun service te verminderen.
Het team implementeerde chaos monkey testing om publiekgerichte instanties op de AWS-infrastructuur te testen. De voordelen waren tweeledig:
- Het proces legde zwakke punten bloot die de technici van Netflix konden verhelpen
- Het inspireerde het team om geautomatiseerde herstelmechanismen te bouwen voor hun service.
Chaos-aap testen is een onderdeel van Chaos Engineering. Het wordt gebruikt om de fouttolerantie van een systeem te testen en het vermogen om de stabiliteit en prestaties te handhaven, zelfs als individuele componenten onverwacht uitvallen.
Hoewel het verwant is aan aaptesten, is het een aparte techniek.
Aap testen vs Gorilla testen
Misschien heb je ook wel eens gehoord van het concept van Gorillatesten bij softwareontwikkeling. Hoewel beide technieken de namen van primaten hebben, hebben ze veel overeenkomsten en verschillen. Laten we eens kijken wat Gorilla Testing is en waar het gebruikt kan worden.
Gorillatesten wordt beschouwd als een meer gestructureerde versie van apen testen. Ter vergelijking, aaptesten worden vaak gebruikt in de vroege stadia van het testen wanneer er nog geen formele testgevallen beschikbaar zijn. Gorillatesten daarentegen maakt gebruik van een geautomatiseerde tool of script om willekeurige invoer voor een softwareapplicatie te genereren.
Gorillatesten is snel en veel efficiënter dan handmatig aaptesten. Het biedt een brede dekking en het is een uitstekende manier om crashes te vinden die moeten worden opgelost. Het wordt echter het best gebruikt voor toepassingen met duidelijk gedefinieerde grenzen of om een bepaalde module grondig te testen.
Zowel aaptesten als gorillatesten hebben hun plaats in het moderne testen van softwareontwikkeling. Ze begrijpen is de sleutel tot het gebruik van de juiste aanpak in de juiste ruimte.
Wat is de beste tool om apen te testen?
Software voor het testen van apen is een essentieel onderdeel geworden van de gereedschapskist van de moderne ontwikkelaar. Er zijn echter een paar opties. Dus wat is de beste tool om apen te testen? Hier zijn er een paar die je moet weten.
1. ZAPTEST
ZAPTEST is een krachtig
gratis en enterprise software test automatiseringstool
die een breed scala aan testautomatiseringstechnieken ondersteunt, waaronder aaptesten. Enkele functies van ZAPTEST die helpen bij het testen met apen zijn:
- Scriptopname zonder code: Teams kunnen gebruikersinteracties opnemen en omzetten in testcode.
- Input genereren: ZAPTEST maakt het mogelijk om willekeurige invoer te genereren, wat een kernelement is van testen met apen.
- Robuuste rapportage: ZAPTEST biedt krachtige rapportagemogelijkheden waarmee u uw tests kunt documenteren
Natuurlijk zijn deze functies slechts een tipje van de sluier van de mogelijkheden van ZAPTEST voor een breed scala aan testtechnieken, waaronder tests met apen. Met WebDriver-integratie, AI-functies en ZAPTEST CoPilot kunnen teams de toekomst van softwaretests op één plek ervaren.
Bovendien krijgen ZAPTEST Enterprise-gebruikers toegang tot een fulltime, toegewijde ZAP Expert en onbeperkte licenties, en dat alles voor een voorspelbare vaste prijs.
2. Appium
Appium is een open-source tool. Je kunt het gebruiken voor zowel Android als iOS. Het stelt gebruikers in staat om interacties met mobiele applicaties te automatiseren en heeft mogelijkheden om apen te testen. Ontwikkelaars kunnen een groot aantal reacties op gebruikersinterfaces nabootsen, zoals tekst invoeren, klikken, tikken en scrollen.
Hoewel Appium een geweldige tool is voor mobiele ontwikkelaars, mist het mogelijkheden voor desktop- en webtests.
3. Test het aapje
Monkey Test It is een cloudgebaseerd testplatform met een reeks testmogelijkheden, waaronder testen met apen. Hoewel Monkey Test It zeer gebruiksvriendelijk is, mist het misschien de kracht van concurrerende tools.
Andere nadelen zijn dat het er gelikter uit zou kunnen zien en dat er betere documentatie bij zou kunnen zitten. Bovendien hebben sommige gebruikers geklaagd over onnauwkeurige testresultaten. Dat gezegd hebbende, het is een eenvoudig programma met een lage prijs, dus je kunt er niet de hele wereld van verwachten.
4. AapTestJS
MonkeyTestJS is een open-source Australische JavaScript-gebaseerde tool die alleen is gebouwd voor webapplicaties. Het is vrij eenvoudig, maar het kan de klus meer dan klaren. Met de tool kunnen ontwikkelaars interacties tussen gebruikers en webapplicaties simuleren, zoals klikken, formulieren indienen, toetsenbordinvoer en meer.
Een nadeel van de tool is natuurlijk dat hij alleen beschikbaar is voor webapplicaties. Het is echter de moeite waard om in je gereedschapskist te hebben.
Wat is de beste speciale Android-testtool voor apen?
Er zijn een paar goede opties voor ontwikkelaars die een beetje chaos willen brengen in het testen van hun Android-applicaties. Laten we er twee bekijken.
1. UI/Applicatie-oefenaar Aap voor Android
UI/Application Exerciser Monkey for Android is een opdrachtregeltool waarmee ontwikkelaars pseudo-willekeurige invoer of gebeurtenissen naar zowel Android-apparaten als emulaties kunnen sturen. Deze tool draait in de Android Debug Bridge shell.
2. MonkeyRunner voor Android
MonkeyRunner voor Android is een populaire Android-testtool voor apen. De software is een API waarmee ontwikkelaars programma’s kunnen schrijven die een Android-apparaat emuleren of besturen. Het is ook een goede optie voor zowel functioneel als eenheidstesten.
Beide toepassingen zijn goede opties. Ze zijn echter vrij technisch, wat niet voor alle teams geschikt is.
Moeten tests op apen worden geautomatiseerd?
Een van de grootste problemen met handmatig aaptesten is dat het zo tijdrovend is. Het andere dat je moet opmerken is dat het moeilijk is voor een paar testers om echt de verschillende interacties te simuleren die een brede groep gebruikers zou kunnen hebben met een bepaalde applicatie.
Er zijn dus drie directe nadelen. Handmatig apen testen is:
- Tijdrovend
- Dure
- Mogelijk onvoldoende dekking
Een geautomatiseerde tool voor het testen van apen lost al deze problemen op.
Is ZAPTEST de juiste keuze voor uw behoeften aan testen op apen?
Monkey testing is een goede techniek om in je testrepertoire te hebben, vooral als je complexe applicaties ontwerpt. Het kopen van speciale software voor het testen van apen is echter duur.
ZAPTEST
is een flexibel en krachtig
full-stack test automatiseringstool.
Het is in hoge mate aanpasbaar en stelt zowel ontwikkelaars als niet-technische teams in staat om een eindeloze hoeveelheid softwaretesttechnieken te bouwen en te ontwerpen, waaronder aaptesten.
Aaptesten zijn een goede keuze als ze worden aangevuld met andere soorten testen. ZAPTEST biedt alles onder één dak, met de toevoeging van RPA-tools van hoge kwaliteit.
Laatste gedachten
Monkey testing software biedt ontwikkelaars een onconventionele manier om hun applicaties te testen. De kracht van deze techniek ligt in de mogelijkheid om de talloze onvoorspelbare manieren te simuleren waarop een gebruiker een stuk software kan gebruiken. Kortom, monkey testing biedt dekking die moeilijk te bereiken is met een testplan.