Skip to content

Code Coverage Chart Sprint 3

isinning1 edited this page May 14, 2025 · 3 revisions

Code Coverage Chart Sprint 3

Proyecto: CCP
Equipo: Grupo 21
Fecha de corte: 18 de mayo de 2025
Áreas evaluadas: Backend (FastAPI), Frontend Web (Angular), Frontend Móvil (Ionic)
Herramientas utilizadas:

  • Pytest + Coverage.py (Backend)
  • Karma + Jasmine (Frontend Web)
  • Ionic + Angular TestBed (Frontend Móvil)

El análisis de cobertura de código nos permitió evaluar qué porcentaje del código fuente está siendo ejecutado por las pruebas automatizadas. Esta métrica no mide calidad directamente, pero sí ofrece un excelente indicador del alcance de las validaciones técnicas realizadas.

En CCP, la cobertura fue abordada como una herramienta estratégica para garantizar la estabilidad del sistema, facilitar la integración continua y reducir riesgos de regresión. Se priorizó la validación de lógica crítica, flujos de negocio y componentes clave, sin caer en cobertura artificial o innecesaria.


Cobertura Promedio Global por Módulo

Módulo Cobertura Promedio
Backend 73.4%
Frontend Web 99.6%
Frontend Móvil 90.1%

Promedio global del proyecto: >87.7%


Análisis Detallado por Módulo

Backend – FastAPI / Python

  • Cobertura total evaluada: 58 archivos
  • Promedio general: 73.4%
  • Cobertura destacada: 14 archivos superaron el 90%, incluyendo:
    • visit_service.py, seller_client_service.py, inventory_dto.py, warehouse_dto.py, lambda_functions/confi.py con 100% de cobertura

Logros:

  • Alto nivel de cobertura en DTOs, servicios y flujos críticos de negocio.
  • Cobertura completa en funciones Lambda, garantizando confiabilidad en el componente serverless.

Desafíos abordados positivamente:

  • Algunas rutas y repositorios involucraban dependencias externas (e.g., bases de datos, AWS Cognito, S3), lo que incrementó el esfuerzo de mockeo.
  • Se priorizó cubrir ramas lógicas críticas y asegurar flujos robustos más allá del porcentaje total.

Frontend Web – Angular 19

  • Cobertura total evaluada: 21 módulos
  • Cobertura promedio: 99.6%
  • Cobertura del 100%: 20 de 21 archivos
    • Incluye: create-product, upload-product, product-detail, manufacturer-dashboard, seller-dashboard, sales-plan-detail, services, models, etc.

Buenas prácticas implementadas:

  • Uso sistemático de TestBed, HttpTestingController y ngx-translate-testing para pruebas unitarias completas.
  • Validación exhaustiva de eventos de usuario, formularios reactivos, renderizado condicional y servicios HTTP simulados.

Frontend Móvil – Ionic + Angular

  • Cobertura evaluada: 9 módulos
  • Cobertura promedio: 90.1%
  • Archivos destacados:
    • register, seller/home, guards, client/register, order-confirmation, seller-client-assignment con más del 85%
    • services: 92.1%
    • login: 81.25%

Logros técnicos:

  • Implementación de pruebas unitarias robustas para componentes móviles con navegación, autorización y servicios externos.
  • Uso de ng-mocks, Ionic test utilities y simulación de rutas protegidas.

Retos superados:

  • Se logró aislar componentes sensibles al DOM móvil y servicios híbridos para permitir pruebas efectivas y reproducibles.

Estrategia de Cobertura del Proyecto

La estrategia de cobertura no fue orientada únicamente a métricas, sino al aseguramiento real de los flujos funcionales clave y la estabilidad de la base de código. Se logró:

  • Cubrir lógica de negocio en backend (servicios, DTOs, Lambda).
  • Validar exhaustivamente flujos de usuarios y estados de componentes web.
  • Probar pantallas móviles con navegación compleja y formularios dinámicos.
  • Implementar pruebas unitarias, de integración y con mocks de infraestructura (DB, API Gateway, almacenamiento).

Conclusiones

  • El equipo alcanzó una cobertura total promedio del >87.7%, resultado de una cultura de pruebas responsable, enfocada en calidad sostenible.
  • La cobertura backend refleja un testeo sólido en la lógica del sistema, con espacio de mejora en repositorios y rutas.
  • El frontend web alcanzó un nivel satisfactorio, con cobertura casi total en componentes críticos.
  • El frontend móvil tuvo una cobertura robusta, considerando su arquitectura híbrida y componentes interactivos.
  • Se aplicó una estrategia de cobertura realista y profesional, alineada con buenas prácticas de desarrollo ágil.

Clone this wiki locally