自动程序修复方法研究述评
详细信息    查看全文 | 推荐本文 |
  • 英文篇名:Automatic Program Repair Techniques:A Survey
  • 作者:王赞 ; 郜健 ; 陈翔 ; 傅浩杰 ; 樊向宇
  • 英文作者:WANG Zan;GAO Jian;CHEN Xiang;FU Hao-Jie;FAN Xiang-Yu;School of Computer Software,Tianjin University;School of Computer Science and Technology,Nantong University;
  • 关键词:自动程序修复 ; 软件缺陷定位 ; 基于搜索的软件工程 ; 约束求解 ; 并发程序缺陷修复
  • 英文关键词:automatic program repair;;software fault localization;;search based software engineering;;constraint solving;;concurrency bug repair
  • 中文刊名:JSJX
  • 英文刊名:Chinese Journal of Computers
  • 机构:天津大学软件学院;南通大学计算机科学与技术学院;
  • 出版日期:2017-07-28 12:52
  • 出版单位:计算机学报
  • 年:2018
  • 期:v.41;No.423
  • 基金:国家自然科学基金项目(61202030,61202006,71502125)部分资助
  • 语种:中文;
  • 页:JSJX201803007
  • 页数:23
  • CN:03
  • ISSN:11-1826/TP
  • 分类号:98-120
