コンテンツにスキップ

2025年8月30日

今週の活動

  • ODC属性とバグ予測の関係の調査
    • Google Scholarで検索したが厳密にヒットする論文がほとんどなかった
    • 既存研究はあくまで分類に特化しており、分類の活用法については検証されていない
    • 前回紹介した研究の後続研究を見つけた
      • https://www.sciencedirect.com/science/article/pii/S0167739X19308283
      • 複数の機械学習アルゴリズムを使用し、ODCの6つの属性の自動分類性能を評価
      • Defect TypeやQualifierはコード変更の内容に依存しているため、バグレポートのテキストのみで分類するのは難しいことが判明
ODC属性 最高精度アルゴリズム 精度 (%) 再現率 (%) 適合率 (%)
Activity RNN 47.6±3.5 47.6±3.5 47.8±3.4
Trigger - Code Inspection RNN 40.3±7.0 40.3±7.0 42.1±8.2
Trigger - Function Test RNN 37.4±12.8 37.4±12.8 38.0±15.7
Trigger - System Test RNN 41.4±12.7 41.4±12.7 40.7±16.0
Trigger - Unit Test Linear SVM 57.5±12.3 57.5±12.3 58.5±14.7
Impact RNN 33.3±7.5 33.3±7.5 34.4±9.7
Target Linear SVM 85.6±5.1 85.6±5.1 86.0±5.1
Defect Type Linear SVM 34.7±5.1 34.7±5.1 34.8±5.5
Qualifier RBF SVM 39.7±6.8 39.7±6.8 40.3±7.2

得られた成果

  • ODC属性には形式が明確で分類しやすいものとそうでないものがある
    • Target, Age, Sourceはメタデータから自動的に分類できる
    • それ以外の属性は分類精度が低く、あまり実用的ではない
  • ODCはバグ予測との関連性が低い
    • ODCは手動による品質管理を目的として構築された分類手法
    • 実際にこれまでの研究によって、客観的な分類が難しいことが示唆
    • 主観的な要素が多い分類手法を、客観的な情報であるバグ予測に活用することは現実的ではない
  • ODC属性のうち、Target, Age, Sourceを活用する代わりにGitのメタデータを直接活用し、開発プロセスに関する指標を定量化した方がより客観的で説得力が高い
    • 例: レビュー時間、担当した開発者、機能ごとの変更の大きさ、コメント数、テストやドキュメントの有無

直面した課題

  • Gitのメタデータから収集できるデータを整理する必要がある

来週の計画

  • 開発プロセスの改善に役立つ指標を調査
  • Gitから得られる開発プロセス関連のメタデータについて理解
  • Gitから取得できるメタデータから開発プロセスに関する指標を自動で計算し、データセットに新たな特徴量として追加し、予測性能が向上するかどうか検証