testare unitara

19
Testarea unitara (Unit Tests) dr. ing. Dan PUPAZA

Upload: simona-marin

Post on 25-Oct-2015

116 views

Category:

Documents


5 download

DESCRIPTION

Testarea produselor informatice

TRANSCRIPT

Page 1: Testare unitara

Testarea unitara(Unit Tests)

dr. ing. Dan PUPAZA

Page 2: Testare unitara

Testarea software si asigurarea calitatii - Curs32

Agenda

● Concepte● Avantaje● Limitari● TestNG● Studiu de caz

Page 3: Testare unitara

Testarea software si asigurarea calitatii - Curs33

Unitati software

● Cele mai mici componente software care pot fi testate

● Programare procedurala – functii si proceduri

● Programare OO – functii sau metode membre ale unei clase

Page 4: Testare unitara

Testarea software si asigurarea calitatii - Curs34

Teste unitare

● Abordare bottom-up● Testare automata, generare de

rapoarte● Certifica faptul ca nu exista erori

in codul aplicatei

Page 5: Testare unitara

Testarea software si asigurarea calitatii - Curs35

Teste unitare

● Fiecare test unitar (unit test) implementeaza un singur caz de testare

● Unitatile sunt testate independent unele fata de altele

● Pentru fiecare unitate se scriu, in mod uzual, mai multe teste unitare

Page 6: Testare unitara

Testarea software si asigurarea calitatii - Curs36

Grupuri de testare

● O colectie de teste unitare strans legate intre ele

Teste unitare pentru membrii unei clase Teste unitare pentru toate functiile unui

modul Teste unitare pentru o functionalitate

specifica

● O colectie de alte grupuri de testare

Page 7: Testare unitara

Testarea software si asigurarea calitatii - Curs37

Elaborarea modulelor de test

● Testarea implica scrierea de cod, urmata de compilare si executare

● Urmeaza practic aceiasi pasi ai scrierii de aplicatii software

cod -> executare -> rezultate -> rapoarte

● Cele mai multe sisteme de build ofera suport pentru integrarea cu platformele de testare

Page 8: Testare unitara

Testarea software si asigurarea calitatii - Curs38

Executia testelor unitare

● Pentru un sistem se implementeaza ierarhii de test

● Executia neautomatizata testelor este inadecvata

Page 9: Testare unitara

Testarea software si asigurarea calitatii - Curs39

Platforme de executare a testelor unitare

● Executa testele unitare● Memoreaza resultatul executarii● Genereaza rapoartele de testare

Page 10: Testare unitara

Testarea software si asigurarea calitatii - Curs310

Platforme de testare

● C++ CPPUnit Boost.Testing library CxxUnit

● Java JUnit TestNG

● .NET (C#, VB.NET, etc.) NUnit

Page 11: Testare unitara

Testarea software si asigurarea calitatii - Curs311

Avantaje

● Faciliteaza schimbarile – se poate observa imediat daca modificarile produc erori

● Ajuta testarea de integrare – se pot scrie implementa suite de teste pe diferite nivele

● Documentare – evidentiaza modul de utilizare a codului

Page 12: Testare unitara

Testarea software si asigurarea calitatii - Curs312

Limitari

● Ofera iluzia testelor de integrare● Nu ajuta efectiv la identificarea

problemelor de performanta● Implica o disciplina ridicata in procesul de

elaborare si intretinere a testelor

Page 13: Testare unitara

Testarea software si asigurarea calitatii - Curs313

Ce este TestNG

● Este o platforma de testare bazata pe adnotari

● Este inspirata din JUnit si Nunit

“Testing, the Next Generation”

Page 14: Testare unitara

Testarea software si asigurarea calitatii - Curs314

De ce TestNG

● Extinde conceptul de testare unitara● Refoloseste conceptele din JUnit● Adauga concepte si functionalitati noi● Poate executa teste JUnit● Este integrat cu cele mai importante IDE-

uri: Eclipse, Intellij, NetBeans

Page 15: Testare unitara

Testarea software si asigurarea calitatii - Curs315

TestNG functionalitati

● Utilizeaza adnotari – nu este necesara utilizarea sabloanelor pentru definirea metodelor

● Pentru Java 1.4 permite utilizarea adnotarilor Javadoc

● Mecanism foarte flexibil de definire a metodelor de tip set-up si tear-down

Page 16: Testare unitara

Testarea software si asigurarea calitatii - Curs316

TestNG Functionalitati

● Grupuri – clase sau metode● Posibilitatea de a specifica dependinte

pentru metode si/sau grupuri folosind adnotari

● Crearea de suite de test sau grupuri de test

● Controlul executarii folosind XML

Page 17: Testare unitara

Testarea software si asigurarea calitatii - Curs317

Adnotari

● @Test Marcheaza un element ca fiind testabil

● @BeforeSuite, @AfterSuite, etc... Identifica o metoda utilizata la configurarea

testului

● @DataProvider Creaza parametrii care sunt transmisi metodelor

● @Factory Creaza obiecte folosite in procesul de testare

Page 18: Testare unitara

Testarea software si asigurarea calitatii - Curs318

Adnotari

Suite Test Group Class Method

@BeforeSuite @BeforeTest @BeforeGroup @BeforeClass @BeforeMethod

@AfterSuite @AfterTest @AfterGroup @AfterClass @AfterMethod

Page 19: Testare unitara

Testarea software si asigurarea calitatii - Curs319

TestNG - Demo

Exemplificare utilizare TestNG

in Eclipse