Publicação: Um estudo sobre a associação entre abordagens de localização de bugs e ações/padrões de reparo dos bugs
Carregando...
Tipo do documento
Data
Direito de acesso
Área do conhecimento
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO
Título da Revista
ISSN da Revista
Título de Volume
Autores
Orientador
Coorientador
Resumo
Em um processo de desenvolvimento de software ocorrem problemas que podem atra-
palhar a execução do mesmo por envolver questões de custos e de tempo. Um problema
bastante frequentes é a ocorrência de erros, que podem requerer um esforço considerável
de reparo. A engenharia de software propõe abordagens para minimizar este problema.
O tema de estudo deste trabalho envolve este processo de correção de erros, focando
especialmente em uma tarefa preliminar, chamada de localização de bugs, que consiste
em localizar onde está o erro no código. Para auxiliar o trabalho do desenvolvedor na
tarefa de localização de erros, foram propostas diversas abordagens automatizadas. A
proposta deste estudo é analisar o desempenho, em relação a acurácia, de diversos tipos
de localizadores, com base nas características dos bugs. Estas características se referem
as ações e padrões de reparo que são conduzidas para a correção. São exemplos de ações
de reparo adições, remoções e modificações de linhas no código-fonte. Já os padrões de
reparo são abstrações de alto nível de recorrências de estruturas de ações nos códigos re-
parados. O objetivo do trabalho é entender se existe uma relação entre os diferentes tipos
de ações/padrões de reparo com a acurácia dos diferentes tipos de localizadores. O traba-
lho comparou diferentes técnicas de localização de bugs, como DStar, Ochiai, Metallaxis,
Muse, Predicate Switching, Fatiamento e Stack Trace. Observou-se que técnicas baseadas
em cobertura e mutação são mais eficazes para bugs que envolvem remoção ou mudança
de linhas, enquanto a adição de linhas apresentou maior dificuldade. Além disso, bugs
em expressões foram mais facilmente localizados, enquanto aqueles relacionados a tipos e
declarações de métodos foram mais difíceis de identificar. A análise de padrões de reparo
mostrou que mudanças constantes e correções de API são mais facilmente detectadas,
enquanto bugs de verificação de referências nulas e movimentação de código são os mais
desafiadores.
Abstract
In a software development process, issues can arise that may hinder its execution due to
cost and time concerns. A common problem is the occurrence of errors, which may require
considerable effort to repair. Software engineering proposes approaches to minimize this
problem. The study topic of this work involves the bug fixing process, focusing especially
on a preliminary task, named bug localization, which consists in locating where the error
is in the code. To assist the developer’s task in bug localization, various automated
approaches have been proposed. This study aims to analyze the performance, in terms
of accuracy, of different types of locators, based on the characteristics of the bugs. These
characteristics refer to the actions and repair patterns that are conducted for fixing.
Examples of repair actions include additions, removals, and modifications of lines in the
source code. Meanwhile, repair patterns are high-level abstractions of recurrences of
action structures in repaired code. The objective of the work is to understand if there is
a relationship between the different types of actions/repair patterns and the accuracy of
the different types of locators. The study compared different bug localization techniques,
such as DStar, Ochiai, Metallaxis, Muse, Predicate Switching, Slicing, and Stack Trace.
It was observed that coverage-based and mutation-based techniques are more effective for
bugs involving line removal or modification, while line addition presented more difficulty.
Additionally, bugs in expressions were more easily located, whereas those related to types
and method declarations were harder to identify. The analysis of repair patterns showed
that constant changes and API fixes are more easily detected, while missing null checks
and code movement were the most challenging.
Palavras-chave
engenharia de software, localização de bugs, Correção de Bugs
Citação
DIAS, Júlia Manfrin. Um estudo sobre a associação entre abordagens de localização de bugs e ações/padrões de reparo dos bugs. 2024. 74 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Uberlândia, Uberlândia, 2024. DOI http://doi.org/10.14393/ufu.di.2024.641.