Automating TODO-missed Methods Detection and Patching
CoRR(2024)
摘要
TODO comments are widely used by developers to remind themselves or others
about incomplete tasks. In other words, TODO comments are usually associated
with temporary or suboptimal solutions. In practice, all the equivalent
suboptimal implementations should be updated (e.g., adding TODOs)
simultaneously. However, due to various reasons (e.g., time constraints or
carelessness), developers may forget or even are unaware of adding TODO
comments to all necessary places, which results in the TODO-missed methods.
These "hidden" suboptimal implementations in TODO-missed methods may hurt the
software quality and maintainability in the long-term. Therefore, in this
paper, we propose the novel task of TODO-missed methods detection and patching,
and develop a novel model, namely TDPatcher (TODO-comment Patcher), to
automatically patch TODO comments to the TODO-missed methods in software
projects. Our model has two main stages: offline learning and online inference.
During the offline learning stage, TDPatcher employs GraphCodeBERT and
contrastive learning for encoding the TODO comment (natural language) and its
suboptimal implementation (code fragment) into vector representations. For the
online inference stage, we can identify the TODO-missed methods and further
determine their patching position by leveraging the offline trained model. We
built our dataset by collecting TODO-introduced methods from the top-10,000
Python GitHub repositories and evaluated TDPatcher on them. Extensive
experimental results show the promising performance of our model over a set of
benchmarks. We further conduct an in-the-wild evaluation which successfully
detects 26 TODO-missed methods from 50 GitHub repositories.
更多查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要