El primer algoritmo para la automatización de pruebas de software

Manuel Alejandro López Pérez
3er Semestre Ingeniera en Mecatrónica
ITESM QRO

El algoritmo de luciérnaga multi-objetivo es el algoritmo que combina la optimización multi-objetivo y el algoritmo de luciérnaga para poder crear un algoritmo donde se podrá automatizar las pruebas de software de una forma eficiente y de un costo mínimo.

Antes de llevar un software al público, el mismo tiene que pasar por diferentes pruebas de calidad. Esta investigación puede durar meses, llegar a costar hasta 50% del proyecto del software, y perjudicar la fecha de lanzamiento. Una fecha muy importante para los empresarios, es por eso que la automatización de este proceso es importante parala eficiencia el proyecto de creación de software.

Diagrama del Sistema de prestación de una biblioteca, la luciérnaga pasará por cada nodo buscando solución al objetivo que se le fue dado.

Diagrama del Sistema de prestación de una biblioteca, la luciérnaga pasará por cada nodo buscando solución al objetivo que se le fue dado.

Durante el proceso para el desarrollo de un software, las pruebas de calidad que se corren son cruciales para la terminación del software. Las pruebas que se realizan actualmente son a base de mano de obra donde cada persona busca algún error en el programa. Esta tarea consume mucho dinero y tiempo. El algoritmo de luciérnaga multi-objetivo es primer intento a la automatización de este proceso, está basado en la combinación del uso de optimización de la secuencia por objetivo y el algoritmo de luciérnaga.

La optimización de la secuencia de pruebas ha sido un tema en el campo de creación y desarrollo de software. Existe dos tipos de optimización por objetivo: la optimización de un solo objetivo y la optimización multi-objetivo. La optimización de un solo objetivo consiste en encontrar una solución óptima a un solo objetivo. Por ejemplo, comprar un carro con la mayor comodidad posible. En la optimización multi-objetivo, esta considera dos o más objetivos con múltiples soluciones óptimas, por ejemplo comprar un carro con la mayor comodidad y al menor costo posible. La optimización multi-objetivo es la más eficiente en términos de consumo de tiempo y dinero ya que considera diferentes objetivos a la vez y busca diferentes soluciones.

Tabla donde se muestra la cantidad de luciérnagas liberadas vs cantidad de soluciones encontradas y el costo en cada corrida del algoritmo.

Tabla donde se muestra la cantidad de luciérnagas liberadas vs cantidad de soluciones encontradas y el costo en cada corrida del algoritmo.

El algoritmo de luciérnaga está basado en el comportamiento de las luciérnagas intermitentes, donde las soluciones al problema es dado por la posición de la luciérnaga y la función del objetivo esta codificado en la “intensidad de la luz”. En un algoritmo de luciérnaga es importante tomar en cuenta dos puntos: la variación de la luz y la formulación correcta de atracción, esto permitirá que la ejecución del algoritmo haga que la luciérnaga pase por los puntos más importantes de un software.

La combinación del método de optimización multi-objetivo y el algoritmo de luciérnaga es la base para el algoritmo de luciérnaga multi-objetivo. Donde a través de buscar múltiples soluciones a múltiples objetivos lo automatiza usando el algoritmo de luciérnagas para encontrar dichos puntos en un software.

Experimentos han sido realizados en un sistema de administración de una biblioteca para la transacción de libros y los resultados han sido exitosos. Secuencia de pruebas se generaron usando el algoritmo de luciérnaga multi-objetivo, donde se liberaron diferentes cantidades de luciérnagas con un objetivo diferente. Se demostró que diferente cantidad de luciérnagas liberadas traía diferente cantidades de soluciones. También mostro el costo de producción que se ejecutaba en cada corrida de la prueba.

Como se puede ver en documentaciones el algoritmo de luciérnagas multi-objetivo nunca ha sido usado en secuencias de pruebas. Es por eso que no existe mucha información sobre el un uso eficiente del algoritmo. En el futuro se espera haber logrado un sistema con la cantidad de luciérnagas ideales para el software usado. Mientras tanto actualmente el algoritmo de luciérnaga multi-objetivo es un paso más cerca a la automatización de pruebas de software brindando un uso de tiempo eficiente a un costo mínimo.

Para el lector interesado:

Nabiha, I (Abril, 2014). ICREATE. Multi-Objective Optimization of Test Sequence Generation using Multi-Objective Firefly Algorithm (MOFA).Recuperado el 29 de junio del 2014 en:                                                                 http://0-ieeexplore.ieee.org.millenium.itesm.mx/stamp/stamp.jsp?tp=&arnumber=6828368&tag=1

Vega, M (2013). Universidad de Extremadura. Optimización Multiobjetivo y Paralelismo para Descubrir Motifs en Secuencias de ADN. Recuperado el 29 de junio del 2014 en: http://dehesa.unex.es:8080/xmlui/bitstream/handle/10662/522/TDUEX_2013_Gonzalez_Alvarez.pdf?sequence=1

Duarte, A (Abril, 2014). Universidad Rey Juan Carlos. Nuevas formas de computación evolutiva. Recuperado el 29 de junio del 2014 en: http://www.escet.urjc.es/~aduarte/talks/cursoVerano.pdf

Deja un comentario