中文

借助错误理解:通过分析误提交的日志

软件工程 2025-04-18 v2

摘要

开发者经常会在代码中插入临时的“print”或“log”指令,以帮助更好地理解运行时行为,通常是在代码未按预期工作时使用。尽管如此,这类监控指令(即“临时日志”)如此常用,却几乎没有现有文献研究开发者在如何使用它们方面的实践。由于这些临时日志通常仅存在于开发者的本地环境中,在提交代码到版本控制系统前就被删除,因此对其使用方式的了解仍严重不足。本文通过观察开发者偶尔忘记删除这些指令后才短时间内删除的现象来克服这一挑战。此外,我们进一步通过观看和分析直播编码视频来研究这些开发者的日志记录实践。通过这些实证方法,我们研究了开发者如何以及为何使用临时日志以更好地理解其代码及其执行。我们收集了来自 GitHub Archive 仓库中删除 548,880 条 JavaScript 临时日志的 27 GB 误提交数据,提供了关于临时日志实践的第一个大规模数据集和实证研究。我们的结果揭示了若干启发性发现,包括开发者在异步和回调函数中使用临时日志的特定倾向。我们的发现为寻求增强临时日志实践的研究者和工具开发者提供了实证依据和宝贵的数据集,并可能深化我们对开发者处理软件运行时行为的实践方式的理解。

关键词

引用

@article{arxiv.2501.09892,
  title  = {Learning from Mistakes: Understanding Ad-hoc Logs through Analyzing Accidental Commits},
  author = {Yi-Hung Chou and Yiyang Min and April Yi Wang and James A. Jones},
  journal= {arXiv preprint arXiv:2501.09892},
  year   = {2025}
}

备注

Accepted at MSR 2025