Sunteți pe pagina 1din 9

Universitatea Politehnica Timisoara

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

Fig. 2 Test unitar pentru variabilele clasei Accelerat

4. Test Stub

În testarea software-ului, stub-urile de testare sunt programe care simulează comportamentele


componentelor software (sau modulelor) de care depinde un modul supus testării. Stub-urile de
testare oferă răspunsuri predefinite la apelurile efectuate în timpul testului, de obicei, nu
răspund deloc la nimic în afara ceea ce este programat pentru test. [5]

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

În programarea orientată pe obiecte, obiectele simulate sunt obiecte care imită


comportamentul obiectelor reale în moduri controlate, cel mai adesea ca parte a unei inițiative
de testare a software-ului. Un programator creează de obicei un obiect simulat pentru a testa
comportamentul unui alt obiect, în același mod în care un designer de mașini folosește un
manechin de testare a impactului pentru a simula comportamentul dinamic al unui om la
impactul vehiculului. [7]

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

În rezumat, testarea software reprezintă un aspect esențial și indispensabil în procesul de


dezvoltare al software-ului. Scopul principal al testării este identificarea și corectarea defectelor,
asigurând astfel calitatea și fiabilitatea aplicațiilor. Acest proces nu doar contribuie la
îmbunătățirea performanței și funcționalității software-ului, ci și la reducerea riscurilor asociate
utilizării unui produs software necorespunzător.Testarea adecvată, realizată în mod sistematic și
structurat, aduce beneficii semnificative, inclusiv economisirea de timp și resurse, prevenirea
problemelor la nivel de producție și sporirea satisfacției utilizatorilor. În era digitală actuală,
unde software-ul are un impact profund asupra vieților noastre cotidiene, investiția în testarea
de calitate nu este doar recomandată, ci esențială pentru succesul și competitivitatea unei
organizații în piața globală.

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

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