190 likes | 358 Views
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. § U vaya Labs Research ).
E N D
High-Impact Defects: A Study of Breakage and Surprise Defects 本論文の貢献 ソフトウェアの品質に重大な影響を及ぼす欠陥に着目し,このような欠陥を予測することで実務でも使えるような手法を提案した. EmadShihab†, AudrisMockus§, Yasutaka Kamei†, Bram Adams† and Ahmed E. Hassan† (†Queen’s Univ.§Uvaya Labs Research) 担当:伏田享平(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 HohPeter In† (†Korea Univ.§Hong Kong Univ.of ScienceandTechnology) 担当:伏田享平(NAIST・飯田研)
背景・目的 • メトリクスを利用した欠陥予測手法は多数提案されている • ソースコードのメトリクス • 変更履歴のメトリクス • 開発者の行動パターンもソフトウェアの品質に大きく影響を及ぼすと言われている • ソースコードの選択,編集の流れ • 56個のmicro interaction metrics (MIMs)を提案し,MIMsがバグ予測精度向上に寄与するかを確認する
Micro Interaction Metrics • 開発者がタスクを実施している際の,成果物とのインタラクションを定量化したもの • Mylynのログを利用して計測する • 進行中のタスク数,選択・編集された回数 • 行動パターン:選択 → 編集,選択 → 選択 タスク1 • MIMs の例 • タスク数:2 • 選択回数:4 • 編集回数:4 タスク2
評価実験 • 各メトリクスとその組み合わせから予測モデルを作成する • MIMs • CMs(Code Metrics):ソースコードから抽出したメトリクス • コード行数,複雑度メトリクスなど • HMs(History Metrics):開発履歴から抽出したメトリクス • ソースコードの変更行数,変更回数など • 予測対象のプロジェクト,学習器,学習に用いるデータ量を変えて評価する
評価結果:プロジェクトによる差異 • どのプロジェクトでもMIM単独,もしくはMIMを加えることで予測精度が向上する (Fig.3を引用)
評価結果:学習器による差異 • 学習方法を変えてもMIMが強い (Fig.4を引用)
評価結果:分割点による差異 • やっぱり強い (Fig.5を引用)
メトリクスの効果分析 • メトリクスの情報利得比を個別を調べた. • 利得比が高いとバグ判別に役立つ. • ランキング上位42個が MIMs であり,開発者の行動がバグ判別に大きく影響することが分かる. メトリクスランキング • 図の色 • 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ファイルのバグ密度の変化 • Cached/Uncachedファイルのバグ密度の時系列上にプロット 徐々に,バグ密度の差異が小さくなった
インスペクションに用いた場合の効率 • FixCacheと,Naiveを用いた場合を比較 • Naiveは,修正したバグ数でファイルをソートしただけの手法 • 各手法に基づいて,ソースコードの20%を検査したと仮定 ほとんどの場合,Naiveと比較して有意な差はなかった