Proceedings of the 6th International Workshop on Constraints in Software Testing, Verification, and Analysis 2014
DOI: 10.1145/2593735.2593740
|View full text |Cite
|
Sign up to set email alerts
|

Automatic repair of buggy if conditions and missing preconditions with SMT

Abstract: We present Nopol an approach for automatically repairing buggy if conditions and missing preconditions. As input, it takes a program and a test suite which contains passing test cases modeling the expected behavior of the program and at least one failing test case embodying the bug to be repaired. It consists of collecting data from multiple instrumented test suite executions, transforming this data into a Satisfiability Modulo Theory (SMT) problem, and translating the SMT result -if there exists one -into a s… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

2
70
0

Year Published

2015
2015
2023
2023

Publication Types

Select...
5
2
1

Relationship

0
8

Authors

Journals

citations
Cited by 100 publications
(72 citation statements)
references
References 16 publications
2
70
0
Order By: Relevance
“…In fact, none of the 12 correct patches that PCR generates are within the Debroy and Wong search space. NOPOL: NOPOL [10] is an automatic repair tool focusing on branch conditions. It identifies branch statement directions that can pass negative test cases and then uses SMT solvers to generate repairs for the branch condition.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…In fact, none of the 12 correct patches that PCR generates are within the Debroy and Wong search space. NOPOL: NOPOL [10] is an automatic repair tool focusing on branch conditions. It identifies branch statement directions that can pass negative test cases and then uses SMT solvers to generate repairs for the branch condition.…”
Section: Related Workmentioning
confidence: 99%
“…2) NOPOL focuses only on patches that change conditions, while PCR can generate patches for a broader class of defects (php-307562-307561, php-307846-307853, php-309516-309535, libtiff-ee2ce-b5691, gmp-13420-13421, and gzip-a1d3d-f17cb). 3) NOPOL was evaluated on two small Java programs (each with less than 5000 lines of code) and two artificial examples in [10], while we evaluate PCR on 105 real world defects in seven C applications with more than one million lines in total. Fix Safety-Policy Violation: Weimer [32] proposed a patch generation technique for safety policy violation errors.…”
Section: Related Workmentioning
confidence: 99%
“…Since different approaches, and different experimental evaluations, deal differently with bugs that admit multiple valid fixes, we measure three variants of precision and recall: 1) relative to the number of bugs that were correctly fixed by any of the valid fixes, regardless of the correct fix's rank; 2) relative to the number of bugs that were correctly fixed by a fix ranked among the top 10 in a tool's output; 3) relative to the number of bugs that were correctly fixed by a fix ranked first in a tool's output. JAID achieve the best precision 5 and recall if we disregard ranking; and the second-best precision and third-best recall in the other two cases. Again, note that the only tools that outperform JAID rely on additional input information to sharpen their precision and recall.…”
Section: Resultsmentioning
confidence: 98%
“…GenProg [33] pioneered the "generate-and-validate" approach, where many plausible fixes are generated based on heuristics, and then are validated against the available tests. More recently, others [5], [21], [22], [24], [36] have pursued the "constraint-based" approach, where fixes are constructed to satisfy suitable constraints that correspond to their validity. The two approaches are not sharply distinct, in that fixes generated by constraintbased techniques may still require validation if the constraints they satisfy by construction are not sufficiently precise to ensure that they are correct-as it often happens when dealing with incomplete specifications.…”
Section: Related Workmentioning
confidence: 99%
“…Recent advances of the behavior-based repair are the NOPOL reported by DeMarco et al [42]. NOPOL used Satisfiability Modulo Theories (SMT) [43][44] to fix the buggy IF conditions and synthesize additional preconditions.…”
Section: Behavior-based Tbrmentioning
confidence: 99%