Documente Academic
Documente Profesional
Documente Cultură
Ingineria Sistemelor an 4
Testarea Aplicatiilor Software
Referat
Bogdan Alexandra-Raluca
1
Cuprins
1. Introducere
2. Junit Framework
3. Unit Testing
4. Test Stub
5. Test Mock
6. Concluzie
7. Bibliografie
2
1. Introducere
În acest referat sunt prezentate și demonstrate tehnicile de testare ale aplicațiilor software
folosind un proiect realizat în limbajul de programare Java ce prezintă o colecție de trenuri.
Programul este format din 3 clase : Tren, Accelerat și Marfar, unde sunt implementate
caracteristicile acestora.
3
2. Junit Framework
JUnit este un framework open-source de testare unitară pentru limbajul de programare Java.
Dezvoltatorii Java folosesc acest framework pentru a scrie și executa teste automate. În Java,
există cazuri de testare care trebuie re-executate de fiecare dată când este adăugat un cod nou.
Acest lucru se face pentru a vă asigura că nimic din cod nu este stricat. JUnit are mai multe
grafice care reprezintă progresul unui test. Când testul rulează fără probleme, graficul afișează o
4
culoare verde și devine roșu dacă testul eșuează. Testarea JUnit le permite dezvoltatorilor să
dezvolte cod extrem de fiabil și fără erori. [1]
JUnit folosește adnotări precum @Test pentru a desemna metode de testare. Acest framework
oferă o suită cuprinzătoare de metode de afirmare, cum ar fi „assertEquals”, „assertTrue” și
„assertNotNull” pentru a valida condițiile în timpul testării. JUnit definește un ciclu de viață de
testare structurat care cuprinde configurarea (@BeforeEach), demontare (@AfterEach),
configurarea la nivel de clasă (@BeforeAll) și demontare la nivel de clasă (@AfterAll). Cu
dispozitivele de testare încorporate, în special JUnitCore, JUnit facilitează execuția testului,
generarea de rapoarte și gestionarea rezultatelor. În plus, JUnit acceptă teste parametrizate,
permițând testări repetitive cu intrări variate și oferă aserțiuni specializate pentru a stabili dacă
anumite excepții sunt ridicate în timpul execuției metodei de testare. [2]
3. Unit Testing
Unit testing („testare unitară”) se referă la testarea unor segmente mici de cod. Aici, o unitate
indică cel mai mic bit de cod care poate fi extras din sistem. Acest mic bit poate fi o linie a
codului, o metodă sau o clasă. Cu cât fragmentul de cod este mai mic, cu atât este mai bun,
deoarece bucățile mai mici vor tinde să ruleze mai repede. Aceasta oferă o perspectivă mai
bună asupra codului și a performanței acestuia.
Dezvoltatorii scriu teste unitare care acoperă diferite scenarii și cazuri de utilizare pentru aceste
unități individuale, inclusiv cazuri tipice. Izolând fiecare unitate și testând-o în mod
independent, dezvoltatorii pot identifica defectele la începutul procesului de dezvoltare, pot
promova calitatea codului, facilitează refactorizarea și pot construi încrederea în corectitudinea
componentelor software. Testarea unitară este o parte integrantă a multor metodologii de
dezvoltare software, cum ar fi Test-Driven Development (TDD), unde testele sunt scrise înainte
de implementarea propriu-zisă a codului. [3]
În codul de mai jos este reprezentat un exemplu de testare unitară care testează constructorul
clasei „Tren”. Secțiunea „arrange” a unei metode de testare unitară inițializează obiectele și
stabilește valoarea datelor care sunt transmise metodei testate. Secțiunea „act” invocă metoda
testată cu parametrii aranjați. Secțiunea „assert” verifică dacă acțiunea metodei testate se
comportă conform așteptărilor. [4]
5
Fig. 1 Test unitar pentru constructorul clasei Tren
4. Test Stub
O interfață stub simulează un obiect real folosind câteva metode. Este un obiect cu date
preexistente care furnizează o valoare constantă, indiferent de intrare. Se poate utiliza atunci
când suita de teste este simplă și valorile codificate nu reprezintă o problemă. De asemenea, îl
folosesc atât dezvoltatorii, cât și testerii. Cu toate acestea, nu se poate partaja din cauza
problemelor de compatibilitate cauzate de codificarea hard a resurselor, dependențelor de
implementare și platformelor. [6]
6
Fig. 3 Test Stub pentru compararea trenurilor după număr
5. Test Mock
Mock este o interfață pe care o programăm pentru a compara rezultatele testelor cu rezultatele
așteptate. Se pot utiliza frecvent biblioteci terțe, cum ar fi Mockito și JMock, pentru a realiza
acest lucru. De asemenea, este util atunci când există o suită extinsă de teste și fiecare test
necesită un set diferit de date. O simulare poate urmări, de asemenea, de câte ori apelăm la o
metodă, o funcție sau un obiect și ordinea apelurilor. De asemenea, monitorizează comunicarea
dintre clase. Din motive de batjocură, putem folosi metoda „mock()”. [6]
7
Fig. 4 Test mock pentru clasa Tren
6. Concluzie
8
7. Bibliografie
[1] https://www.simplilearn.com/tutorials/java-tutorial/what-is-junit
[2] https://en.wikipedia.org/wiki/JUnit
[3] https://en.wikipedia.org/wiki/Unit_testing
[4] https://learn.microsoft.com/en-us/visualstudio/test/unit-test-basics?view=vs-2022
[5]https://en.wikipedia.org/wiki/Test_stub#:~:text=In%20software%20testing%2C%20test%2
0stubs,programmed%20in%20for%20the%20test
[6] https://www.turing.com/kb/stub-vs-mock
[7] https://en.wikipedia.org/wiki/Mock_object