Navegación

Búsqueda

Búsqueda avanzada

Estudio sobre la correlación de mutantes equivalentes: un enfoque evolutivo

La prueba de mutaciones es una conocida técnica para el análisis y mejora de un conjunto de pruebas. Este artículo aborda un problema inherente a esta técnica, la existencia de mutantes equivalentes, tratando de establecer si estos mutantes comparten ciertas características que los liguen. Para ello se emplea un algoritmo evolutivo de selección de mutantes (conocido como prueba de mutación evolutiva) para observar si en la práctica los mutantes equivalentes tienden a generar otros equivalentes. Además, también se evalúa qué ocurre si, penalizando a estos mutantes durante la ejecución del algoritmo, la búsqueda se enfoca hacia otros mutantes de mayor utilidad. Los resultados de los experimentos en este artículo revelan la existencia de una correlación entre mutantes equivalentes, la cual puede ser aprovechada en general para incrementar el rendimiento de la prueba de mutación evolutiva.

Evaluación y mejora de pruebas de rendimiento utilizando mutación del software: Un enfoque evolutivo

Los errores de rendimiento del software pueden causar una importante degradación en la experiencia de usuario y dar lugar a problemas muy costosos de detectar y resolver. Las pruebas de rendimiento persiguen detectar y reducir el impacto de estos errores. Sin embargo, no existen mecanismos para evaluar la calidad de las pruebas de rendimiento, causando en muchos casos, que estos errores pasen desapercibidos. La prueba de mutación es una técnica para evaluar y mejorar las pruebas funcionales a través de la introducción de errores artificiales en el programa bajo prueba. En este artículo, exploramos la aplicabilidad de la prueba de mutación junto con el empleo de un algoritmo evolutivo para buscar mutantes que simulen errores de rendimiento. Esta propuesta noPrueba de mutación, errores de rendimiento, pruebas de rendimiento, algoritmos evolutivos.vedosa contribuye a mejorar la confianza en las pruebas de rendimiento al mismo tiempo que reduce el coste de la prueba de mutación.

Optimización de indicadores técnicos utilizando un conjunto de Algoritmos Evolutivos Multiobjetivo

Los indicadores técnicos, mediante la aplicación de un conjunto de fórmulas matemáticas, representan de forma gráfica la serie de precios de un activo. Estas fórmulas comprenden un conjunto de reglas y parámetros cuyos valores son desconocidos y dependen de factores, como el mercado en el que opera, o el tamaño de la ventana de tiempo. Este trabajo se centra en la realización de una aplicación software que optimiza, en tiempo real, el valor de los parámetros para dichos indicadores técnicos mediante el uso de algoritmos evolutivos multiobjetivos (AEMOs). A diferencia de otros enfoques, en este documento se aplica un conjunto de AEMOs diferentes que compiten entre sí, con el fin de lograr mejores rendimientos con un riesgo mínimo. El proceso de optimización es continuo y tiene lugar al final de cada intervalo de tiempo. Esta técnica permite aplicar soluciones no dominadas, obtenidas con diferentes AEMOs y puede mejorar considerablemente los resultados de la estrategia Buy & Hold, incluso operando diariamente. Esta afirmación se demostrará comparando los resultados con los presentados previamente en la literatura. Para realizar esta operativa se ha empleado una arquitectura basada en servicios, donde las distintas partes del software han sido implementadas como servicios.

Interactividad en el descubrimiento evolutivo de arquitecturas

Resolver tareas propias del dise˜no arquitectónico de manera automática es un reto complejo, puesto que los arquitectos cuentan con habilidades que difícilmente pueden simularse y son capaces, además, de mantener una visión global de la actividad que realizan. Por su parte, la ingeniería del software basada en búsqueda está demostrando que las técnicas metaheurísticas son útiles cuando se desea prestar apoyo al ingeniero, especialmente cuando éste puede intervenir activamente en el proceso. Este trabajo analiza los retos que plantea esta colaboración a la hora de desarrollar modelos metaheurísticos para resolver tareas en una fase temprana del software como es el dise˜no arquitectónico. Se estudian aspectos como el papel del ingeniero y los criterios que van a guiar su intervención durante la búsqueda, sirviendo como paso previo para la propuesta de un modelo inicial con el que abordar el descubrimiento de arquitecturas software mediante un algoritmo evolutivo interactivo.