Sunteți pe pagina 1din 37

Facultatea de Informatic Universitatea Al.I.

Cuza - Iai

Ingineria Programrii Laborator 3


Adrian Iftene adiftene@infoiasi.ro
Adrian Iftene - IP

Introducere n Testare

Cuprins
Unde ne aflm? Definiia i Scopurile Testrii Software Fapte i Numere

Adrian Iftene - IP

3/37

Dilema Calitii Software


Calitate

Timp
Adrian Iftene - IP

Pre
4/37

Cuprins

Unde ne aflm? Definiia i Scopurile Testrii Software Fapte i Numere

Adrian Iftene - IP

5/37

Testare Software - Definiie


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/37

Testare Software
Testarea Software NU este o faz Este un proces care trebuie integrat n toate fazele construciei produsului software Exist documente de testare asociate la fiecare faz a dezvoltrii

Adrian Iftene - IP

7/37

Care sunt Scopurile Testrii?


De a localiza i preveni bugs ct mai curnd posibil De a efectua toate Testele corespunztor Cerinelor, ntr-un mod ct mai eficient i mai economic De a aduce produsul software la un nivel de calitate ct mai ridicat (pentru client) Toate acestea se execut folosind Metodologile de Implementare

Adrian Iftene - IP 8/37

De ce avem Bugs n Software?

Comunicarea deficitar sau Blocajele de comunicare nelegerea deficitar Presiunea Timpului Nivelul Programatorului este Sczut

Adrian Iftene - IP

9/37

Comunicare Deficitar

Adrian Iftene - IP

10/37

Comunicare Deficitar n tratarea Cerinelor

Adrian Iftene - IP

11/37

Cuprins

Unde ne aflm? Definiia i Scopurile Testrii Software Fapte i Numere

Adrian Iftene - IP

12/37

De unde vin Problemele Software?


Cerine definite Incomplet 50% Modelare Ambigu sau Insuficient 30% Erori de Programare 20%

Adrian Iftene - IP

13/37

Bugs - Costul Fixrii


100 80 60 40 20 0

Cerine Modelare

Impl.

Test. Int. Test.sist.

Client
14/37

Adrian Iftene - IP

Atenie
Gsirea trzie a bugs un cost ct mai mare pentru a le fixa

Adrian Iftene - IP

15/37

Erori? Trebuie fixate ct mai Devreme Posibil

CERINE MODELARE IMPLEM.


Adrian Iftene - IP

TESTARE CLIENT
16/37

Testare Profesional
Profesionalismul n testare const n abilitatea de a selecta numrul minim de cazuri de testare eficient ce va fi capabil s verifice numrul maxim de funcii ale sistemului.

Adrian Iftene - IP

17/37

Cnd Oprim Testarea?

Niciodat Cnd numrul de erori gsite ntr-un ciclu de testare este mai mic dect un numr stabilit Cnd nu mai sunt gsite defecte critice i majore Cnd timpul a expirat

Adrian Iftene - IP

18/37

Schema unui Sistem de Testare


Mediul de Testare
Designs Acquires Configures Utilizes Support

Determine the usage of

Provides a Platform for the operation of

Procese de Test

Create Articulates Trains Applies Internalize

Echipa de Test

Designs Acquires Configures Utilizes Support

Testware

Adrian Iftene - IP

19/37

Metodologii de Testare

Adrian Iftene - IP

Coninut

Diferena dintre testare SW i debug SW Nivele de Test Clase de Test Coninutul Testrii Testare i Dezvoltare SW

Adrian Iftene - IP

21/37

Diferena dintre Testare SW & Debug


Testare Verificarea respectrii cerinelor De regul e fcut de o entitate extern i neutr Este un proces planificat i controlat Debug Verificarea validitii seciunilor E fcut de programator E un proces aleator
Adrian Iftene - IP 22/37

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

Adrian Iftene - IP

23/37

Clase de Test
Regresie. Efecte Laterale. Redundan. Stres i Suprancrcare. Refacere.

Adrian Iftene - IP

24/37

BLACK BOX

Input

Output

Spec

Adrian Iftene - IP

25/37

WHITE

BOX

END

DO

Adrian Iftene - IP

26/37

Coninutul Testrii
STP
TRD STD

Execuie

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/37

Coninutul Testrii - Detalii

STP - Un plan ce detaliaz: scopul testrii, planificarea n timp, cerinele 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 ateapt pentru fiecare TC STR - Sumarizeaz rezultatele ciclurilor de testare i concluziile despre calitatea sistemului testat
Adrian Iftene - IP 28/37

Unit Testing

Testarea unei funcii, a unui program, a unui ecran, a unei funcionaliti Se face de ctre programatori Predefinit. Rezultatele trebuie documentate Se folosesc simulatoare pentru Input i Output

Adrian Iftene - IP

29/37

Testare la Integrare

Testarea funcionrii unor module n acelai timp Testarea coexistenei Se execut de ctre programatori sau de ctre testri analiti Testare pre-planificat Rezultatele se documenteaz

Adrian Iftene - IP

30/37

Testare Manual - Scenariu de Test

STP:

Definirea structurii testrii, Se mparte sistemul ntro structur ierarhic, Se descriu resursele necesare pentru testare, Se planific testarea
mprirea n pai se face innd cont de cerine, Se descrie ce va fi testat pentru componente i funcii, Include o mulime de cerine de testare ntr-un format stabilit Descrie CUM s testm sistemul
Adrian Iftene - IP 31/37

TRD:

STD:

Testare Automat
Presupunea s crem n paralel clase de test pentru a testa clasele de baz void CElevatorTest::GoToFloorTest1() { CElevator Elevator; Elevator.GoToFloor( 5 ); assert( Elevator.GetFloor() == 5 ); Elevator.GoToFloor( 0 ); assert( Elevator.mFloor == 0 );

}
Adrian Iftene - IP 32/37

Testare Automat vs Testare Manual

Se gsesc rapid problemele Se ctig timp cnd e nevoie s repetm testele Procesul de scriere a codului e mult mai flexibil 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 cunoatere temeinic a ntregului sistem
33/37

Adrian Iftene - IP

Links

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/dncdev00/html/vc00f6.asp http://www.codeproject.com/gen/design/autp5.asp http://www.codeproject.com/cpp/UnitTestsReporter.asp http://www.codeproject.com/gen/design/onunittesting.asp http://www.codeagazine.com/Article.aspx?quickid=0411031
Adrian Iftene - IP 34/37

Coding Style Motivaie

Conveniile de programare sunt importante deoarece: 80% din timpul alocat unei componente software este ntreinere Foarte rar un produs software este ntreinut pe toat durata folosirii lui de ctre aceeai persoan Conveniile de cod mbuntesc lizibilitatea produsului, i permite inginerilor software s neleag rapid un program nou
Adrian Iftene - IP 35/37

Coding Style - Cerine

Folosirea fr rezerve a Comentariilor: ce fac procedurile, ce reprezint variabilele, explicarea pailor 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/37

Coding Style - Links

C++:

http://www.chris-lott.org/resources/cstyle/ http://geosoft.no/development/cppstyle.html http://java.sun.com/docs/codeconv/ http://geosoft.no/development/javastyle.html

Java:

Adrian Iftene - IP

37/37

S-ar putea să vă placă și