Semana 3 ‐ 4. Frameworks y Ambientes - JuanHerreraP/Proyecto-MISO-Solventa-Grupo-11 GitHub Wiki
Frameworks y ambientes (Solventa, Grupo 11)
Framework de pruebas, framework del componente web (alineado con test e internacionalización), framework del componente móvil (alineado con test e internacionalización), y ambiente cloud para backend con sus herramientas de test. Construido a partir de lo ya definido en la estrategia de pruebas y la visión de arquitectura.
1. Framework de pruebas
| Nivel | Herramienta | Uso |
|---|---|---|
| Unitario / componente (backend) | Pytest | Reglas de negocio, validaciones y transiciones de estado en FastAPI (TNT01, TNT02). |
| Unitario / componente (web) | Vitest + React Testing Library | Componentes React, hooks y lógica de UI en TypeScript. |
| Integración y contratos | Pytest + esquemas OpenAPI | Verificación de contratos entre React, Android, FastAPI y PostgreSQL (TNT03). |
| End-to-end / sistema | Playwright | Recorridos críticos completos en el cliente web (cotización, emisión, siniestros) (TNT04). |
| Rendimiento | k6 | Pruebas de carga sobre los endpoints críticos (cotización, perfilamiento) para validar los escenarios de latencia y escalabilidad (EC01–EC04). |
| Móvil (unitario/instrumentado) | JUnit + Espresso / Compose Testing | Lógica de negocio y UI de la app Android nativa. |
| Regresión y CI | GitHub Actions | Ejecución automática de la suite ante cada cambio; trazabilidad de resultados hacia Jira (TNT08). |
2. Framework del componente web (alineado con test e internacionalización)
- Framework: React + TypeScript (SPA), construido con Vite.
- Testing: Vitest (unitario/componente) + React Testing Library (comportamiento orientado al usuario) + Playwright (E2E). La elección de TypeScript reduce errores de tipo antes de llegar a pruebas de ejecución.
- Internacionalización:
react-i18next(oreact-intl) para textos, formatos de fecha/moneda/número — coherente con la operación de Solventa en Colombia y su expansión planeada a México, Chile y Perú (36 meses). Los criterios de aceptación de accesibilidad/i18n de TNT07 (mensajes, foco, contraste, formatos de fecha/moneda) se verifican con revisiones manuales guiadas por esa misma librería de traducciones. - Accesibilidad: axe-core integrado en la suite de Playwright para detectar issues de contraste, foco y etiquetas (WCAG) de forma automatizada, complementando la revisión manual de TNT07.
3. Framework del componente móvil (alineado con test e internacionalización)
- Framework: Android nativo con Kotlin y Jetpack Compose.
- Testing: JUnit + MockK (unitario), Compose Testing / Espresso (UI instrumentada), y los emuladores Android + dispositivos físicos ya definidos en la estrategia de pruebas para validar cámara, biometría, geolocalización, notificaciones y conectividad — capacidades que no se pueden probar completamente en emulador.
- Internacionalización: recursos de Android (
strings.xmlpor locale,plurals.xml) másICU4Jpara formatos de fecha/moneda/número, con el mismo alcance multi-país que el framework web. - Offline-first: Room (SQLite) para el almacenamiento local cifrado y sincronización de la billetera de pólizas y evidencias de siniestros sin conexión (historia BPM-32).
4. Ambiente cloud para backend y herramientas de test
Según la visión de arquitectura y el diagrama de despliegue ya definidos:
| Servicio AWS | Rol |
|---|---|
| API Gateway | Punto de entrada único para Core API y API de socios; versionado de contratos. |
| ECS Fargate | Cómputo del backend FastAPI, con autoescalado (relevante para EC03/EC04). |
| RDS PostgreSQL (Multi-AZ) | Persistencia transaccional; soporta el escenario de disponibilidad EC11 (conmutación entre zonas). |
| ElastiCache | Caché de perfiles y cotizaciones — sustenta los escenarios de latencia (EC01, EC02) y el de dependencia externa caída (EC12). |
| SQS / SNS | Mensajería asíncrona para siniestros paramétricos y notificaciones (EC04). |
| S3 + CloudFront | Almacenamiento de evidencias de siniestros y activos estáticos del cliente web. |
| Lambda | Procesamiento de eventos puntuales (ej. picos del evento paramétrico). |
| GitHub Actions | CI/CD: build, pruebas automatizadas (Pytest, Vitest, Playwright, k6) y despliegue hacia AWS. |
Ambiente de pruebas: las pruebas de integración y contratos corren contra una instancia de PostgreSQL y servicios externos simulados (mocks/stubs de Open Finance, Open Data, KYC y pasarela de pagos) para no depender de terceros reales durante CI. Las pruebas de rendimiento con k6 se ejecutan contra un ambiente desplegado en AWS equivalente a producción, para que los resultados sean representativos de los escenarios EC01–EC04.