Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Sorting and Transforming Program Repair Ingredients via Deep Learning Code Similarities
KTH, School of Electrical Engineering and Computer Science (EECS), Theoretical Computer Science, TCS.ORCID iD: 0000-0003-3505-3383
Show others and affiliations
2019 (English)In: SANER 2019 - Proceedings of the 2019 IEEE 26th International Conference on Software Analysis, Evolution, and Reengineering, Institute of Electrical and Electronics Engineers (IEEE), 2019, p. 479-490, article id 8668043Conference paper, Published paper (Refereed)
Abstract [en]

In the field of automated program repair, the redundancy assumption claims large programs contain the seeds of their own repair. However, most redundancy-based program repair techniques do not reason about the repair ingredients-The code that is reused to craft a patch. We aim to reason about the repair ingredients by using code similarities to prioritize and transform statements in a codebase for patch generation. Our approach, DeepRepair, relies on deep learning to reason about code similarities. Code fragments at well-defined levels of granularity in a codebase can be sorted according to their similarity to suspicious elements (i.e., code elements that contain suspicious statements) and statements can be transformed by mapping out-of-scope identifiers to similar identifiers in scope. We examined these new search strategies for patch generation with respect to effectiveness from the viewpoint of a software maintainer. Our comparative experiments were executed on six open-source Java projects including 374 buggy program revisions and consisted of 19,949 trials spanning 2,616 days of computation time. Deep-Repair's search strategy using code similarities generally found compilable ingredients faster than the baseline, jGenProg, but this improvement neither yielded test-Adequate patches in fewer attempts (on average) nor found significantly more patches (on average) than the baseline. Although the patch counts were not statistically different, there were notable differences between the nature of DeepRepair patches and jGenProg patches. The results show that our learning-based approach finds patches that cannot be found by existing redundancy-based repair techniques.

Place, publisher, year, edition, pages
Institute of Electrical and Electronics Engineers (IEEE), 2019. p. 479-490, article id 8668043
Keywords [en]
code clones, deep learning, language models, neural networks, program repair, software testing and debugging, Codes (symbols), Open source software, Program debugging, Redundancy, Reengineering, Repair, Software testing, Code clone, Code similarities, Comparative experiments, Language model, Learning-based approach, Repair techniques, Search strategies
National Category
Software Engineering
Identifiers
URN: urn:nbn:se:kth:diva-252216DOI: 10.1109/SANER.2019.8668043ISI: 000469754100046Scopus ID: 2-s2.0-85064149756ISBN: 9781728105918 (print)OAI: oai:DiVA.org:kth-252216DiVA, id: diva2:1323003
Conference
26th IEEE International Conference on Software Analysis, Evolution, and Reengineering, SANER 2019; Hangzhou; China; 24 February 2019 through 27 February 2019
Funder
Wallenberg AI, Autonomous Systems and Software Program (WASP)
Note

QC 20190611

Available from: 2019-06-11 Created: 2019-06-11 Last updated: 2019-06-26Bibliographically approved

Open Access in DiVA

No full text in DiVA

Other links

Publisher's full textScopus

Authority records BETA

Monperrus, Martin

Search in DiVA

By author/editor
Monperrus, Martin
By organisation
Theoretical Computer Science, TCS
Software Engineering

Search outside of DiVA

GoogleGoogle Scholar

doi
isbn
urn-nbn

Altmetric score

doi
isbn
urn-nbn
Total: 5 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf