Depuradores artificiales

Equipos despliegan inteligencia artificial para ayudar a depurar el código

Share to0

ArticleSpanish Articles1 March 2019

PM Network

Ali, Ambreen

How to cite this article:

Ali, A. (2019). Depuradores artificiales: Equipos despliegan inteligencia artificial para ayudar a depurar el código. PM Network, 33(0), 9.
Reprints and Permissions – opens in a new tab

Cada año se escriben miles de millones de líneas de código, y muchas aplicaciones incorporadas en el código abierto se comparten ampliamente entre los desarrolladores. Ahí radica un problema: un solo error puede repercutir en miles de vulnerabilidades, dando a los piratas informáticos una puerta de entrada para acceder a información segura o interrumpir los principales sistemas de infraestructura.

img

GETTY IMAGES

Cada año se escriben miles de millones de líneas de código, y muchas aplicaciones incorporadas en el código abierto se comparten ampliamente entre los desarrolladores. Ahí radica un problema: un solo error puede repercutir en miles de vulnerabilidades, dando a los piratas informáticos una puerta de entrada para acceder a información segura o interrumpir los principales sistemas de infraestructura. Incluso a una escala menor, los errores pueden retrasar los lanzamientos de productos, causar la caída de sistemas y obstaculizar financieramente a las empresas. Los errores son caros: las fallas de software en 2017 causaron la pérdida de US$1,7 billones en ingresos debido a problemas como caídas de precios en los mercados bursátiles, pérdida de ingresos durante el tiempo de inactividad del sistema y retraso en los futuros lanzamientos de productos debido a que el talento se desvía a medidas correctivas, de acuerdo con la empresa de TI Tricentis.

Los equipos de proyecto actualmente están evaluando si la inteligencia artificial (IA) podría ser una solución. Mientras que la detección humana de errores de software requiere mucho tiempo y es imperfecta, la IA puede identificar errores comunes de manera rápida y eficiente. Los organismos gubernamentales de Estados Unidos y China han lanzado proyectos de investigación para fomentar el uso de la IA para la detección de errores en el código. El sector privado también se está involucrando, con el lanzamiento del año pasado, por parte de Facebook y la empresa francesa de videojuegos Ubisoft, de proyectos destinados al desarrollo de sus propias herramientas de IA para la detección de errores.

Cambio en el juego

El equipo de proyecto de Ubisoft alimentó los 10 años de código de su herramienta de inteligencia artificial de su biblioteca de software para enseñarle qué errores se habían encontrado y solucionado anteriormente. En lugar de señalar errores específicos, la herramienta les indica a los programadores la probabilidad estadística de que un error se presente en una parte determinada del código.

Uno de los desafíos que Ubisoft debió enfrentar durante el proyecto fue lograr el compromiso de los programadores, señala Yves Jacquier, Director Ejecutivo de Servicios de Estudios de Producción de Ubisoft Montreal en Montreal, Quebec, Canadá. “La naturaleza estadística del aprendizaje automático implica que debemos cambiar nuestra forma de trabajar”, agrega. A diferencia del software tradicional, en el que los desarrolladores redactan reglas que debe seguir la aplicación, los algoritmos de aprendizaje automático utilizan datos para guiar cómo debe actuar el software. “Se requiere una gran gestión de cambio para adaptar la solución desde un punto de vista técnico y determinar el umbral óptimo que maximice el número de errores detectados sin que se produzcan demasiados falsos positivos”.

img

—Yves Jacquier, Ubisoft Montreal, Montreal, Quebec, Canadá

Para ayudar a facilitar la transición, el equipo está implementando la herramienta de forma iterativa, comenzando con sus proyectos de producción de videojuegos canadienses. La empresa también está capacitando a equipos de programación individuales sobre su uso. Si bien es laborioso, los beneficios hacen que valga la pena: la empresa estima que al utilizar esas técnicas se puede detectar el 70% de los errores antes de llegar a las fases de pruebas, lo que permite liberar a los equipos para que trabajen en las funciones que aportan más valor.

Detector de errores

El año pasado el gobierno de Estados Unidos terminó un proyecto de US$8 millones financiado por la Agencia de Proyectos de Investigación Avanzados de Defensa de EUA y el Laboratorio de Investigación de la Fuerza Aérea de Estados Unidos en la organización de investigación y desarrollo sin fines de lucro Draper. El proyecto de desarrollo tenía por objeto crear una serie de algoritmos que permitieran la detección y reparación automática de falencias en el software mediante su sistema de aprendizaje automático basado en la red neuronal DeepCode. Uno de los desafíos del equipo durante el proyecto de cuatro años fue encontrar los datos correctos para entrenar la herramienta.

“No había muchos ejemplos en el mundo salvaje de los códigos etiquetados como buenos y como malos”, afirma Jeffrey Opper, Director del Programa de Seguridad y Espacio Nacional de Draper en Cambridge, Massachusetts, EUA.

Para abordar el problema, el equipo eligió grandes conjuntos de datos de entrenamiento mediante el uso de paquetes de prueba y bibliotecas de código abierto. Marcaron y etiquetaron los problemas en el código como “malos” mediante el uso de analizadores estáticos para enseñarle a DeepCode cómo eran los errores. También confiaron en un equipo interno de expertos en software de Draper para probar la precisión de DeepCode y reducir el número de falsas alarmas que originaba. El entrenamiento y perfeccionamiento de DeepCode tardó 18 meses, y el proyecto finalizó en octubre. “La herramienta demostró que los clasificadores de DeepCode, con datos suficientemente sólidos, pueden identificar fallas en el código con una precisión significativamente mayor que los analizadores estáticos de código abierto” sostiene Opper. —Ambreen Ali

Like what you just read?

Log in or register for a free PMI account to get access 
to even more articles like this one.

Offer from our training partner

Advertisement

Offer from our training partner

Advertisement

Related Content

Offer from our training partner

Advertisement