18. Diseño de casos de prueba: tablas de decisión

18.1 Introducción

Muchas reglas de negocio dependen de más de una condición. Por ejemplo, un sistema puede aplicar un descuento según el tipo de cliente, el importe de la compra y si existe una promoción activa. Probar solo una condición por separado puede dejar combinaciones importantes sin cubrir.

Las tablas de decisión son una técnica de diseño de pruebas que permite ordenar condiciones, combinaciones y acciones esperadas. Son especialmente útiles cuando una decisión depende de varias reglas.

En este tema veremos cómo construir tablas de decisión y cómo convertirlas en casos de prueba.

18.2 ¿Qué es una tabla de decisión?

Una tabla de decisión es una representación tabular de condiciones y acciones. Cada columna suele representar una regla o combinación posible. Cada fila representa una condición o una acción.

La tabla ayuda a responder:

  • ¿Qué condiciones influyen en el resultado?
  • ¿Qué combinaciones son posibles?
  • ¿Qué acción corresponde en cada combinación?
  • ¿Hay combinaciones no definidas?
  • ¿Existen reglas contradictorias?

Esta técnica obliga a mirar la lógica completa, no solo casos aislados.

18.3 Estructura básica

Una tabla de decisión suele tener dos partes:

  • Condiciones: preguntas o variables que pueden cambiar.
  • Acciones: resultados o comportamientos esperados según las condiciones.

Ejemplo simple:

Regla 1 Regla 2
Condición: usuario autenticado No
Acción: permitir acceso No

En casos reales puede haber más condiciones y muchas más combinaciones.

18.4 Cuándo conviene usar tablas de decisión

Conviene usar esta técnica cuando:

  • El resultado depende de varias condiciones.
  • Hay reglas de negocio combinadas.
  • Existen permisos, descuentos, estados o validaciones con múltiples criterios.
  • Las condiciones pueden ser verdaderas o falsas.
  • Hay riesgo de olvidar combinaciones.
  • Se necesita discutir reglas con negocio o analistas.
  • Los requisitos tienen frases como "si", "cuando", "excepto", "siempre que" o "salvo que".

No hace falta usar tablas de decisión para reglas simples con una sola condición. Su valor aparece cuando la lógica combinada se vuelve difícil de seguir mentalmente.

18.5 Pasos para construir una tabla de decisión

Una forma práctica de construirla es:

  1. Identificar la decisión que se quiere probar.
  2. Listar las condiciones que influyen en esa decisión.
  3. Listar las acciones o resultados posibles.
  4. Crear combinaciones de valores para las condiciones.
  5. Definir la acción esperada para cada combinación.
  6. Revisar si hay combinaciones imposibles, repetidas o contradictorias.
  7. Convertir reglas relevantes en casos de prueba.

El objetivo no es hacer una tabla grande porque sí, sino aclarar la lógica y seleccionar pruebas con criterio.

18.6 Ejemplo 1: acceso a una pantalla

Regla:

Para acceder a una pantalla administrativa, el usuario debe estar autenticado y tener rol administrador.

Condiciones:

  • Usuario autenticado.
  • Usuario administrador.

Acción:

  • Permitir acceso.
R1 R2 R3 R4
Autenticado No No
Administrador No No
Permitir acceso No No No

Esta tabla muestra que solo una combinación permite el acceso: usuario autenticado y administrador.

18.7 De tabla a casos de prueba

Cada regla puede convertirse en un caso de prueba:

Regla Caso de prueba Resultado esperado
R1 Acceder con usuario autenticado administrador. Permitir acceso.
R2 Acceder con usuario autenticado no administrador. Rechazar acceso.
R3 Acceder sin sesión, pero con un usuario que sería administrador. Rechazar acceso y solicitar inicio de sesión.
R4 Acceder sin sesión y sin rol administrador. Rechazar acceso.

En algunos contextos, R3 puede ser imposible porque si no hay sesión no se conoce el rol. En ese caso se marca como combinación no aplicable o se redefine la tabla.

18.8 Combinaciones imposibles

No toda combinación teórica es posible en el sistema. Una tabla puede generar combinaciones que no tienen sentido en la realidad.

Ejemplo: "usuario no autenticado" y "rol administrador" puede ser una combinación difícil de probar porque si no hay sesión, el sistema no conoce el rol del usuario. Podemos representarlo con "No aplica" o simplificar la tabla.

Una tabla útil no solo enumera combinaciones, también ayuda a descubrir cuáles son válidas, imposibles o necesitan aclaración.

18.9 Ejemplo 2: descuento en compra

Regla:

Si el cliente es premium y la compra supera $1000, se aplica 15% de descuento.
Si el cliente es premium y la compra no supera $1000, se aplica 10%.
Si el cliente no es premium pero hay promoción activa, se aplica 5%.
En los demás casos no se aplica descuento.

Condiciones:

  • Cliente premium.
  • Compra mayor a $1000.
  • Promoción activa.
R1 R2 R3 R4 R5 R6 R7 R8
Cliente premium No No No No
Compra > $1000 No No No No
Promoción activa No No No No
Descuento esperado 15% 15% 10% 10% 5% 0% 5% 0%

La tabla deja claro que, para clientes premium, la promoción activa no cambia el descuento porque aplican reglas propias del cliente premium.

18.10 Simplificación de reglas

A veces varias columnas producen la misma acción porque una condición no influye en ese caso. En el ejemplo anterior:

  • Si el cliente es premium y la compra supera $1000, el descuento es 15%, exista o no promoción activa.
  • Si el cliente es premium y la compra no supera $1000, el descuento es 10%, exista o no promoción activa.

Podemos usar un guion para indicar "no importa":

