High-Impact Defects: A Study of Breakage and Surprise Defects

Slides:



Advertisements
Similar presentations
Trac と Eclipse の 便利な機能. プロジェクト管理システム: Trac 0. はじめに バージョン管理システム: Subversion 統合開発環境: Eclipse ・ Wiki による情報 管理 ・進捗状況の管理 ・プログラムの作 成 ・リポジトリに データを集める.
Advertisements

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 ソフトウェア部品推薦のための.
1 EASE プロジェクトにおける EPM ( Empirical Project Monitor) を用いたプロジェクト管理デモ 奈良先端科学技術大学院大学 産学官連携研究員 松村 知子 2005 年 9 月 30 日 JISA 経営者セミナー.
背景 ソフトウェアの大規模化・複雑化 生産性と品質の向上 ↓ オブジェクト指向分析設計の適用 開発ツールの投入.
情報伝播によるオブジェクト指向プログラム理解支援の提案
研究の背景 コードクローン ソースコード中に存在する一致または類似したコード片
ICSE2012勉強会 岡山県立大学 天嵜 聡介.
Does Bug Prediction Support Human Developers
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
川口真司 松下誠 井上克郎 大阪大学大学院情報科学研究科
プログラム実行履歴を用いたトランザクションファンクション抽出手法
プログラム実行時情報を用いたトランザクションファンクション抽出手法
ソースコードの変更履歴における メトリクス値の変化を用いた ソフトウェアの特性分析
オブジェクト指向プログラムのための 動的結合メトリクスの評価
識別子の命名支援を目的とした動詞-目的語関係の辞書構築
関数の変更履歴と呼出し関係に基づいた開発履歴理解支援システムの実現
コードクローンの分類に基づいた メソッド引き上げ手順の提案とその有効性評価
確率的学習アルゴリズムを用いた有限状態オートマトンの抽出に関する研究
動的スライスを用いたバグ修正前後の実行系列の差分検出手法
ソフトウェアを取り巻く環境の変化がメトリクスに及ぼす影響について
利用関係に基づく類似度を用いたJavaコンポーネント分類ツールの作成
クローンセットに対する主要編集者の分析法の提案と調査
重複コードと非重複コードにおける 修正頻度の比較
第14章 モデルの結合 修士2年 山川佳洋.
学生の相互評価を用いた モデリング支援システムの開発
確率的学習アルゴリズムを用いた有限状態オートマトンの抽出に関する研究
Javaプログラムの変更を支援する 影響波及解析システム
プログラム動作理解支援を目的とした オブジェクトの振舞いの同値分割手法
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
ソースコードの特徴量を用いた機械学習による メソッド抽出リファクタリング推薦手法
コードの生存期間を考慮したコードクローンと欠陥修正の関係調査
コードクローンに対する一貫性のない変更に起因する欠陥の検出
Token Comparison Approach to Detect Code Clone-related Bugs
ソースコードの静的特性を用いた Javaプログラム間類似度測定ツールの試作
コードクローン検出に基づくデザイン パターン適用支援手法の提案と実現
付属書Ⅰ.7 予備危険源分析 (PHA).
Webコミュニティ概念を用いた Webマイニングについての研究 A study on Web Mining Based on Web Communities 清水 洋志.
Parallel Setsによるライブラリの 組み合わせと利用状況の可視化
コードスメルの深刻度がリファクタリングの実施に与える影響の実証的研究
Javaソフトウェア部品検索システムSPARS-Jの実験的評価
顔特徴点移動量・点間距離変化量の組み合わせに基づく顔表情認識
○ 後藤 祥1,吉田 則裕2 ,井岡 正和1 ,井上 克郎1 1大阪大学 2奈良先端科学技術大学院大学
ソフトウェア保守のための コードクローン情報検索ツール
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
研究背景と目的 局面対による学習の高速化 学習器の説明 今後 大規模な強化学習技術の実証と応用 一方で、 強化学習手法の台頭
コーディングパターンの あいまい検索の提案と実装
情報経済システム論:第13回 担当教員 黒田敏史 2019/5/7 情報経済システム論.
ソフトウェアプロダクト集合に対する 派生関係木の構築
オブジェクトの協調動作を用いた オブジェクト指向プログラム実行履歴分割手法
プログラムスライスを用いた凝集度メトリクスに基づく 類似メソッド集約候補の順位付け手法
設計情報の再利用を目的とした UML図の自動推薦ツール
保守請負時を対象とした 労力見積のためのメトリクスの提案
アスペクト指向言語のための視点に応じた編集を可能にするツール
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
オープンソースソフトウェアに対する コーディングパターン分析の適用
メソッドの同時更新履歴を用いたクラスの機能別分類法
クラスタリングを用いた ベイズ学習モデルを動的に更新する ソフトウェア障害検知手法
欠陥検出を目的とした類似コード検索法 吉田則裕,石尾隆,松下誠,井上克郎 大阪大学 大学院情報科学研究科
バイオインフォマティクスII 遺伝子発現データの AdaBoostによる判別
複雑度メトリクスを用いた JAVAプログラム品質特性の実験的評価
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
コードクローン解析に基づく デザインパターン適用候補の検出手法
メソッド抽出リファクタリングが 行われるメソッドの特徴調査
Don’t Touch My Code! Examining the Effects of Ownership on Software Quality C. Bird (マイクロソフト・リサーチ) et al. 担当者:吉田(NAIST)
株式会社 エーアイネット・テクノロジ 川村廉平
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
ベイジアンネットワークと クラスタリング手法を用いたWeb障害検知システムの開発
プログラム依存グラフを用いた ソースコードのパターン違反検出法
Detecting Software Modularity Violations
Presentation transcript:

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と比較して有意な差はなかった