Sei sulla pagina 1di 31

Ingegneria del Software

(Ing.Informatica Nuovo Ord.)


Canale M-Z / A.A. 2005-06
Marco Cadoli
Universit di Roma La Sapienza
Dipartimento di Informatica e Sistemistica
www.dis.uniroma1.it/~cadoli

PRIMA PARTE

Il processo di produzione del SW


Esercitazione sul test a scatola nera
Versione definitiva
Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

Obiettivo dellesercitazione
Verificare la comprensione dei concetti principali
del test a scatola nera:

classi di equivalenza,
classi valide e non,
progetto dei casi di test,
tecnica dei valori estremi,

per semplici programmi o funzioni, descritte


tramite la loro specifica funzionale.

Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

Passi necessari
Passo 1. Identificazione delle classi di equivalenza:

elenco, con codice identificativo per ogni classe

criteri utili:
a)

intervalli di valori

b)

numero di valori

c)

insiemi di valori

d)

condizioni vincolanti

Passo 2. Progettazione dei casi di test per la copertura delle classi


Passo 3. Analisi dei valori estremi e progettazione di ulteriori casi di
test
Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

Esercizio 1

Un chiosco del Ministero del Welfare, dotato di tastiera


alfanumerica e schermo, fornisce informazioni ai cittadini
sulla data del loro pensionamento. Una funzionalit
prevede che il cittadino inserisca da tastiera il suo anno di
nascita e il suo anno di prima assunzione, e stampa su
schermo l'anno in cui pu andare in pensione. Si assume
che il cittadino abbia lavorato in maniera continuativa
dopo la prima assunzione.
Progettare, secondo le tecniche a scatola nera, casi di test
per la funzionalit in questione tenendo conto che, secondo
le specifiche:
non si pu essere assunti prima di avere compiuto i
quindici anni,
si pu andare in pensione dopo 35 anni di lavoro o dopo
il compimento dei 60 anni.
Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

Passo 1: numero di valori


Cv1
Cnv2
Cnv3

due interi in ingresso


meno di due interi in ingresso
pi di due interi in ingresso

Cnv4 errore di formato (stringa non corrispondente


ad anno) sul primo dato
Cnv5 errore di formato (stringa non corrispondente
ad anno) sul secondo dato
NOTA: in maniera alternativa, le classi Cnv4 e Cnv5
potrebbero essere progettate tenendo in considerazione
il criterio delle condizioni vincolanti
Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

Passo 1: condizioni vincolanti

Cv6
Cnv7

anno prima assunzione anno nascita >= 15


anno prima assunzione anno nascita < 15

Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

Passo 2
Caso di test

Classi
coperte

Output atteso

T1: 1950, 1968

Cv1, Cv6

2003

T2 : 1950

Cnv2

errore di formato

T3 : 1950, 1965, 1965

Cnv3

errore di formato

T4: Abc, 2000

Cnv4

errore di formato

T5: 1950, Abc

Cnv5

errore di formato

T6: 1950, 1961

Cnv7

data assunzione non valida

Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

Passo 3: numero di valori in input


Criterio generale: progettare casi di test:

Per il numero minimo di valori


Per il numero massimo di valori
Immediatamente al di sotto
Immediatamente al di sopra

Nel nostro caso:


Massimo e minimo coincidono (2 interi in ingresso)
Abbiamo gi testato 1, 2 e 3 interi in ingresso (casi di test T2,
T1, T3, rispettivamente)
Non sono necessari ulteriori casi di test

Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

Passo 3: condizioni vincolanti


Criterio generale: progettare casi di test:
Che soddisfino una condizione allestremo
Che violino una condizione minimalmente

Nel nostro caso (Cv6, Cnv7):


anno prima assunzione anno nascita = 15, 16
anno prima assunzione anno nascita = 13, 14
Caso di test

Output atteso

T7: 1950, 1965

2000

T8 : 1950, 1966

2001

T9 : 1950, 1964

data assunzione non valida

T10: 1950, 1963

data assunzione non valida

Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

Passo 3: intervalli/condizioni delloutput


Criterio generale: progettare casi di test:
Sugli estremi
Immediatamente al di sotto
Immediatamente al di sopra
per la legge che lega linput e loutput

Nel nostro caso:


Output = min (anno prima assunzione + 35, anno nascita + 60)
Ovvero:
if (anno prima assunzione anno nascita >= 25)
then output = anno nascita + 60
else output = anno prima assunzione + 35
Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

10

Passo 3: intervalli/condizioni delloutput (2)


anni di lavoro
necessari per il
pensionamento
35

15

Ing. del SW: Esercitazione test scatola nera

25

60

et alla prima
assunzione

Marco Cadoli, Universit La Sapienza, ott 2005

11

Passo 3: intervalli/condizioni delloutput (3)


