Introduzione al White Box Testing

I test sono una delle parti importanti dello sviluppo del software, assicurano che tutti i bug vengano risolti e che il programma funzioni come previsto. Il test di un prodotto software può avere più passaggi e più procedure. In questo articolo, daremo uno sguardo ad uno degli approcci importanti al processo di test, il White Box Testing.

Cos'è il White Box Testing?

I test in white box sono anche chiamati test in codice, test in chiaro, test in open box e test strutturali. L'idea principale di questo approccio al test del software è dare un'occhiata al design della struttura interna e al codice del programma per testarlo.

Nel test della casella bianca, il tester può vedere l'intero codice del programma e gli viene chiesto di verificare il flusso di funzionamento degli ingressi e delle uscite nel programma. A differenza dei test sulla scatola nera, che è più focalizzato sul test delle funzionalità del programma, White Box Testing si occupa di testare le strutture interne del programma. Dare un'occhiata al programma in questo modo ci permette di lavorare per migliorare il design, l'usabilità e rendere il prodotto più sicuro.

Come puoi immaginare, ha chiamato il test white box o glass box perché il tester può vedere il codice e altre parti del programma.

Ciò che rende i test della scatola bianca diversi dai test della scatola nera

Se in passato hai fatto la punta dei piedi durante i test, sono sicuro che ti sei imbattuto in Black Box Testing. La differenza più grande tra i test della scatola bianca e dei test della scatola nera è che, diversamente dal test della scatola nera, che viene eseguito dal punto di vista dell'utente, i test della scatola bianca vengono eseguiti dal punto di vista dello sviluppatore.

In altre parole, piuttosto che dare un'occhiata al programma dall'esterno, l'approccio White Box Testing vede il codice interno e lo testa.

Come vengono eseguiti i test su scatola bianca?

Possiamo dividere il processo di White Box Testing in due fasi principali.

1. Comprensione del codice fornito

Inizialmente, un tester in White Box Testing dovrà apprendere il codice dell'applicazione. Considerando il fatto che White Box Testing riguarda la comprensione e il test di tutto il codice interno del programma, chiunque abbia il compito di testare il codice non dovrebbe solo avere una buona conoscenza della programmazione, ma dovrà anche avere una buona conoscenza del linguaggio del codice sorgente.

La sicurezza è uno degli aspetti importanti del White Box Testing, quindi il tester dovrà anche essere bravo nelle pratiche di codifica sicura.

2. Creazione di casi di test ed esecuzione

Una volta che il codice è stato studiato dal team di test, possono iniziare a testare il codice per verificarne il flusso e la struttura corretti. Per fare ciò, i tester scriveranno del codice per alcuni casi di test che proveranno a attraversare tutte le righe di codice presenti nel programma.

Può anche essere eseguito nel test manuale che prevede prove ed errori. I tester possono anche utilizzare alcuni strumenti di test automatizzati come JUnit e NUnit.

Un esempio di test su scatola bianca

Per comprendere meglio il concetto di White Box Testing, dai un'occhiata al codice qui sotto:

print (int x, int y) (
int sum = x + y;
If ( sum > 0 )
Print ( "Positive", result )
Else
Print ( "Negative", result )
)

Come discusso in precedenza, l'obiettivo del White Box Testing è quello di attraversare tutti i rami, i loop e le dichiarazioni presenti nel codice. Considerando ciò, possiamo creare 2 casi di test, uno in cui entrambi gli ingressi sono positivi e un altro in cui entrambi gli ingressi sono numeri interi negativi.

Esempio:

  • A = 10 e B = 20
  • A = -10 e B = -20

Tecniche di test della scatola bianca

Una delle tecniche di test più popolari per i test in white box è chiamata analisi della copertura del codice, questa tecnica tenta di eliminare eventuali lacune nella suite dei casi di test e identifica le sezioni di un'app che non vengono utilizzate dai casi di test. Una volta individuati questi vuoti, possiamo creare casi per vedere e verificare parti del codice non testate, alla fine si ottiene un prodotto più raffinato.

