A First Look at the Self-Admitted Technical Debt in Test Code: Taxonomy and Detection
By: Shahidul Islam , Md Nahidul Islam Opu , Shaowei Wang and more
Potential Business Impact:
Finds hidden problems in computer tests.
Self-admitted technical debt (SATD) refers to comments in which developers explicitly acknowledge code issues, workarounds, or suboptimal solutions. SATD is known to significantly increase software maintenance effort. While extensive research has examined SATD in source code, its presence and impact in test code have received no focused attention, leaving a significant gap in our understanding of how SATD manifests in testing contexts. This study, the first of its kind, investigates SATD in test code by manually analyzing 50,000 comments randomly sampled from 1.6 million comments across 1,000 open-source Java projects. From this sample, after manual analysis and filtering, we identified 615 SATD comments and classified them into 15 distinct categories, building a taxonomy of test code SATD. To investigate whether test code SATD can be detected automatically, we evaluated existing SATD detection tools, as well as both open-source and proprietary LLMs. Among the existing tools, MAT performed the best, albeit with moderate recall. To our surprise, both open-source and proprietary LLMs exhibited poor detection accuracy, primarily due to low precision. These results indicate that neither existing approaches nor current LLMs can reliably detect SATD in test code. Overall, this work provides the first large-scale analysis of SATD in test code, a nuanced understanding of its types, and the limitations of current SATD detection methods. Our findings lay the groundwork for future research on test code-specific SATD.
Similar Papers
Understanding Self-Admitted Technical Debt in Test Code: An Empirical Study
Software Engineering
Helps fix computer code faster and better.
Hidden in Plain Sight: Where Developers Confess Self-Admitted Technical Debt
Software Engineering
Finds where programmers hide code problems.
Descriptor: C++ Self-Admitted Technical Debt Dataset (CppSATD)
Software Engineering
Helps programmers find hidden code problems faster.