Cos'è il grigio Box Test? Tecniche, esempio

⚡ Riepilogo intelligente

Grigio Box Il testing esamina un'applicazione con una conoscenza parziale della sua struttura interna, combinando la prospettiva dell'utente tipica del test black box con una conoscenza architetturale sufficiente a spiegare perché si è verificato un errore, anziché limitarsi a constatare che si è verificato.

  • 🔍 Livello di conoscenza: La struttura interna è parzialmente nota, a differenza della conoscenza completa nel caso dei test white box e dell'ignoranza assoluta nel caso dei test black box.
  • 🧪 Quattro tecniche: Il set di strumenti principale comprende test a matrice, test di regressione, test con array ortogonali e test basati su pattern.
  • 🪜 Dieci passi: Identifica gli input, gli output e i percorsi principali, quindi scomponi il sistema in sotto-funzioni e verifica ciascuna di esse.
  • 🔗 migliore vestibilità: Test di integrazione, test di penetrazione, flussi di lavoro basati su database, servizi web e APItracts.
  • Scambio: La visibilità parziale riduce lo sforzo, ma limita anche la profondità con cui un singolo percorso del codice può essere traced.
  • 📋 Prerequisiti: Una documentazione di progettazione accurata è fondamentale, perché uno schema o una specifica obsoleti invalidano silenziosamente la progettazione del test.

Grigio Box Test che combinano conoscenze interne parziali con la progettazione di test orientata all'utente.

Cos'è il grigio Box Prove?

Grigio Box Collaudo (scritto anche Gray) Box Il test grigio è una tecnica di test del software che testa un prodotto o un'applicazione software con una conoscenza parziale della struttura interna dell'applicazione. Lo scopo del test grigio Box Il test ha lo scopo di ricercare e identificare i difetti causati da una struttura del codice errata o da un uso improprio dell'applicazione.

In questo processo vengono comunemente identificati errori specifici del contesto relativi ai sistemi web. La tecnica aumenta copertura di prova concentrandosi su tutti i livelli di un sistema complesso piuttosto che su uno solo di essi.

Grigio Box Il test è un metodo di test del software che combina Bianco Box Collaudo and Nero Box CollaudoLa differenza tra i tre sta nella quantità di struttura interna che il tester riesce a visualizzare:

  • In bianco Box È noto come testare la struttura interna (il codice).
  • In nero Box Non è possibile testare la struttura interna (il codice).
  • In grigio Box La verifica della struttura interna (codice) è parzialmente nota.

Il diagramma sottostante colloca i tre metodi sulla stessa scala di visibilità.

Grigio Box Test mostrati tra Bianco Box e nero Box test su scala di visibilità del codice interno

In Ingegneria del software, Grigio Box Il test offre la possibilità di testare entrambi i lati di un'applicazione, il livello di presentazione e il codice sottostante. È particolarmente utile in test d'integrazione and test di penetrazione.

Esempio di grigio Box Test: Durante il test di una funzionalità di un sito web, come ad esempio i link o i link orfani, se il tester riscontra un problema con questi link, la modifica può essere apportata direttamente nel codice HTML e verificata in tempo reale.

Perché grigio Box Collaudo

Grigio Box I test vengono eseguiti per i seguenti motivi:

  • Offre i vantaggi combinati dei test black box e white box.
  • Integra il contributo degli sviluppatori e dei tester, migliorando la qualità complessiva del prodotto.
  • Riduce i costi generali del lungo processo di test di tipologie funzionali e non funzionali.
  • Offre allo sviluppatore tempo libero sufficiente per correggere i difetti.
  • I test vengono eseguiti dal punto di vista dell'utente, non del progettista.
  • Un errore può essere spiegato anziché semplicemente segnalato, perché il tester può vedere il livello in cui si è verificato.

Grigio Box Test vs Nero Box vs Bianco Box Collaudo

I tre metodi non sono tanto alternative in competizione tra loro, quanto piuttosto tre livelli di accesso, e ognuno risponde a un diverso tipo di domanda. Metterli a confronto rende la scelta più concreta.

Base Nero Box Collaudo Grigio Box Collaudo Bianco Box Collaudo
Conoscenza della struttura interna Nona Parziale Lunga
Eseguito da Tester e utenti finali Tester e sviluppatori che lavorano con i tester Sviluppatori e ingegneri collaudatori
Principi di base della progettazione dei test Requisiti e specifiche Archiarchitettura, algoritmi, strutture dati e interfacce Codice sorgente e flusso di controllo
Livello tipico Test di sistema e di accettazione Test di integrazione, penetrazione e servizi web. Test di unità e componenti
Copertura misurata come Copertura dei requisiti Copertura di interfacce, dati e percorsi Copertura di dichiarazioni, rami e percorsi
Limitazione principale La causa di un fallimento rimane nascosta La profondità è limitata dall'accesso consentito Costoso e può non rilevare i requisiti mancanti

