Facultatea de Informatic Universitatea Al I Cuza Iai

  • Slides: 37
Download presentation
Facultatea de Informatică Universitatea “Al. I. Cuza” - Iaşi Ingineria Programării Laborator 3 Adrian

Facultatea de Informatică Universitatea “Al. I. Cuza” - Iaşi Ingineria Programării Laborator 3 Adrian Iftene adiftene@infoiasi. ro Adrian Iftene - IP

Introducere în Testare Adrian Iftene - IP

Introducere în Testare Adrian Iftene - IP

Cuprins n n n Unde ne aflăm? Definiţia şi Scopurile Testării Software Fapte şi

Cuprins n n n Unde ne aflăm? Definiţia şi Scopurile Testării Software Fapte şi Numere Adrian Iftene - IP 3

Dilema Calităţii Software Calitate Timp Preţ Adrian Iftene - IP 4

Dilema Calităţii Software Calitate Timp Preţ Adrian Iftene - IP 4

Cuprins n n n Unde ne aflăm? Definiţia şi Scopurile Testării Software Fapte şi

Cuprins n n n Unde ne aflăm? Definiţia şi Scopurile Testării Software Fapte şi Numere Adrian Iftene - IP 5

Testare Software - Definiţie “The process of exercising or evaluating a system by manual

Testare Software - Definiţie “The process of exercising or evaluating a system by manual or automated means to verify that it satisfies specified requirements or to identify differences between expected and actual results. ” (IEEE Standard Glossary, 1983) Adrian Iftene - IP 6

Testare Software Testarea Software NU este o fază n Este un proces care trebuie

Testare Software Testarea Software NU este o fază n Este un proces care trebuie integrat în toate fazele construcţiei produsului software n Există documente de testare asociate la fiecare fază a dezvoltării n Adrian Iftene - IP 7

Care sunt Scopurile Testării? De a localiza şi preveni bugs cât mai curând posibil

Care sunt Scopurile Testării? De a localiza şi preveni bugs cât mai curând posibil n De a efectua toate Testele corespunzător Cerinţelor, într-un mod cât mai eficient şi mai economic n De a aduce produsul software la un nivel de calitate cât mai ridicat (pentru client) Toate acestea se execută folosind Metodologile de Implementare n Adrian Iftene - IP 8

De ce avem Bugs în Software? Comunicarea deficitară sau Blocajele de comunicare n Înţelegerea

De ce avem Bugs în Software? Comunicarea deficitară sau Blocajele de comunicare n Înţelegerea deficitară n Presiunea Timpului n Nivelul Programatorului este Scăzut n Adrian Iftene - IP 9

Comunicare Deficitară Adrian Iftene - IP 10

Comunicare Deficitară Adrian Iftene - IP 10

Comunicare Deficitară – În tratarea Cerinţelor Adrian Iftene - IP 11

Comunicare Deficitară – În tratarea Cerinţelor Adrian Iftene - IP 11

Cuprins n n n Unde ne aflăm? Definiţia şi Scopurile Testării Software Fapte şi

Cuprins n n n Unde ne aflăm? Definiţia şi Scopurile Testării Software Fapte şi Numere Adrian Iftene - IP 12

De unde vin Problemele Software? Cerinţe definite Incomplet 50% n Modelare Ambiguă sau Insuficientă

De unde vin Problemele Software? Cerinţe definite Incomplet 50% n Modelare Ambiguă sau Insuficientă 30% n Erori de Programare 20% n Adrian Iftene - IP 13

Bugs - Costul Fixării Cerinţe Modelare Impl. Test. Int. Test. sist. Adrian Iftene -

Bugs - Costul Fixării Cerinţe Modelare Impl. Test. Int. Test. sist. Adrian Iftene - IP Client 14

Atenţie Găsirea târzie a bugs un cost cât mai mare pentru a le fixa

Atenţie Găsirea târzie a bugs un cost cât mai mare pentru a le fixa Adrian Iftene - IP 15

Erori? Trebuie fixate cât mai Devreme Posibil CERINŢE MODELARE IMPLEM. Adrian Iftene - IP

