7 research outputs found
Exploring Plausible Patches Using Source Code Embeddings in JavaScript
Despite the immense popularity of the Automated Program Repair (APR) field,
the question of patch validation is still open. Most of the present-day
approaches follow the so-called Generate-and-Validate approach, where first a
candidate solution is being generated and after validated against an oracle.
The latter, however, might not give a reliable result, because of the
imperfections in such oracles; one of which is usually the test suite. Although
(re-) running the test suite is right under one's nose, in real life
applications the problem of over- and underfitting often occurs, resulting in
inadequate patches. Efforts that have been made to tackle with this problem
include patch filtering, test suite expansion, careful patch producing and many
more. Most approaches to date use post-filtering relying either on test
execution traces or make use of some similarity concept measured on the
generated patches. Our goal is to investigate the nature of these
similarity-based approaches. To do so, we trained a Doc2Vec model on an
open-source JavaScript project and generated 465 patches for 10 bugs in it.
These plausible patches alongside with the developer fix are then ranked based
on their similarity to the original program. We analyzed these similarity lists
and found that plain document embeddings may lead to misclassification - it
fails to capture nuanced code semantics. Nevertheless, in some cases it also
provided useful information, thus helping to better understand the area of
Automated Program Repair.Comment: Paper accepted in APR2021 conferenc
Would you fix this code for me? Effects of repair source and commenting on trust in code repair
© 2020 by the authors. Licensee MDPI, Basel, Switzerland. Automation and autonomous systems are quickly becoming a more engrained aspect of modern society. The need for effective, secure computer code in a timely manner has led to the creation of automated code repair techniques to resolve issues quickly. However, the research to date has largely ignored the human factors aspects of automated code repair. The current study explored trust perceptions, reuse intentions, and trust intentions in code repair with human generated patches versus automated code repair patches. In addition, comments in the headers were manipulated to determine the effect of the presence or absence of comments in the header of the code. Participants were 51 programmers with at least 3 years’ experience and knowledge of the C programming language. Results indicated only repair source (human vs. automated code repair) had a significant influence on trust perceptions and trust intentions. Specifically, participants consistently reported higher levels of perceived trustworthiness, intentions to reuse, and trust intentions for human referents compared to automated code repair. No significant effects were found for comments in the headers
A Comprehensive Study of Code-removal Patches in Automated Program Repair
Automatic Program Repair (APR) techniques can promisingly help reducing the
cost of debugging. Many relevant APR techniques follow the
generate-and-validate approach, that is, the faulty program is iteratively
modified with different change operators and then validated with a test suite
until a plausible patch is generated. In particular, Kali is a
generate-and-validate technique developed to investigate the possibility of
generating plausible patches by only removing code. Former studies show that
indeed Kali successfully addressed several faults. This paper addresses the
case of code-removal patches in automated program repair investigating the
reasons and the scenarios that make their creation possible, and the
relationship with patches implemented by developers. Our study reveals that
code-removal patches are often insufficient to fix bugs, and proposes a
comprehensive taxonomy of code-removal patches that provides evidence of the
problems that may affect test suites, opening new opportunities for researchers
in the field of automatic program repair.Comment: New version of the manuscrip