¿Porqué la Partición de Equivalencia divide los datos en particiones?
La técnica de «Partición de Equivalencia» divide los datos de prueba en particiones o grupos con el objetivo de reducir la cantidad de pruebas necesarias. Cada partición representa un conjunto de datos que se espera que el sistema maneje de manera similar. La idea es que si un caso de prueba funciona para un valor dentro de la partición, probablemente funcionará para los demás valores de esa misma partición. Esto permite cubrir muchos escenarios con menos casos de prueba, haciéndolo más eficiente sin comprometer la calidad de las pruebas.
Sintéticamente, se agrupan valores de entrada que deberían comportarse de la misma forma para el sistema, de manera que solo sea necesario probar un valor de cada grupo, ahorrando tiempo y esfuerzo en el proceso de prueba.
En la página principal de Despegar (https://www.despegar.com.ar/), tenemos varios campos de entrada donde se pueden aplicar la técnica de Partición de Equivalencia. Estos campos suelen corresponder a búsquedas de vuelos, hoteles, paquetes turísticos, alquiler de autos, entre otros servicios.
- Campo de «Origen» y «Destino»:
- Particiones posibles:
- Nombres de ciudades válidas (Buenos Aires, Madrid, etc.)
- Nombres de ciudades no válidas (cualquier entrada no relacionada con una ciudad)
- Campos vacíos
- Particiones posibles:
- Fecha de «Ida» y «Vuelta»:
- Particiones posibles:
- Fechas válidas (futuras)
- Fechas no válidas (pasadas o formato incorrecto)
- Fecha de vuelta antes de la fecha de ida
- Particiones posibles:
- Número de pasajeros:
- Particiones posibles:
- Números válidos (1 a un máximo permitido)
- Números no válidos (0, números negativos, o por encima del límite)
- Particiones posibles:
- Clase de servicio (Económica, Ejecutiva, Primera Clase):
- Particiones posibles:
- Opciones válidas (económica, ejecutiva, primera clase)
- Opción no válida (selección no disponible)
- Particiones posibles:
Al aplicar la técnica de Partición de Equivalencia en estos campos, podemos simplificar nuestras pruebas, asegurando que al menos un valor de cada partición sea probado para verificar el comportamiento del sistema.
Ejercicio 1
Un programa valida campos numéricos como los siguientes: Valores menores que 10 son rechazados, valores entre 10 y 21 son aceptados, valores mayores o iguales a 22 son rechazados. ¿Cuál de los siguientes valores de entrada cubren todas las clases de equivalencia?
a) 3, 10, 22
b) 10, 11, 21
c) 3, 20, 21
d) 10, 21, 22
Resolución y Justificación
Opción | Evaluación | Resultado |
---|---|---|
a) 3, 10, 22 | Esta opción cubre todas las clases de equivalencia: – Clase de valores menores que 10 (3) – Clase de valores aceptados entre 10 y 21 (10 es el límite inferior aceptado) – Clase de valores mayores o iguales a 22 (22 es el valor mínimo rechazado por ser igual a 22) | Correcta. Esta opción cubre todas las clases de equivalencia identificadas. |
b) 10, 11, 21 | Solo cubre la clase de valores aceptados entre 10 y 21. No incluye valores menores que 10 ni valores iguales o mayores a 22. | Incorrecta. No cubre todas las clases de equivalencia. |
c) 3, 20, 21 | Cubre la clase de valores menores que 10 (3) y la clase de valores aceptados entre 10 y 21 (20 y 21). Sin embargo, no incluye valores mayores o iguales a 22. | Incorrecta. Falta una clase de equivalencia importante. |
d) 10, 21, 22 | Cubre la clase de valores aceptados (10 y 21) y la clase de valores rechazados (22). Sin embargo, no incluye valores menores que 10. | Incorrecta. No cubre todas las clases de equivalencia. |
Conclusión
La respuesta correcta es la opción (a) 3, 10, 22 porque incluye un valor de cada una de las clases de equivalencia (menor que 10, entre 10 y 21, y mayor o igual a 22).
Ejercicio 2
Un sistema de verificación de edad procesa los siguientes rangos para determinar la categoría de una persona:
- Menores de 18 años no pueden acceder.
- Entre 18 y 64 años son adultos y tienen acceso completo.
- Mayores o iguales a 65 años reciben acceso restringido.
¿Cuál de los siguientes conjuntos de valores de entrada cubre todas las clases de equivalencia?
Opciones:
- a) 16, 18, 65
- b) 17, 30, 64
- c) 18, 64, 66
- d) 18, 65, 70
Resolución y Justificación
Opción | Evaluación | Resultado |
---|
a) 16, 18, 65 | Esta opción cubre todas las clases de equivalencia: – Clase de valores menores de 18 (16) – Clase de valores entre 18 y 64 (18) – Clase de valores mayores o iguales a 65 (65) | Correcta. Esta opción cubre todas las clases de equivalencia identificadas. |
b) 17, 30, 64 | Solo cubre las clases de menores de 18 (17) y valores entre 18 y 64 (30, 64). No incluye la clase de valores mayores o iguales a 65. | Incorrecta. No cubre todas las clases de equivalencia. |
c) 18, 64, 66 | Cubre las clases de valores entre 18 y 64 (18, 64) y valores mayores o iguales a 65 (66). No incluye valores menores de 18. | Incorrecta. Falta una clase de equivalencia importante. |
d) 18, 65, 70 | Solo cubre las clases de valores entre 18 y 64 (18) y valores mayores o iguales a 65 (65, 70). No incluye valores menores de 18. | Incorrecta. No cubre todas las clases de equivalencia. |
Conclusión
La respuesta correcta es la opción (a) 16, 18, 65 porque incluye un valor de cada una de las clases de equivalencia (menor de 18, entre 18 y 64, y mayor o igual a 65).
Momento para reflexionar
Lo importante con este tipo de técnicas es entender su alcance como para aplicarla cuando enfrentemos un análisis de algún componente sobre el que debamos hacer testing.
Por lo tanto, cuanto más practiquemos mejor será nuestro rendimiento al momento de analizar y evaluar si aplica o nó la técnica.
Por otra parte, ahora con la IAGen mucho de todo lo que veníamos haciendo de manera manual lo podemos acelerar y aprovechar el tiempo que ganamos para analizar la devolución de la inteligencia artificial.
Comentario final
Si te ha servido este contenido basado en el programa de estudios del ISTQB CTFL v4.0, me alegro y mucho. También te cuento que me puedes seguir en LinkedIn e interactuar con otros colegas testers que me siguen y que están interesados en contenidos relacionados con agile testing, inteligencia artificial y OKRs aplicado a testing. Muchas gracias