Documente Academic
Documente Profesional
Documente Cultură
Florin Leon
Universitatea Tehnic Gheorghe Asachi din Iai
Facultatea de Automatic i Calculatoare
http://florinleon.byethost24.com/curs_ip.htm
Florin Leon, Ingineria programarii, http://florinleon.byethost24.com/curs_ip.htm
Verificare i Validare
Verificare
Validare
Scopurile V & V
Funcionalitatea programului
Nivelul de ncredere depinde de ct de critic este sistemul
pentru utilizatori
Ateptrile utilizatorilor
Utilizatorii pot avea grade diferite de ateptri pentru
anumite tipuri de produse software
Mediul de afaceri
Lansarea rapid pe pia a unui produs poate fi uneori mai
important dect gsirea defectelor n program
7
Terminologie (IEEE)
Eroare
O aciune uman care are ca rezultat un defect n produsul
software
Defect (engl. fault)
Consecina unei erori n produsul software
Un defect poate fi latent: nu cauzeaz probleme ct timp nu apar
condiiile care determin execuia anumitor linii de cod
Defeciune (engl. failure)
Manifestarea unui defect: cnd execuia programului ntlnete
un defect, acesta provoac o defeciune
Abaterea programului de la comportamentul ateptat
Bug: termen colocvial utilizat deseori ca sinonim pentru defect
9
Testarea defectelor i
testarea de validare
Testarea defectelor
Testarea de validare
10
Testarea i depanarea
Asigurarea calitii
12
Testarea unitilor
14
Programe schel
Testarea componentelor
16
Testarea sistemului
Testele de regresiune
Testarea performanelor
20
Testarea la ncrcare
21
Testarea la stres
Testarea interfeei cu
utilizatorul
Testarea utilizabilitii
24
Inspeciile codului
26
Activiti
27
28
Caracteristici (I)
Caracteristici (II)
Partiionarea claselor de
echivalen
34
Clase de echivalen
pentru ieiri
35
Strategia 1
Strategia 2
Exemplu
37
Exemplu
6n + 1 cazuri de test
40
Exemplu
41
Strategia 2
6 valori de limit
1 valoare nominal
7n cazuri de test
42
Graful cauz-efect
Exemplu
negaie
44
Tabelul de decizie
45
Tipuri de defecte
Testarea perechilor
Exemplu
9 3 = 27 combinaii
9 cazuri de test
se evit acoperirea unei
perechi de mai multe ori
48
Cazuri speciale
51
Exemplu
Exemplu
Sistem de
sondaj pentru
studeni
Un student
rspunde la
ntrebri i apoi
vede rezultatele
sondajului
Rezultatele se
actualizeaz doar
dup 5 rspunsuri
Baza de date poate
cdea
52
Testarea claselor
Testarea MM
Testare metod-mesaj
n fiecare metod, fiecare apel ctre alt metod
trebuie testat cel puin o dat
Dac o metod apeleaz alt metod de mai
multe ori, fiecare apel trebuie testat o singur
dat
54
57
58
Acoperirea instruciunilor
pentru cazul de
test {x=0}, eroarea
rmne nedetectat
59
Acoperirea ramurilor
Necesit ca fiecare arc din graf s fie traversat cel puin o dat
Fiecare decizie trebuie evaluat ca A sau F
Criteriul acoperirii ramurilor 100% se mai numete criteriul tuturor
arcelor (all-edges)
Cramuri Cinstruciuni (all-edges all-nodes)
decizia poate fi
evaluat A sau F fr
a detecta eroarea
Acoperirea cilor
Dificulti:
62
x = 5;
a = x; read(x); write(x);
if (x > 0)
63
Criterii:
Exemplu
65
Exemplu
all-edges:
(1, 2, 4, 5, 6, 7, 8, 9):
y negativ
(1, 3, 4, 5, 7, 9): y pozitiv
Calea (1, 2, 4, 5, 6, 7, 9)
este nefezabil: 1-2
nseamn c y este negativ,
deci din 7 nu se poate
merge n 9
Cazuri de test:
{x = 3, y = 1}
{x = 3, y = -1}
66
Exemplu
all-defs:
67
criteriu mai
slab
68
Acoperirea testului
Instrumente de acoperire
NCover
71
Ordinea modulelor
Costul depanrii
73
Tipuri de integrare
Integrarea neincremental
Abordarea clasic
Modulele sunt testate separat i apoi integrate
simultan, continundu-se cu testarea sistemului
Numit i model big-bang deoarece timpul de
testare crete mult
Integrarea incremental
Modul driver: A
Modul stub: E
Comparaie (I)
Integrarea neincremental
necesit 5 module driver i
5 module stub
Integrarea incremental
necesit:
Comparaie (II)
Testarea incremental detecteaz mai devreme incompatibilitatea interfeelor sau alte presupuneri incorecte din module
Comparaie (III)
78
Testarea top-down
80
Exemplu
Ordinea de testare
83
Recomandri
84
Probleme
Probleme
Testarea bottom-up
87
Exemplu
88
Problem
89
Comparaie
Testarea top-down
Testarea bottom-up
90
Metrici
Efortul de testare
Timpul calculator
91
Recomandri (I)
Recomandri (II)
Recomandri (III)
Automatizarea testrii
Concluzii