Adquisición Automática de Corpora de Entrenamiento Anotados para la Generación de Código de Prueba
Autores: Kacmajor, Magdalena; Kelleher, John D.
Idioma: Inglés
Editor: MDPI
Año: 2019
Acceso abierto
Artículo científico
2019
Adquisición Automática de Corpora de Entrenamiento Anotados para la Generación de Código de Prueba
Categoría
Gestión y administración
Subcategoría
Gestión de la tecnología y la inovación
Palabras clave
Repositorios de software
Código fuente
Aprendizaje automático
Generación de código
Corpora de texto-código paralelos
Descripciones en lenguaje natural
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 1
Citaciones: Sin citaciones
Los repositorios de software abiertos hacen que grandes cantidades de código fuente estén disponibles públicamente. Potencialmente, este código fuente podría utilizarse como datos de entrenamiento para desarrollar nuevas herramientas de programación basadas en aprendizaje automático. Sin embargo, para muchas aplicaciones, el código en bruto extraído de repositorios en línea no constituye un conjunto de datos de entrenamiento adecuado. Basándose en las recientes y rápidas mejoras en la traducción automática (TA), una aplicación posiblemente muy interesante es la generación de código a partir de descripciones en lenguaje natural. Uno de los cuellos de botella en el desarrollo de estos sistemas inspirados en TA es la adquisición de corpora paralelos de texto-código requeridos para entrenar modelos generativos de código. Este documento aborda el problema de sintetizar automáticamente corpora paralelos de texto-código en el dominio de las pruebas de software. Nuestro enfoque se basa en la observación de que la autodocumentación a través de nombres de métodos descriptivos es ampliamente adoptada en la automatización de pruebas, en particular para pruebas unitarias. Por lo tanto, proponemos sintetizar corpora paralelos compuestos por nombres de funciones de prueba analizados que sirven como descripciones de código, alineados con los cuerpos de función correspondientes. Presentamos los resultados de aplicar uno de los métodos de TA de vanguardia en un conjunto de datos generado de esta manera. Nuestros experimentos muestran que un modelo de TA neuronal entrenado en nuestro conjunto de datos puede generar funciones cortas de Java sintácticamente correctas y semánticamente relevantes a partir de descripciones de funcionalidad casi en lenguaje natural.
Descripción
Los repositorios de software abiertos hacen que grandes cantidades de código fuente estén disponibles públicamente. Potencialmente, este código fuente podría utilizarse como datos de entrenamiento para desarrollar nuevas herramientas de programación basadas en aprendizaje automático. Sin embargo, para muchas aplicaciones, el código en bruto extraído de repositorios en línea no constituye un conjunto de datos de entrenamiento adecuado. Basándose en las recientes y rápidas mejoras en la traducción automática (TA), una aplicación posiblemente muy interesante es la generación de código a partir de descripciones en lenguaje natural. Uno de los cuellos de botella en el desarrollo de estos sistemas inspirados en TA es la adquisición de corpora paralelos de texto-código requeridos para entrenar modelos generativos de código. Este documento aborda el problema de sintetizar automáticamente corpora paralelos de texto-código en el dominio de las pruebas de software. Nuestro enfoque se basa en la observación de que la autodocumentación a través de nombres de métodos descriptivos es ampliamente adoptada en la automatización de pruebas, en particular para pruebas unitarias. Por lo tanto, proponemos sintetizar corpora paralelos compuestos por nombres de funciones de prueba analizados que sirven como descripciones de código, alineados con los cuerpos de función correspondientes. Presentamos los resultados de aplicar uno de los métodos de TA de vanguardia en un conjunto de datos generado de esta manera. Nuestros experimentos muestran que un modelo de TA neuronal entrenado en nuestro conjunto de datos puede generar funciones cortas de Java sintácticamente correctas y semánticamente relevantes a partir de descripciones de funcionalidad casi en lenguaje natural.