首页> 外文OA文献 >Sorting and Transforming Program Repair Ingredients via Deep Learning Code Similarities
【2h】

Sorting and Transforming Program Repair Ingredients via Deep Learning Code Similarities

机译:通过深入学习代码相似性排序和转换程序维修成分

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

In the field of automated program repair, the redundancy assumption claimslarge programs contain the seeds of their own repair. However, mostredundancy-based program repair techniques do not reason about the repairingredients---the code that is reused to craft a patch. We aim to reason aboutthe repair ingredients by using code similarities to prioritize and transformstatements in a codebase for patch generation. Our approach, DeepRepair, relieson deep learning to reason about code similarities. Code fragments atwell-defined levels of granularity in a codebase can be sorted according totheir similarity to suspicious elements (i.e., code elements that containsuspicious statements) and statements can be transformed by mappingout-of-scope identifiers to similar identifiers in scope. We examined these newsearch strategies for patch generation with respect to effectiveness from theviewpoint of a software maintainer. Our comparative experiments were executedon six open-source Java projects including 374 buggy program revisions andconsisted of 19,949 trials spanning 2,616 days of computation time.DeepRepair's search strategy using code similarities generally found compilableingredients faster than the baseline, jGenProg, but this improvement neitheryielded test-adequate patches in fewer attempts (on average) nor foundsignificantly more patches than the baseline. Although the patch counts werenot statistically different, there were notable differences between the natureof DeepRepair patches and baseline patches. The results demonstrate that ourlearning-based approach finds patches that cannot be found by existingredundancy-based repair techniques.
机译:在自动化程序维修领域,冗余假设索赔程序包含自己修复的种子。然而,基于MoStredundancy的程序维修技术不会有理由修理---重复使用修补程序的代码。我们的目标是通过使用代码相似性与补丁生成的CodeBase中的优先级和变换库进行修理。我们的方法,deeprepair,依赖深深的学习,原因是代码相似之处。代码片段在代码库中的代码片段ately定义的粒度级别可以根据totheir的相似性对可疑元素(即,包含的代码元素)和语句的代码元素来排序,可以通过范围内的类似标识符映射到类似标识符来转换。我们研究了从软件维护者的ViewPoive的有效性的补丁生成的这些新闻搜索战略。我们的比较实验被执行了六个开源Java项目,包括374个错误的计划修订,并提供了19,949个试验,跨越了2,616天的计算Time.deeprepair的搜索策略,使用代码相似度的搜索策略通常比基线,jgenprog,但这种改进的exiteedielded test-aftequate在更少的尝试(平均)的补丁(平均)也比基线产生更多的补丁。虽然补丁数统计学不同,但Deeprepair补丁和基线贴片之间的性质之间存在显着差异。结果表明,基于网络的方法发现了基于现有的保修技术无法找到的补丁。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号