Entrevistas de Diseno de Sistemas para QA
Las entrevistas de diseno de sistemas para roles QA difieren de las de desarrolladores. En lugar de disenar el sistema, se te pide disenar la estrategia e infraestructura de testing.
El Framework de Diseno de Sistemas QA
1. Clarificar Requisitos
- Escala (usuarios, requests por segundo, volumen de datos)
- SLAs (uptime, latencia, tasa de error)
- Entornos existentes
- Frecuencia de deployment
- Testing actual
2. Identificar Capas de Testing
Unit Tests → Integration Tests → Contract Tests → E2E Tests → Performance Tests → Chaos Engineering
3. Disenar la Arquitectura de Testing
Para cada capa: herramientas, triggers CI, donde se ejecutan, reportes, que pasa al fallar.
Escenarios Comunes
Escenario 1: Plataforma e-commerce con microservicios
Sistema: 15 microservicios (auth, catalogo, carrito, pagos, envios, notificaciones)
Enfoque:
- Unit tests: Cada servicio con sus propios tests, en cada commit
- Contract tests: Pact para contratos consumer-driven entre servicios
- Integration tests: TestContainers para pares de servicios
- E2E: Journeys criticos (navegar → carrito → checkout → pago)
- Performance: k6 apuntando a 1000 RPS en checkout
- Chaos engineering: Pruebas de resiliencia con fallas de servicios
Escenario 2: Sistema de mensajeria en tiempo real
Enfoque:
- Testing basado en propiedades para orden de mensajes
- Tests de concurrencia con multiples productores/consumidores
- Simulacion de particion de red
- Tests de estabilidad de larga duracion
Escenario 3: Pipeline de machine learning
Enfoque:
- Validacion de datos (Great Expectations)
- Benchmarks de modelo con datasets de referencia
- Infraestructura de A/B testing
- Testing en modo shadow antes de produccion
Presentando Tu Diseno
- Restablecer el problema (30 seg)
- Preguntas clarificadoras (2-3 min)
- Enfoque alto nivel (2-3 min)
- Diseno detallado con diagramas (10-15 min)
- Trade-offs y alternativas (3-5 min)
Ejercicio: Disena una Arquitectura de Testing
Disena la estrategia de testing para una app de delivery de comida con: apps moviles, dashboard de restaurante, app de conductor, 10 microservicios, tracking en tiempo real, procesamiento de pagos, 50K ordenes diarias.
Framework de Solucion
Capa 1 — Unit tests: Cada microservicio, modulos de apps moviles Capa 2 — Contract tests: Pact entre apps y backend Capa 3 — Integracion: Gateway de pago, servicio de mapas, notificaciones Capa 4 — E2E:
- Cliente: navegar → ordenar → pagar → rastrear → recibir
- Restaurante: recibir orden → preparar → marcar listo
- Conductor: aceptar → navegar → recoger → entregar Capa 5 — Rendimiento: Peak load (hora de almuerzo/cena) Capa 6 — Movil: Modo offline, precision GPS, bateria Capa 7 — Chaos: Fallas de servicios, degradacion de red
Puntos Clave
- El diseno de sistemas QA se enfoca en estrategia de testing, no en arquitectura del sistema
- Siempre comienza entendiendo escala, SLAs y testing existente
- Disena testing en capas: unit, integracion, contrato, E2E, rendimiento, chaos
- Discute trade-offs explicitamente — no hay solucion perfecta