Please use this identifier to cite or link to this item:
https://repositorio.ufu.br/handle/123456789/35654
ORCID: | http://orcid.org/0000-0001-8923-3000 |
Document type: | Tese |
Access type: | Acesso Aberto |
Title: | Análise de performance na localização de bugs apoiada pela dissecção de conjuntos de dados |
Alternate title (s): | Analysis of bug localization performance supported by dataset dissection |
Author: | Sobreira, Victor |
First Advisor: | Maia, Marcelo de Almeida |
First member of the Committee: | Figueiredo, Eduardo |
Second member of the Committee: | Dorça, Fabiano Azevedo |
Third member of the Committee: | Silva, Flávio de Oliveira |
Fourth member of the Committee: | Kulesza, Uirá |
Summary: | Encontrar e corrigir a causa de falhas em software continua sendo um grande desafio. Tais tarefas exigem dos desenvolvedores esforço e experiência equivalentes as necessárias para o desenvolvimento de novas funcionalidades. Nas últimas décadas, a comunidade de pesquisa esteve ativa na produção de abordagens para apoiar a depuração de software. A tarefa de Localização de Faltas (LF) é um passo essencial, independente da abordagem utilizada para reparo de programas (automática ou manual). Entretanto, as abordagens automatizadas de localização são críticas para tornar o processo mais eficaz e eficiente. Existem muitas abordagens para a LF automática e todas têm um alvo comum: melhorar a precisão do ranqueamento de componentes de software suspeitos de conter uma falta. Uma questão recorrente é a indefinição sobre as razões do sucesso ou fracasso das abordagens sobre o conjunto de dados de faltas avaliado, uma vez que a maioria dos métodos não considera a natureza e as características intrínsecas das faltas. A discussão ainda é muito focada em ganhos de desempenho nos comparativos com o estado da arte. Este trabalho visa apoiar as tarefas de reparo de software, com foco primário no suporte automatizado à LF. Primeiro, investigamos as características associadas as faltas comumente utilizadas na avaliação de estratégias de LF (o que se estende também ao reparo automático de programas). Então, analisamos as relações entre essas características e como influenciam a performance da LF. Partimos de uma abordagem estática de LF, baseada em algoritmos de aprendizado de rankings, Learning to Rank (LtR), e tendo relatórios de bugs como entrada do processo. Inicialmente, analisamos um conhecido conjunto de dados de faltas, Defects4J, de onde extraímos várias características das faltas. Posteriormente, analisamos tais características em um conjunto de dados maior, o qual referenciamos como LR–dataset. Então, levantamos várias estratégias e alternativas para a melhoria dos rankings de arquivos suspeitos de falta e gerados por abordagens de LF. Por exemplo, o uso de novas características (como a Entropia do Código), o ajuste de hiper-parâmetros e o balanceamento de dados para treinamento em abordagens de aprendizado de máquina e, finalmente, a amostragem de falhas guiada pela análise de códigos de reparo. Para isso, testamos as alternativas para melhoria dos rankings de componentes suspeitos por meio de um ambiente construído para experimentação e reprodução de estratégias para a LF. Mostramos que as estratégias de pré-processamento de relatórios de bugs e dos conjuntos de dados, além do ajuste de diferentes algoritmos de LtR, podem produzir resultados diferentes para os rankings mesmo usando abordagens prévias de LF. Além disso, as características das falhas amostradas para a avaliação podem influenciar significativamente o ranqueamento dos arquivos suspeitos, por exemplo, dependendo do tipo de padrões e ações de reparo necessários para a correção das falhas envolvidas. Este é o caso do padrão de reparo Missing Not-Null Check cuja presença em uma das amostras experimentais gerou um ranking de arquivos suspeitos marcando 27.22 pontos percentuais acima da linha base, ou seja, quando nós não consideramos a presença (ou ausência) do padrão. Esses resultados apontam para oportunidades de revisão das abordagens prévias de LF sob as lentes da dissecção dos conjuntos de dados utilizados na avaliação, com potencial de novos entendimentos, interpretações e composições de estratégias para LF. |
Abstract: | Finding and fixing software bugs still is a big challenge. These tasks demand developers as much effort and experience as required to develop new functionality. Last decades, the research community actively produced approaches to support the debugging process. The Bug Localization (BL) task is an essential step, wherever is the applied software repair approach (automated or manual). However, automated techniques for BL are critical in turning the process more effective and efficient. There are many approaches to automated BL, and all of them have one frequent goal: to improve accuracy performance in classifying software components suspected of containing bugs. One recurrent issue is the lack of clarity about the reasons for the success or failure of the approaches on the assessed bug dataset since most methods do not consider the nature and intrinsic characteristics of the bugs. The discussion is still too focused on performance gains compared to the previous state-of-the-art. This work aims to contribute to software repair tasks, primarily focusing on supporting the automated BL. First, we explored characteristics of bugs usually applied in the assessment of the localization strategies (also extended to automated program repair). Then, we analyze the relationships between these bug characteristics and their influence on the performance of localization strategies. We start from a static information-based BL approach, based in LtR algorithms, having bug reports as input to the localization process. Initially, we analyze a well-known bug dataset, Defects4J, from where we extract various bugs characteristics. Next, we analyzed these characteristics in a larger dataset referred to as LR-dataset. Then, we raise various strategies and alternatives to improve the ranking of suspect buggy files and generated by BL approaches. Some examples are the use of new features (e.g., Code Entropy), the tuning of hyperparameters and the data balance for training in Machine Learning (ML) based approaches, and, finally, bugs' sampling guided by patch analysis. For that, we tested the alternatives to improve the ranking of suspected components with an environment built for experimenting with and reproducing the BL strategies. We show that pre-processing strategies on bug reports and also on the dataset, besides the tuning of different LtR algorithms, can produce different ranking results even with past BL approaches. Still, characteristics of the bugs sampled for assessment can influence ranking scores of buggy suspected files, e.g., depending on the type of associated repair patterns and repair actions required to fix the bugs. For example, this is the case for the Missing Not-Null Check repair pattern whose presence in an experimental sample produces a suspicious score ranking 27.22 percentual points above the baseline when we do not consider the presence (or absence) of the pattern. These results point to opportunities to review the BL past approaches under the lens of dataset dissection applied in the assessment and with a potential to new insights, interpretations, and compositions of strategies for BL. |
Keywords: | Localização de Bug Bug Localization Reparo Automático de Software Automatic Program Repair Dissecção de Conjuntos de Dados de Bugs Bugs’ Dataset Dissection Depuração de Software Debugging Análise de Reparos Patch Analysis Aprendizado de Rankings Learn-to-Rank |
Area (s) of CNPq: | CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWARE |
Subject: | Computação Software - Manutenção Falhas de sistemas de computação Conjunto de caracteres (Processamento de dados) |
Language: | eng |
Country: | Brasil |
Publisher: | Universidade Federal de Uberlândia |
Program: | Programa de Pós-graduação em Ciência da Computação |
Quote: | SOBREIRA, Victor. Analysis of bug localization performance supported by dataset dissection. 2022. 222 f. Tese (Doutorado em Ciência da Computação) - Universidade Federal de Uberlândia, Uberlândia, 2022. DOI http://doi.org/10.14393/ufu.te.2022.60 |
Document identifier: | http://doi.org/10.14393/ufu.te.2022.60 |
URI: | https://repositorio.ufu.br/handle/123456789/35654 |
Date of defense: | 24-Jan-2022 |
Appears in Collections: | TESE - Ciência da Computação |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
AnalysisBugLocalization.pdf | Tese | 16.96 MB | Adobe PDF | View/Open |
This item is licensed under a Creative Commons License