Che cos'è il test di integrazione?
Il test di integrazione è una fase di sviluppo e test del software in cui vengono riunite e testate più unità o moduli all'interno di un programma o una configurazione hardware. Queste varie unità sono state generalmente testate singolarmente per garantire che ciascuna unità funzioni correttamente da sola; questa fase di test integra queste unità disparate in un sistema più ampio. Questo può essere fatto nello sviluppo di software per garantire che diversi aspetti di un programma più ampio siano in grado di lavorare insieme o in test hardware per garantire la corretta funzionalità tra unità diverse. Il test di integrazione è una fase chiave del test poiché è possibile trovare molti bug e sviluppare versioni di versioni anticipate dell'intero software o hardware.
Indicato anche come integrazione e test, o I&T, i test di integrazione sono generalmente considerati la seconda fase principale dei test. La prima fase si chiama unit testing e si concentra principalmente sul test di singole unità o parti di un programma o sistema più ampio per garantire che ciascuna unità funzioni da sola. Queste unità separate vengono riunite nei test di integrazione, una volta superate le prove di unità, per garantire che possano lavorare insieme in gruppi più grandi. Successivamente, verranno generalmente riuniti nel sistema completo o nel programma sviluppato e testato come parte di quel sistema completo, che viene chiamato test del sistema.
Esistono molti modi per eseguire i test di integrazione, sebbene vi siano alcuni metodi comuni generalmente utilizzati. Il test bottom-up è abbastanza comune e di solito comporta il test di diversi aspetti di un sistema integrato a partire dai livelli più bassi del sistema. Una volta che questi aspetti "inferiori" del sistema superano i test, i test passano "in alto" verso aspetti più importanti. È anche possibile eseguire una forma top-down di test di integrazione, in cui i livelli più alti di un sistema vengono testati per primi e il processo continua a spostarsi "da basso" a livelli inferiori.
Uno dei maggiori problemi con questi due tipi di test di integrazione, tuttavia, è che nessuno dei due può facilmente stabilire una versione anticipata di un prodotto con funzionalità di base. Questo tipo di versione in versione alfa può essere vitale per maggiori opportunità di test, pertanto è necessario adottare altri approcci per consentire tale versione. Uno di questi approcci è una forma di "big bang" di test in cui tutte le parti del sistema integrato vengono testate contemporaneamente. Questo può essere vantaggioso se ci sono pochi problemi o bug con il software in fase di test, ma può essere difficile individuare problemi specifici se ne sono presenti troppi.
Esiste anche un tipo di test di integrazione denominato "sandwich test" che cerca di alleviare alcuni di questi problemi. Fondamentalmente, questo tipo di test inizia simultaneamente con i test top-down e bottom-up ed entrambe le forme di test "si incontrano efficacemente nel mezzo". Ciò consente test precoci di sistemi logici di base, un vantaggio di test top-down, e identifica i problemi minori in precedenza, come nel caso dei test bottom-up. Tali test possono anche produrre più rapidamente una versione anticipata del prodotto per test più ampi o dimostrazioni avanzate del prodotto sul supporto.