Skip to main content
QUICK REVIEW

[論文レビュー] MSR Mining Challenge: The SmartSHARK Repository Mining Data

Alexander Trautsch, Fabian Trautsch|arXiv (Cornell University)|Feb 23, 2021
Software Engineering Research参考文献 20被引用数 6
ひとこと要約

本論文では、Git、Jira、GitHub、Travis CI、メーリングリストからのソフトウェア進化データを統合した包括的でマルチソースのリポジトリマイニングデータセット、SmartSHARKを提示する。このデータセットは、手動で検証されたラベルと自動リンクにより強化されており、バグ予測、テクニカルデット、開発者行動といった、長期的かつマルチソース分析を可能にする。中央集権的なデータベースにより、完全な再現性が保証される。

ABSTRACT

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プラットフォームは、Gitリポジトリ、Jira、GitHub、Travis CI、メーリングリストといった公開ソースから生データを収集する。専用ツール(例:vcsSHARK、prSHARK、travisSHARK)を用いて行う。
  • 各コミットごとに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が作成し、人間の編集者が確認しました。