High-Impact Defects: A Study of Breakage and Surprise Defects Emad Shihab†, Audris Mockus§, Yasutaka Kamei†, Bram Adams† and Ahmed E. Hassan† (†Queen’s Univ. §Uvaya Labs Research) ソフトウェアの品質に重大な影響を及ぼす欠陥に着目し,このような欠陥を予測することで実務でも使えるような手法を提案した. 本論文の貢献 57:30 担当:伏田 享平(NAIST・飯田研)
背景・目的 様々な欠陥予測手法が提案されているが,実務には適用できていない 予測結果として現れる数が開発チームが対処できる量を超えている 個々の欠陥の影響を考慮していない 顧客や実務者に多大な影響を及ぼす欠陥に着目し,このような欠陥を予測する Breakages Surprises 評価には電話システムの開発データを用いている
Breakage / Surprise Defects Breakage Defects 過去のリリース時に実装された機能を破壊してしまうような欠陥 Surprise Defects リリース前にほとんど変更が行われていなかったファイルに存在していた(リリース後に発見された)欠陥 リリース後に発見された中で,Breakages/Surprisesの数はわずか (Table.2を引用)
ケーススタディ Breakages/Surprises を予測するロジスティック回帰モデルを構築して評価した 予測に用いるメトリクス(詳細は表2参照) Traditional Factors: リリース前の欠陥数,リリース前変更回数, ファイル数 Co-change Factors: 同時変更されたファイル数など Time Factors: 最終変更からリリースまでの時間,ファイルの生存期間
予測モデルの性能 適合率はランダムに予測した場合に比べて2倍良い 高い再現率を示している 欠陥予測では再現率が重視される
どの要因が予測に効くか? Breakages → Traditional Factors Surprises → Co-Change Factors, Time Factors
Micro Interaction Metrics for Defect Prediction Taek Lee†, Jaechang Nam§, DongGyun Han§, Sunghun Kim§ and Hoh Peter In† (†Korea Univ. §Hong Kong Univ. of Science and Technology ) 開発者の行動パターンに着目したメトリクスを提案し,このメトリクスを用いることで欠陥予測精度が向上することを実証した. 本論文の貢献 担当:伏田 享平(NAIST・飯田研)
背景・目的 メトリクスを利用した欠陥予測手法は多数提案されている 開発者の行動パターンもソフトウェアの品質に大きく影響を及ぼすと言われている ソースコードのメトリクス 変更履歴のメトリクス 開発者の行動パターンもソフトウェアの品質に大きく影響を及ぼすと言われている ソースコードの選択,編集の流れ 56個のmicro interaction metrics (MIMs)を提案し,MIMsがバグ予測精度向上に寄与するかを確認する
Micro Interaction Metrics 開発者がタスクを実施している際の,成果物とのインタラクションを定量化したもの Mylyn のログを利用して計測する 進行中のタスク数,選択・編集された回数 行動パターン:選択 → 編集,選択 → 選択 File A 選択 File B 編集 File C タスク1 MIMs の例 タスク数:2 選択回数:4 編集回数:4 File D 編集 File E File C 選択 タスク2
評価実験 各メトリクスとその組み合わせから予測モデルを作成する 予測対象のプロジェクト,学習器,学習に用いるデータ量を変えて評価する MIMs CMs(Code Metrics): ソースコードから抽出したメトリクス コード行数,複雑度メトリクスなど HMs(History Metrics): 開発履歴から抽出したメトリクス ソースコードの変更行数,変更回数など 予測対象のプロジェクト,学習器,学習に用いるデータ量を変えて評価する
評価結果:プロジェクトによる差異 どのプロジェクトでもMIM単独,もしくはMIMを加えることで予測精度が向上する (Fig.3を引用)
評価結果:学習器による差異 学習方法を変えてもMIMが強い (Fig.4を引用)
評価結果:分割点による差異 やっぱり強い (Fig.5を引用)
メトリクスの効果分析 メトリクスの情報利得比を個別を調べた. 利得比が高いとバグ判別に役立つ. ランキング上位42個が MIMs であり,開発者の行動がバグ判別に大きく影響することが分かる. メトリクスランキング 縦軸:ランキング 横軸:利得比 Gain Ratio の訳を募集中 どのメトリクスがどれだけ判別に役立つか調べた 図の色 MIM :赤 HM :紫 CM :水色 メトリクスの数 MIMs:56個 HMs :15個 CMs :42個 (Fig.6を引用) 情報利得比
BugCache for Inspections : Hit or Miss. F. Rahman et al 担当者:吉田(NAIST)
概要 バグ予測ツールFixCacheのソースコードの検査に関する 有用性を調査した研究 結論 FixCache ICSE 2007で発表された論文において,Sunghum Kimらが提案したバ グ予測ツール 同論文において,回帰テストの支援に対する有用性を確認 結論 過去のバグ修正数でファイルをソートした場合と比較して,検 査の効率に有意な差はなかった
FixCache キャッシュに入ったファイルを提示するバグ予測手法 キャッシュに追加されるファイル 性能 バグ修正時に修正されたファイル buggyとされたファイルと同時に更新されたファイル 最近,修正・追加されたファイル 性能 73%–95%の確率でfaultyなファイルを特定できる メソッド単位の予測を行うと,46%–72%に低下
Cached/Uncachedファイルのバグ密度の変化 徐々に,バグ密度の差異が小さくなった
インスペクションに用いた場合の効率 FixCacheと,Naiveを用いた場合を比較 ほとんどの場合,Naiveと比較して有意な差はなかった 各手法に基づいて,ソースコードの20%を検査したと仮定 ほとんどの場合,Naiveと比較して有意な差はなかった