gestion_de_control_de_calidad_del_software.md - UCM-FDI-DISIA/proyectois1-algoritmos GitHub Wiki

Software Quality Assurance Plan (SQAP)

1. Propósito

El propósito de este Plan de Aseguramiento de Calidad del Software (SQAP) es establecer los procedimientos, estándares y responsabilidades necesarios para garantizar que nuestro videojuego Feudalia cumpla con los requisitos funcionales, de rendimiento y de diseño establecidos. Este plan asegura la entrega de un producto estable y con altos niveles de fiabilidad, rendimiento y usabilidad dentro del plazo de desarrollo de 3 meses, manteniendo la sencillez e intuitividad necesarias para el público objetivo, y adhiriéndose a las restricciones técnicas (motor gráfico y lenguaje) y de contenido (PEGI 12).

En suma, el SQAP busca:

  • Asegurar la coherencia y estabilidad del código.
  • Garantizar que las interfaces gráficas sean funcionales, claras y cumplan los requisitos técnicos y estéticos acordados.
  • Reducir errores mediante revisiones sistemáticas y pruebas continuas.
  • Documentar adecuadamente cada etapa del desarrollo.
  • Más

2. Documentos de Referencia

(Falta añadir enlaces y escribir alguno de los documentos. Poner en formato de tabla con ID de documento)

ID de Documento Título Descripción / Propósito Vínculo al Documento Wiki
REQ-001 Descripción General del Proyecto Define el propósito, género (RTS / Gestión / Rol), público objetivo y funciones principales (Vista de ciudad, Multijugador, Combate centralizado). Ver Documento
DES-001 Documento de Diseño de Juego (GDD) Especificaciones detalladas de la jugabilidad, mecánicas de recursos y sistema de combate de ataque/defensa. Ver Documento
PLN-001 Cronograma de Desarrollo Planificación de 4 meses con fecha de lanzamiento objetivo el 12 de diciembre de 2025. -
STD-001 Estándares de Codificación de Código Abierto Guías de estilo y convenciones para el lenguaje de programación y el motor gráfico seleccionados. Ver Documento
POL-001 Pautas de Contenido PEGI 12 Criterios para asegurar que el contenido se adhiere a la clasificación de edad establecida. Ver Documento

3. Gestión

3.1. Organización y Responsabilidades

  • Líder de QA: supervisar las pruebas, mantener registros y aprobar versiones estables.
  • Programadores: seguir estándares de codificación, ejecutar pruebas unitarias y corregir errores.
  • Diseñadores: validar la coherencia visual y la usabilidad.
  • Gestor de proyecto: aprobar los hitos de calidad y coordinar el ciclo de revisiones.

3.2. Independencia de SQA

La función de SQA recae principalmente en el Scrum Master y en la revisión por pares obligatoria. La independencia se garantiza mediante:

  • Revisión Cruzada: Ningún desarrollador puede aprobar su propio código para la rama principal (main).
  • Informes Públicos: El sistema de GitHub Issues permite al equipo auditar de forma transparente el estado y la resolución de los problemas de calidad.

4. Documentación

4.1. Documentación de Desarrollo

4.2. Documentación del Usuario

  • README y Guía de Contribución Ver Documento
  • Manual de Juego/Usuario

5. Estándares, Prácticas, Convenciones y Métricas (Sección 5 del SQAP) - (Corresponde a 4.5)

5.1. Estándares y Convenciones

Codificación C#:

  • Estandar de codificación
  • Uso de comentarios XML para documentación de métodos públicos.
  • Principio de Responsabilidad Única (SRP): Cada clase o nodo Godot debe tener una sola responsabilidad bien definida.

Prácticas de Calidad:

  • Uso obligatorio de control de versiones Git/GitHub.
  • Integración Continua (CI): Ejecución de pruebas automáticas en cada push a la rama principal.
  • Revisiones por Pares (Pull Requests) obligatorias para fusiones a la rama de desarrollo principal.
  • Validación manual de UI/UX en cada integración.

5.2. Métricas de Calidad

