Pós-Graduação em Ciência da Computação – UFPE
Defesa de Dissertação de Mestrado Nº 1.961


Aluno: Dinaldo Andrade Pessoa
Orientador: Prof. Adriano Lorena Inacio de Oliveira
Co-orientador: Prof. George Gomes Cabral (UFRPE/Departamento de Computação)
Título: Batch Algorithms and Fixed Detection Rates for Online Just-In-Time 
Software Defect Prediction
Data: 26/03/2021
Hora/Local: 9h – Virtual – Interessados em assistir entrar em contato com o aluno
Banca Examinadora:
Prof. George Darmiton da Cunha Cavalcanti  (UFPE / Centro de Informática)
Prof. Luiz Eduardo Soares de Oliveira  (UFPR / Departamento de Informática)
Prof. Adriano Lorena Inácio de Oliveira (UFPE / Centro de Informática)


RESUMO:



Just-In-Time Software Defect Prediction (JIT-SDP) tem o objetivo de identificar a presença de defeitos em mudanças de código no momento do commit ao invés de inspecionar módulos (i.e., arquivos e pacotes) de maneira offline, como é realizado em Software Defect Prediction (SDP) tradicional. Em uma aplicação real de JIT-SDP, as predições devem ser feitas de forma online para que o desenvolvedor seja informado sobre a presença de defeito logo após a mudança de código ser submetida, provendo ao desenvolvedor a oportunidade de inspecionar a mudança enquanto ela ainda está fresca em sua mente. Por outro lado, o treinamento do modelo pode ser feito de forma online ou em lote, uma vez que este domínio de problema não possui requisitos de tempo real. Independente do tipo de treinamento, é importante notar que a mudança de código não é rotulada imediatamente após a sua submissão para o repositório de código fonte. O tempo de rotulagem pode levar dias ou meses, dependendo do tempo gasto pela equipe de desenvolvimento de software para descobrir e corrigir cada erro. Então, o modelo deve esperar um tempo para confiar no rótulo de uma mudança de código. E este período de tempo é conhecido como latência de verificação. Outro desafio enfrentado por um modelo de JIT-SDP é a flutuação da taxa de desbalanceamento das classes ao longo do tempo. Este tipo de mudança de conceito é conhecido como evolução no desbalanceamento das classes. Este trabalho investiga o uso de algoritmos em lote para lidar com JIT-SDP no contexto de latência de verificação e evolução no desbalanceamento das classes. Em comparação com o estado-da-arte, que é baseado em algoritmos online, nossa abordagem alcançou melhorias entre +2% e +11% em 9 das 10 bases de dados investigadas, em termos de g-mean. Em apenas uma base de dados, nossa abordagem obteve um resultado inferior ao da abordagem estado da arte, uma baixa de -2% em termos de g-mean. Além disso, este trabalho investiga a performance preditiva em um contexto no qual o modelo é restrito a retornar uma taxa de predição de defeito fixa. Mais especificamente, a taxa de predição de defeito é uma taxa online que corresponde ao número de predições que retornam a classe de defeito dividido pelo total de predições em um intervalo de tempo. E a taxa de predição de defeito fixa significa restringir o modelo para manter a taxa especificada ao longo do tempo. Dito isso, os resultados dos experimentos mostraram que, submetido a esta restrição, métodos com mais capacidade de manter a taxa de predição de defeito próximo à taxa de predição fixa definida pela otimização de hiperparâmetros também obtém uma melhor performance preditiva no dados de teste, i.e., há uma correlação significativa entre esta capacidade e a performance preditiva. O coeficiente de correlação entre elas é 0,44.


Palavras-chave: Predição de defeito de software. Latência de verificação. Desbalanceamento de classes. Mudança de conceito.

Comentários desativados