El Dilema del Testing Exploratorio

El testing exploratorio es poderoso—aprovecha la creatividad humana y el conocimiento del dominio para encontrar bugs que las pruebas scriptadas omiten. Sin embargo, enfrenta críticas por ser desestructurado, difícil de gestionar e imposible de medir. ¿Cómo rastrear el progreso cuando no hay lista predefinida de casos de prueba? ¿Cómo saber cuándo terminas? ¿Cómo justificar el tiempo gastado?

Session-Based Test Management (SBTM), pionero por Jon Bach y James Bach, resuelve esto trayendo estructura a la exploración sin sacrificar los beneficios del testing investigativo. Proporciona un framework que hace el testing exploratorio rastreable, gestionable y medible.

¿Qué es Session-Based Test Management?

SBTM organiza el testing exploratorio en sesiones con límite de tiempo guiadas por test charters. Cada sesión se enfoca en una misión específica, típicamente durando 60-120 minutos (90 minutos es estándar). Después de cada sesión, los testers documentan hallazgos a través de debriefing estructurado.

Componentes Principales

1. Test Charter: Declaración de misión definiendo qué explorar 2. Sesión: Actividad de testing con límite de tiempo (típicamente 90 minutos) 3. Hoja de Sesión: Template de documentación capturando actividades de testing 4. Debriefing: Revisión post-sesión y colección de métricas 5. Métricas: Insights basados en datos sobre progreso y cobertura de testing

Test Charters: Definiendo la Misión

Un test charter especifica qué probar y por qué, proporcionando enfoque sin scripts rígidos. El formato del charter típicamente sigue esta estructura:

Charter: Explorar [target]
         Con [recursos]
         Para descubrir [información]

Ejemplos de Charters Bien Elaborados

Ejemplo 1: Checkout E-Commerce

Charter: Explorar el flujo de checkout
         Con varios métodos de pago (tarjeta de crédito, PayPal, Apple Pay)
         Para descubrir cómo el sistema maneja fallas de pago y reintentos

Ejemplo 2: Rendimiento de App Móvil

Charter: Explorar la función de carga de fotos
         Con diferentes condiciones de red (3G, 4G, WiFi, offline)
         Para descubrir degradación de rendimiento y manejo de errores

Ejemplo 3: Integración API

Charter: Explorar la API de autenticación de usuario
         Con tokens inválidos, sesiones expiradas y peticiones concurrentes
         Para descubrir vulnerabilidades de seguridad y manejo de casos límite

Ejemplo 4: Migración de Datos

Charter: Explorar la importación de datos del sistema legacy
         Con archivos CSV corruptos, tipos de datos inesperados y datasets grandes
         Para descubrir fallas de validación de datos y cuellos de botella de rendimiento

Guías de Alcance del Charter

Buenos Charters:

  • Suficientemente enfocados para una sesión de 90 minutos
  • Target y objetivos claros
  • Testeable y accionable
  • Alineado con riesgos actuales del proyecto

Evitar:

  • Demasiado amplio: “Probar la aplicación completa”
  • Demasiado estrecho: “Verificar que el botón de login es azul”
  • Vago: “Jugar con el sistema”
  • Duplicado: Repetir áreas ya cubiertas sin razón

La Estructura de Sesión SBTM

Una sesión típica de 90 minutos se desglosa en:

Configuración (5-10 minutos):

  • Revisar charter
  • Preparar datos de prueba, herramientas, ambiente
  • Establecer objetivos de sesión

Testing (70-80 minutos):

  • Ejecutar testing exploratorio guiado por charter
  • Documentar hallazgos en tiempo real
  • Seguir caminos interesantes
  • Notar bugs, preguntas, riesgos

Cierre (5-10 minutos):

  • Resumir hallazgos
  • Completar hoja de sesión
  • Identificar áreas de seguimiento

Gestionando el Tiempo de Sesión

