17. Diseño de casos de prueba: valores límite

17.1 Introducción

En el tema anterior estudiamos clases de equivalencia, una técnica que agrupa datos que deberían comportarse de manera similar. Ahora veremos una técnica complementaria: análisis de valores límite.

Los defectos suelen aparecer en los bordes de los rangos permitidos. Por ejemplo, si un sistema acepta edades entre 18 y 65, es más probable encontrar errores alrededor de 18 y 65 que en un valor intermedio como 35.

La técnica de valores límite ayuda a seleccionar datos cercanos a esos bordes para comprobar si el sistema acepta y rechaza correctamente.

17.2 Idea principal

Un valor límite es un valor ubicado en el borde entre una clase válida y una clase inválida. También se prueban valores inmediatamente antes y después del límite.

Ejemplo:

Regla: la edad permitida es de 18 a 65 años inclusive.
Límite inferior: 18.
Límite superior: 65.

Valores interesantes:

  • 17: justo antes del mínimo permitido.
  • 18: mínimo permitido.
  • 19: justo después del mínimo.
  • 64: justo antes del máximo.
  • 65: máximo permitido.
  • 66: justo después del máximo permitido.

Estos valores suelen revelar errores de comparación, como usar mayor que en lugar de mayor o igual que.

17.3 ¿Por qué los límites son importantes?

Muchos defectos ocurren por errores en condiciones. Por ejemplo:

  • Usar > cuando debía usarse >=.
  • Usar < cuando debía usarse <=.
  • Olvidar incluir el valor mínimo.
  • Olvidar incluir el valor máximo.
  • Interpretar mal si el límite es inclusive o exclusivo.
  • Validar en frontend, pero no en backend.

Por eso no alcanza con probar un valor central de una clase válida. También debemos revisar los bordes.

Si una regla dice "entre 18 y 65 inclusive", los valores 18 y 65 son tan importantes como los valores inválidos 17 y 66.

17.4 Relación con clases de equivalencia

Las clases de equivalencia y los valores límite se usan juntas. Primero podemos identificar clases y luego analizar sus bordes.

Ejemplo:

Clase Valores Tipo
Menor que 18 0 a 17 Inválida
Entre 18 y 65 18 a 65 Válida
Mayor que 65 66 en adelante Inválida

Los valores límite están en la frontera entre esas clases: 17, 18, 65 y 66. También se pueden incluir 19 y 64 para tener valores cercanos internos.

17.5 Pasos para aplicar valores límite

Una forma práctica de aplicar la técnica es:

  1. Identificar una regla con rango, longitud, cantidad, fecha o límite.
  2. Determinar si los límites son inclusivos o exclusivos.
  3. Identificar el límite inferior y el límite superior.
  4. Seleccionar valores justo antes del límite, en el límite y justo después.
  5. Definir resultado esperado para cada valor.
  6. Convertir esos valores en casos de prueba.

La clave es leer con precisión la regla. No es lo mismo "mayor que 18" que "mayor o igual que 18".

17.6 Ejemplo 1: edad permitida

Regla:

El sistema permite registrarse a personas de 18 a 65 años inclusive.
Valor Posición Resultado esperado
17 Justo antes del mínimo Rechazar registro.
18 Mínimo válido Aceptar registro.
19 Justo después del mínimo Aceptar registro.
64 Justo antes del máximo Aceptar registro.
65 Máximo válido Aceptar registro.
66 Justo después del máximo Rechazar registro.

17.7 Ejemplo 2: longitud de contraseña

Regla:

La contraseña debe tener entre 8 y 20 caracteres inclusive.

Valores límite por longitud:

  • 7 caracteres: inválida.
  • 8 caracteres: válida.
  • 9 caracteres: válida.
  • 19 caracteres: válida.
  • 20 caracteres: válida.
  • 21 caracteres: inválida.

En este caso no importa solamente el texto elegido, sino su cantidad de caracteres. El caso de prueba debe dejar clara la longitud usada.

