Técnicas de prueba avanzadas para la generación de casos de prueba
Identificadores
Statistics
Share
Metadata
Show full item recordAuthor/s
Valle Gómez, Kevin JesúsDate
2023Department
Ingeniería InformáticaAbstract
Software testing is a crucial phase in software development, particularly in contexts such
as critical systems, where even minor errors can have severe consequences. The advent of
Industry 4.0 brings new challenges, with software present in almost all industrial systems.
Overcoming technical limitations, as well as limited development times and budgets, is
a major challenge that software testing faces nowadays. Such limitations can result in
insufficient attention being paid to it.
The Bay of Cadiz’s industrial sector is known for its world-leading technological projects,
with facilities and staff fully committed to innovation. The close relationship between
these companies and the University of Cadiz allows for a constant exchange between
industry and academia.
This PhD thesis aims to identify the most important elements of software testing in
Industry 4.0, based on close industrial experience and the latest state-of-the-art work.
This allows us to break down the software testing process in a context where large teams
work on large-scale, changing projects with numerous dependencies. It also allows us to
estimate the percentage benefit that a solution could provide to test engineers throughout
the process.
Our results indicate a need for non-commercial, flexible, and adaptable solutions for
the automation of software testing, capable of meeting the constantly changing needs of
industry projects. This work provides a comprehensive study on the industry’s needs and
motivates the development of two new solutions using state-of-the-art technologies, which
are rarely present in industrial work. These results include a tool, ASkeleTon, which
implements a procedure for generating test harnesses based on the Abstract Syntax Tree
(AST) and a study examining the ability of the Dynamic Symbolic Execution (DSE)
testing technique to generate test data capable of detecting potential faults in software.
This study leads to the creation of a novel family of testing techniques, called mutationinspired symbolic execution (MISE), which combines DSE with mutation testing (MT)
to produce test data capable of detecting more potential faults than DSE alone. The
findings of this work can serve as a reference for future research on software testing in
Industry 4.0.
The solutions developed in this PhD thesis are able to automate essential tasks in software testing, resulting in significant potential benefits. These benefits are not only for
the industry, but the creation of the new family of testing techniques also represents a
promising line of research for the scientific community, benefiting all software projects
regardless of their field of application. La prueba del software es una de las etapas más importantes durante el desarrollo de software, especialmente en determinados tipos de contextos como el de los sistemas críticos, donde el más mínimo fallo puede conllevar la más grave de las consecuencias. Nuevos paradigmas tecnológicos como la Industria 4.0 conllevan desafíos que nunca antes se habían planteado, donde el software está presente en prácticamente todos los sistemas industriales. Uno de los desafíos más importantes a los que se enfrenta la prueba del software consiste en superar las limitaciones técnicas además de los tiempos de desarrollo y presupuestos limitados, que provocan que en ocasiones no se le preste la atención que merece.
El tejido industrial de la Bahía de Cádiz es conocido por sacar adelante proyectos tecnológicos punteros a nivel mundial, con unas instalaciones y un personal totalmente implicado con la innovación. Las buenas relaciones de este conjunto de empresas con la Universidad de Cádiz, sumadas a la cercanía geográfica, permiten que haya una conversación constante entre la industria y la academia.
Este trabajo de tesis persigue identificar los elementos más importantes del desarrollo de la prueba del software en la Industria 4.0 en base a una experiencia industrial cercana, además de a los últimos trabajos del estado del arte. Esto permite identificar cada etapa en la que se desglosa la prueba del software en un contexto donde trabajan equipos muy grandes con proyectos de gran envergadura, cambiantes y con multitud de dependencias. Esto permite, además, estimar el porcentaje de beneficio que podría suponer una solución que ayude a los ingenieros de prueba durante todo el proceso.
Gracias a los resultados de esta experiencia descubrimos que existe la necesidad de soluciones para la automatización de la prueba del software que sean no comerciales, flexibles y adaptables a las constantes necesidades cambiantes entre los proyectos de la industria.
Este trabajo aporta un estudio completo sobre las necesidades de la industria en relación a la prueba del software. Los resultados motivan el desarrollo de dos nuevas soluciones que utilizan tecnologías del estado del arte, ampliamente usadas en trabajos académicos, pero raramente presentes en trabajos industriales. En este sentido, se presentan dos resultados principales que incluyen una herramienta que implementa un procedimiento para la generación de arneses de prueba basada en el Árbol de Sintaxis Abstracta (AST) a la que llamamos ASkeleTon y un estudio donde se comprueba la capacidad de la técnica de pruebas Ejecución Simbólica Dinámica (DSE, por sus siglas en inglés) para generar datos de prueba capaces de detectar fallos potenciales en el software. Este estudio deriva en la creación de una novedosa familia de técnicas de prueba a la que llamamos mutation-inspired symbolic execution (MISE) que combina DSE con la prueba de mutaciones (MT, por sus siglas en inglés) para conseguir un conjunto de datos de prueba capaz de detectar más fallos potenciales que DSE por sí sola.
Las soluciones desarrolladas en este trabajo de tesis son capaces de automatizar parte de la prueba del software, resultando en unos beneficios potenciales importantes. No solo se aportan beneficios a la industria, sino que la creación de la nueva familia de técnicas de prueba supone una línea de investigación prometedora para la comunidad científica, siendo beneficiados todos los proyectos software independientemente de su ámbito de aplicación.
Subjects
lenguajes de programación; Software; téncnicas de prueba; Software testingCollections
- Tesis [592]
- Tesis Ing. Inf. [25]