Di seguito sono riportate alcune tecniche di analisi della copertura:

  • Copertura delle istruzioni: in questo metodo, cerchiamo di attraversare tutte le istruzioni nel codice almeno una volta. Questo assicura che tutto il codice sia testato.
  • Copertura succursale: questo metodo prevede di attraversare ogni ramo dei punti decisionali nel codice. Questo assicura che tutte le decisioni vengano testate almeno una volta.

Esistono anche altre tecniche di test, eccone alcune:

  • Copertura delle condizioni: in questa tecnica di test, ci assicuriamo che tutte le condizioni siano coperte nel codice, ad esempio:

READ A, B
IF (A == 0 || B == 0)
PRINT '0'

Come puoi vedere, qui abbiamo 2 condizioni: A == 0 e B == 0. Ora, queste condizioni ricevono VERO e FALSO come valori. Un possibile esempio può essere:

# TC1 - A = 0, B = 110
# TC2 - A = 10, B = 0

  • Copertura a più condizioni: è un po 'più avanzata dell'ultima. Come puoi immaginare, testiamo tutte le possibili combinazioni e tutti i possibili risultati almeno una volta. Ecco un esempio decente:

READ A, B
IF (A == 0 || B == 0)
PRINT '0'

# TC1: A = 0, B = 0
# TC2: A = 0, B = 10
# TC3: A = 110, B = 0
# TC4: A = 110, B = 5

Quindi. Abbiamo bisogno di 4 casi di test per 2 condizioni.

Quindi se ci sono n condizioni allora avremo bisogno di 2 n casi di test.

  • Test del percorso di base: in questa tecnica di test del riquadro bianco, realizziamo un diagramma di flusso di controllo e quindi calcoliamo la sua complessità ciclomatica che è il numero di percorsi indipendenti. Usando la complessità ciclomatica, possiamo trovare il numero minimo di casi di test che possiamo progettare per ogni percorso indipendente del diagramma di flusso.
  • Test ad anello : i loop sono uno degli strumenti più utilizzati nelle armi di un programmatore. Poiché questi sono al centro di così tanti algoritmi, ha senso solo avere una tecnica di test basata su loop. Ci possono essere 3 tipi di loop: semplici, nidificati e concatenati. Diamo un'occhiata a come un tester gestirà la tecnologia di questi tipi:

1. Loop semplici: per un loop dal design semplice con dimensioni n, possiamo progettare alcuni casi di test che eseguano le seguenti operazioni:

  • Salta detto loop.
  • Attraversa il ciclo solo una volta.
  • Hai 2 passaggi
  • Hanno un numero qualsiasi di passaggi inferiore alle sue dimensioni.
  • n-1 e n + 1 passano attraverso il loop.

2. Loop nidificati: per il codice con loop nidificati, iniziamo con il loop più interno e poi andiamo verso l'esterno fino a raggiungere il loop più esterno.

3. Loop concatenati: nel caso di questi loop. Usiamo un semplice loop test dopo l'altro e nel caso in cui il loop concatenato non sia indipendente, possiamo gestirli come abbiamo fatto con i loop nidificati.

vantaggi

Ora che abbiamo visto cos'è questo metodo di prova e come funziona. Diamo un'occhiata ad alcuni dei pro di questo.

  • Il White Box Testing ha regole semplici e chiare per far sapere a un tester quando il test è terminato.
  • Le tecniche di test della scatola bianca sono facili da automatizzare, ciò comporta uno sviluppatore che deve assumere un numero inferiore di tester e spese minori.
  • Mostra colli di bottiglia che rendono l'ottimizzazione abbastanza semplice per i programmatori.
  • Un team di test può iniziare il proprio lavoro senza dover attendere che il team di sviluppo completi lo sviluppo dell'interfaccia utente.
  • Poiché nella maggior parte dei casi tutti i percorsi del codice sono trattati nel codice, la verifica del codice è più approfondita.
  • Aiuta a rimuovere parti del codice che non sono essenziali per la funzionalità del programma.

svantaggi

  • È piuttosto faticoso per le risorse. Per completare i test, avrai bisogno di qualcuno che conosca molto bene il tuo codice per far parte del team di test e che sia lui stesso un buon programmatore. Questo tipo di livello di abilità aumenta le spese del test.
  • In molti casi, essere in grado di testare ogni possibile condizione nel codice non è possibile a causa di vincoli di tempo o limiti di budget.
  • Poiché il test della casella bianca si basa sul controllo della funzionalità del codice esistente, non è possibile trovare la funzionalità mancante nel programma.
  • Se una parte del codice viene riprogettata e riscritta, i tester devono scrivere nuovamente i casi di test.