Nel nostro caso (continua):
anno prima assunzione anno nascita = 24, 25, 26
anno prima assunzione anno nascita = 59, 60, 61
Caso di test
T11: 1950, 1974
T12 : 1950, 1975
T13 : 1950, 1976
T14: 1950, 2009
T15 : 1950, 2010
T16 : 1950, 2011

Ing. del SW: Esercitazione test scatola nera

Output atteso
2009
2010
2010
2010
2010
2010
Marco Cadoli, Universit La Sapienza, ott 2005

12

Esercizio 2
Il sito Web di una banca fornisce informazioni ai suoi
clienti sul valore delle obbligazioni emesse.
Una funzionalit prevede che il cliente inserisca da
tastiera il suo codice identificativo (quattro cifre),
l'anno in cui ha acquistato le obbligazioni,
l'indicazione se le obbligazioni siano speciali oppure
no, e stampa su schermo il rendimento netto delle
obbligazioni.
Progettare, secondo le tecniche a scatola nera, casi di test
per la funzionalit in questione tenendo conto che,
secondo le specifiche:

le obbligazioni sono state emesse solamente fra il


1992 e il 1996, oppure fra il 2000 e il 2003,

le obbligazioni speciali sono state emesse solamente


fra il 1992 e il 1994.
Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

13

Passo 1: intervalli di valori

Cv1
Cv2
Cnv3
Cnv4
Cnv5

emissione nellintervallo [1992..1996]


emissione nellintervallo [2000..2003]
emissione < 1992
emissione > 1996 & emissione < 2000
emissione > 2003

Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

14

Passo 1: numero di valori


Cv6
Cnv7
Cnv8

tre dati in ingresso


meno di tre dati in ingresso
pi di tre dati in ingresso

Cnv9 errore formato sul codice identificativo


Cnv10 errore formato sullanno emissione
Cnv11 errore formato sul tipo obbligazioni

Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

15

Passo 1: insieme di valori


Cv12 obbligazione = speciale
Cv13 obbligazione = non speciale
Cnv14 obbligazione non inclusa in {speciale, non
speciale}

Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

16

Passo 1: condizioni vincolanti

Cv15 se obbligazione = speciale allora emissione


nellintervallo [1992..1994]
Cnv16 obbligazione = speciale e emissione non
nellintervallo [1992..1994]

Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

17

Passo 2
Caso di test

Classi coperte

T1: 3431, 1994, speciale

Cv1, Cv6, Cv12, Cv15 un reale

T2: 3431, 2002, non speciale

Cnv2, Cv6, Cv13

un reale

T3: 3431, 1990, speciale

Cnv3

anno emissione non valido

T4: 3431, 1998, speciale

Cnv4

anno emissione non valido

T5: 3431, 2005, speciale

Cnv5

anno emissione non valido

T6: 3431, non speciale

Cnv7

pochi dati in input

T7: 3431, 1994, 1994, speciale

Cnv8

troppi dati in input

T8: H21W, 1994, speciale

Cnv9

errore di formato

T9: 3431, H21W, speciale

Cnv10

errore di formato

T10: 3431, 1994, speziale

Cnv11

errore di formato

T11: 3431, 1994, privilegiata

Cnv14

errore di formato

T12: 3431, 1994, non speciale

Cnv16

anno emissione non valido

Ing. del SW: Esercitazione test scatola nera

Output atteso

Marco Cadoli, Universit La Sapienza, ott 2005

18

Passo 3: intervalli di valori in input


Criterio generale: progettare casi di test:
Sugli estremi
Immediatamente al di sotto
Immediatamente al di sopra
delle classi valide (una per volta)
Nel nostro caso (et nellunione di intervalli [1992..1996], [2000..2003]):
Caso di test Input 1

Input 2

Input 3

Output atteso

T13

3431

1991

non speciale

anno emissione non valido

T14

3431

1992

non speciale

un reale

T15

3431

1996

non speciale

un reale

T16

3431

1997

non speciale

anno emissione non valido

T17

3431

1999

non speciale

anno emissione non valido

T18

3431

2000

non speciale

un reale

T19

3431

2003

non speciale

un reale

T20

3431

2004

non speciale

anno emissione non valido

Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

19

Passo 3: numero di valori in input


Criterio generale: progettare casi di test:

Per il numero minimo di valori


Per il numero massimo di valori
Immediatamente al di sotto
Immediatamente al di sopra

Nel nostro caso:


Massimo e minimo coincidono (3 dati in ingresso)
Abbiamo gi testato 2, 3 e 4 dati in ingresso (casi di test T6,
T1, T7, rispettivamente)
Non sono necessari ulteriori casi di test

Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

20

Passo 3: condizioni vincolanti


Criterio generale: progettare casi di test:

Che soddisfino una condizione allestremo


Che violino una condizione minimalmente

Nel nostro caso (Cv15, Cnv16): se obbligazione = speciale

anno emissione = 1992, 1994


anno emissione = 1991, 1995
Caso di test Input 1

Input 2

Input 3

Output atteso

T21

3431

