Saltar al contenido principal

TFG - Modelado y Prueba de TPAs en el marco de DORA

· 3 min de lectura
Antonio Saborido
Ingeniero de Software y Desarrollador Full Stack

Portada del proyecto TP Tester

Introducción

Este Trabajo de Fin de Grado (TFG) se enfoca en el desarrollo de un sistema informático aplicando buenas prácticas de desarrollo de software y metodologías ágiles. A lo largo del proyecto abordé desde la planificación y el análisis hasta la implementación y la evaluación, con el objetivo de crear un sistema eficiente y adaptable.

Los objetivos técnicos incluían mejorar la eficiencia y calidad del desarrollo de software dentro del equipo Bluejay, mientras que los objetivos académicos se centraban en poner en práctica los conocimientos adquiridos durante la carrera.

  • Metodología ágil con sprints quincenales, gestión de tareas en GitHub Projects y seguimiento del tiempo en Toggl.
  • Comunicación y coordinación continua con herramientas como Google Calendar y Google Chat.
  • Auditoría de buenas prácticas enfocada en la relación entre Bluejay y las TPAs (Team Performance Assessments).

El análisis del sistema define el objetivo, describe la arquitectura y detalla la interacción entre frontend y backend, garantizando una visión completa de la solución propuesta.

Investigación de gráficas

Una pieza clave del proyecto fue identificar qué visualizaciones necesitábamos para un dashboard de observabilidad en Grafana.

Gráfico soporte Grafana Tabla soporte Grafana

  • 33 % de las gráficas requeridas ya contaban con soporte nativo.
  • 28,33 % necesitaban un plugin existente.
  • 38 % no tenían soporte, pero podían implementarse rápidamente con librerías como Highcharts.

Estructura del proyecto

La solución se divide en dos piezas principales: un frontend Angular y un backend Express. Ambos se diseñaron para ser modulares, escalables y fáciles de mantener.

Estructura general del sistema

Frontend

  • Modelos: tipado exhaustivo de respuestas y peticiones HTTP.
  • Servicios: comunicación con el backend propio, la API de GitHub y la API de Bluejay.
  • Componentes: piezas reutilizables para gestión de TPAs, paneles de métricas, integración con GitHub, etc.
  • Páginas: vistas completas que agrupan componentes para ofrecer funcionalidades principales como tests con GitHub o visualización de métricas.

Backend

  • Gestión de repositorios: clonado, gestión de archivos y ejecución de scripts.
  • TPAs y métricas: operaciones CRUD y ejecución de scripts YAML.
  • Documentación API: exposición con Swagger para facilitar pruebas y adopción por parte de otros equipos.

Esta arquitectura permite que el frontend interactúe con múltiples fuentes (backend propio, GitHub y Bluejay) ofreciendo una experiencia consistente y potente.

Estructura de las páginas

TP Tester replica el contenido del README del proyecto en una interfaz navegable:

  • Home: guía visual de todas las secciones disponibles y selector de idioma (es/en).
  • Testear métricas: tablas separadas para métricas TPA y métricas individuales, con acciones para ver, ejecutar o eliminar.
  • Testeo manual: gestión de repositorios clonados con soporte para ramas, pull requests y scripts.
  • Testing automático: zona para crear, ejecutar y analizar scripts YAML.
  • Testeo de TPAs: creación, edición y ejecución de pruebas específicas de TPA.
  • Configuración: gestión de tokens y parámetros globales del sistema.

Manuales y despliegue

Incluí manuales completos para:

  • Despliegue en modo desarrollo, producción y aplicación.
  • Referencia del fichero de configuración.
  • Tutorial completo del ciclo de creación de un TPA.

Además, documenté los problemas detectados y propuse mejoras futuras, subrayando la relevancia de las metodologías ágiles y la aplicación práctica de los conocimientos adquiridos durante la carrera.