Key points are not available for this paper at this time.
A reparação de programas constitui um dos principais componentes da manutenção de software, que geralmente incorre em um custo significativo na produção de software. A reparação automática de programas deve ajudar a reduzir o custo da manutenção de software, corrigindo automaticamente os defeitos de software. Apesar dos recentes avanços na reparação automática de software, ainda é muito custoso esperar que as ferramentas de reparo produzam correções válidas para os defeitos. Este artigo aborda a seguinte questão: "Uma técnica de reparação automática de programas encontrará uma solução para um defeito dentro de um prazo razoável?" Para responder a essa pergunta, construímos um oráculo que pode prever se a correção de uma falha deve ser delegada a uma técnica de reparo automática. Se a técnica de reparo for prevista para levar muito tempo para produzir uma correção, o processo de correção de bugs deve ser atribuído a um desenvolvedor ou a outras técnicas adequadas disponíveis. Nosso oráculo é construído para abordagens de reparação automática de programas baseadas em programação genética, que recentemente receberam considerável atenção devido à sua capacidade de corrigir automaticamente bugs do mundo real. Essas abordagens buscam uma correção válida sobre um grande número de variantes que são mutacionadas sintaticamente a partir do programa original. Em uma fase inicial da execução de uma ferramenta de reparo, extraímos um número de características que estão potencialmente relacionadas à eficácia da ferramenta. Aproveitando os avanços em aprendizado de máquina, processamos os valores dessas características para aprender um modelo discriminativo que seja capaz de prever se continuar uma busca de programação genética levará a uma reparação dentro de um limite de tempo desejado. Realizamos experimentos para avaliar a capacidade de nossa abordagem de prever a eficácia do GenProg, uma abordagem de reparação automática de programas baseada em programação genética bem conhecida, na correção de 105 bugs reais. Nossos experimentos mostram que nossa abordagem pode identificar casos eficazes de ineficazes (ou seja, bugs para os quais o GenProg não pode produzir correções corretas após um longo período de tempo) com uma precisão, recall, F-medida e AUC de 72%, 74%, 73% e 76%, respectivamente.
Le et al. (Sun,) estudaram essa questão.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: