¿Por Qué Testing Basado en Riesgos?

Ningún proyecto tiene tiempo y recursos ilimitados. No puedes probar todo por igual. El testing basado en riesgos responde: ¿Dónde debemos enfocar nuestro esfuerzo?

La respuesta: enfócate en áreas de mayor riesgo — donde los defectos son más probables Y donde su impacto sería más severo.

Entendiendo el Riesgo

Riesgo = Probabilidad × Impacto

  • Probabilidad: ¿Qué tan probable es que exista un defecto?
  • Impacto: Si existe, ¿qué tan severas son las consecuencias?

Factores de Probabilidad

FactorMayor Probabilidad
Complejidad de códigoAlgoritmos complejos, muchas condiciones
Nueva tecnologíaPrimera vez usando un framework o API
Experiencia del desarrolladorDesarrollador junior o nuevo
Frecuencia de cambiosCódigo modificado frecuentemente
Puntos de integraciónMúltiples sistemas interactuando
Deadlines ajustadosCódigo escrito bajo presión
HistorialÁrea con muchos defectos previos

Factores de Impacto

FactorMayor Impacto
Transacciones financierasPérdida de dinero, cargos incorrectos
Seguridad/privacidadBrecha de datos, acceso no autorizado
Seguridad críticaDaño físico a usuarios
Flujo de usuario principalLogin, checkout, features primarios
RegulatorioViolaciones de compliance, multas
ReputaciónFallas públicas
Integridad de datosPérdida o corrupción permanente

Riesgo de Producto vs Riesgo de Proyecto

Riesgos de Producto

Problemas potenciales de calidad en el software:

RiesgoProbabilidadImpactoNivel
Error en procesamiento de pagosMediaCríticoAlto
Búsqueda retorna resultados incorrectosBajaAltoMedio
CSS roto en móvilMediaMedioMedio
Typo en página de ayudaBajaBajoBajo

Riesgos de Proyecto

Amenazan el proceso de testing:

RiesgoProbabilidadImpactoMitigación
Entorno no disponibleAltaAltoBackup con Docker
Requisitos cambian mid-sprintMediaAltoProceso de control de cambios
QA enfermoBajaAltoCross-training
API de terceros caídaMediaMedioServicios mock

La Matriz de Riesgos

graph TB subgraph Matriz de Riesgos HH[ALTA Probabilidad
ALTO Impacto
Crítico] HL[ALTA Probabilidad
BAJO Impacto
Medio] LH[BAJA Probabilidad
ALTO Impacto
Alto] LL[BAJA Probabilidad
BAJO Impacto
Bajo] end style HH fill:#F44336,color:#fff style HL fill:#FFC107,color:#000 style LH fill:#FF9800,color:#fff style LL fill:#4CAF50,color:#fff

Cómo Usar la Matriz

NivelEnfoque de Testing
CríticoExtensivo: todas las técnicas, automatización, exploratorio, seguridad, rendimiento
AltoExhaustivo: cobertura completa, automatización para regresión
MedioEstándar: casos funcionales, testing negativo básico
BajoMínimo: smoke tests, validación básica

El Proceso de Testing Basado en Riesgos

graph LR RI[1. Identificación
de Riesgos] --> RA[2. Análisis
de Riesgos] RA --> RP[3. Priorización
Basada en Riesgo] RP --> TE[4. Ejecución
de Tests] TE --> RM[5. Monitoreo
de Riesgos] RM --> RI style RI fill:#4CAF50,color:#fff style RA fill:#2196F3,color:#fff style RP fill:#FF9800,color:#fff style TE fill:#9C27B0,color:#fff style RM fill:#F44336,color:#fff

Paso 1: Identificación

Participantes: QA, desarrolladores, product owners, arquitectos, operaciones.

Técnicas: Brainstorming, revisión de datos históricos de defectos, análisis de requisitos, revisión de arquitectura.

Paso 2: Análisis

Para cada riesgo: Probabilidad (1-5) × Impacto (1-5) = Score de Riesgo.

Paso 3: Priorización

Prioridad% de EsfuerzoProfundidad
Crítico (15-25)40%Todas las técnicas
Alto (10-14)30%Funcional + negativo + boundary
Medio (5-9)20%Funcional + negativo clave
Bajo (1-4)10%Smoke tests

Paso 4: Ejecución

