Mutatsioontestimine ühiktestide rikete avastamisvõime parandamiseks: juhtumiuuring

Nimi
Gaukhar Dauzhan
Kokkuvõte
Mutatsioonitestimine aitab hinnata testikomplektide kvaliteeti ja parandada rikete tuvastamise võimet. See genereerib nn mutante, tehes programmis väikeseid süntaktilisi muudatusi ja kontrollides, kas testid suudavad tehtud muudatusi tuvastada. Mida rohkem mutante tuvastatakse, seda tugevamaks loetakse testipaketti. Ehkki mutatsioonide testimist loetakse testipaketi kvaliteedi hindamisel tavapärastest ühiktestide katvusest paremaks, on sellel mõned piirangud, mis takistavad selle laialdast kasutuselevõttu tarkvara arenduses. Peamisteks piiranguteks on arvutuslik kulukus ja arendajate märkimisväärne aeg, mis kulub mutantide hindamisele ja nende elimineerimisele lisa testidega. Käesolevas töös on uuritud Twilio mitmete Scala teenuste varasemaid tarkvaravigu, et teha kindlaks, kas mutatsioonide testimine oleks võinud vigu ennetada. Eelkõige on kontrollitud, kas mutatsioonide testimise käigus lisatud uued testid oleks võinud rikkeid tuvastada enne kui hilja. Tulemused on näidanud, et mutatsioonitestimine oli kasulik ainult ühe vea korral 17-st; mille korral oli tegemist keeruka algoritmiga. Avastati, et mutatsioonide testimine võib tuua ka muud kasu, näiteks üleliigsete testijuhtude leidmine ja koodi kvaliteedi parandamine. Samal ajal on mutatsioonitestide kasutamisel ka kriitilisi takistusi, nagu näiteks Scala testimisvahendi ebaküpsus, suured pingutused tööriista integreerimiseks arendusvoogudesse ja suur hulk samaväärseid mutante (palju müra). Seetõttu ei kaalu väiksemad eelised, mida mutatsioonitestimine anda võib, ettevõttes üle selle tõhusaks kasutamiseks vajalikke jõupingutusi.
Lõputöö keel
inglise
Lõputöö tüüp
Magister - Tarkvaratehnika
Juhendaja(d)
Dietmar Pfahl, Eerik Potter
Kaitsmise aasta
2021
 
PDF