18 mar 2020
10:00 Defesa de Mestrado Integralmente a distância
Tema
Processamento de Reatórios de Bugs Utilizando Redes Neurais Profundas
Aluno
Décio Gonçalves de Aguiar Neto
Orientador / Docente
Jacques Wainer
Breve resumo
Durante o desenvolvimento de um projeto de software é possível que surjam falhas em algumas funcionalidades do sistema em desenvolvimento. Estas falhas são denominadas na literatura como bugs.
Um bug pode ter natureza de hardware ou de software, e quando identificado pode ser reportado através de formulários ou relatórios de erros contendo informações de como ocorreu o problema. Estas informações servem para identificar a possível causa do bug.
Estes relatórios de bug são direcionados a um triador, para que esse possa atribuir de forma correta a equipe responsável no projeto pela manutenção da funcionalidade mencionada.
Em cenários como este, um sistema automatizado de triagem de bugs é um passo natural em direção à redução do tempo de trabalho manual e maior confiabilidade nas atribuições, pois um modelo com boa performance pode auxiliar no apoio à decisão a ser tomada pelo triador, aumentando assim a eficiência do processo de triagem.
A eficiência, neste caso, envolve melhorar a precisão no envio de um bug para o desenvolvedor ou equipe correta, reduzindo assim o número de re-atribuições até a sua resolução.
Diferentes soluções têm sido propostas na literatura para a criação de um sistema automatizado de triagem de bugs. Um algoritmo automático de triagem de bugspode ser formulado como um problema de classificação, que recebe informações como título e/ou descrição contidas no relatório de bug como entrada, mapeando-o para um dos componentes disponíveis (times de desenvolvimento) onde os times são os rótulos das classes.
O grande desafio é que os campos que contêm informações sobre o bug geralmente contêm uma combinação de texto não estruturado livre, trechos de código e texto em diferentes línguas, o que torna os dados de entrada altamente ruidosos.
Diferentes trabalhos mostram que uma alternativa para lidar com problemas relativos à entrada é fazer uso de modelos de aprendizado profundo. Estes têm obtido resultados superiores em diferentes tarefas de processamento de linguagem natural e classificação quando comparados aos modelos de aprendizado de máquina tradicional.
Neste trabalho, iremos explorar técnicas de aprendizado profundo já bastante utilizadas em outras áreas como em visão computacional, visando obter melhorias nos resultados para o problema de triagem automática de bugs.
Banca examinadora
Titulares:
Jacques Wainer | IC/UNICAMP |
Jesús Pascual Mena Charco | CMCC/UFABC |
Roberto de Alencar Lotufo | FEEC/UNICAMP |
Suplentes:
Hélio Pedrini | IC/UNICAMP |
Diego Raphael Amancio | ICMC/USP |