Get your 6-month No-Cost Opt-Out offer for Unlimited Software Automation?

De flesta typer av programvarutestning använder en noggrant definierad testplan för att säkerställa täckning. Men även om dessa parametrar täcker många av de eventualiteter som kan uppstå när man använder en programvara, kommer de inte alltid att efterlikna beteendet hos en användare som inte känner till applikationen och som helt enkelt försöker interagera med den på ett utforskande sätt: Då kommer ap-testet in i bilden.

I den här artikeln tar vi en titt på allt som rör ap-testning, inklusive programvara, processer, typer, tillvägagångssätt och mycket mer.

 

Vad är ap-testning?

Inkrementell testning i mjukvarutestning - En djupdykning i vad det är, typer, process, tillvägagångssätt, verktyg och mer!

Monkey testing är en alltmer populär teknik för testning av programvara. Det innebär att slumpmässiga inmatningar skickas till en applikation för att simulera oförutsägbarheten i användargränssnittets interaktion.

Målet är att hitta buggar eller krascher som kan vara svåra att upptäcka med fördefinierade testfall. Ett ap-test efterliknar hur en person utan erfarenhet eller kunskap om en applikation slumpmässigt skulle kunna utforska programvaran.

Denna teknik är ett bra alternativ för både
last
och
spänningsprovning
applikationer. I själva verket ger testerna kontinuerlig slumpmässig input i ett försök att knäcka applikationen.

Det finns många likheter mellan ap-testning och
ad hoc-testning
, i synnerhet deras slumpmässiga karaktär och avsaknaden av en testplan. Det finns dock tillräckligt med skillnader mellan de två för att de ska betraktas som olika tillvägagångssätt.

Även om vissa utvecklare menar att monkey testing är en typ av ad hoc-testning, är en viktig skillnad mellan de två att monkey testing kan utföras av personer som inte har någon kunskap om applikationen.

Monkey testing handlar om att inte ha en testplan. Det handlar om att mata in slumpmässiga indata med målet att krascha programvaran.

 

Varför kallas det för ap-testning?

alfatestning vs betatestning

Det råder ingen enighet om varför denna teknik kallas “monkey testing”. Det finns dock några övertygande teorier bakom namnet.

 

Teori 1: Teoremet om oändliga apor

 

Enligt den första teorin har namnet att göra med teoremet om de oändliga aporna, en metafor som används för att diskutera statistisk sannolikhet. I korthet innebär det att om en apa satt framför en skrivmaskin och tryckte på slumpmässiga tangenter under en oändlig tid, skulle den någon gång producera William Shakespeares fullständiga verk.

Tanken här är att monkey testing simulerar dessa slumpmässiga tangenttryckningar, och med tillräckligt med tid kommer det att täcka alla eventualiteter som applikationen kommer att möta i produktion.

 

Teori 2: Macintoshs “apan”

 

Den andra teorin är att namnet kommer från ett MacOS-program från 1983 som hette “The Monkey”. Kort sagt, teamet som arbetade med den första Macintosh-datorn ville hitta ett sätt att stresstesta sin maskin.

De resonerade att om de hade en apa som frenetiskt slog på tangenterna och flyttade runt musen, skulle det hjälpa dem att testa datorns motståndskraft. De hade ingen levande apa till hands, så de byggde en applikation som kunde simulera den här typen av användning och kallade den “The Monkey”.

 

Varför är monkey testing viktigt?

reda ut en del förvirring om automatisering av programvarutestning

Den stora anledningen till att monkey testing är viktigt är att det hjälper teamen att upptäcka edge cases eller oväntade beteenden i en app. Tanken är att utvecklare kan använda ap-testning tillsammans med mer traditionella metoder för att få en bättre uppfattning om hur appen kommer att tas emot i naturen.

Även omfattande tester av en produkt kan inte konkurrera med tiotusentals eller fler användare som använder en applikation under en längre tid. I en liten andel av dessa fall kommer användarna att be applikationen att göra något oväntat. Att upptäcka alla dessa scenarier via testfall är nästan omöjligt.

Monkey testing försöker täcka dessa nästan slumpmässiga scenarier. När utvecklare bygger ett testfall tenderar de att ha en intim kunskap om appen. De förstår vad användarens mål är och de vet vilken sekvens av interaktioner som är bäst att använda för att uppnå något i en app.

Att slumpa fram dessa indata innebär att applikationen testas på sätt som utvecklarna inte har tänkt på. Sammantaget förbättrar detta den övergripande motståndskraften och hållbarheten hos en mjukvara och säkerställer att den kan gå ut i världen och möta oförutsägbarheten hos ett brett spektrum av användare utan att krascha.

 

När bör du använda ap-testning?

checklista uat, verktyg för testning av webbapplikationer, automatisering med mera

