Su cosa si concentra il test White Box?
I test white box sfruttano la conoscenza approfondita degli interni di un'applicazione per sviluppare casi di test altamente mirati. Esempi di test che potrebbero essere eseguiti durante il test white box sono:
- Controllo del percorso: I test white box possono essere utilizzati per esplorare i vari percorsi di esecuzione all'interno di un'applicazione, per garantire che tutte le dichiarazioni condizionali siano corrette, necessarie ed efficienti.
- Convalida dell'uscita: Questo enumera i vari input potenziali di una funzione e garantisce che ognuno di essi produca il risultato atteso.
- Test di sicurezza: L'analisi statica del codice e altre tecniche di test white box vengono utilizzate per identificare le potenziali vulnerabilità all'interno di un'applicazione e convalidare che essa segua le migliori pratiche di sviluppo sicuro.
- Test del loop: Verifica i loop all'interno di un'applicazione per garantire che siano corretti, efficienti e che gestiscano correttamente le variabili nel loro ambito.
- Test del flusso di dati: Traccia le variabili lungo i percorsi di esecuzione di un programma per garantire che le variabili siano dichiarate, inizializzate, utilizzate e manipolate correttamente.
Tipi di test White Box
I test white box possono essere eseguiti per diversi scopi. I tre tipi di test white box sono:
- Test unitari: I test unitari sono progettati per garantire che ogni componente o funzione di un'applicazione funzioni correttamente. Questo aiuta a garantire che l'applicazione soddisfi i requisiti di progettazione durante tutto il processo di sviluppo.
- Test di integrazione: Il test di integrazione si concentra sulle interfacce tra i vari componenti di un'applicazione. Eseguito dopo il test unitario, assicura che non solo ogni componente funzioni bene in modo isolato, ma anche che possa lavorare insieme in modo efficace.
- Test di regressione: Le modifiche possono rompere le cose all'interno di un'applicazione. Il test di regressione assicura che il codice continui a superare i casi di test esistenti dopo che sono stati apportati aggiornamenti alla funzionalità o alla sicurezza di un'applicazione.
Tecniche di test white box
Uno dei principali vantaggi del test white box è che permette di garantire che ogni aspetto di un'applicazione sia testato. Per ottenere una copertura completa del codice, i test white box possono utilizzare le seguenti tecniche:
- Copertura della dichiarazione: I test di copertura delle dichiarazioni assicurano che ogni riga di codice all'interno di un'applicazione sia testata da almeno un caso di test. I test di copertura delle dichiarazioni possono aiutare a identificare se alcune porzioni di codice sono inutilizzate o irraggiungibili, il che può essere causato da errori di programmazione, aggiornamenti, ecc. L'identificazione di questo codice morto consente agli sviluppatori di correggere le dichiarazioni condizionali errate o di rimuovere il codice ridondante per migliorare le prestazioni e la sicurezza dell'applicazione.
- Copertura del ramo: Gli enunciati condizionali creano dei rami all'interno del codice di esecuzione di un'applicazione, in quanto input diversi possono seguire percorsi di esecuzione diversi. I test di copertura dei rami assicurano che ogni ramo di un'applicazione sia coperto dai test unitari. Questo assicura che anche i percorsi di codice poco utilizzati siano convalidati correttamente.
- Copertura del percorso: Un percorso di esecuzione descrive la sequenza di istruzioni che possono essere eseguite da quando un'applicazione inizia a dove termina. I test di copertura dei percorsi assicurano che ogni percorso di esecuzione attraverso un'applicazione sia coperto dai casi d'uso. Questo può aiutare a garantire che tutti i percorsi di esecuzione siano funzionali, efficienti e necessari.
Black Box vs White Box vs Gray Box Testing
Scatola nera, scatola bianca e scatola grigia sono tre approcci ai test. Alcune delle principali differenze tra i tre includono:
- Informazioni disponibili: Il test white box fornisce al valutatore una conoscenza completa del sistema di destinazione (codice sorgente, documentazione, ecc.). Il test black box viene eseguito senza alcuna informazione interna, mentre il test gray box è un mix in cui il valutatore dispone di alcune informazioni, come l'accesso ai documenti di progettazione ma non al codice sorgente.
- Test Coverage: I diversi livelli di informazioni disponibili nelle varie valutazioni influiscono sulla loro capacità di garantire la copertura dei test. Con l'accesso completo al codice sorgente, i test white box possono garantire una copertura completa, mentre altre tecniche non possono farlo.
- Tempo di analisi: Dal momento che i test white box funzionano sul codice sorgente, possono essere applicati fin dalle prime fasi del processo. Pipeline CI/CD. I test gray box e black box richiedono un'applicazione in esecuzione, il che li colloca più avanti nel ciclo di vita dello sviluppo del software (SDLC).
- Uso dello strumento: Con l'accesso al codice sorgente, i tester white box possono utilizzare strumenti di analisi statica del codice per identificare le vulnerabilità e altri problemi con il codice di un'applicazione. I tester di scatola grigia e nera utilizzano strumenti di analisi dinamicaCome ad esempio un scanner di vulnerabilitàper interagire con un'applicazione in esecuzione.
- Tester Mindset: I valutatori di white box interagiscono con il codice sorgente di un'applicazione, assumendo un ruolo simile a quello dello sviluppatore. I tester gray box e black box interagiscono con un'applicazione come farebbe un utente. Ciò consente loro di concentrarsi maggiormente sul funzionamento effettivo di un'applicazione rispetto a ciò che è stato progettato per fare.