0
© Fuji Xerox Co., Ltd. All Rights Reserved.
ソフトウェアバグの現状: 膨大化するソフトウエア開発と生産性
0 1 2 3 4 5 1960 1970 1980 1990 2000 2010 生産性( H/FP) 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 1 96 0 19 7 0 19 8 0 1 99 0 2 00 0 20 1 0 ソ フ トの量( F P ) 0 5 0 0 0 1 0 0 0 0 1 5 0 0 0 2 0 0 0 0 2 5 0 0 0 1960 1970 1980 1990 2000 2010① 開発機能数の指数的な増加
② 開発生産性の向上
生産性を考慮しても、開発時間へのインパクトは、
2000年以降、急激に大きくなっている
① 開発機能数の指数的な増加
② 開発生産性の向上
生産性を考慮しても、開発時間へのインパクトは、
2000年以降、急激に大きくなっている
出典:Software Metricsより
開発機能数
開発機能数
1つの
1つの
機能を開発する時間
機能を開発する時間
開発時間(相対)
開発時間(相対)
ソフトウェアエ ンジニアリング の効果 食い止める何か が必要P
R
D
加速
減速
ANDAND
NOT NOT Dモードアクセル
ブレーキ
加速の関係
減速の関係
前頁の加速/減速の論理式を原因結果グラフにしてみましょう
この様に、原因結果グラフにすると、原因と結果の関係(関連)を把握しやすくなります。
前頁の論理式
D and (not R) and (not P) = Dモード
Dモード and アクセル = 加速
ブレーキ = 減速
2
© Fuji Xerox Co., Ltd. All Rights Reserved.
下線
太字
斜体
1-8. 直交表が網羅する組合せ
2機能間の組合せが全て存在している (この状態を組合せ網羅率100%と定義する) 全組合せでは直交表に存在しない組合せも出現する (ただし、テスト回数は指数関数的に増大する)OFF
ON
ON
OFF
OFF
ON
OFF
ON
ON
OFF
OFF
ON
太字
斜体
下線
ON OFF ON OFF 斜体 テストNo.4 テストNo.3 テストNo.2 テストNo.1 L4直交表 ON ON OFF OFF 太字 ON ON OFF OFF 下線 ON ON OFF テストNo.4 OFF OFF ON テストNo.5 ON OFF ON テストNo.6 OFF ON ON テストNo.7 ON ON OFF OFF 斜体 テストNo.8 テストNo.3 テストNo.2 テストNo.1 全組合せ ON OFF OFF OFF 太字 ON OFF ON OFF 下線実際にやってみました : プリンタ機能組み合わせテスト
アプリ
ABC
ABC
ABC
OS
ドライバ
印刷物
NET WORK
ドライバ
アプリ
OS
Net
Net
Decomposer
Imager
NET WORK
アプリからの出力指示を始点として紙が出力されるまでのソフト群がテスト対象
アプリからの出力指示を始点として紙が出力されるまでのソフト群がテスト対象
印字不良
印字不良
/
/
出力可否
出力可否
が不具合として検出さ
が不具合として検出さ
れる
れる
プ
リン
ト実
行
指
示
ドライバ設定
ドライ
バ設定
プリント実行指示
4
© Fuji Xerox Co., Ltd. All Rights Reserved.
HAYST法の結果
モノクロ
モノクロ
ネットワークプリンタ
ネットワークプリンタ
カラーネットワークプリンタ
カラーネットワークプリンタ
因子数:21
因子数:34
製品の特徴
不具合状況
(2水準系直交表L64、
L128)
網羅率
直交表
不具合数
79%
L64
5件
テスト数
網羅率
直交表
不具合数
73%
L128
9件
テスト数
多水準の扱い
3水準~4水準 5水準以上 2水準以下 4水準線点図 8水準線点図 2水準線点図 対応する線点図禁則の扱い
全てのテスト項目に関して、禁則組合せ
が出現しないように、構成
(64項目テスト項目があったら、1項目も禁則関
係が出現していない。禁則にならないように、
他の水準を割り当てている)
水準数:79
水準数:152
6-4. 直交表の生い立ち: ラテン方陣
大将
中将
小将
中将
小将
大将
小将
大将
中将
このような表を
このような表を
ラテン方陣と呼ぶ
ラテン方陣と呼ぶ
四方からの攻撃をバラ
四方からの攻撃をバラ
ンスよく守っている
ンスよく守っている
6
© Fuji Xerox Co., Ltd. All Rights Reserved.
6-11. 機能数と直交表によるテスト
直交表でテストを行うと、網羅率
を保証しつつテスト数を大幅に
削減できる
直交表のテスト数は機能に対し
て、加算で増加する
従来のフルコンビネーションは、
掛算で増加する
トリプル網羅率 50.0 90.0 96.2 98.3 99.2 99.6 99.8 99.9 100.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 4 8 16 32 64 128 256 512 1024 直交表 % トリプル網羅率サイ
ズ
テストでき
る機能数
テスト数
2機能間
の網羅率
3機能間
の網羅率
2機能の
組合せ数
2機能間
のテスト数
3機能の
組合せ数
3機能間
のテスト数
2機能間
のテスト
3機能間
のテスト
L4
3
4
100%
50.00%
3
12
1
8
3
1
L8
7
8
100%
90.00%
21
84
35
280
11
32
L16
15
16
100%
96.15%
105
420
455
3640
26
219
L32
31
32
100%
98.28%
465
1860
4495
35960
58
1104
L64
63
64
100%
99.18%
1953
7812
39711
317688
122
4923
L128
127
128
100%
99.60%
8001
32004
333375
2667000
250
20753
L256
255
256
100%
99.80%
32385
129540
2731135 21849080
506
85177
フルコンビネーションテスト
直交表の効率
直交表
6-14. 直交表の利点 : テスト項目数が減る
直交表を用いない場合の組合せテスト
直交表を用いない場合の組合せテスト
直交表を用いる場合の組合せテスト
直交表を用いる場合の組合せテスト
割付け 速度 の“早い”に着目して見てみると、 “早い”に対して、残りの因子の保有する水準との組合せが 直交表の中に出現しているのが分かる。 因子の水準に着目してみても同じ状況になっている。 SWテストへは、直交表の「2因子間の組合せは100%保証する (3因子以上の組合せに関しては保証しない)」という性質を利用 している。 組合せを確認したい設定項目(因子)と各因子のとりうる値 (水準)が次のようになっているとする。 全ての組み合わせを考慮した実験を試みた場合には、 2×2×2 = 8 通り ( 23通り ) 組合せが発生する。 SWの不具合発生は2因子間の組合せで発生している。 2因子間の組合せのみ100%保証するという方針で考えてみる。 因子数が3つだったから8通りですむが、因子数が50個の場 合には250 = 1.12589990×1015通りのテストをこなさなけれ ば、全ての組合せをテストしたことにはならない。 出来るわけ無いので。何とか絞り込まなければならない…。 適当に間引いてしまうとやばそう。 なんか良い方法はないの?? 遅い 高い 高度 低い 10 5 質量 早い 速度 水準名 因子名 高い 低い 高い 低い 高度 テストNo.3 テストNo.3 テストNo.2 テストNo.1 L4直交表 遅い 遅い 早い 早い 速度 10 10 5 5 質量 1 0 1 0 高度 テストNo.3 テストNo.3 テストNo.2 テストNo.1 L4直交表 1 1 0 0 速度 1 1 0 0 質量8
© Fuji Xerox Co., Ltd. All Rights Reserved.
8-2. 遷移パスを自動的に抽出する方法
S0
S1
S2
S3
a
b
c
d
e
f
g
j
k
h
i
k
e
g
S3
d
j
S2
f
c
i
S1
a
b
h
S0
S3
S2
S1
S0
関係行列
関係行列
k
e
g
0
d
j
0
0
f
c
i
0
0
a
b
h
k
e
g
0
d
j
0
0
f
c
i
0
0
a
b
h
gf+ed+kk
gc+ej+ke
gi+kg
0
S3
jd+dk
jj+de
dg
0
S2
if+cd+fk
ic+cj+fe
ii+fg
0
S1
bf+ad
ha+bc+aj
hb+bi
hh
S0
S3
S2
S1
S0
状態S1からS2への
遷移はイベントc
によって起こると
いう関係を示す
9-1. 成果
市場での成果
開発プロセスでの成果
結 合 バグ 検出率 [%] 100% 単 体 機 能 要求 定義 80% 1998年製品 50% 現状 今後 30% 1995年製品 1 2 3 4 5 6ヶ月 システム QAテスト 設計 Code 90%開発プロセスでの成果
結 合 バグ 検出率 [%] 100% 単 体 機 能 要求 定義 80% 1998年製品 50% 現状 今後 30% 1995年製品 1 2 3 4 5 6ヶ月 1 2 3 4 5 6ヶ月 システム QAテスト 設計 Code 90% 0 10 20 30 40 50 60 70 80 90 100 Limoges Oceans2TTM 0 5 10 15 20 25 30 35 網羅率 FC 網羅率 [% ]80%
30%
0件
製品X
製品Y
勘と経験
HAYST法
市場不具合 市場不具合数 0 10 20 30 40 50 60 70 80 90 100 Limoges Oceans2TTM 0 5 10 15 20 25 30 35 網羅率 FC 網羅率 [% ]80%
30%
0件
製品X
製品Y
勘と経験
HAYST法
市場不具合 市場不具合数評価での成果
100 60 11 9 6 2 10 4 7 2 7 0 20 40 60 80 100 120 従来 手法 HAY ST手作業 製品A 製品B 製品C 製品D 製品E 製品F 製品G 製品H 製品I
勘と経験で手作業で作成 HAYSTで手作業で作成 HAYST自動生成ツール使用 工数 [% ] 1テストマトリクスあたりの工数比較
人材開発での成果
16 27 44 60 76 94 113 131 150 164 180 199 218 0 50 100 150 200 250 2001 /9/3 2002 /5/13 200 2/6/ 3 2002 /11/ 11 2002 /12/ 2 2003 /5/13 2003 /6/3 2003 /7/1 200 3/11/ 10 2004 /1/ 19 2004/ 5/31 2004/ 6/28 200 5/3/ 8 0% 20% 40% 60% 80% 100% 受講者数 満足度フロー
アウト
バグの
撲滅
(CS向
上)
開発
プロセ
ス
の加
速化
(TTM
短縮
)
評価
コスト
の削
減
ル活
用)
評価
工学
の確
立
向上
)
10
© Fuji Xerox Co., Ltd. All Rights Reserved.