Monkey testing är en utmärkt kompletterande testteknik. Dess största fördel ligger i dess förmåga att hitta oväntade buggar som inte skulle upptäckas med mer traditionella programvarutestmetoder. Därför är den bäst när den används tillsammans med metoder som:

Vanligtvis använder utvecklare monkey testing tidigt i testprocessen. Det är särskilt användbart när det saknas fördefinierade testplaner att utgå ifrån.

 

Hur utförs ap-testning?

Topp 30 mest populära RPA (robotic process automation) Verktyg och programvara

För inte så länge sedan utfördes tester av apor manuellt. Testarna fick trycka på knappar, skriva in text, välja objekt och så vidare för att se hur systemet skulle klara av okonventionella inmatningar. Här finns uppenbara problem. För det första är det ganska tidskrävande. För det andra finns det få garantier för att dessa åtgärder kommer att täcka alla eventualiteter.

 

Exempel på manuell testning av apor

Här är några exempel på hur manuella ap-test utförs. Det kan också ge dig en uppfattning om vad automatiserad monkey testing försöker simulera.

  • Testaren navigerar på en webbplats genom att klicka på slumpmässiga länkar för att se om de kan krascha applikationen eller leda till oväntade sidor
  • En testare skriver in slumpmässiga texter i ett formulärfält för att se hur applikationen reagerar
  • Testaren drar och släpper ikoner och objekt för att se om de beter sig som förväntat eller ger oönskade resultat.

 

Olika typer av ap-testning

Automatisering av webbapplikationer

Det finns tre huvudtyper av ap-test som utvecklare använder för att få fram tydlig information om hur motståndskraftiga deras applikationer är.

 

1. Test av dum apa

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Dumb monkey testing beskriver en metod där testaren inte vet någonting om den applikation som testas. Istället ombeds testaren att helt ovetande om arbetsflödet trycka på knappar, skriva in text och så vidare. Denna teknik kan hjälpa till att upptäcka betydande brister som utvecklarna inte är medvetna om.

 

2. Testning av smarta apor

 

Med smart monkey testing vet testaren en del om applikationen och dess syften och har till och med detaljerad information om hur den fungerar. Denna process använder också en mer fokuserad typ av slumpmässig input som är utformad för att driva applikationen över vissa gränser. Att använda denna metod är bra för både stress- och belastningstestning.

 

3. Briljanta apförsök

 

Brilliant monkey testing är nästa nivå upp från smart monkey testing. Testaren har en stark och omfattande kunskap om applikationen och väljs baserat på denna kunskap. Denna överblick kan hjälpa testaren att upptäcka många buggar eftersom de bör förstå produkten ur användarens perspektiv.

 

För- och nackdelar med apförsök

utmaningar-belastningsprovning

Innan du bestämmer dig för att använda monkey testing-tekniken måste du förstå dess för- och nackdelar.

 

Fördelar med ap-testning

 

1. Hitta sällsynta eller dolda buggar

Den kanske mest övertygande fördelen med monkey testing är teknikens förmåga att upptäcka buggar, defekter eller beteenden som annars kanske inte skulle upptäckas. Det är svårt att hitta dessa gränsfall med traditionella testmetoder, så monkey testing är ett bra sätt att testa för krascher, datakorruption och allt annat som hotar stabiliteten i en applikation.

 

2. Det säkerställer robusthet

Monkey testing är utformat för att se hur en applikation reagerar på de oförutsägbara förhållanden som den kommer att möta under verklig användning. När en applikation läggs i användarens händer kommer den att resultera i många olika inmatningar som utvecklarna inte kan förutse. Monkey testing efterliknar den situationen, vilket leder till mer tillförlitliga byggen.

 

3. Kostnadseffektivitet

Jämfört med andra typer av tester är ap-testning mycket kostnadseffektivt. Det finns flera skäl till detta. För det första behöver du inte lägga ner mycket tid på att utforma användningsfall för din app. Dessutom är programvaruverktyg för ap-testning till stor del automatiserade, vilket frigör utvecklarnas tid för andra uppgifter och sparar pengar åt dig.

 

4. Mångsidighet

En av de bästa sakerna med monkey testing är att testerna kan utföras av personer utan teknisk bakgrund. I vissa fall är det faktiskt bättre att ha någon som är helt grön. Dessutom är dessa tester ganska enkla att installera, vilket återigen minskar beroendet av kvalificerade ingenjörer.

 

5. Tidig upptäckt av buggar

Att hitta och åtgärda buggar tidigt i utvecklingscykeln sparar tid längre fram. Monkey testing introducerar en nivå av slumpmässighet i testningen, vilket kan hjälpa dig att hitta brister i din kod medan det är lätt att åtgärda.

 

