protocolo HTTP/2

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 búsqueda 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, lo que ocupa una gran parte de su tiempo de trabajo. Los estudios indican que esto supone entre el 30 y el 90 por ciento 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 encuestas entre los desarrolladores para determinar cuáles son los principales factores que hacen perder el tiempo durante la depuración. Resultó que la corrección de errores 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.

A partir de esta constatación, 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 método adoptado por Hofer y Hirsch representa determinadas 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 errores, para el cual los evaluadores o usuarios rellenan un formulario describiendo el fallo observado e introducen información sobre la versión del software, su sistema operativo, los pasos que siguieron antes de que ocurriera 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 en cuanto a clases, 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 errores.

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 error que es más probable que esté involucrado. Estos datos se pueden utilizar para localizar y corregir el error más rápidamente.

“El tiempo de trabajo de los desarrolladores de software es caro, pero a menudo dedican más 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 la aplicación comercial. Ahora hemos sentado las bases y el sistema funciona. Sin embargo, para integrarlo en una empresa, todavía tendría que adaptarse a las necesidades de cada empresa”.

El sistema de depuración está disponible en GitHub . El sitio web del proyecto contiene documentos y repositorios asociados con esta investigación.

Fuente y redacción: helpnetsecurity.com

Compartir