17.8 Ejemplo 3: cantidad de productos

Regla:

El usuario puede comprar entre 1 y 10 unidades de un mismo producto.
Cantidad Resultado esperado
0 Rechazar compra o impedir seleccionar esa cantidad.
1 Aceptar compra.
2 Aceptar compra.
9 Aceptar compra.
10 Aceptar compra.
11 Rechazar compra.

Si además existe una regla de stock, debemos combinar este análisis con la disponibilidad real del producto.

17.9 Ejemplo 4: importe de transferencia

Regla:

Una transferencia debe ser mayor que $0 y menor o igual que $100.000.

Aquí el límite inferior es exclusivo y el superior es inclusivo. Eso cambia los resultados esperados:

  • $0: inválido porque debe ser mayor que cero.
  • $0,01: válido si se permiten centavos.
  • $100.000: válido.
  • $100.000,01: inválido.

Este ejemplo muestra por qué debemos leer cuidadosamente expresiones como "mayor que", "menor que", "mayor o igual" y "menor o igual".

17.10 Límites inclusivos y exclusivos

Un límite inclusivo forma parte del conjunto válido. Un límite exclusivo queda fuera.

Regla Significado Ejemplo con 18
Mayor que 18 18 no está permitido. 18 inválido, 19 válido.
Mayor o igual que 18 18 sí está permitido. 18 válido.
Menor que 18 18 no está permitido. 17 válido para esa regla, 18 inválido.
Menor o igual que 18 18 sí está permitido. 18 válido.

Muchos defectos aparecen cuando el sistema interpreta mal este detalle.

17.11 Fechas como valores límite

Los valores límite también aplican a fechas.

Regla:

Una promoción es válida desde el 1 de junio hasta el 30 de junio inclusive.

Fechas relevantes:

  • 31 de mayo: inválida.
  • 1 de junio: válida.
  • 2 de junio: válida.
  • 29 de junio: válida.
  • 30 de junio: válida.
  • 1 de julio: inválida.

En fechas también pueden aparecer problemas por zona horaria, hora exacta de inicio o fin, días hábiles, fines de semana y formato regional.

17.12 Límites en listas y cantidades

Algunas reglas no se expresan como números ingresados por el usuario, sino como cantidad de elementos permitidos.

Ejemplos:

  • Un carrito puede tener hasta 50 productos.
  • Un usuario puede registrar hasta 3 direcciones.
  • Un archivo puede contener hasta 1000 filas.
  • Una búsqueda muestra como máximo 20 resultados por página.

Para "hasta 3 direcciones", valores relevantes serían 2, 3 y 4. Para un archivo de hasta 1000 filas, probaríamos 999, 1000 y 1001.

17.13 Límites en campos de texto

En campos de texto, los límites suelen estar relacionados con longitud mínima y máxima.

Ejemplo:

El nombre de usuario debe tener entre 4 y 15 caracteres.

Longitudes a probar:

  • 3 caracteres: inválido.
  • 4 caracteres: válido.
  • 5 caracteres: válido.
  • 14 caracteres: válido.
  • 15 caracteres: válido.
  • 16 caracteres: inválido.

Además de longitud, puede ser necesario probar caracteres especiales, espacios, acentos o números si la regla los menciona.

17.14 Valores límite y decimales

Cuando trabajamos con decimales, debemos conocer la precisión permitida. No es lo mismo permitir enteros, dos decimales o cualquier cantidad de decimales.

Ejemplo:

El descuento permitido es de 0% a 50% inclusive, con hasta dos decimales.

Valores relevantes:

  • -0,01%: inválido.
  • 0%: válido.
  • 0,01%: válido.
  • 49,99%: válido.
  • 50%: válido.
  • 50,01%: inválido.
  • 10,999%: inválido si solo se permiten dos decimales.

En importes y porcentajes, los errores de redondeo también pueden ser importantes.

17.15 De valores límite a casos de prueba