Las sesiones SBTM son ininterrumpibles. Si se interrumpe, pausa el reloj de sesión. Esto asegura rastreo preciso de tiempo y preserva el estado de flujo.

Tipos de Sesión:

  • Sesión Normal: Tiempo completo de testing dedicado al charter
  • Sesión Corta: < 60 minutos (cuando el tiempo es limitado)
  • Sesión Larga: > 120 minutos (para integraciones complejas; dividir en múltiples sesiones si es posible)

El Template de Hoja de Sesión

La hoja de sesión es el artefacto central de SBTM. Captura qué se probó, qué se encontró y asignación de tiempo.

Formato Estándar de Hoja de Sesión

## Información de Sesión
Charter: [Texto del charter]
Tester: [Nombre]
Fecha: [Fecha]
Hora de Inicio: [Hora]
Duración: [X minutos]
Desglose de Tareas: [Test%, Bug%, Setup%]

## Áreas Probadas
- Flujo de login con integración SSO
- Funcionalidad de reseteo de contraseña
- Comportamiento de timeout de sesión
- Autenticación multi-factor

## Notas de Prueba
- Probado con proveedores SSO Google, Microsoft y Okta
- Verificado mecanismo de refresh de token
- Explorado caso límite: sesión SSO expirada durante uso de app
- Verificado comportamiento con MFA deshabilitado vs habilitado

## Bugs Encontrados
BUG-1234: Login SSO falla silenciosamente cuando Okta retorna error 503
BUG-1235: Prompt de timeout de sesión aparece detrás de modal, haciéndolo inalcanzable
BUG-1236: Código MFA acepta 5 dígitos en lugar de 6 requeridos

## Preguntas/Riesgos
P: ¿Qué sucede si el usuario cambia contraseña mientras la sesión está activa?
P: ¿Hay limitación de tasa en peticiones de reseteo de contraseña?
RIESGO: Sin logging para intentos fallidos de SSO, difícil diagnosticar problemas de usuario

## Problemas/Bloqueadores
- Ambiente de prueba de Okta estuvo caído por 20 minutos
- Incapaz de probar Microsoft SSO por falta de tenant de prueba

## Archivos de Datos
- test_users.csv (100 cuentas de usuario con varios estados)
- sso_tokens_invalid.json (tokens expirados y malformados)

## Métricas
Duración de Sesión: 90 minutos
Charter vs Oportunidad: 70% charter, 30% oportunidad
Test vs Bug vs Setup: 75% test, 15% investigación de bug, 10% setup

Desglose de Tareas: El Ratio TBS

SBTM rastrea la asignación de tiempo en tres categorías:

Test: Tiempo gastado probando activamente Bug: Tiempo gastado investigando y reportando bugs Setup: Tiempo gastado preparando ambiente, datos, herramientas

Ratios Típicos:

  • Saludable: 70% Test, 20% Bug, 10% Setup
  • Preocupante: 40% Test, 10% Bug, 50% Setup (problemas de ambiente)
  • Heavy en Bug: 50% Test, 45% Bug, 5% Setup (build inestable)

Charter vs. Oportunidad

No todo el testing sigue el charter. Los testers pueden descubrir tangentes interesantes que vale la pena explorar.

Tiempo de Charter: Testing alineado con el charter de sesión Tiempo de Oportunidad: Testing de hallazgos interesantes tangenciales

Ejemplo: El charter se enfoca en procesamiento de pagos, pero el tester nota errores CORS sospechosos en la consola. Gastar 20 minutos investigando el problema CORS es testing de “oportunidad”.

Balance Ideal: 70-80% charter, 20-30% oportunidad. Demasiada oportunidad sugiere charters pobremente delimitados o software altamente inestable.

El Proceso de Debriefing

Después de cada sesión, el tester y el test manager conducen un breve debrief (5-15 minutos). Esto sirve múltiples propósitos:

