Regeressiotestaus
Kuvauksen kirjoitti: Tapani Alastalo
Kuvaus käsitteestä
Regressiotestauksella pyritään varmistamaan, ettei tehdyt muutokset ohjelma- koodiin riko ohjelmaan aiemmin tehtyjä toimintoja. Regressiotestaus koostuu varhaisemmassa vaiheessa suoritetuista testeistä ja niiden uudelleen ajosta.
Ohjelman kasvaessa ja haarautuessa se muuttuu kompleksisemmaksi, tällöin myös testauspolkujen lukumäärät kasvavat ja yksikkötestaukset eivät riitä ohjelman kokonaisuuden toiminnallisuuden varmistamiseksi esimerkiksi versiopäivityksen yhteydessä.
Regressiotestausta suoritetaan manuaalisesti, automaattisesti, sekä näitä yhdistelemällä.
Testaaminen yleisesti
Testauksella pyritään saamaan tietoa ohjelmakoodin toimivuudesta ja laadusta. Testauksella voidaan todeta projektin kaupallisten ja teknisten vaatimusten täyttyminen. Suoritettavien testien tavoitteena on löytää ohjelmavirheitä, jotta virheet saadaan korjattua ennen ohjelman käyttöönottovaihetta.
Regressiotestauksen merkitys
Regressiotestausta voidaan suorittaa kaikissa prosessin vaiheissa. Regressiotestaukella halutaan varmistaa, että ohjelmaan tehdyt muutokset eivät rikkoisi ohjelmaan aiemmin tehdyn osa-alueen toiminnallisuutta. Yleensä regressiotestaus suoritetaan tehdyn korjauksen tai päivityksen viimeisenä vaiheena.
Regressiotestin osa-alueet
Regressiotestit voidaan jakaa kolmeen ryhmään:
- ohjelman kaikkiin toteutettuihin ominaisuuksiin liittyvät testit
- testit niille toiminnoille, joihin muutokset vaikuttavat todennäköisimmin
- muutettuihin ja lisättyihin komponentteihin kohdistuvat testit
Muuta aiheeseen liittyvää
Manuaalitestaus
Manuaaliset testitapaukset voivat olla yksinkertaiset asiat, kuten yksittäisen painikkeen toiminta. Usein testejä joudutaan toistamaan useaan kertaan, jolloin kannattaa miettiä testauksen automatisointia.
Plussat:
- virheitä voi olla helpompi löytää manuaalisesti
- aloittelevalle testaajalle opettaa testaamisen tarkoitusta ja perusteita
- auttaa oppimaan testattavaa kohdetta loppukäyttäjän näkökulmasta
Miinukset:
- hidas kestoista
- itseääntoistavaa ja liian helppoa
Automaatiotestaus
Automaatiotestauksella tavoitellaan toistuvien testitapausten suorittamiseen, jotta voidaan kohdistaa henkilöresurssit järkevämmin. Yleisiä automaatiotestauksen työkaluja ovat Selenium, Robot Framework ja Jenkins.
Plussat:
- kustannukset pienenevät
- henkilöresurssien tarve vähenee
- testaukset voidaan ajastaa
- testauksia voidaan toistaa kuinka monta kertaa tahansa
- testit saadaan ajettua nopeasti
Miinukset:
- vaatii tarkkaa suunnittelua, varsinkin jos ohjelma on kompleksinen
- useasti muuttuvat testitapaukset eivät sovellu hyvin automatisoituna