Does Bug Prediction Support Human Developers

Slides:



Advertisements
Similar presentations
心理測定論 信号検出理論.
Advertisements

背景 ソフトウェアの大規模化・複雑化 生産性と品質の向上 ↓ オブジェクト指向分析設計の適用 開発ツールの投入.
FSE/ASE2011 勉強会 F12 Mining 2012/03/21 井垣 宏(大阪大学 楠本研究室)
High-Impact Defects: A Study of Breakage and Surprise Defects
Brittany Jonson†, Yoonki Song†, Emerson Murphy-Hill†, Robert Bowdidge‡
-確実に旅行に行くお金を貯めるためには?ー
実証分析の手順 経済データ解析 2011年度.
ライフログデータとしての笑顔の蓄積システムの提案
Paper from PVLDB vol.7 (To appear in VLDB 2014)
FSE/ASE2011勉強会 岡山県立大学 天嵜 聡介.
日本大学 文理学部 情報システム解析学科 谷研究室 益田真太郎
Semi-Supervised QA with Generative Domain-Adaptive Nets
UMLとは           032234 田邊祐司.
Java ソフトウェア部品検索システム SPARS-J のための リポジトリ自動更新機能の実現
ソフトウェアリポジトリにおける コードクローン作成者・利用者関係分析手法とその適用
サーバ負荷分散におけるOpenFlowを用いた省電力法
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
オブジェクト指向プログラムのための 動的結合メトリクスの評価
ソースコードの同時修正支援における関数クローン検出ツールの有効性調査
コードクローンに含まれるメソッド呼び出しの 変更度合の分析
コードクローンに含まれるメソッド呼び出しの 変更度合の調査
ソードコードの編集に基づいた コードクローンの分類とその分析システム
オープンソース開発の履歴情報を用いたコミュニティ検索支援システム
ソフトウェアを取り巻く環境の変化がメトリクスに及ぼす影響について
Online Decoding of Markov Models under Latency Constraints
重複コードと非重複コードにおける 修正頻度の比較
T2統計量・Q統計量 明治大学 理工学部 応用化学科 データ化学工学研究室 金子 弘昌.
環境リスクマネジメントに関する 検索システム
卒論の書き方: 参考文献について 2017年9月27日 小尻智子.
Javaプログラムの変更を支援する 影響波及解析システム
社会シミュレーションのための モデル作成環境
Proceeding of the 33rd international conference on Software engineering (ICSE’11), pp , Configuring Global Software Teams: A Multi-Company.
ソースコードの特徴量を用いた機械学習による メソッド抽出リファクタリング推薦手法
オープンソース開発支援のための リビジョン情報と電子メールの検索システム
コードの生存期間を考慮したコードクローンと欠陥修正の関係調査
主成分分析 Principal Component Analysis PCA
ソースコードの静的特性を用いた Javaプログラム間類似度測定ツールの試作
UMLモデルを対象とした リファクタリング候補検出の試み
Webコミュニティ概念を用いた Webマイニングについての研究 A study on Web Mining Based on Web Communities 清水 洋志.
プログラミングコンテストシステムへの 提出履歴データとその分析
アスペクト指向言語のための 独立性の高いパッケージシステム
プログラム理解におけるThin sliceの 統計的調査による有用性評価
W1 X-PERT: Accurate Identification of Cross-Browser Issues in Web Applications Shauvik Roy Choudhary, Mukul R. Prasad, and Alessandro Orso (Georgia Tech,
Javaソフトウェア部品検索システムSPARS-Jの実験的評価
実空間における関連本アウェアネス 支援システム
dcNavi: デバッグ方法をアドバイス する関心事指向リポジトリナビゲータ
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
ベイズ最適化 Bayesian Optimization BO
情報経済システム論:第13回 担当教員 黒田敏史 2019/5/7 情報経済システム論.
ソフトウェアプロダクト集合に対する 派生関係木の構築
Q3 On the value of user preferences in search-based software engineering: a case study in software product lines Abdel Salam Sayyad (West Virginia University,
Managing non-functional uncertainty via model-driven adaptivity
短い部分文字列の ミスマッチトレランスを 高速計算するアルゴリズム
メトリクス値の変化に基づく コードクローンの編集傾向分析
構造的類似性を持つ半構造化文書における頻度分析
プログラムスライスを用いた凝集度メトリクスに基づく 類似メソッド集約候補の順位付け手法
保守請負時を対象とした 労力見積のためのメトリクスの提案
dcNavi:デバッグ支援のための グラフベース推薦システム
アスペクト指向言語のための視点に応じた編集を可能にするツール
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
メソッドの同時更新履歴を用いたクラスの機能別分類法
蓄積されたオブジェクトの動作履歴を用いた 実行履歴削減手法の提案
欠陥検出を目的とした類似コード検索法 吉田則裕,石尾隆,松下誠,井上克郎 大阪大学 大学院情報科学研究科
回帰テストにおける実行系列の差分の効率的な検出手法
Don’t Touch My Code! Examining the Effects of Ownership on Software Quality C. Bird (マイクロソフト・リサーチ) et al. 担当者:吉田(NAIST)
確率的フィルタリングを用いた アンサンブル学習の統計力学 三好 誠司 岡田 真人 神 戸 高 専 東 大, 理 研
Detecting Software Modularity Violations
Generating Obstacle Conditions for Requirements Completeness
Presentation transcript:

Does Bug Prediction Support Human Developers Does Bug Prediction Support Human Developers? Findings from a Google Case Study P1 Chris 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) 担当:山下 一寛(九州大学)

GoalとResearch Question Goal: バグ予測アルゴリズムに対し,開発者がどのように行動するのかを知りたい. RQ1: バグ予測のアルゴリズムはバグを含んだファイルをいくつ予測できるか?また,どのアルゴリズムが好ましいか? RQ2: バグ予測アルゴリズムが持つべき特徴とは? RQ3: RQ1,2で得た知見からより良いアルゴリズムを設計し,利用したとき開発者の行動は変わるのか? P1: Does Bug Prediction Support Human Developers?

P1: Does Bug Prediction Support Human Developers? User Study 1 FileA FileB … Project Bug Prediction 予測結果 このファイルはバグを含んでいそうですか? Developer of Project P1: Does Bug Prediction Support Human Developers?

User Study 2 バグ予測のアルゴリズムに必要なことって・・・? P1: Does Bug Prediction Support Human Developers?

P1: Does Bug Prediction Support Human Developers? User Study 3 Mondrian (Review System) Source Code Report Reviewer Action 違いは 出るのか? Bug Prediction P1: Does Bug Prediction Support Human Developers?

Results of User Study 1 Rahmanのアルゴリズムが一番良かった 図はp.376 Fig.1,2より引用 P1: Does Bug Prediction Support Human Developers?

P1: Does Bug Prediction Support Human Developers? Results of User Study 2 Desirable Characteristics Actionable Messages Obvious Reasoning Bias Towards the New Parallelizable Effectiveness Scaling 5つの望ましい点が見つかった P1: Does Bug Prediction Support Human Developers?

P1: Does Bug Prediction Support Human Developers? Results of User Study 3 顕著な変化は見られなかった 図,表はp.379 Fig.3,p.380 Table IIIより引用 P1: Does Bug Prediction Support Human Developers?

P1: Does Bug Prediction Support Human Developers? 所感 開発者がどう思うかという観点は必要だと思う. また,Googleのエンジニアに協力してもらい,実際にこのような観点で実験を行った. 論文の構成が分り易い. 特に実験の部分 P1: Does Bug Prediction Support Human Developers?

Transfer Defect Learning Proceedings of the 2013 International Conference on Software Engineering (ICSE '13), pp. 382-391, 2013 Transfer Defect Learning 和歌山大学の柏祐太郎です. Transfer defect learningの紹介をさせていただきます. この論文の目的はcross-project欠陥予測の精度を上げることです Jaechang Nam, Sinno Jialin Pan, Sunghun Kim 担当:和歌山大学 柏 祐太郎 山谷 陽亮

cross-project欠陥予測 データの分散を小さくすることで cross-project欠陥予測の精度を上げる 大規模 プロジェクト 不具合 予測モデル 不具合の場所を予測 予測精度が低い データ分布の違い cross-project欠陥予測について説明します. 新規プロジェクトなど小さいプロジェクトでは不具合予測がデータ量が少ないためできないことがあります. そのため大規模プロジェクトの予測モデルを新規プロジェクトにつかおうとするのがcross-project欠陥予測です しかし,現状では予測精度が低い状態となっています. その主な原因はデータ分布の違いがあります. 新規 プロジェクト 不具合 予測モデル 不具合の場所を予測 データの分散を小さくすることで cross-project欠陥予測の精度を上げる

目的とアプローチ 目的 プロジェクト間のデータの分散を小さくすることで cross-project欠陥予測の精度を上げる アプローチ 予測の前にTCAまたはTCA+を実施 TCA:Transfer Component Analysis そのためこの論文の目的はデータの分散を小さくすることで予測精度をあげることを目指します. アプローチにtransfer learningの一つであるTCAを欠陥予測に応用します. TCAはプロジェクト間の共通性を明らかにすることでデータの分散を小さくする方法です また,本論文ではTCAを拡張したTCA+も提案されています. TCAを用いる前には前処理としてデータの正規化を行います. データの正規化方法は複数存在しているため,この中から1つの正規化方法を選ばなくてはいけません. TCA+ではこのデータ分布の類似度から正規化方法を柔軟に対応させます. 例としてこれらの方法があります. P. Bug Prediction P2

TCA・TCA+ TCA(Transfer Component Analysis) 教師なしデータによるTransfer Learning 共通性を見つけ分布の違いを吸収 TCA+ TCAにおける正しい正規化を見つける 1. データセットの特徴を捉える 2. プロジェクトの類似度を測定 3. 正規化の方法を決める * *http://www.slideshare.net/hunkim/transfer-defectlearningnew-completed P. Bug Prediction P2

小さいプロジェクトの十分でないデータ量で作られた予測モデル 評価方法 評価尺度:不具合の位置を予測する精度(F値) TCAなし TCA・TCA+ cross-project欠陥予測 within-project欠陥予測 小さいプロジェクトの十分でないデータ量で作られた予測モデル P. Bug Prediction P2

結果 TCAおよびTCA+を用いた場合との比較 TCA TCA+ within-project欠陥予測との比較 適切な正規化方法が選ばれ,全ての予測精度が上がった within-project欠陥予測との比較 TCA+はwithin-project欠陥予測に匹敵する精度が得られた 次に評価方法と結果ですが. TCAを使うことで一部の正規化方法によっては予測精度が上がりましたが,予測精度がさがった場合も存在しました. 実験2ではTCA+を使うことで適切な正規化方法を選べるかを実験しました. 結果は適切な正規化方法が選ばれ, P. Bug Prediction P2

所感 1章で良くまとめられていて全体像を掴みやすい データの分散を小さくできる点でTCAは応用の幅が 広いと感じた cross-project欠陥予測の必要性や現状 データの分散を小さくできる点でTCAは応用の幅が 広いと感じた cross-project欠陥予測するにはまだ精度が足りない within-project予測の精度と変わらない場合も P. Bug Prediction P2

Kim Herzig, Sascha Just, Andreas Zeller 担当:和歌山大学 松本 明 吉行 勇人 Proceedings of the 2013 International Conference on Software Engineering (ICSE '13), pp. 392-401, 2013 It’s not a Bug, It’s a Feature: How Misclassification Impacts Bug Prediction 本論文では、不具合報告において、誤分類がどれほどなされているか、また、そういった誤分類がバグ予測にどれほどの影響を与えるかを調べています Kim Herzig, Sascha Just, Andreas Zeller 担当:和歌山大学  松本 明 吉行 勇人

背景 不具合報告には、「バグ」と「バグでないもの」がある プロジェクトの管理者が不具合報告を分類した際に、 誤分類が含まれている可能性がある 多くの予測モデルは、管理者による分類が正しいも のとして構築されており、もし誤分類があれば予測モ デルの精度を脅かす問題となる P. Bug Prediction P3

評価方法 5つのオープンソースプロジェクト(HTTPClient, Jackrabbit, Lucene-Java, Rhino, Tomcat5)の計 7,401件の不具合報告を一定のルールの下で再分類 する 例)「バグ」と判別されるルール NullpointerExceptionに関する報告があるもの コードを変更する必要があるもの ランタイムエラーやメモリリークを修正するもの P. Bug Prediction P3

分類方法 著者の1人が全ての不具合報告を確認し、誤分類 があれば分類し直してタグをつける 別の著者がタグ付けされてある不具合報告を確認 し、再分類する 二人の分類結果を比較してマージする 図は当該論文より引用 P. Bug Prediction P3

結果 誤分類 誤分類の影響 全ての不具合報告のうち、42.6%が誤って分類されていた 全てのバグ報告のうち、33.8%はバグではなかった defect-proneであるとされたファイルのうち、39%はバグが存在していなかった 元のデータセットでdefect-proneであるとされたファイルのうち16%~40%は、再分類後のデータセットではdefect-proneではなかった P. Bug Prediction P3

まとめと所感 まとめ 所感 定量分析に用いるデータセットを機械的に整理するだけでなく、人の手でもチェックする必要がある 不具合報告の分類は管理者の主観によって左右されるため、予測モデルの妥当性が脅かされる可能性がある 所感 今後、誤分類をどう処理すればよいのか? 7000件以上の不具合を目で見て確認するという、手間と時間のかかる作業を行った著書らの研究熱意に感動した P. Bug Prediction P3