Bugs in the Shadows: Static Detection of Faulty Python Refactorings
By: Jonhnanthan Oliveira , Rohit Gheyi , Márcio Ribeiro and more
Potential Business Impact:
Finds mistakes when fixing computer code.
Python is a widely adopted programming language, valued for its simplicity and flexibility. However, its dynamic type system poses significant challenges for automated refactoring - an essential practice in software evolution aimed at improving internal code structure without changing external behavior. Understanding how type errors are introduced during refactoring is crucial, as such errors can compromise software reliability and reduce developer productivity. In this work, we propose a static analysis technique to detect type errors introduced by refactoring implementations for Python. We evaluated our technique on Rope refactoring implementations, applying them to open-source Python projects. Our analysis uncovered 29 bugs across four refactoring types from a total of 1,152 refactoring attempts. Several of these issues were also found in widely used IDEs such as PyCharm and PyDev. All reported bugs were submitted to the respective developers, and some of them were acknowledged and accepted. These results highlight the need to improve the robustness of current Python refactoring tools to ensure the correctness of automated code transformations and support reliable software maintenance.
Similar Papers
Precisely Detecting Python Type Errors via LLM-based Unit Test Generation
Software Engineering
Finds hidden bugs in computer code.
Evaluating the Effectiveness of Small Language Models in Detecting Refactoring Bugs
Software Engineering
Finds mistakes when computer code is changed.
Combining Type Inference and Automated Unit Test Generation for Python
Software Engineering
Helps programs find errors by watching them run.