Tecniche e metodologie di test per il software

Tecniche e metodologie di test per il software

Cos’è il test software?

Nell’ambito dell’ingegneria del software, il test per un prodotto software rappresenta quell’insieme di misure di controllo utili a verificare la qualità di un software. Come si intuisce bene lo scopo principale delle tecniche e delle metologie utiulizzate per il test del software è quello di rilevare quanti più errori possibili in modo da fornire daopo questa fase un software funzionamente all’utente finale.

Tecniche e metodologie di test per il software - Test software

Teoria del test software – Definizioni

Dato un programma P, D ed R siano i domini di ingresso e uscita, P definisce una relazione tra D ed R. Un caso di test è un elemento di D. Un insieme di test T è invece un insieme finito di casi test, quindi un sottoinsieme finito di D.

P è corretto per T se risulta corretto per tutti gli elementi di T. Si dice che T ha avuto successo per P.

Un insieme di test si dice ideale se, tutte le volte che P è scorretto, esiste un d e T tale che P risulta scorretto per d.

Un test ideale mostra sempre l’esistenza di un errore in un programma, se tale errore esiste. Per un programma corretto qualunque insieme di test risulta ideale. Se T è un insieme ideale e T ha successo per P allora P è corretto.

Criterio di selezione del test software

Dato un programma P e le relative specifiche S, un criterio di selezione del test specifica le condizioni che devono essere soddisfatte da un insieme T di casi di test. Esempio: il criterio specifica che tutti gli statements nel programma devono essere eseguiti almeno una volta durante il test allora un insieme di casi di test T soddisfa il criterio per un programma P se l’esecuzione di P su T assicura che ogni statement in P sia eseguito almeno una volta.

Pertanto, le proprietà principali del criterio di selezione del test software sono le seguenti:

  1. Affidabilità
  2. Validità

Un criterio di test è affidabile se tutti gli insiemi (di casi di test) che soddisfano il criterio individuano gli stessi errori.

Un criterio di test è valido se per ogni errore nel programma c’è un qualche insieme che soddisfa il criterio che rileva l’errore.

Tesi di Dijkstraper il test software

Indecidibilità della correttezza dei programmi

Tesi di Dijkstra: il test di un programma può rilevare la presenza di malfunzionamenti, ma non dimostra la loro assenza. Il test non può dare garanzia completa di correttezza dovendo essere limitato il numero dei casi di test per ragioni legate al costo.

Teorema di Goodenough e Gerhart

Un criterio di test è affidabile se tutti gli insiemi (di casi di test) che soddisfano il criterio individuano gli stessi errori.

Corollario al Teorema di Goodenough e Gerhart

Teorema di Howden: dato un programma P, non esiste un algoritmo che generi un test ideale finito, cioè selezionato da un criterio affidabile e valido.

Assiomi di Weyunker

Assioma di applicabilità

Per ogni programma (con relative specifiche) esiste un insieme di test T che soddisfa il criterio. Per tutti i programmi è possibile avere un insieme di casi di test che soddisfa il criterio

Assioma di antiestensionalità

Esistono due programmi P e Q, che soddisfino entrambi le stesse specifiche, tali che un set di test T soddisfa il criterio per P ma non per Q. Inoltre, la struttura del programma ha un ruolo importante nel decidere i casi di test.

Assioma di antidecomposizione

Esiste un programma P ed un suo componente Q tale che un set di test T soddisfa il criterio per P e T’ è l’insieme dei valori che le variabili possono assumere fornendo Q per qualche caso di test In T e T’ non soddisfa il criterio per Q. Se il criterio è soddisfatto per l’intero programma non è detto che sia soddisfatto per ogni suo componente.

Assioma di anticomposizione

L’assioma di anticomposizione è il duale dell’assioma di anticomposizione. Infatti, esistono due programmi P e Q tali che T soddisfi il criterio per P e gli output di P per T (rappresentati da P(T)) soddisfano il criterio per Q, ma T non soddisfa il criterio per P;Q. Se il criterio soddisfa separatamente le parti P e Q.

Osservazioni importanti sul test software

Molti dei criteri sono essi stessi indecidibili ovvero:

  • Non è decidibile se dato un dato insieme di test soddisfi i criteri o se esista un insieme di test che li soddisfi.
  • Ciò significa che non è possibile automatizzare la soluzione del problema.
Precedente Prodotto software e ciclo di vita del software Successivo Buonsenso contro l'abuso delle nuove tecnologie nella società moderna

Lascia un commento

*