Koodipeitto on ohjelmistotestauksessa käytetty mitta . Se näyttää prosenttiosuuden ohjelman lähdekoodista, joka suoritettiin testausprosessin aikana.
Koodipeitto oli yksi ensimmäisistä tekniikoista, jotka keksittiin järjestelmälliseen ohjelmistotestaukseen (erityisesti white box -testaukseen ). Ensimmäinen maininta koodin kattavuudesta julkaisuissa ilmestyi vuonna 1963 [1] .
Kattavuuden mittaamiseen on useita eri tapoja, joista tärkeimmät ovat:
Ohjelmissa, joilla on erityisiä suojausvaatimuksia, on usein tarpeen osoittaa, että testit kattavat 100 % jonkin kriteerin. Jotkut annetuista kattavuuskriteereistä liittyvät toisiinsa; esimerkiksi polun kattavuus sisältää sekä ehtojen kattavuuden että lausunnon kattavuuden. Lausunnon kattavuus ei sisällä kunnon kattavuutta, kuten tämä C -koodinpätkä osoittaa :
printf ( "tämä on" ); jos ( pylväs < 1 ) { printf ( "ei" ); } printf ( "positiivinen kokonaisluku" );Jos tässä bar = −1, niin operaattorin kattavuus on täydellinen, mutta ehdon kattavuus ei, koska jos if-lauseen ehdon noudattamatta jättäminen ei kata (ja tulos vääristyy positiivisten lukujen kohdalla). Täydellinen polun peitto ei yleensä ole mahdollista. Koodifragmentti, jolla on n ehtoa, sisältää polkuja; silmukkakonstrukti generoi äärettömän määrän polkuja. Joitakin ohjelman polkuja ei ehkä saavuteta, koska testitiedoissa ei ollut polkuja, jotka voisivat johtaa näiden polkujen suorittamiseen. Ei ole olemassa universaalia algoritmia, joka ratkaisee saavuttamattomien polkujen ongelman (tätä algoritmia voitaisiin käyttää pysäytysongelman ratkaisemiseen ).
Käytännössä polun peiton saavuttamiseksi käytetään seuraavaa lähestymistapaa: polkuluokat erotellaan (esimerkiksi polut, jotka eroavat vain saman syklin iteraatioiden lukumäärän suhteen , voidaan määrittää yhteen luokkaan), 100 % kattavuus saavutetaan, jos kaikki poluluokat on katettu (luokka katsotaan katetuksi, jos vähintään yksi polku siitä on katettu).
Tyypillisesti lähdekoodi on varustettu säännöllisesti suoritettavilla testeillä. Tuloksena oleva raportti analysoidaan koodin suorittamattomien alueiden tunnistamiseksi, testipaketti päivitetään ja testit kirjoitetaan peittämättömille alueille. Tavoitteena on saada regressiotestipaketti , joka tarkistaa perusteellisesti kaiken lähdekoodin.
Koodin kattavuus ilmaistaan yleensä prosentteina. Esimerkiksi "testasimme 67 % koodista." Tämän lauseen merkitys riippuu käytetystä kriteeristä. Esimerkiksi 67 %:n polun kattavuus on parempi kuin 67 %:n kattavuus. Kysymystä koodin peiton arvon ja testijoukon laadun välisestä suhteesta ei ole vielä täysin ratkaistu.