La maggior parte delle squadre utilizza tutti e tre nel corso Ciclo di vita del test del softwaree il livello della scatola grigia è dove di solito vengono rilevati i difetti che si verificano tra l'interfaccia utente e l'archivio dati.

Grigio Box Strategia di test

Per eseguire Grey Box Per eseguire un test, non è necessario che il tester abbia accesso al codice sorgente. Un test viene progettato sulla base della conoscenza degli algoritmi, delle architetture, degli stati interni o di altre descrizioni di alto livello del comportamento del programma.

Per eseguire Grey Box Test:

  • Applica le tecniche di base del test a scatola nera.
  • Si basa sulla generazione di casi di test guidata dai requisiti, quindi preimposta tutte le condizioni prima che il programma venga testato con il metodo delle asserzioni.

Tecniche utilizzate per Grey Box I test sono:

  • Test della matrice: Questa tecnica prevede la definizione di tutte le variabili presenti nel programma, insieme al rischio che ciascuna comporta, in modo da rendere visibili le variabili inutilizzate e quelle ad alto rischio.
  • Test di regressione: Verifica se una modifica apportata alla versione precedente ha causato una regressione di altri aspetti del programma nella nuova versione. Questa verifica viene effettuata tramite strategie quali il ritest completo, il ritest dei casi d'uso a rischio e il ritest all'interno di un firewall.
  • Test di array ortogonali o OAT: Garantisce la massima copertura del codice con un numero minimo di casi di test.
  • Test del modello: eseguito su dati storici di precedenti difetti di sistema. A differenza del test black box, Grey Box I test analizzano il codice e determinano la causa dell'errore.

Grigio Box la metodologia di solito utilizza metodi automatizzati strumenti di test del software per condurre i test. Vengono creati stub e driver di modulo in modo che il tester non debba generare il codice manualmente.

Passaggi per eseguire Grey Box I test sono:

  • Fase 1: Identificare gli input.
  • Fase 2: Identificare gli output.
  • Fase 3: Individuare i percorsi principali.
  • Fase 4: Identificare le sottofunzioni.
  • Fase 5: Sviluppare gli input per le sottofunzioni.
  • Fase 6: Sviluppare gli output per le sottofunzioni.
  • Passaggio 7: Eseguire il caso di test per le sottofunzioni.
  • Passaggio 8: Verificare la correttezza del risultato per le sottofunzioni.
  • Passaggio 9: Ripetere i passaggi da 4 a 8 per le altre sottofunzioni.
  • Passaggio 10: Ripetere i passaggi 7 e 8 per le altre sottofunzioni.

I casi di prova per Grey Box I test possono riguardare aspetti quali interfaccia grafica, sicurezza, database, browser e sistema operativo, tra gli altri. Ogni caso generato necessita comunque del solito caso di prova attributi, poiché un caso che non può essere riprodotto dalla sua stessa descrizione è di scarsa utilità durante la regressione.

Dove il grigio Box Il test viene utilizzato

Questa tecnica trova applicazione ovunque un difetto possa essere diagnosticato solo esaminando due strati contemporaneamente. Gli scenari in cui viene applicata più frequentemente sono i seguenti:

  • Flussi di lavoro basati su database: Un'azione viene eseguita tramite l'interfaccia utente e le righe risultanti vengono quindi interrogate direttamente per confermare che i valori, i tipi e le relazioni siano stati memorizzati come previsto.
  • Servizi Web e API: viene inviata una richiesta e lo stato della risposta, le intestazioni e il payload vengono controllati rispetto alla configurazione pubblicatatract, che è la forma quotidiana di Test dell'API.
  • Punti di integrazione: I messaggi che attraversano il confine tra due moduli vengono ispezionati mentre entrambi i moduli sono trattati come sistemi in esecuzione anziché come file sorgente.
  • Valutazione della sicurezza: Un penetration tester, a cui viene fornito un normale account utente e una panoramica dell'architettura, riproduce la posizione di un insider, che corrisponde al modello standard di coinvolgimento grey box.
  • Applicazioni web e interfacce grafiche: I link interrotti, le pagine orfane, la gestione delle sessioni e la convalida lato client vengono tutti controllati con visibilità parziale del markup e del flusso della richiesta.

In tutti questi casi, il costo complessivo dei difetti di sistema è ridotto perché i problemi vengono individuati e spiegati prima che passino ulteriormente lungo la catena di produzione. test di sistema o produzione.

Grigio Box Strumenti di test

