Nessuno sviluppo software può fare a meno di testare il codice eseguibile. In effetti, ci vuole la metà del tempo dedicato allo sviluppo e oltre la metà del costo del progetto. Tuttavia, è parte integrante del processo di creazione di nuove applicazioni, programmi, sistemi.
Uno dei modi per controllare la qualità del software è il test di integrazione, all'ingresso di cui sono alimentati i singoli moduli testati nella fase precedente. Contrariamente alla versione modulare, durante la quale vengono rilevati errori, localizzati in ogni singola funzione o classe, il test di integrazione è una ricerca di difetti relativi all'implementazione dell'interazione tra le singole parti del prodotto che si sta creando. Il test funzionale di integrazione utilizza il metodo della casella bianca, ad es. ingegnere di qualità testi disponibili e conosciuti di ogni singolo modulo, nonché i principi di interazione tra di essi.
Il metodo monolitico significa che tutti i moduli, che in futuro saranno sottoposti a test di integrazione, saranno messi insieme allo stesso tempo. Quasi certamente ci sono situazioni in cui una parte del complesso testato non è ancora pronta.
In questo caso, viene sostituito da "plugs" o driver aggiuntivi.
Insieme al metodo monolitico, viene identificato anche il metodo incrementale (viene anche chiamato passo dopo passo), poiché il volume del codice in esame cresce gradualmente, consentendo la localizzazione di aree con difetti nelle interrelazioni tra le singole parti.
Il metodo incrementale include due modi per aggiungere moduli:
Lo svantaggio principale del tipo monolitico di assemblaggio è una grande quantità di tempo e costi di manodopera per l'imitazione delle parti mancanti del complesso testato. Sembrerebbe che gli stub siano uno strumento di test abbastanza comodo, tuttavia, le situazioni sorgono quando il processo deve ricreare le parti di simulazione del programma. Ad esempio, nel caso di modifiche nella composizione dei moduli testati. Inoltre, l'efficacia della ricerca dei difetti non è così alta quando il lavoro non viene eseguito con un prodotto reale, ma solo con un componente fittizio. Lo stesso inconveniente accompagna i test incrementali con un metodo di costruzione verso l'alto.
Allo stesso tempo, uno degli svantaggi del metodo passo-passo è la necessità di organizzare e creare un ambiente per l'esecuzione di moduli in una determinata sequenza. E anche lo sviluppo parallelo di livelli superiori e inferiori è quasi impossibile.
Naturalmente, entrambi i metodi di assemblaggio, monolitico e incrementale, non hanno solo svantaggi, ma anche vantaggi. Nel primo caso, ci sono eccellenti opportunità per lo sviluppo parallelo di tutte le classi e le funzioni coinvolte nei test, sia nella fase iniziale che dopo il perfezionamento. Il metodo passo-passo richiede meno lavoro: i moduli sono collegati gradualmente e anche errori e difetti vengono rilevati gradualmente. Questo, come sai, ti consente di ridurre il tempo per trovarlo.
In questa fase viene eseguito il colossale lavoro di verifica delle interconnessioni a tutti i livelli, senza il quale, ovviamente, è impossibile eseguire ulteriori test.
Il test del software di integrazione presenta diversi vantaggi:
I test di integrazione sono completi, ma non è tutto. Gli errori rilevati vengono corretti e inviati allo sviluppatore per la correzione, dopo di che il processo ricomincia.
Innanzitutto, è necessario verificare se i difetti identificati sono stati eliminati. In secondo luogo, durante il cambio del codice sorgente, potrebbero sorgere nuovi errori nel lavoro del programma e l'interazione con il software di terze parti.
Sebbene attualmente ci sia un gran numero di metodi di controllo della qualità, i test di integrazione svolgono ancora un ruolo importante. Un esempio di questo tipo di verifica può chiaramente dimostrare i "colli di bottiglia" nello sviluppo di software e documentazione.
A seconda delle dimensioni del set di dati iniziale e del dominio di sviluppo, potrebbe esserci un problema con il tempo di test e la complessità dell'evento nel suo complesso.
Per la verifica più efficace dello sviluppo, è necessario utilizzare una quantità enorme di dati e condizioni di input, con i quali è impossibile gestirli "manualmente". Per risolvere questo problema, viene utilizzata l'automazione del test. Come altri tipi, anche i test di integrazione possono essere automatizzati. Ciò ridurrà il tempo di sviluppo nel suo complesso, oltre a migliorare l'efficienza del processo di rilevamento degli errori.
Tuttavia, l'automazione del test non può sostituire completamente il lavoro del tecnico di qualità, ma solo completarlo.
Pertanto, i test di integrazione sono parte integrante dello sviluppo di qualsiasi software e una delle fasi dell'intero processo di verifica della qualità del prodotto. Come ogni metodo, ha una serie di vantaggi e svantaggi, ma senza la sua applicazione, diventa impossibile sviluppare software di alta qualità.