Abstract
AbstractSoftware refactoring is a behavior-preserving activity to improve the source code quality without changing its external behavior. Unfortunately, it is often a manual and error-prone task that may induce regressions in the source code. Researchers have provided initial compelling evidence of the relation between refactoring and defects, yet little is known about how much it may impact software security. This paper bridges this knowledge gap by presenting a large-scale empirical investigation into the effects of refactoring on the security profile of applications. We conduct a three-level mining software repository study to establish the impact of 14 refactoring types on (i) security-related metrics, (ii) security technical debt, and (iii) the introduction of known vulnerabilities. The study covers 39 projects and a total amount of 7,708 refactoring commits. The key results show that refactoring has a limited connection to security. However, Inline Method and Extract Interface statistically contribute to improving some security aspects connected to encapsulating security-critical code components. Extract Superclass and Pull Up Attribute refactoring are commonly found in commits violating specific security best practices for writing secure code. Finally, Extract Superclass and Extract & Move Method refactoring tend to occur more often in commits contributing to the introduction of vulnerabilities. We conclude by distilling lessons learned and recommendations for researchers and practitioners.
Funder
Schweizerischer Nationalfonds zur Förderung der Wissenschaftlichen Forschung
Natural Sciences and Engineering Research Council of Canada
Ministero dell’Istruzione, dell’Università e della Ricerca
Università degli Studi di Salerno
Publisher
Springer Science and Business Media LLC
Cited by
3 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Extending Refactoring Detection to Kotlin: A Dataset and Comparative Study;2024 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER);2024-03-12
2. Automating Test-Specific Refactoring Mining: A Mixed-Method Investigation;2023 IEEE 23rd International Working Conference on Source Code Analysis and Manipulation (SCAM);2023-10-02
3. Rubbing salt in the wound? A large-scale investigation into the effects of refactoring on security;Empirical Software Engineering;2023-05-24