Tải bản đầy đủ (.pptx) (60 trang)

Softwaretesting 13

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (824.89 KB, 60 trang )

ソフトウェアテスト
   [13] バグ予測とテスト計予測とテスト計とテスト計テスト計

Software Testing
[13] Bug Prediction and Test Plan
あまん ひろひさ ひろひさ

阿萬 裕久 裕久( AMAN

Hirohisa )

(C) 2007-2022 Hirohisa AMAN

1


Fault-Prone モジュール分析分析
 バグ予測とテスト計のことテスト計をソフトウェア工学ではソフトウェア工学ではではフォー
ル分析ト
( fault )とテスト計呼ぶことも多いぶことテスト計も多い多いい
 プログ予測とテスト計ラマのの誤りり( error )により,プログプログ予測とテスト計
ラム中に中ににフォール分析トが作り込まれる.結果,作り込まれる.結果,り込まれる.結果,まれる.結果,結果,プログ
プログ予測とテスト計ラム中にの実行中にに障害,プログ故障,プログ不具合( f
ailure )が作り込まれる.結果,発生する.する.結果,

 メトリクスによりフォール分析トが作り込まれる.結果,ありそうな
( Fault-Prone )モジュール分析の特徴を見つをソフトウェア工学では見つつ
ける
(C) 2016-2022 Hirohisa AMAN

2




Fault-Prone モジュール分析分析の意義
 ソフトウェア品質保証に必要な活動:に必要な活動:な活動:



テスト
レビュー

 これらの活動の計画に役立てる:てる:
フォール分析ト( fault )が作り込まれる.結果,どの部分にありそ
うか特定特定する
※ 直感的には「事故が起こりやすい交差点はどこか?」という考え方には「事故が起こりやすい交差点はどこか?」という考え方事故が作り込まれる.結果,起こりやすい交差点はどこか?」という考え方こりやすい交差点はどこか?」という考え方はどこか特定?」とテスト計いう考え方え方方

(C) 2016-2022 Hirohisa AMAN

3


フォール分析ト(バグ予測とテスト計)の分布に着目に着目
 フォール分析ト(バグ予測とテスト計)は人間によって誤ってによって誤りって
作り込まれる.結果,られている
 1つ1つのバグ予測とテスト計だけに注目しても多いそれぞれ原
因が違うが作り込まれる.結果,違ううので,プログそれだけでは解析が作り込まれる.結果,難しいしい
 全体の傾向をとらえる目的での傾向をとらえる目的でをソフトウェア工学ではとテスト計らえ方る目的には「事故が起こりやすい交差点はどこか?」という考え方で統計学では的には「事故が起こりやすい交差点はどこか?」という考え方アプ
ローチが作り込まれる.結果,重要な活動:になる

 フォール分析ト(バグ予測とテスト計)が作り込まれる.結果,,プログこれまでにどう
いった分布になっていたのか分布に着目になっていた分布になっていたのかのか特定をソフトウェア工学では見つてみる

(C) 2016-2022 Hirohisa AMAN

4


(再び登場)び登場)登場)

パレートの原理
 バグ予測とテスト計の約 80% は,プログ約 20% のモジュール分析
に存在
一様に分散に分散
一部に
ではなく

集中に

(C) 2016-2022 Hirohisa AMAN

5


Rstudio をソフトウェア工学では起こりやすい交差点はどこか?」という考え方動しなさい
 これか特定ら Rstudio をソフトウェア工学では使ったデータ分析をった分布になっていたのかデータ分析を分析をソフトウェア工学では
行います
 Teams か特定ら Rscript13.R とテスト計 data1
3.csv をソフトウェア工学ではダウロードしなさいしなさい
 Rscript13.R をソフトウェア工学では Rstuio で開きなさいきなさい

(C) 2016-2022 Hirohisa AMAN


6


前回と同じメトリクスのデータを使とテスト計同じメトリクスのデータを使じメトリクスのデータを使メトリクスのデータ分析ををソフトウェア工学では使ったデータ分析を

 まずは前回と同じメトリクスのデータを使とテスト計同じメトリクスのデータを使じメトリクスのデータを使 NASA 公開きなさいのデータ分析ををソフトウェア工学では
