340 Shares 1527 views

metodi di test del software e confrontarli. Metodo di prova di test "scatola nera" e il metodo di "white box"

Software Testing (SW) identificare le lacune, le carenze e gli errori nel codice che devono essere affrontate. Può anche essere definita come il processo di valutazione della funzionalità e correttezza del software con l'aiuto dell'analisi. Metodi di base di integrazione e test di applicazioni software e garantire la qualità è quello di testare la specifica, la progettazione e la codifica, la valutazione dell'affidabilità, validazione e verifica.

metodi

Lo scopo principale del test del software – la conferma della qualità del sistema software attraverso applicazioni di debug sistematici in condizioni attentamente controllate per determinare la loro completezza e precisione, nonché l'individuazione di errori nascosti.

I metodi di verifica (test) programmi possono essere suddivisi in statica e dinamica.

I primi includono informali, il monitoraggio e la revisione tecnica, ispezione, passo dopo passo l'analisi, il controllo, così come l'analisi del flusso di dati statici e la gestione.

tecniche dinamiche sono:

  1. scatola di test white. Questo è uno studio dettagliato della logica interna e la struttura del programma. E 'necessario la conoscenza del codice sorgente.
  2. test scatola nera. Questa tecnica non richiede alcuna conoscenza circa il funzionamento interno dell'applicazione. Consideriamo solo gli aspetti fondamentali del sistema, non sono collegati o associati con alcuni sua struttura logica interna.
  3. Metodo casella grigia. Esso combina due approcci precedenti. Test con conoscenza limitata del funzionamento interno dell'applicazione è combinata con la conoscenza degli aspetti fondamentali del sistema.

test trasparente

Gli script di test metodo di dialogo utilizzando bianchi controllano la struttura del disegno procedurale. Questa tecnica permette di rivelare errori di implementazione, quali la scarsa sistema di codice di gestione analizzando una parte del funzionamento interno del software. Questi metodi sono applicabili ai livelli di integrazione, moduli e dei sistemi. Il tester deve avere accesso al codice sorgente e utilizzarlo per scoprire quale unità si comporta in modo inappropriato.

Il test dei programmi da white-box ha i seguenti vantaggi:

  • Permette di rilevare un errore nel codice nascosto, eliminando le linee non necessarie;
  • l'uso di effetti collaterali;
  • massima copertura si ottiene scrivendo uno script di test.

svantaggi:

  • processo ad alto costo, che richiedono debugger abile;
  • molte strade rimangono inesplorate perché verifica approfondita di tutti i possibili errori nascosti è molto complesso;
  • parte del codice sarà passato inosservato.

test white box è talvolta indicato testando una scatola trasparente o aperta,, prove logico strutturale, basato sul codice sorgente, e l'architettura logica.

Le varietà principali:

1) testare il controllo del flusso – strategia strutturale utilizzando il modello di flusso di controllo del programma e come favorire modi più semplici a meno più complesse;

2) Il ramo è progettato per studiare debugging ciascuna opzione (vera o falsa) di ciascun operatore di controllo, che comprende anche una soluzione combinata;

3) test del percorso principale, che permette il tester di stabilire progetto procedurale misura complessità logica per isolare un insieme di base di percorsi di esecuzione;

4) il controllo del flusso di dati – la strategia di controllo del flusso di ricerche da parte delle annotazioni contare informazioni sulla pubblicità e utilizzare le variabili del programma;

5) cicli di test – interamente focalizzato sul corretto funzionamento dei processi ciclici.

debug comportamentale

test scatola nera considera il software come una "scatola nera" – informazioni sul funzionamento interno del programma non sono contati, e controllati solo gli aspetti di base del sistema. In questo caso, il tester deve conoscere l'architettura del sistema senza accesso al codice sorgente.

I vantaggi di questo approccio:

  • efficienza per segmento di codice di grandi dimensioni;
  • la facilità di tester percezione;
  • prospettiva dell'utente è chiaramente separata dalle prospettive sviluppatore (programmatore e tester sono indipendenti l'uno dall'altro);
  • più rapida creazione di test.

Software di test metodo scatola nera ha i seguenti svantaggi:

  • infatti eseguito un numero selezionato di casi di test, con conseguente copertura limitata;
  • la mancanza di una specifica chiara difficile sviluppare script di test;
  • bassa efficienza.

Altri nomi per questa tecnologia – comportamentale, non trasparente, test funzionali e il metodo di debug di una scatola chiusa.

In tale categoria rientrano le seguenti tecniche di test del software:

