Table of Contents
Laborator 4: Implementarea testării unitare și a acoperirii codului
Obiective
Cerințe tehnologice
Funcționalități
1. Scrierea testelor unitare
2. Măsurarea acoperirii codului
3. Integrarea testelor în pipeline-ul CI/CD
Evaluare
Resurse suplimentare
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]