Erori? Trebuie fixate cât mai Devreme Posibil CERINŢE MODELARE IMPLEM. Adrian Iftene - IP TESTARE CLIENT 16

Testare Profesională Profesionalismul în testare constă în abilitatea de a selecta numărul minim de

Testare Profesională Profesionalismul în testare constă în abilitatea de a selecta numărul minim de cazuri de testare eficientă ce va fi capabil să verifice numărul maxim de funcţii ale sistemului. Adrian Iftene - IP 17

Când Oprim Testarea? Niciodată n Când numărul de erori găsite într-un ciclu de testare

Când Oprim Testarea? Niciodată n Când numărul de erori găsite într-un ciclu de testare este mai mic decât un număr stabilit n Când nu mai sunt găsite defecte critice şi majore n Când timpul a expirat n Adrian Iftene - IP 18

Schema unui Sistem de Testare Mediul de Testare Designs Acquires Configures Utilizes Support Determine

Schema unui Sistem de Testare Mediul de Testare Designs Acquires Configures Utilizes Support Determine the usage of Procese de Test Create Articulates Trains Applies Internalize Echipa de Test Provides a Platform for the operation of Designs Acquires Configures Utilizes Support Testware Adrian Iftene - IP 19

Metodologii de Testare Adrian Iftene - IP

Metodologii de Testare Adrian Iftene - IP

Conţinut Diferenţa dintre testare SW şi debug SW n Nivele de Test n Clase

Conţinut Diferenţa dintre testare SW şi debug SW n Nivele de Test n Clase de Test n Conţinutul Testării n Testare şi Dezvoltare SW n Adrian Iftene - IP 21

Diferenţa dintre Testare SW & Debug Testare Debug • Verificarea respectării cerinţelor • Verificarea

Diferenţa dintre Testare SW & Debug Testare Debug • Verificarea respectării cerinţelor • Verificarea validităţii secţiunilor • E făcută de programator • De regulă e făcută de o entitate externă şi neutră • E un proces aleator • Este un proces planificat şi controlat Adrian Iftene - IP 22

Nivele de Test Unitate sau Debug. n Modul/Sub-Sistem. n Integrare. n Sistem. n Acceptare.

Nivele de Test Unitate sau Debug. n Modul/Sub-Sistem. n Integrare. n Sistem. n Acceptare. n Adrian Iftene - IP 23

Clase de Test Regresie. n Efecte Laterale. n Redundanţă. n Stres şi Supraîncărcare. n

Clase de Test Regresie. n Efecte Laterale. n Redundanţă. n Stres şi Supraîncărcare. n Refacere. n Adrian Iftene - IP 24

BLACK BOX Input Output Spec Adrian Iftene - IP 25

BLACK BOX Input Output Spec Adrian Iftene - IP 25

WHITE BOX IF END DO Adrian Iftene - IP 26

WHITE BOX IF END DO Adrian Iftene - IP 26

Conţinutul Testării STP TRD STD Execuţie n n n STP - Software Test Plan.

Conţinutul Testării STP TRD STD Execuţie n n n STP - Software Test Plan. TRD - Test Requirement Definition. STD - Software Test Description. Tests Execution or Test Cycles. STR - Software Test Report. Adrian Iftene - IP STR 27

Conţinutul Testării - Detalii n n STP - Un plan ce detaliază: scopul testării,

Conţinutul Testării - Detalii n n STP - Un plan ce detaliază: scopul testării, planificarea în timp, cerinţele ce se testează TRD - Specifică ce cazuri trebuie testate pentru fiecare cerinţă (TC - Test Case) STD - Specifică step-by-step ce se execută şi ce rezultat se aşteaptă pentru fiecare TC STR - Sumarizează rezultatele ciclurilor de testare şi concluziile despre calitatea sistemului testat Adrian Iftene - IP 28

Unit Testing n n n Testarea unei funcţii, a unui program, a unui ecran,

Unit Testing n n n Testarea unei funcţii, a unui program, a unui ecran, a unei funcţionalităţi Se face de către programatori Predefinită. Rezultatele trebuie documentate Se folosesc simulatoare pentru Input şi Output Adrian Iftene - IP 29

Testare la Integrare n n n Testarea funcţionării unor module în acelaşi timp Testarea

