Mitä Monkey & Gorilla -testaus on? Esimerkkejä, ero
⚡ Älykäs yhteenveto
Apinatestaus syöttää satunnaista, suunnittelematonta syötettä käynnissä olevaan sovellukseen ja tarkkailee, selviääkö se, joten kaatumiset, jumiutumiset ja käsittelemättömät tilat paljastuvat kauan ennen kuin yhtään ennalta määriteltyä testitapausta on kirjoitettu.
Mitä on apinatestaus?
Apinatestaus on ohjelmistotestaustekniikka, jossa testaaja syöttää sovellukseen satunnaisia syötteitä ilman ennalta määriteltyjä testitapauksia ja tarkistaa sovelluksen toiminnan, erityisesti kaatuuko se. Apinatestauksen tarkoituksena on löytää bugeja ja virheitä kokeellisen, ohjelmoimattoman vuorovaikutuksen avulla.
Nimi tulee yksinkertaisesta kuvasta, joka on esitetty alla.
- Apinatestauksessa testaajaa (ja joskus kehittäjää) kohdellaan "apinana".
- Jos apina käyttäisi tietokonetta, se suorittaisi tehtäviä satunnaisesti ymmärtämättä järjestelmää.
- Samalla tavalla testaaja käyttää testattavaan järjestelmään satunnaisia syötteitä löytääkseen virheitä määrittelemättä ennalta mitään testitapausta.
- Joissakin tapauksissa apinatestien tarkoituksena on yksikkötestaus or Käyttöliittymätestaus.
Mitä Gorilla-testaus on?
Gorilla-testaus on ohjelmistotestaustekniikka, jossa yhtä ohjelman moduulia testataan toistuvasti sen varmistamiseksi, että se toimii oikein eikä sisällä virheitä.
Yhtä moduulia voidaan käyttää sata kertaa tai useammin täsmälleen samalla tavalla, minkä vuoksi gorilla-testausta kutsutaan myös "turhauttavaksi testaukseksi". Apinatestaus leviää satunnaisesti sovellukseen; gorilla-testaus keskittyy yhteen kohtaan, kunnes se hajoaa tai osoittautuu vakaaksi.
Apinatestauksen tyypit
Apinatestaus jaetaan luokkiin sen mukaan, kuinka paljon testaaja tietää järjestelmästä. Alla oleva kaavio tiivistää kolme tyyppiä.
- Tyhmä apina: Testaajalla ei ole aavistustakaan järjestelmästä tai sen toiminnasta, eikä ole takeita siitä, että mikään syöte on pätevä.
- Älykäs apina: Testaajalla on tarkka käsitys järjestelmästä, sen tarkoituksesta ja toiminnallisuudesta, hän navigoi siinä ja antaa valideja syötteitä.
- Loistava apina: Testaaja työskentelee todellisen käyttäjäkäyttäytymisen pohjalta ja pystyy osoittamaan, missä vikoja todennäköisesti esiintyy.
Apinatestaus vs. gorillatestaus vs. ad-hoc-testaus
Apinatestaus, gorillatestaus ja ad-hoc-testaus niillä on käsikirjoittamaton maku, minkä vuoksi ne usein sekoitetaan. Alla olevat kaksi taulukkoa erottavat ne toisistaan.
Apinatestaus vs. gorillatestaus
| Apinan testaus | Gorilla testaus |
|---|---|
| Suoritetaan satunnaisesti, ilman ennalta määriteltyjä testitapauksia. | Ei ennalta määriteltyjä eikä satunnaisia – samat tarkistukset yksinkertaisesti toistetaan. |
| Suoritetaan koko järjestelmälle ja voi sisältää useita testitapauksia. | Suoritettu muutamalla valitulla moduulilla ja muutamalla testitapauksella. |
| Tavoitteena on tarkistaa, onko järjestelmä kaatunut. | Tarkoituksena on tarkistaa, toimiiko moduuli oikein. |
Apinatestaus vs. ad-hoc-testaus
| Apinan testaus | Ad-hoc-testaus |
|---|---|
| Suoritetaan satunnaisesti, ilman ennalta määriteltyjä testitapauksia. | Suoritetaan ilman suunnittelua tai dokumentointia, joten testitapauksia tai SRS:ää ei laadita. |
| Testaajat eivät välttämättä tiedä, mikä järjestelmä on tai mihin sitä käytetään. | Testaajan on ymmärrettävä järjestelmä hyvin ennen testauksen aloittamista. |
| Tavoitteena on tarkistaa, onko järjestelmä kaatunut. | Tavoitteena on jakaa järjestelmä satunnaisesti osiin ja tarkistaa niiden toimivuus. |
Apinatestauksen edut ja haitat
Koska tekniikka korvaa suunnittelun nopeudella, sen edut ja heikkoudet johtuvat samasta ominaisuudesta.
Apinatestauksen edut
- Uusia bugityyppejä: Testaaja voi työskennellä myös aiemmin mainittujen skenaarioiden ulkopuolella, mikä nostaa esiin virheitä, joita kukaan ei ollut ajatellut skriptata.
- Helppo toteuttaa: Satunnaisten toimien järjestäminen satunnaista dataa vasten on nopea tapa harjoitella järjestelmää.
- Less osaavat ihmiset: apinatestaus voidaan usein suorittaa ilman erittäin kokeneita testaajia.
- Less kallis: sen asentaminen ja käyttäminen vaatii huomattavasti vähemmän kustannuksia kuin skriptatun sarjan.
Apinatestauksen haitat
- Virheitä voi olla vaikea toistaa: Koska syötteet ovat satunnaisia, epäonnistumisen toistaminen ei välttämättä ole mahdollista ilman tallennettua siementä.
- Less tarkkuus: Testaaja ei voi määritellä tarkkaa skenaariota eikä taata käsiteltyjen asioiden paikkansapitävyyttä.
- Tekninen asiantuntemus auttaa edelleen: Jotta löydökset pysyisivät merkityksellisinä, testaajien on tunnettava toimiala hyvin.
- Hidas suhteessa saantoon: Ajot voivat jatkua pitkään ja silti palauttaa vain vähän vikoja, jättäen järjestelmään aukkoja.
Kuinka suorittaa apinatestaus
Apinatestaus tehostuu huomattavasti, kun sitä ohjaa työkalu, ja sitä voidaan käyttää Android sekä työpöytä- että verkkosovelluksia. Yleinen prosessi on seuraava:
- Rekisteröi testattava sovellus työkaluun tai sitä käyttävään erilliseen palvelimeen.
- Valmistele viitteet ja konfiguraatio, jota työkalu tarvitsee testisarjan rakentamiseen.
- Suorita rakennettu testipaketti.
- Anna työkalun kirjoittaa lokitiedostonsa — ”apinatesti”-lokitiedosto tallentaa jokaisen luodun tapahtuman ja tulokset.
- Anna ajon jatkua, kunnes järjestelmä saavuttaa kaatumispisteen, jossa häiritsevä toiminto tallennetaan lokiin.
- Jaa raportti vastuutiimin kanssa ja tallenna testitiedot myöhempää tarvetta varten.
Säilytä jokainen loki. Satunnainen ajo on hyödyllinen myöhemmin vain, jos tapahtumasarja ja sen tuottanut siemen on tallennettu, joten vianhallinnan voi yhdistää kaatumisen toistettavissa olevaan syötteeseen.
Apinan testaustyökalut
Apinatestaus on yleensä automatisoitua, koska kone voi tuottaa tuhansia tapahtumia ajassa, jonka ihminen tuottaa muutaman kymmenen. Yleisesti käytetyt vaihtoehdot ovat:
- Käyttöliittymä/sovellus Liikuntamonsteri: sisäänrakennettu komentorivityökalu Android joka kulkee ADB kuori ja lähettää laitteelle tai emulaattorille näennäissatunnaisia käyttäjätapahtumien virtoja, kuten napautuksia, eleitä ja näppäinpainalluksia, sekä järjestelmätason tapahtumia.
- MonkeyRunner: erillinen Python API joka ohjaa laitteita ja emulaattoreita työasemalta, lähettää tiettyjä komentoja ja ottaa kuvakaappauksia. Nimestään huolimatta se ei ole sama työkalu kuin kuntoiluapina.
- Käyttöliittymän automatisointi ja Appium: yleinen mobiilitestaus kehykset, joille voidaan skriptata puolisatunnaisten tapahtumasarjojen käynnistäminen koontiversiossa.
- Fuzzing-työkalut, kuten AFL: sama satunnaisen syötteen idea sovellettiin dataan eleiden sijaan, mitä käsitellään kohdassa fuzz-testaus.
Apinatestauksen työkalutuki on ohuempi kuin skriptitestauksen automaatiotestaus, joten useimmat tiimit yhdistävät geneerisen tapahtumageneraattorin olemassa olevaan kehykseensä sen sijaan, että ostaisivat erillisen tuotteen.
Milloin apinatestausta käytetään
Apinatestaus ansaitsee paikkansa tietyissä tilanteissa sen sijaan, että se korvaisi suunnitellut testit yleisesti.
Käytä sitä, kun:
- Varhainen koontiversio tarvitsee halvan vakaustarkistuksen ennen kuin virallisia testitapauksia on olemassa.
- Käyttöliittymä on erittäin interaktiivinen – pelejä, piirtotyökaluja, mediasoittimia – ja todellista käyttäjän käyttäytymistä on vaikea ennustaa.
- Haluatko kylpeä tai stressi joka etsii kaatumisia, muistivuotoja ja käsittelemättömiä tiloja useiden tuntien ajan.
- Julkaisu on läpäissyt skriptitarkastukset ja haluat riippumattoman tarkistuksen kaikelle, mihin skripti ei ole koskaan koskenut.
Vältä sitä, kun:
- Tarvitset toistettavia todisteita vaatimuksen täyttämisestä – se on kirjallisen todistuksen tehtävä. testitapaus.
- Koonti on niin epävakaa, että jokainen ajo kaatuu välittömästi, mikä piilottaa kaiken ensimmäisen epäonnistumisen taakse.
- Aika on vähissä, koska satunnainen haku ei takaa löydöstä.
Käytännössä vahvimmat tulokset saadaan yhdistämällä lähestymistapoja: skriptatut testit kattavat tunnetut virrat, tutkiva testaus tutkii tuntematonta tarkoituksella ja apina testaa hyökkäyksiä tekemällä mitä tahansa he molemmat olettivat, ettei koskaan tapahtuisi.