Strumenti di test della scatola bianca

Ora che hai familiarità con i vantaggi, gli svantaggi e le tecniche dei test su scatola bianca, possiamo dare un'occhiata ad alcuni strumenti popolari che i tester possono utilizzare per eseguire i test su scatola bianca.

  • JSUnit.net

Questo è uno strumento di test JavaScript. JSUnit fa parte di Junit ed è un framework di test di unità open source che può essere utilizzato per eseguire i test della scatola bianca. JSUnit è completamente open source sotto GNU Public License 2.0, il che significa che anche per uso commerciale, uno sviluppatore non deve pagare alcuna tassa di licenza.

  • CppUnit

Proprio come JSUnit, anche CppUnit è considerata parte di JUnit. Lo strumento può generare output in formato testo o XML, a seconda delle esigenze del tester e può creare unit test con le proprie classi. CppUnit è concesso in licenza sotto LGPL.

  • VeraCode

Sebbene non sia gratuito per l'uso, Veracode ha alcuni potenti strumenti che possono essere utilizzati per testare .NET, C ++, Java e alcuni altri linguaggi. Il test della White Box può essere eseguito anche per applicazioni desktop, Web e mobili.

  • NUnit

È un framework di unit test ed è stato scritto in C #. Lo strumento supporta tutte le lingue .Net disponibili e supporta anche i test basati sui dati. Per quanto riguarda la funzionalità, può funzionare sia in esecuzione parallela che simultanea e può fornire un framework di classe e testare le app runner. Una caratteristica notevole di NUnit è che è abbastanza facile da usare.

  • JUnit

Come puoi intuire dal suo nome, JUnit è uno strumento di automazione di unit testing per Java. Il furgone JUnit è facilmente integrabile con IDE come eclipse, Macen ACT, ecc. È in grado di supportare lo sviluppo guidato dai test e può sincronizzare i test esistenti con quelli appena creati una volta. JUnit è un programma completamente open source e gratuito da utilizzare per qualsiasi tipo di sviluppo Java.

  • csUnit

Proprio come Nunit, CSUnit è progettato per supportare i test unitari in .Net Framework. Supporta linguaggi come C # e VB.Net. CSUnit ha il supporto integrato per le pratiche di factoring e altri tipi di pratiche utilizzate nell'approccio di sviluppo agile di SDLC.

Conclusione

Il test ha un posto molto importante nel processo di sviluppo del software e il White Box Testing è un approccio prezioso per farlo. Sebbene questo approccio ai test possa essere costoso e dispendioso in termini di tempo, il White Box Testing rimane l'unico modo per assicurarsi che tutte le parti del codice siano state coperte nel processo di test.

La parte più importante del White Box Testing è la familiarità del tester con il codice. Qualcuno incaricato di testare l'approccio WBT che non ha una buona conoscenza del codice sorgente e del linguaggio di programmazione utilizzati, causerà molti problemi. Inoltre, dipende solo dal White Box Testing non è una buona idea in quanto non copre le funzionalità mancanti. Per un approccio più coperto allo sviluppo, è necessario eseguire sia i test sulla scatola bianca che i test sulla scatola nera in quanto copriranno quindi il numero massimo di bug, difetti e funzionalità rimanenti che devono essere aggiunti prima che il prodotto possa essere spedito.

Articoli consigliati

Questa è stata una guida al White Box Testing. Qui abbiamo discusso di come vengono eseguiti i test della scatola bianca con l'aiuto di esempi e diverse tecniche di prova della scatola bianca con strumenti. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più–

  1. Domande di intervista di test del software
  2. Carriere nel test del software
  3. Domande di intervista sui test di gioco
  4. Domande di intervista per i test ETL
  5. Copertura del codice vs copertura del test | Le 4 principali differenze da imparare
  6. Strumenti di copertura del codice | I 6 migliori strumenti di copertura del codice

Categoria: