RAT: A Refactoring-Aware Tool for Tracking Code History

Feifei Niu,Junqian Shao,Chaofan Xu,Christoph Mayr-Dorn,Wesley K. G. Assunção,Liguo Huang,Chuanyi Li,Jidong Ge,Bin Luo,Alexander Egyed
DOI: https://doi.org/10.1145/3639478.3640047
2024-01-01
Abstract:History of code elements is essential for software maintenance tasks. However, code refactoring is one of the main causes that makes obtaining a consistent view on code evolution difficult as renaming or moving source code elements break such history. To this end, this paper presents RAT, a refactoring-aware tool for keeping track of code elements evolution across time, not just in terms of revisions but also in terms of refactoring. This is the first tool that enables fine-grained code element traceability of the whole repository. Empirical evaluation of leveraging our tool in three bug localization techniques relying on code history shows significant improvement in localization accuracy. Based on our findings, we believe that many of the state-of-the-art approaches using past source code data would benefit from our tool. Demo Tool: https://github.com/feifeiniu-se/RAT_Demo Demo Video: https://youtu.be/VI_xwUaIPp4
What problem does this paper attempt to address?