¿Por Qué Probar en Producción?

En la lección anterior aprendiste sobre shift-left testing — comenzar actividades de calidad más temprano. Shift-right testing es su complemento: extender actividades de calidad al entorno de producción.

¿Por qué? Porque ningún entorno de prueba puede replicar perfectamente producción:

  • Patrones de tráfico reales son impredecibles y diversos
  • Datos reales tienen casos límite que nunca imaginaste
  • Infraestructura real se comporta diferente bajo carga
  • Usuarios reales interactúan con tu software de formas inesperadas

Shift-right testing reconoce que algunos defectos solo pueden encontrarse en producción — y proporciona técnicas para encontrarlos de forma segura.

Importante: Shift-right NO significa saltarse el testing pre-producción. Significa complementar un testing pre-producción exhaustivo con validación a nivel de producción.

Técnicas Shift-Right

1. Canary Deployments

Un canary deployment libera una nueva versión a un porcentaje pequeño de usuarios antes de desplegarla para todos.

graph LR subgraph Canary Deployment LB[Load Balancer] -->|95%| V1[Versión 1.0
Estable] LB -->|5%| V2[Versión 1.1
Canary] end V2 -->|Métricas OK?| EXPAND[Expandir a 25% → 50% → 100%] V2 -->|Métricas malas?| ROLLBACK[Rollback a 1.0] style V1 fill:#4CAF50,color:#fff style V2 fill:#FF9800,color:#fff style ROLLBACK fill:#F44336,color:#fff

Cómo funciona:

  1. Desplegar versión 1.1 al 5% de servidores/usuarios
  2. Monitorear métricas clave: tasa de errores, latencia, tasa de conversión
  3. Si las métricas están sanas después de 15-30 minutos, expandir al 25%
  4. Continuar expandiendo hasta 100%
  5. Si alguna métrica degrada, revertir instantáneamente a versión 1.0

Rol de QA en canary deployments:

  • Definir las métricas que deben monitorearse
  • Establecer umbrales para rollback automático (ej: tasa de errores > 1%)
  • Revisar resultados del canary antes de aprobar despliegue completo
  • Diseñar escenarios de prueba específicos para canary

2. Feature Flags (Feature Toggles)

Feature flags permiten habilitar o deshabilitar features sin desplegar código nuevo. El feature está desplegado pero oculto detrás de un flag.

if feature_flag.is_enabled("new_checkout_flow", user):
    show_new_checkout()
else:
    show_old_checkout()

Usos para testing:

  • Despliegue gradual: Habilitar para 10% de usuarios, luego 25%, 50%, 100%
  • Beta testing: Habilitar para grupos específicos de usuarios
  • Kill switch: Deshabilitar instantáneamente un feature problemático
  • A/B testing: Comparar dos versiones con diferentes grupos

Rol de QA:

  • Probar ambos estados del flag (encendido y apagado)
  • Verificar que cambios de flag no requieran despliegue
  • Probar el kill switch — asegurar que los features pueden deshabilitarse rápido
  • Planificar estrategia de testing para cada porcentaje de despliegue

3. A/B Testing

A/B testing divide usuarios en grupos que ven diferentes versiones de un feature, y mide cuál funciona mejor.

AspectoGrupo A (Control)Grupo B (Variante)
Usuarios50% del tráfico50% del tráfico
FeatureCheckout originalNuevo diseño de checkout
MétricaTasa de conversiónTasa de conversión
Duración2 semanas2 semanas

Rol de QA en A/B testing:

  • Verificar que la asignación de usuarios sea aleatoria y consistente
  • Probar ambas variantes por corrección
  • Validar que las métricas se rastrean con precisión
  • Verificar requisitos de tamaño de muestra (significancia estadística)

4. Blue-Green Deployments

Dos entornos de producción idénticos (Blue y Green) intercambian tráfico:

graph LR LB[Load Balancer] -->|EN VIVO| BLUE[Entorno Blue
v1.0 - Actual] LB -.->|STANDBY| GREEN[Entorno Green
v1.1 - Nuevo] GREEN -->|Cambiar| LB BLUE -->|Se vuelve standby| BLUE2[Blue
Standby] style BLUE fill:#2196F3,color:#fff style GREEN fill:#4CAF50,color:#fff