Objetivos del Debrief

  1. Validar Hallazgos: ¿Son los bugs reproducibles? ¿Es clara la descripción?
  2. Identificar Seguimientos: ¿Necesitamos sesiones adicionales para esta área?
  3. Compartir Conocimiento: ¿Qué aprendimos? ¿Qué patrones emergieron?
  4. Ajustar Estrategia: ¿Deberíamos repriorizar charters basados en hallazgos?

Preguntas del Debrief

Para el Tester:

  • ¿Qué encontraste más interesante?
  • ¿Qué te sorprendió?
  • ¿Qué probarías diferente la próxima vez?
  • ¿Qué riesgos identificaste?

Para el Manager:

  • ¿El charter sigue siendo relevante?
  • ¿Deberíamos invertir más/menos en esta área?
  • ¿Hay dependencias bloqueando el progreso?
  • ¿Qué soporte necesita el tester?

Salidas del Debrief

  • Actualizaciones de Charter: Refinar o retirar charters basados en aprendizajes
  • Nuevos Charters: Generar misiones de seguimiento de hallazgos
  • Priorización de Bugs: Triar severidad y asignar a desarrolladores
  • Rastreo de Cobertura: Actualizar mapas de cobertura de pruebas

Métricas y Reportes SBTM

A diferencia del testing scriptado, las métricas SBTM se enfocan en cobertura y aprendizaje en lugar de conteos de pasar/fallar.

Métricas Clave

1. Conteo de Sesiones: Número de sesiones completadas por área/feature 2. Cobertura: Qué áreas recibieron atención de testing 3. Tasa de Descubrimiento de Bugs: Bugs encontrados por hora de sesión 4. Distribución de Sesiones: Asignación de tiempo a través de diferentes charters 5. % de Oportunidad: Cuánto testing se desvió de charters

Mapa de Cobertura de Sesión

Visualiza dónde se ha invertido esfuerzo de testing:

Área de FeatureSesionesHoras TotalesBugs EncontradosÚltima Prueba
Auth Usuario812h142025-10-05
Pago1218h232025-10-06
Envío46h52025-10-03
Panel Admin23h72025-10-01
Reportes00h0Nunca

Insights:

  • Procesamiento de pago recibió más atención (área de alto riesgo)
  • Panel admin encontrando alta densidad de bugs (7 bugs en 2 sesiones)
  • Área de reportes sin probar (programar sesiones)

Tendencias de Descubrimiento de Bugs

Rastrear bugs encontrados por hora de sesión a lo largo del tiempo:

  • Semana 1: 3.2 bugs/hora (muchos frutos de bajo colgado)
  • Semana 2: 2.1 bugs/hora (problemas mayores encontrados)
  • Semana 3: 0.8 bugs/hora (rendimientos decrecientes)
  • Semana 4: 0.5 bugs/hora (acercándose a estabilidad)

Punto de Decisión: En la semana 4, cambiar enfoque de testing a áreas inexploradas o features.

Métricas de Productividad

Eficiencia de Sesión:

  • Duración promedio de sesión: 87 minutos (target: 90)
  • Tiempo de setup %: 12% (target: < 15%)
  • Sesiones canceladas por bloqueadores: 8% (investigar estabilidad de ambiente)

Implementación SBTM del Mundo Real

Caso de Estudio: Lanzamiento de App Móvil Fintech

Contexto: Ventana de testing de 6 semanas antes del lanzamiento, app compleja con procesamiento de pagos, autenticación biométrica y trading de acciones en tiempo real.

Enfoque SBTM:

Semana 1: Generación de Charters Creados 45 charters organizados por riesgo:

  • Alto Riesgo (15 charters): Procesamiento de pagos, seguridad, integridad de datos
  • Riesgo Medio (20 charters): Flujos de UI, rendimiento, integración
  • Bajo Riesgo (10 charters): Configuraciones, pantallas de ayuda, animaciones

Semana 2-4: Fase de Ejecución

  • 2 testers, 6 sesiones/día cada uno
  • Total: 252 sesiones completadas
  • Encontrados 127 bugs (0.5 bugs/sesión en promedio)

