
handle: 20.500.14352/20535
Una de las partes más costosas dentro del desarrollo de programas es el testeo, ya que requiere un gran esfuerzo humano para poder especificar los diferentes casos de prueba, lanzarlos y analizar los resultados. Ello provoca que en la mayoría de los casos los programas se prueben mucho menos a fondo de lo que sería necesario. Por ello, en los últimos años han sido desarrolladas diversas herramientas para automatizar de manera parcial dicho proceso de testeo. Sin embargo la mayoría de ellas están especializadas en un único lenguaje de programación. Nuestro objetivo es conseguir una plataforma que permita el testeo de aplicaciones de manera automática para el usuario y que admita como entrada un programa escrito en cualquier lenguaje de programación. En este trabajo vamos a presentar la herramienta Case Generator, que se engloba dentro del proyecto CAVI-ART, siendo esta parte la encargada de generar los casos de prueba de manera automatizada, adaptándolos a las necesidades de cada ejecución. Este proyecto toma como base las ideas desarrolladas anteriormente por programas como Quickcheck, Korat o Smallcheck, pero intentando conseguir que el proceso de prueba sea más automático, y a la vez compatible con diversos lenguajes de programación tanto funcionales como no funcionales. Para lograr el primer objetivo hemos eliminado la obligación de que el usuario defina un nuevo generador para cada uno de los nuevos tipos definidos. Así, será el propio programa el que realice la tarea de investigar estos tipos y deducir un generador de casos adecuado para cada uno de ellos. Para lograr el segundo en cambio hemos creado una Representación Intermedia (IR) a la que se traducen los programas antes de ser testeados y que permite escribir una plataforma independiente del lenguaje de programación. A su vez profundizaremos en la estructura de clases de CaseGenerator y explicaremos su código, de manera que queden claras todas las ideas detrás de su funcionamiento y las razones por las que decidimos utilizar algunas tecnologías, como la librería Generics del compilador GHC y la extensión de Haskell llamada Template Haskell. Por _ultimo, tras explicar el funcionamiento de la herramienta expondremos algunos ejemplos prácticos del funcionamiento del programa al ser ejecutado con funciones reales.
004.42(043.3), Prueba, Automática, 1203.23 Lenguajes de Programación, Automatic, Testing, Verification, Verificación, Caja negra, Pruebas basadas en asertos, Programación de ordenadores, Assertion based testing, Black box, Programación de ordenadores (Informática)
004.42(043.3), Prueba, Automática, 1203.23 Lenguajes de Programación, Automatic, Testing, Verification, Verificación, Caja negra, Pruebas basadas en asertos, Programación de ordenadores, Assertion based testing, Black box, Programación de ordenadores (Informática)
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 0 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
