Pós-Graduação em Ciência da Computação – UFPE
Defesa de Dissertação de Mestrado Nº 2.063
Aluna: Beatriz Bezerra de Souza
Orientador: Prof. Marcelo Bezerra d’Amorim
Título: Learning to Detect Text-Code Inconsistencies with Weak and Manual
Supervision
Data: 15/02/2023
Hora/Local: 16h – Virtual – Interessados em assistir entrar em contato com a aluna
Banca Examinadora:
Prof. Leopoldo Motta Teixeira (UFPE / Centro de Informática)
Prof. Michael Pradel (University of Stuttgart / Institute of Software Engineering)
Prof. Marcelo Bezerra d’Amorim (UFPE / Centro de Informática)
RESUMO:
O código-fonte geralmente está associado a um resumo em linguagem natural, permitindo
que os desenvolvedores entendam o comportamento e a intenção do código. Por exemplo, comentários em nível de método resumem o comportamento de um método e descrições de teste resumem a intenção de um caso de teste. Infelizmente, o texto e seu código correspondente às vezes são inconsistentes, o que pode atrapalhar a compreensão do código, a reutilização do código e a manutenção do código. Propomos TCID, uma abordagem para Detecção de Inconsistência de Código e Texto, que treina um modelo neural para distinguir pares de texto-código consistentes de inconsistentes. Nossa principal contribuição é combinar duas formas de treinar tal modelo. Primeiro, o TCID executa pré-treinamento fracamente supervisionado com base em grandes quantidades de exemplos consistentes extraídos do código como está e exemplos inconsistentes criados pela recombinação aleatória de pares texto-código. Em seguida, o TCID faz o ajuste fino no modelo baseado em um conjunto pequeno e curado de exemplos rotulados manualmente. Esta combinação é motivada pela observação de que a supervisão fraca por si só leva a modelos que generalizam mal a inconsistências do mundo real. Nossa avaliação
aplica o procedimento de treinamento em duas etapas a quatro modelos de última geração e avalia-os em dois problemas de texto versus código: 40.7K comentários em nível de método verificados em relação ao corpo do método Java correspondente e—como um problema não considerado em trabalhos anteriores—338.8K as descrições dos casos de teste são verificadas em relação às implementações JavaScript correspondentes. Nossos resultados mostram que uma pequena quantidade de rotulagem manual permite que a eficácia da abordagem melhore significativamente, superando o estado da arte atual e melhorando a pontuação de F1 em 5% em Java e em 17% em JavaScript. Validamos a utilidade das previsões do TCID por envio de pull requests, dos quais 10 foram aceitos até o momento.
Palavras-chave: detecção de inconsistência; pré-treinamento; afinamento.
Comentários desativados