¿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
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
| TC1 | TC2 | TC3 | TC4 | TC5 | |
|---|---|---|---|---|---|
| Tarjeta de Crédito | X | X | |||
| PayPal | X | X | |||
| Transferencia | X | ||||
| Pequeño | X | X | |||
| Medio | X | X | |||
| Grande | X | ||||
| USD | X | X | |||
| EUR | X | X | |||
| GBP | X |
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:
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:
- Construir el árbol de clasificación
- Listar todas las clases de nodos hoja como parámetros
- Alimentar en PICT o generar combinaciones pairwise manualmente
- 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:
- Dibuja el árbol de clasificación
- Crea una tabla de combinación con al menos 6 test cases
- 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):
| TC1 | TC2 | TC3 | TC4 | TC5 | TC6 | |
|---|---|---|---|---|---|---|
| X | X | |||||
| CSV | X | |||||
| Excel | X | |||||
| JSON | X | X | ||||
| 7 días | X | X | ||||
| 30 días | X | |||||
| Personalizado | X | X | ||||
| Todos | X | |||||
| Resumen | X | X | ||||
| Detallado | X | X | ||||
| Con gráficos | X | X | ||||
| Descarga | X | X | ||||
| X | X | |||||
| Nube | X | X |
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.