Los Covering Arrays (CA) son objetos matemáticos usados en pruebas funcionales de componentes software. Los CA permiten probar todas las interacciones de un tamaño determinado, de los parámetros de entrada de un procedimiento, función o unidad lógica en general, usando el mínimo número de casos de prueba. La construcción de CA es una tarea compleja que requiere largos periodos de ejecución y gran capacidad computacional. Los métodos más efectivos para construir CA son los algebraicos, voraces y basados en metaheurísticas. Estos últimos son los que han arrojado mejores resultados hasta la fecha. Este artículo presenta una descripción de las contribuciones más importantes hechas por diferentes metaheurísticas, incluyendo el simulated annealing (recocido simulado), búsqueda tabú, algoritmos genéticos, algoritmo de la colonia de hormigas, algoritmo de enjambre de partículas y algoritmo de búsqueda armónica. Cabe anotar que los algoritmos basados en recocido simulado se han convertido en los más competitivos y actualmente son el estado del arte.
I. INTRODUCCIÓN
En las últimas décadas, las pruebas de software han sido el método más utilizado para garantizar la calidad del software [1]. Las pruebas pueden considerarse como un conjunto de procesos que se diseñan, desarrollan y aplican a lo largo de la vida del desarrollo del software para detectar y corregir los defectos y fallos encontrados durante y después de la implementación del código, y así elevar la calidad y fiabilidad del programa entregado al usuario final [2]. Sin embargo, aplicar pruebas de software exhaustivas que permitan probar el componente de software en su totalidad, además de ser una tarea costosa y que requiere mucho tiempo, es una tarea casi imposible. Incluso cuando se trata de probar el software más sencillo, se puede generar un gran número de casos de prueba debido a las numerosas combinaciones posibles de parámetros de entrada. Crear casos de prueba para todas estas posibilidades es un proceso inviable y poco práctico [1, 2]. Por ejemplo, si se requiere probar un componente de software que recibe como parámetros de entrada valores de cinco sensores y cada sensor puede tomar 10 valores diferentes, se necesitarían 105 o 100.000 casos de prueba diferentes para probar exhaustivamente ese componente.
Las pruebas combinatorias ofrecen una alternativa a las pruebas exhaustivas, que seleccionan los casos de prueba mediante un mecanismo de muestreo que cubre sistemáticamente las combinaciones de valores de los parámetros de entrada, definiendo un conjunto más pequeño de pruebas que es relativamente fácil de gestionar y ejecutar [3]. Este tipo de pruebas reduce los costes y aumenta considerablemente la eficacia de las pruebas de software. Sin embargo, el reto de las pruebas combinatorias reside precisamente en encontrar el número mínimo de casos de prueba que consigan la máxima cobertura con la mínima cardinalidad [4, 5].
Esta es una versión de prueba de citación de documentos de la Biblioteca Virtual Pro. Puede contener errores. Lo invitamos a consultar los manuales de citación de las respectivas fuentes.
Artículo:
Propiedades de transporte de cristales fotónicos cuasiperiódicos de MnF2/SiO2 para posibles aplicaciones catalíticas
Artículo:
Compuestos de celulosa nanofibrilada tratados con glicerina
Artículo:
Mejora de las propiedades fisicomecánicas del compuesto reforzado con fibra de hoja de piña
Artículo:
Inducción y análisis del contenido de alcaloides mitraginina de un sistema de cultivo en suspensión mediante la inducción y alimentación de precursores.
Artículo:
XB130: una nueva proteína adaptadora: Gen, función y papel en la tumorigénesis
Libro:
Ergonomía en los sistemas de trabajo
Artículo:
Obtención de gas combustible mediante la bioconversión del alga marina Ulva lactuca
Artículo:
Sistemas de producción y potencial energético de la energía mareomotriz
Artículo:
La necesidad de la planeación estratégica en las organizaciones industriales modernas