  TODO comments are very widely used by software developers to describe their
pending tasks during software development. However, after performing the task
developers sometimes neglect or simply forget to remove the TODO comment,
resulting in obsolete TODO comments. These obsolete TODO comments can confuse
development teams and may cause the introduction of bugs in the future,
decreasing the software's quality and maintainability. In this work, we propose
a novel model, named TDCleaner (TODO comment Cleaner), to identify obsolete
TODO comments in software projects. TDCleaner can assist developers in
just-in-time checking of TODO comments status and avoid leaving obsolete TODO
comments. Our approach has two main stages: offline learning and online
prediction. During offline learning, we first automatically establish
<code_change, todo_comment, commit_msg> training samples and leverage three
neural encoders to capture the semantic features of TODO comment, code change
and commit message respectively. TDCleaner then automatically learns the
correlations and interactions between different encoders to estimate the final
status of the TODO comment. For online prediction, we check a TODO comment's
status by leveraging the offline trained model to judge the TODO comment's
likelihood of being obsolete. We built our dataset by collecting TODO comments
from the top-10,000 Python and Java Github repositories and evaluated TDCleaner
on them. Extensive experimental results show the promising performance of our
model over a set of benchmarks. We also performed an in-the-wild evaluation
with real-world software projects, we reported 18 obsolete TODO comments
identified by TDCleaner to Github developers and 9 of them have already been
confirmed and removed by the developers, demonstrating the practical usage of
our approach.