R1 R2 R3 R4
Cliente premium No No
Compra > $1000 No - -
Promoción activa - - No
Descuento esperado 15% 10% 5% 0%

La simplificación reduce casos cuando una condición no afecta la acción esperada.

18.11 Ejemplo 3: aprobación de préstamo

Regla simplificada:

Se aprueba un préstamo si el cliente tiene ingresos suficientes, no tiene deuda vencida y presenta documentación completa.

Tabla:

R1 R2 R3 R4
Ingresos suficientes No
Deuda vencida No - No
Documentación completa - - No
Aprobar préstamo No No No

La tabla simplificada muestra reglas clave: si no hay ingresos suficientes, no importa el resto; si hay deuda vencida, no se aprueba; si falta documentación, tampoco se aprueba.

18.12 Tablas completas y tablas simplificadas

Una tabla completa muestra todas las combinaciones posibles. Si hay 3 condiciones binarias, hay 8 combinaciones. Si hay 4 condiciones binarias, hay 16. La cantidad crece rápido.

Una tabla simplificada combina reglas cuando algunas condiciones no importan para cierta acción. Esto reduce casos, pero debe hacerse con cuidado para no ocultar combinaciones relevantes.

Cantidad de combinaciones binarias = 2 elevado a la cantidad de condiciones.

Si una tabla se vuelve demasiado grande, puede ser señal de que la regla necesita dividirse, aclararse o probarse con más técnicas.

18.13 Condiciones con más de dos valores

No todas las condiciones son solo Sí o No. Algunas pueden tener varios valores.

Ejemplo:

  • Tipo de cliente: común, premium, corporativo.
  • Estado de orden: pendiente, confirmada, enviada, cancelada.
  • Medio de pago: tarjeta, transferencia, efectivo.

En estos casos la tabla puede crecer. Conviene agrupar valores equivalentes cuando sea correcto o dividir la regla en tablas más pequeñas.

18.14 De reglas a datos concretos

Una tabla de decisión define combinaciones lógicas, pero los casos de prueba necesitan datos concretos.

Ejemplo para descuento:

Regla Condiciones Datos concretos Resultado esperado
R1 Premium, compra > $1000 Cliente premium, compra de $1500 15% de descuento.
R2 Premium, compra no supera $1000 Cliente premium, compra de $800 10% de descuento.
R3 No premium, promoción activa Cliente común, compra de $800, promoción activa 5% de descuento.
R4 No premium, sin promoción Cliente común, compra de $800, promoción inactiva 0% de descuento.

Sin datos concretos, la tabla todavía no es un caso ejecutable.

18.15 Ventajas

Las tablas de decisión tienen varias ventajas:

  • Ordenan reglas complejas.
  • Ayudan a detectar combinaciones olvidadas.
  • Facilitan conversar con negocio y analistas.
  • Permiten transformar reglas en casos de prueba.
  • Revelan contradicciones o ambigüedades.
  • Son útiles para permisos, descuentos, aprobaciones, validaciones y estados.

También ayudan a justificar por qué se seleccionaron ciertos casos.

18.16 Límites

La técnica también tiene límites:

  • Puede generar muchas combinaciones si hay demasiadas condiciones.
  • No reemplaza clases de equivalencia ni valores límite.
  • Puede volverse difícil de mantener si las reglas cambian con frecuencia.
  • Depende de entender correctamente la lógica de negocio.
  • No siempre muestra secuencia o cambios de estado en el tiempo.

Si el foco está en cómo cambia un objeto de estado a estado, puede ser mejor usar transiciones de estado, técnica que veremos en el próximo tema.

18.17 Errores comunes

Al usar tablas de decisión, algunos errores frecuentes son:

  • Olvidar una condición relevante.
  • No definir claramente las acciones esperadas.
  • Crear combinaciones imposibles y tratarlas como válidas.
  • No convertir reglas en casos con datos concretos.
  • No revisar la tabla con personas que conocen el negocio.
  • Simplificar demasiado y perder cobertura importante.
  • Intentar usar una tabla enorme cuando convendría dividir la regla.

La tabla debe ayudar a pensar, no convertirse en una matriz incomprensible.

18.18 Buenas prácticas

Para aplicar bien esta técnica conviene:

  • Nombrar claramente cada condición.
  • Definir acciones observables.
  • Marcar combinaciones imposibles o no aplicables.
  • Usar guiones cuando una condición no importa para cierta regla.
  • Revisar la tabla con negocio o analistas.
  • Convertir cada regla relevante en un caso de prueba.
  • Agregar datos concretos para ejecutar los casos.
  • Actualizar la tabla si cambian las reglas.

18.19 Qué debes recordar de este tema

  • Las tablas de decisión sirven cuando el resultado depende de varias condiciones.
  • Una tabla tiene condiciones y acciones.
  • Cada columna representa una regla o combinación.
  • Ayudan a detectar combinaciones olvidadas, contradictorias o imposibles.
  • Las tablas completas muestran todas las combinaciones; las simplificadas reducen reglas cuando ciertas condiciones no importan.
  • Una regla de tabla debe convertirse en un caso con datos concretos.
  • La técnica es muy útil para permisos, descuentos, aprobaciones y validaciones.
  • Cuando el problema depende de estados y secuencia, puede convenir usar transiciones de estado.

18.20 Conclusión

Las tablas de decisión son una técnica muy útil para probar reglas de negocio con múltiples condiciones. Permiten visualizar combinaciones, acciones esperadas y posibles huecos en la especificación.

Su valor está en ordenar la lógica antes de ejecutar pruebas. Una buena tabla ayuda a conversar con el equipo, aclarar reglas y derivar casos de prueba concretos.

En el próximo tema estudiaremos transiciones de estado, una técnica especialmente útil cuando el sistema cambia de un estado a otro según eventos o acciones.