[论文解读] MSR Mining Challenge: The SmartSHARK Repository Mining Data
本论文提出 SmartSHARK 代码库挖掘数据集,这是一个全面、多源的软件演化数据集合,涵盖 Git、Jira、GitHub、Travis CI 和邮件列表数据,经人工验证标签和自动化链接增强。该数据集支持对软件开发进行纵向、跨源分析,包括缺陷预测、技术债务和开发者行为研究,通过集中式数据库实现完全可复现性。
The SmartSHARK repository mining data is a collection of rich and detailed information about the evolution of software projects. The data is unique in its diversity and contains detailed information about each change, issue tracking data, continuous integration data, as well as pull request and code review data. Moreover, the data does not contain only raw data scraped from repositories, but also annotations in form of labels determined through a combination of manual analysis and heuristics, as well as links between the different parts of the data set. The SmartSHARK data set provides a rich source of data that enables us to explore research questions that require data from different sources and/or longitudinal data over time.
研究动机与目标
- 创建一个可扩展、统一且可复现的软件代码库挖掘数据集,整合来自版本控制、缺陷跟踪、CI 和代码审查等多样化来源的数据。
- 通过将多源数据整合到单一可扩展的数据库中,解决软件工程研究中孤立且不可复现数据源的局限性。
- 通过提供人工验证的标签(例如缺陷修复、重构)和提交、缺陷与拉取请求之间的自动化链接,支持纵向和跨源研究。
- 通过在单一、版本化的数据库中存储原始数据、衍生指标和溯源信息,实现研究的可复现性。
- 通过包含静态代码度量、重构行为和细粒度变更注释,扩展代码库挖掘数据的实用性,以提升对软件演化分析的精度。
提出的方法
- SmartSHARK 平台使用专用工具(如 vcsSHARK、prSHARK、travisSHARK)从公开源收集原始数据:Git 代码库、Jira、GitHub、Travis CI 和邮件列表。
- 针对每个提交执行静态代码分析,使用 PMD 和 RefactoringMiner 等工具提取度量指标、代码克隆检测结果和重构类型。
- 通过 linkSHARK 工具自动发现链接,利用文本和结构相似性将提交与缺陷及拉取请求关联。
- 使用 visualSHARK 进行人工验证,以确认提交-缺陷链接、缺陷类型及行级缺陷修复变更,提升标签质量。
- labelSHARK 和 inducingSHARK 工具利用验证后数据推断标签(如缺陷修复变更)和可能的诱导性变更,提升下游分析效果。
- 所有数据均存储于具有统一模式的集中式、版本化数据库中,支持可复现分析,并可未来扩展至新项目和数据源。
实验结果
研究问题
- RQ1代码度量变化与静态分析警告,与缺陷密度及即时缺陷预测之间存在何种相关性?
- RQ2用于识别缺陷修复提交的启发式方法(如 SZZ)与人工验证标签的一致性如何?
- RQ3重构行为、代码注释与技术债务指标(如 TODO 项或文档变更)之间存在何种关系?
- RQ4邮件列表讨论与缺陷跟踪系统讨论在主题、时间分布和解决模式方面有何异同?
- RQ5拉取请求审查能否有效检测发布后的缺陷?其失效的主要因素是什么?
主要发现
- SmartSHARK 数据集包含 23 个项目的代码,其缺陷修复变更具有人工验证的行级标签,支持缺陷预测模型的高保真评估。
- 人工验证发现,38 个项目的缺陷类型标签(如缺陷、功能增强)可用于训练和评估缺陷类型预测模型。
- 数据集总大小为 2.1 GB(压缩后,版本 2.1),可通过公开 URL 完全访问;同时提供不含代码实体状态的小型版本,适用于性能敏感场景。
- 数据集包含对每个提交的重构行为自动检测(通过 RefDiff 和 RefactoringMiner)、变更类型识别(通过 ChangeDistiller)以及静态分析警告(PMD)结果。
- Travis CI 的构建日志和构建状态与提交关联,支持对构建可靠性及失败模式的时序分析。
- 数据集支持使用隐马尔可夫模型(HMM)对开发者贡献行为进行建模,相关数据已可供此类纵向研究使用。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。