¿Qué Es el Classification Tree Method?

El Classification Tree Method (CTM) es una técnica visual de test design que proporciona una forma estructurada de descomponer el dominio de input de un objeto de test en un árbol de clasificaciones y clases, y luego generar test cases seleccionando combinaciones del árbol.

Conceptos Clave

  • Objeto de test: El nodo raíz — el sistema, función o feature que se prueba
  • Clasificación: Un aspecto o dimensión relevante para el test (como una categoría de parámetro)
  • Clase: Un valor específico o partición dentro de una clasificación
  • Tabla de combinación: Una matriz debajo del árbol que muestra qué clases se combinan en test cases

Estructura del Árbol de Clasificación

graph TD A[Objeto de Test: Pago Online] --> B[Método de Pago] A --> C[Monto] A --> D[Moneda] B --> B1[Tarjeta de Crédito] B --> B2[PayPal] B --> B3[Transferencia Bancaria] C --> C1["Pequeño (<$50)"] C --> C2["Medio ($50-$500)"] C --> C3["Grande (>$500)"] D --> D1[USD] D --> D2[EUR] D --> D3[GBP]

El árbol descompone “Pago Online” en tres clasificaciones (Método de Pago, Monto, Moneda), cada una con sus propias clases.

Construyendo un Árbol: Paso a Paso

Paso 1: Identificar el objeto de test y sus aspectos relevantes.

Paso 2: Para cada aspecto, crear un nodo de clasificación.

Paso 3: Bajo cada clasificación, listar las clases posibles (valores/particiones).

Paso 4: Agregar refinamientos — las clases pueden tener sub-clasificaciones si es necesario.

Paso 5: Construir la tabla de combinación para seleccionar test cases.

La Tabla de Combinación

Debajo del árbol, crea una tabla donde:

  • Columnas = test cases
  • Filas = clases (nodos hoja)
  • Marcas (X o punto) muestran qué clase se selecciona para cada test case
TC1TC2TC3TC4TC5
Tarjeta de CréditoXX
PayPalXX
TransferenciaX
PequeñoXX
MedioXX
GrandeX
USDXX
EURXX
GBPX

Cada test case selecciona exactamente una clase de cada clasificación.

CTM vs. Equivalence Partitioning

CTM se basa en EP pero agrega:

  • Estructura visual — el árbol hace clara la descomposición
  • Refinamiento jerárquico — las clases pueden subdividirse más
  • Selección explícita de combinaciones — la tabla muestra exactamente qué combinaciones estás probando

Cuándo Usar CTM

  • Dominios de input complejos con múltiples parámetros relacionados
  • Cuando necesitas una visión visual del espacio de testing
  • Cuando los stakeholders necesitan revisar la cobertura visualmente
  • Como complemento de pairwise testing para seleccionar combinaciones significativas

Árboles de Clasificación Avanzados

Refinamiento Jerárquico

Las clases pueden tener sub-clasificaciones, creando árboles más profundos:

graph TD A[Registro de Usuario] --> B[Tipo de Usuario] A --> C[Método de Input] B --> B1[Individual] B --> B2[Empresa] B2 --> B2a[PyME] B2 --> B2b[Corporativo] C --> C1[Formulario Manual] C --> C2[Social Login] C2 --> C2a[Google] C2 --> C2b[GitHub]

Combinando CTM con Pairwise

Para árboles grandes, la combinación exhaustiva produce demasiados test cases. Aplica selección pairwise a la tabla de combinación:

  1. Construir el árbol de clasificación
  2. Listar todas las clases de nodos hoja como parámetros
  3. Alimentar en PICT o generar combinaciones pairwise manualmente
  4. Llenar la tabla de combinación con test cases seleccionados pairwise

Ejemplo Real: Búsqueda de E-Commerce

Objeto de Test: Búsqueda de Productos

Clasificaciones:
├── Query de Búsqueda
│   ├── Palabra única
│   ├── Múltiples palabras
│   ├── Con caracteres especiales
│   └── Vacío
├── Filtros
│   ├── Sin filtros
│   ├── Filtro de categoría
│   ├── Filtro de rango de precio
│   └── Múltiples filtros
├── Orden
│   ├── Relevancia
│   ├── Precio (menor a mayor)
│   ├── Precio (mayor a menor)
│   └── Más reciente
└── Paginación
    ├── Primera página
    ├── Página intermedia
    └── Última página

Con 4 x 4 x 4 x 3 = 192 combinaciones exhaustivas, pairwise produce aproximadamente 16-20 test cases.

Ejercicio: Construye un Árbol de Clasificación

Escenario: Estás probando una función de exportación de archivos:

  • Formato: PDF, CSV, Excel, JSON
  • Rango de datos: Últimos 7 días, Últimos 30 días, Rango personalizado, Todos los datos
  • Contenido: Solo resumen, Detallado, Con gráficos
  • Entrega: Descarga, Email, Almacenamiento en la nube

Tareas:

  1. Dibuja el árbol de clasificación
  2. Crea una tabla de combinación con al menos 6 test cases
  3. Asegura que cada clase aparezca en al menos un test case
Pista

La clasificación más grande tiene 4 clases, necesitas al menos 4 test cases para cobertura mínima. Para cubrir todas las clases necesitas 4-6 test cases.

Solución

Tabla de combinación (6 test cases, todas las clases cubiertas):

TC1TC2TC3TC4TC5TC6
PDFXX
CSVX
ExcelX
JSONXX
7 díasXX
30 díasX
PersonalizadoXX
TodosX
ResumenXX
DetalladoXX
Con gráficosXX
DescargaXX
EmailXX
NubeXX

6 tests en vez de 4 x 4 x 3 x 3 = 144 exhaustivos.

Tips de Profesional

  • Define el objeto de test claramente. Una raíz vaga lleva a un árbol vago. “Login” es mejor que “Gestión de Usuarios.”
  • Mantén las clasificaciones independientes. Si dos clasificaciones son altamente dependientes, considera fusionarlas o agregar constraints.
  • Usa CTM para comunicación. El árbol visual es excelente para reuniones de revisión.
  • Refina iterativamente. Comienza con un árbol simple, luego agrega sub-clasificaciones.
  • Marca combinaciones inválidas. En la tabla, marca combinaciones imposibles para evitar generar test cases inútiles.