Nackdelar med ap-testning

 

1. Täckning

Även om “monkey testing” kan leda till förbättrad testtäckning, saknar det den planerade och strategiska noggrannhet som andra testtyper har. I själva verket är du utlämnad till kaos när du letar efter buggar, eftersom du skickar slumpmässiga inmatningar till appen. Därmed inte sagt att den inte hittar allt, men utan en tydlig och fördefinierad strategi kan du inte vara 100 % säker på att allt har fångats upp.

 

2. Begränsade tillämpningar

Monkey testing är inte lämpligt för alla typer av applikationer. Den är perfekt för komplexa appar med massor av olika funktioner och funktioner som, framför allt, har potential för oväntade användarinteraktioner. Program som erbjuder mer rigida och förutsägbara funktioner är mindre benägna att dra nytta av dessa tester.

 

3. Tidskrävande

Manuell monkey testing är mycket tidskrävande. Det kräver en hel del interaktion med moduler och programvara, utan någon garanti för att varje session kommer att upptäcka buggar. Du kan automatisera processen, vilket sparar mycket tid och resurser.

 

4. Falska positiva resultat

På grund av ap-testningens kaotiska eller slumpmässiga natur kan vissa indata simulera scenarier som inte kommer att inträffa under verklig användning av produkten. Denna situation kan leda till att falska positiva resultat genereras, vilket leder till att kodare åtgärdar problem som inte är nödvändiga.

 

Vad är chaos monkey testing?

Vad är kaosmonkey-testning?

Kaostestning är en teknik för programvaruutveckling som använder kontrollerade och avsiktliga experiment för att störa ett system (och även framkalla fel) för att bedöma dess motståndskraft och förmåga att återhämta sig.

Idén att avsiktligt bryta ett system för att säkerställa motståndskraft är ganska vanlig inom programvaruutveckling, och dessa metoder resulterar vanligtvis i byggnader som ingenjörer kan stå bakom.

Efter att ha drabbats av en tre dagar lång databaskorruption 2008 beslutade den populära streamingtjänsten Netflix att migrera till Amazon Web Services (AWS). Syftet var att undvika single points of failure och minska skalbarhetsproblemen som uppstår när man utökar sin tjänst.

Teamet implementerade chaos monkey testing för att testa publika instanser på AWS-infrastrukturen. Fördelarna var tvåfaldiga:

  1. Processen avslöjade svagheter som Netflix ingenjörer kunde åtgärda
  2. Det inspirerade teamet att bygga automatiserade återställningsmekanismer för sin tjänst.

Chaos monkey testing är en del av Chaos Engineering. Det används för att testa ett systems feltolerans och dess förmåga att bibehålla stabilitet och prestanda även när enskilda komponenter oväntat fallerar.

Även om det är besläktat med ap-testning, är det en distinkt teknik.

 

Ap-testning vs Gorilla-testning

Ap-testning vs. Gorilla-testning

Du kanske också har hört talas om begreppet Gorilla-testning inom programvaruutveckling. Även om båda teknikerna har namn från primater, har de många likheter och skillnader. Låt oss undersöka vad Gorilla-testning är och var det kan användas.

Gorillatestning anses vara en mer strukturerad version av ap-testning. Som jämförelse kan nämnas att monkey testing ofta används i tidiga testfaser när det inte finns några formella testfall tillgängliga. Gorillatestning, å andra sidan, använder ett automatiserat verktyg eller skript för att generera slumpmässiga inmatningar för en mjukvaruapplikation.

Gorilla-testning går snabbt och är mycket effektivare än manuell monkey testing. Det ger en bred täckning och är ett utmärkt sätt att hitta krascher som behöver åtgärdas. Det är dock bäst att använda för applikationer med väldefinierade gränser eller för att noggrant testa en viss modul.

Både ap- och gorillatestning har sin plats i modern testning av programvaruutveckling. Att förstå dem är avgörande för att kunna använda rätt metod på rätt plats.

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Vad är det bästa testverktyget för apor?

bästa testverktyg för apor

Programvara för ap-testning har blivit en viktig del av den moderna utvecklarens verktygslåda. Det finns dock några alternativ där ute. Så vilket är det bästa testverktyget för apor? Här är några som du behöver känna till.

 

1. ZAPTEST

 

ZAPTEST är ett kraftfullt
gratis och automatiserat verktyg för testning av programvara för företag
som stöder ett brett spektrum av testautomatiseringstekniker, inklusive monkey testing. Några av de funktioner i ZAPTEST som underlättar ap-testning är

 

  • Inspelning av skript utan kod: Teamen kan spela in användarinteraktioner och konvertera dem till testkod.
  • Generering av indata: ZAPTEST underlättar slumpmässig generering av indata, vilket är ett centralt element i ap-testning
  • Robust rapportering: ZAPTEST erbjuder kraftfulla rapporteringsfunktioner som hjälper dig att dokumentera dina tester

 

