Programmazione: cos’è una Black Box?
Quando si parla di Black Box, si inquadra un modello grazie al quale è possibile verificare che determinati software e applicazioni svolgano i compiti e le operazioni per cui sono stati realizzati. Il passaggio in questione rappresenta il test finale prima della distribuzione e della commercializzazione.
Modello Black Box: tra teoria dei sistemi e programmazione
Il modello Black Box trascende dal mondo della programmazione e tocca anche la teoria dei sistemi. Esattamente come la scatola nera di cui porta il nome, consente di verificare, avendo in mano specifiche condizioni, se si concretizzano o meno dei risultati teorizzati in precedenza.
Tutto questo avviene senza che chi verifica l’esattezza dei suddetti risultati abbia la possibilità di visionare i processi interni alla scatola nera. La cosa ha però un senso, dal momento che, quando si ha a che fare con sistemi complessi, è necessario guardare al macroscopico piuttosto che al particolare.
In poche parole, non bisogna soffermarsi sui dettagli relativi al funzionamento degli ingranaggi, ma concentrarsi sull’analisi dei risultati ottenuti, che devono corrispondere a quanto previsto all’inizio del processo di progettazione.
Abbiamo già ricordato che questo modello trova applicazione anche nel mondo della programmazione. Entrando maggiormente nello specifico, ricordiamo che le cosiddette scatole nere analizzano gli algoritmi che formano un determinato software, mettendo in primo piano risultati fortemente dipendenti dalle condizioni definite dal programmatore.
Il professionista in questione dovrà poi verificare che i risultati corrispondano a quanto da lui impostato durante la fase preliminare. Molto importante è ricordare che i software messi a disposizione per le procedure di testing sono a codice sorgente chiuso e che chi effettua la verifica non può modificare nulla.
In tal modo, è possibile sia tutelare il codice da eventuali plagi, sia evitare manomissioni che, potenzialmente, possono falsare i risultati delle procedure di testing.
Vantaggi del modello nella programmazione
Grazie al modello della scatola nera, è innanzitutto possibile separare il tester dal creatore del codice. Il tester, nello specifico, agisce dal punto di vista dell’utente finale. Fondamentale è ricordare che le procedure di testing possono seguire diverse tecniche.
In alcuni frangenti, vengono divisi in sottoinsiemi di dati gli input da testare, così da permettere ai tester di concentrarsi su ciascuna sezione. Il percorso preciso prevede i seguenti passaggi:
- l dividere il software in classi di equivalenza (intervalli di valori input) analizzando ciascuna sezione;
- l appurare la presenza di eventuali errori tra i suddetti valori input;
- l effettuare un’analisi a coppie di dati, così da tenere sotto controllo i parametri per i bug.
La tecnica appena descritta è nota come partition testing e rappresenta la soluzione più classica e diffusa quando si discute di Black Box Testing. In fase di partition testing, è molto importante definire un modello della rappresentazione dei dati di input. Il suddetto, è noto come Input Domain Model e consente di applicare criteri specifici alla generazione dei valori. L’IDM può essere definito basandosi sull’interfaccia che si sta testando ma anche sulle funzionalità.
Un altro approccio di testing prevede la possibilità di pianificare test mirati all’analisi di una determinata caratteristica del software. Da citare, infine, sono i test di regressione.
Le differenze rispetto al modello White Box
Quando ci si muove nell’ambito della programmazione, bisogna ricordare che non esiste solo il modello Black Box, ma anche quello White Box. In questo caso, si inquadra una procedura di testing con caratteristiche diametralmente opposte rispetto a quelle descritte prima.
Con il modello White Box, infatti, il tester considera il funzionamento interno del codice di un software o di un’applicazione, prendendo in esame aspetti che comprendono anche le criticità di memoria e la gestione delle eccezioni.
