Integrationstestning är en fas av mjukvaruutveckling och testning där flera enheter eller moduler inom ett program eller hårdvarukonfiguration sammanförs och testas. Dessa olika enheter har vanligtvis testats individuellt för att säkerställa att varje enhet fungerar korrekt ensam; denna testfas integrerar dessa olika enheter i ett större system. Detta kan göras i mjukvaruutveckling för att säkerställa att olika aspekter av ett större program kan fungera tillsammans eller i hårdvarutestning för att säkerställa korrekt funktionalitet mellan olika enheter. Integrationstestning är en nyckelfas i testningen eftersom många buggar kan hittas och tidiga versioner av den övergripande mjukvaran eller hårdvaran kan utvecklas.
Även kallad integration och testning, eller I&T, ses integrationstestning vanligtvis som den andra stora fasen av testning. Den första fasen kallas enhetstestning och är främst inriktad på att testa enskilda enheter eller delar av ett större program eller system för att säkerställa att varje enhet fungerar för sig. Dessa separata enheter sammanförs i integrationstestning, när de har klarat varje enhetstestning, för att sedan säkerställa att de kan arbeta tillsammans i större grupperingar. Efteråt kommer de vanligtvis att sättas ihop i hela systemet eller programmet som utvecklas och testas som en del av det fullständiga systemet, vilket kallas systemtestning.
Det finns många sätt att utföra integrationstestning, även om det finns några vanliga metoder som vanligtvis används. Bottom-up-testning är ganska vanligt och involverar vanligtvis att testa olika aspekter av ett integrerat system med början på de lägre nivåerna av systemet. När dessa ”botten” aspekter av systemet klarar testning, flyttar testningen ”upp” till viktigare aspekter. En top-down form av integrationstestning kan också utföras, där de högsta nivåerna i ett system testas först och processen fortsätter att röra sig ”nedåt” till lägre nivåer.
Ett av de stora problemen med dessa två typer av integrationstestning är dock att ingen av dem enkelt kan etablera en tidig release av en produkt med grundläggande funktionalitet. Denna typ av alfaversionsversion kan vara avgörande för större testmöjligheter, och därför måste andra tillvägagångssätt vanligtvis användas för att möjliggöra en sådan release. Ett sådant tillvägagångssätt är en ”big bang” form av testning där alla delar av det integrerade systemet testas samtidigt. Detta kan vara fördelaktigt om det finns få problem eller buggar med programvaran som testas, men det kan vara svårt att peka ut specifika problem om för många finns.
Det finns också en typ av integrationstestning som kallas ”sandwichtestning” som försöker lindra några av dessa problem. I grund och botten börjar denna typ av testning med både top-down och bottom-up testning samtidigt, och båda testformerna ”mötes i mitten”. Detta möjliggör tidig testning av grundläggande logiksystem, en fördel med top-down-testning och identifierar mindre problem tidigare, som med bottom-up-testning. Sådan testning kan också snabbare producera en tidig version av produkten för mer omfattande testning eller förhandsmediademonstrationer av produkten.