Relating bug report fields with resolution status: a case study with bugzilla. - FERREIRA, José Manoel dos Santos. (2023)
Os bug reports(BR) são artefatos essenciais para a garantia da qualidade do software. No entanto, o BR produzido, seja por testadores ou usuários, exige do relator uma quantidade considerável de dados, como resumo, etapas necessárias para reproduzir, comportamento esperado/real do sistema, gravidade/prioridade e até mesmo anexos (capturas de tela, vídeos ou arquivos de log). Pesquisas anteriores destacaram a frequência com que esses campos de dados são negligenciados; em resposta, várias diretrizes para escrever bons BR podem ser encontradas na literatura. No entanto, é razoável avaliar o impacto relativo desses campos relatados sobre o resultado dos bugs reportados, especialmente as condições em que eles são resolvidos. Por exemplo, quais campos são os mais importantes para ajudar os desenvolvedores a corrigir um bug? Neste estudo, realizamos uma investigação em um conjunto de dados de 69 mil bugs extraídos da plataforma Bugzilla. Avaliamos cinco modelos de aprendizado de máquina para classificar o status de resolução de bugs (entre FIXED, INVALID, INCOMPLETE, WONTFIX, WORKSFORME, MOVED, DUPLICATED e INACTIVE) e, em seguida, determinamos os recursos que mais influenciam a classificação FIXED. O processo de classificação envolve o emprego de técnicas padrão de aprendizado de máquina para otimização de modelos, incluindo balanceamento, agrupamento e fine-tuning. Notavelmente, o modelo Random Forest demonstrou excelente desempenho, alcançando 71,81% de precisão, 74,46% de acurácia e 72,32% de f-measure, com uma notável precisão de 95% na classificação de BR FIXED. Além disso, esse modelo nos permitiu identificar os campos mais influentes para a previsão de resolução. Entre os campos considerados, aqueles relacionados a dados textuais, como resumo, descrição e comentários, surgiram como contribuintes significativos para a classificação de importância do campo. Além disso, os anexos adicionados por meio da seção de comentários mostraram uma relevância considerável para a resolução do BR, assim como as alterações feitas durante o ciclo de vida do BR. Com base nesses resultados, fica evidente que o preenchimento de determinados campos nos BRs pode ajudar na correção dos bugs relatados. Consequentemente, as equipes de desenvolvimento podem se beneficiar dessas descobertas para estabelecer prioridades durante o processo de correção de bugs e alocar recursos de forma mais eficaz para a garantia de qualidade. Além disso, comunicar a importância desses campos aos usuários antes de enviar os BRs pode i resultar em envios mais focados e informativos, além de ajudar a aproveitar melhor o tempo deles.