Većina vrsta testiranja softvera koristi pažljivo definiran plan testiranja kako bi se osigurala pokrivenost. Međutim, dok ovi parametri pokrivaju mnoge mogućnosti korištenja softvera, oni neće uvijek oponašati ponašanje korisnika koji nije upoznat s aplikacijom i jednostavno pokušava s njom komunicirati na istraživački način: Enter monkey testiranje.
U ovom ćemo članku pogledati sve o testiranju na majmune, uključujući softver za testiranje na majmune, procese, vrste, pristupe i još mnogo toga.
Što je testiranje na majmunima?
Majmunsko testiranje sve je popularnija tehnika testiranja softvera. Uključuje slanje nasumičnih unosa u aplikaciju radi simulacije nepredvidivosti interakcije korisničkog sučelja.
Cilj je pronaći bugove ili padove koje bi moglo biti teško otkriti pomoću unaprijed definiranih testnih slučajeva. Majmunski test oponaša kako osoba bez iskustva ili znanja o aplikaciji može nasumično istraživati softver.
Ova je tehnika dobra opcija i za testiranje opterećenja i za testiranje stresa aplikacije. Zapravo, testovi daju kontinuirane nasumične unose u pokušaju razbijanja aplikacije.
Postoje mnoge sličnosti između testiranja na majmunima i ad hoc testiranja, posebno zbog njihove nasumične prirode i nedostatka oslanjanja na plan testiranja. Međutim, postoji dovoljno razlika između njih da bi se smatrali različitim pristupima.
Dok neki razvojni programeri sugeriraju da je testiranje na majmunu vrsta ad hoc testiranja, jedna značajna razlika između ta dva je da testiranje na majmuna mogu izvesti ljudi bez ikakvog znanja o aplikaciji.
Testiranje majmuna znači nepostojanje plana testiranja. Radi se o unosu nasumičnih unosa s ciljem rušenja softvera.
Zašto se zove testiranje na majmunu?
Ne postoji konsenzus o tome zašto se ova tehnika naziva testiranjem majmuna. Međutim, postoji nekoliko uvjerljivih teorija iza imena.
Teorija 1: Teorem beskonačnog majmuna
Prva teorija sugerira da naziv ima veze s teoremom beskonačnog majmuna, metaforom koja se koristi za raspravu o statističkoj vjerojatnosti. Ukratko, stoji da kad bi majmun sjedio ispred pisaćeg stroja i gnječio nasumične tipke beskonačno dugo vremena, u nekom bi trenutku proizveo kompletna djela Williama Shakespearea.
Ideja ovdje je da testiranje majmuna simulira ovo nasumično miješanje ključeva, i uz dovoljno vremena će pokriti svaku mogućnost s kojom će se aplikacija suočiti u proizvodnji.
Teorija 2: Macintoshov “Majmun”
Druga teorija je da ime dolazi od MacOS aplikacije iz 1983. godine pod nazivom “The Monkey”. Ukratko, tim koji je radio na prvom Macintosh računalu želio je pronaći način testiranja stresa na svom stroju.
Smatrali su da bi im to pomoglo u testiranju otpornosti računala ako bi imali majmuna koji bjesomučno udara po tipkama i kreće se oko miša. Nisu imali pri ruci živog majmuna, pa su napravili aplikaciju koja može simulirati ovu vrstu upotrebe i nazvali je “Majmun”.
Zašto je testiranje na majmunima važno?
Glavni razlog zašto je majmunsko testiranje važno je to što pomaže timovima otkriti rubne slučajeve ili neočekivana ponašanja unutar aplikacije. Ideja je da programeri mogu koristiti testiranje majmuna uz tradicionalnije metode kako bi stekli bolji osjećaj o tome kako će aplikacija biti prihvaćena u divljini.
Čak ni sveobuhvatno testiranje proizvoda ne može se natjecati s desecima tisuća ili više korisnika koji se bave aplikacijom tijekom dugog vremena. U malom postotku ovih slučajeva korisnici će tražiti od aplikacije da učini nešto neočekivano. Otkrivanje svih ovih scenarija putem testnih slučajeva gotovo je nemoguće.
Testiranje majmuna pokušava pokriti te gotovo slučajne scenarije. Kada programeri izrađuju testni slučaj, obično imaju intimno znanje o aplikaciji. Oni razumiju koji su ciljevi korisnika i znaju najbolji slijed interakcija koje bi trebali upotrijebiti da postignu nešto unutar aplikacije.
Nasumično odabiranje ovih unosa znači da se aplikacija testira na načine koje programeri nisu uzeli u obzir. Sveukupno, ovo povećava ukupnu otpornost i trajnost softvera i osigurava da može otići u svijet i suočiti se s nepredvidljivošću širokog spektra korisnika bez rušenja.
Kada biste trebali koristiti testiranje na majmunima?
Testiranje majmuna izvrsna je dodatna tehnika testiranja. Njegova najveća prednost leži u njegovoj sposobnosti da pronađe neočekivane greške koje se ne bi otkrile tradicionalnijim metodama testiranja softvera. Kao takav, najbolji je kada se koristi uz metode kao što su:
Tipično, programeri rabe testiranje majmuna rano u procesu testiranja. Osobito je korisno kada nema unaprijed definiranih planova testiranja na koje bi se mogli oslanjati.
Kako se izvodi testiranje na majmunima?
U ne tako davnoj prošlosti testiranje na majmunima obavljalo se ručno. Ispitivači su angažirani da pritisnu gumbe, unesu tekst, odaberu objekte i tako dalje kako bi vidjeli kako će sustav izdržati nekonvencionalne unose. Ovdje postoje očiti problemi. Prvo, oduzima dosta vremena. Drugo, malo je jamstva da će ove radnje pokriti svaku mogućnost.
Primjeri ručnog testiranja majmuna
Evo nekoliko primjera kako se izvodi ručno testiranje na majmunima. Također vam može dati ideju o tome što automatizirano testiranje majmuna želi simulirati.
- Ispitivač se kreće web-mjestom klikom na nasumične veze kako bi vidio mogu li srušiti aplikaciju ili dovesti do neočekivanih stranica
- Ispitivač unosi nasumične tekstove u polje obrasca kako bi vidio kako aplikacija reagira
- Tester povlači i ispušta ikone i objekte da vidi ponašaju li se prema očekivanjima ili daju li neželjene rezultate.
Različite vrste testiranja na majmunima
Postoje tri glavne vrste majmunskih testova koje programeri koriste za otkrivanje različitih informacija o otpornosti svojih aplikacija.
1. Testiranje glupog majmuna
Testiranje glupog majmuna opisuje pristup u kojem ispitivač ne zna ništa o aplikaciji koja se testira. Umjesto toga, od ispitivača se traži da čačka uokolo potpuno nesvjestan tijeka rada, pritiskanja gumba, unosa teksta i tako dalje. Ova tehnika može pomoći u otkrivanju značajnih nedostataka kojih programeri nisu svjesni.
2. Testiranje pametnog majmuna
Uz testiranje pametnog majmuna, ispitivač zna ponešto o aplikaciji i njezinim ciljevima, pa čak ima i detaljne informacije o tome kako funkcionira. Ovaj proces također koristi fokusiraniju vrstu nasumičnog unosa koji je dizajniran da pomakne aplikaciju preko određenih ograničenja. Korištenje ovog pristupa dobro je i za testiranje stresa i za testiranje opterećenja.
3. Briljantno testiranje majmuna
Briljantno testiranje majmuna sljedeća je razina u odnosu na testiranje pametnih majmuna. Ispitivač ima snažno i sveobuhvatno znanje o aplikaciji i bira se na temelju tog znanja. Ovaj nadzor može pomoći testeru da otkrije puno grešaka jer bi trebao razumjeti proizvod iz perspektive korisnika.
Za i protiv testiranja na majmunima
Prije nego što se odlučite koristiti tehniku testiranja na majmunu, morate razumjeti njene prednosti i nedostatke.
Prednosti testiranja majmuna
1. Pronalaženje rijetkih ili skrivenih grešaka
Možda je najuvjerljivija prednost testiranja na majmunima sposobnost ove tehnike da otkrije pogreške, nedostatke ili ponašanja koja bi inače mogla ostati otkrivena. Pronalaženje ovih rubnih slučajeva izazovno je s tradicionalnim tehnikama testiranja, tako da je majmunsko testiranje solidan način za testiranje rušenja, oštećenja podataka i bilo čega drugog što prijeti stabilnosti aplikacije.
2. Osigurava robusnost
Majmunsko testiranje osmišljeno je kako bi se vidjelo kako aplikacija reagira na nepredvidive uvjete s kojima će se suočiti tijekom korištenja u stvarnom svijetu. Kada se aplikacija stavi u ruke korisnika, to će rezultirati mnoštvom različitih unosa koje programeri ne mogu predvidjeti. Testiranje majmuna oponaša tu situaciju, što dovodi do pouzdanijih konstrukcija.
3. Isplativost
U usporedbi s drugim vrstama testiranja, testiranje na majmunu vrlo je isplativo. Postoji nekoliko razloga za to. Prvo, ne trebate trošiti puno vremena na dizajniranje slučajeva upotrebe za svoju aplikaciju. Dalje, softverski alati za testiranje majmuna u velikoj su mjeri automatizirani, što programerima oslobađa vrijeme za druge zadatke, čime se štedi vaš novac.
4. Svestranost
Jedna od najboljih stvari kod testiranja na majmunima je ta što testove mogu izvoditi ljudi bez tehničkog znanja. Doista, u nekim slučajevima, bolje je imati nekoga tko je potpuno zelen. Štoviše, ovi testovi su prilično jednostavni za postavljanje, što opet smanjuje oslanjanje na vješte inženjere.
5. Rano otkrivanje grešaka
Pronalaženje i rješavanje grešaka u ranoj fazi razvojnog životnog ciklusa štedi vrijeme u budućnosti. Monkey testiranje uvodi razinu nasumičnosti u testiranje, što vam može pomoći u pronalaženju nedostataka u vašem kodu, a lako ih je popraviti.
Nedostaci testiranja majmuna
1. Pokrivenost
Dok testiranje na majmunu može rezultirati poboljšanom pokrivenošću testom, nedostaje mu planirana i strateška temeljitost drugih vrsta testiranja. Zapravo, budući da pretrpavate aplikaciju nasumičnim unosima, prepušteni ste na milost i nemilost kaosa u pronalaženju grešaka. To ne znači da neće pronaći sve, ali bez jasne i unaprijed definirane strategije ne možete biti 100% sigurni da je sve snimljeno.
2. Ograničene primjene
Testiranje majmuna nije prikladno za svaku vrstu primjene. Izvrstan je za složene aplikacije s mnogo različitih značajki i funkcija koje, što je najvažnije, imaju potencijal za neočekivane interakcije korisnika. Manje je vjerojatno da će programi koji nude strože i predvidljivije funkcije imati koristi od ovih testova.
3. Oduzima puno vremena
Ručno testiranje na majmunima oduzima puno vremena. Zahtijeva puno interakcija s modulima i softverom, bez jamstva da će svaka sesija otkriti greške. Doduše, možete automatizirati proces, što znatno štedi vrijeme i resurse.
4. Lažno pozitivni rezultati
Zbog kaotične ili nasumične prirode testiranja majmuna, neki unosi mogu simulirati scenarije koji se neće dogoditi tijekom korištenja proizvoda u stvarnom svijetu. Ova situacija može rezultirati generiranjem lažno pozitivnih rezultata, zbog čega koderi popravljaju probleme koji nisu potrebni.
Što je testiranje kaos majmuna?
Testiranje kaosa je tehnika softverskog inženjeringa koja koristi kontrolirane i namjerne eksperimente osmišljene da poremete sustav (pa čak i izazovu kvarove) kako bi se procijenila njegova otpornost i sposobnost oporavka.
Ideja namjernog razbijanja sustava kako bi se osigurala otpornost prilično je uobičajena u prostoru razvoja softvera, a te metode obično rezultiraju verzijama iza kojih inženjeri mogu stajati.
Godine 2008., nakon trodnevnog oštećenja baze podataka, popularni streaming servis Netflix odlučio je migrirati na Amazon Web Services (AWS). Cilj je bio izbjeći pojedinačne točke kvara i smanjiti probleme s skalabilnošću koji proizlaze iz proširenja njihove usluge.
Tim je implementirao testiranje kaos majmuna kako bi testirao javne instance na AWS infrastrukturi. Prednosti su bile dvostruke:
- Proces je otkrio slabosti koje su Netflixovi inženjeri mogli popraviti
- To je nadahnulo tim da izgradi automatizirane mehanizme oporavka za svoju uslugu.
Testiranje kaos majmuna dio je Chaos Engineeringa. Koristi se za testiranje tolerancije sustava na greške i njegove sposobnosti da održi stabilnost i performanse čak i kada pojedinačne komponente neočekivano zakažu.
Iako je povezana s testiranjem na majmunima, to je posebna tehnika.
Testiranje majmuna protiv testiranja gorile
Možda ste također čuli za koncept Gorilla testiranja u razvoju softvera. Iako obje tehnike imaju imena primata, imaju mnogo sličnosti i razlika. Istražimo što je Gorilla testiranje i gdje se može koristiti.
Testiranje gorile smatra se strukturiranijom verzijom testiranja majmuna. Za usporedbu, testiranje na majmunu često se koristi u ranim fazama testiranja kada nema dostupnih formalnih testnih slučajeva. Gorilla testiranje, s druge strane, koristi automatizirani alat ili skriptu za generiranje nasumičnih unosa za softversku aplikaciju.
Testiranje gorile je brzo i daleko učinkovitije od ručnog testiranja majmuna. Nudi široku pokrivenost i izvrstan je način za pronalaženje rušenja koja je potrebno riješiti. Međutim, najbolje ga je koristiti za aplikacije s dobro definiranim granicama ili za temeljito testiranje određenog modula.
I testiranje majmuna i testiranje gorile imaju svoje mjesto u testiranju modernog razvoja softvera. Njihovo razumijevanje ključno je za korištenje pravog pristupa u pravom prostoru.
Koji je najbolji alat za testiranje majmuna?
Softver za testiranje majmuna postao je bitan dio alata modernog programera. Međutim, postoji nekoliko opcija. Dakle, koji je najbolji alat za testiranje majmuna? Evo nekoliko o kojima trebate znati.
1. ZAPTEST
ZAPTEST je moćan alat za automatizaciju testiranja besplatnog i poslovnog softvera koji podržava širok raspon tehnika automatizacije testiranja, uključujući majmunsko testiranje. Neke od značajki ZAPTEST-a koje pomažu kod testiranja na majmunima uključuju:
- Snimanje skripte bez koda: timovi mogu snimati korisničke interakcije i pretvarati ih u testni kod.
- Generiranje unosa: ZAPTEST olakšava generiranje nasumičnog unosa, što je ključni element testiranja majmuna
- Robusno izvješćivanje: ZAPTEST nudi moćne mogućnosti izvješćivanja koje vam pomažu da dokumentirate svoje testove
Naravno, ove značajke samo grebu po površini ZAPTEST-ovih mogućnosti za širok raspon tehnika testiranja, uključujući testove majmuna. Uz WebDriver integraciju, AI značajke i ZAPTEST CoPilot, timovi mogu doživjeti budućnost testiranja softvera na jednom mjestu.
Štoviše, ZAPTEST Enterprise korisnici dobivaju pristup stalnom, posvećenom ZAP Expertu i neograničenim licencama, a sve to po predvidljivoj fiksnoj cijeni.
2. Apijem
Appium je alat otvorenog koda. Možete ga koristiti i za Android i za iOS. Omogućuje korisnicima automatizaciju interakcija mobilnih aplikacija i ima mogućnosti majmunskog testiranja. Programeri mogu oponašati širok raspon reakcija korisničkog sučelja, poput unosa teksta, klikanja, dodirivanja i pomicanja.
Iako je Appium izvrstan alat za mobilne programere, nedostaju mu mogućnosti za testiranje na stolnom računalu i webu.
3. Majmun Test It
Monkey Test To je platforma za testiranje temeljena na oblaku s nizom mogućnosti testiranja koje uključuju testiranje majmuna. Iako je Monkey Test vrlo jednostavan za korištenje, možda mu nedostaje snaga konkurentskih alata.
Ostali nedostaci su to što bi mogao izgledati glatko i dolaziti s boljom dokumentacijom. Štoviše, neki su se korisnici žalili na netočne rezultate testova. Ipak, to je jednostavan program s niskom cijenom, tako da ne možete očekivati svijet od njega.
4. MonkeyTestJS
MonkeyTestJS je australski alat otvorenog koda koji se temelji na JavaScriptu i napravljen je samo za web aplikacije. Prilično je jednostavan, ali više nego sposoban za obavljanje posla. Alat omogućuje razvojnim programerima simulaciju interakcija između korisnika i web-aplikacija, kao što su klikovi, slanje obrasca, unos tipkovnicom i više.
Očito, jedan nedostatak alata je taj što je dostupan samo za web aplikacije. Međutim, vrijedi ga imati u kutiji s alatima.
Koji je najbolji namjenski alat za testiranje majmuna za Android?
Postoji nekoliko dobrih opcija za programere koji žele unijeti malo kaosa u testiranje svojih Android aplikacija. Pogledajmo dva.
1. UI/aplikacija Exerciser Monkey za Android
UI/Application Exerciser Monkey za Android alat je naredbenog retka koji programerima omogućuje slanje pseudo-slučajnih unosa ili događaja na Android uređaje i emulacije. Ovaj alat radi u ljusci Android Debug Bridge.
2. MonkeyRunner za Android
MonkeyRunner za Android popularan je Android alat za testiranje majmuna. Softver je API koji programerima omogućuje pisanje programa koji oponašaju ili kontroliraju Android uređaj. Također je dobra opcija za funkcionalno i jedinično testiranje.
Obje ove aplikacije su dobre opcije. Međutim, prilično su tehnički, što neće odgovarati svim timovima.
Treba li testiranje na majmunima biti automatizirano?
Jedan od najvećih problema s ručnim testiranjem na majmunima je taj što oduzima puno vremena. Druga stvar koju biste trebali primijetiti je da je nekolicini testera teško stvarno simulirati različite interakcije koje široka baza korisnika može imati s određenom aplikacijom.
Dakle, odmah nam upadaju u oči tri mane. Ručno testiranje na majmunima je:
- Oduzima puno vremena
- Skup
- Potencijalno nedostatak pokrivenosti
Automatizirani alat za testiranje majmuna rješava sve te probleme.
Je li ZAPTEST pravi izbor za vaše potrebe testiranja na majmunima?
Testiranje majmuna dobra je tehnika koju imate u repertoaru testiranja, osobito ako dizajnirate složene aplikacije. Međutim, kupnja namjenskog softvera za testiranje majmuna je skupa.
ZAPTEST je fleksibilan i moćan alat za automatizaciju testiranja punog niza. Vrlo je prilagodljiv i omogućuje programerima i netehničkim timovima da izgrade i dizajniraju beskrajnu količinu tehnika testiranja softvera, uključujući testiranje majmuna.
Testiranje majmuna je izvrstan izbor kada se nadopuni drugim vrstama testova. ZAPTEST nudi sve pod jednim krovom, uz dodatak visokokvalitetni RPA alati.
Završne misli
Softver za testiranje majmuna pruža programerima nekonvencionalan način testiranja njihovih aplikacija. Snaga ove tehnike leži u njezinoj sposobnosti da simulira mnoštvo nepredvidivih načina na koje bi korisnik mogao raditi s nekim softverom. Ukratko, testiranje na majmunu pruža pokrivenost koju bi moglo biti teško postići planom testiranja.