Wat is integratie testen?
Integratietesten is een fase van softwareontwikkeling en testen waarin meerdere eenheden of modules binnen een programma of hardwareconfiguratie worden samengebracht en getest. Deze verschillende units zijn allemaal typisch individueel getest om te verzekeren dat elke unit correct alleen werkt; deze testfase integreert deze verschillende eenheden in een groter systeem. Dit kan worden gedaan bij de ontwikkeling van software om ervoor te zorgen dat verschillende aspecten van een groter programma kunnen samenwerken of bij het testen van hardware om de juiste functionaliteit tussen verschillende eenheden te garanderen. Integratietesten is een sleutelfase omdat veel bugs kunnen worden gevonden en vroege versies van de software of hardware kunnen worden ontwikkeld.
Ook wel integratie en testen genoemd, of I&T, wordt integratie testen meestal gezien als de tweede belangrijke testfase. De eerste fase wordt unit-testing genoemd en is primair gericht op het testen van individuele units of delen van een groter programma of systeem om ervoor te zorgen dat elke unit op zichzelf functioneert. Deze afzonderlijke eenheden worden samengebracht in integratietesten, zodra ze elk eenheidstesten hebben doorstaan, om er vervolgens voor te zorgen dat ze in grotere groepen kunnen samenwerken. Daarna worden ze meestal samengevoegd in het volledige systeem of programma dat wordt ontwikkeld en getest als onderdeel van dat volledige systeem, dat systeemtest wordt genoemd.
Er zijn veel manieren om integratietests uit te voeren, hoewel er meestal enkele veelgebruikte methoden worden gebruikt. Bottom-up testen is vrij gebruikelijk en omvat meestal het testen van verschillende aspecten van een geïntegreerd systeem beginnend met de lagere niveaus van het systeem. Zodra deze 'onderste' aspecten van het systeem zijn geslaagd voor testen, gaat het testen 'omhoog' naar belangrijkere aspecten. Een top-down vorm van integratietests kan ook worden uitgevoerd, waarbij de hoogste niveaus van een systeem eerst worden getest en het proces verder naar beneden gaat naar lagere niveaus.
Een van de grootste problemen met deze twee soorten integratietests is echter dat geen van beide gemakkelijk een vroege release van een product met basisfunctionaliteit kan bewerkstelligen. Dit type versie van de alfaversie kan van vitaal belang zijn voor grotere testmogelijkheden en daarom moeten meestal andere benaderingen worden gebruikt om een dergelijke release mogelijk te maken. Een van die benaderingen is een 'big bang'-vorm van testen waarbij alle onderdelen van het geïntegreerde systeem tegelijkertijd worden getest. Dit kan voordelig zijn als er weinig problemen of bugs zijn met de software die wordt getest, maar het kan moeilijk zijn om specifieke problemen te lokaliseren als er te veel aanwezig zijn.
Er is ook een type integratietest dat 'sandwich-testen' wordt genoemd en dat een aantal van deze problemen probeert op te lossen. Kortom, dit type testen begint met zowel top-down als bottom-up testen tegelijkertijd, en beide vormen van testen komen 'effectief in het midden samen'. Dit maakt vroege testen van elementaire logische systemen mogelijk, een voordeel van top-down testen, en identificeert kleinere problemen eerder, zoals bij bottom-up testen. Zulk testen kan ook sneller een vroege versie van het product produceren voor meer grootschalige testen of geavanceerde mediademonstraties van het product.