Nessuno strumento esegue Grey Box Test in sé. Ciò di cui la categoria ha bisogno è una combinazione di un driver di interfaccia, uno strumento di ispezione per il livello sottostante e un modo per automatizzare la creazione di script per entrambi.

  • Client API e di servizi web come Postman and SoapUI, utilizzato per emettere richieste e asserzioni sui codici di stato e sui corpi delle risposte.
  • Client di database e strumenti di query SQL, utilizzato per verificare lo stato persistente dopo un'azione dell'interfaccia.
  • Strumenti per sviluppatori del browser e proxy HTTP come Burp Suite, utilizzato per ispezionare e modificare le richieste durante le sessioni orientate alla sicurezza.
  • Framework di automazione dell'interfaccia utente come Selenium, utilizzato per guidare il livello di presentazione all'interno di un test di automazione on.
  • Strumenti di registrazione e monitoraggio, utilizzato per correlare un errore osservato con quanto l'applicazione ha registrato internamente in quel momento.

La scelta è meno importante del cablaggio: a meno che il driver dell'interfaccia e la fase di ispezione non vengano eseguiti nello stesso flusso di script, il risultato saranno due controlli manuali separati anziché un unico test "a scatola grigia".

Grigio Box Sfide di prova

La visibilità parziale introduce problemi che nessuno dei metodi puri presenta, e i seguenti sono quelli che i team incontrano più frequentemente:

  • Quando un componente in fase di test riscontra un guasto di qualche tipo, l'operazione in corso può essere interrotta, lasciando incompiuta la parte restante della sequenza.
  • Un test può essere eseguito completamente anche se il contenuto del risultato è errato, quindi la fase di verifica deve controllare i valori anziché il completamento.
  • Non è possibile ottenere una copertura completa del percorso del codice, perché il tester non vede mai ogni ramo che verrebbe raggiunto dai test white box.
  • La documentazione di progettazione su cui si basano i test potrebbe essere obsoleta e uno schema o una specifica di interfaccia non aggiornati invalidano silenziosamente la progettazione dei test.
  • I tester necessitano sia di una conoscenza approfondita del settore che di competenze tecniche di alto livello, un profilo più ristretto da ricercare in fase di selezione.
  • Distribuito e fortemente assorbentetracLe architetture complesse rendono difficile attribuire un guasto osservato a uno specifico componente interno.

Queste limitazioni sostengono che sia opportuno trattare Grey Box Il test come uno strato tra diversi piuttosto che come sostituzione degli altri, che è il punto evidenziato nell'insieme più ampio di tecniche di test del software and tipi di test del softwareSi colloca naturalmente accanto test funzionali e approcci basati sulle specifiche come test basati su modelli.

DOMANDE FREQUENTI

Entrambi i termini si riferiscono alla stessa tecnica. Grey è la grafia britannica e gray quella americana, e i due compaiono indifferentemente nella documentazione degli strumenti e nei programmi di certificazione. Nessuno dei due ha un significato tecnico diverso.

Abbastanza per ragionare sugli interni senza leggere ogni riga: diagrammi di architettura, il modello dati, interfaccia contracts e un account di sola lettura sul database di test. L'accesso completo al repository trasforma l'esercizio in un test white box.

Solitamente, il tester è affiancato da un ingegnere con esperienza nello sviluppo, oppure da uno sviluppatore. Le attività di sicurezza vengono svolte da penetration tester a cui viene fornito un account utente standard e un briefing sull'architettura del sistema.

Contro le interfacce e i dati, non contro le istruzioni: ogni endpoint e codice di stato utilizzato, ogni tabella e transizione di stato toccata, ogni percorso di integrazione percorso. Le percentuali di istruzioni e di ramificazione appartengono alla misurazione white box.

Uno stub rappresenta un componente che il modulo in fase di test richiama; un driver rappresenta il componente che lo richiamerebbe. Insieme, consentono di testare una sotto-funzione in isolamento prima che il sistema completo sia disponibile.

Quando è richiesto un giudizio indipendente dal punto di vista dell'utente, poiché una conoscenza parziale può influenzare il tester, portandolo a privilegiare i percorsi previsti, i test di accettazione e di usabilità rimangono una "scatola nera" proprio per questo motivo, e il codice critico per la sicurezza necessita ancora di un'analisi "white box" completa.

L'apprendimento automatico analizza la cronologia dei difetti per la fase di test dei modelli, classifica le interfacce in base al rischio previsto in modo che l'accesso limitato venga utilizzato al meglio e raggruppa i log per collegare un errore osservato al componente interno che lo ha generato.

Sì, per le parti ripetitive: costruttori di richieste, asserzioni di risposta, query di verifica, stub e driver creati a partire da una definizione di interfaccia. Decidere quale stato interno dimostri la correttezza del comportamento rimane una valutazione progettuale dell'ingegnere.

Riassumi questo post con: