Saltar al contenido

Prueba con tabla de decisión, ejemplo resuelto (estilo ISTQB Foundation 4.2.3)

Un diseño de pruebas con tabla de decisión resuelto al estilo de la sección del temario ISTQB Foundation sobre pruebas con tablas de decisión: tres condiciones, una regla de envío gratuito, ocho combinaciones, y un conjunto menor de casos de prueba que cubre todas las reglas de negocio.

La regla es (over_50 OR prime) AND NOT oversized: el envío es gratuito para un pedido de más de cincuenta o de un cliente Prime, salvo que el paquete sea voluminoso. Con tres condiciones booleanas, la tabla de decisión completa tiene ocho columnas, una por combinación, y la tabla de verdad del motor de abajo es exactamente esa tabla con la fila de acciones calculada en lugar de rellenada a mano. Tres columnas dan envío gratuito: más de cincuenta y no voluminoso, Prime y no voluminoso, y las dos cosas y no voluminoso.

El método del temario es escribir las condiciones como filas, enumerar las combinaciones como columnas, rellenar las acciones, y después colapsar las columnas cuyo resultado no depende de una condición. Aquí, toda columna con paquete voluminoso tiene la misma acción sean cuales sean las otras dos condiciones, así que las cuatro columnas voluminosas colapsan en una regla: voluminoso significa sin envío gratuito. Las otras cuatro columnas siguen siendo distintas: ninguna de las dos cosas, más de cincuenta, Prime, las dos cosas.

Cada columna superviviente se convierte en al menos un caso de prueba con su resultado esperado tomado del enunciado de la regla, no de ejecutar el código. Eso da cinco casos de prueba donde la prueba exhaustiva usaría ocho; para una regla con seis condiciones la diferencia es sesenta y cuatro frente a un puñado. Las comprobaciones exactas de la página confirman que la regla es contingente y muestran una fila testigo, y la página del patrón de reglas de elegibilidad tiene la misma forma con dos condiciones más.

Ejemplo

free_shipping := (over_50 OR prime) AND NOT oversized · salida

Comprobaciones exactas

¿Siempre verdadera (tautología)? No Contraejemplo: over_50 = F, prime = F, oversized = F · Exhaustively checked and solver cross-checked · 1 filas
¿Siempre falsa (contradicción)? No Contraejemplo: over_50 = F, prime = V, oversized = F · Exhaustively checked and solver cross-checked · 3 filas
¿Puede ser verdadera? Sí Asignación de ejemplo: over_50 = F, prime = V, oversized = F · Exhaustively checked and solver cross-checked · 3 filas

Tabla de verdad (8 filas)

Prueba con tabla de decisión, ejemplo resuelto (estilo ISTQB Foundation 4.2.3)
#over_50primeoversizedfree_shipping
0FALSOFALSOFALSOFALSO
1FALSOFALSOVERDADEROFALSO
2FALSOVERDADEROFALSOVERDADERO
3FALSOVERDADEROVERDADEROFALSO
4VERDADEROFALSOFALSOVERDADERO
5VERDADEROFALSOVERDADEROFALSO
6VERDADEROVERDADEROFALSOVERDADERO
7VERDADEROVERDADEROVERDADEROFALSO

Lectura en lenguaje claro

Principiantefree_shipping es verdadero exactamente cuando se cumplen las dos condiciones siguientes:
1. al menos uno entre over_50 y prime es verdadero (pueden serlo ambos)
2. oversized es falso
En todos los demás casos, free_shipping es falso.
Sobre los operadores:
- AND (Y) solo es verdadero cuando todas sus partes son verdaderas.
- OR (O) es inclusivo: es verdadero en cuanto al menos una parte es verdadera, también cuando lo son varias.
- NOT (NO) invierte un valor: lo verdadero pasa a ser falso y lo falso, verdadero.
Intermediofree_shipping es verdadero exactamente cuando se cumplen las dos condiciones siguientes:
1. al menos uno entre over_50 y prime es verdadero (pueden serlo ambos)
2. oversized es falso
En todos los demás casos, free_shipping es falso.
Avanzadofree_shipping es verdadero exactamente cuando se cumplen las dos condiciones siguientes [conjunción ∧]:
1. al menos uno entre over_50 y prime es verdadero (pueden serlo ambos) [disyunción inclusiva ∨]
2. oversized es falso [negación ¬]
En todos los demás casos, free_shipping es falso.
Notación formal: (over_50 ∨ prime) ∧ ¬oversized

Diagrama lógico

Decision table testing, worked example (ISTQB Foundation 4.2.3 style) Decision table testing, worked example (ISTQB Foundation 4.2.3 style) over_50 prime oversized free_shipping AND OR NOT
Decision table testing, worked example (ISTQB Foundation 4.2.3 style) Decision table testing, worked example (ISTQB Foundation 4.2.3 style) over_50 prime oversized free_shipping AND OR NOT

El error habitual

Colapsar una columna a ojo porque la condición «parece irrelevante». Cuando Voluminoso es VERDADERO, las otras condiciones son irrelevantes para el resultado; cuando es FALSO, importan. Colapsa comparando resultados a lo largo de la tabla de verdad, que es para lo que sirve la tabla del motor.

Preguntas

¿Por qué no probar simplemente las ocho combinaciones?

Con tres condiciones puedes, y la tabla del motor da los resultados esperados. El método importa cuando las condiciones se multiplican: la tabla colapsada mantiene el número de pruebas cerca del número de reglas de negocio distintas y no de 2 elevado a n.

¿De dónde salen los resultados esperados?

Del enunciado de la regla. La tabla de verdad es el enunciado de la regla hecho exhaustivo; un conjunto de pruebas cuyas expectativas se produjeron ejecutando la implementación aprobaría con una implementación errónea.

Relacionado

Véase también

Pruebas y reglas

Generado a partir del motor de Tangibool, semántica tangibool-semantics/1, motor 1.0.0, compilación . Cada tabla, mapa, simplificación y veredicto de estas páginas lo calculó el motor de Tangibool al compilar el sitio, y cada afirmación la volvió a comprobar el mismo verificador exacto que usa la app. Los límites se indican donde aplican. © 2026 Foreranger LTD.