学習データ計測時点による欠陥モジュール予測精度の比較

21
奈良先端科学技術大学院大学 工学研究室 ○内垣聖史,伊原彰紀,門田暁人,松本健一

Upload: naistis

Post on 21-Dec-2014

340 views

Category:

Technology


7 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 学習データ計測時点による欠陥モジュール予測精度の比較

奈良先端科学技術大学院大学

ソフトウェア工学研究室

○内垣聖史,伊原彰紀,門田暁人,松本健一

Page 2: 学習データ計測時点による欠陥モジュール予測精度の比較

� システムの大規模化,多機能化に伴いテストケース

が爆発的に増加

◦ 全てのソースコードをテストすることは現実的でない

◦ 全開発工数に占めるテスト工数の割合は50%弱[2]

⇒テスト工程の効率化が重要

2[2] テスト技術者交流会,“基本から学ぶソフトウェアテスト”,日経BP社,2001

カメラ

インターネット接続 GPS

指紋認証

[1] 株式会社富士通研究所,”CPUの動作を実時間精度で忠実に再現できる世界最高速のシミュレーション技術を開発”,http://pr.fujitsu.com/jp/news/2012/03/13-1.html

多機能化 大規模化[1]

Page 3: 学習データ計測時点による欠陥モジュール予測精度の比較

� テスト開始前に欠陥モジュール(ソースコード)を予測

◦ 欠陥のないモジュールへ割り当てる工数を削減することで,

テスト工程を効率化

3

総工数:100人時

20人時

20人時

20人時

20人時

20人時

5555人時人時人時人時

30303030人時人時人時人時

5555人時人時人時人時

30303030人時人時人時人時

5555人時人時人時人時

総工数:75757575人時人時人時人時

工数の削減

Page 4: 学習データ計測時点による欠陥モジュール予測精度の比較

4

欠陥がありそうなモジュール欠陥がありそうなモジュール欠陥がありそうなモジュール欠陥がありそうなモジュール

予測予測予測予測

モデルモデルモデルモデル

予測予測予測予測

((((分類分類分類分類))))

開発モジュール群開発モジュール群開発モジュール群開発モジュール群((((予測対象予測対象予測対象予測対象))))

欠陥がなさそうなモジュール欠陥がなさそうなモジュール欠陥がなさそうなモジュール欠陥がなさそうなモジュール

学習データ学習データ学習データ学習データ

・欠陥情報

欠陥の有無or数or密度

・メトリクス(特性値)コード行数,分岐数,etc.

過去の開発実績データ過去の開発実績データ過去の開発実績データ過去の開発実績データ

Page 5: 学習データ計測時点による欠陥モジュール予測精度の比較

� 従来研究では学習データとして,前バージョンの開発

終了時のスナップショット1のデータを利用

5

Ver. 3.1(前Ver.)

リリース

予測時点予測時点予測時点予測時点

(実装終了時)

Ver. 3.2(現行Ver.)

リリース

予測モデル予測モデル予測モデル予測モデル

モデル構築

予測

1ある時点のソフトウェアを構成するモジュールの集合

要件分析要件分析要件分析要件分析 設計設計設計設計 実装実装実装実装 テストテストテストテスト 要件分析要件分析要件分析要件分析 設計設計設計設計 実装実装実装実装 テストテストテストテスト

・メトリクス

コード行数

分岐数

etc.

・欠陥情報

欠陥の有無

欠陥数

欠陥密度

Ver. 3.0

リリース

学習データ

評価データ

(予測対象データ)

ウォータフォール開発プロセス

Page 6: 学習データ計測時点による欠陥モジュール予測精度の比較

� イテレーティブ型開発では開発途中で実績データ(メトリクス,欠陥情報)が計測でき,学習データとして利用可能

◦ オープンソースソフトウェア(OSS)ではインテレーティブ型が主流

� OSSプロジェクトに対する欠陥予測に利用可能

6

Ver.Ver.Ver.Ver. 3.13.13.13.1 リリースリリースリリースリリースVer. 3.2Ver. 3.2Ver. 3.2Ver. 3.2 リリースリリースリリースリリース

予測モデル予測モデル予測モデル予測モデル

開発中に開発中に開発中に開発中に

計測可能計測可能計測可能計測可能

イテレーティブ

開発プロセス 要件要件要件要件

分析分析分析分析

テストテストテストテスト

実装実装実装実装

設計設計設計設計

要件要件要件要件

分析分析分析分析

テストテストテストテスト

実装実装実装実装

設計設計設計設計

要件要件要件要件

分析分析分析分析

テストテストテストテスト

実装実装実装実装

設計設計設計設計

Page 7: 学習データ計測時点による欠陥モジュール予測精度の比較

� 欠陥予測において,いつの時点のデータを学習データ

として用いるのが適当かを明らかにする

