Oggi esistono moltissime tecniche e modalità per testare la qualità dei software. Lo scopo principale è quello di individuare possibili criticità o bug che possono compromettere il funzionamento del programma stesso.
Tra questi sistemi di verifica abbiamo i cosiddetti penetration test, attacchi informatici simulati che si differenziano secondo la quantità di informazioni e privilegi forniti al pen-tester. Infatti, per garantire un livello di sicurezza elevato, è necessario testare il codice da differenti punti di vista, compreso quello del potenziale cybercriminale.
Tra le differenti tecniche di penetration test c’è il modello black-box, così chiamato poiché tenta di simulare il comportamento di un hacker che non conosce il codice sorgente e non ha accesso alle informazioni di un end-user. Andiamo quindi a scoprire come si svolge il test black-box, quali sono i suoi benefici e in cosa si differenzia dalle altre tipologie di test.
Come funziona il test black-box
Come gli altri tipi di penetration test che riproducono possibili attacchi informatici, anche i test black-box hanno come obiettivo individuare ipotetiche debolezze strutturali del software. Dunque, la loro particolarità risiede nell’essere impiegati per verificare un programma da una prospettiva esterna, cioè quella di un hacker.
Il test black-box è quindi un’analisi del software nella quale le funzionalità vengono controllate da un tester che non ha nessuna conoscenza o informazione sul codice o su come integrarlo ad un livello più tecnico. Questo genere di test si accontenta di verificare le uscite esterne del software, ovvero tutto quello che l’utente avrà a disposizione durante l’impiego del programma.
I test black-box sono anche definiti test comportamentali in quanto controllano il comportamento del software in particolari condizioni, assicurando che le aspettative degli utenti non siano disattese. Insomma, con questi attacchi simulati ci si vuole accertare che il sistema funzioni a dovere.
Non avendo dati o informazioni sulla natura del codice, il pen-tester non può utilizzare una strategia lineare e dunque il professionista deve fare un percorso a ritroso. Dovrà rapportarsi al software mediante l’interfaccia utente e una volta impostato l’input va ad analizzarne l’output per comprendere come è stata integrata una funzionalità specifica. Da qui, il pen-tester capirà se nel programma sono presenti bug o punti vulnerabili.
Vantaggi e svantaggi del test black-box
I test black-box sono molti utili per individuare qualunque problema, ambiguità o errore del software e delle sue specifiche funzionali. Infatti, permettono ai tester di controllare e incrementare la qualità dell’implementazione delle funzioni del programma senza intervenire sui segmenti più grandi del codice.
Un test black-box è comunque indipendente e imparziale in quanto la simulazione viene svolta da un team esterno che distingue il punto di vista dell’utente da quello degli sviluppatori. Tra i vari metodi di software testing il black-box è in grado di garantire una costruzione più rapida di test case perché non necessita di competenze di programmazione e dunque può essere eseguito anche da tester senza una formazione specifica.
Verificare un sistema con questa tecnica è molto veloce e soprattutto meno dispendioso economicamente rispetto ad altre varietà di test ed è quindi una valida alternativa per le imprese di qualsiasi dimensione.
Lo svantaggio principale dei test di questa tipologia è che però possono essere impiegati solamente per verificare pezzi piccoli di software. Al contrario, testare interamente un software di grandi dimensioni con il test black-box è spesso inefficiente e richiederebbe troppo tempo. Inoltre, tale metodo necessita di specifiche complete e ben chiare per essere efficace.
Black-box vs white-box
Il test white-box è una tecnica del tutto contrapposta a quella del black-box perché si basa sul fatto di poter disporre delle specifiche del software e dei metodi con i quali la funzione è stata integrata. Dunque, con il white-box testing il tester conosce il codice e la struttura interna del programma, a differenza del test black-box, dove il tester procede alla cieca e senza informazioni.
La differenza principale risiede soprattutto nel fatto che i test black-box riguardano i risultati esterni alla creazione del software e devono accertarsi che il programma funzioni secondo le attese dell’utente, mentre i test white-box servono a capire quello che avviene dentro il codice e a correggere eventuali bug.
Con il termine white box ci si riferisce però a una serie di svariati test del software, tra i quali test di integrazione e test di unità. In aggiunta, poiché i test white-box necessitano della verifica del codice, la loro esecuzione richiede di solito una buona abilità nella programmazione informatica.
Per tale motivo i test white-box sono una parte fondamentale del software testing perché sono l’unica tipologia di test che coinvolge il funzionamento del codice e sono molto più semplici da automatizzare rispetto alla categoria black-box.