The Technical Debt Dataset
arXiv:1908.00827 · doi:10.1145/3345629.3345630
Abstract
Technical Debt analysis is increasing in popularity as nowadays researchers and industry are adopting various tools for static code analysis to evaluate the quality of their code. Despite this, empirical studies on software projects are expensive because of the time needed to analyze the projects. In addition, the results are difficult to compare as studies commonly consider different projects. In this work, we propose the Technical Debt Dataset, a curated set of project measurement data from 33 Java projects from the Apache Software Foundation. In the Technical Debt Dataset, we analyzed all commits from separately defined time frames with SonarQube to collect Technical Debt information and with Ptidej to detect code smells. Moreover, we extracted all available commit information from the git logs, the refactoring applied with Refactoring Miner, and fault information reported in the issue trackers (Jira). Using this information, we executed the SZZ algorithm to identify the fault-inducing and -fixing commits. We analyzed 78K commits from the selected 33 projects, detecting 1.8M SonarQube issues, 38K code smells, 28K faults and 57K refactorings. The project analysis took more than 200 days. In this paper, we describe the data retrieval pipeline together with the tools used for the analysis. The dataset is made available through CSV files and an SQLite database to facilitate queries on the data. The Technical Debt Dataset aims to open up diverse opportunities for Technical Debt research, enabling researchers to compare results on common projects.
References in corpus (2)
Cited by in corpus (6)
- Some SonarQube Issues have a Significant but SmallEffect on Faults and Changes. A large-scale empirical study
- A systematic literature review on the code smells datasets and validation mechanisms
- Automated Detection of Algorithm Debt in Deep Learning Frameworks: An Empirical Study
- The Type to Take Out a Loan? A Study of Developer Personality and Technical Debt
- The Risk-Taking Software Engineer: A Framed Portrait
- Different Debt: An Addition to the Technical Debt Dataset and a Demonstration Using Developer Personality