� 予測時点に近いデータを学習データとして利用可能

7

学習学習学習学習データの計測データの計測データの計測データの計測時点が予測時点が予測時点が予測時点が予測時点時点時点時点にににに

近づくほど高精度での欠陥予測が可能近づくほど高精度での欠陥予測が可能近づくほど高精度での欠陥予測が可能近づくほど高精度での欠陥予測が可能

仮説仮説仮説仮説

予測時点予測時点予測時点予測時点

(実装終了時)

・・・ ・・・ ・・・

~~

Ver. 3.1(前Ver.)

リリース

Ver. 3.2(現行Ver.)

リリース

Page 8: 学習データ計測時点による欠陥モジュール予測精度の比較

� 開発途中のスナップショットを学習データとする欠陥予

測モデルの構築

� 学習データの計測時点による欠陥予測精度の比較

8

実装終了時

予測モデル

モデル構築モデル構築モデル構築モデル構築

予測予測予測予測

予測モデル

予測モデル

・・・ ・・・ ・・・

~~

Ver. 3.1(前Ver.)

リリース

Ver. 3.2(現行Ver.)

リリース

比較・分析比較・分析比較・分析比較・分析

Page 9: 学習データ計測時点による欠陥モジュール予測精度の比較

� OSSプロジェクトデータを対象に,学習データの計測時点を移動させ,各学習データで構築したモデルを評価

◦ 評価データの計測時点は固定

� 予測対象: モジュール欠陥密度

◦ ソースコード1000行当たりの欠陥数

9

モデル

モデル モデル

Page 10: 学習データ計測時点による欠陥モジュール予測精度の比較

� モデル構築アルゴリズム

◦ ランダムフォレスト法[3]

� モデルの予測精度の評価指標

◦ ����[4]

� モジュールの規模を考慮した評価指標

� 値が大きいほどモデルの性能が良い

� 値域は [0,1]

10[4] T. Mende, and R. Koschke,“ Revisiting the evaluation of defect prediction models, ”Proceedings of

International Conference on Predictor Models in Software Engineering (PROMISE’09), pp.1-10, 2009.

[3] L. Breiman,“ Random forests, ”Machine Learning, Vol.45, No.1, pp. 5-32, 2001.

Page 11: 学習データ計測時点による欠陥モジュール予測精度の比較

� Eclipse Platformから取得したスナップショット◦ 取得期間:2005年7月(ver3.1)~2006年7月(ver3.2)

◦ 各月1日0時時点のスナップショットを利用

11

メトリクスメトリクスメトリクスメトリクス 概要概要概要概要 メトリクスメトリクスメトリクスメトリクス 概要概要概要概要

AvgCyclomaticサイクロマティック複

雑度の平均

CountStmtExe実行可能ステートメント

行数

CountLineCodeExe 実行可能コード行数 CountStmtDecl 宣言ステートメント行数

CountDeclClass クラス数 CountLineComment コメント行数

CountDeclfunction 関数の数 NumberOfRevisions 変更行数

CountLineBlanck 空白行数 AddedLines 追加行数

CountLineCode コード行数 RemovedLines 削除行数

CountLineCodeDecl 宣言コード行数 ― ―

使用メトリクス使用メトリクス使用メトリクス使用メトリクス

プロダクトメトリクス:プロダクトメトリクス:プロダクトメトリクス:プロダクトメトリクス:10101010種類種類種類種類 プロセスプロセスプロセスプロセスメトリクス:メトリクス:メトリクス:メトリクス:3333種類種類種類種類

Page 12: 学習データ計測時点による欠陥モジュール予測精度の比較

12

� Step1:予測モデルの構築◦ 説明変数:13種のメトリクス(プロダクト10種+プロセス3種)

◦ 目的変数:欠陥密度

2005/72005/72005/72005/7 2006/62006/62006/62006/62005/82005/82005/82005/8

メトリクス欠陥密度

予測予測予測予測モデルモデルモデルモデル

1111予測予測予測予測モデルモデルモデルモデル

2222予測予測予測予測モデルモデルモデルモデル

12121212

・・・

スナップショット

~~

Page 13: 学習データ計測時点による欠陥モジュール予測精度の比較

� Step2:欠陥密度の予測

◦ 構築した各予測モデルにそれぞれ評価データのメトリクスを

適用し,各モジュールの欠陥密度を予測

13

予測予測予測予測モデルモデルモデルモデル

1111

予測予測予測予測モデルモデルモデルモデル

2222

予測予測予測予測モデルモデルモデルモデル

12121212

評価データ

欠陥密度

(予測値)

Page 14: 学習データ計測時点による欠陥モジュール予測精度の比較

� Step3: ����の算出

◦ 予測した欠陥密度と評価データから計測した欠陥密度の実

