Automating change-level self-admitted technical debt determination

Meng Yan, Xin Xia, Emad Shihab, David Lo, Jianwei Yin, Xiaohu Yang

Research output: Contribution to journalArticleResearchpeer-review

11 Citations (Scopus)


Self-Admitted Technical Debt (SATD) refers to technical debt that is introduced intentionally. Previous studies that identify SATD at the file-level in isolation cannot describe the TD context related to multiple files. Therefore, it is more beneficial to identify the SATD once a change is being made. We refer to this type of TD identification as “Change-level SATD Determination”, and identifying SATD at the change-level can help to manage and control TD by understanding the TD context through tracing the introducing changes. In this paper, we propose a change-level SATD Determination mode by extracting 25 features from software changes that are divided into three dimensions, namely diffusion, history and message, respectively. To evaluate the effectiveness of our proposed model, we perform an empirical study on 7 open source projects containing a total of 100,011 software changes. The experimental results show that our model achieves a promising and better performance than four baselines in terms of AUC and cost-effectiveness. On average across the 7 experimental projects, our model achieves AUC of 0.82, cost-effectiveness of 0.80, which is a significant improvement over the comparison baselines used. In addition, we found that “Diffusion” is the most discriminative dimension for determining TD-introducing changes

Original languageEnglish
Pages (from-to)1211-1229
Number of pages19
JournalIEEE Transactions on Software Engineering
Issue number12
Publication statusPublished - 1 Dec 2019


  • Change-level Determination
  • Self-admitted Technical Debt
  • Software Change
  • Technical Debt

Cite this