Harnessing Evolution for Multi-Hunk Program Repair.

Saved in:
Bibliographic Details
Title: Harnessing Evolution for Multi-Hunk Program Repair.
Authors: Saha, Seemanta1 seemantasaha@cs.ucsb.edu, Saha, Ripon K.2 rsaha@us.fujitsu.com, Prasad, Mukul R.2 mukul@us.fujitsu.com
Source: ICSE: International Conference on Software Engineering. 5/25/2019, p13-24. 12p.
Subjects: Automatic programming (Computer science), Software maintenance, Software engineering, Artificial intelligence, Big data
Abstract: Despite significant advances in automatic program repair (APR) techniques over the past decade, practical deployment remains an elusive goal. One of the important challenges in this regard is the general inability of current APR techniques to produce patches that require edits in multiple locations, i.e., multi-hunk patches. In this work, we present a novel APR technique that generalizes single-hunk repair techniques to include an important class of multi-hunk bugs, namely bugs that may require applying a substantially similar patch at a number of locations. We term such sets of repair locations as evolutionary siblings -- similar looking code, instantiated in similar contexts, that are expected to undergo similar changes. At the heart of our proposed method is an analysis to accurately identify a set of evolutionary siblings, for a given bug. This analysis leverages three distinct sources of information, namely the test-suite spectrum, a novel code similarity analysis, and the revision history of the project. The discovered siblings are then simultaneously repaired in a similar fashion. We instantiate this technique in a tool called HERCULES and demonstrate that it is able to correctly fix 46 bugs in the Defects4J dataset, the highest of any individual APR technique to date. This includes 15 multihunk bugs and overall 11 bugs which have not been fixed by any other technique so far. [ABSTRACT FROM AUTHOR]
Copyright of ICSE: International Conference on Software Engineering is the property of Association for Computing Machinery and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)
Database: Engineering Source
FullText Links:
  – Type: pdflink
Text:
  Availability: 0
Header DbId: egs
DbLabel: Engineering Source
An: 155540103
AccessLevel: 6
PubType: Conference
PubTypeId: conference
PreciseRelevancyScore: 0
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: Harnessing Evolution for Multi-Hunk Program Repair.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Saha%2C+Seemanta%22">Saha, Seemanta</searchLink><relatesTo>1</relatesTo><i> seemantasaha@cs.ucsb.edu</i><br /><searchLink fieldCode="AR" term="%22Saha%2C+Ripon+K%2E%22">Saha, Ripon K.</searchLink><relatesTo>2</relatesTo><i> rsaha@us.fujitsu.com</i><br /><searchLink fieldCode="AR" term="%22Prasad%2C+Mukul+R%2E%22">Prasad, Mukul R.</searchLink><relatesTo>2</relatesTo><i> mukul@us.fujitsu.com</i>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: <searchLink fieldCode="JN" term="%22ICSE%3A+International+Conference+on+Software+Engineering%22">ICSE: International Conference on Software Engineering</searchLink>. 5/25/2019, p13-24. 12p.
– Name: Subject
  Label: Subjects
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22Automatic+programming+%28Computer+science%29%22">Automatic programming (Computer science)</searchLink><br /><searchLink fieldCode="DE" term="%22Software+maintenance%22">Software maintenance</searchLink><br /><searchLink fieldCode="DE" term="%22Software+engineering%22">Software engineering</searchLink><br /><searchLink fieldCode="DE" term="%22Artificial+intelligence%22">Artificial intelligence</searchLink><br /><searchLink fieldCode="DE" term="%22Big+data%22">Big data</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: Despite significant advances in automatic program repair (APR) techniques over the past decade, practical deployment remains an elusive goal. One of the important challenges in this regard is the general inability of current APR techniques to produce patches that require edits in multiple locations, i.e., multi-hunk patches. In this work, we present a novel APR technique that generalizes single-hunk repair techniques to include an important class of multi-hunk bugs, namely bugs that may require applying a substantially similar patch at a number of locations. We term such sets of repair locations as evolutionary siblings -- similar looking code, instantiated in similar contexts, that are expected to undergo similar changes. At the heart of our proposed method is an analysis to accurately identify a set of evolutionary siblings, for a given bug. This analysis leverages three distinct sources of information, namely the test-suite spectrum, a novel code similarity analysis, and the revision history of the project. The discovered siblings are then simultaneously repaired in a similar fashion. We instantiate this technique in a tool called HERCULES and demonstrate that it is able to correctly fix 46 bugs in the Defects4J dataset, the highest of any individual APR technique to date. This includes 15 multihunk bugs and overall 11 bugs which have not been fixed by any other technique so far. [ABSTRACT FROM AUTHOR]
– Name: AbstractSuppliedCopyright
  Label:
  Group: Ab
  Data: <i>Copyright of ICSE: International Conference on Software Engineering is the property of Association for Computing Machinery and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.)
PLink https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=egs&AN=155540103
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1109/ICSE.2019.00020
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 12
        StartPage: 13
    Subjects:
      – SubjectFull: Automatic programming (Computer science)
        Type: general
      – SubjectFull: Software maintenance
        Type: general
      – SubjectFull: Software engineering
        Type: general
      – SubjectFull: Artificial intelligence
        Type: general
      – SubjectFull: Big data
        Type: general
    Titles:
      – TitleFull: Harnessing Evolution for Multi-Hunk Program Repair.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Saha, Seemanta
      – PersonEntity:
          Name:
            NameFull: Saha, Ripon K.
      – PersonEntity:
          Name:
            NameFull: Prasad, Mukul R.
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 25
              M: 05
              Text: 5/25/2019
              Type: published
              Y: 2019
          Titles:
            – TitleFull: ICSE: International Conference on Software Engineering
              Type: main
ResultId 1