Abstract:Technical debt is a metaphor that refers to sacrifice the long-term code quality to satisfy the short-term goals. In particular, the technical debts introduced intentionally by developers are called self-admitted technical debt (SATD), which usually exist in software projects in the form of code comments. The SATDs bring great challenges to quality and robustness of software. In order to facilitate finding and paying back them as soon as possible for assuring software quality, in recent years, great progress has been made in the field of investigating the characteristics of SATD and proposing the identification models for SATD. Nevertheless, it is still challenging to apply them in practice. This paper offers a systematic survey of recent research achievements in SATD. First, the research problems are introduced in this field. Then, the current main research work is described in detail. After that, related techniques are discussed. Finally, the opportunities and challenges in this field are summarized and the research directions in the future are outlined.