Suponga que tiene un sistema con múltiples entradas y cada una de ellas tiene a su vez categorías que tienen distintas opciones y que además pueden tener un status.
Al ser un sistema real, podríamos seguir agregando posibilidades y conforme esto sucede los escenarios de prueba se disparan.
Agreguemos números a nuestro sistema:
Imaginemos que se trata de una aplicación con un módulo de control de gastos para nuestros ejecutivos, con una interfaz sencilla para el ingreso de datos y en el cual notamos la siguiente clasificación:
- Cada gasto puede pertenecer a una categoría distinta: alimentación, hospedaje, transporte, entre otros
- Cada gasto puede pagarse de 3 maneras: efectivo, tarjeta, otro
- El gasto puede ser bimoneda: colones o dólares
- El gasto puede requerir reintegro o haber sido pagado previamente por la empresa.
Utilizando una técnica empírica para cubrir cada combinación con un caso de prueba, nos dejaría un mínimo de 48 casos de prueba (4x3x2x2 posibilidades).Esto sin tomar en cuenta los casos negativos o “edge cases” que pueda tener la aplicación.
Sabiendo que enfrentamos 48 casos para probar el módulo, el problema no es realizarlos, ésta tarea sería relativamente fácil pues sabemos cuáles son todas esas combinaciones. Nuestra dificultad radica en el tiempo.
¿Cuánto tiempo nos consume crear y ejecutar 48 casos de prueba?
Tome en cuenta que nuestro sistema es solo un ejemplo. En el día a día podemos ver combinaciones más allá de este número si nuestras entradas aumentan.
Es posible reducir el número de casos de prueba con una técnica sencilla de análisis combinatorio denominada técnica de todos los pares (all pair testing).Esta es una herramienta poderosa y confiable que al combinar todas las posibilidades tiene un alto porcentaje de cobertura al tiempo que reduce significativamente el número de casos de prueba.
8 Pasos para la construcción de los casos utilizando nuestro módulo de control de gastos
Paso 1
Ordenar las categorías en forma descendente, es decir aquella que tenga más entradas primero: Categoría, Tipo de pago, Moneda, Estado
Paso 2
Colocar en la primera columna N veces la variable A(Categoría), donde N es la cantidad de variables en B(Tipo de pago)
Paso 3
Colocar en la segunda columna, las variables de Tipo de pago.
Paso 4
Verificar de derecha a izquierda que cada valor de la columna de la derecha tiene un par con la columna de la izquierda.
Este paso se realiza cada vez que se agrega una columna o la tabla tiene una modificación.
De esta manera vemos que para efectivo hay al menos un gasto de alimentación, de hospedaje, de transporte y otros. De igual manera se verifica tarjeta y otros.
Paso 5
Agregar los valores de la tercera variable y repetir el paso anterior. Verificar columna de la derecha con la columna de la izquierda.
Verificada la columna inmediata, se compara la nueva columna con la siguiente columna a la izquierda.
Paso 6
Cuando se cumple que para cada nuevo valor se tiene un par en otra columna, se agrega la siguiente lista de valores.
En este caso notamos que no existe un par colones-pagado ni un par dólares-reintegrar, por lo que buscamos un par repetido y cambiamos los valores.
Paso 7
Al realizar un cambio se vuelve a hacer la verificación de la columna de la derecha, con todas las columnas a la izquierda para comprobar pares, de existir pares inexistentes, se ajustan los valores y se revisa nuevamente.
Paso 8
Al verificar que cada valor tiene un par, nuestra tabla está completa.
A partir de esta tabla, obtenemos un caso de prueba por cada fila, por lo que se ha reducido de 48 casos a 12. Con la aplicación de la técnica tenemos un ahorro del 75% entre los posibles casos que pudieron darse sin el uso de ésta.
Si extrapolamos este caso al día a día, la técnica de todos los pares puede convertirse en un aliado para nuestros equipos de calidad, pues al tiempo que logra cobertura, reduce el esfuerzo y el tiempo en la creación y ejecución de casos de prueba.