Testarea sistemelor de calcul i a reelelor TSCR

  • Slides: 18
Download presentation
Testarea sistemelor de calcul şi a rețelelor TSCR -curs- Ionescu Augustin-Iulian 2010 1

Testarea sistemelor de calcul şi a rețelelor TSCR -curs- Ionescu Augustin-Iulian 2010 1

CAPITOLUL 4 Nivele de testare 2010 TSCR -curs- Ionescu Augustin-Iulian 4 -2

CAPITOLUL 4 Nivele de testare 2010 TSCR -curs- Ionescu Augustin-Iulian 4 -2

Modelul W pentru dezvoltarea proiectelor Fig. 4. 1 2010 TSCR -curs- Ionescu Augustin-Iulian 4

Modelul W pentru dezvoltarea proiectelor Fig. 4. 1 2010 TSCR -curs- Ionescu Augustin-Iulian 4 -3

Nivele de testare Fig. 4. 2 2010 TSCR -curs- Ionescu Augustin-Iulian 4 -4

Nivele de testare Fig. 4. 2 2010 TSCR -curs- Ionescu Augustin-Iulian 4 -4

Platforma de testare PC – punct comandă PO – punct observație Fig. 4. 3

Platforma de testare 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ă

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;

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

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,

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. 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

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 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 2010 TSCR -curs- Ionescu Augustin-Iulian 4 -11

Integrarea top-down 2010 TSCR -curs- Ionescu Augustin-Iulian 4 -11

Integrarea bottom-up Este o variantă a integrării incrementale ȋn care se porneşte de la

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 2010 TSCR -curs- Ionescu Augustin-Iulian 4 -13

Integrarea bottom-up 2010 TSCR -curs- Ionescu Augustin-Iulian 4 -13

Integrarea combinată (sandwich) Este o variantă a integrării incrementale ȋn care se combina cele

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) 2010 TSCR -curs- Ionescu Augustin-Iulian 4 -15

Integrarea combinată (sandwich) 2010 TSCR -curs- Ionescu Augustin-Iulian 4 -15

Testarea de regresie Este un proces prin care se verifică dacă o modificare introdusă

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

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

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