Cómo funciona:

  1. Blue está en vivo (sirviendo todo el tráfico)
  2. Desplegar v1.1 en Green
  3. Probar v1.1 en Green (con datos similares a producción)
  4. Cambiar tráfico de Blue a Green
  5. Si hay problemas, cambiar de vuelta a Blue instantáneamente

Rol de QA:

  • Validar la nueva versión en Green antes del cambio de tráfico
  • Ejecutar smoke tests inmediatamente después del cambio
  • Monitorear tasas de error durante y después del cambio
  • Verificar capacidad de rollback

5. Monitoreo y Observabilidad

El monitoreo no se considera tradicionalmente “testing,” pero en shift-right es tu herramienta de calidad más importante.

Qué monitorear:

  • Tasas de error: Errores HTTP 4xx y 5xx, excepciones no manejadas
  • Latencia: Tiempos de respuesta P50, P95, P99
  • Métricas de negocio: Tasa de conversión, registros, transacciones
  • Infraestructura: CPU, memoria, disco, red
  • Experiencia de usuario: Core Web Vitals, errores del lado del cliente

Rol de QA:

  • Definir alertas relacionadas con calidad (ej: tasa de errores > 0.5%, latencia P95 > 2s)
  • Crear dashboards de calidad
  • Analizar errores en producción para identificar brechas de testing
  • Correlacionar despliegues con cambios en métricas

6. Chaos Engineering

Chaos engineering introduce deliberadamente fallas en producción para verificar que el sistema las maneje correctamente.

Experimentos de chaos comunes:

  • Matar una instancia de servidor — ¿hay failover?
  • Agregar 500ms de latencia de red — ¿funcionan los timeouts?
  • Llenar un disco al 100% — ¿la aplicación lo maneja?
  • Corromper conexión a base de datos — ¿funciona la lógica de retry?
  • Tumbar una zona de disponibilidad — ¿el sistema es resiliente?

Rol de QA:

  • Participar en el diseño de experimentos de chaos
  • Definir criterios de éxito (degradación graceful, no crash)
  • Verificar que el monitoreo y alertas detecten la falla
  • Documentar hallazgos y asegurar que los problemas se corrijan

¿Cuándo Es Apropiado Shift-Right?

EscenarioPor Qué Shift-Right Ayuda
Alta variabilidad de tráficoPre-producción no puede simular patrones reales
Integraciones complejasServicios de terceros se comportan diferente en producción
Rendimiento a escalaEl rendimiento real requiere carga de producción
Incertidumbre de comportamiento de usuarioUsuarios reales interactúan diferente que scripts de prueba
Infraestructura complejaMicroservicios, CDN, capas de cache solo funcionan bien en producción

Shift-right NO es apropiado cuando:

  • No hay monitoreo o alertas implementados
  • No existe capacidad de rollback
  • El equipo no puede responder a incidentes rápidamente
  • Requisitos regulatorios prohíben testing en producción
  • El feature maneja datos sensibles sin salvaguardas adecuadas

Riesgos y Salvaguardas

Riesgos

RiesgoImpacto
Usuarios experimentan bugsInsatisfacción, pérdida de clientes
Corrupción de datosPérdida de datos de producción
Degradación de rendimientoSistema lento afecta a todos
Exposición de seguridadVulnerabilidades visibles en producción
Violaciones de complianceMultas o sanciones regulatorias

Salvaguardas

  1. Feature flags: Siempre desplegar detrás de un flag con kill switch
  2. Canary deployments: Nunca desplegar al 100% de una vez
  3. Rollback automático: Establecer umbrales que disparen rollback automático
  4. Monitoreo: Tener dashboards y alertas antes de desplegar
  5. Runbooks: Documentar procedimientos paso a paso para escenarios de falla
  6. Limitación del radio de impacto: Limitar usuarios afectados por cualquier experimento
  7. Protección de datos: Nunca usar testing en producción para manipular datos reales

Ejercicio: Diseñar una Estrategia Shift-Right para una Aplicación Web

