Un test di integrazione verifica che i componenti di un sistema complesso (ad es. software, aeromobili, centrale elettrica) funzionino insieme come progettato.
Immaginiamo di parlare di un aereo (con il software è più astratto e difficile da fare la differenza). I test di integrazione comprendono, verificando:
- corretta interazione tra alcuni componenti. Esempio: premendo il pulsante di avvio, il motore si avvia e l'elica raggiunge la velocità di rotazione prevista (l'aereo rimane ancora a terra)
- corretta interazione con componenti esterni. Esempio: verificare che la radio incorporata possa comunicare con una radio stazionaria (aereo ancora a terra)
- corretta interazione tra tutti i componenti coinvolti, in modo che il sistema nel suo complesso funzioni come previsto. Esempio: un equipaggio di piloti e ingegneri collaudatori avvia l'aereo e vola con esso (tutti indossano paracadute ...).
Il test di integrazione risolve un problema tecnico , ovvero che il sistema funziona nonostante la suddivisione in componenti. Nel software i componenti possono essere casi d'uso, moduli, funzioni, interfacce, librerie, ecc ...
Il test di accettazione verifica che il prodotto sia adatto allo scopo. In linea di massima vengono eseguiti dal cliente. Prendendo l'analogia dell'aereo, includono la verifica che:
- gli scenari di business previsti portano al risultato atteso in una situazione quasi reale. Esempio: provare un imbarco con i passeggeri del test per verificare che il personale possa monitorare l'imbarco come previsto con le procedure operative. Alcuni scenari potrebbero essere così semplici da sembrare un test unitario, ma vengono eseguiti dall'utente (ad esempio, provare le prese elettriche con le apparecchiature dell'azienda).
- il sistema funziona in una situazione aziendale quasi reale. Esempio: effettuare un volo di prova vuoto tra due destinazioni reali, con piloti di nuova formazione della compagnia aerea per verificare che il consumo di carburante sia come promesso.
Il test di accettazione risolve più un problema di responsabilità . In una relazione cliente / fornitore può essere una responsabilità contrattuale (conformità a tutti i requisiti). Ma in ogni caso è anche responsabilità dell'organizzazione che li utilizza assicurare che i loro compiti possano essere portati avanti con il sistema e prevenire prudentemente qualsiasi problema imprevisto (es. Come questa società ferroviaria che scoprì durante i test di accettazione che dovevano accorciare alcuni quais perché i nuovi carri erano 5 cm troppo grandi - nessuna battuta!).
Conclusioni: test di integrazione e accettazione si sovrappongono. Entrambi intendono dimostrare che il sistema nel suo complesso funziona. Tuttavia, il "tutto" potrebbe essere più ampio per il cliente (perché il sistema potrebbe essere esso stesso parte di un sistema organizzativo più ampio) e più tecnico per l'integratore di sistema: