sound empirical evidence in software testing gordon fraser, and andrea arcuri

17
Sound Empirical Evidence in Sound Empirical Evidence in Software Testing Software Testing Gordon Fraser, and Andrea Arcuri Gordon Fraser, and Andrea Arcuri 担担 担担 担担 担担担担担 () 2012 担 08 担 30 担 ICSE 担担担 2012 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.

Upload: herman-carter

Post on 30-Dec-2015

43 views

Category:

Documents


0 download

DESCRIPTION

Sound Empirical Evidence in Software Testing Gordon Fraser, and Andrea Arcuri. 担当:角田 雅照(東洋大学). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Sound Empirical Evidence in Software Testing Gordon Fraser, and Andrea Arcuri

Sound Empirical Evidence in Sound Empirical Evidence in Software TestingSoftware Testing

Gordon Fraser, and Andrea ArcuriGordon Fraser, and Andrea Arcuri

担当:角田 雅照(東洋大学)

2012 年 08 月 30 日  ICSE 勉強会 2012

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.

Page 2: Sound Empirical Evidence in Software Testing Gordon Fraser, and Andrea Arcuri

背景・目的背景・目的 背景

– ソフトウェア開発において,テストの自動化は重要であり,これまで様々なテストケース生成方法が提案されてきた.

– 従来研究では高いカバレッジが示されているが,特定の種類のソフトウェア(組み込み系など)を用いて評価しており,” threats to external validity” が残っている.

目的– この問題に対応するために,より現実的なデータ

セットにテストケース生成方法を適用し,その場合の問題点を明らかにする.

2

Page 3: Sound Empirical Evidence in Software Testing Gordon Fraser, and Andrea Arcuri

アプローチアプローチSourceForge から代表的な 100 件の Java

プロジェクトを選択し,実験に用いた.

テストケース生成方法として,遺伝的アルゴリズムをベースとする EvoSuite を用いた.– 筆者らが提案している方法.研究の目的は現実に

起こる問題を確かめることであり,性能の比較ではない.

– 安全でないテストケース(ファイル操作を行うケースなど)は実行を禁止する.

3

Page 4: Sound Empirical Evidence in Software Testing Gordon Fraser, and Andrea Arcuri

結果結果 カバレッジが低いクラスがあった.それらを

調べた結果,以下の特徴が見られた.– ファイル操作するクラス– GUI ライブラリを扱うクラス– ネットワークアクセスをするクラス

現実のソフトウェアをテストすることを想定した場合,これらの(安全でない操作をする)クラスのカバレッジを高める必要がある.– 安全にファイル操作のテストができる仕組み作り

など.

4

Page 5: Sound Empirical Evidence in Software Testing Gordon Fraser, and Andrea Arcuri

論文の特徴論文の特徴 論文で用いたデータセットを,ベンチマーク用の

データとして公開している. 従来研究のサーベイを行なっている. 文章が読みやすい.

手間は掛けているが,難しいことはしていない.– かなり大規模に実験を行なっている.

• 実験の実行に 122 日掛かっている.

– 統計的にも難しいことはしていない.– 自分たちの提案方法を評価しただけ,と解釈できなく

もない.

5

Page 6: Sound Empirical Evidence in Software Testing Gordon Fraser, and Andrea Arcuri

Privacy and Utility for Defect Prediction: Experiments with MORPH

Fayola Peters, Tim Menzies (West Virginia University )

担当:伏田 享平( NTT データ)

組織間でのプロジェクトデータ共有を目的とし,秘密情報を保護するための手法を提案した.

本論文の貢献

Page 7: Sound Empirical Evidence in Software Testing Gordon Fraser, and Andrea Arcuri

背景・目的• プライバシーに関する問題がソフトウェ

ア開発組織のデータ共有を妨げている–具体的なプロジェクト名と,その工数や規模

などが紐付いた情報は他社には見せたくない–プロジェクト名だけ隠しても,他のプロジェ

クト情報から特定されてしまう可能性がある

• データの本質的な性質を損なわず,プライバシー情報を隠蔽する手法 MORPH を提案する

ICSE'12 勉強会( E2 ) 7

Page 8: Sound Empirical Evidence in Software Testing Gordon Fraser, and Andrea Arcuri

name wmc dit cbo lcom loc バグ?taskdefs. ExecuteOn 11 4 14 29 395 0 Default Logger 14 1 8 49 257 1 taskdefs. TaskOut- putStream 3 2 1 0 58 1 taskdefs. Cvs 12 3 12 32 310 0 taskdefs. Copyfile 6 3 4 1 136 1 NoBanner Logger 4 2 3 0 59 0

プライバシー保護データ公開の例

• バグ予測のためのデータを公開したい• 「どのファイルにバグがあったか」は知られた

くない

名前を隠してしまえ!

確か taskdefs. Copyfile の規模って 100 行くらいだったよな.じゃあこれが……

ICSE'12 勉強会( E2 ) 8

名前だけ隠しても,他の値を知っている人にはばれてしまう!

Page 9: Sound Empirical Evidence in Software Testing Gordon Fraser, and Andrea Arcuri

プライバシー保護データ公開• データを特定できないように匿名化する– 匿名化方法:一般化,隠蔽, etc……

