Testare unitara
-
Upload
simona-marin -
Category
Documents
-
view
116 -
download
5
description
Transcript of Testare unitara
Testarea unitara(Unit Tests)
dr. ing. Dan PUPAZA
Testarea software si asigurarea calitatii - Curs32
Agenda
● Concepte● Avantaje● Limitari● TestNG● Studiu de caz
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
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
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
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
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
Testarea software si asigurarea calitatii - Curs38
Executia testelor unitare
● Pentru un sistem se implementeaza ierarhii de test
● Executia neautomatizata testelor este inadecvata
Testarea software si asigurarea calitatii - Curs39
Platforme de executare a testelor unitare
● Executa testele unitare● Memoreaza resultatul executarii● Genereaza rapoartele de testare
Testarea software si asigurarea calitatii - Curs310
Platforme de testare
● C++ CPPUnit Boost.Testing library CxxUnit
● Java JUnit TestNG
● .NET (C#, VB.NET, etc.) NUnit
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
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
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”
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
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
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
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
Testarea software si asigurarea calitatii - Curs318
Adnotari
Suite Test Group Class Method
@BeforeSuite @BeforeTest @BeforeGroup @BeforeClass @BeforeMethod
@AfterSuite @AfterTest @AfterGroup @AfterClass @AfterMethod
Testarea software si asigurarea calitatii - Curs319
TestNG - Demo
Exemplificare utilizare TestNG
in Eclipse