• Non ci sono risultati.

Progettazione delle prove

N/A
N/A
Protected

Academic year: 2022

Condividi "Progettazione delle prove"

Copied!
5
0
0

Testo completo

(1)

        

IS

IS

568799:

;$<=><@?A5BCDECBD=AFG?DHE6<IJKGFE=D

L$MN(O8P

=A<H FEQR

MN$M

;(A

CB

<BAQ

;MS <BJFBCD=<QTM6DEO ABA

(      E  U

IS

Contenuti

W

Caratteristiche delle prove del software

W

Criteri funzionali

W

Criteri strutturali

W

Analisi dei risultati, l’oracolo

W

Approfondimento: valutazione delle prove

        X

! "$#&%('')(*+"-,%/.&%100%32& "$4%

IS

Prova e collaudo

W

Verifica e validazione dinamica

Y

Attività che prevedono l’esecuzione del software

Y

In un ambiente controllato e con ingressi ed uscite definiti

Y

Come verifica (prova sui moduli)

Y

Come validazione (collaudo sul sistema)

W

Metodo intuitivo ma complesso

Y

Progettazione, esecuzione, analisi, correzione dei difetti

Y

Validazione dei risultati, terminazione delle prove

(      E  Z

! "&#$%$'')$*!+"-,%/.$%V00%32& "$4(%

IS

Caratteristiche

W

Una prova non è sempre definitiva

Y

È definita e ripetibile

Y

I risultati applicano solo alla specifica prova

[

Non generalizzabili

Y

Evidenzia un malfunzionamento (presenza di difetti)

[

Non può provarne l’assenza!

W

Le prove sono costose

Y

Richiedono molte risorse (tempo, persone, infrastrutture)

Y

Necessitano di un processo definito

Y

Richiedono attività di ricerca del difetto, analisi e correzione

        \

! "$#&%('')(*+"-,%/.&%100%32& "$4%

IS

Gli elementi di una prova

W

Caso di prova (test case)

Y

Una tripla <ingresso, uscita, ambiente>

[

L’ambiente include l’oggetto della prova

W

Batteria di prove (test suite)

Y

Un insieme (sequenza) di casi di prova

W

Procedura di prova

Y

Il procedimento (automatico e non) per eseguire, registrare analizzare e valutare i risultati di una batteria di prove

(      E  ]

! "&#$%$'')$*!+"-,%/.$%V00%32& "$4(%

IS

Conduzione di una prova

W

Definizione dell’obiettivo della prova

W

Progettazione della prova

W

Realizzazione dell’ambiente di prova

W

Esecuzione della prova

W

Analisi dei risultati

W

Valutazione della prova

(2)

        ^

! "$#&%('')(*+"-,%/.&%100%32& "$4%

IS

Progettazione

W

Criteri funzionali

Y

A scatola chiusa (black box)

Y

Basati sulla “conoscenza” dei requisiti di qualità

Y

Funzionalità, affidabilità, efficienza

W

Criteri strutturali

Y

A scatola aperta (white box)

Y

Basati sulla “conoscenza” del codice

Y

L’obiettivo primario è esercitare tutto il software del prodotto

W

Combinazione delle strategie → → → → gray box

(      E  _

! "&#$%$'')$*!+"-,%/.$%V00%32& "$4(%

IS

Criteri funzionali

W

Riduzione dei casi di prova

Y

Selezione casuale o statistica

Y

Valori di frontiera

Y

Partizioni dei dati d’ingresso

W

Grafi causa effetto

Y

Fatti elementari di ingresso e uscita

Y

Specifica come causa-effetto espressi in forma Booleana

Y

Selezione di casi di prova rappresentativi

Y

Strumento di specifica e validazione dei requisiti Vedi pag. 18 di lezione L17

        `

! "$#&%('')(*+"-,%/.&%100%32& "$4%

IS

Esempio di grafo causa-effetto

Utente registrato

Password corretta

And Accesso consentito

Utente speciale And Avviso d’errore

N N

And N

And

Accesso negato

N

Requisiti

1. L’accesso è consentito se l’utente è registrato e la password è corretta;

altrimenti l’accesso è negato 2. Se l’utente è speciale e la password

è errata viene emesso un avviso d’errore sulla console di sistema

(      E  a

! "&#$%$'')$*!+"-,%/.$%V00%32& "$4(%

IS

Criteri strutturali

W

Grafo di flusso

Y

Definisce la struttura del codice identificando le sue parti

Y

Ottenuto a partire dal codice

W

Esercitare la maggior parte del programma

Y

Comandi, condizioni, decisioni

Y

Cammini (ogni iterazione di un ciclo è un cammino distinto)

Y

Assegnamenti ed usi

Y

Assegnamenti ed usi in espressioni e calcoli

         

! "$#&%('')(*+"-,%/.&%100%32& "$4%

IS

Esempio di grafo di flusso

b

Funzione fattoriale

int fact(int n) { if(n==0)

return 1;

else

return n*fact(n-1);

}

END 1

2 3

4

5

6 t ← ← ← ← n-1

k ← ← ← ← fact(n ← ← ← ← t)

n * k

return n * k n != 0 n == 0

return 1 START

(      E  U

! "&#$%$'')$*!+"-,%/.$%V00%32& "$4(%

IS

Raffronto

W

Generalità degli approcci

Y

Rispetto alla validità dei risultati

Y

Rispetto alle caratteristiche da provare

Y

Rispetto ai costi da sostenere

W

Dipendenze e implicazioni

Y

L’applicazione di criteri funzionali non dipende dal codice

Y

I criteri strutturali si prestano alla valutazione del grado di

copertura

(3)

         X

IS

L’oracolo

W

Metodo

Y

Per generare i risultati attesi

Y

Per validare i risultati (senza conoscerli)

Y

Generalmente applicato da agenti automatici

W

Criteri generali

Y

Basati sulle specifiche funzionali

Y

Basati sulla semplificazione delle prove

Y

Basati su componenti indipendenti

(      E  Z

IS

Risultati dalle specifiche

c

Risultati ricavati dalle specifiche

d

Specifiche formali (generazione di invarianti)

e

Esempio: il numero di elementi di un vettore è invariante rispetto al suo ordinamento

d

Specifiche eseguibili (back-to-back)

d

Esempio: grafi causa-effetto

c

Inversione delle funzioni

d

Quando l’inversa è “più facile”

d

A volte disponibile fra le funzionalità di altri componenti

d

Limitazioni per difetti di approssimazione

         \

! "$#&%('')(*+"-,%/.&%100%32& "$4%

IS

Semplificazione dei dati

W

Semplificazione dei dati d’ingresso

Y

Provare le funzionalità su dati “semplici”

Y

Risultati noti o calcolabili con altri mezzi

Y

Ipotesi di comportamento costante

W

Semplificazione dei risultati

Y

Accontentarsi di risultati plausibili

Y

Tramite vincoli fra ingressi e uscite

Y

Tramite invarianti sulle uscite

(      E  ]

! "&#$%$'')$*!+"-,%/.$%V00%32& "$4(%

IS

Programmi indipendenti

W

Versioni precedenti dello stesso codice

Y

Disponibili (per le funzionalità non modificate)

Y

Prove di non regressione

W

Versioni multiple indipendenti

Y

Programmi pre-esistenti (back-to-back)

Y

Sviluppate ad hoc

Y

Semplificazione degli algoritmi

         ^

! "$#&%('')(*+"-,%/.&%100%32& "$4%

IS

Valutazione delle prove

W

Rapporto costi - confidenza

Y

Le prove sono eseguite per verifica o per validazione

Y

Devono fornire “adeguata confidenza”

[

Una prova fornisce solo certezza negativa (presenza di difetti)

Y

La confidenza di una prova costa

W

Valutazione di una prova

Y

Qualità di una prova in sé

[

Maggiore qualità → maggiore confidenza

Y

Raggiungimento della confidenza desiderata

(      E  _

! "&#$%$'')$*!+"-,%/.$%V00%32& "$4(%

IS

La copertura

W

Quanto la prova esercita il prodotto

Y

Copertura funzionale

[

Rispetto alla percentuale di funzionalità esercitate

Y

Copertura strutturale

[

Rispetto alla percentuale di codice esercitata

W

Una misura della bontà di una prova

Y

Copertura del 100% non è assenza di difetti

Y

Il 100% di copertura può essere irraggiungibile

[

Costi eccessivi, codice sorgente non disponibile, codice irraggi ungile non

eliminabile, copertura dei cicli

(4)

         `

! "$#&%('')(*+"-,%/.&%100%32& "$4%

IS

Maturità di prodotto

c

Valutare l’evoluzione del prodotto

d

Quanto il prodotto migliora in seguito alle prove

d

Quanto i difetti tendono a “sparire”

d

Quanto costa la scoperta del prossimo difetto

d

Ha una connotazione empirica, tipica del modello code-and-fix

c

Definire un modello ideale

d

Modello base: il numero di difetti del software è una costante iniziale

d

Modello logaritmico: le modifiche introducono difetti

(      E  Ua

! "&#$%$'')$*!+"-,%/.$%V00%32& "$4(%

IS

La funzione µµµµ (t)

totale difetti

tempo di prova modello base modello logaritmico Nel modello logaritmico ogni rimozione di difetto può aggiungerne altri

        U 

! "$#&%('')(*+"-,%/.&%100%32& "$4%

IS

La funzione λλλλ (t)

tempo di prova

intensità difetti

modello base modello logaritmico

Oltre questo punto ogni rimozione di difetti può introdurne altri

(      E  UU

! "&#$%$'')$*!+"-,%/.$%V00%32& "$4(%

IS

Criteri economici e qualitativi

totale difetti

tempo di prova modello base Livello minimo dei difetti da eliminare

Livello dei costi corrispondenti all’obiettivo minimo Livello dei costi massimi sostenibili

Livello di qualità ottenibile a costi fissati

        U X

! "$#&%('')(*+"-,%/.&%100%32& "$4%

IS

Criteri analitici

Punto di maggior vantaggio = min {ID + CP}

tempo di prova

intensità difetti

modello base costi

(      E  UZ

! "&#$%$'')$*!+"-,%/.$%V00%32& "$4(%

IS

Riepilogo

W

Caratteristiche delle prove del software

W

Criteri funzionali

W

Criteri strutturali

W

Analisi dei risultati, l’oracolo

W

Approfondimento: valutazione delle prove

(5)

        U \

IS

Riferimenti

f

H. Zhu e altri, Software Unit Test Coverage and Adequacy, ACM Computing Surveys, Dicembre 1997

f

Standard for Software Component Testing, British Computer Society, SIGIST, 1997

f

M. Madden, Unit Testing Procedures in LaSRS++, Unisys-NASA Langley RC, 1997

f

J.D. Musa, A.F. Ackerman, Quantifying software validation:

when to stop testing?, IEEE Software, maggio 1989

Riferimenti

Documenti correlati

The purpose of this work is to investigate whether there is a relationship between software people and software quality (see Fig. 1.1), so that a better management of the people

Testing is done while coding, while debugging is done later, Testing is a special kind of coding, while debugging means slowly going through existing code in a painful way and

Lipari (Scuola Superiore Sant’Anna) Unit Testing November 28, 2011 1 /

– The test method may comprise multiple test cases; that is, it may make multiple calls to the method you are testing. – In fact, since it’s your code, the test method can do

ƒ Il campo “Nome del gruppo” deve contenere la WikiWord della pagina che identifica il nome del gruppo (deve cioè essere un link alla pagina del gruppo). ƒ Il campo “Proposta

Multi Misura Con MatrixGold è possibile avere più misure dello stesso anello in pochi second anche di vostri progetti già realizzati in STL.. Report tecnico Soluzione in un clic

● Le PA, prima di potere acquisire o sviluppare nuovo software, devono ricercare soluzioni a riuso o open source (catalogo).. ● Altrimenti devono effettuare una

• Non sempre la strategia di progettazione orientata alle funzioni è la migliore, anzi può portare alla definizione di moduli fortemente accoppiati. • Anche in presenza di