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 (o react-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.xml por locale, plurals.xml) más ICU4J para 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.