Mitä on yksikkötestaus?
Yksikkötestaus (Unit Testing) tarkoittaa ohjelmiston tai tuotteen yksittäisten yksiköiden, kuten funktioiden, metodien, komponenttien tai moduulien testaamista erikseen. Tavoitteena on varmistaa, että jokainen yksikkö toimii oikein ja odotetulla tavalla, ennen kuin ne integroidaan suurempaan järjestelmään. Yksikkötestaus on osa tuotteen kehitysprosessia ja sen tarkoituksena on auttaa helposti löytämään virheitä, jotta ne pystytään korjaamaan varhaisessa tuotekehitysvaiheessa.
Yksikkö (Unit)
Yksiköstä (Unit) puhuttaessa se voi tarkoittaa ohjelmiston yhtä funktiota tai metodia, mutta myös yksittäistä yksikköä suuremmassa järjestelmässä tai palvelussa, jolloin voidaan käyttää myös nimitystä moduuli, järjestelmän osakomponentti tai jopa palvelu.
Yksikön testaaminen
Yksikkötestauksen idea on varmistaa, että yksikkö toimii oikein yksittäisenä komponenttina. Yksikölle syötettävien inputtien avulla varmistetaan sen outputit. Tällä tarkoitetaan myös sitä, että yksikkö toimii myös oikein virhetilanteissa eli, kun sille syöttää virheellisiä arvoja tai ärsykkeitä, yksikön pitää myös selvitä niiden aiheuttamista ”ongelmista”.
Riippuen teknologioista yksikkötestauksen yleisimpiä ohjelmointikieliä ovat PyTest, JUnit, NUnit, GTest ja CppUnit. Yksikkötestauksen apuna toimii myös testauskattavuuteen liittyvät työkalut, joiden avulla pyritään tavoittelemaan mahdollisimman hyvä testauskattavuus ja sitä kautta yksikön luotettavuus.
Yksikkötestaus ja mockaaminen (Mocking)
Ohjelmistojen yksikkö yleisesti olettaa, että se on integroituna toisten yksiköiden kanssa. Tästä syystä yksiköille pitää mockata rajapinnat, joita käyttäessään yksikkö luulee olevansa osa muita yksiköitä. Tämä mahdollistaa sen, että yksikkötestauksessa yksiköt voidaan ajaa yksittäisinä ilman muita järjestelmiä tai laitteita.
Elektroniikkalaitteiden ohjelmistojen alatason yksiköiden, esimerkiksi ajureiden kanssa, mockaaminen on haasteellisempaa. Yksikkötestaus voidaan tällöin ajaa myös suoraan laitteessa, jotta yksikkö toimii ja se saadaan testattua halutulla tavalla.
Myös monialustaohjelmistojen testauksessa yksiköiden testaaminen on suositeltavaa, jotta voidaan varmistua niiden toimivuudesta oikein ennen niiden integrointia ohjelmistoksi tai suuremmaksi palveluksi. Monialustaohjelmistojen testauksessa yksiköiden rajapinnat vaikuttavat siihen, miten mockaaminen voidaan tehdä, mutta ajatusmalli tässäkin on samanlainen. Yksikkö testataan yksittäisenä ja sen pitää luulla olevansa osana muita yksiköitä.
Kuka tekee yksikkötestauksen?
Yksikkötestauksen suorittava tekijä riippuu siitä, onko kyseessä:
- Ohjelmiston yhden funktion tai metodin testaus
- Elektroniikan komponentin tai moduulin testaus
- Suuremman järjestelmän tai palvelun yksikön testaus
Mikäli puhutaan ohjelmiston osakomponentin testauksesta, niin yleisesti sen tekee ohjelmiston kehittäjä itse. Se toteutetaan pääsääntöisesti samalla ohjelmointikielellä millä itse varsinainen yksikkö on ohjelmoitu.
Kun kyse on järjestelmän tai palvelun yksittäisen yksikön testauksesta, silloin testattavan yksikön suuruus vaikuttaa siihen kuka testauksen suorittaa. Yleisesti on hyvänä pidetty tapa, että testauksen tekee joku muu henkilö, kuin se, joka komponentin on suunnitellut ja toteuttanut. Tästä syystä testauksen vastuuhenkilöt ovat testaukselle erikoistuneet henkilöt.
Wirva Solutions
yksikkötestauksessa
Wirva Solutions auttaa yrityksiä myös yksikkötestauksessa.
Oli sitten kyse laitteistojen, ohjelmistojen tai palveluihin liittyvissä yksikkötestaustarpeista. Me olemme yrityksien apuna suunnittelemassa, rakentamassa sekä toteuttamassa testausta.
Mikäli yritykselläsi on tarve yksikkötestaukselle tai kaipaatte yleisesti testaukseen vahvaa teknistä osaamista ja tukea niin otathan yhteyttä. Me autamme mielellämme.