Repairing Programs with Semantic Code Search (T)
Repairing Programs with Semantic Code Search (T)
复制标题
使用语义代码搜索修复程序 (T)
DOI:
10.1109/ase.2015.60
复制
发表时间:
2015
期刊:
影响因子:
--
通讯作者:
Brun, Yuriy
中科院分区:
文献类型:
--
作者:
Ke, Yalin;Stolee, Kathryn T.;Goues, Claire Le;Brun, Yuriy
Automated program repair can potentially reduce debugging costs and improvesoftware quality but recent studies have drawn attention to shortcomings inthe quality of automatically generated repairs. We propose a new kind ofrepair that uses the large body of existing open-source code to findpotential fixes. The key challenges lie in efficiently finding codesemantically similar (but not identical) to defective code and thenappropriately integrating that code into a buggy program. We presentSearchRepair, a repair technique that addresses these challenges by(1) encoding a large database of human-written code fragments as SMTconstraints on input-output behavior, (2) localizing a given defect to likelybuggy program fragments and deriving the desired input-output behavior forcode to replace those fragments, (3) using state-of-the-art constraintsolvers to search the database for fragments that satisfy that desiredbehavior and replacing the likely buggy code with these potential patches, and (4) validating that the patches repair the bug against program testsuites. We find that SearchRepair repairs 150 (19%) of 778 benchmark Cdefects written by novice students, 20 of which are not repaired by GenProg, TrpAutoRepair, and AE. We compare the quality of the patches generated by thefour techniques by measuring how many independent, not-used-during-repairtests they pass, and find that SearchRepair-repaired programs pass 97.3% ofthe tests, on average, whereas GenProg-, TrpAutoRepair-, and AE-repairedprograms pass 68.7%, 72.1%, and 64.2% of the tests, respectively. We concludethat SearchRepair produces higher-quality repairs than GenProg, TrpAutoRepair, and AE, and repairs some defects those tools cannot.
登录
查看更多内容
DOI:
10.1145/1882291.1882327
发表时间:
2010-11
期刊:
--
影响因子:
--
作者:
A. Carzaniga;Alessandra Gorla;Nicolò Perino;M. Pezzè
通讯作者:
A. Carzaniga;Alessandra Gorla;Nicolò Perino;M. Pezzè
影响因子:
14.3
作者:
Orlov, Michael;Sipper, Moshe
通讯作者:
Sipper, Moshe
影响因子:
7.4
作者:
Yu Pei;Carlo A. Furia;M. Nordio;Yi Wei;Bertrand Meyer;Andreas Zeller
通讯作者:
Yu Pei;Carlo A. Furia;M. Nordio;Yi Wei;Bertrand Meyer;Andreas Zeller
DOI:
10.1145/2393596.2393625
发表时间:
2012-11
期刊:
ACM Trans. Program. Lang. Syst.
影响因子:
--
作者:
Kathryn T. Stolee;Sebastian G. Elbaum
通讯作者:
Kathryn T. Stolee;Sebastian G. Elbaum
DOI:
--
发表时间:
1999
期刊:
International Conference on Automated Software Engineering
影响因子:
--
作者:
J. Penix;P. Alexander
通讯作者:
P. Alexander