摘要
当开发人员面对大量缺陷报告无从入手的时候,自动程序修复(Automatic Program Repair,APR)可以成功完成其中一些缺陷的自动修复,从而有效减少开发人员的程序调试时间.因此自动程序修复逐渐成为当前软件维护领域中的一个研究热点并取得了一定的研究进展.该文通过对权威期刊和会议进行检索,搜集了100余篇相关论文,从现有自动程序修复的研究历程、该方法中的重要问题以及国内外相关研究团队及成果等几个方面对该领域进行了系统的总结.其中基于测试用例的自动程序修复方法是当前一种主流方法,其通过配套测试用例集来评估生成补丁的质量.论文将这类方法细分为三个阶段:软件缺陷定位阶段、生成补丁阶段和补丁评估阶段.其中软件缺陷定位阶段是自动程序修复的基础,其目标是尽可能精确识别出可能含有缺陷的语句.生成补丁阶段一般通过预先定义的修改操作对缺陷语句进行修改,代码修改操作在设定时可以考虑修复程序的自身代码、开源项目的代码或者问答网站中的知识等.补丁评价阶段则对生成的候选补丁进行评估,直到找到一个补丁可以使得所有测试用例均执行通过,并随后借助开发人员的人工分析进行最终确认.在上述三个阶段中,生成补丁阶段是自动程序修复方法的核心,论文将已有补丁生成方法细分为三类:基于搜索的方法、基于语义的方法和其他类型方法.其中基于搜索的方法在搜索空间内通过搜索生成补丁,并借助配套测试用例集对该补丁进行验证,经典的方法包括GenProg、PAR、AE、RSrepair等;基于语义的方法则借助语义信息来合成补丁,主要基于符号执行和约束求解,经典的方法包括SemFix、DirectFix、Angelix、Nopol等;而不属于上述两类方法的研究工作则被归于其他类型的方法,经典的工作包括基于问答网站和开源项目托管网站挖掘来生成补丁.而补丁评价阶段是自动程序修复方法研究的争议焦点,近两年研究人员更多关注正确补丁在搜索空间中的分布和补丁的正确性.特别是针对减少补丁的验证花销和提高补丁质量的问题做出了进一步的探索.随后论文针对特定领域的自动程序修复方法进行了总结,包括并发缺陷、数据库缺陷、空指针缺陷、数据结构缺陷、内存泄漏缺陷等的自动修复方法.其中重点分析了针对并发缺陷的自动修复方法,将已有研究工作分为数据竞争的自动修复、原子性违背的自动修复、顺序违背的自动修复和死锁的自动修复.然后论文总结了自动程序修复方法在有效性评估中经常使用的缺陷库,不难看出ManyBugs、IntroClass、Simens程序集和Defect4J是目前使用最多的缺陷库.为了方便研究人员更好的与自己提出的修复方法进行比较,论文搜集了目前已经共享的自动程序修复工具并给出了相关参考文献和具体下载地址.接着论文对国内外在程序自动修复领域比较活跃的研究小组进行了总结,并对每个研究组的主要贡献进行了总结,以方便国内外研究人员对他们的后续研究工作进行及时跟踪.最后总结全文,并依次从缺陷定位、补丁生成和评估、缺陷数量和类型、特定领域的缺陷修复以及缺陷修复在工业界中的应用这五个维度对未来的研究工作进行了展望.
        When developers do not know how to fix the defects in many bugreports,automatic program repair(APR)can successfully repair some bugs to reduce developer's debugging timeeffectively.Therefore,APR has been an active research topic in software maintenance domain and has made some progress nowadays.After retrieving more than 100 papers from the authoritative journals and conferences,this survey offers a systematic overview of existing research work on APR to highlight the research progress,identify the important issues,and summarize the achievements of related research groups in APR.Among all approaches of APR,test suite based APR is the current mainstream,which utilizes the test suite to verify the generated patches and includes three main stages:Fault localization,patch generation,and patch evaluation.As the foundation stage of test suite based APR,fault localization aims to identify statements that may contain defects as precisely as possible.After localizing the buggy statements,some candidate patches are then generated by predefined modification operators.The design of modification operators is based on the program itself,the code from the open source projects,or the information in the Q&A sites.In the patch evaluation stage,the candidate patches are evaluated until a patch is found that allows all test cases to pass and subsequently be confirmed by developers manually.In these three stages,the patch generation phase is the emphasis and the existing patch generation methods can be classified into three categories:search based methods,semantic based methods and other types of methods.The search based methods,such as GenProg,PAR,AE,RSrepair etc.,generate patches by searching in a search space,and use the test suite to verify the correctness of the patch;the semantic based methods,such as SemFix,DirectFix,Angelix,Nopol etc.,exploit semantic information to synthesize patches with symbolic execution and constraint solving techniques;Those research work not belong to the above two categories can be attributed to other types of methods,some classical work of them includes mining Q&A sites and open source projects hosting site to generate patches.The patch evaluation stage is the focus of APR.In recent two years,researchers have paid more attention to the distribution of the correct patches in the search space and the correctness of the patch.Especially,further exploration has been made to pursue lower verification overhead and higher quality of patch.In addition,this survey summarizes APR methods in some specific domains,such as concurrent defects,database defects,null pointer defects,data structure defects,and memory leak defects.Among these specific areas,we specifically analyzed APR methods for concurrent defects,which can be classified into automatic repair of data race,atomicity violation,order violation and deadlock.Moreover,the paper summarizes the commonly used defect benchmarks in the empirical evaluation of APR.It is not hard to find that ManyBugs,IntroClass,Simens suites and Defect4 Jare the most popular benchmarks.To assist researchers in comparing other APR methods with their proposed methods,the survey also collects all the available APR tools,including the reference papers and corresponding download links.Next,some active research groups as well as their contributions are summarized to facilitate the timely follow-up of their future research work.Finally,the survey looks forward to the future research work from the five aspects,including fault localization,patch generation and evaluation,defect number and type,APR in specific domains and application of APR in the industry.