Distribución de Sesión:

  • 60% áreas de alto riesgo
  • 30% áreas de riesgo medio
  • 10% áreas de bajo riesgo

Semana 5: Inmersiones Profundas Dirigidas Basado en hallazgos tempranos, creados charters enfocados:

  • “Explorar condiciones de carrera en trading concurrente” (generado después de crash intermitente)
  • “Explorar escenarios de reverso de pago” (generado después de bug de reembolso)
  • “Explorar rutas de fallback biométrico” (generado después de caso límite de autenticación)

Semana 6: Regresión + Barrido Final

  • Re-probadas áreas de alto riesgo con charters frescos
  • Verificados todos los bugs críticos corregidos
  • Exploradas áreas previamente de baja prioridad

Resultados:

  • Lanzado a tiempo con 96% de bugs críticos resueltos
  • Tasa de defectos post-lanzamiento: 0.3 bugs/1000 usuarios (promedio industria: 2.5)
  • Cobertura de testing claramente documentada para pista de auditoría
  • Visibilidad de gestión en progreso de testing durante todo

Factores Clave de Éxito:

  • Charters claros priorizados por riesgo de negocio
  • Debriefs diarios mantuvieron equipo alineado
  • Métricas mostraron cuándo cambiar enfoque
  • Flexibilidad para perseguir tangentes de alto valor

Rapid Software Testing y SBTM

Rapid Software Testing (RST), desarrollado por James Bach y Michael Bolton, es una metodología que incorpora fuertemente principios SBTM.

Principios Centrales de RST

  1. Testing es aprendizaje: Enfoque en descubrimiento, no solo verificación
  2. Humanos habilidosos son esenciales: Herramientas apoyan, pero no reemplazan, pensamiento
  3. Feedback rápido: Acortar ciclos entre testing y desarrollo
  4. Impulsado por heurística: Usar reglas prácticas, no procesos rígidos
  5. Impulsado por contexto: Adaptar enfoque a necesidades del proyecto

SBTM en el Framework RST

RST usa SBTM como el mecanismo primario para organizar trabajo exploratorio:

Estrategia de Prueba: Definida por temas de charter Ejecución de Prueba: Organizada en sesiones Reporte de Prueba: Capturado vía hojas de sesión y debriefs Gestión de Prueba: Rastreado a través de métricas de sesión

Heurísticas RST para Creación de Charter

SFDPOT (San Francisco Depot) - Dimensiones a explorar:

  • Structure: Código, arquitectura, estructuras de datos
  • Function: Qué hace el producto
  • Data: Inputs, outputs, estado
  • Platform: OS, navegador, hardware
  • Operations: Cómo interactúan los usuarios
  • Time: Concurrencia, secuencias, timing

Ejemplo Charter Usando SFDPOT:

Charter: Explorar el carrito de compras (Function)
         Con operaciones rápidas de agregar/remover (Time)
         En Safari móvil (Platform)
         Para descubrir bugs de gestión de estado

Herramientas que Soportan SBTM

SessionTester

Herramienta de código abierto para gestionar sesiones SBTM:

  • Gestión de biblioteca de charters
  • Timer de sesión con pausa/reanudación
  • Toma de notas integrada
  • Cálculo automático de métricas
  • Dashboard de equipo

RapidReporter

Herramienta ligera de toma de notas de sesión:

  • Interfaz simple basada en texto
  • Timestamping automático
  • Exportación Markdown
  • Overhead mínimo

Rastreo Basado en Hoja de Cálculo

Muchos equipos usan hojas de cálculo simples:

Columnas:
- ID de Sesión
- Fecha
- Tester
- Charter
- Duración
- Áreas Probadas
- Bugs Encontrados
- Notas
- Test%/Bug%/Setup%

Integración con Sistemas de Gestión de Pruebas

