Lección 3 de 7 · 2 min
Técnicas de caja negra
El problema: infinitos inputs, tiempo finito
Un campo "edad" acepta números. ¿Pruebas con 1, 2, 3, 4... hasta 120? Las técnicas de caja negra existen para elegir los pocos valores que representan a todos los demás.
Particiones de equivalencia
Divide los inputs en clases donde el sistema debería comportarse igual, y prueba un representante de cada una.
Campo edad, regla de negocio "mayores de 18, menores de 100":
- Clase inválida baja: edad menor que 18 → prueba con 10
- Clase válida: 18 a 99 → prueba con 35
- Clase inválida alta: 100 o más → prueba con 150
- Clases inválidas de tipo: vacío, "abc", "-5", "18.5"
Seis casos cubren lo que la fuerza bruta cubriría con cientos.
Valores límite
Los bugs aman los bordes: los errores de "mayor que" vs "mayor o igual" viven exactamente ahí. Por cada frontera, prueba el valor en el límite y sus vecinos inmediatos:
Para la regla "desde 18 hasta 99": prueba 17, 18, 19 y 98, 99, 100.
Regla mnemotécnica: si la partición es el barrio, el valor límite es la casa en la esquina — ahí chocan los autos.
Tablas de decisión
Cuando el comportamiento depende de combinaciones de condiciones, la tabla evita que se te escape una:
| Regla | Cliente frecuente | Compra sobre $50.000 | Descuento | |---|---|---|---| | R1 | Sí | Sí | 15% | | R2 | Sí | No | 10% | | R3 | No | Sí | 5% | | R4 | No | No | 0% |
Cuatro condiciones binarias = 16 combinaciones. La tabla te obliga a decidir qué esperar en cada una antes de probar — y las combinaciones "imposibles" que descubres suelen ser los mejores bugs.
Transición de estados
Para flujos con pasos (carrito → pago → confirmación), dibuja los estados y prueba las transiciones inválidas: ¿puedo llegar a "confirmación" sin pasar por "pago"? ¿Qué pasa si refresco en "pago"?
Ejercicio
Un formulario de reserva pide fecha (solo días futuros, máximo 60 días) y teléfono chileno (+56 9 XXXX XXXX). Deriva los casos usando particiones y valores límite. Deberías llegar a unos 12 casos — si tienes 30, estás enumerando; si tienes 4, te falta un borde.