Please use this identifier to cite or link to this item:
https://repositorio.ufu.br/handle/123456789/43981
ORCID: | http://orcid.org/0009-0009-6431-5515 |
Document type: | Dissertação |
Access type: | Acesso Aberto |
Title: | Um estudo sobre a associação entre abordagens de localização de bugs e ações/padrões de reparo dos bugs |
Alternate title (s): | A study on the association between bug localization approaches and bug repair actions/patterns |
Author: | Dias, Julia Manfrin |
First Advisor: | Maia, Marcelo de Almeida |
First member of the Committee: | Julia, Stéphane |
Second member of the Committee: | Figueiredo, Eduardo Magno Lages |
Summary: | 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. |
Keywords: | engenharia de software localização de bugs Correção de Bugs |
Area (s) of CNPq: | CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO |
Subject: | Computação Engenharia de software Software - Desenvolvimento WinBUGS (Software) |
Language: | por |
Country: | Brasil |
Publisher: | Universidade Federal de Uberlândia |
Program: | Programa de Pós-graduação em Ciência da Computação |
Quote: | 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. |
Document identifier: | http://doi.org/10.14393/ufu.di.2024.641 |
URI: | https://repositorio.ufu.br/handle/123456789/43981 |
Date of defense: | 2-Sep-2024 |
Sustainable Development Goals SDGs: | 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. |
Appears in Collections: | DISSERTAÇÃO - Ciência da Computação |
Files in This Item:
File | Size | Format | |
---|---|---|---|
EstudoSobreAssociação.pdf | 8.52 MB | Adobe PDF | View/Open |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.