Automatically finding patches using genetic programming

Automatic program repair has been a longstanding goal in software engineering, yet debugging remains a largely manual process. We introduce a fully automated method for locating and repairing bugs in software. The approach works on off-the-shelf legacy applications and does not require formal specif...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:2009 IEEE 31st International Conference on Software Engineering S. 364 - 374
Hauptverfasser: Weimer, Westley, Nguyen, ThanhVu, Le Goues, Claire, Forrest, Stephanie
Format: Tagungsbericht
Sprache:Englisch
Veröffentlicht: Washington, DC, USA IEEE Computer Society 16.05.2009
IEEE
Schriftenreihe:ACM Conferences
Schlagworte:
ISBN:9781424434534, 142443453X
ISSN:0270-5257
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Abstract Automatic program repair has been a longstanding goal in software engineering, yet debugging remains a largely manual process. We introduce a fully automated method for locating and repairing bugs in software. The approach works on off-the-shelf legacy applications and does not require formal specifications, program annotations or special coding practices. Once a program fault is discovered, an extended form of genetic programming is used to evolve program variants until one is found that both retains required functionality and also avoids the defect in question. Standard test cases are used to exercise the fault and to encode program requirements. After a successful repair has been discovered, it is minimized using structural differencing algorithms and delta debugging. We describe the proposed method and report experimental results demonstrating that it can successfully repair ten different C programs totaling 63,000 lines in under 200 seconds, on average.
AbstractList Automatic program repair has been a longstanding goal in software engineering, yet debugging remains a largely manual process. We introduce a fully automated method for locating and repairing bugs in software. The approach works on off-the-shelf legacy applications and does not require formal specifications, program annotations or special coding practices. Once a program fault is discovered, an extended form of genetic programming is used to evolve program variants until one is found that both retains required functionality and also avoids the defect in question. Standard test cases are used to exercise the fault and to encode program requirements. After a successful repair has been discovered, it is minimized using structural differencing algorithms and delta debugging. We describe the proposed method and report experimental results demonstrating that it can successfully repair ten different C programs totaling 63,000 lines in under 200 seconds, on average.
Author Weimer, Westley
Nguyen, ThanhVu
Forrest, Stephanie
Le Goues, Claire
Author_xml – sequence: 1
  givenname: Westley
  surname: Weimer
  fullname: Weimer, Westley
  organization: University of Virginia, USA
– sequence: 2
  givenname: ThanhVu
  surname: Nguyen
  fullname: Nguyen, ThanhVu
  organization: University of New Mexico, USA
– sequence: 3
  givenname: Claire
  surname: Le Goues
  fullname: Le Goues, Claire
  organization: University of Virginia, USA
– sequence: 4
  givenname: Stephanie
  surname: Forrest
  fullname: Forrest, Stephanie
  organization: University of New Mexico, USA
BookMark eNqNUE1Pg0AQ3cSaWCs_wHjhbALOsrsMe2xI1SZNPKjnzcIOiPIVoIf-eyGtd-cymXlvXt68W7Zqu5YYu-cQcg76aZ--78IIQIcKEJSIr5inMeEyklJIJeSKrSFCCFSk8IZ54_gNc80IT_Sa4fY4dY2dqtzW9ckvqtZVben3dsq_aPSP4zKV1NLM8PuhKwfbNPPujl0Xth7Ju_QN-3zefaSvweHtZZ9uD4GNFJ8CR5hbclrHQDFw7SjmFnNheSaJnBRFJlQSC0SUMSjrIocSMywytzgsxIY9nHUrIjL9UDV2OJnLqzMKZ9Tmjcm67mc0HMySi1lyMUsuf2STDRUtgo__PhG_fWZkAA
ContentType Conference Proceeding
DBID 6IE
6IH
CBEJK
RIE
RIO
DOI 10.1109/ICSE.2009.5070536
DatabaseName IEEE Electronic Library (IEL) Conference Proceedings
IEEE Proceedings Order Plan (POP) 1998-present by volume
IEEE Xplore All Conference Proceedings
IEEE Electronic Library (IEL)
IEEE Proceedings Order Plans (POP) 1998-present
DatabaseTitleList

Database_xml – sequence: 1
  dbid: RIE
  name: IEEE Electronic Library (IEL)
  url: https://ieeexplore.ieee.org/
  sourceTypes: Publisher
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EndPage 374
ExternalDocumentID 5070536
Genre orig-research
GroupedDBID 6IE
6IF
6IG
6IH
6IK
6IL
6IM
6IN
AAJGR
AARBI
ACM
ADPZR
ALMA_UNASSIGNED_HOLDINGS
APO
BEFXN
BFFAM
BGNUA
BKEBE
BPEOZ
CBEJK
GUFHI
IERZE
OCL
RIE
RIL
RIO
-~X
.4S
.DC
123
23M
29O
5VS
8US
AAWTH
ABLEC
ADZIZ
AFFNX
ARCSS
AVWKF
CHZPO
EDO
FEDTE
I-F
I07
IEGSK
IJVOP
IPLJI
M43
RNS
XOL
ID FETCH-LOGICAL-a251t-de7caed9960e6019de61a7c3a1b4eed43fb358637774605ad2d747b7fbd4531f3
IEDL.DBID RIE
ISBN 9781424434534
142443453X
ISICitedReferencesCount 445
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000271438200034&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
ISSN 0270-5257
IngestDate Wed Aug 27 02:04:01 EDT 2025
Wed Jan 31 06:38:21 EST 2024
Wed Jan 31 06:42:45 EST 2024
IsPeerReviewed false
IsScholarly true
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-a251t-de7caed9960e6019de61a7c3a1b4eed43fb358637774605ad2d747b7fbd4531f3
PageCount 11
ParticipantIDs ieee_primary_5070536
acm_books_10_1109_ICSE_2009_5070536
acm_books_10_1109_ICSE_2009_5070536_brief
PublicationCentury 2000
PublicationDate 20090516
2009-May
PublicationDateYYYYMMDD 2009-05-16
2009-05-01
PublicationDate_xml – month: 05
  year: 2009
  text: 20090516
  day: 16