1991

speciale

anno emissione non valido

T22

3431

1992

speciale

un reale

T23

3431

1994

speciale

un reale

T24

3431

1995

speciale

anno emissione non valido

Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

21

Passo 3: intervalli/condizioni delloutput


Criterio generale: progettare casi di test:
Sugli estremi
Immediatamente al di sotto
Immediatamente al di sopra
per la legge che lega linput e loutput
Nel nostro caso:
non nota la legge che lega lingresso alluscita
non sembrano ragionevoli altri casi di test oltre a quelli gi
proposti

Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

22

Esercizio 3

Una funzione riceve in ingresso due


parametri, et [18..60] e sesso {M,F}, e
restituisce un intero [120..200] che
rappresenta la massima frequenza cardiaca
ammessa durante un allenamento.
Progettare, secondo le tecniche a scatola
nera, casi di test per la funzione in questione.

Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

23

Passo 1: intervalli di valori


Cv1
Cnv2
Cnv3

et nellintervallo [18..60]
et < 18
et > 60

NOTA: non si applica il criterio del numero di valori,


perch il testo menziona una funzione

Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

24

Passo 1: insieme di valori


Cv4
Cv5
Cnv6

sesso = M
sesso = F
sesso non incluso in {M, F}

Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

25

Passo 2
Caso di Input 1
test
T1
25
T2
25
T3
15
T4
65
T5
25

Input 2

Classi
coperte

Output atteso

M
F
M
M
V

Cv1, Cv4

in [120..200]
in [120..200]
et non valida
et non valida
sesso non valido

Ing. del SW: Esercitazione test scatola nera

Cv1, Cv5
Cnv2
Cnv3
Cnv6

Marco Cadoli, Universit La Sapienza, ott 2005

26

Passo 3: intervalli di valori in input


Criterio generale: progettare casi di test:
Sugli estremi
Immediatamente al di sotto
Immediatamente al di sopra
delle classi valide (una per volta)
Nel nostro caso (et nellintervallo [18..60]):

Caso di test
T6
T7
T8
T9
T10
T11

Input 1
17
18
19
59
60
61

Ing. del SW: Esercitazione test scatola nera

Input 2
M
M
M
M
M
M

Output atteso
et non valida
in [120..200]
in [120..200]
in [120..200]
in [120..200]
et non valida

Marco Cadoli, Universit La Sapienza, ott 2005

27

Passo 3: intervalli/condizioni delloutput


Criterio generale: progettare casi di test:
Sugli estremi
Immediatamente al di sotto
Immediatamente al di sopra
per la legge che lega linput e loutput
Nel nostro caso:
non nota la legge che lega lingresso alluscita
non sembrano ragionevoli altri casi di test oltre a quelli gi
proposti

Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

28

Esercizio 4
Un programma per la simulazione di immersioni con
speciali miscele gassose fornisce indicazioni sul tempo
massimo di permanenza sul fondo in base alla
percentuale di ossigeno presente nella miscela ed alla
profondit massima. In particolare, il programma
riceve in ingresso la percentuale di ossigeno (valori
ammissibili 21... 36) e la profondit massima (valori
ammissibili 10 ... 50 metri) e restituisce un intero
corrispondente alla durata massima in minuti
dell'immersione a quella profondit.
Progettare, secondo le tecniche a scatola nera, casi di
test per la funzionalit in questione tenendo conto che,
secondo le specifiche, per valori percentuali di ossigeno
superiori al 30% la profondit massima ammissibile
40 metri.
Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

29

Esercizio 5
Un programma per la prenotazione di alberghi
su Internet prevede l'inserimento del numero
di persone per cui si vuole prenotare la stanza
(minimo 3), la data di arrivo, la data di
partenza (massimo 15 giorni) ed il tipo di
stanza (fumatori/ non fumatori).
Codifica dei dati gg/mm/aa, fu, nfu
Progettare, secondo le tecniche a scatola nera,
casi di test per la funzionalit in questione
indicando chiaramente le tecniche utilizzate e le
classi di equivalenza individuate.
Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

30

Esercizio 6
Un programma messo a punto dall'ISTAT fornisce un indice
di "spendibilit industriale" per gli ingegneri informatici
neolaureati. Tale indice varia tra 0 e 100: 0 indica che il
neolaureato avr difficolt notevoli per trovare lavoro, 100
indica che le aziende litigheranno tra loro per assumerlo.
Per calcolare l'indice il programma richiede i seguenti
parametri:
et;
livello di laurea conseguito (triennale, specialistica, vecchio
ordinamento);
anni di studio;
voto di laurea.

Corredare con opportuni vincoli le specifiche e progettare,


secondo le tecniche a scatola nera casi di test per la
funzionalit in questione indicando chiaramente le tecniche
utilizzate e le classi di equivalenza individuate.
Ing. del SW: Esercitazione test scatola nera

Marco Cadoli, Universit La Sapienza, ott 2005

31