Integration testing is de praktijk van controleren hoe losse onderdelen van een systeem zich gedragen zodra ze aan elkaar gekoppeld zijn. Waar losse controles bevestigen dat elk stuk op zich werkt, bevestigt integration testing dat ze samenwerken. Het is een fase in het testproces, niet één enkele controle.
Zie het als een estafette. Elke loper kan op zich snel zijn, maar de race wordt gewonnen of verloren bij het overgeven van het stokje. Integration testing richt zich op die overdrachten in je software: de front-end die data doorgeeft aan de back-end, de back-end die naar de database schrijft, de app die een externe dienst aanroept. Het bouwt voort op unit testing, dat elke loper op zichzelf controleert, en het bestaat uit veel losse controles, waarbij elke een integratietest is die een specifieke koppeling beproeft.
Er zijn grofweg twee aanpakken. Bij bottom-up koppel je eerst de laagste stukken en werk je omhoog, terwijl top-down begint bij de buitenste flow en de binnenste delen invult met vervangers. De meeste teams mengen die twee, afhankelijk van waar de riskantste koppelingen zitten.
Goed gedaan past integration testing in een breder quality assurance-plan en draait het vaak, zodat een wijziging die stilletjes een koppeling breekt dezelfde dag wordt gevangen in plaats van weken later in productie. De valkuil is het tot het einde uitstellen, als alle delen tegelijk binnenkomen en één fout in elk van de tientallen naden kan schuilen. Deze controles geleidelijk toevoegen, terwijl elke koppeling wordt gebouwd, houdt dat zoeken goedkoop.
Bij TopDevs behandelen we integration testing als een vast onderdeel van het bouwen, zodat de koppelingen die je systeem bij elkaar houden blijven werken terwijl het groeit en verandert.