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

  1. Restablecer el problema (30 seg)
  2. Preguntas clarificadoras (2-3 min)
  3. Enfoque alto nivel (2-3 min)
  4. Diseno detallado con diagramas (10-15 min)
  5. 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