Integraatiotestaus on ohjelmistokehityksen ja testauksen vaihe, jossa useita ohjelman tai laitteiston kokoonpanon yksiköitä tai moduuleja kootaan yhteen ja testataan. Nämä eri yksiköt on tyypillisesti testattu yksitellen sen varmistamiseksi, että jokainen yksikkö toimii kunnolla yksin; Tämä testausvaihe yhdistää nämä erilliset yksiköt suurempaan järjestelmään. Tämä voidaan tehdä ohjelmistokehityksessä, jotta voidaan varmistaa, että suuremman ohjelman eri osa -alueet voivat toimia yhdessä, tai laitteistotestauksessa, jotta eri yksiköiden väliset toiminnot voidaan taata. Integraatiotestaus on testauksen keskeinen vaihe, koska löytyy monia vikoja ja voidaan kehittää ohjelmiston tai laitteiston varhaisen julkaisun versiot.
Integraatiotestausta, jota kutsutaan myös integraatioksi ja testaukseksi, kutsutaan tyypillisesti testauksen toiseksi suureksi vaiheeksi. Ensimmäistä vaihetta kutsutaan yksikkötestaukseksi, ja se keskittyy ensisijaisesti yksittäisten yksiköiden tai suuremman ohjelman tai järjestelmän osien testaamiseen varmistaakseen, että jokainen yksikkö toimii itsenäisesti. Nämä erilliset yksiköt yhdistetään integraatiotestaukseen, kun he ovat läpäisseet yksikkötestauksen, jotta varmistetaan, että ne voivat työskennellä yhdessä suuremmissa ryhmissä. Jälkeenpäin ne tyypillisesti kootaan koko järjestelmään tai ohjelmaan, jota kehitetään ja testataan osana tätä koko järjestelmää, jota kutsutaan järjestelmätestaukseksi.
Integraatiotestaus voidaan suorittaa monella eri tavalla, mutta tyypillisesti käytetään joitakin yleisiä menetelmiä. Alhaalta ylös -testaus on melko yleistä, ja siihen kuuluu yleensä integroidun järjestelmän eri puolien testaaminen järjestelmän alemmista tasoista alkaen. Kun nämä järjestelmän “ala” -kohdat ovat läpäisseet testin, testaus siirtyy “ylös” tärkeämpiin näkökohtiin. Voidaan suorittaa myös integraatiotestaus ylhäältä alaspäin, jossa järjestelmän korkeimmat tasot testataan ensin ja prosessi siirtyy edelleen “alas” alemmille tasoille.
Yksi näiden kahden tyyppisten integrointitestien suurimmista ongelmista on kuitenkin se, että kumpikaan ei voi helposti luoda perustoiminnallisen tuotteen varhaista julkaisua. Tämäntyyppinen alfa -version julkaisu voi olla elintärkeää suurempien testausmahdollisuuksien kannalta, ja siksi on tyypillisesti käytettävä muita lähestymistapoja tällaisen julkaisun mahdollistamiseksi. Yksi tällainen lähestymistapa on “alkuräjähdyksen” testausmuoto, jossa kaikki integroidun järjestelmän osat testataan samanaikaisesti. Tästä voi olla hyötyä, jos testattavassa ohjelmistossa on vähän ongelmia tai vikoja, mutta tiettyjen ongelmien tunnistaminen voi olla vaikeaa, jos niitä on liikaa.
On myös eräänlainen integraatiotestaus, jota kutsutaan ”sandwich -testaukseksi” ja jolla pyritään lievittämään joitain näistä ongelmista. Pohjimmiltaan tämäntyyppinen testaus alkaa sekä ylhäältä alas että alhaalta ylös -testauksella samanaikaisesti, ja molemmat testausmuodot kohtaavat tehokkaasti “keskellä”. Tämä mahdollistaa perusloogisten järjestelmien varhaisen testaamisen, ylhäältä alas-testauksen edut ja havaitsee pienemmät ongelmat aikaisemmin, kuten alhaalta ylöspäin. Tällainen testaus voi myös tuottaa nopeammin tuotteen varhaisen julkaisun version laajempaa testausta tai tuotteen esittelyä varten.