Décio Gonçalves de Aguiar Neto, Wainer, Jacques, 1958, Ferreira, Alexandre Mello, Pedrini, Hélio, Mena-Chalco, Jesús Pascual, Universidade Estadual de Campinas. Instituto de Computação, Programa de Pós-Graduação em Ciência da Computação, and UNIVERSIDADE ESTADUAL DE CAMPINAS
Orientadores: Jacques Wainer, Alexandre Mello Ferreira Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação Resumo: Durante o desenvolvimento de um projeto de software falhas podem surgir em funcionalidades do sistema em desenvolvimento. Estas falhas são denominadas na literatura como \textit{bugs} e, quando identificado, é reportado através de formulários ou relatórios de erros que contém informações de como ocorreu o problema e, em alguns casos, como reproduzir o erro reportado. Estas informações são utilizadas para identificar a possível causa do \textit{bug}. O processamento de relatórios de \textit{bugs} é um ponto essencial na correção e manutenção de software modernos. Assim, após o preenchimento das informações, o triador deve atribuir, de forma correta, qual equipe será responsável pela manutenção da funcionalidade. Em cenários como este, um sistema automatizado de processamento de relatórios de \textit{bugs} é um passo natural em direção à redução do tempo de trabalho manual e maior confiabilidade nas atribuições, pois um modelo com bom desempenho, em termos de acurácia, pode auxiliar no apoio à decisão a ser tomada pelo triador, aumentando assim a eficiência do processamento do relatório. A eficiência, neste caso, envolve melhorar a taxa de acerto dos triadores nas tarefas que envolvem o processamento do relatório e no envio de um \textit{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 processamento de \textit{bugs}, no entanto as soluções propostas geralmente para a resolução de uma única tarefa dentro do processamento de relatório de \textit{bug} e não soluções que incluam todas as tarefas que compõem o conjunto de atividades do \textit{pipeline}. O grande desafio deste domínio, para os modelos de aprendizado de máquina, é que, os campos que contêm informações sobre o \textit{bug} geralmente contêm uma combinação de texto não estruturado livre, ou seja, trechos de código e texto em diferentes línguas, o que torna os dados de entrada altamente ruidosos. Trabalhos mostram que uma alternativa para lidar com problemas relativos à entrada é fazer uso de modelos de aprendizado profundo. Estes modelos 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. Contudo, os resultados dos estudos sobre aprendizagem profunda no domínio de processamento de relatórios de \textit{bugs} ainda são insuficientes. Neste trabalho, exploramos uma técnica de aprendizado profundo bastante utilizadas em visão computacional, a transferência de aprendizado, visando obter melhorias nos resultados para o problema de triagem automática de \textit{bugs} e a rotulação de relatórios de \textit{bugs}. Realizamos a transferência a partir do modelo BERT pré-treinando com dados do domínio de \textit{bug tracking}, resultando em um novo modelo que denominamos BugBert. Este método se tornou o novo estado da arte na triagem de \textit{bugs} Abstract: During the development of a software project, failures are common in the functionality of the system being developed. These errors are referred in literature as bugs and when identified, it is reported through forms or error reports that contain information on how the problem occurred and, in some cases, how to reproduce the reported error. This information is used to identify the possible cause of the bug. The processing of bug reports is an essential point in the correction and maintenance of modern software. Thus, after filling in the information, the triator must correctly assign which team will be responsible for maintaining the functionality. In scenarios like this, an automated bug reporting system is a natural step towards reducing manual work time and greater reliability in assignments, as a model with good performance can help support the decision to be made by the triator thus increasing the efficiency of the report processing. Efficiency, in this case, involves improving the success rate of triads in tasks that involve processing the report and sending a bug to the correct developer or team, thus reducing the number of reassignments until their resolution. Different solutions have been proposed in the literature for the creation of an automated bug processing system, however the solutions proposed generally for the resolution of a single task within the processing of bug reports and not solutions that include all the tasks that comprise the set of pipeline activities. The great challenge of this domain, for machine learning models, is that, fields containing information about the bug generally contain a combination of free unstructured text, that is, snippets of code and text in different languages, which makes highly noisy input data. Studies show that an alternative to deal with problems related to entry is to use deep learning models. These models have obtained superior results in different tasks of natural language processing and classification when compared to traditional machine learning models. However, the results of studies on deep learning in the field of processing bug reports are still insufficient. In this work, we explore a deep learning technique widely used in computer vision, the transfer of learning, in order to obtain improvements in the results for the automatic bug screening problem and the labeling of bug reports. We performed the transfer from the BERT model pre-training with data from the \ textit {bug tracking} domain, resulting in a new model that we call BugBert. This method has become the new state of the art in bug triage Mestrado Ciência da Computação Mestre em Ciência da Computação CNPQ 130915/2018-1