Kysy konsultilta: Mitä eroa on yksikkö- ja integraatiotestaamisella?

19. syyskuuta 2024

Mitä eroa on yksikkö- ja integraatiotestaamisella?

Yksikkötesteillä testataan jonkin koodin osan toimintaa itsenäisesti. Yhden yksikkötestin tulisi kohdistua laajuudeltaan yksittäisen funktion tai luokan sisäiseen toimintaan. Yksikkötesteissä riippuvuudet sovelluksen muihin osiin, ulkopuolisiin sovelluksiin ja kirjastoihin pyritään minimoimaan. Testattavan yksikön vuorovaikutusta muiden osien kanssa voidaan testata korvaamalla oikea riippuvuuden kohde tynkä- tai sijaistoteutuksella (mock, stub, spy) joiden palauttamia arvoja voidaan kontrolloida ja joihin lähetettyjä kutsuja voidaan tarkastella. Yksikkö testien tulisi testata yksiköiden sisäinen logiikka kattavasti ja niiden tulisi olla helposti muutettavissa, jos logiikkaa joudutaan korjaamaan.


Integraatiotestaus on ohjelmiston osien yhteistoiminnan testaamista. Integraatiotestit voivat rajoittua esimerkiksi yhdellä palvelimella suoritettavan ohjelmiston testaamiseen siten että riippuvuudet palvelimen ulkopuolisiin järjestelmiin korvataan paikallisesti ajettavilla sijaistoteutuksilla tai tuotannossa eri palvelimilla ajettavien järjestelmän osien yhteistoiminnan testaamista siten että osia ajetaan omissa säiliöissään (container) yhdellä koneella. Integraatiotesteillä voidaan tarkoittaa myös usean fyysisesti eri palvelimilla tai jopa eri konesaleissa toimivien järjestelmien yhteistoiminnan testaamista tuotannon kaltaisessa ympäristössä. Perinteisissä konesaleissa ei välttämättä ole käytännöllistä ajaa testejä oikeassa palvelinympäristössä, mutta moderneissa pilviympäristöissä palveluiden käyttöönotto on usein niin nopeaa, että integraatiotestaamiseen voidaan pystyttää puhdas, tuotantoympäristöä vastaava testiympäristö, jossa testejä voidaan ajaa hallitusti siten että testaajalla on täysi hallinta järjestelmän komponenttien versioihin, parametreihin ja tilaan, esimerkiksi tietokantojen ja dokumenttivarastojen sisältöön. Integraatiotesteillä ei välttämättä ole mielekästä testata testattavien komponenttien sisäisen toiminnallisuuden jokaista yksityiskohtaa.


Usein ohjelmistolle kirjoitetaan erilliset yksikkö- ja integraatiotestikokoelmat. Käytännön toteutuksissa yksikkö- ja integraatiotestisettien rajat eivät useinkaan ole yhtä selkeät kuin edellä. Varsinkin yksikkötestien joukossa on usein testejä joilla testataan myös hieman isompia kokonaisuuksia ja esimerkiksi usean eri funktion yhteistoimintaa yhdellä testillä. Integraatiotestit taas saattavat laajimmillaan alkaa muistuttaa end-to-end testejä, joilla nimensä mukaisesti tarkoitetaan koko järjestelmä kokonaisuuden testausta loppukäyttäjältä koko järjestelmän läpi (päästä-päähän).


Markus Nousiainen

Markus Nousiainen

Senior Consultant

Viimeisimmät kirjoitukset

Webscale Tech Days 2025
12. kesäkuuta 2025
Tech Days 2025 kokosi webscalerit yhteen kuvan kauniiseen Fiskarsiin. Tapahtuma tarjosi ajankohtaista asiaa tekoälystä tietoturvaan ja EU-pilvistä tietokantaohjattuun infraan – unohtamatta rentoa yhdessäoloa.
Webscale viisi vinkkiä pilvikulujen hallintaan
23. huhtikuuta 2025
Julkinen pilvi on tuonut mukanaan ennennäkemätöntä skaalautuvuutta, joustavuutta ja nopeutta, mutta pilven käyttöönoton seurauksena myös kulut saattavat karata pilviin. Julkisen pilven hyödyntäminen vaatii myös erilaista suhtautumista kuluihin, kun pääomaa ei tarvitse varata omaan laitteistoon.
Pulvipulssi_webscale
17. huhtikuuta 2025
Pilvipulssi tuo ajankohtaiset uutiset julkipilvimarkkinoilta suoraan asiantuntijoiltamme. Tutustu SST-kehykseen, joka helpottaa full stack -sovellusten rakentamista omalle infrastruktuurille. Se tarjoaa selkeän ja abstraktoidun tavan määritellä koko sovelluksen rakenne.
Max Niskanen, Webscale Head of Sales
8. huhtikuuta 2025
Webscalen myyntitiimi vahvistuu, kun Max Niskanen liittyi joukkoomme Head of Sales -roolissa. Max tuo mukanaan yli kymmenen vuoden kokemuksen IT-alan myynnistä ja liiketoimintajohdosta. Teknologian lisäksi Maxin intohimoihin kuuluvat hapanjuurileivonta, historia ja vaellukset luonnossa.
Lisää kirjoituksia