Il black box testing è un tipo di test del software in cui si esamina la funzionalità di un programma senza conoscere i suoi meccanismi interni. Pensalo come cercare di risolvere un puzzle senza sapere come è stato assemblato.
Come tester con quasi 10 anni di esperienza, sono entusiasta di condividere con te le mie conoscenze sul black box testing. In questo articolo approfondirò cos’è il black box testing, come funziona e perché è fondamentale nel processo di sviluppo software. Allaccia la cintura: iniziamo!
Cos'è il Black Box Testing?

Il black box testing è un approccio di test in cui i test vengono eseguiti senza conoscenza della struttura interna dell'applicazione in prova (AUT). In contrasto con il white box testing, che ruota attorno a una comprensione approfondita del codice sorgente dell’applicazione ed è svolto dal team di sviluppo.
Il black box testing viene solitamente eseguito dal team di quality assurance e si concentra sugli input e output dell’applicazione. I tester utilizzano input validi e non validi e osservano i risultati. A volte viene chiamato behavioral testing perché i test vengono effettuati dal punto di vista dell’utente finale.
Il black box testing può essere applicato a qualsiasi livello di test: unit testing, integration testing, system testing e user acceptance testing. Esistono anche una moltitudine di strumenti per il black box testing che facilitano l’adozione di questo approccio di software testing.
Tipi di Black Box Testing
Test funzionali: si riferisce ad un tipo di testing in cui si verifica COSA fa l’applicazione. I casi di test possono essere scritti sulla base dei requisiti funzionali. Ad esempio, i test funzionali per una schermata di login possono includere:
- Accedere con credenziali valide e verificare il link “Password dimenticata?”.
- Verificare la funzionalità “Ricordami”.
- Test negativi come accedere con credenziali non valide e tentare il login senza dati obbligatori.
Test non funzionali: si riferisce a COME l’applicazione svolge ciò che fa. Potremmo avere anche requisiti software non funzionali. Ad esempio, quanto velocemente dovrebbe caricarsi una pagina, quanti utenti simultanei dovrebbe accettare, oppure quali linee guida di accessibilità deve rispettare. Esistono diversi sottotipi di test non funzionali che possiamo considerare durante il processo di testing (e a seconda delle specifiche dei requisiti):
- Test di usabilità: solitamente si concentra su quanto facilmente l’utente finale può accedere alle funzionalità dell’applicazione.
- Test di accessibilità: in questo caso si verifica che l’applicazione sia accessibile a tutti gli utenti, inclusi quelli con disabilità.
- Test di prestazioni: test sulle prestazioni dell’applicazione. È un tipo di test più adatto all’automazione, con l’utilizzo di strumenti di testing automatici. Ad esempio, per il load testing, possiamo provare a testare l’applicazione con un grande numero di utenti simultanei, cosa difficilmente realizzabile manualmente.
- Test di sicurezza: dove si verifica la sicurezza dell’applicazione e quanto sono protetti i dati sensibili. Include metodologie come il penetration testing.
Test di regressione: questo è un tipo di test in cui si verifica che le funzionalità esistenti non siano state compromesse da nuovo codice aggiunto.
Ritest: un tipo di test in cui si controlla che una funzionalità precedentemente malfunzionante sia stata corretta.
Black Box vs White Box Testing
L’“opposto” del black box è il white box testing, noto anche come clear-box testing. Il white box testing viene solitamente eseguito dagli sviluppatori del team, e si concentra sul test del codice sorgente dell’applicazione in prova.
Vediamo ora le principali differenze tra i due:
- I test black box vengono eseguiti senza alcuna conoscenza delle funzionalità interne dell'app, mentre il test white box implica la conoscenza del codice sorgente.
- Nel testing black box non è necessaria una conoscenza di programmazione; il testing white box invece di solito implica la scrittura di test automatizzati per raggiungere la copertura dei test.
- Il testing black box è responsabilità del team QA, mentre il testing white box è svolto dal team di sviluppo.
- Il testing black box utilizza tecniche come partizionamento di equivalenza, analisi dei valori limite, tabelle decisionali e transizioni di stato (approfondiremo più avanti). Le tecniche di testing white box includono copertura delle istruzioni, copertura dei rami e copertura delle condizioni.
- A differenza del testing white box, che spesso richiede una profonda conoscenza del codice, il testing black box consente ai tester di concentrarsi sul comportamento dell'applicazione. Tuttavia, entrambi gli approcci necessitano dell'uso di affidabili strumenti di gestione di database per risultati ottimali
- Il testing white box è più indicato ai livelli inferiori di test (come test di unità o di integrazione), mentre i test black box sono eseguiti ai livelli superiori (test di sistema ed end-to-end, così come test di accettazione utente).
Un ibrido tra i due è il tipo di testing gray box, in cui i tester hanno accesso ad alcune informazioni sulle funzionalità interne del software, come architettura o struttura del database, ma non all’intero codice sorgente. Questo permette loro di testare il software in modo più approfondito rispetto al testing black box ma senza la completa conoscenza e controllo del sistema che si ha con il testing white box.
Tecniche di Black Box Testing
Per ottenere una buona copertura dei test, esistono diverse tecniche di black box testing che si possono applicare nella creazione dei casi di test:
Analisi dei valori limite: utilizzando questa tecnica, vengono identificati i valori di input estremi e gli scenari di test coprono soltanto questi valori. Statisticamente, questi valori "di confine" hanno una maggiore probabilità di individuare i bug.
Partizionamento di equivalenza: in questa tecnica, i possibili valori di input sono suddivisi in classi di equivalenza. Ogni valore nella stessa classe si prevede abbia lo stesso risultato, quindi un caso di test per classe è sufficiente per una copertura completa. Si dovrebbero coprire sia input validi che non validi.
Testing con tabelle decisionali: un metodo di testing in cui i casi d'uso vengono derivati da regole che utilizzano combinazioni di input e i loro output attesi.
Testing per transizione di stato: una tecnica di test del software che si concentra sul comportamento dell'applicazione mentre passa da uno stato all'altro.
Error guessing: una tecnica basata sull'esperienza dove i tester usano intuizione ed esperienza per anticipare e scoprire errori nel sistema basandosi sulla conoscenza pregressa e comprensione dei possibili punti critici.
Conclusione
Il black box testing è una componente essenziale del testing del software che aiuta a garantire qualità e funzionalità di un software. Testando l'app dal punto di vista dell'utente finale, il black box testing può aiutare a individuare problemi che altrimenti resterebbero nascosti.
Il black box testing è uno strumento pratico per identificare difetti funzionali nel software. Verificando input e output del sistema e che questo si comporti come ci si aspetta, i tester possono capire meglio come funziona il software e individuare aree di miglioramento. In generale, il black box testing dovrebbe essere parte integrante di qualsiasi strategia di testing software completa per assicurare che il software sia facile da usare, affidabile e privo di difetti funzionali.
Se ti piacciono gli articoli sul software testing, valuta di iscriverti alla newsletter di QA Lead!
