Stub e driver sono due tipi di test harness. I test harness sono la collezione di software e dati di test che sono configurati in modo da poter testare un'unità di programma simulando diversi set di condizioni, monitorando il comportamento e gli output.
Stub e driver sono entrambi moduli fittizi e sono creati solo per scopi di test.
Gli stub sono usati nell'approccio di test top down, quando si ha il modulo principale pronto per il test, ma i moduli secondari non sono ancora pronti. Quindi, in un linguaggio semplice, gli stub sono programmi "chiamati", che vengono chiamati per testare la funzionalità del modulo principale.
Per es. supponiamo di avere tre diversi moduli: Login, Home, Utente. Supponiamo che il modulo Login sia pronto per il test, ma i due moduli minori Home e User, che sono chiamati dal modulo Login non sono ancora pronti per il test.
A questo punto, scriviamo un pezzo di codice fittizio, che simula i metodi chiamati di Home e User. Questi pezzi di codice fittizio sono gli stub.
D'altra parte, i driver sono quelli che sono i programmi "chiamanti". I driver sono usati nell'approccio di test bottom-up. I driver sono codice fittizio, che viene usato quando i moduli secondari sono pronti ma il modulo principale non è ancora pronto.
Prendendo lo stesso esempio di cui sopra, supponiamo che questa volta i moduli User e Home siano pronti, ma il modulo Login non è pronto per il test. Poiché Home e User restituiscono valori dal modulo Login, scriviamo un pezzo di codice fittizio che simula il modulo Login. Questo codice fittizio è quindi chiamato Driver.
Qui c'è un link che spiega questo usando diagrammi a blocchi: Differenza tra stub e driver