I termini "test unitario" e "test dei componenti" non sono definiti universalmente, e diverse persone hanno nozioni diverse su cosa significano precisamente questi termini. Tuttavia, sono generalmente considerati la stessa cosa . L'ISTQB (un'organizzazione di qualificazione dei test) non sembra differenziare tra questi termini, preferendo i "test dei componenti" nella loro letteratura.
L'ISTQB vede i seguenti principali livelli di test:
- Test di accettazione, eseguiti dal cliente.
- Test di sistema, che verificano i requisiti sul sistema completo
- Test di integrazione, che coprono l'interazione dei componenti.
- Test dei componenti, che testano i componenti separatamente. I test unitari sono test dei componenti.
L'articolo che hai citato traccia una linea a livello di granularità: secondo l'autore, l'oggetto del test dei test unitari sarebbe costituito da singoli metodi, mentre i test dei componenti riguarderebbero interi moduli. Inoltre, l'attenzione passerebbe dalla verifica del contratto del componente alla convalida nel contesto dell'applicazione / dell'intero sistema. Queste differenze trovate da quell'articolo non sono universalmente riconosciute . Quanto è grande la "unità" di un test unitario dipende. Spesso, l'unità è un'intera classe.
Altre fonti vedono la differenza nel ruolo che esegue i test: mentre i test unitari sarebbero eseguiti da sviluppatori, test di componenti e test di integrazione sarebbero eseguiti da tester dedicati. Ancora una volta, questa differenza non è universalmente riconosciuta. In pratica, i test di integrazione richiedono sempre l'assistenza degli sviluppatori, in modo che i driver di test e gli stub di test possano essere creati per sostituire i componenti mancanti.