Challenge proposal: verification of refactorings

Max Schäfer, Torbjörn Ekman, Oege de Moor. Challenge proposal: verification of refactorings. In Thorsten Altenkirch, Todd D. Millstein, editors, Proceedings of the 3rd ACM Workshop Programming Languages meets Program Verification, PLPV 2009, Savannah, GA, USA, January 20, 2009. pages 67-72, ACM, 2009. [doi]

Abstract

Automated refactoring tools are an essential part of a software developer’s toolbox. They are most useful for gradually improving large existing code bases and it is essential that they work reliably, since even a simple refactoring may affect many different parts of a program, and the programmer should not have to inspect every individual change to ensure that the transformation went as expected. Even extensively tested industrial-strength refactoring engines, however, are fraught with many bugs that lead to incorrect, non-behaviour preserving transformations. We argue that software refactoring tools are a prime candidate for mechanical verification, offering significant challenges but also the prospect of tangible benefits for real-world software development.