170 likes | 297 Views
Sound Empirical Evidence in Software Testing Gordon Fraser, and Andrea Arcuri. 担当:角田 雅照(東洋大学).
E N D
Sound Empirical Evidence in Software TestingGordon Fraser, and Andrea Arcuri 担当:角田 雅照(東洋大学) Gordon Fraser and Andrea Arcuri. 2012. Sound empirical evidence in software testing. In Proceedings of the 2012 International Conference on Software Engineering (ICSE 2012). IEEE Press, Piscataway, NJ, USA, 178-188. 2012年08月30日 ICSE勉強会2012
背景・目的 • 背景 • ソフトウェア開発において,テストの自動化は重要であり,これまで様々なテストケース生成方法が提案されてきた. • 従来研究では高いカバレッジが示されているが,特定の種類のソフトウェア(組み込み系など)を用いて評価しており,”threatsto external validity”が残っている. • 目的 • この問題に対応するために,より現実的なデータセットにテストケース生成方法を適用し,その場合の問題点を明らかにする.
アプローチ • SourceForgeから代表的な100件のJavaプロジェクトを選択し,実験に用いた. • テストケース生成方法として,遺伝的アルゴリズムをベースとするEvoSuiteを用いた. • 筆者らが提案している方法.研究の目的は現実に起こる問題を確かめることであり,性能の比較ではない. • 安全でないテストケース(ファイル操作を行うケースなど)は実行を禁止する.
結果 • カバレッジが低いクラスがあった.それらを調べた結果,以下の特徴が見られた. • ファイル操作するクラス • GUIライブラリを扱うクラス • ネットワークアクセスをするクラス • 現実のソフトウェアをテストすることを想定した場合,これらの(安全でない操作をする)クラスのカバレッジを高める必要がある. • 安全にファイル操作のテストができる仕組み作りなど.
論文の特徴 • 論文で用いたデータセットを,ベンチマーク用のデータとして公開している. • 従来研究のサーベイを行なっている. • 文章が読みやすい. • 手間は掛けているが,難しいことはしていない. • かなり大規模に実験を行なっている. • 実験の実行に122日掛かっている. • 統計的にも難しいことはしていない. • 自分たちの提案方法を評価しただけ,と解釈できなくもない.
Privacy and Utility for Defect Prediction: Experiments with MORPH 本論文の貢献 組織間でのプロジェクトデータ共有を目的とし,秘密情報を保護するための手法を提案した. Fayola Peters, Tim Menzies (West Virginia University) 担当:伏田享平(NTTデータ)
背景・目的 • プライバシーに関する問題がソフトウェア開発組織のデータ共有を妨げている • 具体的なプロジェクト名と,その工数や規模などが紐付いた情報は他社には見せたくない • プロジェクト名だけ隠しても,他のプロジェクト情報から特定されてしまう可能性がある • データの本質的な性質を損なわず,プライバシー情報を隠蔽する手法MORPHを提案する ICSE'12勉強会(E2)
プライバシー保護データ公開の例 • バグ予測のためのデータを公開したい • 「どのファイルにバグがあったか」は知られたくない 確かtaskdefs. Copyfile の規模って100行くらいだったよな.じゃあこれが…… 名前を隠してしまえ! 名前だけ隠しても,他の値を知っている人にはばれてしまう! ICSE'12勉強会(E2)
プライバシー保護データ公開 • データを特定できないように匿名化する • 匿名化方法:一般化,隠蔽,etc…… ICSE'12勉強会(E2)
プライバシー保護データ公開 • データを特定できないように匿名化する • 匿名化方法:一般化,隠蔽,etc…… ICSE'12勉強会(E2)
MORPHとデータスワッピング • MORPH:yi = xi ± (xi − zi) ∗ r • 保護したい全データに対してMORPHを適用する • 隠蔽前のデータと重複しないようにする • データスワッピング • 準識別子(組み合わせによってデータを一意に特定できる情報)を交換する ランダムな値 隠蔽後のデータ 隠蔽前のデータ 最も近い他クラスのデータ ICSE'12勉強会(E2)
適用実験と結果 • MORPHを欠陥予測問題に適用してみた • 10のOSSプロジェクトの欠陥データに適用 • MORPHを適用したデータを用いて,3種類の欠陥予測モデルを構築,予測精度を比較 • 結果 • MORPHを適用すると,攻撃者がデータを特定できてしまう可能性が1/4に減る(Fig.5参照) • データスワップよりもデータを保護できている(Fig.5参照) • MORPHを適用したデータで欠陥予測モデルを構築しても,一部を除き予測精度はほとんど下がらない(Fig.6,7参照) ICSE'12勉強会(E2)
Bug Prediction Based on Fine-Grained Module HistoriesHideki Hata, Osamu Mizuno and Tohru Kikuno 担当:亀井 靖高(九州大学) 2012年08月30日 ICSE勉強会2012
本論文の研究ドメインと着眼点 • バグ予測研究の1つ • ソフトウェアメトリクスに基づいて,どのファイルに多くのバグが含まれているかを調べる研究 • バグが多く含まれていると判断されたファイルに,より多くのレビュー工数やテスト工数を割り当てる • メソッドレベルv.s. ファイルレベル/パッケージレベルに着目している 従来研究では,この部分しか 取り組まれていない 細粒度での予測を行う方がよいことは従来研究で報告されているが,技術的に困難で取り組まれてなかった.
Historage Hideaki Hata, Osamu Mizuno, and Tohru Kikuno. Historage: fine-grained version control system for Java.IWPSE-EVOL '11. pp. 96-100. 2011. • メソッドレベルでのバージョン管理システム • 著者らによって提案されたGITベースのシステム メソッド単位での変更履歴を容易に収集できるため,メソッド単位のバグの有無やメトリクスの計測が可能に。
評価実験 • RQ1:メソッドレベルの予測は,パッケージレベルやファイルレベルよりも有効か? • RQ2:なぜメソッドレベルの予測は,パッケージレベルやファイルレベルよりも有効なのか? • RQ3:予測粒度が異なると,バグと相関の高いメトリクスは異なるか? YES: メソッド > ファイル > パッケージ ファイルやパッケージには,バグを含まないメソッドが多く 含まれるので,メソッド単位で予測しないと非効率 YES: バグの修正回数は,メソッドレベルでは相関が 高くなかった.同じメソッドでバグが繰り返し発生しない.
所感 • 1章(イントロ),2章(関連研究)が作り込まれている • ファイルレベル v.s. パッケージレベル • 工数ベースによる評価の重要性 などを先行研究をしっかり引用しながら記述 • 時間の都合上割愛したが,実験設計も隙がない. • 10-fold cross validation * 1,000 run • アイディアの面白さ + かっちりと行われた実験は私自身が論文を書く上で非常に参考にしたいと思った