引文
[1]Anand S,Burke E K,Chen T Y,et al.An orchestrated survey of methodologies for automated software test case generation.Journal of Systems and Software,2013,86(8):1978-2001
    [2]Chen Xiang,Gu Qing,Liu Wang-Shu,et al.Survey of static software defect prediction.Journal of Software,2016,27(1):1-25(in Chinese)(陈翔,顾庆,刘望舒等.静态软件缺陷预测方法研究.软件学报,2016,27(1):1-25)
    [3]Nguyen H D T,Qi D W,Roychoudhury A,Chandra S.SemFix:Program repair via semantic analysis//Proceedings of the International Conference on Software Engineering.San Francisco,USA,2013:772-781
    [4]Weimer W,Nguyen T,Le Goues C,Forrest S.Automatically finding patches using genetic programming//Proceedings of the International Conference on Software Engineering.Washington,USA,2009:364-374
    [5]Kim D,Nam J,Song J,Kim S.Automatic patch generation learned from human-written patches//Proceedings of the International Conference on Software Engineering.San Francisco,USA,2013:802-811
    [6]Le Goues C,Forrest S,Weimer W.Current challenges in automatic software repair.Software Quality Journal,2013,21(3):421-443
    [7]Xuan Ji-Feng,Ren Zhi-Lei,Wang Zi-Yuan,et al.Progress on approaches to automatic program repair.Journal of Software,2016,27(4):771-784(in Chinese)(玄跻峰,任志磊,王子元等.自动程序修复方法研究进展.软件学报,2016,27(4):771-784)
    [8]Yu Kai,Lin Meng-Xiang.Advances in automatic fault localization techniques.Chinese Journal of Computers,2011,34(8):1411-1422(in Chinse)(虞凯,林梦香.自动化软件错误定位技术研究进展.计算机学报,2011,34(8):1411-1422)
    [9]Chen Xiang,Ju Xiao-Lin,Wen Wan-Zhi,Gu Qing.Review of dynamic fault localization approaches based on program spectrum.Journal of Software,2015,26(2):390-412(in Chinese)(陈翔,鞠小林,文万志,顾庆.基于程序频谱的动态缺陷定位方法研究.软件学报,2015,26(2):390-412)
    [10]Wang Ke-Chao,Wang Tian-Tian,Su Xiao-Hong,Ma PeiJun.Key scientific issues and state-art of automatic software fault localization.Chinese Journal of Computers,2015,38(11):2262-2278(in Chinese)(王克朝,王甜甜,苏小红,马培军.软件错误自动定位关键科学问题及研究进展.计算机学报,2015,38(11):2262-2278)
    [11]Wong W E,Gao R Z,Li Y H,et al.A survey on software fault localization.IEEE Transactions on Software Engineering,2016,42(8):707-740
    [12]Dallmeier V,Zeller A,Meyer B.Generating fixes from object behavior anomalies//Proceedings of the International Conference on Software Engineering.Vancouver,Canada,2009:550-554
    [13]Perkins J H,Kim S,Larsen S,et al.Automatically patching errors in deployed software//Proceedings of the ACM SIGOPS Symposium on Operating Systems Principles.Montana,USA,2009:87-102
    [14]Wei Y,Pei Y,Furia C A,Meyer B,et al.Automated fixing of programs with contracts//Proceedings of the International Symposium on Software Testing and Analysis.New York,USA,2010:61-72
    [15]Pei Y,Wei Y,Furia C A,et al.Code-based automated program fixing//Proceedings of the International Conference on Automated Software Engineering.Washington,USA,2011:392-395
    [16]Pei Y,Furia C A,Nordio M,Meyer B.Automatic program repair by fixing contracts//Proceedings of the International Conference on Fundamental Approaches to Software Engineering.Grenoble,France,2014:246-260
    [17]Pei Y,Furia C A,Nordio M,et al.Automated fixing of programs with contracts.IEEE Transactions on Software Engineering,2014,40(5):427-449
    [18]Pei Y,Furia C A,Nordio M,Meyer B.Automated program repair in an integrated development environment//Proceedings of the International Conference on Software Engineering.Firenze,Italy,2015:681-684
    [19]Liu C,Yang J,Tan L,Hafiz M.R2Fix:Automatically generating bug fixes from bug reports//Proceedings of the International Conference on Software Testing,Verification,and Validation.Luxembourg,Luxembourg,2013:282-291
    [20]Le D X B,Lo D,Le Goues C.History driven program repair//Proceedings of the International Conference on Software Analysis,Evolution,and Reengineering(SANER).Osaka,Japan,2016:213-224
    [21]Le Goues C,ThanhVu N,Forrest S,Weimer W.GenProg:A generic method for automatic software repair.IEEE Transactions on Software Engineering,2012,38(1):54-72
    [22]Xie X Y,Liu Z C,Song S,et al.Revisit of automatic debugging via human focus-tracking analysis//Proceedings of the International Conference on Software Engineering.Austin,USA,2016:808-819
    [23]Parnin C,Orso A.Are automated debugging techniques actually helping programmers?//Proceedings of the International Symposium on Software Testing and Analysis.Toronto,Ontario,Canada,2011:199-209
    [24]Reps T,Ball T,Das M,Larus J.The use of program profiling for software maintenance with applications to the year2000problem.Software Engineering,1997,22(6):432-449
    [25]Le Goues C,Dewey-Vogt M,Forrest S,Weimer W.A systematic study of automated program repair:Fixing 55out of 105 bugs for 8 each//Proceedings of the International Conference on Software Engineering.Zurich,Switzerland,2012:3-13
    [26]Qi Z,Long F,Achour S,Rinard M.An analysis of patch plausibility and correctness for generate-and-validate patch generation systems//Proceedings of the 2015International Symposium on Software Testing and Analysis.New York,USA,2015:24-36
    [27]Debroy V,Wong W E.Using mutation to automatically suggest fixes for faulty programs//Proceedings of the International Conference on Software Testing,Verification and Validation.Paris,France,2010:65-74
    [28]Ke Y,Stolee K T,Le Goues C,Brun Y.Repairing programs with semantic code search(T)//Proceedings of the International Conference on Automated Software Engineering.Lincoln,USA,2015:295-306
    [29]Arcuri A.Evolutionary repair of faulty software.Applied Soft Computing,2010,11(4):3494-3514
    [30]Jones J A.Empirical evaluation of the tarantula automatic fault-localization technique//Proceedings of the International Conference on Automated Software Engineering.Long Beach,USA,2005:273-282
    [31]Kaleeswaran S,Tulsian V,Kanade A,Orso A.Minthint:Automated synthesis of repair hints//Proceedings of the International Conference on Software Engineering.New York,USA,2014:266-276
    [32]Tan S H,Roychoudhury A.Relifix:Automated repair of software regressions//Proceedings of the International Conference on Software Engineering.Firenze,Italy,2015:471-482
    [33]Xuan J F,Martinez M,DeMarco F,et al.Nopol:Automatic repair of conditional statement bugs in Java programs.IEEE Transactions on Software Engineering,2016,2017,43(1):34-55
    [34]DeMarco F,Xuan J F,Berre D L,Monperrus M.Automatic repair of buggy if conditions and missing preconditions with SMT//Proceedings of the International Workshop on Constraints in Software Testing,Verification,and Analysis.Hyderabad,India,2014:30-39
    [35]Rui A,Zoeteweij P,Gemund A J C V.An evaluation of similarity coefficients for software fault localization//Proceedings of the Pacific Rim International Symposium on Dependable Computing.University of California.Riverside,USA,2006:39-46
    [36]Rui A,Zoeteweij P,Gemund A J C V.On the accuracy of spectrum-based fault localization//Proceedings of the Testing:Academic and Industrial Conference Practice and Research Techniques.Windsor,UK,2007:89-98
    [37]Mechtaev S,Yi J,Roychoudhury A.Angelix:Scalable multiline program patch synthesis via symbolic analysis//Proceedings of the International Conference on Software Engineering.Austin,USA,2016:691-701
    [38]Chandra S,Torlak E,Barman S,Bodik R.Angelic debugging//Proceedings of the International Conference on Software Engineering.New York,USA,2011:121-130
    [39]Qi Y H,Mao X G,Lei Y,Wang C S.Using automated program repair for evaluating the effectiveness of fault localization techniques//Proceedings of the International Symposium on Software Testing and Analysis.Lugano,Switzerland,2013:191-201
    [40]Naish L,Lee H J,Ramamohanarao K.A model for spectrabased software diagnosis.ACM Transactions on Software Engineering and Methodology,2011,20(3):1-32
    [41]Xie X,Chen T Y,Kuo F C,Xu B.A theoretical analysis of the risk evaluation formulas for spectrum-based fault localization.ACM Transactions on Software Engineering&Methodology,2013,22(4):402-418
    [42]Harman M,Mansouri S A,Zhang Y Y.Search-based software engineering:Trends,techniques and applications.ACM Computing Surveys,2012,45(1):1-61
    [43]Arcuri A,Yao X.A novel co-evolutionary approach to automatic software bug fixing//Proceedings of the Evolutionary Computation.Hong Kong,China,2008:162-168
    [44]Weimer W,Forrest S,Le Goues C,Nguyen T.Automatic program repair with evolutionary computation.Communications of the ACM,2010,53(5):109-116
    [45]Le Goues C,Westley W,Stephanie F.Representations and operators for improving evolutionary software repair//Proceedings of the International Conference on Genetic and Evolutionary Computation Conference.Philadelphia,USA,2012:959-966
    [46]Weimer W,Fry Z P,Forrest S.Leveraging program equivalence for adaptive program repair:Models and first results//Proceedings of the International Conference on Automated Software Engineering.Palo Alto,USA,2013:356-366
    [47]Long F,Rinard M.Staged program repair with condition synthesis//Proceedings of the Joint Meeting on Foundations of Software Engineering.Bergamo,Italy,2015:166-178
    [48]Long F,Rinard M.Automatic patch generation by learning correct code//Proceedings of the ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages.St.Petersburg,USA,2016:298-312
    [49]Qi Y H,Mao X G,Lei Y,et al.The strength of random search on automated program repair//Proceedings of the International Conference on Software Engineering.Hyderabad,India,2014:254-265
    [50]Martinez M,Weimer W,Monperrus M.Do the fix ingredients already exist?An empirical inquiry into the redundancy assumptions of program repair approaches//Proceedings of the International Conference on Software Engineering.Hyderabad,India,2014:492-495
    [51]Barr E T,Brun Y,Devanbu P,et al.The plastic surgery hypothesis//Proceedings of the ACM SIGSOFT International Symposium on Foundations of Software Engineering.Hong Kong,China,2014:306-317
    [52]Soto M,Thung F,Wong C P,et al.A deeper look into bug fixes:Patterns,replacements,deletions,and additions//Proceedings of the International Conference on Mining Software Repositories.Austin,USA,2016:512-515
    [53]Tan S H,Yoshida H,Prasad M,Roychoudhury A.Antipatterns in search-based program repair//Proceedings of the International Symposium on Foundations of Software Engineering.Seattle,USA,2016:727-738
    [54]Kong X,Zhang L,Wong W E,et al.Experience report:How do techniques,programs,and tests impact automated program repair?//Proceedings of the International Symposium on Software Reliability Engineering,Baltimore,USA,2015:194-204
    [55]Zhong H,Su Z.An empirical study on real bug fixes//Proceedings of the International Conference on Software Engineering.Piscataway,USA,2015:913-923
    [56]Jha S,Gulwani S,Seshia S A,et al.Oracle-guided componentbased program synthesis//Proceedings of the International Conference on Software Engineering.New York,USA,2010:215-224
    [57]Mechtaev S,Yi J,Roychoudhury A.DirectFix:Looking for simple program repairs//Proceedings of the International Conference on Software Engineering.Firenze,Italy,2015:448-458
    [58]Durieux T,Monperrus M.DynaMoth:Dynamic code synthesis for automatic program repair//Proceedings of the International Workshop on Automation of Software Test.New York,USA,2016:85-91
    [59]Marcote S R L,Monperrus M.Automatic Repair of Infinite Loops.France:University of Lille,Arxiv:1504.05078v1,2015
    [60]Gopinath D,Malik M Z,Khurshid S.Specification-based program repair using SAT//Proceedings of the Tools and Algorithms for the Construction and Analysis of Systems.Saarbrücken,Germany,2011:173-188
    [61]Jackson D.Software Abstractions:Logic,Language,and Analysis.Massachusetts,USA:The MIT Press,2006
    [62]Gao Q,Zhang H,Wang J,Xiong Y,et al.Fixing recurring crash bugs via analyzing Q&A sites//Proceedings of the International Conference on Automated Software Engineering.Lincoln,USA,2015:307-318
    [63]Stolee K T,Elbaum S,Dobos D.Solving the search for source code.ACM Transactions on Software Engineering&Methodology,2014,23(3):1-45
    [64]Hme M,Roychoudhury A.CoREBench:Studying complexity of regression errors//Proceedings of the International Symposium on Software Testing and Analysis.New York,USA,2014:105-115
    [65]Qi Y H,Mao X G,Lei Y.Efficient automated program repair through fault-recorded testing prioritization//Proceedings of the IEEE International Conference on Software Maintenance and Evolution.San Francisco,USA,2013:180-189
    [66]Martinez M,Monperrus M.Mining software repair models for reasoning on the search space of automated program fixing.Empirical Software Engineering,2015,20(1):176-205
    [67]Long F,Rinard M.An analysis of the search spaces for generate and validate patch generation systems//Proceedings of the International Conference on Software Engineering.Austin,USA,2016:702-713
    [68]Martinez M,Durieux T,Xuan J,et al.Automatic repair of real bugs in Java:A large-scale experiment on the Defects4J dataset.Switzerland:University of Lugano,HAL:hal-01387556,2016
    [69]Just R,Jalali D,Ernst M D.Defects4J:A database of existing faults to enable controlled testing studies for Java programs//Proceedings of the International Symposium on Software Testing and Analysis.San Jose,USA,2014:437-440
    [70]Smith E K,Barr E T,Le Goues C,Brun Y.Is the cure worse than the disease?Overfitting in automated program repair//Proceedings of the Joint Meeting on Foundations of Software Engineering.Bergamo,Italy,2015:532-543
    [71]Jiang Ming-Yue,Chen Tsong Yueh,Kuo Fei-Ching,et al.A metamorphic testing approach for supporting program repair without the need for a test oracle.The Journal of Systems&Software,2017,126(4):127-140
    [72]Segura S,Fraser G,Sanchez A,et al.A survey on metamorphic testing.IEEE Transactions on Software Engineering,2016,42(9):805-824
    [73]Fry Z P,Landau B,Weimer W.A human study of patch maintainability//Proceedings of the International Symposium on Software Testing and Analysis.Minneapolis,USA,2012:177-187
    [74]Tao Y D,Kim J,Kim S,Xu C.Automatically generated patches as debugging aids:A human study//Proceedings of the ACM SIGSOFT International Symposium on Foundations of Software Engineering.Hong Kong,China,2014:64-74
    [75]Tao Y,Han D,Kim S.Writing acceptable patches:An empirical study of open source project patches//Proceedings of the IEEE International Conference on Software Maintenance and Evolution.Victoria,Canada,2014:271-280
    [76]Le X B D,Le T D B,Lo D.Should fixing these failures be delegated to automated program repair//Proceedings of the International Symposium on Software Reliability Engineering.Gaithersburg,USA,2015:427-437
    [77]Jin G L,Zhang W,Deng D D,Lu S,et al.Automated concurrency-bug fixing//Proceedings of the USENIX Conference on Operating Systems Design and Implementation.Hollywood,USA,2012:221-236
    [78]Jin G L,Song L H,Zhang W,et al.Automated atomicityviolation fixing//Proceedings of the Programming Language Design and Implementation.San Jose,USA,2011:389-400
    [79]Park S,Lu S,Zhou Y.CTrigger:Exposing atomicity violation bugs from their hiding places.Computer Architecture News,2009,37(1):25-36
    [80]Liu H,Chen Y,Lu S.Understanding and generating high quality patches for concurrency bugs//Proceedings of the International Symposium on the Foundations of Software Engineering.Seattle,USA,2016:715-726
    [81]Zhang W,Sun C,Lu S.ConMem:Detecting severe concurrency bugs through an effect-oriented approach.Transactions on Software Engineering,2010,38(1):179-192
    [82]Khoshnood S,Kusano M,Wang C.ConcBugAssist:Constraint solving for diagnosis and repair of concurrency bugs//Proceedings of the International Symposium on Software Testing and Analysis.Baltimore,Maryland,USA,2015:165-176
    [83]Lu S,Park S,Seo E,Zhou Y Y.Learning from mistakes:A comprehensive study on real world concurrency bug characteristics.ACM SIGARCH Computer Architecture News,2008,43(3):329-339
    [84]Park S.Debugging non-deadlock concurrency bugs//Proceedings of the International Symposium on Software Testing and Analysis.Lugano,Switzerland,2013:358-361
    [85]Surendran R,Raman R,Chaudhuri S,et al.Test-driven repair of data races in structured parallel programs//Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation.Edinburgh,UK,2014:15-25
    [86]Cai Y,Cao L W.Fixing deadlocks via lock pre-acquisitions//Proceedings of the International Conference on Software Engineering.Austin,USA,2016:1109-1120
    [87]Jin G,Thakur A,Liblit B,Lu S.Instrumentation and sampling strategies for cooperative concurrency bug isolation//Proceedings of the International Conference on Object Oriented Programming Systems Languages and Applications.Reno,USA,2010:241-255
    [88]Liblit B,Aiken A,Zheng A X,et al.Bug isolation via remote program sampling//Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation.San Diego,USA,2003:141-154
    [89]Liblit B,Naik M,Zheng A X,et al.Scalable statistical bug isolation//Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation.Chicago,USA,2005:15-26
    [90]Durieux T,Hamadi Y,Monperrus M.BanditRepair:Speculative exploration of runtime patches.France:University of Lille,Arxiv:1603.07631v1,2016
    [91]Cornu B,Durieux T,Seinturier L,et al.NPEFix:Automatic runtime repair of null pointer exceptions in Java.France:University of Lille,Arxiv:1512.07423,2015
    [92]Gao Q,Xiong Y,Mi Y,Zhang L,et al.Safe memory-leak fixing for C programs//Proceedings of the International Conference on Software Engineering.Firenze,Italy,2015:459-470
    [93]Long F,Sidiroglou-Douskos S,Rinard M.Automatic runtime error repair and containment via recovery shepherding//Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation.Edinburgh,UK,2014:227-238
    [94]Gopinath D,Khurshid S,Saha D,et al.Data-guided repair of selection statements//Proceedings of the 36th International Conference on Software Engineering.Hyderabad,India,2014:243-253
    [95]Ocariza F S,Pattabiraman K,Mesbah A.Vejovis:Suggesting fixes for JavaScript faults//Proceedings of the International Conference on Software Engineering.Hyderabad,India,2014:837-847
    [96]Samirni H,Schafer M,Artzi S,et al.Automated repair of HTML generation errors in PHP applications using string constraint solving//Proceedings of the International Conference on Software Engineering.Piscataway,Zürich,Switzerland,2012:277-287
    [97]Demsky B,Rinard M.Automatic detection and repair of errors in data structures.ACM SIGPLAN Notices,2003,38(11):78-95
    [98]Demsky B,Rinard M C.Goal-directed reasoning for specification-based data structure repair.IEEE Transactions on Software Engineering,2006,32(12):931-951
    [99]Sidiroglou-Douskos S,Lahtinen E,Long F,Rinard M.Automatic error elimination by horizontal code transfer across multiple applications//Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation.Portland,USA,2015:43-54
    [100]Le Goues C,Holtschulte N,Smith E K,et al.The ManyBugs and IntroClass benchmarks for automated repair of C programs.IEEE Transactions on Software Engineering,2015,41(12):1236-1256
    [101]Cadar C,Dunbar D,Engler D.KLEE:Unassisted and automatic generation of high-coverage tests for complex systems programs//Proceedings of the USENIX Symposium on Operating Systems Design and Implementation.San Diego,USA,2008:209-224
    [102]Matias M,Martin M.ASTOR:A program repair library for Java(demo)//Proceedings of the International Symposium on Software Testing and Analysis.Saarbrücken,Germany,2016:441-444
    [103]Monperrus M.A critical review of“Automatic Patch Generation Learned from Human-Written Patches”:Essay on the problem statement and the evaluation of automatic software repair//Proceedings of the International Conference on Software Engineering.Hyderabad,India,2014:234-242
    (1)http://repairbenchmarks.cs.umass.edu
    (2)https://github.com/rjust/defects4j

© 2004-2018 中国地质图书馆版权所有 京ICP备05064691号 京公网安备11010802017129号

地址:北京市海淀区学院路29号 邮编:100083

电话:办公室:(+86 10)66554848;文献借阅、咨询服务、科技查新:66554700