Los valores elegidos deben convertirse en casos claros. Ejemplo para contraseña de 8 a 20 caracteres:

Longitud Caso de prueba Resultado esperado
7 Ingresar contraseña de 7 caracteres. Rechazar y mostrar mensaje de longitud mínima.
8 Ingresar contraseña de 8 caracteres. Aceptar si cumple las demás reglas.
20 Ingresar contraseña de 20 caracteres. Aceptar si cumple las demás reglas.
21 Ingresar contraseña de 21 caracteres. Rechazar y mostrar mensaje de longitud máxima.

Según riesgo y tiempo disponible, podemos incluir también 9 y 19 como valores internos cercanos.

17.16 Ventajas

El análisis de valores límite tiene varias ventajas:

  • Encuentra defectos frecuentes en comparaciones.
  • Reduce la cantidad de datos necesarios.
  • Complementa muy bien las clases de equivalencia.
  • Es fácil de explicar y justificar.
  • Sirve para números, fechas, cantidades, longitudes y porcentajes.
  • Ayuda a probar reglas inclusivas y exclusivas.

Es una técnica muy práctica porque muchas reglas de negocio tienen límites.

17.17 Límites

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

  • No aplica igual si no existen rangos o bordes claros.
  • No cubre combinaciones complejas de condiciones.
  • No reemplaza pruebas exploratorias ni análisis de reglas de negocio.
  • Puede ser insuficiente si hay dependencias entre varios campos.
  • Depende de conocer con precisión los límites permitidos.

Cuando hay muchas condiciones combinadas, conviene complementarla con tablas de decisión u otras técnicas.

17.18 Errores comunes

Al aplicar valores límite, algunos errores frecuentes son:

  • Probar solo un valor central y olvidar los bordes.
  • No distinguir límites inclusivos y exclusivos.
  • Probar solo el mínimo y olvidar el máximo.
  • No probar el valor justo fuera del rango.
  • Usar datos que no respetan otras reglas del campo.
  • Olvidar límites en fechas, cantidades o longitudes de texto.
  • No considerar decimales cuando la regla los permite.

Estos errores pueden dejar sin cubrir justamente las zonas donde más suelen aparecer defectos.

17.19 Buenas prácticas

Para aplicar bien esta técnica conviene:

  • Identificar claramente mínimo y máximo.
  • Confirmar si los límites son inclusivos o exclusivos.
  • Probar valores justo antes, en el límite y justo después.
  • Aplicar la técnica a rangos numéricos, fechas, longitudes y cantidades.
  • Combinarla con clases de equivalencia.
  • Definir resultados esperados precisos para cada valor.
  • Considerar precisión decimal, formato y redondeo cuando corresponda.
  • Revisar límites cada vez que cambie la regla de negocio.

17.20 Qué debes recordar de este tema

  • Los valores límite están en los bordes entre clases válidas e inválidas.
  • Los defectos suelen aparecer cerca de mínimos, máximos y cambios de condición.
  • Conviene probar valores justo antes, en el límite y justo después.
  • Es importante distinguir límites inclusivos y exclusivos.
  • La técnica aplica a números, fechas, longitudes, cantidades, porcentajes y listas.
  • Valores límite complementa a clases de equivalencia.
  • Los casos deben indicar datos concretos y resultado esperado.
  • Cuando existen reglas combinadas, puede ser necesario usar técnicas adicionales.

17.21 Conclusión

El análisis de valores límite es una técnica simple y poderosa. Permite enfocarse en los bordes de una regla, donde suelen aparecer errores de comparación, inclusión, exclusión, redondeo o interpretación.

Combinada con clases de equivalencia, ayuda a diseñar pruebas más completas sin probar todos los valores posibles. Es especialmente útil en rangos, longitudes, fechas, cantidades y límites de negocio.

En el próximo tema estudiaremos tablas de decisión, una técnica muy útil cuando el resultado depende de varias condiciones combinadas.