PublicationDecade 2000
PublicationPlace Washington, DC, USA
PublicationPlace_xml – name: Washington, DC, USA
PublicationSeriesTitle ACM Conferences
PublicationTitle 2009 IEEE 31st International Conference on Software Engineering
PublicationTitleAbbrev ICSE
PublicationYear 2009
Publisher IEEE Computer Society
IEEE
Publisher_xml – name: IEEE Computer Society
– name: IEEE
SSID ssj0000453189
ssj0006499
Score 2.3081963
Snippet Automatic program repair has been a longstanding goal in software engineering, yet debugging remains a largely manual process. We introduce a fully automated...
SourceID ieee
acm
SourceType Publisher
StartPage 364
SubjectTerms Biological information theory
Biology computing
Computer bugs
Computing methodologies -- Artificial intelligence -- Search methodologies -- Heuristic function construction
Costs
Debugging
Formal specifications
Genetic mutations
Genetic programming
Software and its engineering -- Software creation and management -- Software verification and validation -- Software defect analysis -- Software testing and debugging
Software and its engineering -- Software notations and tools
Software maintenance
Testing
Title Automatically finding patches using genetic programming
URI https://ieeexplore.ieee.org/document/5070536
WOSCitedRecordID wos000271438200034&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LS8NAEB5a8eCpaivWFwt6EYxNmm02e5TSopdSUKG3sNlHKbRpaVPBf-_O5iGCB70lm4Uss5PMzM583wDcURlSSlOEfWjuUcGZxyPMwveF1hFLZRQXzSbYZBLPZnzagIcaC6O1dsVn-hEvXS5freUej8p61nexOhM1ockYK7Ba9XmKdU2sevL6LxxR1zvSRl2-h4yfFagrtPNmFddTeU_LdGfg897L8HVU0FiWb0OzJVc_mq842zNu_W_Vx9D5BvGRaW2eTqChs1NoVV0cSPlRt4E97fO1I24Vy-UncUnsbE42AvdzR7Awfk6smiHakZTlXCs71oH38eht-OyV7RQ8YZ2Y3FOaSaEV0rFoG4ZxpaNAMBmKIKV2KTQ0aTiIo9DKFpOlQvWVjTVSZlKFsjXhGRxk60yfAxmo2Ax8qXhgbISlaayEH5pYID29UZHswq2VWYJxwi5xYYbPE5Qsdr3kSSmRLtz_YVaSbhfadKGNkk02BQdH9fDi9-FLOCqyPliYeAUH-Xavr-FQfuSL3fbGKc4XgWi3ew
linkProvider IEEE
linkToHtml http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV3dS8MwED_mFPRp6ibOz4K-CNa1a9o0jzI2Npxj4IS9lTRJx2DrxtYJ_vfm-iWCD_rWpoGGy7V3v9zd7wDuiXAIISGWfShmEs6oyTyMwre5Uh4NhednzSboaORPp2xcgceyFkYplSafqSe8TGP5ciV2eFTW0r6L1hlvD_ZdQtp2Vq1Vnqho50QrKCv_wx5Ju0dq3GWZyPlZlHU5et60YHvK70ke8LQt1hp03roZkWX-PjRcYvmj_UpqfXq1_637GBrfZXzGuDRQJ1BR8SnUij4ORv5Z14E-75JVSt3KF4tPIw1jxzNjzXFHtwamxs8MrWhY72jkCV1LPdaA91530umbeUMFk2s3JjGlooIriYQsSgMxJpVncyocbodEL4U4Uei4vudQ7RNqmMNlW2q0EdIolCjbyDmDaryK1TkYrvQj1xKS2ZHGWIr4kltO5HMkqI-kJ5pwp2UWIFLYBinQsFiAksW-lyzIJdKEhz_MCsLNXEVNqKNkg3XGwlE8vPh9-BYO-5PXYTAcjF4u4SiLAWGa4hVUk81OXcOB-Ejm281NqkRfQ4O6wg
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=2009+IEEE+31st+International+Conference+on+Software+Engineering&rft.atitle=Automatically+finding+patches+using+genetic+programming&rft.au=Weimer%2C+W.&rft.au=Nguyen%2C+T.V.&rft.au=Le+Goues%2C+C.&rft.au=Forrest%2C+S.&rft.date=2009-05-01&rft.pub=IEEE&rft.isbn=9781424434534&rft.issn=0270-5257&rft.spage=364&rft.epage=374&rft_id=info:doi/10.1109%2FICSE.2009.5070536&rft.externalDocID=5070536
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0270-5257&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0270-5257&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0270-5257&client=summon