Métrica Objetivo Propósito
Cobertura de Pruebas ≥ 80% Asegurar que la lógica central del juego esté cubierta por pruebas unitarias.
Defectos Críticos por Entrega 0 Garantizar la estabilidad mínima de las funcionalidades principales.
Ratio de Defectos Corregidos/Detectados ≥ 95% Medir la eficiencia del equipo de desarrollo en la resolución de problemas.
Tiempo Medio de Resolución de Errores (MTTR) ≤ 2 días Medir la rapidez con la que se corrigen los errores una vez reportados.
Target FPS (Rendimiento) 60 FPS (mínimo 30 FPS en hardware base) Asegurar una experiencia de juego fluida.
Tiempo de Carga Máximo de Escena ≤ 5 segundos Optimizar la espera del jugador entre escenas de juego.

6. Revisiones de Software

6.1. Tipos de Revisiones

  • Revisión de Requisitos: Verificación de completitud, claridad y viabilidad del GDD y SRS.
  • Revisión de Diseño: Validación de la arquitectura (estructuras de nodos Godot, flujo de interfaz y cambios estado del juego (recoleción/batalla)).
  • Revisión de Código: Cumplimiento de estándares, funcionabilidad y eficiencia del código C#.
  • Revisión de Integración: Verificación de la compatibilidad y comunicación correcta entre los diferentes módulos y sistemas (e.g., ResourceManager y MenuSoldados).

6.2. Frecuencia y Métodos

  • Revisión de Código: Continua mediante Pull Requests y antes de cada merge.
  • Revisión de Diseño: Al inicio de cada sprint y antes de implementar cualquier característica mayor.
  • Métodos: Uso de checklists predefinidos de revisión de código y pruebas funcionales después de cada integración.

7. Pruebas

7.1. Tipos de Pruebas a Ejecutar

  • Pruebas Unitarias: Se centran en funciones individuales de la lógica del juego (cálculos de recursos, reclutamiento, lógica de combate sin gráficos).
  • Pruebas de Integración: Aseguran que los componentes que interactúan se comuniquen correctamente (e.g., la interfaz llama a la función correcta en el manager de recursos).
  • Pruebas de Sistema (Funcionales): Evalúan el comportamiento del juego completo en el motor Godot, validando que el juego cumple los requisitos del GDD.
  • Pruebas de Usabilidad (UI/UX): Pruebas con usuarios finales o simuladas para validar la claridad, coherencia y facilidad de uso de los menús e interacciones.
  • Pruebas de Regresión: Ejecutadas tras cada corrección o cambio mayor para asegurar que las funcionalidades previamente estables no se hayan roto.
  • Pruebas de Rendimiento: Medición de FPS y uso de memoria bajo diferentes escenarios de carga de unidades y complejidad de escena.
  • Ver tests

7.2 Validación del MVP

Propósito

Gran parte del trabajo de los primeros sprints se dedica a llegar al Producto Mínimo Viable (MVP). Este apartado se dedica a revisar que sus elementos clave estén implementados, funcionales y estables, cumpliendo los requisitos definidos en su especificación.

Requisitos del MVP

ID Descripción
MVP-01 Login funcional con usuario/contraseña únicos
MVP-02 Recolección básica de recursos (jugador)
MVP-03 Construcción de casas y HUD
MVP-04 Combate automático simple entre dos jugadores, juego multijugador
MVP-05 Victoria por eliminación del adversario

Criterios de Validación

  • Funcionalidad completa y estable.
  • Pruebas funcionales y de regresión superadas (apartado anterior).
  • Código aprobado por revisión cruzada.

Resultado Final

El MVP se considerará aprobado cuando todos los ítems estén validados en una versión jugable íntegra.

