Što je testiranje majmuna i gorile? Primjeri, razlika
⚡ Pametni sažetak
Monkey testing unosi nasumične, neplanirane ulazne podatke u pokrenutu aplikaciju i prati hoće li ona preživjeti, pa se rušenja, zamrzavanja i neobrađena stanja otkrivaju mnogo prije nego što je napisan bilo koji unaprijed definirani testni slučaj.
Što je testiranje na majmunima?
Testiranje na majmunima je tehnika testiranja softvera u kojoj tester unosi nasumične ulaze u aplikaciju bez unaprijed definiranih testnih slučajeva i provjerava kako se aplikacija ponaša, posebno ruši li se. Svrha testiranja majmuna je pronaći greške i greške putem eksperimentalne, neskriptirane interakcije.
Naziv dolazi od jednostavne slike, ilustrirane u nastavku.
- U testiranju majmuna, tester (a ponekad i programer) se tretira kao "majmun".
- Kad bi majmun koristio računalo, izvršavao bi zadatke nasumično, bez razumijevanja sustava.
- Na isti način, tester primjenjuje nasumične ulaze na testirani sustav kako bi pronašao greške bez prethodnog definiranja bilo kojeg testnog slučaja.
- U nekim slučajevima testiranje na majmunima usmjereno je na ispitivanje jedinice or Testiranje grafičkog korisničkog sučelja (GUI).
Što je Gorilla testiranje?
Testiranje na gorile je tehnika testiranja softvera u kojoj se jedan modul programa više puta testira kako bi se potvrdilo da ispravno radi i da ne sadrži nedostatke.
Jedan modul može se vježbati stotinu ili više puta na potpuno isti način, zbog čega je gorilla testiranje poznato i kao „frustrirajuće testiranje“. Monkey testiranje se nasumično širi po aplikaciji; gorilla testiranje se upušta u jedno mjesto dok se ne slomi ili ne pokaže čvrstim.
Vrste testiranja majmuna
Testiranje majmuna podijeljeno je u kategorije prema tome koliko tester zna o sustavu. Dijagram u nastavku sažima tri vrste.
- Glupi majmun: Tester nema pojma o sustavu ili njegovoj funkcionalnosti, i ne postoji jamstvo da je bilo koji ulaz valjan.
- Pametni majmun: Tester ima preciznu ideju o sustavu, njegovoj svrsi i funkcionalnosti, snalazi se u njemu i daje valjane ulazne podatke.
- Briljantni majmun: Tester radi na temelju stvarnog ponašanja korisnika i može utvrditi gdje se mogu pojaviti nedostaci.
Testiranje na majmunima u odnosu na testiranje na gorilama u odnosu na ad-hoc testiranje
Testiranje na majmunima, testiranje na gorilama i ad-hoc testiranje dijele neplanirani okus, zbog čega se često brkaju. Dvije tablice u nastavku ih razdvajaju.
Testiranje na majmunima u odnosu na testiranje na gorilama
| Testiranje majmuna | Testiranje gorile |
|---|---|
| Izvodi se nasumično, bez posebno definiranih testnih slučajeva. | Niti unaprijed definirane niti nasumične - iste provjere se jednostavno ponavljaju. |
| Izvodi se na cijelom sustavu i može uključivati mnogo testnih slučajeva. | Izvršeno na nekoliko odabranih modula s malo testnih slučajeva. |
| Cilj je provjeriti je li došlo do pada sustava. | Cilj je provjeriti ispravnost rada modula. |
Testiranje majmuna u odnosu na ad-hoc testiranje
| Testiranje majmuna | Ad-hoc testiranje |
|---|---|
| Izvodi se nasumično, bez posebno definiranih testnih slučajeva. | Izvodi se bez planiranja ili dokumentacije, tako da se ne pripremaju testni slučajevi ili SRS. |
| Testeri možda ne znaju što je sustav ili čemu služi. | Tester mora dobro razumjeti sustav prije početka testiranja. |
| Cilj je provjeriti je li došlo do pada sustava. | Cilj je nasumično podijeliti sustav na poddijelove i provjeriti njihovu funkcionalnost. |
Prednosti i nedostaci testiranja na majmunima
Budući da tehnika žrtvuje planiranje za brzinu, njezine prednosti i slabosti proizlaze iz istog svojstva.
Prednosti testiranja na majmunima
- Nove vrste bugova: Tester može slobodno raditi izvan prethodno navedenih scenarija, što otkriva greške za koje se nitko nije sjetio skriptirati.
- Jednostavno za izvođenje: Organiziranje slučajnih akcija na temelju slučajnih podataka brz je način vježbanja sustava.
- Less vješti ljudi: Testiranje na majmunima često se može provesti bez visoko iskusnih testera.
- Less skupo: Za postavljanje i pokretanje potrebno je znatno manje troškova nego za skriptirani paket.
Nedostaci testiranja na majmunima
- Bube je teško reproducirati: Budući da su ulazi slučajni, ponovno stvaranje kvara možda neće biti moguće bez zabilježenog početnog podataka.
- Less točnost: Tester ne može definirati točan scenarij i ne može jamčiti točnost onoga što je obuhvaćeno.
- Tehnička stručnost i dalje pomaže: Da bi nalazi bili smisleni, testeri trebaju dobro poznavati domenu.
- Sporo u odnosu na prinos: Izvodi mogu trajati dugo vremena i još uvijek vraćati malo nedostataka, ostavljajući praznine u sustavu.
Kako izvesti testiranje na majmunima
Testiranje majmunima postaje daleko učinkovitije kada ga pokreće alat i kada se može pokrenuti protiv njega. Android izrada, kao i desktop i web aplikacija. Opći postupak je sljedeći:
- Registrirajte testiranu aplikaciju s alatom ili namjenskim poslužiteljem koji će je pokretati.
- Pripremite reference i konfiguraciju potrebnu alatu za izradu testnog paketa.
- Pokrenite izgrađeni paket testova.
- Neka alat zapiše svoj dnevnik — datoteka dnevnika „monkey testa“ bilježi svaki generirani događaj i rezultate.
- Dopustite da se izvođenje nastavi dok sustav ne dosegne točku pada, u kojoj se sporna radnja bilježi u zapisniku.
- Podijelite izvješće s odgovornim timom i pohranite podatke testiranja za buduću upotrebu.
Zapamtite svaki zapisnik. Slučajno pokretanje korisno je kasnije samo ako su spremljeni slijed događaja i početna vrijednost koja ga je proizvela, dakle upravljanje nedostacima može povezati pad sustava s reproducibilnim ulazom.
Alati za testiranje majmuna
Testiranje majmuna obično je automatizirano, jer stroj može generirati tisuće događaja u vremenu u kojem osoba generira nekoliko desetaka. Uobičajeno korištene opcije su:
- Majmun za vježbanje korisničkog sučelja/aplikacija: alat naredbenog retka ugrađen u Android koji teče u ADB ljuske i šalje pseudo-slučajne tokove korisničkih događaja, kao što su dodiri, geste i pritisci tipki, plus događaje na razini sustava, na uređaj ili emulator.
- MonkeyRunner: zasebna Python API koji upravlja uređajima i emulatorima s radne stanice, šalje određene naredbe i snima snimke zaslona. Unatoč imenu, to nije isti alat kao i majmun za vježbanje.
- UI automatizator i Appium: opći mobilno testiranje okvire koji se mogu skriptirati za aktiviranje polu-slučajnih nizova događaja prilikom izgradnje.
- Alati za fuzzing kao što je AFL: ista ideja slučajnog unosa primijenjena na podatke, a ne na geste, što je obrađeno u testiranje nejasnoća.
Podrška alata za testiranje pomoću majmuna je manja nego za skriptno testiranje. ispitivanje automatizacije, pa većina timova kombinira generički generator događaja sa svojim postojećim okvirom umjesto kupnje namjenskog proizvoda.
Kada koristiti testiranje majmuna
Testiranje na majmunima zaslužuje svoje mjesto u specifičnim situacijama, a ne kao opća zamjena za planirano testiranje.
Koristite ga kada:
- Rana izrada zahtijeva jeftinu provjeru stabilnosti prije nego što postoje formalni testni slučajevi.
- Sučelje je vrlo interaktivno - igre, alati za crtanje, media playeri - i stvarno ponašanje korisnika je teško predvidjeti.
- Želite li se namakati ili stres izvođenje koje satima traži padove sustava, curenje memorije i neobrađena stanja.
- Izdanje je prošlo skriptne provjere i želite neovisnu provjeru svega čega se skripta nikada nije dotakla.
Izbjegavajte ga kada:
- Trebate ponovljive dokaze da je zahtjev ispunjen - to je posao pisanog testni slučaj.
- Izrada je dovoljno nestabilna da se svako pokretanje odmah ruši, što sve skriva iza prvog kvara.
- Vremena je malo, jer nasumično pretraživaje ne jamči da će se išta pronaći.
U praksi, najjači rezultati dolaze iz miješanih pristupa: skriptirani testovi pokrivaju poznate tokove, istraživačko testiranje namjerno istražuje nepoznato, a testiranje majmunima napada ono što su obojica pretpostavljali da se nikada neće dogoditi.


