TSCR -curs- Ionescu Augustin-Iulian CAPITOLUL 4 TSCR -curs- Ionescu Augustin-Iulian 4-2 Modelul W pentru dezvoltarea proiectelor analiza cerintelor specificatii proiectare arhitectura proiectare detaliata Start activitati testare Executie test acceptanta Planificare testare de sistem Depanare/ modificare Executie test de sistem Planificare.

Download Report

Transcript TSCR -curs- Ionescu Augustin-Iulian CAPITOLUL 4 TSCR -curs- Ionescu Augustin-Iulian 4-2 Modelul W pentru dezvoltarea proiectelor analiza cerintelor specificatii proiectare arhitectura proiectare detaliata Start activitati testare Executie test acceptanta Planificare testare de sistem Depanare/ modificare Executie test de sistem Planificare.

TSCR -curs-
Ionescu Augustin-Iulian
2010
1
CAPITOLUL 4
2010
TSCR -curs-
Ionescu Augustin-Iulian
4-2
Modelul W pentru dezvoltarea proiectelor
analiza cerintelor
specificatii
proiectare
arhitectura
proiectare detaliata
Start activitati
testare
Executie test
acceptanta
Planificare testare
de sistem
Depanare/
modificare
Executie test de
sistem
Planificare testare
de integrare
Executie test de
integrare
Planificare testare
pe componente
Executie teste pe
componenta
Depanare/
modificare
Depanare/
modificare
Depanare/
modificare
codificare
Fig. 4.1
2010
TSCR -curs-
Ionescu Augustin-Iulian
4-3
Nivele de testare
Nivelul componenta
Nivelul integrare
Nivelul sistem
Fig. 4.2
2010
TSCR -curs-
Ionescu Augustin-Iulian
4-4
Platforma de testare
Caz test
1
Caz test
Test
2
driver
...
Caz test
n
Test driver
PC
surogat
1
...
Produs
testat
PO
Rezultate
testare
surogat
k
Inlocuitori
Mediul de executie,monitoare,
analizoare
PC – punct comandă
PO – punct observație
Fig. 4.3
2010
TSCR -curs-
Ionescu Augustin-Iulian
4-5
Testarea componentelor (Unit testing)
Obiectiv:
Depistarea existenței unor defecte la nivel de unitate funcțională
(componentă)
Avantaje:
Dimensiunea componentelor este suficient de mică pentru a permite ulterior
localizarea şi eliminarea ȋntr-un timp acceptabil a defectelor care au
provocat eşecul.
Dimensiunea mică a componentelor permite generarea sistematică a unor
cazuri de test care să acopere principalele defecte care ar putea să apară.
Acest lucru permite automatizarea procesului de testare.
Se elimină confuziile legate de apariția şi propagarea unor defecte ȋn diverse
componente.
2010
TSCR -curs-
Ionescu Augustin-Iulian
4-6
Testarea componentelor
Defecte tipice puse ȋn evidență:
Nu se ține cont de precedența operatorilor;
Utilizarea greşită a parantezelor;
Nume greşite ale obiectelor programului;
Compararea unor date de tipuri necompatibile;
Lipsa inițializării sau inițializare greşită;
Utilizarea unei precizii insuficiente;
Utilizarea greşită a unor operatori;
Ignorarea particularităților diverselor variante/versiuni de
compilator/interpretor;
2010
TSCR -curs-
Ionescu Augustin-Iulian
4-7
Testarea de integrare (integration testing)
Obiectiv:
Testeaza interfața ȋntre componente pentru a pune ȋn evidență defecte
ȋn transferul de informație ȋntre componente.
Abordări ale testării de integrare:
Integrarea incrementală;
Integrarea top-down;
Integrare bottom-up;
Testarea de regresie;
Smoke testing;
Integrarea sandwich.
Observatie! Indiferent de abordare, integrarea trebuie planificată cu grijă
pentru a minimiza efortul de scriere a driverelor şi surogatelor.
2010
TSCR -curs-
Ionescu Augustin-Iulian
4-8
Integrarea incrementală
Integrarea se face pas cu pas, integrând la primul pas două componente,
apoi, după ce toate testele au fost realizate şi defectele eliminate se
adaugă altă componentă, se refac toate testele anterioare, se adaugă noi
teste şi asa mai departe până când cu testele considerate nu mai poate fi
pus ȋn evidență nici un defect.
C1
T1
T1
C1
T2
C2
T3
C1
T2
C2
T3
C3
T4
T1
T2
C2
C3
C4
T3
T4
T5
Fig. 4.4
2010
TSCR -curs-
Ionescu Augustin-Iulian
4-9
Integrarea top-down
Este o variantă a integrării incrementale ȋn care se porneşte de la
programul principal şi se adaugă mereu componente de pe nivelele
imediat inferioare până când tot programul este testat.
Există două strategii posibile:
Integrarea ȋn adâncime (depth-first) - Fig. 4.5;
Integrarea pe nivele ale arhitecturii (breadth-first) - Fig.4.6;
Paşii procesului de integrare:
Programul principal joaca rolul de test driver si se introduc surogate pentru
fiecare din componentele direct subordonate acestuia.
În funcție de strategia aleasă, la fiecare etapă un surogat este ȋnlocuit cu o
componentă reală şi surogatele aferente acesteia.
Pentru fiecare componenta nou integrata se realizeaza testele planificate.
Numai după efectuarea tuturor testelor propuse, se trece la ȋnlocuirea
următorului surogat cu o componentă reală.
Se efectuează teste de regresie pentru a pune ȋn evidență eventuale defecte
datorate ultimei componente integrate.
2010
TSCR -curs-
Ionescu Augustin-Iulian
4-10
Integrarea top-down
M1
P1)
M1
M1
P8)
surogat1
surogat2
surogat3
P5)
surogat2
M2
surogat3
M2
M3
M3
M1
P2)
surogat2
M2
surogat4
surogat3
M5
M6
M5
M8
surogat5
M6
M7
M8
M1
M1
P3)
P6)
surogat2
M2
M2
surogat3
surogat3
M3
surogat5
M5
M5
P4)
M8
M1
surogat6
surogat2
M2
M6
surogat3
M1
P7)
M2
M3
M4
surogat5
surogat7
2010
M5
M5
M8
M8
TSCR -curs-
M6
Ionescu Augustin-Iulian
4-11
Integrarea bottom-up
Este o variantă a integrării incrementale ȋn care se porneşte de la
componentele situate pe cele mai de jos nivele ȋn structura programului.
Paşii procesului de integrare:
Componentele de la nivelul inferior se reunesc ȋn clustere care realizează
subfuncții bine precizate.
Pentru fiecare cluster sunt scrise programe driver care gestionează
introducerea datelor de test şi extragerea rezultatelor.
Se testează fiecare cluster.
Se elimină driverele şi se integrează ȋn cluster componente de la nivelul
superior, efectuând şi testele de regresie corespunzatoare.
Procesul se reia până când toate componentele au fost integrate.
2010
TSCR -curs-
Ionescu Augustin-Iulian
4-12
Integrarea bottom-up
P1)
D1
M4
M5
D2
D3
M6
M7
M8
M9
Cluster 1
Cluster 2
P2)
M10
P3)
M11
Cluster 3
M4
M3
M2
M5
M8
M5
M8
2010
TSCR -curs-
M3
M2
D4
M4
M1
M6
M9
M6
M9
M7
M10
M11
M7
M10
M11
Ionescu Augustin-Iulian
4-13
Integrarea combinată (sandwich)
Este o variantă a integrării incrementale ȋn care se combina cele doua
metode de integrare prezentate anterior pentru a mari eficiența testării
prin creşterea paralelismului ȋn operațiile de testare.
Paşii procesului de integrare:
Componentele de la nivelul inferior se reunesc ȋn clustere care realizează
subfuncții bine precizate.
Pentru fiecare cluster sunt scrise programe driver care gestionează
introducerea datelor de test şi extragerea rezultatelor.
Se testează fiecare cluster.
Pentru componentele de la nivelul superior testarea se face prin metoda topdown.
Se elimină driverele şi surogatele şi se integrează toate componentele testate
anterior.
Observatie! Avantajele metodei sunt legate de abilitatea planificării operațiilor
de testare ȋn aşa fel incât să se minimizeze necesarul de surogate şi drivere şi
să crească paralelismul operațiilor de testare/integrare.
2010
TSCR -curs-
Ionescu Augustin-Iulian
4-14
Integrarea combinată (sandwich)
P1)
M1
D1
S2
S1
P2)
M4
M1
M5
D3
M6
M7
M8
M9
Cluster 1
Cluster 2
M10
M11
Cluster 3
S2
M2
P3)
M4
D2
M1
M5
M3
M2
M8
M4
M5
M8
2010
TSCR -curs-
M6
M9
M7
M10
Ionescu Augustin-Iulian
M11
4-15
Testarea de regresie
Este un proces prin care se verifică dacă o modificare introdusă ȋntr-o
componentă, indiferent de cauză, nu afectează funcționalitatea acesteia
sau a ȋntregului program.
Setul de teste de regresie conține trei clase de teste:
Teste adiționale orientate pe anumite funcții realizate de program.
Teste care să verifice toate funcțiile realizate de program.
Teste concentrate pe componentele modificate.
2010
TSCR -curs-
Ionescu Augustin-Iulian
4-16
Testul fumului (smoke testing)
Acest tip de test are ca scop sa puna in evidenta daca un produs este
functional inainte de a trece la realizarea unor teste detaliate.
În hardware testul constă ȋn a pune sub tensiune un circuit nou sau ȋn care
tocmai s-a ȋnlocuit/reparat o componentă. Dacă nu iese fum, produsul a
trecut testul.
În software termenul descrie procesul de validare a modificărilor de cod
ȋnainte de a trece la executarea setului de teste propuse pentru programul
respectiv. Este o metodă foarte eficientă, prin care se pun ȋn evidență cu
un minim de efort defectele grosolane.
Testele din aceasta categorie sunt teste usoare, cu timp de execuție mic şi
sunt focalizate pe modificările introduse.
Fac parte din categoria white-box deoarece necesită cunoaşterea codului.
Aveasta implică o bună colaborare ȋntre programatori şi testori.
Trecerea acestui test nu garantează calitatea impusă produsului, deci nu
elimină celelalte categorii de teste.
2010
TSCR -curs-
Ionescu Augustin-Iulian
4-17
Testul fumului (smoke testing)
Teste adiționale orientate pe anumite funcții realizate de program.
Teste care să verifice toate funcțiile realizate de program.
Teste concentrate pe componentele modificate.
2010
TSCR -curs-
Ionescu Augustin-Iulian
4-18