Ohjelmoija = testaaja

Ohjelmistotestauksessa painopiste on siirtynyt 2000-luvulla automatisoituun testaukseen. Huomattava osa testeistä ohjelmoidaan käyttäen samaa ohjelmointikieltä kuin testattava tuote. Koska tällaisten testien toteuttaminen vaatii syvällistä teknistä osaamista, yhden komponentin testit koodaa tyypillisesti komponentin ohjelmoinut henkilö.

Perinteisesti testaajat ovat käyttäneet testisuunnitelmaa ja manuaalisesti suorittaneet siinä listatut testit verraten lopputulosta odotettuun. Tällaisilla testeillä voidaan kuitenkin löytää vain pieni osa virheistä. Lisäksi inhimillisen virheen mahdollisuus kasvaa mitä enemmän manuaalisia testejä on suoritettavana.

Kaikkia testejä ei toki voida automatisoida, joten manuaaliselle testauksellekin on edelleen paikkansa. Käyttöliittymissä voidaan hyödyntää myös käytävätestausta, jossa napataan ensimmäinen vastaan kävellyt henkilö ohjelmaa käyttämään. Luonnollisesti myös asiakkaat ja/tai loppukäyttäjät otetaan mukaan testaukseen.

Dedikoitujen testaajien lukumäärä ei siis takaa ohjelmiston laatua. Modernissa ohjelmistokehityksessä työtä tekee tiimi, jossa kaikki ovat ohjelmoijia ja testaajia. Mahdollisimman suuri osa testeistä automatisoidaan, jotta virheet löydetään aikaisessa vaiheessa.

Pasi Kovanen

Pasi Kovanen
Software with Passion.

2 kommenttia

Pasi Kovanen sanoo:

Kiitos hyvästä kommentista.

Yksikkötestien avullahan voidaan nähdä, jos koodin muokkaus (refaktorointi) rikkoo jonkin testin. Toki muokkauksen yhteydessä yleensä joutuu testejäkin muokkaamaan.

Tämä testien muokkaamisen tarve voi tosin joskus aiheuttaa sen, että refaktorointia siirretään niin pitkään kuin mahdollista. Näin kertyvä tekninen velka on kuitenkin pakko ennemmin tai myöhemmin maksaa korkojen kerta takaisin.

Mielestäni jokaisen ohjelmoyrityksen vastuulla on pitää huolta siitä, että ohjelmoijista kehittyy myös ohjelmistotestauksen ammattilaisia. Testaus on niin keskeinen osa kehitystyötä.

Elisa sanoo:

Valitettavan useasti silti unohtuu, että automatisoituja testejä täytyy ylläpitää ja päivittää softan kehittyessä.
Riittääkö ohjelmoijalla tähän aika & tietotaito, kuinka ohjelmanpätkää kannattaa testata?

Liity keskusteluun