Does Bug Prediction Support Human Developers? Findings from a Google Case Study
-
Upload
connor-finch -
Category
Documents
-
view
35 -
download
0
description
Transcript of Does Bug Prediction Support Human Developers? Findings from a Google Case Study
Does Bug Prediction Support Human Developers?
Findings from a Google Case StudyChris Lewis, Zhongpeng Lin, Caitlin Sadowski, Xiaoyan Zhu, Rong Ou, and E. James Whitehead Jr. (Univ. of California, USA; Google Inc., USA; Xi’an Jiaotong Univ., China)
P1
担当:山下 一寛(九州大学)
Goal と Research QuestionGoal: バグ予測アルゴリズムに対し,開発者がどのように行動するのかを知りたい.
RQ1: バグ予測のアルゴリズムはバグを含んだファイルをいくつ予測できるか?また,どのアルゴリズムが好ましいか?RQ2: バグ予測アルゴリズムが持つべき特徴とは?RQ3: RQ1,2 で得た知見からより良いアルゴリズムを設計し,利用したとき開発者の行動は変わるのか?
P1: Does Bug Prediction Support Human Developers? 2
User Study 1
P1: Does Bug Prediction Support Human Developers? 3
Bug PredictionProject 予測結果
Developer of Project
このファイルはバグを含んでいそうですか?
FileAFileB…
User Study 2
P1: Does Bug Prediction Support Human Developers? 4
バグ予測のアルゴリズムに必要なことって・・・?
User Study 3
P1: Does Bug Prediction Support Human Developers? 5
Source CodeMondrian
(Review System) Report Reviewer Action
Bug Prediction
違いは出るのか?
Results of User Study 1
P1: Does Bug Prediction Support Human Developers? 6
Rahman のアルゴリズムが一番良かった
図は p.376 Fig.1,2 より引用
Results of User Study 2Desirable Characteristics
1. Actionable Messages2. Obvious Reasoning3. Bias Towards the New4. Parallelizable5. Effectiveness Scaling
P1: Does Bug Prediction Support Human Developers? 7
5つの望ましい点が見つかった
Results of User Study 3
P1: Does Bug Prediction Support Human Developers? 8
顕著な変化は見られなかった
図,表は p.379 Fig.3 , p.380 Table III より引用
所感開発者がどう思うかという観点は必要だと
思う.
また, Google のエンジニアに協力してもらい,実際にこのような観点で実験を行った.
論文の構成が分り易い.特に実験の部分
P1: Does Bug Prediction Support Human Developers? 9
TRANSFER DEFECT
LEARNINGJaechang Nam , Sinno Jialin Pan , Sunghun Kim
担当:和歌山大学 柏 祐太郎山谷 陽亮
Proceedings of the 2013 International Conference on Software Engineering (ICSE '13), pp. 382-391, 2013
CROSS-PROJECT 欠陥予測
新規プロジェクト
不具合予測モデル
大規模プロジェクト
不具合予測モデル
不具合の場所を予測
不具合の場所を予測
データ分布の違い
予測精度が低い
データの分散を小さくすることでcross-project 欠陥予測の精度を上げる
11
目的 プロジェクト間のデータの分散を小さくするこ
とで cross-project 欠陥予測の精度を上げる
アプローチ 予測の前に TCA または TCA+ を実施
TCA : Transfer Component Analysis
目的とアプローチ
12P. Bug Prediction P2
TCA ・ TCA+
TCA(Transfer Component Analysis)
• 教師なしデータによる Transfer Learning• 共通性を見つけ分布の違いを吸収
TCA+
• TCA における正しい正規化を見つける• 1. データセットの特徴を捉える• 2. プロジェクトの類似度を測定• 3. 正規化の方法を決める
*http://www.slideshare.net/hunkim/transfer-defectlearningnew-completed
*
13P. Bug Prediction P2
評価尺度:不具合の位置を予測する精度( F値)
評価方法
cross-project 欠陥予測
within-project 欠陥予測 小さいプロジェクトの十分でないデータ量で作られた予測モデル
TCA なし TCA ・ TCA+
14P. Bug Prediction P2
結果 TCA および TCA+ を用いた場合との比較
TCA一部の正規化方法では TCA なしより予測精度が上がっ
た正規化方法によっては TCA なしより予測精度が下がっ
た
TCA+適切な正規化方法が選ばれ,全ての予測精度が上がった
within-project 欠陥予測との比較TCA+ は within-project 欠陥予測に匹敵する精度が得
られた15
P. Bug Prediction P2
所感 1章で良くまとめられていて全体像を掴みやす
いcross-project 欠陥予測の必要性や現状
データの分散を小さくできる点で TCA は応用の幅が広いと感じた
cross-project 欠陥予測するにはまだ精度が足りないwithin-project 予測の精度と変わらない場合も
16P. Bug Prediction P2
IT’S NOT A BUG, IT’S A FEATURE:HOW MISCLASSIFICATION IMPACTS BUG PREDICTION
Kim Herzig, Sascha Just, Andreas Zeller
担当:和歌山大学 松本 明 吉行 勇人
Proceedings of the 2013 International Conference on Software Engineering (ICSE '13), pp. 392-401, 2013
背景 不具合報告には、「バグ」と「バグでないも
の」がある
プロジェクトの管理者が不具合報告を分類した際に、誤分類が含まれている可能性がある
多くの予測モデルは、管理者による分類が正しいものとして構築されており、もし誤分類があれば予測モデルの精度を脅かす問題となる
P. Bug Prediction P3 18
評価方法 5 つ の オ ー プ ン ソ ー ス プ ロ ジ ェ ク ト
( HTTPClient, Jackrabbit, Lucene-Java, Rhino, Tomcat5 )の計 7,401 件の不具合報告を一定のルールの下で再分類する
例)「バグ」と判別されるルール1. NullpointerException に関する報告があるも
の2. コードを変更する必要があるもの3. ランタイムエラーやメモリリークを修正するも
のP. Bug Prediction P3 19
分類方法
1. 著者の1人が全ての不具合報告を確認し、誤分類があれば分類し直してタグをつける
2. 別の著者がタグ付けされてある不具合報告を確認し、再分類する
3. 二人の分類結果を比較してマージする
P. Bug Prediction P3 20
図は当該論文より引用
結果 誤分類
全ての不具合報告のうち、 42.6% が誤って分類されていた
全てのバグ報告のうち、 33.8% はバグではなかった
誤分類の影響defect-prone で あ る と さ れ た フ ァ イ ル の う
ち、 39% はバグが存在していなかった元のデータセットで defect-prone であるとされた
ファイルのうち 16% ~ 40% は、再分類後のデータセットでは defect-prone ではなかった
P. Bug Prediction P3 21
まとめと所感
まとめ定量分析に用いるデータセットを機械的に整理するだ
けでなく、人の手でもチェックする必要がある不具合報告の分類は管理者の主観によって左右される
ため、予測モデルの妥当性が脅かされる可能性がある
所感今後、誤分類をどう処理すればよいのか?7000 件以上の不具合を目で見て確認するという、手
間と時間のかかる作業を行った著書らの研究熱意に感動した
P. Bug Prediction P3 22