Please use this identifier to cite or link to this item: https://repositorio.ufu.br/handle/123456789/35654
Full metadata record
DC FieldValueLanguage
dc.creatorSobreira, Victor-
dc.date.accessioned2022-08-22T19:40:30Z-
dc.date.available2022-08-22T19:40:30Z-
dc.date.issued2022-01-24-
dc.identifier.citationSOBREIRA, 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.60pt_BR
dc.identifier.urihttps://repositorio.ufu.br/handle/123456789/35654-
dc.description.abstractFinding 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.pt_BR
dc.description.sponsorshipUFU - Universidade Federal de Uberlândiapt_BR
dc.languageengpt_BR
dc.publisherUniversidade Federal de Uberlândiapt_BR
dc.rightsAcesso Abertopt_BR
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/us/*
dc.subjectLocalização de Bugpt_BR
dc.subjectBug Localizationpt_BR
dc.subjectReparo Automático de Softwarept_BR
dc.subjectAutomatic Program Repairpt_BR
dc.subjectDissecção de Conjuntos de Dados de Bugspt_BR
dc.subjectBugs’ Dataset Dissectionpt_BR
dc.subjectDepuração de Softwarept_BR
dc.subjectDebuggingpt_BR
dc.subjectAnálise de Reparospt_BR
dc.subjectPatch Analysispt_BR
dc.subjectAprendizado de Rankingspt_BR
dc.subjectLearn-to-Rankpt_BR
dc.titleAnálise de performance na localização de bugs apoiada pela dissecção de conjuntos de dadospt_BR
dc.title.alternativeAnalysis of bug localization performance supported by dataset dissectionpt_BR
dc.typeTesept_BR
dc.contributor.advisor1Maia, Marcelo de Almeida-
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/4915659948263445pt_BR
dc.contributor.referee1Figueiredo, Eduardo-
dc.contributor.referee1Latteshttp://lattes.cnpq.br/1265706528850746pt_BR
dc.contributor.referee2Dorça, Fabiano Azevedo-
dc.contributor.referee2Latteshttp://lattes.cnpq.br/3944579737930998pt_BR
dc.contributor.referee3Silva, Flávio de Oliveira-
dc.contributor.referee3Latteshttp://lattes.cnpq.br/3190608911887258pt_BR
dc.contributor.referee4Kulesza, Uirá-
dc.contributor.referee4Latteshttp://lattes.cnpq.br/0189095897739979pt_BR
dc.creator.Latteshttp://lattes.cnpq.br/0700725894195047pt_BR
dc.description.degreenameTese (Doutorado)pt_BR
dc.description.resumoEncontrar 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.pt_BR
dc.publisher.countryBrasilpt_BR
dc.publisher.programPrograma de Pós-graduação em Ciência da Computaçãopt_BR
dc.sizeorduration222pt_BR
dc.subject.cnpqCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWAREpt_BR
dc.identifier.doihttp://doi.org/10.14393/ufu.te.2022.60pt_BR
dc.orcid.putcode117682159-
dc.crossref.doibatchid0dfbc24a-5adb-4696-a83d-573b1d99fe66-
dc.subject.autorizadoComputaçãopt_BR
dc.subject.autorizadoSoftware - Manutençãopt_BR
dc.subject.autorizadoFalhas de sistemas de computaçãopt_BR
dc.subject.autorizadoConjunto de caracteres (Processamento de dados)pt_BR
Appears in Collections:TESE - Ciência da Computação

Files in This Item:
File Description SizeFormat 
AnalysisBugLocalization.pdfTese16.96 MBAdobe PDFThumbnail
View/Open


This item is licensed under a Creative Commons License Creative Commons