コンテンツにスキップ

2025年9月20日

今週の活動

  • Just-in-Time Quality Assuranceについての論文を読んだ
    • 概要
      • 従来のファイルやパッケージ単位の欠陥予測ではなく、変更単位でリアルタイムに欠陥リスクを予測する「Just-In-Time Quality Assurance(JIT-QA)」アプローチの有効性を検証
    • 研究手法
      • 対象: 6つのOSSプロジェクト + 5つの商用プロジェクト
      • 予測に利用する特徴量: 5つのカテゴリ(拡散、大きさ、目的、履歴、経験)に分類された14個の要因
      • 機械学習モデル: ロジスティック回帰
      • 検証方法: 10分割交差検証
    • 達成できたこと
      • 変更単位での欠陥予測
        • 平均精度: 適合率32-37%、再現率63-67%
        • 従来のファイル単位よりも細かい粒度で予測を実現
      • レビュー作業の労力削減効果を検証
        • 労力考慮型モデルを作成し、総労力の20%(レビューに当てられる労力)で欠陥を誘発する変更の35%を検出
      • 重要な特徴量の特定
        • OSSプロジェクト: NF(変更ファイル数)、LA/LT(追加行の割合)、LT/NF、FIX(欠陥修正フラグ)
        • 商用プロジェクト: NF、LA/LT、LT/NF、NDEV(開発者数)、AGE(変更間隔)
    • 達成できなかったこと
      • 適合率の向上
        • 平均適合率が32-37%と低い(偽陽性が多い)
      • 労力考慮型モデルの妥当性の検証
        • 総労力の20%をレビュー作業に当てることが妥当なのか
        • 変更行数のみで労力を測定しており、労力の計算を単純化している
      • 1レビュー当たりの時間とレビュー回数のトレードオフの考慮
        • バグ予測により1つの変更のレビューにかかる時間は減少するがレビュー回数は増加

得られた成果

  • NFやLA/LTは指標として理解しやすく、計算も容易
  • NDEVやAGEは開発体制によって指標として効果的かどうかが決まる

直面した課題

  • プロジェクト間で共通の欠陥予測モデルと利用することはできない
  • 多重共線性を除外するために14個の特徴量を12個まで削減

来週の計画

  • 先ほどの研究で利用された特徴量について整理し、妥当性を考察