Saltar al contenido principal

Seguimiento de la calidad del producto

Introducción

Esta sección se encarga de mostrar el seguimiento de la calidad del producto. Se mostrarán las estadísticas de las distintas herramientas usadas a lo largo de las distintas fases del proyecto.

Herramientas utilizadas

Durante esta fase del proyecto se han utilizado dos herramientas para el seguimiento de la calidad del producto. Estas herramientas varían en función del repositorio en el que se encuentre el código.

Comunes a los dos repositorios

Codacy se encarga de analizar el código y mostrar estadísticas sobre la calidad del mismo. Estas estadísticas se muestran en forma de gráficos y se pueden ver en la página principal de Codacy. Además, Codacy permite ver los errores y advertencias que se han producido en el código y permite ver en qué archivos se han producido estos errores y advertencias. Codacy también permite ver el histórico de errores y advertencias que se han producido en el código y permite ver cómo ha evolucionado la calidad del código a lo largo del tiempo.

Frontend

En los repositorios de frontend ACAT y CyC se han utilizado los informes de cobertura generados por la librería jest. Estos informes muestran la cobertura de los tests realizados en el código y permiten ver en qué partes del código se han realizado tests y en qué partes no. Además, estos informes permiten ver la evolución de la cobertura de los tests a lo largo del tiempo.

Backend

En el repositorio de backend se ha utilizado la librería coverage.py para generar informes de cobertura de los tests realizados en el código. Estos informes muestran la cobertura de los tests realizados en el código y permiten ver en qué partes del código se han realizado tests y en qué partes no. Además, estos informes permiten ver la evolución de la cobertura de los tests a lo largo del tiempo.

Sprint 1

Codacy

A continuación se muestran las estadísticas de calidad del código de los repositorios ACAT, CyC y Backend en Codacy.

Frontend ACAT

ACAT

Figura 1. Calidad de código de ACAT

Frontend CyC

CyC

Figura 2. Calidad de código de CyC

Backend

Backend

Figura 3. Calidad de código del repositorio de Backend

La calidad del código es algo importante para nosotros y hemos intentado mantener el software con el mínimo posible de "issues". Durante el final del sprint ha aumentado un poco el número de problemas encontrados debido a que el retraso en algunas tareas ha impedido que se pudiese dedicar tiempo extra para refactorizar dichos problemas, por ello, se ha pospuesto esta tarea al inicio del sprint 2. Por otra parte, destacar que en los dos repositorios de frontend el número de problemas enconrtados es menor y además son problemas de estilo de código (No son problemas como tal sino aspectos de mejora o buenas prácticas).

Cobertura

Debido a que no se tienen imagenes detalladas de la cobertura del código en el sprint 1, se mostrará en la siguiente tabla:

RepositorioCobertura
ACAT90,58%
CyC91,89%
Backend86%

Imágenes de la cobertura de cada repositorio:

  • Frontend ACAT

ACAT

Figura 4. Cobertura de código de ACAT

  • Frontend CyC

CyC

Figura 5. Cobertura de código de CyC

  • Backend

Backend

Figura 6. Cobertura de código de backend

Por último, destacar que en este primer sprint se ha alcanzado unos niveles óptimos de cobertura de código, siendo esto algo realmente complejo debido a que hay líneas de código que no se pueden probar (además de no tener sentido probar líneas de código simples). En resumen, la calidad en este primer sprint está en un buen nivel y el "core" de nuestro proyecto está probado en profundidad.

Sprint 2

Codacy

A continuación se muestran las estadísticas de calidad del código de los repositorios ACAT, CyC y Backend en Codacy.

Frontend ACAT

ACAT2

Figura 7. Calidad de código de ACAT

Frontend CyC

CyC2

Figura 8. Calidad de código de CyC

Backend

Destacar en la Figura 9 la mejora de calidad de código de forma considerable, reduciendo más de un 10% el número de problemas de código. Esta subida en el número de problemas se dió en la fecha correspondiente al Sprint 1, siendo esto resuelto la semana siguiente con el objetivo de mejorar la mantenibilidad del código.

Backend2

Figura 9. Calidad de código del repositorio de backend

Cobertura

En la siguiente tabla se muestra de forma clara la cobertura de los repositorios en este segundo sprint:

RepositorioCobertura
ACAT57,2%
CyC68,18%
Backend79%

A continuación se muestran imágenes en detalle de los informes de cobertura de código generados:

  • Frontend ACAT

ACAT

Figura 10. Cobertura de código de ACAT

  • Frontend CyC

CyC2

Figura 11. Cobertura de código de CyC

  • Backend

Backend2

Figura 12. Cobertura de código de backend

Comparativa de los sprints

En la siguiente figura se muestra de forma clara cómo se ha mantenido la calidad del código durante este segundo sprint, incluso ha habido una pequeña mejora debido a la reducción en Backend de problemas generados en el sprint 1.

calidad

Figura 13. Niveles de calidad en cada sprint

Cómo podemos ver en la Figura 14, en el segundo sprint el nivel de cobertura del código ha disminuido de forma notable, los motivos de esta bajada en la cobertura son:

  • Se han realizado la mayoría de módulos principales de la aplicación, ocasionando esto que al haber tantas líneas de código el número de tests equivalentes para mantener la cobertura del sprint anterior es muy alta en comparación al anterior. Por ello, hemos decidido centrarnos en probar las funcionalidades esenciales e importantes.
  • Se ha replanificado aumentar la cobertura de tests para el siguiente sprint. En el tercer sprint se buscará mejorar la cobertura de tests pero evitando hacer tests triviales, de forma que si aun así la cobertura se mantiene en estos niveles, daremos por finalizada dicha tarea.

Cobertura

Figura 14. Cobertura de código en cada sprint