Novel fitness functions using source code checkpoints for search-based program repair

dc.contributor.advisor1Camilo Júnior, Celso Gonçalves
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/6776569904919279eng
dc.contributor.referee1Camilo Júnior, Celso Gonçalves
dc.contributor.referee2Leitão Júnior, Plínio de Sá
dc.contributor.referee3Barros, Márcio de Oliveira
dc.creatorSouza, Eduardo Faria de
dc.creator.Latteshttp://lattes.cnpq.br/6260768837365885eng
dc.date.accessioned2020-02-21T10:41:57Z
dc.date.issued2020-01-16
dc.description.abstractSoftware maintenance, especially bug fixing, is one of the most expensive problems in software practice. Bugs have a global impact in terms of cost and time, and they also reflect negatively on a company’s brand. GenProg is a method for Automated Program Repair based on an evolutionary approach. It aims to generate bug repairs with neither human intervention nor a need for special instrumentation or source code annotations. Its canonical fitness function evaluates each variant as the weighted sum of the test cases that a modified program passes. However, it evaluates individuals with distinct genetic material with the same observed fitness score (plateaus). We proposed five novel fitness functions, four of which use a dynamic analysis technique called intermediate code checkpoints to collect variable’s state data, while the other uses a random component. They aim to increase the granularity of the fitness gleaning more data from test case execution. We evaluate the proposed fitness functions with mature open-source projects with thousands of lines of code from the IntroClass and ManyBugs benchmark. We found that our proposed fitness functions minimize plateaus, increasing the differentiation capabilities of the search, and they also find more repairs than the baseline, including repairs not previously found.eng
dc.description.provenanceSubmitted by Marlene Santos (marlene.bc.ufg@gmail.com) on 2020-02-20T18:26:16Z No. of bitstreams: 2 Dissertação - Eduardo Faria de Souza - 2020.pdf: 3732888 bytes, checksum: 5f8ba49a760f1ea20181b85eb703d0c1 (MD5) license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5)eng
dc.description.provenanceApproved for entry into archive by Luciana Ferreira (lucgeral@gmail.com) on 2020-02-21T10:41:57Z (GMT) No. of bitstreams: 2 Dissertação - Eduardo Faria de Souza - 2020.pdf: 3732888 bytes, checksum: 5f8ba49a760f1ea20181b85eb703d0c1 (MD5) license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5)eng
dc.description.provenanceMade available in DSpace on 2020-02-21T10:41:57Z (GMT). No. of bitstreams: 2 Dissertação - Eduardo Faria de Souza - 2020.pdf: 3732888 bytes, checksum: 5f8ba49a760f1ea20181b85eb703d0c1 (MD5) license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) Previous issue date: 2020-01-16eng
dc.description.resumoManutenção de software, especialmente a correção de bugs, é um dos problemas mais caros na prática de software. Os bugs têm um impacto global em termos de custo e tempo, e também refletem negativamente na marca de empresas. GenProg é um método para reparo automatizado de programas baseado em uma abordagem evolutiva. Seu objetivo é gerar reparos de bugs sem intervenção humana nem a necessidade de instrumentação especial ou anotações de código-fonte. Sua função de aptidão canônica avalia cada variante como a soma ponderada dos casos de teste que um programa modificado passa. No entanto, avalia indivíduos com material genético distinto com o mesmo escore de aptidão observado (platôs). Neste trabalho, propomos cinco novas funções de aptidão, quatro das quais usam uma técnica de análise dinâmica de código chamada checkpoints para coletar dados dos estados das variáveis, enquanto a outra usa um componente aleatório. Elas visam aumentar a granularidade da aptidão reunindo mais dados da execução do caso de teste. Avaliamos as funções de aptidão propostas com projetos maduros de código aberto com milhares de linhas de código do benchmark IntroClass and ManyBugs. Descobrimos que nossas funções de aptidão propostas minimizam os platôs, aumentando os recursos de diferenciação da busca e também encontram mais reparos do que a função canônica, incluindo reparos não encontrados anteriormente.eng
dc.description.sponsorshipCoordenação de Aperfeiçoamento de Pessoal de Nível Superior - CAPESeng
dc.formatapplication/pdf*
dc.identifier.citationSOUZA, Eduardo Faria de. Novel fitness functions using source code checkpoints for search-based program repair. 2020. 65 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Goiás, Goiânia, 2020.eng
dc.identifier.urihttp://repositorio.bc.ufg.br/tede/handle/tede/10370
dc.languageporeng
dc.publisherUniversidade Federal de Goiáseng
dc.publisher.countryBrasileng
dc.publisher.departmentInstituto de Informática - INF (RG)eng
dc.publisher.initialsUFGeng
dc.publisher.programPrograma de Pós-graduação em Ciência da Computação (INF)eng
dc.rightsAcesso Aberto
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/4.0/
dc.subjectProgramação genéticapor
dc.subjectEngenharia de softwarepor
dc.subjectReparo de programaspor
dc.subjectFunções de aptidãopor
dc.subjectGenetic programmingeng
dc.subjectSoftware engineeringeng
dc.subjectProgram repaireng
dc.subjectFitness functionseng
dc.subject.cnpqCIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOeng
dc.titleNovel fitness functions using source code checkpoints for search-based program repaireng
dc.title.alternativeNovas funções de aptidão usando checkpoints em código-fonte para reparo de programas baseado em buscaeng
dc.typeDissertaçãoeng

Arquivos

Pacote Original
Agora exibindo 1 - 1 de 1
Nenhuma Miniatura disponível
Nome:
Dissertação - Eduardo Faria de Souza - 2020.pdf
Tamanho:
3.6 MB
Formato:
Adobe Portable Document Format
Licença do Pacote
Agora exibindo 1 - 1 de 1
Nenhuma Miniatura disponível
Nome:
license.txt
Tamanho:
2.11 KB
Formato:
Item-specific license agreed upon to submission
Descrição: