Por favor, use este identificador para citar o enlazar este ítem: https://repositorio.ufu.br/handle/123456789/43981
ORCID:  http://orcid.org/0009-0009-6431-5515
Tipo de documento: Dissertação
Tipo de acceso: Acesso Aberto
Título: Um estudo sobre a associação entre abordagens de localização de bugs e ações/padrões de reparo dos bugs
Título (s) alternativo (s): A study on the association between bug localization approaches and bug repair actions/patterns
Autor: Dias, Julia Manfrin
Primer orientador: Maia, Marcelo de Almeida
Primer miembro de la banca: Julia, Stéphane
Segundo miembro de la banca: Figueiredo, Eduardo Magno Lages
Resumen: 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.
Palabras clave: engenharia de software
localização de bugs
Correção de Bugs
Área (s) del CNPq: CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO
Tema: Computação
Engenharia de software
Software - Desenvolvimento
WinBUGS (Software)
Idioma: por
País: Brasil
Editora: Universidade Federal de Uberlândia
Programa: Programa de Pós-graduação em Ciência da Computação
Cita: 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.
Identificador del documento: http://doi.org/10.14393/ufu.di.2024.641
URI: https://repositorio.ufu.br/handle/123456789/43981
Fecha de defensa: 2-sep-2024
Objetivos de Desarrollo Sostenible (ODS): ODS::ODS 8. Trabalho decente e crescimento econômico - Promover o crescimento econômico sustentado, inclusivo e sustentável, emprego pleno e produtivo, e trabalho decente para todos.
Aparece en las colecciones:DISSERTAÇÃO - Ciência da Computação

Ficheros en este ítem:
Fichero TamañoFormato 
EstudoSobreAssociação.pdf8.52 MBAdobe PDFVisualizar/Abrir


Los ítems de DSpace están protegidos por copyright, con todos los derechos reservados, a menos que se indique lo contrario.