Seminario "Construcción de Covering Arrays Usando Grid Computing y Supercomputing"
Una estrategia para probar la funcionalidad de un componente de software, implica la generación de todo el conjunto de casos de prueba (prueba exhaustiva). El hacer una prueba exhaustiva no siempre es posible debido a limitaciones de tiempo y costo, y probar sólo algunos casos de prueba arbitrarios puede no ser suficiente.
Una técnica alternativa (para las pruebas exhaustivas) es conocida como combinatorial testing. Combinatorial testing es un método que reduce los costos e incrementa la eficiencia de las pruebas de software; éste método se basa en la construcción de pequeños casos de prueba funcionales, que proporcionan la cobertura de ciertas configuraciones. Los covering arrays son objetos combinatorios, que han sido usados dentro del método de combinatorial testing, y han sido aplicados para realizar pruebas funcionales de software. El uso de los covering arrays permite probar todas las interacciones, de un determinado tamaño entre los parámetros de entrada, utilizando el menor número de casos de prueba posible (máxima cobertura y mínima cardinalidad).
Para las pruebas de software, un problema fundamental es encontrar un covering array con el mínimo número de renglones (covering arrays óptimos), lo que reduciría: el número de pruebas, el costo, y el tiempo empleado en el proceso de pruebas de software. Debido a la importancia de la construcción de covering arrays óptimos, hay múltiples investigaciones sobre el desarrollo de métodos eficaces para construirlos. Hay varios métodos reportados en la literatura para construir covering arrays, entre ellos están: (1) métodos algebraicos, (2) métodos recursivos, (3) algoritmos voraces, y (4) algoritmos aproximados (metaheurísticas).
Los métodos basados en metaheurísticas, en especial los que usan el algoritmo de simulated annealing han proporcionado los resultados más competitivos. El simulated annealing es un método de optimización estocástica de propósito general que ha demostrado ser una herramienta eficaz para resolver una amplia gama de problemas de optimización combinatoria.
En esta plática, se presenta un algoritmo de simulated annealing para la construcción de covering arrays de fuerza t>=2, que se aplican al desarrollo de pruebas funcionales de componentes de software (casos reales y académicos). Además, se presenta el uso de las tecnologías de Grid Computing y Supercomputing para obtener covering arrays óptimos o cuasi-óptimos en tiempos razonables.
Impartido por el Dr. Himer Ávila George, del Instituto Tecnológico Superior de Salvatierra, Salvatierra, Guanajuato.