User:Suklaamix/Käyttäjä:Suklaamix/Mutaatiotestaus

Mutaatiotestausta (tai mutaatioanalyysia, ohjelmamutaatiota) käytetään uusien ohjelmistotestien suunnitteluun tai olemassa olevien ohjelmistotestien laadun arviointiin. Mutaatiotestauksessa ohjelmaa muutetaan pienin askelin. Jokaista muunnettua versiota kutsutaan mutantiksi, ja testi havaitsee ja hylkää mutantit saamalla alkuperäisen version käyttäytymään eri tavalla kuin mutantti. Tätä kutsutaan mutantin tappamiseksi. Testijoukko arvioidaan tapettujen mutanttien prosenttiosuuden perusteella. Uusia testejä voidaan suunnitella tappamaan enemmän mutantteja. Mutantit perustuvat hyvin määriteltyyn mutaatio-operaattoriin. Tämä operaattori joko jäljittelee tyypillisiä ohjelmointivirheitä (esim. väärien operaattoreiden tai muuttujien nimien käyttö) tai pakottaa luomaan arvotestejä (esim. jokaisen lausekkeen jakaminen nollalla). Sen tarkoituksena on auttaa testaajia kehittämään tehokkaita testejä tai löytämään heikkouksia ohjelman testidatasta tai sellaisista koodin osista, jotka eivät ole käytettävissä ajon aikana. Mutaatiotestaus on eräänlaista white box -testausta.

Johdanto
Tämä artikkeli käsittelee "ohjelmamutaatiota", jossa ohjelmaa muutetaan. Mutaatioanalyysin yleisemmällä määritelmällä tarkoitetaan syntaktisten rakenteiden määriteltyjen sääntöjen käyttöä ohjelmistojen systemaattisten muutosten tekemiseen. Mutaatioanalyysia on sovellettu myös muihin ongelmiin, mutta yleensä testaukseen. Toisin sanoen mutaatiotestauksella tarkoitetaan mutaatioanalyysin käyttämistä uusien ohjelmistotestien suunnitteluun tai olemassa olevien ohjelmistotestien arviointiin. Mutaatioanalyysiä ja -testausta voidaan siis soveltaa suunnittelumalleihin, määrittelyihin, tietokantoihin, testeihin, XML:ään ja muihin ohjelmistoartefakteihin, mutta ohjelmistomutaatio on yleisin.