Testarea de integrare este o fază de dezvoltare și testare software în care mai multe unități sau module dintr-un program sau configurație hardware sunt reunite și testate. Aceste diferite unități au fost de obicei testate individual pentru a se asigura că fiecare unitate funcționează corect singură; această fază de testare integrează aceste unități disparate într-un sistem mai mare. Acest lucru se poate face în dezvoltarea de software pentru a se asigura că diferitele aspecte ale unui program mai mare pot lucra împreună sau în testarea hardware-ului pentru a asigura funcționalitatea corespunzătoare între diferite unități. Testarea integrării este o fază cheie a testării, deoarece pot fi găsite multe erori și pot fi dezvoltate versiuni de lansare timpurie ale software-ului sau hardware-ului general.
Denumită și integrare și testare, sau I&T, testarea integrării este de obicei văzută ca a doua fază majoră a testării. Prima fază se numește testare unitară și se concentrează în primul rând pe testarea unităților individuale sau a părților unui program sau sistem mai mare pentru a se asigura că fiecare unitate funcționează singură. Aceste unități separate sunt reunite în testarea integrării, odată ce fiecare a trecut de testarea unitară, pentru a se asigura apoi că pot lucra împreună în grupuri mai mari. Ulterior, acestea vor fi de obicei reunite în întregul sistem sau programul dezvoltat și testat ca parte a acelui sistem complet, care se numește testare a sistemului.
Există multe modalități de a efectua testarea integrării, deși există câteva metode comune utilizate de obicei. Testarea de jos în sus este destul de comună și implică de obicei testarea diferitelor aspecte ale unui sistem integrat, începând cu nivelurile inferioare ale sistemului. Odată ce aceste aspecte „de jos” ale sistemului trec testarea, testarea trece „în sus” la aspecte mai importante. De asemenea, poate fi efectuată o formă de sus în jos de testare a integrării, în care cele mai înalte niveluri ale unui sistem sunt testate mai întâi și procesul continuă să se deplaseze „în jos” la niveluri inferioare.
Una dintre problemele majore cu aceste două tipuri de testare de integrare este însă că niciunul dintre ele nu poate stabili cu ușurință o lansare timpurie a unui produs cu funcționalitate de bază. Acest tip de lansare al versiunii alfa poate fi vital pentru oportunități mai mari de testare și, prin urmare, trebuie luate de obicei alte abordări pentru a permite o astfel de lansare. O astfel de abordare este o formă de testare „big bang” în care toate părțile sistemului integrat sunt testate simultan. Acest lucru poate fi avantajos dacă există puține probleme sau erori cu software-ul testat, dar poate fi dificil să identificăm probleme specifice dacă sunt prea multe.
Există, de asemenea, un tip de testare de integrare denumită „testare sandwich” care încearcă să atenueze unele dintre aceste probleme. Practic, acest tip de testare începe cu atât testarea de sus în jos, cât și de jos în sus simultan, iar ambele forme de testare se „întâlnesc la mijloc”. Acest lucru permite testarea timpurie a sistemelor logice de bază, un avantaj al testării de sus în jos și identifică mai devreme probleme mai mici, ca și în cazul testării de jos în sus. O astfel de testare poate produce, de asemenea, mai rapid o versiune de lansare timpurie a produsului pentru testare la scară mai largă sau demonstrații media avansate ale produsului.