Aptestning
I mjukvarutestning är aptestning en teknik där användaren testar applikationen eller systemet genom att tillhandahålla slumpmässiga indata och kontrollera beteendet, eller se om applikationen eller systemet kommer att krascha. Aptestning implementeras vanligtvis som slumpmässiga, automatiserade enhetstester .
Även om källan till namnet "apa" är osäker, tror vissa att namnet har att göra med satsen för oändlig apa , som säger att en apa som slumpmässigt slår tangenter på ett skrivmaskins tangentbord under en oändlig tid kommer nästan skriv säkert William Shakespeares fullständiga verk . Vissa andra tror att namnet kommer från den klassiska Mac OS -applikationen "The Monkey" som utvecklades av Steve Capps före 1983. Den använde journalkrokar för att mata in slumpmässiga händelser i Mac-program och användes för att testa efter buggar i MacPaint .
Monkey Testing ingår också i Android Studio som en del av standardtestverktygen för stresstester .
Typer av aptestning
Aptestning kan kategoriseras i smarta aptest eller dumma aptest .
Smarta apa tester
Smarta apor identifieras vanligtvis av följande egenskaper: [ citat behövs ]
- Har en kort idé om applikationen eller systemet
- Vet sin egen plats, var den kan gå och var den har varit
- Känna till sin egen förmåga och systemets förmåga
- Fokusera på att bryta systemet
- Rapportera buggar de hittat
Vissa smarta apor kallas också briljanta apor , [ citat behövs ] som utför testning enligt användarens beteende och kan specificera vissa sannolikheter för att buggar ska inträffa.
Dumma apa tester
Dumma apor, även kända som "okunniga apor", identifieras vanligtvis av följande egenskaper: [ citat behövs ]
- Har ingen kunskap om applikationen eller systemet
- Vet inte om deras input eller beteende är giltigt eller ogiltigt
- Känner inte till deras eller systemets kapacitet, inte heller flödet av applikationen
- Kan hitta färre buggar än smarta apor, men kan också hitta viktiga buggar som är svåra att fånga av smarta apor
Fördelar och nackdelar
Fördelar
Aptestning är ett effektivt sätt att identifiera några vanliga fel. Eftersom de testade scenarierna vanligtvis är ad-hoc , kan aptestning också vara ett bra sätt att utföra belastnings- och stresstester. Den inneboende slumpmässigheten i aptestning gör det också till ett bra sätt att hitta stora buggar som kan bryta hela systemet. Installationen av aptestning är enkel, därför bra för alla applikationer. Smarta apor, om de är korrekt inställda med en exakt tillståndsmodell, kan vara riktigt bra på att hitta olika typer av buggar.
Nackdelar
Slumpmässigheten i aptestning gör ofta de buggar som är svåra eller omöjliga att reproducera. Oväntade buggar som hittas av aptestning kan också vara utmanande och tidskrävande att analysera. I vissa system kan aptestning pågå under lång tid innan man hittar en bugg. För smarta apor beror förmågan mycket på den tillståndsmodell som tillhandahålls, och att utveckla en bra tillståndsmodell kan vara dyrt.
Liknande tekniker och distinktioner
Även om aptestning ibland behandlas på samma sätt som fuzz-testning och de två termerna vanligtvis används tillsammans, tror vissa att de skiljer sig genom att hävda att aptestning handlar mer om slumpmässiga åtgärder medan fuzz-testning handlar mer om slumpmässig datainmatning. Ap-testning skiljer sig också från ad-hoc-testning genom att ad-hoc-testning utförs utan planering och dokumentation och syftet med ad-hoc-testning är att dela upp systemet slumpmässigt i underdelar och kontrollera deras funktionalitet, vilket inte är fallet i monkey testning.
Se även
- ^ a b "Vad är Monkey Testing | IT-utbildning och konsultation - Exforsys" . www.exforsys.com . Hämtad 2016-04-22 .
- ^ "Folklore.org: Monkey Lives" . www.folklore.org . Hämtad 2016-04-22 .
- ^ "UI/Application Exerciser Monkey | Android-utvecklare" . developer.android.com . Hämtad 2016-04-25 .
- ^ Brummayer, Robert; Lonsing, Florian; Biere, Armin (2010-07-11). Strichman, Ofer; Szeider, Stefan (red.). Automatiserad testning och felsökning av SAT- och QBF-lösare . Föreläsningsanteckningar i datavetenskap. Springer Berlin Heidelberg. s. 44–57. CiteSeerX 10.1.1.365.777 . doi : 10.1007/978-3-642-14186-7_6 . ISBN 9783642141850 .
- ^ "Fuzz-testning i Delphi - DelphiTools" . www.delphitools.info . Hämtad 2016-04-22 .
- ^ "Skillnaden mellan "fuzz-testning" och "aptest" " . stackoverflow.com . Hämtad 2016-04-22 .