Apinatestaus
Ohjelmistotestauksessa apinatestaus on testaustekniikka, missä käyttäjä testaa sovellusta tai järjestelmää tuottamalla satunnaisia syötteitä ja tarkistamalla, miten sovellus toimii tai kaatuuko sovellus tai järjestelmä. Apinatestaus toteutetaan yleensä satunnaisilla automatisoiduilla yksikkötesteillä. Apinatestauksen nimen alkuperä on epäselvä, mutta on uskottu, että nimellä viitataan äärettömän apinajoukon lauseeseen[1]. Toinen mahdollinen selitys nimelle on Mac OS -sovelluksesta nimeltään ”The Monkey”, jonka on kehittänyt Steve Capps ennen vuotta 1983.
Apinatestaus on osa esimerkiksi Android Studio -ohjelmistoympäristöä.[2]
Apinatestaus voidaan jakaa ns. fiksuihin apinatesteihin ja tyhmiin apinatesteihin. Fiksuja apinatestejä kuvaillaan esimerkiksi siten, että niissä on jokin tarkempi ajatus siitä, miten ohjelmisto toimii, niiden tarkoituksena on murtaa systeemi ja ne raportoivat löydetyistä virheistä, eli bugeista. Tyhmät apinatestit, tai ”tietämättömät apinat” kuten niitä myös kutsutaan, taas ovat testejä, joissa ei ole taustatietoa järjestelmän tai systeemin toiminnasta, eikä niiden avulla tyypillisesti löydetä niin montaa virhettä kuin fiksujen apinatestien avulla, mutta toisaalta niiden avulla saatetaan löytää sellaisia tärkeitä virheitä, joita on vaikea löytää fiksuilla apinatesteillä. Apinatestien etuina on esimerkiksi se, että niiden avulla voidaan löytää tehokkaasti virheitä, joita olisi muuten hankala paikallistaa. Ne toimivat myös hyvin sellaisten virheiden etsimiseen, jotka saattaisivat rikkoa koko systeemin. Haittapuolena on taas se, että koska testit ovat satunnaisia, on virheitä hankala tai jopa mahdoton toistaa. Apinatesteillä löydettyjen odottamattomien virheiden analysointi voi myös olla haastavaa tai aikaa vievää.