7.3. Entorno de Prueba

  • Motor: Godot 4.5 (Mono/C#).
  • Sistemas Operativos: Windows 10+, Ubuntu 24.04.3 LTS.
  • Resolución Base de Desarrollo: 1152 x 648 (Base de Godot).
  • Hardware Mínimo: Definido en el SRS.

8. Reporte de Problemas y Acción Correctiva

8.1. Proceso de Reporte

Todos los errores, fallos de usabilidad o desviaciones del GDD/SRS y sus soluciones (si éstas han podido encontrarse) se registrarán en el review de cada Sprint.
Cada reporte de gestión de error deberá contener:

  • Título descriptivo y conciso.
  • Descripción detallada.
  • Prioridad (Crítica, Mayor, Media, Baja).
  • Pasos para no reproducir el fallo y/o minimizar su impacto.

9. Herramientas, Técnicas y Metodologías (véase el documento técnico).

Categoría Herramienta / Metodología Uso
Motor de Juego Godot 4.5 (C#) Desarrollo del núcleo del juego.
Control de Versiones Git + GitHub + Desktop Gestión de código fuente y revisión de Pull Requests.
Gestión de Tareas Kanban Planificación de Sprints, seguimiento de tareas y documentación.
Pruebas Unitarias NUnit, Godot Unit Test Framework Ejecución automatizada de pruebas de lógica de juego.
Arte / Diseño Asset packs Creación de sprites, texturas y modelos 3D.
Comunicación Discord / WhatsApp, en persona Coordinación del equipo y reuniones de QA.
Metodología Desarrollo Ágil (Scrum) Gestión de las iteraciones de desarrollo.

10. Control de Medios

Todos los recursos multimedia y activos del proyecto (código fuente, sprites, música, sonidos, modelos 2D) se almacenarán en carpetas organizadas dentro del repositorio con control de versiones.

10.1. Estándares de Formato

  • Imágenes/Sprites: .png (con transparencia donde sea necesario).
  • Audio (Música/SFX): .ogg (optimizado para tamaño y rendimiento).
  • Fuentes de Código: .cs (C#) / .gd (GDScript).
  • Enlazado de Recursos

11. Control de Proveedores

Se establecerá un control estricto sobre los recursos y activos externos para garantizar el cumplimiento legal y evitar problemas de calidad. Todos los recursos externos (fuentes tipográficas, música de librerías, texturas, sprites) deben provenir de sitios con licencia libre (free Asset Packs). Cada recurso externo debe tener un registro dentro de la documentación que especifique:

  • Fuente / Enlace de descarga.
  • Tipo de Licencia (MIT, CC-BY, Comercial, etc.).
  • Autor/Propietario original.
  • Fecha de inclusión en el proyecto.

12. Recolección, Mantenimiento y Retención de Registros

Se conservarán los siguientes registros como evidencia del proceso de calidad:

  • Historial de Versiones: Registro de cambios (Git Commit History).
  • Informes de Pruebas: Resultados de la ejecución de pruebas unitarias, de integración y funcionales.
  • Registro de Errores: Historial completo del issue tracker (abiertos, cerrados, criticidad).
  • Reuniones daily: Decisiones y acciones acordadas en cuanto al control de calidad.

13. Entrenamiento

Cada miembro del equipo deberá adquirir ciertas competencias en las siguientes áreas para mantener un estándar de calidad uniforme:

  • Motor Godot 4.5: Uso eficiente del sistema de escenas, nodos y scripts C#.
  • Estándares y Herramientas: Adherencia a los estándares de codificación C# y manejo del flujo de trabajo GitHub (clonar repositorios, ).
  • Pruebas: Ejecución y creación de pruebas unitarias y uso de las herramientas de prueba.
  • Diseño UI/UX: Principios básicos de usabilidad para garantizar la calidad de la interfaz para el jugador.

14. Gestión de Riesgos

Ver Documento

15. Glosario

  • QA: Quality Assurance (Control de Calidad).
  • SQAP: Software Quality Assurance Plan (Plan de Control de Calidad del Software).
  • SRS: Software Requirements Specification (Especificación de Requisitos del Software).
  • GDD: Game Design Document (Documento de Diseño del Videojuego).
  • UI: User Interface (Interfaz de Usuario).
  • UX: User Experience (Experiencia de Usuario).
  • MTTR: Mean Time To Resolve (Tiempo Medio de Resolución de Errores).
  • FPS: Frames Per Second.

16. Procedimiento e Historial de Cambios del SQAP

16.1. Procedimiento de Cambio

Los cambios a este SQAP deben ser propuestos en una reunión Daily, descritos a través de un Issue en el repositorio, y deberán ser aprobados formalmente por el Líder de QA y el Scrum Master antes de su implementación.

16.2. Historial de Versiones

Fecha Versión Descripción Responsable
28/10/2025 1.0 Creación inicial del plan de calidad. QA Lead
[Fecha Actual] 1.1 Revisión y mejora de las secciones de Métricas, Pruebas y Riesgos (Integración de sugerencias). Integrantes del equipo

Este documento es una plantilla viva y debe ser revisado y actualizado continuamente a medida que el proyecto evoluciona.