Intel ha puesto hoy a disposición del público ControlFlag, una herramienta que utiliza el aprendizaje automático para detectar problemas en el código informático, idealmente para reducir el tiempo necesario para depurar aplicaciones y software. En las pruebas, el equipo de investigación de programación automática de la empresa afirma que ControlFlag ha encontrado cientos de defectos en software propietario de "calidad de producción", lo que demuestra su utilidad.
"El año pasado, ControlFlag identificó una anomalía de código en Client URL (cURL), un proyecto de software informático que transfiere datos utilizando varios protocolos de red más de mil millones de veces al día", escribió el científico principal de IA de Intel, Justin Gottschlich, en una entrada de blog en LinkedIn. "Recientemente, ControlFlag logró resultados de vanguardia al identificar cientos de defectos latentes relacionados con la memoria y posibles fallos del sistema en un software propio a nivel de producción. Además, ControlFlag encontró docenas de anomalías novedosas en varios repositorios de software de código abierto de alta calidad."
La demanda de código de calidad atrae a un número cada vez mayor de aspirantes a programadores a la profesión. Tras años de estudio, aprenden a traducir los resúmenes en programas concretos y ejecutables, pero la mayoría pasa la mayor parte de sus horas de trabajo sin programar. Según un estudio reciente, el sector de las TI gastará en 2020 unos 2 billones de dólares en costes de desarrollo de software asociados a la depuración de código, y se calcula que el 50% de los presupuestos de TI se destinarán a la depuración.
ControlFlag, que funciona con cualquier lenguaje de programación que contenga estructuras de control (es decir, bloques de código que especifican el flujo de control en un programa), pretende reducir el trabajo de depuración aprovechando el aprendizaje no supervisado. Con el aprendizaje no supervisado, un algoritmo se somete a datos "desconocidos" para los que no existen categorías o etiquetas previamente definidas. El sistema de aprendizaje automático -ControlFlag, en este caso- debe enseñarse a sí mismo a clasificar los datos, procesando los datos no etiquetados para aprender de su estructura inherente.
ControlFlag aprende continuamente del código fuente no etiquetado, "evolucionando" para mejorar a medida que se introducen nuevos datos. Aunque todavía no puede mitigar automáticamente los defectos de programación que encuentra, la herramienta ofrece sugerencias para posibles correcciones a los desarrolladores, según Gottschlich.
"Intel se ha comprometido a hacer que el software sea más robusto y menos engorroso de mantener, al tiempo que mantiene un excelente rendimiento sin introducir vulnerabilidades de seguridad. Esperamos que proyectos como ControlFlag puedan reducir sustancialmente el tiempo de desarrollo del software a nivel mundial", escribió Gottschlich. "Debido a la abrumadora cantidad de tiempo que se dedica a la depuración, incluso un pequeño ahorro de tiempo en este espacio podría suponer un ahorro de tiempo y monetario y, por tanto, permitirnos -como comunidad- acelerar el avance de la tecnología".
Las herramientas de codificación impulsadas por la IA, como ControlFlag, así como las plataformas como Tabnine, Ponicode, Snyk y DeepCode, tienen el potencial de reducir las costosas interacciones entre los desarrolladores, como las sesiones de preguntas y respuestas y los comentarios repetitivos de revisión del código. IBM y OpenAI se encuentran entre las muchas empresas que investigan el potencial del aprendizaje automático en el espacio de desarrollo de software. Pero los estudios han demostrado que la IA tiene un camino por recorrer antes de poder sustituir muchas de las tareas manuales que los programadores humanos realizan de forma habitual.
Más información: https://arxiv.org/pdf/2105.09938.pdf
Más información: https://www.linkedin.com/pulse/newly-open-sourced-controlflag-identifies-hundreds-justin-gottschlich