Naturligtvis är dessa funktioner bara en liten del av ZAPTEST:s kapacitet för ett brett spektrum av testtekniker, inklusive ap-test. Med WebDriver-integration, AI-funktioner och ZAPTEST CoPilot kan teamen uppleva framtidens programvarutestning på ett och samma ställe.

Dessutom får ZAPTEST Enterprise-användare tillgång till en heltidsanställd, dedikerad ZAP Expert och obegränsade licenser, allt till en förutsägbar fast kostnad.

 

2. Appium

Appium är ett verktyg med öppen källkod. Du kan använda den för både Android och iOS. Det gör det möjligt för användare att automatisera mobilapplikationsinteraktioner och har funktioner för ap-testning. Utvecklare kan efterlikna en mängd olika reaktioner i användargränssnittet, som att skriva in text, klicka, trycka och scrolla.

Appium är ett utmärkt verktyg för mobilutvecklare, men det saknar funktioner för testning av datorer och webbsidor.

 

3. Apa testar den

Monkey Test It är en molnbaserad testplattform med en rad olika testfunktioner som inkluderar ap-testning. Även om Monkey Test It är mycket användarvänligt, saknar det kanske kraften hos konkurrerande verktyg.

Andra nackdelar är att den skulle kunna se snyggare ut och levereras med bättre dokumentation. Dessutom har vissa användare klagat på felaktiga resultat från tester. Med det sagt är det ett enkelt program med ett lågt pris, så du kan inte förvänta dig världen från det.

 

4. MonkeyTestJS

MonkeyTestJS är ett australiensiskt JavaScript-baserat verktyg med öppen källkod som endast är avsett för webbapplikationer. Den är ganska enkel, men den är mer än kapabel att göra jobbet. Med verktyget kan utvecklare simulera interaktioner mellan användare och webbapplikationer, t.ex. klick, formulärinlämning, tangentbordsingångar och mycket mer.

En nackdel med verktyget är naturligtvis att det endast är tillgängligt för webbapplikationer. Men den är värd att ha i verktygslådan.

 

Vilket är det bästa dedikerade testverktyget för Android-apor?

 

Det finns några bra alternativ för utvecklare som vill skapa lite kaos i sina tester av Android-applikationer. Låt oss titta på två.

 

1. UI/Application Exerciser Monkey för Android

UI/Application Exerciser Monkey för Android är ett kommandoradsverktyg som låter utvecklare skicka pseudoslumpmässiga inmatningar eller händelser till både Android-enheter och emuleringar. Detta verktyg körs i Android Debug Bridge-skalet.

 

2. MonkeyRunner för Android

MonkeyRunner för Android är ett populärt verktyg för ap-test på Android. Programvaran är ett API som låter utvecklare skriva program som antingen emulerar eller styr en Android-enhet. Det är också ett bra alternativ för både funktions- och enhetstestning.

Båda dessa program är bra alternativ. De är dock ganska tekniska, vilket inte passar alla team.

 

Bör monkey testing automatiseras?

Automatiserad belastningstestning

Ett av de största problemen med manuell monkey testing är att det är så tidskrävande. En annan sak som du bör notera är att det är svårt för ett fåtal testare att verkligen simulera de olika interaktioner som en bred bas av användare kan ha med en viss applikation.

Det finns alltså tre omedelbara nackdelar. Manuell ap-testning är:

  • Tidskrävande
  • Dyr
  • Potentiellt bristfällig täckning

Ett automatiserat verktyg för monkey testing löser alla dessa problem.

 

Är ZAPTEST rätt val för dina behov av ap-testning?

 

Monkey testing är en bra teknik att ha i sin testrepertoar, särskilt om man designar komplexa applikationer. Det är dock dyrt att köpa särskild programvara för testning av apor.


ZAPTEST
är ett flexibelt och kraftfullt
verktyg för testautomatisering med full stack.
Det är mycket anpassningsbart och gör det möjligt för både utvecklare och icke-tekniska team att bygga och designa en oändlig mängd tekniker för programvarutestning, inklusive ap-testning.

Monkey testing är ett bra val när det kompletteras med andra typer av tester. ZAPTEST erbjuder allt under ett tak, med tillägg av högkvalitativa RPA-verktyg.

 

Avslutande tankar

Programvaran Monkey Testing ger utvecklare ett okonventionellt sätt att testa sina applikationer. Styrkan i denna teknik ligger i dess förmåga att simulera den myriad av oförutsägbara sätt som en användare kan interagera med en mjukvara. Kort sagt ger monkey testing en täckning som kan vara svår att uppnå med en testplan.

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post