JavaScript Ad-hoc Logs Dataset
收藏arXiv2025-01-17 更新2025-02-25 收录
下载链接:
https://figshare.com/s/6faddb2137f73d2c1945
下载链接
链接失效反馈官方服务:
资源简介:
该数据集由加州大学欧文分校和苏黎世联邦理工学院的研究团队创建,旨在研究开发者在调试过程中使用的临时日志(ad-hoc logs)。数据集包含从GitHub Archive和Google Cloud BigQuery中收集的548,880条被删除的JavaScript日志,总计27GB。这些日志是开发者在调试过程中插入的,通常会在提交代码前删除。研究者通过分析这些被误提交的日志,首次大规模研究了开发者的临时日志使用行为。数据集的应用领域包括软件工程、调试工具开发以及程序运行时行为的理解,旨在帮助研究者更好地理解开发者在调试过程中的行为模式,并为改进调试工具提供数据支持。
提供机构:
加州大学欧文分校, 苏黎世联邦理工学院
创建时间:
2025-01-17
搜集汇总
数据集介绍

构建方式
该数据集的构建方式主要依赖于从GitHub Archive和Google BigQuery中挖掘开发者因疏忽而提交的包含临时日志的代码,并通过分析这些日志的分布、内容和使用场景来理解开发者如何使用它们。此外,研究还结合了开发者直播编码视频,以提供对开发者使用临时日志行为的定性分析。通过这些方法,研究人员收集了27 GB的JavaScript提交数据,其中包含了548,880个被删除的临时日志,并提供了首个大规模的数据集和实证研究。
特点
该数据集的特点在于它首次提供了大规模的实证数据,用于研究开发者如何在实际开发过程中使用临时日志。数据集揭示了开发者使用临时日志的多个方面,包括它们在代码中的位置、包含的信息、使用的原因以及如何操作这些日志。此外,数据集还提供了对开发者直播编码视频的定性分析,以加深对开发者使用临时日志行为和动机的理解。
使用方法
该数据集的使用方法包括对收集到的临时日志进行预处理和分析,以回答研究问题。这包括过滤和分析日志消息、收集和比较不同类型函数的分布、分析日志的格式和内容、以及从直播视频数据中提取定性信息。通过这些方法,研究人员可以深入理解开发者如何在实际开发过程中使用临时日志,并发现一些有趣的现象和趋势。此外,研究人员还可以使用这些数据来开发工具,以帮助开发者更好地使用临时日志,并提高软件开发的效率和质量。
背景与挑战
背景概述
在软件开发过程中,开发者经常在代码中插入临时的“打印”或“日志”指令,以帮助理解程序的运行时行为,尤其是在代码行为不符合预期时。尽管此类监控指令,即“临时日志”,被开发者广泛使用,但现有文献中几乎没有研究开发者如何使用它们。这种知识的匮乏可能是由于这些短暂的日志通常只存在于开发者的本地环境中,并在他们将代码提交到版本控制系统之前被删除。在本文中,我们通过观察开发者偶尔会忘记在提交之前删除这些指令,然后稍后将其删除,从而克服了这一挑战。此外,我们还通过观察和分析直播的编码视频,进一步研究开发者的日志记录实践。通过这些实证方法,我们研究了开发者在哪里、如何以及为什么使用临时日志来更好地理解他们的代码及其执行。我们从GitHub Archive存储库中收集了27 GB的JavaScript提交数据,其中包含了548,880条被删除的临时日志,从而提供了第一个关于临时日志实践的大规模数据集和实证研究。我们的研究结果揭示了几个有启发性的发现,包括开发者倾向于在异步和回调函数中使用临时日志。我们的发现为研究人员和工具开发者提供了实证证据和宝贵的数据集,以增强临时日志实践,并可能加深我们对开发者如何理解软件运行时行为的理解。
当前挑战
JavaScript Ad-hoc Logs数据集面临的挑战包括:1)所解决的领域问题的挑战:尽管临时日志在软件开发中起着至关重要的作用,但它们通常是短暂的,并且只在开发者的本地环境中存在,这使得研究它们变得困难。2)构建过程中所遇到的挑战:由于开发者偶尔会忘记在提交之前删除这些日志,我们需要从GitHub Archive存储库中挖掘这些数据。此外,我们还需要通过分析直播的编码视频来获取更深入的定性洞察,以更好地理解开发者的日志记录实践。
常用场景
经典使用场景
在软件开发过程中,开发者经常在代码中插入临时的“print”或“log”指令,以帮助更好地理解运行时行为。尽管这种监控指令,即“临时日志”,被开发者广泛使用,但关于开发者如何使用它们的现有文献却很少。这项工作通过观察开发者偶尔在提交前忘记删除这些指令,然后很快又将其删除,从而克服了这个挑战。此外,我们还通过观察和分析实时编码视频来进一步研究开发者的日志记录实践。通过这些实证方法,我们研究了开发者在何处、如何以及为何使用临时日志来更好地理解他们的代码及其执行情况。我们从GitHub Archive存储库中收集了27 GB的JavaScript代码,这些代码中移除了548,880个临时日志,提供了第一个大规模数据集和关于临时日志记录实践的实证研究。我们的研究结果揭示了几个令人启发的发现,包括开发者倾向于在异步和回调函数中使用临时日志。
实际应用
该数据集在实际应用场景中,可以帮助开发者和工具开发者更好地理解开发者如何使用临时日志来理解代码和其执行情况。通过研究开发者放置临时日志的位置、包含的信息、使用的原因以及如何操作这些日志来实现目标,我们可以为开发者提供更有效的工具和最佳实践,帮助他们更好地理解代码和软件的运行时行为。此外,该数据集还可以用于教育目的,帮助计算机科学教育者和软件维护人员观察学生的日志记录行为,从而近似程序复杂性,并决定何时进行重构或调整难度级别。
衍生相关工作
该数据集衍生了关于临时日志记录实践的相关经典工作。通过对意外提交中移除的临时日志的分析,我们可以了解开发者如何使用这些日志来理解代码和软件的运行时行为。此外,通过对直播编码视频的分析,我们可以更深入地了解开发者的日志记录行为,从而为开发者和工具开发者提供更有效的工具和最佳实践。这些工作为未来的研究提供了新的可能性,并有助于我们更好地理解开发者如何使用临时日志来理解代码和软件的运行时行为。
以上内容由遇见数据集搜集并总结生成