Exportar datos de sesión a:

  • Jira (crear tickets de hojas de sesión)
  • TestRail (enlazar sesiones a planes de prueba)
  • Confluence (mantener wiki de charter)

Mejores Prácticas para Éxito SBTM

1. Comenzar con Charters Claros

Invertir tiempo en calidad de charter:

  • Revisar charters como equipo
  • Priorizar basado en riesgo
  • Actualizar charters a medida que evoluciona el software
  • Retirar charters irrelevantes

2. Mantener Sesiones con Límite de Tiempo

Respetar el límite de 90 minutos:

  • Previene fatiga
  • Mantiene enfoque
  • Habilita rastreo preciso
  • Fuerza priorización

3. Debrief Consistentemente

Nunca omitir debriefs:

  • Valida hallazgos inmediatamente
  • Transfiere conocimiento
  • Ajusta estrategia en tiempo real
  • Mantiene alineación de equipo

4. Usar Métricas para Guiar, No Juzgar

Las métricas informan decisiones, no revisiones de rendimiento:

  • Conteo bajo de bugs podría significar software estable, no testing pobre
  • Alto % de setup podría indicar problemas de ambiente, no ineficiencia del tester
  • Varianza de % de oportunidad esperada y valiosa

5. Balancear Charter y Oportunidad

Abrazar la división 70/30:

  • Charter asegura cobertura
  • Oportunidad habilita descubrimiento
  • Demasiado charter = omitir tangentes importantes
  • Demasiada oportunidad = testing sin enfoque

6. Documentar Suficiente, No Todo

Las hojas de sesión deberían ser:

  • Suficientemente detalladas para reproducibilidad
  • Suficientemente concisas para revisión rápida
  • Enfocadas en hallazgos, no jugada por jugada

7. Iterar sobre Charters

Los charters no son estáticos:

  • Generar nuevos charters de hallazgos
  • Combinar charters redundantes
  • Dividir charters excesivamente amplios
  • Retirar charters completados

Combinando SBTM con Otros Enfoques

SBTM complementa en lugar de reemplazar otras metodologías de testing:

SBTM + Testing Scriptado

  • Usar pruebas scriptadas para regresión y cumplimiento
  • Usar SBTM para nuevas features y áreas de riesgo
  • Dejar que hallazgos SBTM informen nuevas pruebas automatizadas

SBTM + Automatización de Pruebas

  • Automatizar flujos estables y repetibles
  • Usar SBTM para investigación exploratoria
  • SBTM identifica casos límite para automatizar

SBTM + BDD/Specification by Example

  • Usar BDD para requisitos documentados
  • Usar SBTM para escenarios más allá de especificaciones
  • SBTM descubre especificaciones faltantes

Conclusión: La Estructura Habilita Libertad

La paradoja de SBTM es que la estructura mejora en lugar de limitar el testing exploratorio. Al organizar el trabajo en sesiones enfocadas, documentar hallazgos sistemáticamente y rastrear métricas consistentemente, SBTM hace el testing exploratorio:

Gestionable: Clara visibilidad en qué se está probando Medible: Insights basados en datos en cobertura y efectividad Valioso: Hallazgos documentados justifican inversión Sostenible: Previene burnout del tester a través de límite de tiempo

Cuando stakeholders preguntan “¿Qué han probado?”, SBTM proporciona respuestas claras. Cuando managers preguntan “¿Hemos terminado?”, las métricas muestran cobertura y tendencias de descubrimiento de bugs. Cuando testers preguntan “¿Dónde debería enfocarme?”, los charters proporcionan dirección.

SBTM prueba que el testing exploratorio puede ser tanto riguroso como creativo, estructurado y adaptativo, medible e investigativo. No es testing scriptado disfrazado—es testing exploratorio hecho profesionalmente.

Comienza con charters simples, ejecuta sesiones enfocadas, debrief honestamente y deja que las métricas guíen tu estrategia. El resultado es testing exploratorio que gana respeto a través de resultados, no retórica.