La técnica de partición de equivalencia (según ISTBQ) consiste en dividir los datos en diferentes particiones para probar al menos uno por cada una de ellas, esperándo que todos los elementos de la misma partición sean tratados de igual manera. Existen dos tipos de particiones:
- Partición de equivalencia válida: Está conformada por todos los valores válidos que debe aceptar el componente o sistema a prueba.
- Partición de equivalencia no válida: Se conforma por todos los valores no válidos y los cuales no deben ser aceptados por el componente o sistema.
Ejemplo
Imagina que estás probando un sistema que se encarga de registrar la presión arterial (sistólica/diastólica, si no sabes mucho de medicina no te preocupes ya que sólo consideraremos los números) de pacientes, pero con el fin de estabilizar problemas de hipertensión (presión arterial alta) o hipotensión (presión arterial baja) el sistema no permitirá que se capturen datos que estén fuera del rango normal (el paciente debe ser estabilizado en ese momento). Vamos a considerar la siguiente tabla:
Y nos centraremos sólo en la presión sistólica pero en la categoría normal, por lo tanto:
Entonces ¿Cuál es el número mínimo de casos de prueba necesarios para cubrir todas las particiones de equivalencia válidas para la presión sistólica normal? Pregunta al estilo ISTQB.
Como puedes observar, tenemos 3 particiones:
- Hipotensión: Partición de equivalencia no válida para valores menores a 80.
- Normal: Partición de equivalencia válida para valores entre 80 y 120.
- Hipertensión: Partición de equivalencia no válida para valores mayores a 120.
Entonces el conjunto de entradas de las pruebas para lograr la cobertura de las particiones sería 3 números, por ejemplo:
- Hipotensión: 56.
- Normal: 110.
- Hipertensión: 128.
Si por ejemplo consideras 80, 100 y 140 estarías dejando fuera la partición para la hipotensión, ya que 80 y 100 son valores contemplados para la presión normal y 140 para hipertensión.
Recuerda lo que nos dice ISTQB en relación con esta técnica:
- Una partición se puede dividir en subpartes cuando es requerido.
- Cada uno de los valores sólo debe pertenecer a una partición, cuida mucho los intervalos (mayor que, menor que, mayor o igual, etc.), es de suma importancia pues un descuido en esta parte podría desencadenar un bug con alta o crítica prioridad (imagina una mala medición para pacientes con hipertensión).
- Prueba las particiones de equivalencia no válidas por separado, no las combines con otras no válidas, por ejemplo, si vas a probar la partición para la hipotensión no lo hagas al mismo tiempo que pruebas los valores para la hipertensión. Podrían surgir varios fallos pero sólo uno de ellos podría ser posible, lo que pudiera ocasionar que otros quedaran sin ser detectados.
- Para lograr una cobertura del 100% con esta técnica debes utilizar al menos un valor como mínimo para cada partición.
- La partición de equivalencia se puede aplicar a todos los niveles de prueba.
Conclusión
Para implementar la técnica de partición de equivalencia debes identificar los diferentes segmentos en los cuales se puede dividir una funcionalidad o un sistema, para así probar al menos un valor o escenario de cada uno de ellos. No existe una regla que indique el número de flujos o valores que se deben probar por cada partición o que todos los segmentos que estás probando deben contemplar el mismo valor que los otros, eso te lo indicará la experiencia y la importancia del sistema o funcionalidad principalmente. Yo no recomendaría dejar ningúna partición sin contemplar para pruebas, aún cuando sean pruebas de regresión, nunca sabes qué relación tienen los compontentes o funciones internamente y qué impacto van a tener en las otras partes del código relacionadas aún cuando “no se le movió nada”.