Rodrigo Cerviño Lopez, Jorge Armando Muñoz Ordoñez, Carlos Cobos
Introducción: Actualmente, la calidad del software en una característica fundamental para asegurarse un espacio en el mercado global que día a día es más competitivo y exigente. Las pruebas de software permiten a las empresas desarrolladoras de software encontrar y corregir fallos y con ello elevar la calidad de sus productos. El costo de las pruebas hoy se estima en un 50% del costo total del desarrollo de software, por esto se hace necesario encontrar formas menos costosas que garanticen altos niveles de detección de fallos. En este escenario, las pruebas de caja negra tienen un papel fundamental y dentro de estas pruebas los enfoques combinatoriales son una de las mejores opciones. En las pruebas combinatorias se hace necesario que los usuarios probadores (testers) cuenten con una herramienta que les proporcione el menor número de casos de prueba con la mayor cobertura (detección de fallos) de acuerdo con los parámetros del método (procedimiento, función u otro) que desea probar, y este es el objetivo principal de este trabajo.
Objetivo: En este artículo se presenta un algoritmo que soporta la generación de casos de prueba en pruebas de caja negra basado en la creación de Arreglos de Cobertura Mixta (MCA). Estos arreglos permiten generar el menor número de casos de prueba requeridos para probar una unidad de código con la mayor cobertura requerida (mayor posibilidad de detectar fallos). El algoritmo propuesto construye una solución inicial basado en un algoritmo codicioso (greedy) y luego mejora esta solución a través de un proceso iterativo orientado por recocido simulado (algoritmo metaheurístico) y tres formas de definir soluciones vecinas.
Metodología: La investigación se realizó siguiendo el Patrón de Investigación Iterativa propuesto por Pratt. Primero se identificaron los principales problemas reportados en el estado del arte para la construcción de MCA, luego se realizó una revisión de las propuestas de solución a estos problemas. Después se creó un primer algoritmo y luego se fue modificando en forma iterativa este algoritmo, incluyendo y removiendo componentes de acuerdo con resultados experimentales de su funcionamiento. Cuando se obtuvo la versión deseada, se realizó un proceso de afinamiento de parámetros y se comparó con los mejores resultados presentados en la literatura, resultados obtenidos por diferentes algoritmos.
Resultados: El algoritmo propuesto obtiene MCA que son competitivos (en promedio 3 casos de prueba adicionales) frente a los mejores reportados en el estado del arte en un tiempo corto de ejecución, aspecto que es de especial interés para los probadores de software.
Conclusiones: Se confirmó que el enfoque codicioso y metaheurístico basado en recocido simulado es una buena alternativa para la construcción de un MCA. Los algoritmos de construcción de soluciones vecinas son claves para encontrar el MCA requerido y en un menor tiempo de ejecución.
Introduction: Currently, software quality is a fundamental feature to ensure a space in the global market that day by day is more competitive and demanding. Software testing allows software developers to find and fix bugs and, thereby, raise the quality of their products. The cost of testing is now estimated at 50% of the total cost of software development, so it is necessary to find less expensive ways to ensure elevated levels of fault detection. In this scenario, black box tests play a key role; within these tests, combinatorial approaches are one of the best options. In combinatorial tests, test users must have a tool that provides them with the least number of test cases with the greatest coverage (failure detection) according to the parameters of the method (procedure, function, or other) that they want to test, and this is the main objective of this work.
Objective: This paper presents an algorithm that supports the generation of test cases in black box tests based on creating Mixed Covering Arrays (MCA). These fixes allow you to generate the smallest number of test cases required to test a unit of code with the highest required coverage. The proposed algorithm builds an initial solution based on a greedy algorithm and then improves this solution through an iterative process oriented by simulated annealing (metaheuristic algorithm).
Methodology: The research was conducted following the Iterative Research Pattern proposed by Pratt. First, the main problems reported in the state of the art for the construction of CSF were identified, then a review of the proposed solutions to these problems was performed. Then a first algorithm was created and then iteratively modified this algorithm, including, and removing components according to the experimental results of its operation. When the desired version was obtained, a process of refinement of parameters was performed and compared with the best results presented in the literature, results obtained by different algorithms.
Results: The proposed algorithm obtains MCAs that are competitive (on average 3 additional test cases) against the best reported in the state of the art in an abbreviated execution time, an aspect that is of special interest for software testers.
Conclusions: It was confirmed that the greedy and metaheuristic approach based on simulated annealing is a suitable alternative for the construction of a CSF. Neighboring solution construction algorithms are key to finding the required MCA in a shorter execution time.
© 2001-2024 Fundación Dialnet · Todos los derechos reservados