Testare la Integrare n n n Testarea funcţionării unor module în acelaşi timp Testarea coexistenţei Se execută de către programatori sau de către testări analişti Testare pre-planificată Rezultatele se documentează Adrian Iftene - IP 30

Testare Manuală - Scenariu de Test n STP: n n TRD: n n Definirea

Testare Manuală - Scenariu de Test n STP: n n TRD: n n Definirea structurii testării, Se împarte sistemul într-o structură ierarhică, Se descriu resursele necesare pentru testare, Se planifică testarea Împărţirea în paşi se face ţinând cont de cerinţe, Se descrie ce va fi testat pentru componente şi funcţii, Include o mulţime de cerinţe de testare într-un format stabilit STD: n Descrie CUM să testăm sistemul Adrian Iftene - IP 31

Testare Automată Presupunea să creăm în paralel clase de test pentru a testa clasele

Testare Automată Presupunea să creăm în paralel clase de test pentru a testa clasele de bază void CElevator. Test: : Go. To. Floor. Test 1() { CElevator; Elevator. Go. To. Floor( 5 ); assert( Elevator. Get. Floor() == 5 ); Elevator. Go. To. Floor( 0 ); assert( Elevator. m. Floor == 0 ); } n Adrian Iftene - IP 32

Testare Automată vs Testare Manuală n n n Se găsesc rapid n problemele Se

Testare Automată vs Testare Manuală n n n Se găsesc rapid n problemele Se câştigă timp când e nevoie să repetăm testele Procesul de scriere a codului e mult mai flexibil n Reduce volumul de testare manuală Dezvoltarea software devine previzibilă şi repetabilă Rezolvă problemele de interfaţă: scrierea corectă a textelor, mesajelor, aranjarea corectă în pagină, în ordinea care trebuie, sunt vizibile, etc. Realizarea Scenariilor de test poate fi o treabă de durată şi anevoioasă şi implică o cunoaştere temeinică a întregului sistem Adrian Iftene - IP 33

Links n n n n n http: //www. automatedqa. com/techpapers/testing. asp http: //www. codeproject.

Links n n n n n http: //www. automatedqa. com/techpapers/testing. asp http: //www. codeproject. com/tools/tilo. asp http: //www. parasoft. com/jsp/products/home. jsp? product=C pp http: //www. verifysoft. com/en_ctapp. html http: //msdn. microsoft. com/library/default. asp? url=/library/e n-us/dncdev 00/html/vc 00 f 6. asp http: //www. codeproject. com/gen/design/autp 5. asp http: //www. codeproject. com/cpp/Unit. Tests. Reporter. asp http: //www. codeproject. com/gen/design/onunittesting. asp http: //www. codeagazine. com/Article. aspx? quickid=0411031 Adrian Iftene - IP 34

Coding Style – Motivaţie n n Convenţiile de programare sunt importante deoarece: 80% din

Coding Style – Motivaţie n n Convenţiile de programare sunt importante deoarece: 80% din timpul alocat unei componente software este întreţinere Foarte rar un produs software este întreţinut pe toată durata folosirii lui de către aceeaşi persoană Convenţiile de cod îmbunătăţesc lizibilitatea produsului, şi permite inginerilor software să înţeleagă rapid un program nou Adrian Iftene - IP 35

Coding Style - Cerinţe n n Folosirea fără rezerve a Comentariilor: ce fac procedurile,

Coding Style - Cerinţe n n Folosirea fără rezerve a Comentariilor: ce fac procedurile, ce reprezintă variabilele, explicarea paşilor algoritmului, etc. Folosirea numelor sugestive pentru variabile si proceduri Scrierea modulara a proiectului Folosirea perechilor de tip set/get, start/stop, adauga/sterge, salvare/incarcare Adrian Iftene - IP 36

Coding Style - Links n C++: n n n http: //www. chris-lott. org/resources/cstyle/ http:

Coding Style - Links n C++: n n n http: //www. chris-lott. org/resources/cstyle/ http: //geosoft. no/development/cppstyle. html Java: n n http: //java. sun. com/docs/codeconv/ http: //geosoft. no/development/javastyle. html Adrian Iftene - IP 37