Las aplicaciones de software modernas suelen estar compuestas por numerosos archivos y varios millones de líneas de código. Debido a esta gran cantidad, la detección y corrección de errores, conocida como depuración, resulta difícil.
En muchas empresas de software, los desarrolladores aún buscan errores de forma manual, algo que ocupa una gran parte de su tiempo de trabajo. Los estudios indican que esto supone entre el 30 y el 90 % del tiempo total de desarrollo.
Birgit Hofer y Thomas Hirsch del Instituto de Tecnología de Software de la Universidad Tecnológica de Graz (TU Graz) han desarrollado una solución basada en métodos y métricas de procesamiento del lenguaje natural existentes que pueden acelerar enormemente el proceso de búsqueda de código defectuoso y, por tanto, su depuración.
La localización de fallas consume la mayor parte del tiempo
«En un primer paso, realizamos una encuesta entre los desarrolladores para averiguar cuáles son los principales factores que hacen perder el tiempo a la hora de depurar errores. Resultó que la corrección de errores en sí no es el gran problema, sino que los programadores se atascan principalmente en la localización de errores, es decir, en limitar la búsqueda al área correcta en el código del programa», explica Birgit Hofer.
Partiendo de esta base, los investigadores se propusieron encontrar una solución a este problema que también fuera escalable a aplicaciones con mucho código.
Aunque existen métodos eficientes basados en modelos en los que un programa se convierte en una representación lógica (denominada modelo), esto solo funciona para programas pequeños, ya que el esfuerzo computacional aumenta exponencialmente con el tamaño del código.
El enfoque adoptado por Birgit Hofer y Thomas Hirsch representa ciertas propiedades del software en números (por ejemplo, la legibilidad o la complejidad del código) y también se puede utilizar para grandes cantidades de código, ya que el esfuerzo computacional solo aumenta linealmente.
Comparación de la descripción del error y el código
El punto de partida para la localización de fallos es el informe de error, para el cual los evaluadores o usuarios rellenan un formulario en el que describen el fallo observado e introducen información sobre la versión del software, su sistema operativo, los pasos que siguieron antes de que se produjera el fallo y otra información relevante.
A partir de este informe de errores, la combinación de procesamiento de lenguaje natural y métricas analiza todo el código con respecto a las clases y los nombres de variables, archivos, métodos o funciones y las llamadas a métodos y funciones.
La aplicación identifica las secciones de código que mejor se corresponden con el informe de error. Como resultado, los desarrolladores reciben una lista de cinco a diez archivos clasificados según la probabilidad de que sean responsables del error observado.
Los desarrolladores también reciben información sobre el tipo de fallo más probable. Estos datos pueden utilizarse para localizar y solucionar el error con mayor rapidez.
«El tiempo de trabajo de los desarrolladores de software es caro, pero a menudo dedican más de este costoso tiempo a localizar y corregir errores que a desarrollar nuevas funciones», afirma Birgit Hofer.
«Como ya existen numerosos enfoques para erradicar este problema, hemos investigado cómo podemos combinarlos y mejorarlos para que exista una base para su aplicación comercial. Ahora hemos sentado las bases y el sistema funciona. Sin embargo, para integrarlo en una empresa, todavía habría que adaptarlo a las necesidades de cada empresa».
El sistema de depuración está disponible a través de «GitHub» plataforma. En el sitio web del proyecto Se pueden encontrar los artículos y repositorios asociados a esta investigación.
Más información:
Birgit Gertraud Hofer, Depuración automatizada en uso. (2024) Documento de la investigación: 10.55776/P32653
Citación:Los investigadores aceleran la localización de fallos durante el desarrollo de software (31 de julio de 2024) recuperado el 31 de julio de 2024 de https://techxplore.com/news/2024-07-fault-localization-software.html
Este documento está sujeto a derechos de autor. Salvo que se haga un uso legítimo con fines de estudio o investigación privados, no se podrá reproducir ninguna parte del mismo sin autorización por escrito. El contenido se ofrece únicamente con fines informativos.
GIPHY App Key not set. Please check settings