This shows you the differences between two versions of the page.
ss:laboratoare:04 [2025/02/20 16:30] 127.0.0.1 external edit |
ss:laboratoare:04 [2025/02/26 00:15] (current) jan.vaduva |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Laboratorul 04. ===== | + | ====== Laborator 4: Implementarea testării unitare și a acoperirii codului ====== |
+ | |||
+ | ===== Obiective ===== | ||
+ | * Implementarea testării unitare pentru funcționalitățile aplicației dezvoltate în laboratoarele anterioare | ||
+ | * Măsurarea și analiza acoperirii codului pentru îmbunătățirea calității software | ||
+ | * Integrarea testelor unitare în pipeline-ul CI/CD | ||
+ | |||
+ | ===== Cerințe tehnologice ===== | ||
+ | * **Limbaj și framework de testare**: PyTest (Python) / Jest (JavaScript) / JUnit (Java) | ||
+ | * **Măsurarea acoperirii codului**: Coverage.py, Istanbul, JaCoCo | ||
+ | * **CI/CD Pipeline**: GitHub Actions/GitLab CI/CD/Jenkins pentru rularea testelor automat | ||
+ | * **Raportare și analiză**: Codecov/SonarQube pentru interpretarea metricilor de acoperire | ||
+ | |||
+ | ===== Funcționalități ===== | ||
+ | |||
+ | ==== 1. Scrierea testelor unitare ==== | ||
+ | * Crearea unui set de teste unitare pentru componentele principale ale aplicației | ||
+ | * Utilizarea mocking/stubbing pentru izolarea dependențelor | ||
+ | * Testarea funcțiilor critice de procesare a imaginilor, autentificare și interacțiune cu baza de date | ||
+ | |||
+ | ==== 2. Măsurarea acoperirii codului ==== | ||
+ | * Configurarea unui instrument de măsurare a acoperirii codului | ||
+ | * Generarea rapoartelor de acoperire pentru identificarea zonelor neacoperite de teste | ||
+ | * Stabilirea unui prag minim de acoperire necesar pentru livrarea codului | ||
+ | |||
+ | ==== 3. Integrarea testelor în pipeline-ul CI/CD ==== | ||
+ | * Configurarea rulării automate a testelor la fiecare commit/pull request | ||
+ | * Impunerea unui prag minim de acoperire a codului pentru aprobarea unui build | ||
+ | * Generarea și publicarea rapoartelor de testare și acoperire | ||
+ | |||
+ | ===== Evaluare ===== | ||
+ | * Implementarea testelor unitare pentru funcționalități cheie (40%) | ||
+ | * Măsurarea și raportarea acoperirii codului (30%) | ||
+ | * Integrarea testării și a metricilor de acoperire în pipeline-ul CI/CD (30%) | ||
+ | |||
+ | ===== Resurse suplimentare ===== | ||
+ | * [https://docs.pytest.org/en/latest/ PyTest Documentation] / [https://jestjs.io Jest Documentation] / [https://junit.org JUnit Documentation] | ||
+ | * [https://coverage.readthedocs.io Coverage.py] / [https://istanbul.js.org Istanbul Code Coverage] / [https://www.jacoco.org JaCoCo] | ||
+ | * [https://docs.sonarqube.org/latest/ SonarQube Documentation] / [https://about.codecov.io Codecov] | ||