Ejecutar tests en orden de prioridad. Si se acaba el tiempo, las áreas de mayor riesgo ya están probadas.

Paso 5: Monitoreo

Los riesgos cambian durante el testing. Actualizar el registro continuamente.

Ejercicio: Crear un Registro de Riesgos y Priorizar Test Cases

Eres QA lead de un portal de salud en línea donde los pacientes pueden:

  • Registrarse y gestionar su perfil (incluyendo historial médico)
  • Agendar citas con doctores
  • Ver resultados de exámenes y registros médicos
  • Comunicarse con doctores por mensajería segura
  • Pagar consultas en línea
  • Recibir notificaciones de prescripciones

Contexto regulatorio: El sistema debe cumplir con HIPAA para privacidad de datos de pacientes.

Tu tarea:

  1. Crear un registro de riesgos con al menos 10 riesgos
  2. Puntuar cada riesgo (Probabilidad 1-5, Impacto 1-5)
  3. Categorizar en la matriz de riesgos
  4. Listar los 5 test cases que ejecutarías primero
  5. Explicar cómo ajustarías si el cronograma se reduce 30%
Pista

Violaciones HIPAA pueden costar $100-$50,000 por violación. Datos médicos son la categoría más sensible. Errores en citas pueden resultar en cuidado crítico perdido. Notificaciones de prescripciones deben ser oportunas y precisas.

Solución de Ejemplo

Registro de Riesgos

IDRiesgoTipoPIScorePrioridad
R1Registros médicos visibles a usuarios no autorizadosProducto2510Crítico
R2Notificación de prescripción enviada a paciente equivocadoProducto2510Crítico
R3Mensajería segura no encriptadaProducto3515Crítico
R4Doble cobro al pacienteProducto3412Alto
R5Citas permiten slots superpuestosProducto4312Alto
R6Resultados de exámenes muestran valores incorrectosProducto2510Crítico
R7Timeout de sesión muy largo (HIPAA requiere corto)Producto3412Alto
R8Entorno de prueba sin enmascaramiento de datosProyecto4416Crítico
R9Integración con sistema EHR del hospital fallaProyecto3412Alto
R10Equipo QA no familiarizado con HIPAAProyecto339Medio

Top 5 Test Cases

  1. Control de acceso: Paciente A no puede ver registros de Paciente B (R1)
  2. Encriptación de mensajería: Mensajes encriptados en tránsito y reposo (R3)
  3. Precisión de notificación de prescripción: Notificación corresponde al paciente y prescripción correctos (R2)
  4. Precisión de resultados: Valores de laboratorio correctos con unidades y rangos (R6)
  5. Timeout de sesión HIPAA: Sesión expira después del período requerido (R7)

Ajuste con 30% Menos de Tiempo

Mantener esfuerzo completo (Críticos): R1, R2, R3, R6 — no negociables para HIPAA.

Reducir esfuerzo (Altos): R4, R5, R7, R9 — solo happy path y casos negativos clave.

Diferir (Medio/Bajo): R10 — abordar con documentación. Testing cosmético diferido completamente.

Comunicar: “Con 30% menos de tiempo, mantenemos cobertura completa para áreas críticas HIPAA. Reducimos cobertura para pagos y agendamiento, aceptando mayor riesgo. Recomendamos un sprint post-release enfocado.”

Testing Basado en Riesgos en Agile

  • Sprint Planning: Identificar riesgos para los user stories del sprint
  • Daily Standup: Reportar descubrimientos de riesgo
  • Sprint Review: Actualizar registro de riesgos
  • Retrospective: Evaluar si la evaluación de riesgos fue precisa

Consejos Pro

  1. Involucra a todo el equipo en identificación de riesgos. Desarrolladores saben dónde el código es frágil. POs saben qué es crítico para el negocio. Ops sabe qué ha fallado antes.

  2. Actualiza el registro continuamente. El riesgo no es estático. Un área de alto riesgo puede volverse bajo riesgo después de testing exhaustivo.

  3. Usa datos de defectos para calibrar. Si un área consistentemente tiene más defectos, aumenta su score de probabilidad.

  4. Documenta tus decisiones. Cuando reduces testing en un área de bajo riesgo, documéntalo. Si un defecto escapa, puedes explicar la lógica.

  5. No se trata de probar menos. Se trata de probar más inteligentemente. Mismo esfuerzo, mejor enfocado.