name wmc dit cbo lcom loc バグ?taskdefs. ExecuteOn 11 4 14 29 395 0 Default Logger 14 1 8 49 257 1 taskdefs. TaskOut- putStream 3 2 1 0 58 1 taskdefs. Cvs 12 3 12 32 310 0 taskdefs. Copyfile 6 3 4 1 136 1 NoBanner Logger 4 2 3 0 59 0

ICSE'12 勉強会( E2 ) 9

Page 10: Sound Empirical Evidence in Software Testing Gordon Fraser, and Andrea Arcuri

プライバシー保護データ公開• データを特定できないように匿名化する– 匿名化方法:一般化,隠蔽, 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 taskdefs. TaskOut- putStream <7 * * <10 <150 1 taskdefs. Cvs 11-14 <5 >=10 25-50 >250 0 taskdefs. Copyfile <7 <5 <10 <10 <150 1 NoBanner Logger <7 <5 <10 <10 <150 0

ICSE'12 勉強会( E2 ) 10

Page 11: Sound Empirical Evidence in Software Testing Gordon Fraser, and Andrea Arcuri

MORPH とデータスワッピング• MORPH :

yi = xi ± (xi − zi) ∗ r

–保護したい全データに対して MORPH を適用する

–隠蔽前のデータと重複しないようにする

• データスワッピング–準識別子(組み合わせによってデータを一意

に特定できる情報)を交換する

隠蔽後のデータ 隠蔽前のデータ 最も近い他クラスのデータ

ランダムな値

ICSE'12 勉強会( E2 ) 11

Page 12: Sound Empirical Evidence in Software Testing Gordon Fraser, and Andrea Arcuri

適用実験と結果• MORPH を欠陥予測問題に適用してみた– 10 の OSS プロジェクトの欠陥データに適用–MORPH を適用したデータを用いて,3種類

の欠陥予測モデルを構築,予測精度を比較• 結果–MORPH を適用すると,攻撃者がデータを特

定できてしまう可能性が 1/4 に減る( Fig.5参照)

–データスワップよりもデータを保護できている( Fig.5参照)

–MORPH を適用したデータで欠陥予測モデルを構築しても,一部を除き予測精度はほとんど下がらない( Fig.6,7参照)

ICSE'12 勉強会( E2 ) 12

Page 13: Sound Empirical Evidence in Software Testing Gordon Fraser, and Andrea Arcuri

Bug Prediction Based on Bug Prediction Based on Fine-Grained Module Fine-Grained Module HistoriesHistories

Hideki Hata, Osamu Mizuno and Hideki Hata, Osamu Mizuno and Tohru KikunoTohru Kikuno 担当:亀井 靖高(九州大学)

2012 年 08 月 30 日  ICSE 勉強会 2012

Page 14: Sound Empirical Evidence in Software Testing Gordon Fraser, and Andrea Arcuri

本論文の研究ドメインと着眼点本論文の研究ドメインと着眼点

バグ予測研究の1つ– ソフトウェアメトリクスに基づいて,どのファ

イルに多くのバグが含まれているかを調べる研究

– バグが多く含まれていると判断されたファイルに,より多くのレビュー工数やテスト工数を割り当てる

メソッドレベル v.s. ファイルレベル/パッケージレベルに着目している

14

従来研究では,この部分しか取り組まれていない

細粒度での予測を行う方がよいことは従来研究で報告されているが,技術的に困難で取り組まれてなかった.

Page 15: Sound Empirical Evidence in Software Testing Gordon Fraser, and Andrea Arcuri

HistorageHistorage

メソッドレベルでのバージョン管理システム– 著者らによって提案された GIT ベースのシス

テム

15

Hata2011引用:

GIT

Hideaki Hata, Osamu Mizuno, and Tohru Kikuno. Historage: fine-grained version control system for Java.IWPSE-EVOL '11. pp. 96-100. 2011.

Historage

メソッド単位での変更履歴を容易に収集できるため,メソッド単位のバグの有無やメトリクスの計測が可能に。

Page 16: Sound Empirical Evidence in Software Testing Gordon Fraser, and Andrea Arcuri

評価実験評価実験

RQ1 :メソッドレベルの予測は,パッケージレベルやファイルレベルよりも有効か?

RQ2 :なぜメソッドレベルの予測は,パッケージレベルやファイルレベルよりも有効なのか?

RQ3 :予測粒度が異なると,バグと相関の高いメトリクスは異なるか?

16

YES:YES:メソッド > ファイル > パッケージメソッド > ファイル > パッケージ

ファイルやパッケージには,バグを含まないメソッドが多くファイルやパッケージには,バグを含まないメソッドが多く含まれるので,メソッド単位で予測しないと非効率含まれるので,メソッド単位で予測しないと非効率

YES:YES: バグの修正回数は,メソッドレベルでは相関がバグの修正回数は,メソッドレベルでは相関が高くなかった.同じメソッドでバグが繰り返し高くなかった.同じメソッドでバグが繰り返し発生しない.発生しない.

Page 17: Sound Empirical Evidence in Software Testing Gordon Fraser, and Andrea Arcuri

所感所感1章(イントロ), 2章(関連研究)が作り込まれ

ている– ファイルレベル v.s. パッケージレベル– 工数ベースによる評価の重要性などを先行研究をしっかり引用しながら記述

時間の都合上割愛したが,実験設計も隙がない.– 10-fold cross validation * 1,000 run

アイディアの面白さ + かっちりと行われた実験は私自身が論文を書く上で非常に参考にしたいと思った

17