Partición de equivalencia o clase de equivalencia (CE)
Las pruebas se ejecutan utilizando un único representante de cada CE.
Para todo otro valor perteneciente a la CE se espera el mismo comportamiento que para el valor seleccionado.
Las clases de equivalencia se escogen para entradas (inputs) válidas y no válidas.
Si el valor x se define como 0 < x < 10, entonces, inicialmente, se pueden identificar tres clases de equivalencia.
Método
Con el siguiente ejemplo podrás entender el método para aplicar la técnica de partición de equivalencia (CE)
Ejemplo (1)
Un programa espera el valor de un peso expresado en kg (con valores redondeados).
Todos los valores > 0 son válidos y todos los valores negativos o no numéricos son no válidos.
- clase de equivalencia (CE) válida, x > 0
- clase de equivalencia no válida, x < 0
- clase de equivalencia no válida, x = no numérico
Aparte de las CE no válidas establecidas, habrá otras clases inválidas que serán ignoradas:
- x > 0, pero mayor que el número más grande que el sistema sometido a prueba pueda aceptar.
- x > 0, pero menor que el menor de los números que el sistema sometido a prueba pueda aceptar.
La CE para cada variable será dividida adicionalmente.
- CE válida: Los valores con un formato pertenecientes al rango de definición se combinan en una única clase de equivalencia si son tratados de forma idéntica por el objeto de prueba. Este es el caso de todos los valores numéricos positivos y el valor 0 en el ejemplo dado.
- CE no válida: hay dos casos que se encuentran fuera del rango de definición.
- Los valores con un formato correcto pero fuera del rango pueden ser combinados en una o más CE.
- Los valores expresados en un formato erróneo pero construido en una CE independiente.
- en el ejemplo tenemos 2(dos) CE
- x < 0
- x es un valor no numérico
- En un último paso, se identifica un representante de cada CE, así como del resultado esperado para éste. Por lo tanto, para el ejemplo tendremos el siguiente esquema de CE
Ejemplo (2)
Análisis de la especificación
Parte del código de un programa trata el precio final de un artículo en base a su precio de venta al público, un descuento en % y el precio del transporte (8, 11 ó 14 dólares dependiendo de su tipo)
A partir de la tabla generada, hay que identificar, analizar y registrar los escenarios que darán lugar a los casos de prueba por diseñar y posteriormente a ejecutar
A medida que se vaya ejecutando el proceso de prueba, se puede estar obteniendo la Cobertura de CE y considerarla como criterio de salida para evaluar la finalización del testing.
Ejemplo (3)
Supongamos que tenemos un formulario que nos ofrece la posibilidad de cargar los datos de los nuevos empleados, para nuestro ejemplo un formulario con tres campos:
- Nombre
- Apellido
- Edad
todos obligatorios y el campo edad contempla el rango entre 18 a 50 años.
Supongamos entonces que un tester crea los casos de pruebas con los valores 18, 30 y 48 para probar el campo edad. Al probar con estos tres valores se estará comprobando el mismo comportamiento del campo, es decir, valores válidos para el rango válido entre 18 y 65 años.
La técnica de partición de equivalencia está basada en la idea de dividir los datos en particiones. Cualquier partición puede subdividirse en sus particiones y es muy importante saber que cada valor debe pertenecer a una y solo una partición.
Particiones de equivalencia
- CE1: edad < 18
- CE2: 18 <= edad <= 50
- CE3: edad > 50
Datos que se pueden usar para las particiones
Entonces en nuestro ejemplo, la edad puede tomar valores de 18 a 65 y que el sistema debe mostrar un error para valores por debajo de 18 y por encima de 65, cada uno de estos rangos es una partición de equivalencia.
El siguiente paso es elegir un valor dentro de cada una de las particiones para nuestros casos de pruebas, por ejemplo podemos escoger
- CE1: edad < 18 {11}
- CE2: 18 <= edad <= 50 {35}
- CE3: edad > 50 {63}
Por lo tanto, mediante la técnica podemos confirmar que si un valor de la partición pasa, el resto de los valores comprendidos dentro de la partición tendrá el mismo comportamiento (y por lo tanto no es necesario probarlos), y si uno de ellos falla, el resto de los elementos de esa partición también presentará el mismo comportamiento.
La técnica de partición de equivalencia puede aplicarse a todos los niveles de pruebas.
Aquí es muy importante probar los valores no válidos de forma individual para evitar el enmascaramiento de fallos, si probamos varios valores no válidos al mismo tiempo ocurren fallos y puede ser que uno de esos fallos haga que el resto no sea visible y por tanto pasen sin ser detectados.
Entonces la idea principal cuando estamos hablando de particiones de equivalencia es definir las particiones e identificar aquellas particiones válidas e inválidas.
Hay que recordar que si en el examen no se menciona nada de estos temas, habrá que asumir que se refiere a particiones válidas e inválidas.
Reflexión final: Técnicas de Caja Negra y Partición de Equivalencia.
Probablemente tendrás en este momento algunas preguntas que trataré de responderte.
Entonces…¿Qué son y para qué sirven las técnicas de caja negra?
Las técnicas de prueba de caja negra son un conjunto de métodos que utilizan los testers para identificar y ejecutar casos de prueba sin tener acceso al código fuente o al diseño interno del sistema.
Pero…¿Para qué?
Para identificar los casos de prueba que tengan mayor posibilidad de encontrar defectos y poder obtener de esa manera, una mayor cobertura en las pruebas del sistema que estemos sometiendo a pruebas (SUT). Es decir, nuestro foco estará en los datos de entrada y los resultados que hayamos obtenidos tras nuestras pruebas, sin detenernos en controlar la calidad de la estructura interna de la funcionalidad. Foco en la funcionalidad del sistema y no en su implementación.
¿Por qué usar las técnicas de pruebas de caja negra?
- Mejoran la identificación de casos de prueba negativos.
- Brindan más visibilidad de aquellos casos de prueba que poseen mayor probabilidad de contener defectos.
- Permiten ahorrar tiempo y esfuerzo en el diseño y ejecución de pruebas que de otra forma terminarían siendo redundantes.
d. Facilitan la medición de los porcentajes de cobertura de prueba.
Técnica de Partición de equivalencia (Clase de Equivalencia – CE)
- Dividimos los datos de entrada en particiones o clases de equivalencia.
- Los datos que producen el mismo resultado son agrupados en una misma clase.
- Se espera que todos los miembros de una partición sean procesados de la misma manera.
- Cada dato de entrada de debe pertenecer a una sola CE.
- Los valores válidos son los que el sistema debe aceptar (CE válida).
- Los valores que son rechazados por el sistema (CE inválidas).
- Cada CE inválida es un caso de prueba diferente.