使ったデータ分析をう
 データ分析をファイル分析名 data13.csv
 この内容を をソフトウェア工学では data とテスト計いう名前のデータ分析をフレー
ム中にとテスト計して読み込みますみ込まれる.結果,みます

data = read.csv( file.choose( ))

(C) 2016-2022 Hirohisa AMAN

7


まずは簡単な分析をな分析をソフトウェア工学では
 モジュール分析集合をソフトウェア工学では「事故が起こりやすい交差点はどこか?」という考え方バグ予測とテスト計無しし」とテスト計「事故が起こりやすい交差点はどこか?」という考え方バグ予測とテスト計有
り」の2種類に分割し,種類に分割し,に分割し,し,プログ
 サイクロマのティック数の違いの違ういをソフトウェア工学では見つる
 バグ予測とテスト計予測とテスト計のた分布になっていたのかめに(サイクロマのティック数の違いの)閾値
をソフトウェア工学では見つつける
バグ予測とテスト計無しし

比較

8


3
11

5

バグ予測とテスト計有り

14
8

20
12

(C) 2016-2022 Hirohisa AMAN

8


箱ひげ図ひげ図図

列名

列名

データ分析をフレーム中に

boxplot(CC~BUG, data=data)
大まかであるがまか特定であるが作り込まれる.結果,
分布に着目の違ういが作り込まれる.結果,
見つてとテスト計れる

縦軸:サイクロマのティック数の違い
横軸:バグ予測とテスト計の有無し
( 0 = なし,プログ 1 = あり)

(C) 2016-2022 Hirohisa AMAN

9


要な活動:約統計量でも比較でも多い比較
 バグ予測とテスト計無ししとテスト計バグ予測とテスト計有りでサイクロマのティック
数の違いをソフトウェア工学では分けて summary 関数の違いでチェック

cc0 = data$CC[data$BUG==0]
cc1 = data$CC[data$BUG==1]
summary(cc0) summary(cc1)
Min. 1st Qu.
Max.
1.000
1.000
96.000

Median
2.000

Mean 3rd Qu.
4.705

5.000


(C) 2016-2022
Hirohisa AMAN
Min. 1st Qu.
Median
Mean 3rd Qu.
Max.

10


メトリクスの閾値をソフトウェア工学では考え方え方る
 データ分析ををソフトウェア工学では見つるとテスト計,プログサイクロマのティック数の違いは
バグ予測とテスト計の有無しとテスト計関係がありそうが作り込まれる.結果,ありそうだとテスト計いえ方る
 サイクロマのティック数の違いが作り込まれる.結果,大まかであるがきい方が作り込まれる.結果,疑わしいわしい

 そこで,プログある値より大まかであるがきいようであればババ
グ予測とテスト計有りとテスト計予測とテスト計することテスト計にしてみる
Yes

バグ予測とテスト計有り

CC >

No

バグ予測とテスト計無しし

(C) 2016-2022 Hirohisa AMAN

11



データ分析をセットをソフトウェア工学では分割し,
 簡単な分析をな予測とテスト計モデル分析をソフトウェア工学では考え方え方る
 この予測とテスト計モデル分析をソフトウェア工学では構築するするには訓練データデータ分析をが作り込まれる.結果,
必要な活動:
 さらに,プログ予測とテスト計モデル分析の能力を評価するをソフトウェア工学では評価するするには,プログ
テストデータ分析をも多い必要な活動:

 そこで data をソフトウェア工学では 2 つに分割し,してこれらをソフトウェア工学では
用意することテスト計にする
(C) 2016-2022 Hirohisa AMAN

12


ランダム中にに振り分けるり分ける
 まずは行番号 1 ~ nrow(data) をソフトウェア工学では
シャッフル分析する:次の関数 の関数の違い sample で
シャッフル分析された分布になっていたのか行番号のリストをソフトウェア工学では得るる

set.seed(1234)
idx =
sample( nrow(data) )
(C) 2016-2022 Hirohisa AMAN

13


