How do Software Engineering Researchers Use GitHub? An Empirical Study of Artifacts & Impact
本文通过手工标注顶级软件工程会议论文中的 GitHub/Zenodo 链接并深入分析309个仓库,考察研究制品的维护、社区关注与学术影响力。
2024-04-05 cs.SE
A Survey on How Test Flakiness Affects Developers and What Support They Need To Address It
非确定性地通过和失败的测试用例,即所谓的非确定性测试,近年来已成为软件工程研究的一个热点领域。虽然这一研究重点已经得到了一些行业的热情认可,但以前的工作主要是通过挖掘软件存储库使用以代码为中心的方法来研究片状。然而,从软件仓库中提取的数据无法告诉我们开发人员如何看待漏洞:测试漏洞在开发人员的日常工作中有多普遍,它如何影响他们,最重要的是:他们希望我们研究人员做些什么?为了回答这些问题,我们调查了335名不同领域的专业软件开发人员和测试人员。调查对象确认,艾滋病毒检测是一个普遍而严重的问题,从而加强了正在进行的艾滋病毒检测研究。开发人员不太担心重新运行测试所导致的计算成本,而更多地担心对测试结果的信任丧失。因此,他们希望有IDE插件来检测测试代码,并对问题进行更好的可视化,特别是显示测试结果的仪表板;他们还希望有更多的培训和关于剥落的信息。这些重要方面需要研究人员和工具开发人员的关注。
2022-04-08 cs.SE
Anomalicious: Automated Detection of Anomalous and Potentially Malicious Commits on GitHub
安全性对于采用开源软件(OSS)至关重要,但目前很少有自动化解决方案可以帮助检测和防止恶意贡献感染开源存储库。在GitHub上,OSS的主要主机,存储库不仅包含代码,还包含大量与提交相关的上下文元数据-如果这些元数据可以用于自动识别恶意OSS贡献呢?在这项工作中,我们将展示如何仅使用提交日志和存储库元数据来自动检测异常和潜在的恶意提交。我们识别并评估了几个相关因素,这些因素可以从这些数据中自动计算出来,例如敏感文件的修改,异常值更改属性,或对提交作者缺乏信任。我们的工具Anomalicious自动计算这些因素,并使用基于规则的决策模型全面考虑它们。在对15个受恶意软件感染的存储库的数据集进行评估时,Anomalicious显示出令人鼓舞的结果,并识别出53.33%的恶意提交,而大多数存储库的提交标记率不到1%。此外,该工具在分析没有已知恶意提交的存储库时发现了其他与恶意提交无关的有趣异常。
2021-03-09 cs.SE
From Innovations to Prospects: What Is Hidden Behind Cryptocurrencies?
自2013年以来,比特币的巨大影响力推动了基于区块链的数字货币,特别是山寨币的快速发展。然而,大多数山寨币共享相似的源代码,导致对代码创新的担忧。在本文中,对现有的山寨币进行了实证研究,以深入了解与山寨币创新相关的各个方面。首先,我们构建了山寨币的数据集,包括源代码存储库,GitHub分叉关系和市值(cap)。然后,我们从源代码相似性的角度分析了山寨币的创新。结果表明,超过85%的山寨币仓库呈现出高度的代码相似性。其次,提出了一种时态聚类算法来挖掘各种山寨币之间的继承关系。构建了山寨币的家族谱系,发现山寨币呈现出与生物学相似的进化特征,如家族规模的幂律性、家族进化的多样性等。最后,研究了代码创新与市值的相关性。虽然我们无法根据代码相似性来预测山寨币的价格,但结果表明,具有较高创新性的山寨币反映了更好的市场前景。
2021-03-16 cs.SE
Methodological Harness in Agentic Software Engineering: An Empirical Study on Mining Software Repositories
Universidad Politécnica de Madrid(马德里理工大学)
本研究基于AIDev数据集中的5,435个GitHub仓库,实证验证了智能体软件工程中八机制方法论约束框架的可观察性,发现机制采用以孤立形式为主,集成系统罕见。
2026-09-29 cs.SE
What's in a GitHub Star? Understanding Repository Starring Practices in a Social Coding Platform
除了基于git的版本控制系统,GitHub还集成了几个社交编码功能。特别是,GitHub用户可以启动存储库,大概是为了表达对开源项目的兴趣或满意度。然而,作为一个项目的主角的真正和实际意义从来没有深入和有充分根据的实证调查的主题。因此,我们在本文中提供了一个完整的研究GitHub明星的含义,特点和动态增长。首先,通过对791名开发人员进行调查,我们报告说,四分之三的开发人员在使用或为GitHub项目做出贡献之前会考虑星级数量。然后,我们对排名前5,000位的GitHub存储库的特征进行了定量分析。我们提出了四种模式来描述恒星的增长,这是来自聚类后的时间序列代表的恒星数量的研究存储库,我们还揭示了115开发人员对这些增长模式的看法。最后,我们向开源项目经理提供了一系列建议(例如,关于社交媒体推广的重要性)以及GitHub用户和软件工程研究人员(例如,在GitHub明星选择项目时面临的风险)。
2018-11-19 cs.SE
Beyond the Prompt: Linking What Developers Ask, Do, and Understand with Coding Agents
Oregon State University, School of Electrical Engineering and Computer Science(俄勒冈州立大学电气与计算机工程学院)
本文提出“说、做、理解”工作流程,通过提示、屏幕活动和事后解释分析开发者与编程智能体的交互,并在十名开发者使用GitHub Copilot的研究中识别出四种人物画像,揭示了任务表现与理解之间的分歧。
2026-09-29 cs.SE
What Makes a Good TODO Comment?
本研究针对开源项目中大量低质量TODO注释的问题,调研了TODO注释质量的四个维度,提出高质量TODO识别标准,构建的深度学习方法可有效评估注释质量,助力提升开发效率与代码质量。
2025-03-19 cs.SE
What Developers Ask to ChatGPT in GitHub Pull Requests? an Exploratory Study
本研究通过手动评估GitHub已合并PR中的155个ChatGPT分享链接,归类出14种请求类型,发现代码审查、代码片段实现等请求常见,且代码生成类提示词交互次数多于文本审查类,填补了开发者与ChatGPT代码贡献交互理解的空白。
2025-08-23 cs.SE
Boidae: Your Personal Mining Platform
本文提出 Boidae,通过 Ansible 与 Docker 自动化部署用户可控的 Boa 实例,并支持从任意 Git 仓库及 GitHub、SourceForge 构建自定义挖掘数据集。
2024-01-20 cs.SE
Does the Tool Matter? Exploring Some Causes of Threats to Validity in Mining Software Repositories
本研究通过对比两种工具分析十个大型软件项目,发现即使简单指标也可能相差500%,差异源于细微技术细节,并总结成因以帮助避免常见陷阱,提示工具中心研究结论的效度受限。
2025-01-25 cs.SE
What Do Developers Ask About ML Libraries? A Large-scale Study Using Stack Overflow
现代软件系统越来越多地将机器学习(ML)作为一个不可分割的组成部分。然而,我们还不了解软件开发人员在学习ML库并在其系统中使用它们时所面临的困难。为此,本文报告了对3,243篇与十个ML库(即Tensorflow、Keras、scikit-learn、Weka、Caffe、Theano、MLlib、Torch、Mahout和H2O)相关的高评价问答帖子的详细(手动)检查,这些帖子位于Stack Overflow(一个流行的在线技术问答论坛)上。我们将这些问题分为ML管道的七个典型阶段,以了解库和阶段之间的相关性。然后,我们研究的问题,并进行统计分析,以探索四个研究目标的答案(找到最困难的阶段,了解问题的性质,图书馆的性质和研究是否随着时间的推移保持一致的困难)。我们的研究结果表明,迫切需要在这一领域的软件工程(SE)的研究。静态分析和动态分析基本上都不存在,并且迫切需要帮助开发人员更早地发现错误。虽然已经有一些关于调试的早期研究,但还需要做更多的工作。API误用很普遍,迫切需要改进API设计。最后,有点令人惊讶的是,在提供更高级别的抽象和需要理解训练模型的行为之间的拔河是普遍的。
2019-06-27 cs.SE
To What Extent do Deep Learning-based Code Recommenders Generate Predictions by Cloning Code from the Training Set?
深度学习(DL)模型已被广泛用于支持代码完成。这些模型一旦被适当地训练,就可以将不完整的代码组件(例如,GitHub Copilot是通过在数百万个开源存储库上训练DL模型而构建的代码推荐器的示例:这些存储库的源代码充当训练数据,允许模型学习“如何编程”。这种代码的使用通常受自由和开放源码软件(FOSS)许可证的约束,该许可证规定了许可代码可以重新分发或修改的条件。到目前为止,还不清楚在开源代码上训练的DL模型生成的代码应该被视为“新”还是“衍生”工作,可能会对许可证侵权产生影响。在这项工作中,我们进行了一项大规模的研究,调查DL模型在推荐代码完成时倾向于从其训练集中克隆代码的程度。这样的探索性研究可以帮助评估前面提到的潜在许可问题的严重程度:如果这些模型倾向于生成在训练集中看不到的新代码,那么许可问题就不太可能发生。否则,这些许可证的修订将促使人们规范这些模型生成的代码在商业环境中使用时应如何处理。我们的结果显示,最先进的基于DL的代码完成工具生成的预测中,约有10%到0.1%是训练集中实例的Type-1克隆,具体取决于预测代码的大小。长期预测不太可能被复制。
2022-04-14 cs.SE
Asking What Matters: Reward-Driven Clarification for Software Engineering Tasks
Language Technologies Institute, Carnegie Mellon University, Pittsburgh, USA(语言技术研究所,卡内基梅隆大学,匹兹堡,美国)
本文研究软件工程任务中有效澄清问题的方法,通过量化影响任务成功的信息类型和用户能提供的信息,提出基于Shapley属性和分布比较的多阶段强化学习奖励机制,训练出CLARITI模块,在未明确问题上表现优于GPT-5,生成更少问题。
2026-04-16 cs.AI cs.SE
What Slows Down FMware Development? An Empirical Study of Developer Challenges and Resolution Times
本研究首次对跨云平台和开源仓库的FMware开发进行大规模实证分析,揭示了教育等主要应用领域及内存管理等技术挑战,发现代码审查和提示模板设计等问题最耗时,为改进工具与工作流提供了可行见解。
2025-10-13 cs.SE
Chronicles of CI/CD: A Deep Dive into its Usage Over Time
本文通过分析 GitHub 仓库数据,深入探究了过去 12 年 CI/CD 技术的使用与演变,揭示了多技术并用和频繁切换现象,并为支持开发人员管理 CI/CD 流水线提出了未来研究方向。
2024-02-27 cs.SE
Assisted Specification of Code Using Search
我们描述了一个智能助手的基础上挖掘现有的软件存储库,以帮助开发人员交互式地创建可检查的规范的代码。最有用的是,我们在子系统级别应用它,即1000-10000行的代码块,可以独立或集成到现有应用程序中以提供额外的功能或能力。最终的规范包括应该编写什么的语法描述和应该做什么的语义规范,最初以测试用例的形式。所生成的规范被设计用于使用已经提出的各种技术(包括机器学习、代码搜索和程序合成)的自动代码生成。我们的研究目标是使这些技术能够有效地用于创建子系统,而不需要开发人员从头开始编写详细的规范。
2022-09-20 cs.SE
What is a Feature, Really? Toward a Unified Understanding Across SE Disciplines
针对软件工程不同学科中“特征”定义不一致导致的问题,本文提出基于开源软件仓库特征分支分析的实证方法,识别相关模式并提供改进项目管理的见解,为跨学科统一特征理解提供路线图。
2025-02-14 cs.SE
To What Extent Does Agent-generated Code Require Maintenance? An Empirical Study
National Institute of Technology, Nara College(奈良工业高等专门学校);Nara Institute of Science and Technology(奈良先端科学技术大学院大学)
研究通过分析AI生成与人工编写代码的维护情况,发现AI代码维护频率较低,主要修改类型为功能扩展,而人工代码则以修复bug为主,人类开发者主导了大部分维护工作。
2026-05-09 cs.SE
The OCEAN mailing list data set: Network analysis spanning mailing lists and code repositories
围绕开源项目开发的交流主要发生在软件存储库本身之外。从历史上看,大型社区通常使用一组邮件列表来讨论其项目的不同方面。多模式的工具使用,软件开发和通信发生在不同的渠道,复杂的开源项目作为一个社会技术系统的研究。在这里,我们合并并标准化了Python社区的邮件列表,从1995年到现在共有954,287条邮件。我们分享所有的抓取和清理代码,以方便复制这项工作,以及Golang(122,721条消息),Angular(20,041条消息)和Node.js(12,514条消息)社区的较小数据集。为了展示这些数据的有用性,我们专注于CPython存储库,并通过在邮件列表数据中识别33%的GitHub贡献者,将技术层(哪个GitHub帐户处理什么文件以及与谁合作)与社交层(来自唯一电子邮件地址的消息)合并。然后,我们探讨社会信息的效价和协作网络的结构之间的相关性。我们讨论了这些数据如何提供一个实验室,以测试理论,从标准的组织科学在大型开源项目。
2022-04-01 cs.CY cs.SE
An Exploratory Study of Agent Plans for Agentic AI Coding Tools in Open-Source Software
University of Bamberg(班贝格大学);Heidelberg University(海德堡大学);Singapore Management University(新加坡管理大学);King’s College London(伦敦国王学院)
本文通过筛选36710个GitHub仓库识别出85个Markdown智能体计划文件,研究其支持的软件工程工作类型与提供的执行指导,明确其是研究人-智能体工作流任务意图的丰富工件。
2026-08-07 cs.SE
Understanding What Software Engineers Are Working on -- The Work-Item Prediction Challenge
Facebook Inc.(脸书公司)
了解软件工程师(开发人员,事件响应者,生产工程师等)是一个具有挑战性的问题--特别是当考虑软件密集型组织中更复杂的软件工程工作流时:i)工程师依赖于大量(可能数百个)松散集成的工具; ii)工程师参与并发和相对长时间运行的工作流; ii)基础设施(例如日志记录)不完全知道工作项; iv)工程过程(例如,对于事件响应)没有明确建模。在本文中,我们解释了相应的“工作项预测挑战”的理由,代表性的场景,报告在Facebook的相关工作,讨论了一些经验教训,并回顾相关的工作,呼吁武装利用,推进,并结合技术,从程序理解,挖掘软件库,过程挖掘,和机器学习。
2020-04-13 cs.IR cs.LG cs.SE
On the Prevalence and Usage of Commit Signing on GitHub: A Longitudinal and Cross-Domain Study
本文对 GitHub 上提交签名的普及程度进行纵向跨领域实证分析,发现 60 个开源库中仅约 10% 的提交通过验证,并提出基于 Events API 的提交所有权识别方法以应对提交伪造问题。
2025-04-27 cs.CR cs.SE