Recentemente ho avuto il mio esame finale per un corso di ingegneria del software per il mio programma di master e una delle domande sull'esame è stata la seguente:
Unit Testing is considered:
a. White-box Testing
b. Black-box Testing
c. Either
Nei miei 7 anni di esperienza nello sviluppo del software, i test unitari hanno sempre adottato un approccio alla scatola bianca. Il tester ha sempre avuto piena conoscenza dell'implementazione dell'unità durante la scrittura dei test. I test della scatola nera sono sempre arrivati più tardi nelle forme di integrazione, sistema e test di accettazione.
Tuttavia, la risposta corretta all'esame (secondo il professore) è che il test dell'unità può essere sia in bianco che in nero.
Ho fatto qualche ricerca, e sembra che molti casi "test della scatola nera" siano usati per descrivere un approccio test-first in cui i test unitari vengono scritti prima che il codice sia. Tuttavia, a mio avviso, questo è ancora un test della scatola bianca. Sebbene l'implementazione non esista ancora, chiunque stia scrivendo il test generalmente ha una buona idea su come verrà implementato il codice sorgente.
Qualcuno può spiegarmi come funziona il collaudo della scatola nera (se è veramente una cosa) e in che modo differisce dal test dell'unità della scatola bianca?