測値,モジュール規模より����を算出し,モデルごとに比較・

分析

14

評価評価評価評価

データデータデータデータ

欠陥密度

(実測値)欠陥密度

(予測値)

����1

����2

����12

モジュール

規模

Page 15: 学習データ計測時点による欠陥モジュール予測精度の比較

� 学習データの計測時点が予測時点から…◦ 遠い場合,予測精度が低く,近い場合,予測精度が高い

� 学習データの計測時点計測時点計測時点計測時点が遅くなるが遅くなるが遅くなるが遅くなるほどほどほどほど精度が上昇する

傾向を確認 (有意水準:p<0.01)

15

0.0

0.2

0.4

0.6

0.8

1.0

7月 8月 9月 10月 11月 12月 1月 2月 3月 4月 5月 6月

2005年 2006年

����

評価データ:2006年7月時

予測時点から遠い 予測時点に近い

学習データの計測時点

Page 16: 学習データ計測時点による欠陥モジュール予測精度の比較

� 使用するデータセット,モデル構築アルゴリズム,評価

指標は同一

� 学習データを固定(2005年7月時)し,その他のスナップショットを評価データとして実験を実施

16

(本実験)

(追加実験)

Page 17: 学習データ計測時点による欠陥モジュール予測精度の比較

� 評価データの計測時点計測時点計測時点計測時点がががが早く早く早く早くなるほどなるほどなるほどなるほど精度が上昇す

る傾向を確認 (有意水準:p<0.01)

17

0.0

0.2

0.4

0.6

0.8

1.0

8月 9月 10月 11月 12月 1月 2月 3月 4月 5月 6月 7月

2005年 2006年

����

学習データの計測時点が予測時点に

近づくほど高精度での欠陥予測が可能

学習データ:2005年7月時

学習データに近い 学習データから遠い

評価データの計測時点(予測時点)

Page 18: 学習データ計測時点による欠陥モジュール予測精度の比較

� 各モデルの予測精度とメトリクス値との関係を分析

◦ 時間経過により13個中9種のメトリクスの取り得る範囲が拡大

◦ 学習データと評価データの計測時点が離れるほどメトリクスの

分布の違いが大きくなる

⇒モデルに対する評価データの適合が困難になり,精度が低下

18

3 3 3 3 3

8256 8421 8628

9151 10032

0

10

4000

6000

8000

10000

12000

7月 10月 1月 4月 7月

2005年 2006年

0 0 0 0 0

1849 1881 19292051 2243

0

500

1000

1500

2000

2500

7月 10月 1月 4月 7月

2005年 2006年

0 0 0 0 0

1329

1579 1366

3096 3223

0

1000

2000

3000

4000

7月 10月 1月 4月 7月

2005年 2006年

コード行数コード行数コード行数コード行数 関数の数関数の数関数の数関数の数 追加行数追加行数追加行数追加行数

■:最大値 ◆:最小値

Page 19: 学習データ計測時点による欠陥モジュール予測精度の比較

� 実験の結果より,学習データの計測時点が予測時点

に近いほど精度が増加する傾向傾向傾向傾向を確認

� 計測時点と予測時点が遠い場合,精度は不安定

� 計測時点と予測時点が近い場合,精度は単調増加

19

単調増加単調増加単調増加単調増加不安定不安定不安定不安定( ( ( ( 増加増加増加増加 or or or or 減少減少減少減少))))

予測時点の3か月以内のデータを用いる事が望ましい

(本実験) (追加実験)

Page 20: 学習データ計測時点による欠陥モジュール予測精度の比較

� 目的

◦ 欠陥予測において,いつの時点のデータを学習データとして

利用するのが適当なのかを明らかにした

� 得られた知見

◦ 学習データ及び評価データとして利用する各スナップショット

の計測時点が近いほど高い予測精度が得られた

◦ 予測精度の高低は,各スナップショット間のメトリクス値の取

り得る範囲の違いに左右されることが分かった

� 結論

◦ 予測時点の3か月以内のスナップショットを学習データとして予測モデルを構築することが望ましい

20

Page 21: 学習データ計測時点による欠陥モジュール予測精度の比較

� 妥当性の確認

◦ 他のOSSプロジェクトデータを利用して同様の実験を実施

� 現時点で約20プロジェクト分のモジュールデータを取得済み

� プロジェクト特性が予測精度に与える影響の分析

◦ 開発の進捗に伴いメトリクス値が大きく変化する時期(プロプロプロプロジェクト初期ジェクト初期ジェクト初期ジェクト初期)と変化が少ない時期(プロジェクト安定期プロジェクト安定期プロジェクト安定期プロジェクト安定期)において予測精度の傾向の強さに違いがあるかを検証

21

立ち上げ

~~

予測 予測

初期 安定期

比較・分析比較・分析比較・分析比較・分析