シャッフル分析後のデータを分割のデータ分析ををソフトウェア工学では分割し,

 訓練データデータ分析を( d.train ):最初の の 300

d.train
= data[idx[1:300], ]

 テストデータ分析を( d.test ):残り(り( 205
d.test
個) = data[idx[301:nrow(data)], ]

(C) 2016-2022 Hirohisa AMAN

14


(例)サイクロマのティック数の違いの閾値
をソフトウェア工学では 10 にした分布になっていたのか場合(1/6)
 簡単な分析をな例とテスト計して,プログサイクロマのティック数の違い
( CC )が作り込まれる.結果, 10 をソフトウェア工学では超えるえ方るようであればババグ予測とテスト計
有りとテスト計予測とテスト計するとテスト計しよう
 訓練データデータ分析をでこれに該当するモジュールでするモジュール分析で
のバグ予測とテスト計の有無しをソフトウェア工学では確認してみるしてみる

d.train$BUG[d.train$CC>10]
[1] 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0
0 1 0 0
(C) 2016-2022 Hirohisa AMAN

15



(例)サイクロマのティック数の違いの閾値
をソフトウェア工学では 10 にした分布になっていたのか場合(2種類に分割し,/6)
 「事故が起こりやすい交差点はどこか?」という考え方バグ予測とテスト計有りとテスト計予測とテスト計」した分布になっていたのか結果をソフトウェア工学では result
とテスト計して

result = d.train$BUG[d.train$CC>10]
[1] 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0
0 1 0 0

length(result)

sum(result)
予測とテスト計の中にで正解した分布になっていたのか個数の違い

予測とテスト計した分布になっていたのか個数の違い

[1] 41

[1] 10
(C) 2016-2022 Hirohisa AMAN

16


(例)サイクロマのティック数の違いの閾値
をソフトウェア工学では 10 にした分布になっていたのか場合(3/6)
 結果をソフトウェア工学では整理するとテスト計
length(result)

sum(result)

予測とテスト計の中にで正解した分布になっていたのか個数の違い

予測とテスト計した分布になっていたのか個数の違い

[1] 41

[1] 10

訓練データデータ分析ををソフトウェア工学では使ったデータ分析をった分布になっていたのか
予測とテスト計の結果
予測とテスト計

Buggy

実際
Buggy

Non Buggy

10

31

合計

41

Non Buggy
合計
(C) 2016-2022 Hirohisa AMAN


17


(例)サイクロマのティック数の違いの閾値
をソフトウェア工学では 10 にした分布になっていたのか場合(4/6)
 実際にバグ予測とテスト計有りだった分布になっていたのか個数の違いは
sum(d.train$BUG)
実際にバグ予測とテスト計有りの個数の違い

[1] 30
訓練データデータ分析ををソフトウェア工学では使ったデータ分析をった分布になっていたのか
予測とテスト計の結果
予測とテスト計

Buggy
Non Buggy
合計

実際
Buggy

Non Buggy

10
20
30

(C) 2016-2022 Hirohisa AMAN


31

合計

41

18


再び登場)現率と適合率とテスト計適合率と適合率
再び登場)現率と適合率

実際に
バグ予測とテスト計有り
(正解
集合)

実際に
バグ予測とテスト計有り
(正解
集合)
予測とテスト計
成功

予測とテスト計
成功
バグ予測とテスト計有り
とテスト計予測とテスト計

割し,合で見つる


適合率と適合率

予測とテスト計
成功
バグ予測とテスト計有り
とテスト計予測とテスト計

(C) 2016-2022 Hirohisa AMAN

19


(例)サイクロマのティック数の違いの閾値
をソフトウェア工学では 10 にした分布になっていたのか場合(5/6)
訓練データデータ分析ををソフトウェア工学では使ったデータ分析をった分布になっていたのか
予測とテスト計の結果
予測とテスト計

Buggy

実際
Buggy

Non Buggy

10

合計


41

Non Buggy
合計

30

10
再び登場)現率と適合率=
≅ 0.333
30

10
適合 率と適合率=
≅ 0.244
41

(C) 2016-2022 Hirohisa AMAN

20



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×