Novel fitness functions using source code checkpoints for search-based program repair
dc.contributor.advisor1 | Camilo Júnior, Celso Gonçalves | |
dc.contributor.advisor1Lattes | http://lattes.cnpq.br/6776569904919279 | eng |
dc.contributor.referee1 | Camilo Júnior, Celso Gonçalves | |
dc.contributor.referee2 | Leitão Júnior, Plínio de Sá | |
dc.contributor.referee3 | Barros, Márcio de Oliveira | |
dc.creator | Souza, Eduardo Faria de | |
dc.creator.Lattes | http://lattes.cnpq.br/6260768837365885 | eng |
dc.date.accessioned | 2020-02-21T10:41:57Z | |
dc.date.issued | 2020-01-16 | |
dc.description.abstract | Software 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.provenance | Submitted 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.provenance | Approved 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.provenance | Made 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-16 | eng |
dc.description.resumo | Manutençã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.sponsorship | Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - CAPES | eng |
dc.format | application/pdf | * |
dc.identifier.citation | SOUZA, 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.uri | http://repositorio.bc.ufg.br/tede/handle/tede/10370 | |
dc.language | por | eng |
dc.publisher | Universidade Federal de Goiás | eng |
dc.publisher.country | Brasil | eng |
dc.publisher.department | Instituto de Informática - INF (RG) | eng |
dc.publisher.initials | UFG | eng |
dc.publisher.program | Programa de Pós-graduação em Ciência da Computação (INF) | eng |
dc.rights | Acesso Aberto | |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/4.0/ | |
dc.subject | Programação genética | por |
dc.subject | Engenharia de software | por |
dc.subject | Reparo de programas | por |
dc.subject | Funções de aptidão | por |
dc.subject | Genetic programming | eng |
dc.subject | Software engineering | eng |
dc.subject | Program repair | eng |
dc.subject | Fitness functions | eng |
dc.subject.cnpq | CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO | eng |
dc.title | Novel fitness functions using source code checkpoints for search-based program repair | eng |
dc.title.alternative | Novas funções de aptidão usando checkpoints em código-fonte para reparo de programas baseado em busca | eng |
dc.type | Dissertação | eng |
Arquivos
Pacote Original
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
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: