Skip to content

Yksikkötesti/Unit Test

Kuvauksen kirjoitti: Jonne Okkonen, M2235

Lyhyt kuvaus käsitteestä tai aiheesta

Yksikkötestaus (eng. Unit Testing) on testauskeino, jolla testataan koodin yksittäisiä osia. Testauksen tarkoituksena on varmistaa, että koodin osa tekee sen mihin se on suunniteltu ja hyvässä yksikkötestauksessa myös varmistetaan, että koodin osa toimii oikein myös tilanteissa, joissa sitä on käytetty väärin tai sille on annettu virheellistä dataa. Yksikkötestaus on yksi valkolaatikkotestauksen muotoja, koska testauksen suorittaa yleensä kehittäjä, joka tuntee koodin ja sen toiminnan. Testaus voi olla myös mustalaatikkotestausta, jos se suoritetaan käyttämällä järjestelmää, mutta yleensä testaus suoritetaan koodin puolella, jolloin kyseessä on valkolaatikkotestaus. Suoritettavat testit voivat olla automatisoituja tai ne voidaan suorittaa myös manuaalisesti, mutta yleensä testit kuitenkin tehdään automaattisiksi ajan säästämiseksi. Testit voidaan ajaa vaikka CI-pipelinessa automaattisesti ennen uuden version julkaisua.

Esimerkkitapaus

Otetaan esimerkiksi ohjelma, joka käsittelee käyttäjäntietoja. Tälläisessä ohjelmassa voitaisiin testata jokainen aliohjelma yksikkötestauksen avulla. Kyseessä voisi olla vaikka aliohjelma, jonka tehtävänä on poistaa annetun käyttäjän tiedot järjestelmästä. Yksikkötestauksella olisi hyvä varmistaa, että koodi tosiaan poistaa käyttäjän järjestelmästä ja vain ainoastaan valitun käyttäjän tiedot, ei useamman tai väärän käyttäjän tietoja. Lisäksi on hyvä varmistaa, että vikatilanteessa, jossa olisi annettu vaikka tehtäväksi poistaa käyttäjä, jota ei ole enää olemassa, koodi ei kaataisi koko ohjelmaa, vaan antaisi tilanteesta virheilmoituksen käyttöliittymään.

Miksi tehdä yksikkötestausta

Yksikkötestausta kannattaa tehdä, koska se säästää pitkällä aikavälillä aikaa. Sen avulla voidaan löytää helposti virheet jo heti kehityksen alkuvaiheilla. Koodia uudelleen käytettäessä tai muokatessa, jota tehdään paljon ketterässä ohjelmistokehityksessä, voidaan automaattisten yksikkötestien avulla varmistaa, ettei uudet muutokset ole aiheuttaneet ongelmia ja koodi toimii edelleenkin kuten sen on tarkoitus.

Linkit ulkopuolisiin lähteisiin

Avainsanat harjoitustehtävän repositoriossa