DMCA
Repairing Programs with Semantic Code Search (2015)
Venue: | In: Proceedings of the International Conference on Automated Software Engineering |
Citations: | 2 - 0 self |
Citations
3723 |
Genetic programming: on the programming of computers by means of natural selection
- Koza
- 1992
(Show Context)
Citation Context .... GenProg, TrpAutoRepair, and AE, and most prior techniques, evaluate patches using test cases. GenProg uses the test results to define an objective function that informs an evolutionary search [22], =-=[41]-=- over the space of candidate patches. TrpAutoRepair samples candidate patches randomly, and gains efficiency by prioritizing the test case execution order, and only runs as many test cases as necessar... |
829 | Z3: An efficient SMT solver
- Moura, Bjorner
(Show Context)
Citation Context ...ideally without the defect in question. To find code that matches a specified profile, SearchRepair encodes each input-output example in the profile as SMT constraints and then uses the Z3 SMT solver =-=[17]-=- to find fragments in the database that satisfy them. The first step in searching with an input-output profile is thus to transform input-output information into SMT constraints. Similar to the encodi... |
726 | Symbolic execution and program testing - King - 1976 |
556 | KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs
- Cadar, Dunbar, et al.
- 2008
(Show Context)
Citation Context ...ructor-written test suite is constructed via careful consideration of the requirements and the input space. IntroClass also includes, for each program, a test suite automatically generated using KLEE =-=[9]-=- to achieve full branch coverage on an instructor-written oracle program. These additional test suites support independent high-coverage validation of program and patch correctness. Our evaluation att... |
358 | Specification matching of software components
- ZARMSKI, WING
- 1995
(Show Context)
Citation Context ... queries for concept localization [30]. The search approach we use for program repair depends on a more structured specification. Prior semantic code search has used formal specifications [27], [53], =-=[77]-=- and test cases [55], [58]. Formal specifications allow precise and sound matching but must be written by hand, which is difficult and error-prone. Test cases are more lightweight but, prior to our wo... |
331 | Bug isolation via remote program sampling
- Liblit, Aiken, et al.
- 2003
(Show Context)
Citation Context ...is largely unable to keep up with the volume of defects in extant software [2]. Despite their established detrimental impact on a company’s bottom line, known defects ship in mature software projects =-=[45]-=-, and many defects, including those that are security-critical, remain unaddressed for long periods of time [32]. At the same time, the expansion of the open-source movement has led to many large, pub... |
290 | Visualization of test information to assist fault localization - Jones, Harrold, et al. - 2002 |
262 |
A System to Generate Test Data and Symbolically Execute Programs
- Clarke
- 1976
(Show Context)
Citation Context ...ffline and produces a database relating code fragments to be searched to sets of SMT constraints over the input-output behavior and the segment’s type signature. For each fragment, symbolic execution =-=[13]-=-, [14], [40] enumerates the feasible paths through it and our approach converts code constructs and predicates controlling each path’s execution into SMT constraints describing variable types and valu... |
229 | Fault localization with nearest neighbor queries
- Renieris, Reiss
- 2003
(Show Context)
Citation Context ...o a set of candidate program locations to be potentially changed. Previous techniques, including the three to which we compare in this work, typically use or adapt prior fault localization work [36], =-=[59]-=- to identify promising locations. Second, such a technique must modify the code in an attempt to repair it. This describes the fix space of a particular program repair problem. GenProg, TrpAutoRepair,... |
157 | The current state and future of search based software engineering. In:
- Harman
- 2007
(Show Context)
Citation Context ...to guide sound patch synthesis [19], [35], [49], [50], [70], [71]. The other primary class of repair approaches is generate-and-validate repair, which uses searchbased software engineering techniques =-=[31]-=-, [57], [69] or predefined repair templates [15], [39], [54] to generate many candidate patches for a bug, and then validate them using indicative workloads or test suites. In this work, we compare Se... |
146 | Automatically finding patches using genetic programming,”
- Weimer, Nguyen, et al.
- 2009
(Show Context)
Citation Context ... is not found, SearchRepair can return a partial repair, as Section IV-B reports. IV. EVALUATION This section describes SearchRepair’s evaluation, including a comparison to three prior tools, GenProg =-=[74]-=-, TrpAutoRepair [56], and AE [73]. Section IV-A describes our experimental set up. Sections IV-B and IV-C evaluate SearchRepair’s effectiveness at producing repairs and the quality of those repairs, r... |
143 |
Genetic Algorithms: Principles of Natural Selection Applied to
- Forrest
- 1993
(Show Context)
Citation Context ...versed. GenProg, TrpAutoRepair, and AE, and most prior techniques, evaluate patches using test cases. GenProg uses the test results to define an objective function that informs an evolutionary search =-=[22]-=-, [41] over the space of candidate patches. TrpAutoRepair samples candidate patches randomly, and gains efficiency by prioritizing the test case execution order, and only runs as many test cases as ne... |
102 | Automatically patching errors in deployed software
- Perkins, Kim, et al.
- 2009
(Show Context)
Citation Context ...of correct program behavior. This is a challenge for automatic repair techniques (e.g., [3], [7], [10], [11], [15], [16], [18], [19], [21], [28], [33], [35], [39], [42], [48], [49], [50], [51], [52], =-=[54]-=-, [56], [57], [61], [69], [70], [73], [74], [76]), many of which use test suites to guide and evaluate patching efforts. Modern test-suite guided repair techniques, particularly those following a gene... |
82 | How long will it take to fix this bug
- Weiß, Premraj, et al.
- 2007
(Show Context)
Citation Context ...Buggy software costs the global economy billions of dollars annually [8], [60]. One major reason software defects are so expensive is that software companies must dedicate considerable developer time =-=[75]-=- to manually finding and fixing bugs in their software. Unfortunately, manual bug repair, the industry standard, is largely unable to keep up with the volume of defects in extant software [2]. Despite... |
81 | A novel co-evolutionary approach to automatic software bug fixing,”
- Arcuri, Yao
- 2008
(Show Context)
Citation Context ...ch, whether human- or toolgenerated, is that it generalizes to the full, desired, often unwritten specification of correct program behavior. This is a challenge for automatic repair techniques (e.g., =-=[3]-=-, [7], [10], [11], [15], [16], [18], [19], [21], [28], [33], [35], [39], [42], [48], [49], [50], [51], [52], [54], [56], [57], [61], [69], [70], [73], [74], [76]), many of which use test suites to gui... |
80 |
Modeling bug report quality
- HOOIMEIJER, WEIMER
- 2007
(Show Context)
Citation Context ...ental impact on a company’s bottom line, known defects ship in mature software projects [45], and many defects, including those that are security-critical, remain unaddressed for long periods of time =-=[32]-=-. At the same time, the expansion of the open-source movement has led to many large, publicly accessible source code databases, such as GitHub, BitBucket, and SourceForge. Because many programs includ... |
79 | Countering network worms through automatic patch generation
- Sidiroglou, Keromytis
- 2005
(Show Context)
Citation Context ... behavior. This is a challenge for automatic repair techniques (e.g., [3], [7], [10], [11], [15], [16], [18], [19], [21], [28], [33], [35], [39], [42], [48], [49], [50], [51], [52], [54], [56], [57], =-=[61]-=-, [69], [70], [73], [74], [76]), many of which use test suites to guide and evaluate patching efforts. Modern test-suite guided repair techniques, particularly those following a generate-and-validate ... |
74 |
Godfrey.”Cloning Considered Harmful” Considered Harmful.
- Kapser, M
- 2006
(Show Context)
Citation Context ...ndant [24]. Semantically, many methods can be reconstructed by composing other methods in the same project [5], [11], [12]. These findings are consistent with researchers’ observations of code clones =-=[37]-=-. Intuitively, software projects repeatedly reuse the same common building block data structures and methods as other projects, and often reimplement this functionality. This suggests that if a projec... |
73 | Genprog: A generic method for automatic software repair,”
- Goues, Nguyen, et al.
- 2012
(Show Context)
Citation Context ...any candidate patches for a bug, and then validate them using indicative workloads or test suites. In this work, we compare SearchRepair to three prior generate-and-validate techniques: GenProg [42], =-=[44]-=-, [72], [74], TrpAutoRepair [56], and AE [73]. (TrpAutoRepair was also published under the name RSRepair in “The strength of random search on automated program repair” by Yuhua Qi, Xiaoguang Mao, Yan ... |
72 | Automated fixing of programs with contracts,” in
- Wei, Pei, et al.
- 2010
(Show Context)
Citation Context ...ation of correct program behavior. This is a challenge for automatic repair techniques (e.g., [3], [7], [10], [11], [15], [16], [18], [19], [21], [28], [33], [35], [39], [42], [48], [49], [50], [51], =-=[52]-=-, [54], [56], [57], [61], [69], [70], [73], [74], [76]), many of which use test suites to guide and evaluate patching efforts. Modern test-suite guided repair techniques, particularly those following ... |
69 | A systematic study of automated program repair: Fixing 55 out of 105 bugs for $8 each,”
- Goues, Dewey-Vogt, et al.
- 2012
(Show Context)
Citation Context ...ired, often unwritten specification of correct program behavior. This is a challenge for automatic repair techniques (e.g., [3], [7], [10], [11], [15], [16], [18], [19], [21], [28], [33], [35], [39], =-=[42]-=-, [48], [49], [50], [51], [52], [54], [56], [57], [61], [69], [70], [73], [74], [76]), many of which use test suites to guide and evaluate patching efforts. Modern test-suite guided repair techniques,... |
69 | Semantics-based code search
- Reiss
(Show Context)
Citation Context ...ization [30]. The search approach we use for program repair depends on a more structured specification. Prior semantic code search has used formal specifications [27], [53], [77] and test cases [55], =-=[58]-=-. Formal specifications allow precise and sound matching but must be written by hand, which is difficult and error-prone. Test cases are more lightweight but, prior to our work, required the code to b... |
61 | Inference and enforcement of data structure consistency specifications
- Demsky, Ernst, et al.
- 2006
(Show Context)
Citation Context ...that it generalizes to the full, desired, often unwritten specification of correct program behavior. This is a challenge for automatic repair techniques (e.g., [3], [7], [10], [11], [15], [16], [18], =-=[19]-=-, [21], [28], [33], [35], [39], [42], [48], [49], [50], [51], [52], [54], [56], [57], [61], [69], [70], [73], [74], [76]), many of which use test suites to guide and evaluate patching efforts. Modern ... |
59 | Coping with an open bug repository
- Anvik, Hiew, et al.
- 2005
(Show Context)
Citation Context ...er time [75] to manually finding and fixing bugs in their software. Unfortunately, manual bug repair, the industry standard, is largely unable to keep up with the volume of defects in extant software =-=[2]-=-. Despite their established detrimental impact on a company’s bottom line, known defects ship in mature software projects [45], and many defects, including those that are security-critical, remain una... |
51 | Automated atomicity-violation fixing,” in
- Jin, Song, et al.
- 2011
(Show Context)
Citation Context ...he full, desired, often unwritten specification of correct program behavior. This is a challenge for automatic repair techniques (e.g., [3], [7], [10], [11], [15], [16], [18], [19], [21], [28], [33], =-=[35]-=-, [39], [42], [48], [49], [50], [51], [52], [54], [56], [57], [61], [69], [70], [73], [74], [76]), many of which use test suites to guide and evaluate patching efforts. Modern test-suite guided repair... |
50 | Automatic patch generation learned from human-written patches,” in
- Kim, Nam, et al.
- 2013
(Show Context)
Citation Context ...l, desired, often unwritten specification of correct program behavior. This is a challenge for automatic repair techniques (e.g., [3], [7], [10], [11], [15], [16], [18], [19], [21], [28], [33], [35], =-=[39]-=-, [42], [48], [49], [50], [51], [52], [54], [56], [57], [61], [69], [70], [73], [74], [76]), many of which use test suites to guide and evaluate patching efforts. Modern test-suite guided repair techn... |
48 | Generating fixes from object behavior anomalies,” in - Dallmeier, Zeller, et al. - 2009 |
46 | Semfix: Program repair via semantic analysis,”
- Nguyen, Qi, et al.
- 2013
(Show Context)
Citation Context ...ten specification of correct program behavior. This is a challenge for automatic repair techniques (e.g., [3], [7], [10], [11], [15], [16], [18], [19], [21], [28], [33], [35], [39], [42], [48], [49], =-=[50]-=-, [51], [52], [54], [56], [57], [61], [69], [70], [73], [74], [76]), many of which use test suites to guide and evaluate patching efforts. Modern test-suite guided repair techniques, particularly thos... |
43 | Patches as better bug reports - Weimer |
39 | Automatic workarounds for web applications,” - Carzaniga, Gorla, et al. - 2010 |
37 | A study of the uniqueness of source code."
- Gabel, Su
- 2010
(Show Context)
Citation Context ...atabases, such as GitHub, BitBucket, and SourceForge. Because many programs include routines, data structures, and designs that have been previously implemented in other software projects [11], [12], =-=[24]-=-, we posit that, if a method or component of a software system contains a defect, with high probability, there exists a similar but correct version of that component in some publicly accessible softwa... |
35 |
Applications of symbolic evaluation.
- Clarke, Richardson
- 1985
(Show Context)
Citation Context ... and produces a database relating code fragments to be searched to sets of SMT constraints over the input-output behavior and the segment’s type signature. For each fragment, symbolic execution [13], =-=[14]-=-, [40] enumerates the feasible paths through it and our approach converts code constructs and predicates controlling each path’s execution into SMT constraints describing variable types and values. Th... |
34 |
Automatic recovery from runtime failures
- Carzaniga, Gorla, et al.
- 2013
(Show Context)
Citation Context ...ource code databases, such as GitHub, BitBucket, and SourceForge. Because many programs include routines, data structures, and designs that have been previously implemented in other software projects =-=[11]-=-, [12], [24], we posit that, if a method or component of a software system contains a defect, with high probability, there exists a similar but correct version of that component in some publicly acces... |
34 | Flight of the FINCH through the Java wilderness - Orlov, Sipper - 2011 |
34 | Retrieving reusable software by sampling behavior - Podgurski, Pierce - 1993 |
31 | Using mutation to automatically suggest fixes for faulty programs,” in
- Debroy, Wong
- 2010
(Show Context)
Citation Context ...d, is that it generalizes to the full, desired, often unwritten specification of correct program behavior. This is a challenge for automatic repair techniques (e.g., [3], [7], [10], [11], [15], [16], =-=[18]-=-, [19], [21], [28], [33], [35], [39], [42], [48], [49], [50], [51], [52], [54], [56], [57], [61], [69], [70], [73], [74], [76]), many of which use test suites to guide and evaluate patching efforts. M... |
23 |
SYNTHESIS: a tool for automatically assembling correct and distributed component-based systems,
- Autili, Inverardi, et al.
- 2007
(Show Context)
Citation Context ...hes. Code Synthesis. Code can be synthesized using input-output examples, written in a domain-specific language [29], using predefined components [34], or based on a high-level behavioral description =-=[4]-=-. Recent approaches use context from a debugger to show where in a program synthesis should occur [26]. While effective in that domain, synthesis-based approaches are limited by the solver’s ability t... |
23 | Detecting and escaping infinite loops with jolt
- Carbin, Misailovic, et al.
- 2011
(Show Context)
Citation Context ...r human- or toolgenerated, is that it generalizes to the full, desired, often unwritten specification of correct program behavior. This is a challenge for automatic repair techniques (e.g., [3], [7], =-=[10]-=-, [11], [15], [16], [18], [19], [21], [28], [33], [35], [39], [42], [48], [49], [50], [51], [52], [54], [56], [57], [61], [69], [70], [73], [74], [76]), many of which use test suites to guide and eval... |
23 | BugFix: A learning-based tool to assist developers in fixing bugs
- Jeffrey, Feng, et al.
- 2009
(Show Context)
Citation Context ...s to the full, desired, often unwritten specification of correct program behavior. This is a challenge for automatic repair techniques (e.g., [3], [7], [10], [11], [15], [16], [18], [19], [21], [28], =-=[33]-=-, [35], [39], [42], [48], [49], [50], [51], [52], [54], [56], [57], [61], [69], [70], [73], [74], [76]), many of which use test suites to guide and evaluate patching efforts. Modern test-suite guided ... |
21 | Efficient specification-based component retrieval
- Penix, Alexander
- 1999
(Show Context)
Citation Context ...lating queries for concept localization [30]. The search approach we use for program repair depends on a more structured specification. Prior semantic code search has used formal specifications [27], =-=[53]-=-, [77] and test cases [55], [58]. Formal specifications allow precise and sound matching but must be written by hand, which is difficult and error-prone. Test cases are more lightweight but, prior to ... |
18 | A human study of patch maintainability,”
- Fry, Landau, et al.
- 2012
(Show Context)
Citation Context ...tests and tend to generate short patches. It may therefore be difficult for them to repair complex defects. Importantly, such techniques may produce lower quality patches than those written by humans =-=[23]-=-, [39], and recent studies have identified significant concerns with the functional correctness of automatically-repaired programs [20], [57], [65]. One way to measure the quality of a repair is to ob... |
15 |
Specification-based program repair using sat. In Tools and algorithms for the construction and analysis of systems. Volume 6605 of lecture notes in computer science
- Gopinath, Malik, et al.
- 2011
(Show Context)
Citation Context ...ralizes to the full, desired, often unwritten specification of correct program behavior. This is a challenge for automatic repair techniques (e.g., [3], [7], [10], [11], [15], [16], [18], [19], [21], =-=[28]-=-, [33], [35], [39], [42], [48], [49], [50], [51], [52], [54], [56], [57], [61], [69], [70], [73], [74], [76]), many of which use test suites to guide and evaluate patching efforts. Modern test-suite g... |
15 |
The economic impacts of inadequate infrastructure for software testing. Planning Report 02-3
- Institute
- 2002
(Show Context)
Citation Context ...uces higher-quality repairs than GenProg, TrpAutoRepair, and AE, and repairs some defects those tools cannot. I. INTRODUCTION Buggy software costs the global economy billions of dollars annually [8], =-=[60]-=-. One major reason software defects are so expensive is that software companies must dedicate considerable developer time [75] to manually finding and fixing bugs in their software. Unfortunately, man... |
15 | Leveraging program equivalence for adaptive program repair: Models and first results.
- Weimer, Fry, et al.
- 2013
(Show Context)
Citation Context ... a challenge for automatic repair techniques (e.g., [3], [7], [10], [11], [15], [16], [18], [19], [21], [28], [33], [35], [39], [42], [48], [49], [50], [51], [52], [54], [56], [57], [61], [69], [70], =-=[73]-=-, [74], [76]), many of which use test suites to guide and evaluate patching efforts. Modern test-suite guided repair techniques, particularly those following a generate-and-validate paradigm (i.e., he... |
12 | Axis: Automatically fixing atomicity violations through solving control constraints,”
- Liu, Zhang
- 2012
(Show Context)
Citation Context ...often unwritten specification of correct program behavior. This is a challenge for automatic repair techniques (e.g., [3], [7], [10], [11], [15], [16], [18], [19], [21], [28], [33], [35], [39], [42], =-=[48]-=-, [49], [50], [51], [52], [54], [56], [57], [61], [69], [70], [73], [74], [76]), many of which use test suites to guide and evaluate patching efforts. Modern test-suite guided repair techniques, parti... |
11 | Testing mined specifications
- Gabel, Su
- 2012
(Show Context)
Citation Context ...it. This describes the fix space of a particular program repair problem. GenProg, TrpAutoRepair, and AE address this challenge using the observation that programs are often internally repetitive [5], =-=[25]-=- and limit changes to deleting constructs and copying constructs from elsewhere in the same program. TrpAutoRepair and AE restrict attention to single-edit patches. Third, such a technique validates c... |
10 |
Program transformations to fix c integers
- Coker, Hafiz
- 2013
(Show Context)
Citation Context ...toolgenerated, is that it generalizes to the full, desired, often unwritten specification of correct program behavior. This is a challenge for automatic repair techniques (e.g., [3], [7], [10], [11], =-=[15]-=-, [16], [18], [19], [21], [28], [33], [35], [39], [42], [48], [49], [50], [51], [52], [54], [56], [57], [61], [69], [70], [73], [74], [76]), many of which use test suites to guide and evaluate patchin... |
9 | The plastic surgery hypothesis
- Barr, Brun, et al.
- 2014
(Show Context)
Citation Context ...ir identifies larger sections of human-written candidate fix code from other projects, which it uses to replace defective regions wholesale. Because code is repetitive and often reimplements routines =-=[5]-=-, [11], [12], [24], it may be possible to find correct alternative versions of a given buggy piece of functionality in other software systems, given a sufficiently large database. Our core assumption ... |
8 | CodeHint: Dynamic and interactive synthesis of code snippets
- Galenson, Reames, et al.
(Show Context)
Citation Context ...c language [29], using predefined components [34], or based on a high-level behavioral description [4]. Recent approaches use context from a debugger to show where in a program synthesis should occur =-=[26]-=-. While effective in that domain, synthesis-based approaches are limited by the solver’s ability to enumerate and test all possible combinations of program constructs. In our use of solvers for semant... |
8 | An analysis of patch plausibility and correctness for generate-and-validate patch generation systems. - Qi, Long, et al. - 2015 |
8 |
Le Goues, and ThanhVu Nguyen. Automatic program repair with evolutionary computation
- Weimer, Forrest, et al.
- 2010
(Show Context)
Citation Context ...ndidate patches for a bug, and then validate them using indicative workloads or test suites. In this work, we compare SearchRepair to three prior generate-and-validate techniques: GenProg [42], [44], =-=[72]-=-, [74], TrpAutoRepair [56], and AE [73]. (TrpAutoRepair was also published under the name RSRepair in “The strength of random search on automated program repair” by Yuhua Qi, Xiaoguang Mao, Yan Lei, Z... |
7 |
Automatic repair of real bugs: An experience report on the defects4j dataset.
- Durieux, Martinez, et al.
- 2015
(Show Context)
Citation Context ...n testing large numbers of candidate repairs), although typically general and scalable, often produce poor-quality patches that overfit to the specification test suites used to guide patch generation =-=[20]-=-, [57], [65]. By definition, test suites only encode a partial specification of correct behavior. A patch that is correct according to a given test suite may therefore not be fully correct when evalua... |
7 |
Efficient automated program repair through fault-recorded testing prioritization
- Qi, Mao, et al.
- 2013
(Show Context)
Citation Context ...rect program behavior. This is a challenge for automatic repair techniques (e.g., [3], [7], [10], [11], [15], [16], [18], [19], [21], [28], [33], [35], [39], [42], [48], [49], [50], [51], [52], [54], =-=[56]-=-, [57], [61], [69], [70], [73], [74], [76]), many of which use test suites to guide and evaluate patching efforts. Modern test-suite guided repair techniques, particularly those following a generate-a... |
6 |
Reversible Debugging Software
- Britton, Jeng, et al.
- 2013
(Show Context)
Citation Context ... produces higher-quality repairs than GenProg, TrpAutoRepair, and AE, and repairs some defects those tools cannot. I. INTRODUCTION Buggy software costs the global economy billions of dollars annually =-=[8]-=-, [60]. One major reason software defects are so expensive is that software companies must dedicate considerable developer time [75] to manually finding and fixing bugs in their software. Unfortunatel... |
6 |
Behavior model based component search: an initial assessment
- Ghezzi, Mocci
- 2010
(Show Context)
Citation Context ...eformulating queries for concept localization [30]. The search approach we use for program repair depends on a more structured specification. Prior semantic code search has used formal specifications =-=[27]-=-, [53], [77] and test cases [55], [58]. Formal specifications allow precise and sound matching but must be written by hand, which is difficult and error-prone. Test cases are more lightweight but, pri... |
6 | Automatic error elimination by horizontal code transfer across multiple applications. In
- Sidiroglou-Douskos, Lahtinen, et al.
- 2015
(Show Context)
Citation Context ...0] predicated on program synthesis and generate-and-validate techniques that heuristically create and then test large numbers of candidate repairs [1], [11], [12], [15], [18], [39], [47], [54], [57], =-=[63]-=-, [69], [73], [74]. Second, although several previous techniques also reuse human-written code from elsewhere in a program, or instantiate human-written templates to effect local changes, SearchRepair... |
6 |
Solving the search for source code.
- Stolee, Elbaum, et al.
- 2014
(Show Context)
Citation Context ...mponent in some publicly accessible software project. The research challenge lies in how to automatically find and use such implementations to repair bugs. Our key idea is to use semantic code search =-=[68]-=- over existing open-source code to find correct implementations of buggy components and methods, and use the results to automatically generate patches for software defects. Semantic search identifies ... |
6 |
Multi-objective coevolutionary automated software correction
- Wilkerson, Tauritz, et al.
- 2012
(Show Context)
Citation Context ... for automatic repair techniques (e.g., [3], [7], [10], [11], [15], [16], [18], [19], [21], [28], [33], [35], [39], [42], [48], [49], [50], [51], [52], [54], [56], [57], [61], [69], [70], [73], [74], =-=[76]-=-), many of which use test suites to guide and evaluate patching efforts. Modern test-suite guided repair techniques, particularly those following a generate-and-validate paradigm (i.e., heuristically ... |
5 |
Semantic differential repair for input validation and sanitization
- Alkhalaf, Aydin, et al.
- 2014
(Show Context)
Citation Context ...by-construction techniques [35], [49], [50], [52], [70] predicated on program synthesis and generate-and-validate techniques that heuristically create and then test large numbers of candidate repairs =-=[1]-=-, [11], [12], [15], [18], [39], [47], [54], [57], [63], [69], [73], [74]. Second, although several previous techniques also reuse human-written code from elsewhere in a program, or instantiate human-w... |
5 |
and Ashish Tiwari. Oracle-guided component-based program synthesis.
- Jha, Gulwani, et al.
- 2010
(Show Context)
Citation Context ...ode to be executed and could not identify partial matches. Code Synthesis. Code can be synthesized using input-output examples, written in a domain-specific language [29], using predefined components =-=[34]-=-, or based on a high-level behavioral description [4]. Recent approaches use context from a debugger to show where in a program synthesis should occur [26]. While effective in that domain, synthesis-b... |
5 |
Toward semantic search via smt solver
- Stolee, Elbaum
- 2012
(Show Context)
Citation Context ...ons of current repair techniques, focusing on output quality, in Section II-C. A. Semantic code search In this paper, we extend our prior work on input-output example-based semantic code search [66], =-=[67]-=-, [68]. We detail our extensions and illustrate with examples in Section III and focus in this subsection on a high-level overview to ground the subsequent material. Code search uses a specification t... |
4 | The ManyBugs and IntroClass benchmarks for automated repair of C programs - Goues, Holtschulte, et al. - 2015 |
4 | Is the cure worse than the disease? overfitting in automated program repair
- Smith, Barr, et al.
- 2015
(Show Context)
Citation Context ...rge numbers of candidate repairs), although typically general and scalable, often produce poor-quality patches that overfit to the specification test suites used to guide patch generation [20], [57], =-=[65]-=-. By definition, test suites only encode a partial specification of correct behavior. A patch that is correct according to a given test suite may therefore not be fully correct when evaluated with res... |
3 |
Automatic Repair of Concurrency Bugs
- Bradbury, Jalbert
- 2010
(Show Context)
Citation Context ...hether human- or toolgenerated, is that it generalizes to the full, desired, often unwritten specification of correct program behavior. This is a challenge for automatic repair techniques (e.g., [3], =-=[7]-=-, [10], [11], [15], [16], [18], [19], [21], [28], [33], [35], [39], [42], [48], [49], [50], [51], [52], [54], [56], [57], [61], [69], [70], [73], [74], [76]), many of which use test suites to guide an... |
3 | Spotting working code examples
- Keivanloo, Rilling, et al.
- 2014
(Show Context)
Citation Context ...functionality that may be used to produce a repair. Semantic Code Search. Recently keyword-based searches have begun to incorporate semantic information for finding working code examples from the Web =-=[38]-=- or reformulating queries for concept localization [30]. The search approach we use for program repair depends on a more structured specification. Prior semantic code search has used formal specificat... |
3 |
Automatic repair for multi-threaded programs with deadlock/livelock using maximum satisfiability
- Lin, Kulkarni
- 2014
(Show Context)
Citation Context ...iques. Some approaches target a particular class of bugs, such as buffer overruns [64], unsafe integer use in C programs [15], single-variable atomicity violations [35], deadlock and livelock defects =-=[46]-=-, concurrency errors [47], and data input errors [1]. Other techniques tackle generic bugs. For example, the ARMOR tool replaces buggy library calls with different calls that achieve the same behavior... |
3 |
Horizontal code transfer via program fracture and recombination
- Sidiroglou-Douskos, Davis, et al.
- 2015
(Show Context)
Citation Context ...ograms. This relatively simple procedure is sufficient for the IntroClass dataset, but more complex programs will likely require deeper code transfer techniques. Recent advances in code transfer [6], =-=[62]-=-, [63] are complementary to our work and we expect future versions of SearchRepair to use them. Program repair. Automated program repair is concerned with automatically bringing an implementation more... |
2 |
Grail: Context-aware fixing of concurrency bugs
- Liu, Tripp, et al.
- 2014
(Show Context)
Citation Context ...9], [50], [52], [70] predicated on program synthesis and generate-and-validate techniques that heuristically create and then test large numbers of candidate repairs [1], [11], [12], [15], [18], [39], =-=[47]-=-, [54], [57], [63], [69], [73], [74]. Second, although several previous techniques also reuse human-written code from elsewhere in a program, or instantiate human-written templates to effect local cha... |
2 |
Roychoudhury A. DirectFix: Looking for simple program repairs
- Mechtaev, Yi
- 2015
(Show Context)
Citation Context ...unwritten specification of correct program behavior. This is a challenge for automatic repair techniques (e.g., [3], [7], [10], [11], [15], [16], [18], [19], [21], [28], [33], [35], [39], [42], [48], =-=[49]-=-, [50], [51], [52], [54], [56], [57], [61], [69], [70], [73], [74], [76]), many of which use test suites to guide and evaluate patching efforts. Modern test-suite guided repair techniques, particularl... |
1 |
Alexandru Marginean, and Justyna Petke. Automated software transplantation
- Barr, Harman, et al.
- 2015
(Show Context)
Citation Context ...gy programs. This relatively simple procedure is sufficient for the IntroClass dataset, but more complex programs will likely require deeper code transfer techniques. Recent advances in code transfer =-=[6]-=-, [62], [63] are complementary to our work and we expect future versions of SearchRepair to use them. Program repair. Automated program repair is concerned with automatically bringing an implementatio... |
1 |
Ashish Tiwari. Synthesizing geometry constructions
- Gulwani, Korthikanti
- 2011
(Show Context)
Citation Context ... prior to our work, required the code to be executed and could not identify partial matches. Code Synthesis. Code can be synthesized using input-output examples, written in a domain-specific language =-=[29]-=-, using predefined components [34], or based on a high-level behavioral description [4]. Recent approaches use context from a debugger to show where in a program synthesis should occur [26]. While eff... |
1 |
Query quality prediction and reformulation for source code search: The refoqus tool
- Haiduc, Rosa, et al.
- 2013
(Show Context)
Citation Context ...antic Code Search. Recently keyword-based searches have begun to incorporate semantic information for finding working code examples from the Web [38] or reformulating queries for concept localization =-=[30]-=-. The search approach we use for program repair depends on a more structured specification. Prior semantic code search has used formal specifications [27], [53], [77] and test cases [55], [58]. Formal... |
1 |
Hwei Tan and Abhik Roychoudhury. relifix: Automated repair of software regressions
- Shin
- 2015
(Show Context)
Citation Context ...er and Hafiz [15], Debroy and Wong [18], Demsky and Rinard [19], DirectFix [49], FINCH [51], GenProg [42], [74], Gopinath et al. [28], Jolt [10], Juzi [21], Kali [57], PACHIKA [16], PAR [39], relifix =-=[69]-=-, SemFix [50], Sidiroglou and Keromytis [61], TrpAutoRepair [56], etc.). Section II-B has discussed the differences between generate-and-validate and correct-by-construction repair. The approach behin... |