Ir al contenido
wannacode

Valores límite

En resumen: Un límite es el último valor de una partición y el primero de la siguiente. Con dos puntos pruebas el límite y su vecino de la otra partición: 49,99 y 50,00 €. Con tres puntos, también los vecinos de ambos lados: 49,99, 50,00 y 50,01 €. Así se atrapan «>» en lugar de «>=», los redondeos y los errores por uno, que un representante del medio de la partición nunca ve.

Problema

Las pruebas pasaron, el límite no

De la lección anterior tienes tres pruebas del envío: 0 €, 30 € y 80 €. Todas pasan. El programador escribió:

el envío es gratis si el total es > 50

Un carrito de 50,00 € paga 4,90 €. La prueba con 80 € es de la misma partición y pasa, porque 80 es a la vez > 50 y >= 50. Un representante del medio de la partición no puede ver dónde termina exactamente la partición.

La idea

El límite

Las particiones del envío están ordenadas: vacío, de pago, gratis. El lugar donde una partición termina y empieza la siguiente es el límite:

Partición Desde Hasta
carrito vacío 0 € 0 €
envío de pago 0,01 € 49,99 €
envío gratis 50,00 € sin límite superior

Los valores límite son el valor más pequeño y el más grande de cada partición. Ahí los errores se concentran más, porque ahí el programador decide «>» o «>=», redondea, cuenta desde 0 o desde 1. Un trazo equivocado en el código mueve el límite un paso. El paso para los importes es un céntimo.

El análisis de valores límite solo funciona con particiones ordenadas: importes, cantidades, fechas. Un método de pago no tiene «antes» ni «después».

La idea

Dos puntos y tres puntos

Hay dos maneras.

Con dos puntos: en cada límite pruebas el valor límite y su vecino de la otra partición. Para el envío: 0 y 0,01 €; 49,99 y 50,00 €. Cuatro pruebas.

Con tres puntos: para cada valor límite pruebas ese valor y sus dos vecinos. Alrededor de 50,00 €: 49,99, 50,00 y 50,01 €.

¿Por qué tres? Imagina un código que dice «el envío es gratis si el total es exactamente 50». Con dos puntos: 49,99 paga, 50,00 es gratis. Pasa. Con tres puntos, 50,01 € tiene que ser gratis, y el código cobra 4,90 €. Atrapado.

Tres puntos cuestan más pruebas y atrapan más errores. Cuál elegir depende del riesgo: para el pago valen la pena, para el color de un botón no.

Más precisamente, para curiosos

ISTQB CTFL v4.0.1 describe la técnica en la sección 4.2.2 (análisis de valores límite) con las dos variantes: BVA de 2 valores y BVA de 3 valores. La cobertura es el número de valores límite probados (con sus vecinos, en el caso de tres puntos) sobre el total. Según el plan de estudios, tres puntos son más rigurosos: atrapan errores que dos puntos dejan pasar.

La técnica se apoya en las particiones de equivalencia. Sin particiones no está claro dónde están los límites, y sin límites las particiones pierden los errores más comunes.

Pruébalo

¿Qué valores?

1. El límite entre envío de pago y envío gratis está en 50,00 €. ¿Qué valores da el análisis de dos valores?
2. ¿Qué valores da el análisis de tres valores alrededor de 50,00 €?
3. El programador escribió «el total es exactamente 50 → gratis» en lugar de «desde 50 en adelante». ¿Qué valor atrapa el error?
4. ¿Cuáles son los límites de la partición «envío de pago»?

La idea

49,99 no es 30

49,99 € y 30 € están en una misma partición. Entonces, ¿por qué 49,99 es la mejor prueba?

Porque algunos errores solo se ven junto al límite. Si el código redondea el total a euros enteros antes de comparar, 49,99 € se convierte en 50 € y el envío pasa a ser gratis. 30 € redondeado sigue siendo 30, y la prueba pasa.

Una buena prueba está donde el error se mostraría. El medio de la partición es el lugar más seguro, y por eso es el peor lugar para una prueba.

Pruébalo

Los límites del envío

Escribe las pruebas de los límites del envío, con dos puntos. Atrapa todos los errores con las menos filas posibles.

La regla: El envío es gratis en un pedido desde 50 € (incluidos), si no, cuesta 4,90 €. Un carrito vacío no se puede pedir.

EntradaEsperadoEl sistema correcto
#Total del carritoRechazadoEnvío

Una celda de resultado vacía no se comprueba. Los importes se escriben como 49,99.

La idea

Los límites están en todas partes

Siempre que una regla tiene un número, tiene un límite:

  • Cantidades: como mucho 10 unidades de un producto. 10 se acepta, 11 se rechaza. Y desde abajo: añades al menos 1 unidad, así que 0 se rechaza.
  • Días: devoluciones dentro de los 14 días desde la recepción. Recibido el 1 de octubre: el 15 de octubre se acepta, el 16 de octubre se rechaza.
  • Hora: el código vale hasta el 31 de octubre. 23:59, y las 00:00 del 1 de noviembre. ¿Y con el reloj de quién?
  • Dos límites a la vez: el límite es sobre las unidades en el carrito, no sobre lo que se añade. 9 en el carrito más 1 son 10 y se acepta. 10 más 1 son 11 y se rechaza.

Un valor límite suele abrir una pregunta que el requisito no hizo. «Dentro de los 14 días»: ¿inclusive? ¿Desde la recepción o desde la entrega? Eso también es revisión: el diseño de pruebas hecho pronto es la mejor lista de comprobación para los requisitos.

Ejercicio

Los límites del tope y de los días

1. El límite del carrito. Hay dos límites: sobre la cantidad que se añade y sobre las unidades que quedan en el carrito después de añadir.

Escribe las pruebas de los dos límites del tope: cuántas unidades se añaden (0 y 1) y cuántas quedan en el carrito (10 y 11). Comprueba también lo que queda en el carrito.

La regla: En el carrito puede haber como mucho 10 unidades de un producto. Añadir por encima de 10 se rechaza con un mensaje, y el carrito queda igual. Se añade al menos 1 unidad.

EntradaEsperadoEl sistema correcto
#En el carritoAñadoRechazadoEn el carrito después

Una celda de resultado vacía no se comprueba. Los importes se escriben como 49,99.

2. Días y cantidades. Encuentra los valores límite.

1. La regla: «Devoluciones dentro de los 14 días desde la recepción». El paquete se recibió el 1 de octubre. ¿Qué días da el análisis de dos valores?
2. El código promocional vale hasta el 31 de octubre inclusive. ¿Qué momento es la prueba más importante?
3. El carrito admite como mucho 10 unidades de un producto. ¿Cuáles son los valores límite de las unidades en el carrito después de añadir?

Test

Ponte a prueba

1. ¿Por qué los errores se concentran más en los límites?
2. ¿Cuándo se aplican los valores límite?
3. ¿Qué atrapa 49,99 € que no atrapa 30 €?
4. ¿Cuántos valores límite tiene la regla del envío con el análisis de dos valores?

Creado por Ivo Gergov como parte de la campaña de Evo Tech por una educación accesible en programación ·