Abstract-Vi föreslår NOPOL, en strategi för automatisk reparation av buggy villkorliga uttalanden (dvs, om-då-else uttalanden). Detta tillvägagångssätt tar en buggy program samt en testsvit som ingång och genererar en patch med ett villkorligt uttryck som utgång. Testsviten måste innehålla godkända testfall för att modellera programmets förväntade beteende och minst ett feltestfall som avslöjar felet som ska repareras. NOPOL-processen består av tre huvudfaser. För det första använder NOPOL änglafixering för att identifiera förväntade värden av ett tillstånd under testets utförande. För det andra används runtime-spårning för att samla in variabler och deras faktiska värden, inklusive primitiva datatyper och objektorienterade funktioner (t.ex. nullness-kontroller), för att fungera som byggstenar för patchgenerering. För det tredje kodar NOPOL dessa insamlade data till en instans av ett tillfredsställande Modulo Theory (SMT) problem; sedan en genomförbar lösning till SMT instansen översättas tillbaka till en kod patch. Vi utvärderar NOPOL på 22 verkliga fel (16 fel med buggiga IF-villkor och 6 fel med saknade förutsättningar) på två stora öppna källkodsprojekt, nämligen Apache Commons Math och Apache Commons Lang. Empirisk analys av dessa fel visar att vårt tillvägagångssätt effektivt kan rätta fel med buggiga IF-tillstånd och saknade förutsättningar. Vi illustrerar NOPOL:s möjligheter och begränsningar med hjälp av fallstudier av verkliga felrättelser.
Xuan m.fl. REF föreslog NOPOL, en metod för automatisk reparation av buggy villkorliga uttalanden, som tog en buggy program samt en test svit som ingång och genererade en patch med ett villkorligt uttryck som utgång.
Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs
{'venue': 'ArXiv', 'journal': 'ArXiv', 'mag_field_of_study': ['Computer Science']}