info:eu-repo/semantics/article
Ejecución simbólica: una forma de asegurar la creación de código desde el inicio en la etapa de desarrollo
Ejecución simbólica: una forma de asegurar la creación de código desde el inicio en la etapa de desarrollo
Autor
Daldín, Susana
López Pasaron, Christian
Porta, Estefania
Monia, Sebastian
Vázquez, Víctor
Institución
Resumen
Desde hace algunos años la sociedad se ha visto rodeada de cada vez más información.Internet, como medio de transmisión, ha supuesto una gran evolución en materia de tiempos de difusión y realimentación entre editores (quienes generan la información) y lectores (quienes la consumen).A su vez el desarrollo de lenguajes de programación multiplataforma como JAVA, unido a la fabricación de dispositivos que permiten su ejecución (desde tablets y smartphones hasta automóviles y electrodomésticos), ha rodeado al ser humano de innumerables dispositivos informáticos, dispositivos que para manejar información poseen programas de software. En este marco, el desarrollo de software se ha convertido en una pieza fundamental.El Ciclo de Vida de un Proyecto (CVP) divide a un desarrollo de software en diversas etapas, dentro de la cuales se encuentra “testing”. Esta etapa insume un alto porcentaje de los recursos del proyecto. La técnica de ejecución simbólica simula la ejecución del código transformando variables de tipo en símbolos, permitiendo identificar qué caminos de ejecución se toman de acuerdo a los valores de entrada, pudiendo identificar claramente qué valores ha tomado la variable en cuestión y si lo hace de manera esperada o no.Se están generando entrevistas semiabiertas con los departamentos de Aseguramiento de Calidad (AC) de diversas empresas de desarrollo, para cualificar y cuantificar los tipos de test que se realizan a lo largo de los proyectos y de esta manera poder determinar el estado actual del arte.Dentro de esta subetapa se detectó que las empresas casi no utilizan la ejecución simbólica como método de detección de errores dentro de la etapa de testing. Las causas son diversas pero tienden a asociarse a un elevado costo computacional, lo que genera un consumo de recursos económicos mayores al de las demás técnicas usadas en la actualidad.Los objetivos generales de la investigación son el análisis de la ejecución simbólica como metodología de aseguramiento de la calidad, escalabilidad, estabilidad y seguridad del desarrollo del software mediante la asistencia en la generación de test y, a partir de los resultados, el desarrollo de una metodología para analizar código fuente y/o compilado para agilizar la creación de test de prueba unitarios. For several year society has been surrounded by more and more information. Internet as communicationtool has developed a great evolution in timing and feedback between publishers (whogenerate information) and readers (who consume it).Furthermore the development of several multiplatform language (such as JAVA) in addition toseveral devices that helps it execution (such as tablets and smartphones up to cars and appliances)have surrounded the human being of several computer devices, which hold internal information tomanage programs software. As a result of this it is pertinent to say that software development hasbecome a key player.The lifecycle of a project divides a software development into several stages in which we canfind testing. At this moment the resources of the project are highly consumed. The symbolic executiontechnique simulates the execution of the code transforming type variables in symbolic variablesletting us identify which values were taken by the variable and if these were expected or not.Semi-open interviews with various departments of Quality Assurance (QA) development companiesare been generated to qualify and quantify the types of tests that are performed along theproject and be able to determine the current state of the art.In this sub-step we detect that the companies hardly use the symbolic executionas a method of detecting errors in the testing phase. The causes are varied but are usually associatedwith a high computational cost generating higher consumption of economic resources to theother techniques used today.The general objectives of the research are the analysis of the symbolic execution as a qualityAssurance, scalability, stability and security in the software development through assisting thecreation of test and from the answers obtained the development of a methodology to analyze thesource code and compilation to speed up the unit test.