Testauksen tavoitteet

Mitä testaus on?

Puhekielessä testauksella tarkoitetaan lähes mitä tahansa kokeilemista. Ohjelmistoja testatessa testaus määritellään suunnitelmalliseksi virheiden etsimiseksi ohjelmaa tai sen osaa suorittamalla. Testaus on suunnitelmallista, ja huolellisesti suunniteltuja testitapauksia käyttäen saadaan muutamassa tunnissa parempia tuloksia kuin päiväkausien umpimähkäisellä kokeilulla.

Testaukseen liittyvät työvaiheet ovat testauksen suunnittelu, testiympäristön luonti, testin suorittaminen ja tulosten tarkastelu. Näihin työvaiheisiin ja niihin läheisesti liittyvään virheiden jäljitykseen ja korjaukseen kuluu tyypillisesti yli puolet ohjelmistoprojektin resursseista, joten testauksen läpivientiin parhaalla mahdollisella tavalla kannattaa kiinnittää huomiota. Testauksen yhteydessä virhe on poikkeama spesifikaatiossa. Määritelmästä seuraa, että testaus ilman spesifikaatiota on mahdotonta, koska lopputuloksen oikeellisuutta ei voi todeta.

Tavallisimmin testauksessa käytettäviä spesifikaatioita ovat toiminnallinen ja tekninen määrittely. Testaussuunnitelma muodostaa testaajille kartan, jonka avulla työskennellä. Testaussuunnitelma sisältää tehtävät, jotka suoritetaan testatessa. Testaussuunnitelmasta löytyvät myös testaustyön tulokset ja tavat, joilla testaustuloksia arvioidaan ja uudelleen käytetään tulevilla testauskerroilla. Joissain tapauksissa testaussuunnitelma sisältyy projektisuunnitelmaan

Testauksen kattavuus

Tarvittavan testauksen määrää on vaikea arvioida. Testauksen lopettamiselle tulisi aina asettaa hyväksymiskriteerit, jotka määritellään testaussuunnitelmassa. Muuten on vaikea sanoa, milloin testaus voidaan lopettaa ja siirtää järjestelmä eteenpäin. Yksi näistä hyväksymiskriteereistä on kattavuus.

Kattavuusmitoilla voidaan yrittää varmistaa, että testiaineisto aiheuttaa testattavan ohjelman kaikkien osien kattavan suorittamisen. Kattavuusmittaa voidaan myös käyttää todisteena siitä, että testausta on suoritettu riittävästi. Kattavuusmittoja ovat mm. lausekattavuus, päätöskattavuus, ehtokattavuus ja moniehtokattavuus. Lausekattavuudella tarkoitetaan suoritettuja lauseita jaettuna ohjelman sisältämillä lauseilla, päätöskattavuudella suoritettuja haaroja jaettuna mahdollisten haarojen määrällä eli jokainen ehto siis saa testatessa molemmat arvonsa (tosi/epätosi). Ehtokattavuudessa päätöksen kaikkien ehtojen on saatava kaikki arvonsa ja moniehtokattavuudessa testaus suoritetaan kaikkien ehtojen kaikilla kombinaatioilla. Näiden lisäksi on vielä polkukattavuus, jossa ohjelmaa tarkastellaan suunnattuna verkkona, jonka solmuina ovat ohjelman haarautumis-kohdat. Polkukattavuudessa pyritään kattamaan mahdollisimman monia erilaisia suorituspolkuja ohjelman läpi.

Testauksen kattavuus on helpoin saada korkeaksi moduulitestaustasolla, vaikka siinäkään ei yleensä päästä täyteen sataan prosenttiin edes lausekattavuudella mitattuna. Jos testauksen kattavuutta ei mitenkään mitata, on sitä lähes mahdoton arvioida. On olemassa testikattavuusanalysaattoreita, jotka ovat ovat työkaluja, jotka mittaavat testin kattavuutta jollain edellä kuvatuista kattavuusmitoista. Samalla työkalulla voi usein mitata ohjelmarivien suorituskertojen lukumääriä ja prosessoriajan käyttöä.

Dokumentointi

Testausdokumentaatiota voi syntyä varsin paljon: järjestelmätestaussuunnitelma, integrointitestaussuunnitelma jokaisesta integrointitestistä, moduulitestaussuunnitelma jokaisesta integrointitestistä, moduulitestaussuunnitelma jokaisesta moduulitestistä ja vastaavasti raportti jokaisesta suoritetusta testistä. Pienehköissä projekteissa riittää yleensä yksi testaussuunnitelma, joka kattaa sekä integrointi- että järjestelmätestauksen. Alustava suunnitelma laaditaan määrittelyvaiheessa ja sitä täydennetään myöhemmin suunnitteluvaiheessa. Testaussuunnitelmat voidaan myös sisällyttää projektisuunnitelmaan (yleiskuvaus), toiminnalliseen määrittelyyn (järjestelmätestaus) ja tekniseen määrittelyyn (integrointi- ja moduulitestaus).

Testaussuunnitelmasta selviää mm. mitä testejä tehdään ja milloin, miten ne järjestetään ja millaisia lopputuloksia odotetaan. Oleellisen tärkeää on määritellä testauksen lopettamiskriteerit. Eri testaustasoilla löytyneet virheet tulisi raportoida ja analysoida. Kirjattavia tietoja ovat mm. millainen virhe löytyi, missä ja milloin virhe on tehty, milloin virhe löydettiin, milloin se olisi pitänyt löytää, miksi sitä ei huomattu aiemmin, miten se olisi voitu löytää aikaisemmin, miten se olisi voitu estää, miten se korjattiin ja korjaukseen käytetty aika. Ilman raportteja on mahdotonta saada selville testaukseen käytettyä aikaa ja laatujärjestelmän kehityskohteita.

<<Takaisin alkusivulle

>>Testausstrategiat