Abstract-Background: Under årens lopp har APR (Automated Program Repair) fått mycket uppmärksamhet från både akademi och industri eftersom det kan minska kostnaderna för att fixa buggar. Men hur man ska bedöma lappen korrekthet återstår att vara en öppen utmaning. Två allmänt antagna sätt att hantera denna utmaning, inklusive manuell kontroll och validering med hjälp av automatiserade genererade tester, är partiska (dvs. lider av subjektivitet respektive låg precision). Syfte: För att ta itu med denna oro föreslår vi att genomföra en empirisk studie för att förstå de rätta patchar som genereras av befintliga toppmoderna APR-tekniker, som syftar till att ge riktlinjer för framtida bedömning av patchar. Metod: För detta ändamål presenterar vi först en Literature Review (LR) på de rapporterade korrekta patchar som genereras av nya tekniker på Defects4J-riktmärket och samla 177 korrekta patchar efter en process av sundhetskontroll. Vi undersöker hur dessa maskingenererade rätt patchar uppnår semantisk ekvivalens, men syntaktisk skillnad jämfört med utvecklare som tillhandahålls, hur dessa patchar distribueras i olika projekt och APR-tekniker, och hur egenskaperna hos ett fel påverkar patchar som genereras för det. Resultat: Våra huvudsakliga resultat inkluderar: 1) vi behöver inte rätta buggar exakt som hur utvecklare gör eftersom vi observerar att 25,4 % (45/177) av de rätta patchar som genereras av APR-tekniker är syntaktiskt olika från utvecklare som tillhandahålls; 2) distributionen av maskingenererade korrekta patchar skiljer sig från de aspekter av Defects4J-projekt och APR-tekniker; och 3) APR-tekniker tenderar att generera patchar som skiljer sig från dem av utvecklare för buggar med stora patchstorlekar. Slutsats: Vår studie verifierar inte bara slutsatserna från tidigare studier utan belyser också konsekvenserna för framtida studier för att bedöma lappens korrekthet.
Wang m.fl. REF jämförde skillnaden mellan 177 korrekta programfixar för Defects4J fel som genereras av APR-tekniker och de programfixar som skrivs av utvecklare.
How Different Is It Between Machine-Generated and Developer-Provided Patches? : An Empirical Study on the Correct Patches Generated by Automated Program Repair Techniques
{'venue': '2019 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM)', 'journal': '2019 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM)', 'mag_field_of_study': ['Computer Science']}