1) equivalente a partizione, che può ridurre il set di dati di test come dati modulo software di ingresso viene suddiviso in parti separate;

2) analisi del valore limite si concentra sulla verifica dei confini o valori limite estremi – minimo, massimo e valori tipici di errore;

3) fuzzing – utilizzato per implementare la ricerca inserendo errori o danneggiati poluiskazhennyh i dati in modo automatico o semi-automatico;

4) conta di causalità – una tecnica basata sulla creazione di grafici e di determinare la relazione tra l'azione e le sue ragioni: l'identità, la negazione, OR logico e logico – i quattro personaggi principali, che esprime il rapporto tra causa ed effetto;

5) Verifica di matrici ortogonali applicato a problemi con un'area relativamente piccola di trattamento superiore la possibilità di ricerca esaustiva;

6) testare tutte le coppie – una tecnica in cui un insieme di valori di prova comprende tutte le possibili combinazioni binarie di ciascuna coppia di parametri di input;

7) transizione di stato debug – una tecnica utile per verificare lo stato della macchina, nonché di navigare attraverso la GUI utente.

Nero box testing: Esempi

tecnica di black-box si basa sulle specifiche, la documentazione e le descrizioni dell'interfaccia software o del sistema. Inoltre, è possibile utilizzare i modelli (formali o informali), che rappresenta il comportamento previsto del software.

In genere, questo metodo viene utilizzato per il debug di interfaccia utente e richiede l'interazione con l'applicazione con l'introduzione di una raccolta di dati e risultati – dallo schermo, dalle relazioni o stampe.

Il tester, quindi, interagisce con il software inserendo, agendo sugli interruttori, pulsanti o altre interfacce. La scelta dei dati di ingresso, l'ordine di somministrazione o sequenza di azioni può portare ad un numero totale enorme di combinazioni, come mostrato nel seguente esempio.

Quanti test bisogno di fare per controllare tutti i valori possibili per la bandiera 4 finestre e campo di una tantum, impostare il tempo in secondi? A prima vista calcolo è semplice: 4 campi con due possibili stati – 24 = 16, che devono essere moltiplicati per il numero di possibili posizioni da 00 a 99, cioè 1600 eventuali test.

Tuttavia, questo calcolo è sbagliato: siamo in grado di stabilire che il campo due punti può anche contenere uno spazio, cioè composto da due lettere alfanumerici e può includere caratteri alfanumerici, caratteri speciali, spazi, ecc Così, se …. sistema è un computer a 16 bit, girare 216 = 65536 uno per ciascuna posizione nei risultanti 4294967296 casi di test che devono essere moltiplicati per 16 combinazioni di flag che dà un totale di 68.719.476 736. Se essi svolgono a 1 test per secondo, il cont totale test olzhitelnost è di 2 177,5 anni. Per i sistemi a 32 o 64 bit, la durata anche di più.

Pertanto v'è la necessità di ridurre questo periodo ad un livello accettabile. Pertanto, le tecniche dovrebbero essere applicati per ridurre il numero di casi di test senza ridurre la portata del test.

equivalenza partizionamento

La partizione equivalente è un metodo semplice che è applicabile per tutte le variabili che sono presenti nel software, se i valori di ingresso o di uscita, simbolica, numerica, e altri. Si basa sul principio che tutti i dati da un equivalente della partizione saranno trattati allo stesso modo e con la stesse istruzioni.

Durante il test, selezionato un rappresentante di ciascun particolare partizione equivalenza. Questo consente di ridurre sistematicamente il numero di possibili casi di test senza perdita di copertura dei comandi e funzioni.

Un'altra conseguenza di questo partizionamento è di ridurre l'esplosione combinatoria tra le diverse variabili e la relativa riduzione dei casi di test.

Ad esempio, in (1 / x) 1/2 con tre sequenze di dati, tre partizione equivalente:

1. I numeri tutti positivi saranno trattati allo stesso modo e dovrebbe dare risultati corretti.

2. Tutti i numeri negativi vengono gestiti nello stesso modo con lo stesso risultato. Ciò non è corretto, perché la radice di un numero negativo è immaginario.

3. Zero verranno trattati separatamente e invia la "divisione per zero" errore. Questa è una sezione con un singolo valore.

Così, vediamo tre sezioni distinte, una delle quali è ridotto ad un singolo valore. C'è una sezione "corretto", che dà risultati affidabili, e due "sbagliato" con risultati non corretti.

analisi del valore limite

