Repository logo
 
Loading...
Thumbnail Image
Publication

Bug Taxonomy Classification Using Machine Learning Algorithms

Use this identifier to reference this record.
Name:Description:Size:Format: 
10729_25489.pdf1.52 MBAdobe PDF Download

Abstract(s)

Bugs are a natural occurrence in the realm of software development. As society increasingly relies on software, the frequency of these occurrences has naturally increased as well, potentially leading to catastrophic consequences for products or businesses. To monitor and manage the bug resolution process, various bug tracking systems have been developed. These platforms enable teams responsible for bug analysis to view identified bugs, track the most common issues, and monitor their resolution status. However, the challenge lies in analyzing each of these reports. In large-scale products, hundreds of reports can be submitted daily through these platforms, whether by other developers, pen testers, or end users. End users, due to their likely lack of knowledge about software, system architecture, or other inherent processes, may submit incorrect or unclear reports. Addressing the need for developers to manually analyze and classify each of these reports (a complex and time-consuming task) through automation is an idea that has been explored by various researchers. This research aims to develop a comprehensive and detailed classification schema that can provide additional, automated information to report analysts, thereby facilitating part of their analysis process. To achieve this, the proposed solution is based on leveraging the high performance and capabilities of the BERT model, a model rooted on Transformer architecture, to classify these reports as accurately as possible, based on the textual descriptions within each report. A dataset was created following this schema, designed through a divideand-conquer approach, and multiple models were trained on each category. The results indicate that BERT can form the basis of a robust solution for this purpose, even when provided with a small amount of labeled data as input and despite the need for some refinement in the training process. The best results were obtained when both the title and the description were used together as input data for the model, with one model achieving an overall accuracy of 75%, and the lowest accuracy being 54.6%.
Bugs são uma ocorrência natural no mundo do desenvolvimento de software. Numa sociedade com cada vez mais software construído, o número destas ocorrências também tem vindo a aumentar, e podem ter consequências catastróficas para um produto ou negócio. De forma a tentar monitorizar e acompanhar o processo de resolução de bugs, foram criadas plataformas e sistemas de rastreamento dos mesmos. Através destas plataformas, as equipas responsabilizadas pelo processo de análise de bugs podem ver quais são os bugs que foram identificados, quais são os mais comumns e em que fase de resolução estes se encontram. O problema depara-se com a análise de cada um destes relatórios. Em produtos de grande dimensão centenas de relatórios podem ser submetidos nas suas plataformas por dia, quer por outros desenvolvedores, pen-testers ou por utilizadores finais. Os utilizadores finais, devido à sua provável falta de conhecimento acerca de software, da arquitetura do sistema que usam, ou de outros processos inerentes, podem submeter relatórios errados ou pouco claros. Combater a necessidade de desenvolvedores analisarem e categorizarem cada um destes relatórios (que é bastante complexo e demoroso), através de automatização é uma ideia que tem vindo a ser estudada por vários investigadores. Esta investigação visa a construir um esquema de classificação o mais abrangente e detalhado possível que possa fornecer informação extra e automatizada a um analisador de relatórios, para que uma parte da sua análise possa ser facilitada. Como tal, a solução encontrada basou-se na criação de uma implementação que tira partido da elevada performance e capacidades do modelo Bidirectional Encoder Representations from Transformers (BERT), um modelo baseado na arquitetura Transformers, para classificar estes relatórios da forma mais precisa possível, baseando-se nas descrições textuais presentes em cada um. Para isto foi criado um dataset baseado nesse esquema, desenhado através de uma solução divideand-conquer e vários modelos foram treinados em cada uma das categorias. Os resultados mostram que o BERT pode fazer parte de uma solução bastante robusta para este propósito, mesmo apesar da pequena quantidade de dados etiquetados que lhe foram dados como input e da necessidade de algum tipo de refinamento do processo de treino. Os melhores resultados foram obtidos quando o titulo e a descrição eram usados em conjunto como dado de entrada para o modelo, um deles conseguindo até precisão geral de 75%, sendo a mais fraca de 54.6%.

Description

Keywords

Aprendizagem de Máquina Aprendizagem Supervisionada Bert Classificação de Bugs Mineração de Dados Modelos de Linguagem de Grande Escala Processamento de Linguagem Natural Relatórios de Bugs Sistemas de Rastreamento de Bugs Triagem de Bugs

Pedagogical Context

Citation

Research Projects

Organizational Units

Journal Issue