An Empirical Study of Refactoring Engine Bugs

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Wang, Haibo, Xu, Zhuolin, Zhang, Huaien, Tsantalis, Nikolaos, Tan, Shin Hwei
Formato: Preprint
Publicado: 2024
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866910616744099840
author Wang, Haibo
Xu, Zhuolin
Zhang, Huaien
Tsantalis, Nikolaos
Tan, Shin Hwei
author_facet Wang, Haibo
Xu, Zhuolin
Zhang, Huaien
Tsantalis, Nikolaos
Tan, Shin Hwei
contents Refactoring is a critical process in software development, aiming at improving the internal structure of code while preserving its external behavior. Refactoring engines are integral components of modern Integrated Development Environments (IDEs) and can automate or semi-automate this process to enhance code readability, reduce complexity, and improve the maintainability of software products. Like traditional software systems, refactoring engines can generate incorrect refactored programs, resulting in unexpected behaviors or even crashes. In this paper, we present the first systematic study of refactoring engine bugs by analyzing bugs arising in three popular refactoring engines (i.e., Eclipse, IntelliJ IDEA, and Netbeans). We analyzed these bugs according to their refactoring types, symptoms, root causes, and triggering conditions. We obtained 12 findings and provided a series of valuable guidelines for future work on refactoring bug detection and debugging. Furthermore, our transferability study revealed 130 new bugs in the latest version of those refactoring engines. Among the 21 bugs we submitted, 10 bugs are confirmed by their developers, and seven of them have already been fixed.
format Preprint
id arxiv_https___arxiv_org_abs_2409_14610
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle An Empirical Study of Refactoring Engine Bugs
Wang, Haibo
Xu, Zhuolin
Zhang, Huaien
Tsantalis, Nikolaos
Tan, Shin Hwei
Software Engineering
Refactoring is a critical process in software development, aiming at improving the internal structure of code while preserving its external behavior. Refactoring engines are integral components of modern Integrated Development Environments (IDEs) and can automate or semi-automate this process to enhance code readability, reduce complexity, and improve the maintainability of software products. Like traditional software systems, refactoring engines can generate incorrect refactored programs, resulting in unexpected behaviors or even crashes. In this paper, we present the first systematic study of refactoring engine bugs by analyzing bugs arising in three popular refactoring engines (i.e., Eclipse, IntelliJ IDEA, and Netbeans). We analyzed these bugs according to their refactoring types, symptoms, root causes, and triggering conditions. We obtained 12 findings and provided a series of valuable guidelines for future work on refactoring bug detection and debugging. Furthermore, our transferability study revealed 130 new bugs in the latest version of those refactoring engines. Among the 21 bugs we submitted, 10 bugs are confirmed by their developers, and seven of them have already been fixed.
title An Empirical Study of Refactoring Engine Bugs
topic Software Engineering
url https://arxiv.org/abs/2409.14610