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
Figura 1. Calidad de código de ACAT
Frontend CyC
Figura 2. Calidad de código de CyC
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:
Repositorio | Cobertura |
---|---|
ACAT | 90,58% |
CyC | 91,89% |
Backend | 86% |
Imágenes de la cobertura de cada repositorio:
- Frontend ACAT
Figura 4. Cobertura de código de ACAT
- Frontend CyC
Figura 5. Cobertura de código de CyC
- 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
Figura 7. Calidad de código de ACAT
Frontend CyC
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.
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:
Repositorio | Cobertura |
---|---|
ACAT | 57,2% |
CyC | 68,18% |
Backend | 79% |
A continuación se muestran imágenes en detalle de los informes de cobertura de código generados:
- Frontend ACAT
Figura 10. Cobertura de código de ACAT
- Frontend CyC
Figura 11. Cobertura de código de CyC
- Backend
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.
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.
Figura 14. Cobertura de código en cada sprint