E - qwik.jp

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