Test del software - Metodi

Esistono diversi metodi che possono essere utilizzati per il test del software. Questo capitolo descrive brevemente i metodi disponibili.

Test in scatola nera

La tecnica di test senza avere alcuna conoscenza del funzionamento interno dell'applicazione è chiamata black-box testing. Il tester è ignaro dell'architettura del sistema e non ha accesso al codice sorgente. In genere, durante l'esecuzione di un test black box, un tester interagirà con l'interfaccia utente del sistema fornendo input ed esaminando gli output senza sapere come e dove vengono elaborati gli input.

La tabella seguente elenca i vantaggi e gli svantaggi del test black-box.

Vantaggi Svantaggi
Adatto ed efficiente per grandi segmenti di codice. Copertura limitata, poiché viene effettivamente eseguito solo un numero selezionato di scenari di test.
L'accesso al codice non è richiesto. Test inefficienti, a causa del fatto che il tester ha solo una conoscenza limitata di un'applicazione.
Separa chiaramente il punto di vista dell'utente da quello dello sviluppatore attraverso ruoli visibilmente definiti. Copertura cieca, poiché il tester non può mirare a segmenti di codice specifici o aree soggette a errori.
Un gran numero di tester moderatamente esperti possono testare l'applicazione senza conoscere l'implementazione, il linguaggio di programmazione o i sistemi operativi. I casi di test sono difficili da progettare.

Test White-Box

Il test white box è l'indagine dettagliata della logica interna e della struttura del codice. Viene anche chiamato il test white boxglass testing o open-box testing. Al fine di eseguirewhite-box test su un'applicazione, un tester deve conoscere il funzionamento interno del codice.

Il tester deve dare uno sguardo all'interno del codice sorgente e scoprire quale unità / pezzo di codice si sta comportando in modo inappropriato.

La tabella seguente elenca i vantaggi e gli svantaggi del test white box.

Vantaggi Svantaggi
Poiché il tester conosce il codice sorgente, diventa molto facile scoprire quale tipo di dati può aiutare a testare efficacemente l'applicazione. A causa del fatto che è necessario un tester esperto per eseguire i test white box, i costi aumentano.
Aiuta a ottimizzare il codice. A volte è impossibile guardare in ogni angolo per scoprire errori nascosti che possono creare problemi, poiché molti percorsi non verranno testati.
È possibile rimuovere righe di codice aggiuntive che possono portare a difetti nascosti. È difficile mantenere il test white box, poiché richiede strumenti specializzati come analizzatori di codice e strumenti di debug.
Grazie alla conoscenza del codice da parte del tester, si ottiene la massima copertura durante la scrittura dello scenario di test.

Test della scatola grigia

Il test gray-box è una tecnica per testare l'applicazione con una conoscenza limitata del funzionamento interno di un'applicazione. Nei test del software, la frase più si conosce, meglio è pesata durante il test di un'applicazione.

Padroneggiare il dominio di un sistema offre sempre al tester un vantaggio rispetto a qualcuno con una conoscenza del dominio limitata. A differenza del test black-box, in cui il tester verifica solo l'interfaccia utente dell'applicazione; nei test gray-box, il tester ha accesso ai documenti di progettazione e al database. Avendo queste conoscenze, un tester può preparare dati di test e scenari di test migliori durante la creazione di un piano di test.

Vantaggi Svantaggi
Offre i vantaggi combinati dei test black-box e white-box ove possibile. Poiché l'accesso al codice sorgente non è disponibile, la capacità di esaminare il codice e la copertura del test è limitata.
I tester della scatola grigia non si affidano al codice sorgente; invece si basano sulla definizione dell'interfaccia e sulle specifiche funzionali. I test possono essere ridondanti se il progettista del software ha già eseguito un test case.
Sulla base delle informazioni limitate disponibili, un tester gray-box può progettare scenari di test eccellenti, in particolare sui protocolli di comunicazione e sulla gestione del tipo di dati. Testare ogni possibile flusso di input non è realistico perché richiederebbe una quantità di tempo irragionevole; pertanto, molti percorsi di programma non verranno testati.
Il test viene svolto dal punto di vista dell'utente e non del designer.

Un confronto dei metodi di prova

La tabella seguente elenca i punti che differenziano i test black-box, gray-box e white-box.

Test in scatola nera Test della scatola grigia Test White-Box
Non è necessario conoscere il funzionamento interno di un'applicazione. Il tester ha una conoscenza limitata del funzionamento interno dell'applicazione. Tester ha piena conoscenza del funzionamento interno dell'applicazione.
Noto anche come test a scatola chiusa, test basato sui dati o test funzionale. Conosciuto anche come test traslucido, poiché il tester ha una conoscenza limitata degli interni dell'applicazione. Noto anche come test in chiaro, test strutturale o test basato su codice.
Eseguito da utenti finali e anche da tester e sviluppatori. Eseguito da utenti finali e anche da tester e sviluppatori. Normalmente fatto da tester e sviluppatori.
Il test si basa su aspettative esterne: il comportamento interno dell'applicazione è sconosciuto. Il test viene eseguito sulla base di diagrammi di database di alto livello e diagrammi di flusso di dati. Il funzionamento interno è completamente noto e il tester può progettare i dati di test di conseguenza.
È esaustivo e richiede meno tempo. In parte dispendioso in termini di tempo ed esaustivo. Il tipo di test più esaustivo e che richiede tempo.
Non adatto per il test degli algoritmi. Non adatto per il test degli algoritmi. Adatto per test di algoritmi.
Questo può essere fatto solo con un metodo di prova ed errore. Se conosciuti, è possibile testare domini di dati e confini interni. I domini dei dati e i confini interni possono essere testati meglio.