El problema de selección de técnica

Has aprendido más de 20 técnicas de test design en este módulo. El desafío ya no es “¿qué técnicas existen?” sino “¿cuál debo usar ahora?”

Elegir la técnica incorrecta desperdicia esfuerzo. Usar EP en un protocolo con estado pierde bugs de transición. Usar state transition testing en un motor de cálculo pierde defectos de boundary.

Framework de decisión

Paso 1: ¿Qué tipo de feature estás testeando?

Tipo de FeatureTécnicas más adecuadas
Validación de input (formularios)EP + BVA
Reglas de negocio con condicionesTablas de decisión
Workflows, protocolos, sesionesState transition testing
Configuración/compatibilidadTesting pairwise
Cálculos, fórmulasDomain analysis + BVA
APIs con múltiples parámetrosTesting combinatorio
Algoritmos críticos (finanzas, seguridad)MC/DC + path coverage
Journeys de usuario complejosUse case testing + state transitions

Paso 2: ¿Qué información tienes?

Información disponibleTécnicas aplicables
Solo requisitos/especificacionesBlack-box: EP, BVA, tablas de decisión, state transitions
Código fuente disponibleWhite-box: coverage de sentencias/decisiones, path, MC/DC
Sin documentaciónBasadas en experiencia: error guessing, testing exploratorio
Modelo formal existeTesting basado en modelos

Paso 3: ¿Cuál es el nivel de riesgo?

Nivel de riesgoEnfoque recomendado
Safety-criticalMC/DC + domain analysis + mutation testing
Financiero/regulatorioTablas de decisión + BVA + testing combinatorio
Lógica de negocio coreEP + BVA + state transitions + path coverage
Features estándarEP + BVA + error guessing
Bajo riesgo/cosméticoError guessing + checklist-based

Mapeo de técnicas por categoría

Testing de entrada de datos

  1. Empezar con EP — identificar clases válidas e inválidas
  2. Aplicar BVA — testear boundaries de cada clase
  3. Agregar domain analysis — si múltiples inputs interactúan
  4. Usar error guessing — inputs erróneos comunes

Testing de lógica de negocio

  1. Empezar con tablas de decisión — mapear combinaciones
  2. Agregar state transitions — si el comportamiento depende del estado previo
  3. Aplicar cause-effect graphing — si las condiciones tienen dependencias complejas
  4. Usar testing combinatorio — si muchos parámetros interactúan

Testing estructural (White-Box)

  1. Statement coverage — mínimo básico
  2. Decision coverage — ambos branches de cada decisión
  3. MC/DC — si safety-critical
  4. Path coverage — algoritmos críticos
  5. Mutation testing — validar que los tests son efectivos

Ejemplos del mundo real

Ejemplo 1: Formulario de login

  • Campo username: EP + BVA (longitud min/max)
  • Campo password: EP + BVA
  • Botón login: State transitions (bloqueo tras 3 intentos fallidos)
  • General: Error guessing (SQL injection, XSS, campos vacíos)

Ejemplo 2: Calculadora de seguro

  • Cálculo de prima: Tablas de decisión
  • Rangos de input: BVA + Domain analysis
  • Niveles de tarifa: EP
  • Combinaciones de descuento: Pairwise testing

Ejemplo 3: Checkout de e-commerce

  • Estados del carrito: State transition testing
  • Métodos de pago: Pairwise testing
  • Reglas de envío: Tablas de decisión
  • Flujo end-to-end: Use case testing

Ejercicio: Selección de técnicas

Problema 1

Para cada feature, selecciona técnicas primaria y secundaria:

  1. Motor de cálculo de impuestos con diferentes tasas por tramo de ingreso
  2. Reproductor de música con play, pause, skip, shuffle, repeat
  3. Función de búsqueda con filtros opcionales
  4. Sistema de control de elevadores para edificio de 20 pisos
  5. Medidor de fortaleza de contraseñas
Solución
  1. Impuestos: Primaria: Tablas de decisión; Secundaria: BVA (boundaries de tramos) + Domain analysis + Path coverage

  2. Reproductor: Primaria: State transition testing; Secundaria: Pairwise (combinaciones shuffle/repeat) + Error guessing

  3. Búsqueda: Primaria: EP; Secundaria: Pairwise (filtros) + BVA (rangos de fecha) + Error guessing

  4. Elevadores: Primaria: State transition testing; Secundaria: Model-based testing + Testing combinatorio

  5. Fortaleza de contraseña: Primaria: EP (categorías débil/media/fuerte); Secundaria: BVA (umbrales) + Tablas de decisión + Error guessing

Problema 2

Crea una estrategia de testing para un sistema de reservas de hotel mapeando cada sub-feature a técnicas.

Solución
Sub-FeatureTécnica primariaTécnica secundariaJustificación
Búsqueda de fechasBVAEPBoundaries claros (check-in antes de check-out)
Conteo de huéspedesBVA + EPError guessingBoundaries (min 1, max por habitación)
Precios dinámicosTablas de decisiónDomain analysisReglas complejas por temporada
Ciclo de reservaState transitionsUse case testingEstados: pendiente, confirmada, cancelada
Procesamiento de pagoState transitionsError guessingEstados de pago + edge cases
ConfiguraciónPairwiseChecklist-basedCombinaciones browser/device

Anti-patrones en selección de técnicas

Usar solo una técnica. Equipos que solo aplican EP pierden bugs dependientes de estado.

Omitir técnicas basadas en experiencia. Las técnicas formales no cubren todo.

Sobre-ingeniería en features de bajo riesgo. MC/DC en una landing page es desperdicio.

Ignorar técnicas white-box. Datos de cobertura estructural revelan brechas.

Puntos clave

  • Ninguna técnica es suficiente sola — el testing efectivo requiere combinar técnicas
  • Mapea técnica a tipo de feature: dependiente de estado → state transitions, reglas → tablas de decisión, inputs → EP+BVA
  • El nivel de riesgo determina el rigor
  • La información disponible restringe las opciones
  • Siempre complementa técnicas formales con error guessing y testing exploratorio
  • Construye el hábito de selección — para cada feature, pregunta conscientemente “¿cuál técnica encaja mejor?”