Elaborazione su confini del partizionamento equivalente può essere fatto in modo diverso di quanto previsto. Ricerca di valori limite – un metodo ben noto di analizzare il comportamento del software in tali zone. Questa tecnica permette di individuare tali errori:

  • uso improprio degli operatori relazionali (, =, ≠, ≥, ≤);
  • errore singolo;
  • problemi cicli e iterazioni,
  • tipo sbagliato o dimensione delle variabili utilizzate per la memorizzazione di informazioni;
  • limitazioni artificiali associate ai tipi di dati e variabili.

test traslucido

Metodo scatola grigia aumenta la copertura di test, è possibile concentrarsi su tutti i livelli di difficoltà del sistema attraverso una combinazione di tecniche in bianco e nero.

Usando questa tecnica, il tester per lo sviluppo di valori di prova deve essere a conoscenza di strutture interne di dati e algoritmi. Esempi di metodi di prova grigio-box sono i seguenti:

  • modello architettonico;
  • Unified Modeling Language (UML);
  • modello di stato (macchina a stati finiti).

Nel metodo della scatola grigia di sviluppare casi di test studiati moduli nei codici di ingegneria bianchi, e il test effettivo viene eseguito sulle interfacce dei programmi tecnologici nere.

Questi metodi di prova hanno i seguenti vantaggi:

  • combinazione di vantaggi scatole bianche e nere tecnico;
  • Tester è basato sull'interfaccia e specifica funzionale, e non il codice sorgente;
  • debugger può fare grandi casi di test;
  • controllo viene effettuato dal punto di vista dell'utente, non il progettista del programma;
  • creare sviluppo di test personalizzati;
  • obiettività.

svantaggi:

  • copertura di test è limitata perché non c'è l'accesso al codice sorgente;
  • la complessità dei difetti nelle applicazioni distribuite;
  • molti modi rimangono inesplorate;
  • se lo sviluppatore del software ha lanciato il test, quindi ulteriori indagini potrebbe risultare eccessiva.

Un altro nome per le tecniche scatola grigia – debug traslucido.

Questa categoria include tali metodi di prova:

1) matrice ortogonale – l'uso di un sottoinsieme di tutte le combinazioni possibili;

2) debugging matrice utilizzando lo stato dei dati del programma;

3) Controllo regressiva condotta presso le nuove modifiche al software;

4) Test modello che analizza il design e l'architettura di una buona applicazione.

Confronto di tecniche di test del software

L'uso di metodi dinamici porta ad un'esplosione combinatoria del numero di test che devono essere elaborato, attuato e realizzato. Ogni tecnica deve essere utilizzata in modo pragmatico, prendendo i suoi limiti in considerazione.

L'unico metodo vero non esiste, c'è solo quelli che sono più adatti allo specifico contesto. Ingegneria strutturale ci permettono di trovare un codice inutile o dannoso, ma sono complessi e non sono applicabili ai programmi di grandi dimensioni. Metodi basati sulle specifiche – gli unici in grado di identificare il codice mancante, ma non in grado di identificare un estraneo. Alcune tecniche sono più adatti per un particolare livello di test, tipo di errore o un contesto di altri.

Questi sono i principali differenze tra i tre tecniche di prova dinamica – viene proposta una tabella di confronto tra le tre forme di debugging del software.

aspetto

Il metodo di scatola nera

Metodo casella grigia

Metodo di white-box

Disponibilità delle informazioni sulla composizione del programma

Esamina solo gli aspetti fondamentali della

conoscenza parziale sulla struttura interna del programma

Pieno accesso al codice sorgente

Grado di frammentazione del programma

basso

centrale

alto

Chi produce il debug?

Utenti finali, tester e sviluppatori

Utenti finali, sviluppatori e debugger

Sviluppatori e tester

base

Il test è basato sulle situazioni di emergenza esterni.

database di diagrammi, diagrammi di flusso di dati, stato di conoscenza interna dell'algoritmo e dell'architettura

Il dispositivo interno è consapevole

Il grado di copertura

Meno completo e richiede un minimo di tempo

centrale

Potenzialmente il più completo. In termini di tempo

Dati e frontiere interne

Debug solo per tentativi ed errori

Può essere controllato i domini di dati e le frontiere interne, se sono noti

Le migliori domini di dati di test e frontiere interne

algoritmo di test Idoneità

no

no

automazione

metodi automatici di test del software è molto semplificano il processo di ispezione, indipendentemente dall'ambiente tecnico e contesto. Essi sono utilizzati in due casi:

1) per automatizzare i compiti noiosi, ripetitivi o meticolosa, come confronto di file a diverse migliaia di file al fine di liberare il tempo per la concentrazione del tester punti più importanti;

