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
- Validar Hallazgos: ¿Son los bugs reproducibles? ¿Es clara la descripción?
- Identificar Seguimientos: ¿Necesitamos sesiones adicionales para esta área?
- Compartir Conocimiento: ¿Qué aprendimos? ¿Qué patrones emergieron?
- 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 Feature | Sesiones | Horas Totales | Bugs Encontrados | Última Prueba |
---|---|---|---|---|
Auth Usuario | 8 | 12h | 14 | 2025-10-05 |
Pago | 12 | 18h | 23 | 2025-10-06 |
Envío | 4 | 6h | 5 | 2025-10-03 |
Panel Admin | 2 | 3h | 7 | 2025-10-01 |
Reportes | 0 | 0h | 0 | Nunca |
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
- Testing es aprendizaje: Enfoque en descubrimiento, no solo verificación
- Humanos habilidosos son esenciales: Herramientas apoyan, pero no reemplazan, pensamiento
- Feedback rápido: Acortar ciclos entre testing y desarrollo
- Impulsado por heurística: Usar reglas prácticas, no procesos rígidos
- 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.