Refaktorings är beteendebevarande program transformationer som förbättrar utformningen av ett program. Refaktormotorer är verktyg som automatiserar applikationen av refaktorings: först väljer användaren en refaktoring att tillämpa, sedan kontrollerar motorn om omvandlingen är säker, och i så fall omvandlar programmet. Refaktormotorer är en viktig komponent i moderna IDE, och programmerare förlitar sig på dem för att utföra refaktors. En bugg i refaktormotorn kan få allvarliga konsekvenser eftersom den felaktigt kan ändra stora kroppar av källkod. Vi presenterar en teknik för automatiserad provning av refaktormotorer. Testingångar för refaktormotorer är program. Kärnan i vår teknik är en ram för iterativ generering av strukturellt komplexa testingångar. Vi snabbar upp ramverket för att generera abstrakta syntaxträd som representerar Javaprogram. Vi skapar också flera typer av orakel för att automatiskt kontrollera att refaktormotorn omvandlade det genererade programmet korrekt. Vi har tillämpat vår teknik för att testa Eclipse och NetBeans, två populära open-source IDEs för Java, och vi har exponerat 21 nya buggar i Eclipse och 24 nya buggar i NetBeans.
Daniel och Al. hittade dussintals buggar i refaktoring verktyg i populära IDE:er REF.
Automated testing of refactoring engines
{'venue': "ESEC-FSE '07", 'journal': None, 'mag_field_of_study': ['Computer Science']}