La innovación y la mejora continua son dos aspectos fundamentales para cualquier empresa que quiera destacar en su sector. En el caso del desarrollo de software, estos aspectos son aún más importantes debido a la rapidez con la que evoluciona la tecnología y las necesidades de los clientes.
En este contexto, en Proxya se está trabajando en un proyecto de investigación industrial que busca mejorar la productividad, calidad y eficiencia en la ejecución de proyectos de software incorporando técnicas de inteligencia artificial en tres áreas clave: generación automática de casos de prueba, refactorización automática de código y estimación de esfuerzos y tareas.
En esta serie de tres artículos, profundizaremos en cada uno de estos objetivos, explicando cómo se pueden utilizar técnicas de inteligencia artificial para mejorar la calidad y eficiencia de los proyectos de software.
Desde la generación automática de casos de prueba hasta la estimación del esfuerzo de tareas a partir de una descripción textual, descubrirás cómo estas técnicas pueden ahorrar tiempo y esfuerzo a los desarrolladores, mejorando la calidad del software final y permitiendo a las empresas dedicar más recursos a la innovación y el crecimiento.
La generación automática de casos de prueba es un tema crucial en el ámbito del desarrollo de software. Por esta razón, el objetivo de este proyecto de investigación industrial es el de explorar cómo las técnicas de inteligencia artificial pueden ser aprovechadas para optimizar la generación de casos de prueba en un entorno industrial. Para lograr este objetivo, se han establecido tres objetivos específicos y un KPI.
- El primer objetivo específico (O1.1) consiste en la revisión de las técnicas de inteligencia artificial, búsqueda y análisis estático de código actualmente utilizadas en la literatura para la generación automática de casos de prueba. De esta manera, se podrá tener una visión completa de las herramientas y técnicas existentes y se podrán adaptar y personalizar para las necesidades específicas del proyecto.
- El segundo objetivo específico (O1.2) implica el diseño y la adaptación de algoritmos de la literatura para la generación de casos de prueba. El objetivo final de este objetivo es lograr la generación de casos de prueba significativos y mantenibles para el ingeniero de pruebas.
- El tercer objetivo específico (O1.3) es la integración de los algoritmos y técnicas de generación de casos de prueba diseñados en una aplicación web para su uso por parte de los ingenieros de prueba. Esto permitirá una fácil y rápida utilización de las herramientas y técnicas desarrolladas en el proyecto.
Por último, el KPI establecido para este objetivo general (OG1) implica una estimación de reducción de tiempo para la generación de pruebas. En concreto, se estima que el tiempo requerido para desarrollar pruebas se reducirá en un 70%, lo que representa un ahorro del 17,5% de esfuerzo en proyectos con pruebas implementadas. Además, el servicio de generación automática de casos de prueba también permitirá generar pruebas en proyectos donde no existen, mejorando la calidad del producto con un esfuerzo menor del 10% del total del proyecto, en comparación con el 25% actual. Esto supone un ahorro para Proxya de más de 10.000 horas de desarrollo al mes.
En conclusión, el uso de técnicas de inteligencia artificial en la generación automática de casos de prueba puede ser muy beneficioso para mejorar la calidad y la eficiencia del desarrollo de software en un entorno industrial. A través de la consecución de los objetivos específicos y del cumplimiento del KPI establecido, se espera lograr una significativa mejora en la productividad y la calidad de los proyectos de software.