Cuando hablamos sobre métodos combinatorios para facilitar las pruebas de software mencionamos las características de estos métodos y los tipos de pruebas más comunes. En los próximos post relacionados con lo que se debe aplicar para un desarrollo seguro vamos a presentarles algunas herramientas que nos pueden ayudar a su implementación.

Cuando se establecen las características de las pruebas de software que se van a realizar se pueden tener en cuenta muchos parámetros. Encarar el proceso de pruebas con un enfoque exhaustivo para probar todas las configuraciones posibles puede tardar mucho tiempo e incluso va a demandar muchos recursos. Por ejemplo si tenemos un sistema con 10 características que queremos probar y cada una de ellas tiene 5 posibles estados o valores hay más de 9 millones y medio de configuraciones posibles para probar. Así que es necesario abordar las pruebas con un enfoque que nos permita probar la mínima cantidad de casos pero cubriendo la mayoría de combinaciones posible.

Funcionamiento de la combinatoria

Utilizar la técnica de cobertura es una de las formas más desarrollada de pruebas combinatorias. Lo que nos garantiza este algoritmo es una cobertura por parejas, sobre todo para aplicaciones en las que queremos probar combinaciones de sistemas operativos, aplicativos, características de la red y otros parámetros similares.

Lo que nos va a permitir este enfoque es a obtener sets de pruebas donde tenemos todas las interacciones entre pares de valores de todos los parámetros. Esto se basa en el hecho que no todos los parámetros contribuyen a cada fracaso y la mayoría de los fallos se desencadena por interacciones entre un número relativamente pequeño de parámetros. Recordemos que existen estudios con resultados empíricos que sugieren que un parámetro individual o a lo sumo un par de valores son la causa de las fallas.

Uso de la herramienta

ACTS es una herramienta desarrollada por el NIST que nos va a producir la mínima matriz para cubrir las combinaciones desde 2 hasta 6 vías. Con esta herramienta la salida se puede exportar en una variedad de formato además de una serie de características y algoritmos que se pueden combinarse para obtener diferentes tipos de salidas que arrojen casos de pruebas diferentes.

Tal como vemos en la siguiente captura la herramienta nos deja elegir entre varios algoritmos para hacer la combinación de parámetros de pruebas. La elección del algoritmo va a depender del tipo de pruebas y los recursos con los que se cuente, de hecho existen trabajos de investigación donde comparan el rendimiento y usabilidad de cada uno de ellos.

ACTS NIST 1

 

En este caso tenemos cuatro variables, la primera de ellas es WLS la cual es boolena, la variable SistemaOperativo con tres valores, Navegador con cuatro opciones y Arquitectura con dos opciones. Los resultados de las combinaciones que cubren el espacio de prueba lo podemos ver en una tabla como la que vemos en la siguiente captura de pantalla, en esta caso vemos para el caso propuesto una matriz con las combinaciones de 2 vías.

ACTS NIST 2

 

En las próximas entregas vamos a estar presentándoles el set de herramientas grandma para utilizar con Python. Además si les resultan interesantes estos algoritmos y quieren que profundicemos en algún algoritmo en particular no duden en comentarnos