2) per l'esecuzione di inseguimento o compiti che non possono essere facilmente eseguite da persone come ad esempio la verifica delle prestazioni o il tempo di risposta di analisi che può essere misurato in centesimi di secondo.

Gli strumenti di prova possono essere classificati in modi diversi. La divisione successiva si basa sui compiti che supportano:

  • gestione dei test, che include il supporto progetto di gestione, le versioni, configurazioni, analisi del rischio, il monitoraggio di test, errori, difetti, e strumenti di reporting;
  • gestione dei requisiti, che include i requisiti di memorizzazione e specifiche, nonché controllare se completezza e ambiguità, la priorità e la tracciabilità di ogni prova;
  • revisione critica e l'analisi statica, incluso il monitoraggio del flusso, e le attività, la registrazione e la conservazione dei commenti, rilevamento dei difetti e previsti collegamenti di gestione correzioni alle liste di controllo e le regole, monitoraggio documenti mittente e l'analisi statica del codice per rilevare difetti, che garantiscono il rispetto degli standard di scrittura di codice, analisi delle strutture e dipendenze, calcolo dei parametri metrici del codice e dell'architettura. Inoltre, utilizzare i compilatori, analizzatori, generatori e relazioni di riferimenti incrociati;
  • modellazione, che include strumenti per il comportamento di business modeling e testare i modelli;
  • sviluppo di test garantisce la generazione di dati attesi sulla base delle condizioni e dei modelli di interfaccia utente e il codice, riescono a creare o modificare file e database, messaggistica, la convalida dei dati sulla base delle regole di gestione, l'analisi statistica delle condizioni e dei rischi;
  • una visione critica inserendo i dati attraverso un'interfaccia utente, API, linea di comando grafica utilizzando comparatori per identificare test riusciti e non;
  • ambiente di debug supporto che permette di sostituire l'hardware mancante o software, in Vol. h. apparecchiature Simulazione basata sul sottoinsieme determinata uscita, emulatori di terminale, telefoni cellulari e apparecchiature di rete, l'ambiente per controllare linguaggi, sistemi operativi e hardware sostituendo il driver componenti mancanti, fittizia moduli, ecc, così come strumenti per catturare e modificare il sistema operativo chiede la limitazione simulazione CPU, RAM, ROM, o rete .;
  • .. Un confronto di file di dati, database, controllare i risultati attesi durante e dopo il test è completo, incl dinamica e di confronto in batch, automatica "Oracoli";
  • rivestimento di misura per la localizzazione di perdite di memoria e sistema di stima del suo comportamento di controllo errato sotto simulati applicazioni caricano generatrice carico, database, reti o server in uno scenario realistico di crescita per la misurazione, l'analisi e la verifica del rapporto risorse di sistema;
  • sicurezza;
  • test delle prestazioni, carico e analisi dinamica;
  • altri strumenti, in Vol. h. per controllare l'ortografia e la sintassi, la sicurezza della rete, la disponibilità di tutte le pagine del sito web e altri.

prospettiva

Con l'evoluzione di tendenze nel settore del software, il processo di debugging è anche soggetto a modifiche. Ci sono nuovi metodi di test del software, come ad esempio un'architettura service-orientirovannae (SOA), le tecnologie wireless, servizi di telefonia mobile, e così via. E., hanno aperto nuovi modi di test del software. Alcune delle modifiche che si prevede nel settore nei prossimi anni sono elencati di seguito:

  • tester forniranno un modello leggero che gli sviluppatori saranno in grado di controllare il codice;
  • sviluppo di metodi di prova, tra cui la visualizzazione e la modellazione dei programmi in una fase iniziale, eliminerà molte delle contraddizioni;
  • presenza di prova multipli intercettazioni ridurrà il periodo di rilevamento di errore;
  • analizzatore statico e mezzi di rilevamento per essere più largamente usato;
  • l'uso di matrici minerali, come la copertura delle specifiche, la portata della copertura del modello e il codice determinerà lo sviluppo di progetti;
  • strumenti combinatorie permettono tester per determinare i settori prioritari per il debug;
  • tester fornirà un servizio più intuitiva e di valore in tutto il processo di sviluppo del software;
  • debugger possono creare strumenti e metodi di test del software scritti in e interagire con una varietà di linguaggi di programmazione;
  • esperti di debug saranno più professionalmente preparati.

Sarà sostituito da un nuovo metodi di test del software business-oriented, di cambiare il modo di interazione con i sistemi e le informazioni che forniscono, riducendo i rischi e aumentando i benefici dei cambiamenti di business.