Eres QA lead de una plataforma de redes sociales con 2 millones de usuarios activos diarios. El equipo está lanzando un rediseño mayor del feature de mensajería. El nuevo sistema:

  • Usa conexiones WebSocket para mensajería en tiempo real
  • Incluye compartir archivos (imágenes, documentos hasta 25MB)
  • Tiene un nuevo sistema de notificaciones
  • Se integra con API de traducción de terceros para auto-traducir mensajes

Tu tarea:

Diseña una estrategia shift-right que incluya:

  1. Enfoque de despliegue (canary, blue-green o híbrido)
  2. Estrategia de feature flags (qué flags, qué grupos, qué cronograma)
  3. Plan de monitoreo (qué métricas, qué umbrales, qué dashboards)
  4. Experimentos de chaos engineering post-lanzamiento
  5. Plan de rollback para cada componente
Pista

Considera:

  • Conexiones WebSocket son stateful — canary es más difícil que con HTTP stateless
  • Límites de rate de API de traducción requieren testing gradual a escala
  • Subidas de 25MB pueden impactar almacenamiento y ancho de banda
  • Actualizaciones de apps móviles no pueden revertirse tan fácil como web
Solución de Ejemplo

Estrategia Shift-Right para Rediseño de Mensajería

1. Enfoque: Canary Híbrido + Feature Flags

Despliegue por fases:

  • Fase 1 (Día 1): 2% de usuarios (empleados internos) — features completos
  • Fase 2 (Día 3): 5% — mensajería básica (sin traducción, sin archivos)
  • Fase 3 (Semana 1): 20% — mensajería + archivos
  • Fase 4 (Semana 2): 50% — todos los features incluyendo traducción
  • Fase 5 (Semana 3): 100% — despliegue completo

2. Feature Flags:

FlagDescripciónEstado Inicial
new_messaging_uiNueva interfaz de mensajeríaOFF
file_sharingSubir/descargar archivosOFF
auto_translateAuto-traducciónOFF
websocket_v2Nuevo formato WebSocketOFF

3. Monitoreo:

MétricaUmbralNivel Alerta
Errores de conexión WebSocket> 0.5%Crítico
Latencia entrega mensaje P95> 500msAdvertencia
Tasa de fallo subida archivos> 2%Advertencia
Rate limit API traducción> 10/minCrítico

4. Chaos Engineering (Semana 4-6):

ExperimentoComportamiento Esperado
Matar 1 servidor WebSocketReconexión en < 5s, sin pérdida de mensajes
Timeout API traducciónDegradación graceful, mensajes sin traducir
Llenar almacenamiento al 95%Subida rechazada con error amigable
Pico 10x de tráficoAuto-scaling maneja carga

5. Rollback:

ComponenteMétodoTiempoImpacto Datos
Frontend webDeshabilitar flag< 1 minNinguno
Backend WebSocketCanary rollback< 5 minMensajes en vuelo necesitan re-entrega
ArchivosDeshabilitar flag< 1 minArchivos subidos permanecen accesibles
TraducciónDeshabilitar flag< 1 minMensajes se muestran sin traducir

El Modelo Shift-Left + Shift-Right

Shift-left y shift-right no son opuestos — son complementos:

graph LR SL[Shift-Left
Probar temprano] --> CT[Testing Core
Pre-producción] --> SR[Shift-Right
Probar en producción] style SL fill:#4CAF50,color:#fff style CT fill:#2196F3,color:#fff style SR fill:#FF9800,color:#fff
  • Shift-left detecta 80% de defectos temprano y barato
  • Testing core valida el sistema integrado antes del release
  • Shift-right detecta los defectos restantes que solo aparecen en producción

Consejos Pro para Shift-Right Testing

  1. Monitoreo primero, features después. Antes de lanzar cualquier estrategia shift-right, asegura monitoreo comprensivo. No puedes probar lo que no puedes observar.

  2. Comienza con feature flags. Son la técnica shift-right más segura — cero riesgo si puedes deshabilitar instantáneamente.

  3. Practica rollbacks regularmente. Un plan de rollback que nunca se ha probado no es un plan — es una esperanza.

  4. Trata incidentes de producción como resultados de tests. Cada bug en producción es un caso de prueba que tu testing pre-producción no cubrió.

  5. Comunica a stakeholders. Shift-right puede alarmar a personas no familiarizadas. Explica las salvaguardas antes de experimentar en producción.