Construção de um classificador automático de severidade de bugs para sistemas open source

Local: 
Sala 1B132, Bloco 1B, Campus Santa Mônica - Horário: 10h
Banca examinadora: 
Prof. Dr. Marcelo de Almeida Maia - FACOM-UFU (orientador)
Prof. Dr. Stéphane Julia - FACOM/UFU
Prof. Dr. Mark Alan Junho Song - PUC-Minas

A análise de bugs de software é uma das atividades mais importantes na Qualidade de Software. A rápida e correta implementação do reparo necessário tem influência tanto para os desenvolvedores, que devem deixar o software funcionando plenamente, quanto para os usuários, que precisam executar suas tarefas diárias. Neste contexto, caso haja má caracterização no relato dos bugs, podem ocorrer situações indesejadas. Um dos principais fatores a serem atribuídos ao bug no ato de seu relato inicial é severidade, que diz respeito à urgência da correção daquele problema. Diante deste cenário identificou-se em conjuntos de dados que há uma distribuição não uniforme dos bugs com relação às severidades existentes, o que é um indício inicial de má classificação. Nos dados analisados existe uma taxa de cerca de 85% de bugs sendo classificados com apenas a severidade normal. Logo, esta taxa de classificação, possivelmente incorreta, pode influenciar negativamente no contexto do desenvolvimento do software, onde o bug mal classificado pode ser alocado para um desenvolvedor com pouca experiência para poder resolvê-lo e assim, a correção do mesmo pode demorar, ou ainda gerar uma implementação incorreta. Vários trabalhos na literatura tem desconsiderado os bugs normais, trabalhando apenas com a porção de bugs considerados severos ou não severos inicialmente. Este trabalho teve como principal objetivo investigar esta porção dos dados, com finalidade de identificar se a severidade normal reflete a real urgência de correção do bug, investigar se existem bugs (classificados inicialmente como normais) que poderiam ser classificados com outra severidade, além de avaliar se há impactos para os desenvolvedores neste sentido. Para isso, foi desenvolvido um classificador automático, que baseou-se em três algoritmos (Niiive Bayes, Max Ent e Winnow) para aferir se a severidade normal está correta para os bugs assim categorizados inicialmente. Os algoritmos apresentaram acurácia de cerca de 80%, e mostraram que entre 21% e 36% dos bugs deveriam ter sido classificados de outra forma (dependendo do algoritmo), o que representa algo entre 70.000 e 130.000 bugs da amostra coletada.