Skip to main content
QUICK REVIEW

[論文レビュー] Early Life Cycle Software Defect Prediction. Why? How?

N. C. Shrikanth, Suvodeep Majumder|arXiv (Cornell University)|Nov 26, 2020
Software Engineering Research参考文献 71被引用数 4
ひとこと要約

本論文は、データ量を抑えた早期ソフトウェアライフサイクル欠陥予測のアプローチを提案しており、プロジェクトの最初の150件のコミットと4か月間のデータのみで学習したモデルが、完全なプロジェクト履歴で学習したモデルと同等の性能を示すことを示している。主な発見は、長期間にわたるGitHubプロジェクトにおいて、96%の時間はさらなるデータ収集が不要であるということであり、ソフトウェアアナリティクス分野における一般的な「データが多いに越したことはない」という仮定に疑問を呈している。

ABSTRACT

Many researchers assume that, for software analytics, "more data is better." We write to show that, at least for learning defect predictors, this may not be true. To demonstrate this, we analyzed hundreds of popular GitHub projects. These projects ran for 84 months and contained 3,728 commits (median values). Across these projects, most of the defects occur very early in their life cycle. Hence, defect predictors learned from the first 150 commits and four months perform just as well as anything else. This means that, at least for the projects studied here, after the first few months, we need not continually update our defect prediction models. We hope these results inspire other researchers to adopt a "simplicity-first" approach to their work. Some domains require a complex and data-hungry analysis. But before assuming complexity, it is prudent to check the raw data looking for "short cuts" that can simplify the analysis.

研究の動機と目的

  • ソフトウェアアナリティクスにおける欠陥予測モデルの性能が常にデータが多いほど向上すると仮定することを挑戦すること。
  • 長期的なデータ収集を要せず、初期段階のデータのみで効果的な欠陥予測子を構築できるかどうかを調査すること。
  • データ集約型の手法が本当に必要なのか、それとも単純で初期データに依存するアプローチで十分なのかを評価すること。
  • 最小限のデータのみを用いて早期ライフサイクル欠陥予測を評価する再現可能な手法を提供すること。
  • データ収集が費用がかかりやすく、不安定な場合に特に、ソフトウェア工学研究における「シンプルさ最優先」のアプローチを促すこと。

提案手法

  • 本研究では、155の長期的かつ高スターのGitHubプロジェクト(中央値として84か月のライフサイクル、3,728件のコミット)を分析し、プロジェクトライフサイクル全体にわたる欠陥の分布を評価した。
  • 最初の150件のコミットと4か月間のデータで学習したモデルと、完全なプロジェクト履歴で学習したモデルを比較した。
  • 6つの分類学習アルゴリズム(ロジスティック回帰、近隣法、決定木、SVM、ランダムフォレスト、ナイーブベイズ)を用いて、さまざまな訓練データ窓でのモデル性能を評価した。
  • 7つの指標(再現率、PF、IFA、ブレアスコア、GM、D2H、AUC)を用いて評価したが、不均衡なデータにおける問題のため、適合率は除外した。
  • 変動性を考慮して、最初の150件のコミットからランダムに50件を選択するサンプリングポリシー「E」を採用した。
  • 初期データで学習したモデル(E)と最近のデータで学習したモデル(RR)を比較し、最近性が性能向上に寄与するかどうかを評価した。

実験結果

リサーチクエスチョン

  • RQ1プロジェクトの最初の4%(生涯のうち)のデータで学習した欠陥予測モデルは、完全なプロジェクト履歴で学習したモデルと同等の性能を示すか?
  • RQ2欠陥予測に寄与する追加のデータ収集が、ある時点で限界に達する(限界効用逓減)点があるか?
  • RQ3最近のデータで学習した「最近性ベース」のモデルは、初期データで学習したモデルを上回る性能を示すか?
  • RQ4「シンプルさ最優先」のアプローチにより、継続的なモデル再訓練の必要性を減らせるか?
  • RQ5初期データのみで、非自明で長期間にわたるソフトウェアプロジェクトにおいて、信頼性のある欠陥予測を実現できる程度はどの程度か?

主な発見

  • 欠陥は初期ライフサイクルに強く集中している:プロジェクトの96%の期間では、追加のデータ収集は効果的な欠陥予測に不要である。
  • 最初の150件のコミットと4か月間のデータで学習したモデルは、完全なプロジェクト履歴で学習したモデルと同等の性能を示しており、初期データが十分であることが示された。
  • 初期データで学習したモデルと最近のデータで学習したモデルとの間には顕著な性能差がなく、最近性が予測性能を向上させるという仮定に疑問を呈している。
  • 6つの異なる学習アルゴリズムを用いた初期ライフサイクル予測子の性能は安定的で、モデル選択に対して頑健であることが示された。
  • 結果から、データ集約型の手法が、長期間にわたる非自明なプロジェクトの欠陥予測において必ずしも必要ではないことが示唆され、初期データがすでに情報を持っている場合に特にそうである。
  • 本研究の結果は、最近の検証データに依存する先行研究に疑問を呈しており、そのようなデータがプロジェクトライフサイクルの情報のない領域にある可能性があるからである。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。