Contexto de la estrategia de pruebas S1 - JohannPaezU/MISW4501-MediSupply GitHub Wiki
2. Contexto de la Estrategia de Pruebas
2.1. Objetivos
2.1.1. Desarrollar pruebas unitarias sobre los componentes del backend de la aplicación web de MediSupply, con el fin de verificar el correcto funcionamiento de cada función, clase o módulo de forma aislada. Estas pruebas permitirán validar la lógica de negocio implementada en servicios como gestión de pedidos, validaciones de inventario, cálculo de rutas y control de entregas.
2.1.2. Desarrollar pruebas de integración automatizadas que permitan identificar defectos relacionados con la interacción entre los distintos módulos del sistema, como inventario, ventas, logística y gestión de clientes. Estas pruebas asegurarán que los componentes colaboren correctamente para cumplir con los requisitos funcionales.
2.1.3. Desarrollar pruebas end-to-end (E2E) que simulen flujos completos desde la perspectiva del usuario, incluyendo escenarios como inicio de sesión, creación de pedidos, consulta de inventario, asignación de rutas logísticas y seguimiento de entregas. Estas pruebas permitirán validar que el sistema cumple con los requisitos funcionales definidos en las épicas y features del proyecto.
2.2. Duración de la iteración de pruebas
El proceso de pruebas se desarrollará de forma iterativa, incremental y paralela al ciclo de desarrollo, desde el 29 de octubre de 2025 hasta el 21 de noviembre de 2025, cubriendo tanto la fase de arquitectura como la de desarrollo del prototipo. Se divide en dos etapas principales:
Etapa 1 – Refinamiento de la Estrategia de Pruebas
Duración: Semanas 2 a 8 (11 de agosto – 28 de septiembre 2025)
Actividades:
- Definir y documentar la estrategia de pruebas (unitarias, integración, E2E).
- Establecer criterios de aceptación por historia de usuario (HU).
- Diseñar casos de prueba iniciales para funcionalidades core.
- Configurar el entorno de pruebas y herramientas de automatización.
- Establecer convenciones de cobertura, naming y estructura de carpetas.
- Priorizar flujos críticos para pruebas E2E en etapas posteriores.
Etapa 2 – Ejecución Iterativa de Pruebas Funcionales
Duración: Semanas 9 a 16 (6 de octubre – 21 de noviembre 2025)
- Cada integrante del equipo dedicará 1 hora por semana a tareas de pruebas.
- Con un equipo de 4 personas, se contará con 4 horas semanales para:
- Escribir pruebas unitarias para nuevos servicios.
- Implementar pruebas de integración para interacciones entre módulos.
- Ejecutar y depurar pruebas E2E en staging.
- Registrar y hacer seguimiento a defectos detectados.
- La planificación de pruebas será contextual a cada HU entregada en el sprint.
- Se mantendrá un backlog de pruebas automatizadas que crecerá progresivamente.
2.3. Presupuesto de pruebas
2.3.1. Recursos Humanos
Equipo:
- Miguel Fernando Padilla Espino
- Johann Sebastián Páez Campos
- Julián Oliveros Forero
- Juan Sebastián Cervantes Restrepo
Cada miembro tendrá una dedicación de 1 hora semanal exclusivamente para pruebas, sumando un total de 4 horas-hombre por semana para construcción, ejecución y mantenimiento del plan.
Perfil técnico del equipo:
- Formación profesional en Ingeniería de Software o áreas afines.
- Participación en la asignatura de Pruebas Automatizadas (Maestría Uniandes).
- Conocimiento en pruebas unitarias, integración, E2E y regresión.
- Experiencia con Jest, Pytest, Cypress, Playwright.
- Conocimiento en CI/CD, pruebas en microservicios, diseño de casos, Git.
Tecnologías y herramientas clave:
- Frontend Web: Angular 17, PrimeNG, Angular Material, ngx-translate
Jest, Karma, Angular Testing Library - Backend: Python + FastAPI (microservicios)
Pytest, unittest, HTTPX + TestClient, pyJWT - BD: PostgreSQL (scripts + fixtures para validación)
- App móvil: Kotlin (foco parcial en esta fase)
- CI/CD: GCP + Kubernetes + GitHub Actions
2.3.2. Recursos Computacionales
Infraestructura en la nube (Google Cloud Platform):
- GKE (Kubernetes Engine)
- Cloud Run / App Engine
- Cloud Load Balancing
- Google Maps API
- Cloud SQL (PostgreSQL)
- Cloud Storage
Equipos personales de los desarrolladores:
- CPU: Intel i5+ / M1 / Ryzen 5+
- RAM: 8GB (mínimo), mayoría 16GB
- SO: Windows 10/11, macOS, Ubuntu 22.04+
- Herramientas: VS Code, PyCharm, Docker, navegadores modernos, DevTools
- Conexión: Banda ancha (>50 Mbps)
- Limitación: No hay dispositivos móviles dedicados para pruebas
El entorno mixto (cloud + local) permite orquestar pruebas automatizadas de forma efectiva sin incurrir en costos adicionales de infraestructura.
2.3.3. Recursos Económicos
No se contempla la contratación de personal externo. El equipo interno asumirá todas las actividades de pruebas.
Presupuesto para servicios en la nube:
- GKE (entornos escalables de prueba)
- Cloud SQL (bases de datos gestionadas)
- Cloud Storage (reportes, logs, backups)
- Cloud Run / App Engine (despliegue temporal)
- Google Maps API (ruteo)
- Cloud Load Balancer (simulación de tráfico concurrente)
2.4. TNT (Técnicas, Niveles y Tipos de prueba)
Estrategia adoptada:
- Enfoque por niveles: unidad, integración, sistema, aceptación
- Pruebas automatizadas y manuales combinadas
Cobertura:
- Backend: Python/FastAPI
- Frontend: Angular
- Móvil: Kotlin (parcial)
- E2E: Cypress / Playwright / Espresso
- Aceptación: checklist manual + validación HU
| Nivel | Tipo de Prueba | Técnica | Componente | Objetivo |
|---|---|---|---|---|
| Unidad | Funcional | Automatizada (Pytest, JUnit) | Backend (FastAPI), Android | 2.1.1 |
| Unidad | Caja blanca | Automatizada | Backend | 2.1.1 |
| Integración | Funcional | Automatizada (HTTPX, TestClient, Supertest) | API Gateway, microservicios | 2.1.2 |
| Integración | Caja negra | Automatizada | Backend/API | 2.1.2 |
| Sistema (Web) | Funcional | Automatizada (Cypress, Playwright) | Aplicación Web (Angular) | 2.1.3 |
| Sistema (Android) | Funcional | Automatizada (Espresso) | Aplicación Móvil (Kotlin) | 2.1.3 |
| Sistema (Web/Mob) | Caja negra | Automatizada | Web + Android | 2.1.3 |
| Sistema | Seguridad | Manual y automatizada (headers, auth, roles) | Web + Backend | 2.1.3 |
| Sistema | Internacionalización | Manual (Herramienta de traducción Chrome) | Aplicación Web y Móvil | 2.1.3 |
| Aceptación | Funcional | Manual (Checklist + Validación HU) | Web + Android | 2.1.3 |
| Aceptación | Caja negra | Manual | Web + Android | 2.1.3 |
2.5. Distribución de Esfuerzo
Modelo de automatización: Pirámide de Pruebas
Pruebas por sprint: Planificadas según funcionalidades entregadas
Distribución por Etapas
Etapa 1 – Refinamiento de la Estrategia
Duración: Semanas 2 a 8
Dedicación semanal total: 4 horas (1h por integrante)
Actividades:
- Criterios de aceptación por HU
- Diseño de estrategia y casos core
- Configuración de entornos y herramientas (Pytest, Cypress, Espresso)
- Priorización de flujos críticos
Etapa 2 – Ejecución Iterativa
Duración: Semanas 9 a 16
Dedicación semanal total: 4 horas (1h por integrante)
Actividades por semana:
- Semana 9–10: Pruebas unitarias (autenticación, inventario, pedidos)
- Semana 11–12: Flujos E2E web, pruebas funcionales móviles
- Semana 13–14: Pruebas integración logística-bodega, validación HU, Pruebas de Internacionalización
- Semana 15–16: Flujo E2E completo, análisis de cobertura, Pruebas de Seguridad, cierre
Las pruebas se alinearán con las funcionalidades listas por sprint.