all-pair法:組み合わせ試験 の最前線jasst.jp/archives/jasst05w/pdf/s4-2.pdf1...
TRANSCRIPT
2
組み合わせテスト(Combinatorial Testing)
すべての k 個のパラメータについて,それらの 値の組み合わせをすべてテストする手法
ペアワイズテスト,All-Pair法k = 2
3
All-Pair法:テストケースの例
テストケースの例因子(パラメータ) 3個
水準(値の種類) 3通り
テスト数
021102210
P3
102Test 6220Test 7
212Test 9
201Test 8
121Test 5
110Test 4
022Test 3
011Test 2
000Test 1
P4P2P1
3344 = 81 = 81 99全数テスト All-Pair
4
All-Pair法の背景
フォールトの多くは,少数のパラメータ値の組み合わせによって顕在化する
Kuhn等の研究R.D.Kuhn et al. “Software Fault Interactions and Implications for Software Testing,” IEEE Transactions on Software Engineering, 30(6), June 2004
5
All-Pair法の背景FTFI (failure-triggering fault interaction)フォールトに関係しているパラメータ数
OS
41*****6
25
2568
DB
22
194729
Netscape N.
****
82
***6
48283181036242663972611
**
*na
エキスパートシステム
0**571**4
192**3
Apache
組込みFTFI
1,000~10,000 LoC 100,000 LoC
7
数学的な手法 ・・・ ビルディングブロック
水準Vが素数の場合 (例.V = 3)V+1の因子に対し,V*V個のテストでペアを網羅
210210210J P=2
12
22
11000
P=3P=1P=0I
V*Vテスト数
因子数(パラメータ数)V+1
8
210210210J P=2
1122
2222
1111000000
P=3P=1P=0I
V*V
I
数学的な手法・・・ビルディングブロック
ステップ1.P=Vの列をIの値に設定
テスト数
因子数(パラメータ数)V+1
9
210210210J P=2
1122
2222
1111000000
P=3P=1P=0I
V*V
(I*P + J) % V
テスト数
因子数(パラメータ数)V+1
ステップ2.P=0~V-1の列の各エントリーを以下の値に設定
10
210210210J P=2
1122
2222
1111000000
P=3P=1P=0I
V*V
(I*P + J) % V(I*2 + J) % 3(I*1 + J) % 3(I*0 +J) % 3
テスト数
因子数(パラメータ数)V+1
11
210210210J P=2
121202
222212
1111101022001100000
P=3P=1P=0I
V*V
(I*P + J) % V
(I*2 + J) % 3(I*1 + J) % 3(I*0 +J) % 3
テスト数
因子数(パラメータ数)V+1
12
210210210J
021102210
P=2
10212202
21222012
12111101022001100000
P=3P=1P=0I
V*V
(I*P + J) % V
(I*2 + J) % 3(I*1 + J) % 3(I*0 +J) % 3
テスト数
因子数(パラメータ数)V+1
13
数学的な手法・・・表の組み合わせ
基本となる表(ビルディングブロック)因子(パラメータ) V+1個 (水準Vは素数)テスト V*V個
もっと多くの因子(パラメータ)が必要になったら?
表を2つ組み合わせて因子数を増やせる!
15
表の組み合わせ
021102210
102220
212201
121110022011000
021102210
102220
212201
121110022011000
021102210
102220
212201
121110022011000
021102210
102220
212201
121110022011000
網羅されている
まだ網羅されていない
網羅されている
9
4
9
4×
16
表の組み合わせ
021102210
102220
212201
121110022011000
021102210
102220
212201
121110022011000
021102210
102220
212201
121110022011000
021102210
102220
212201
121110022011000
021102210
102220
212201
121110022011000
9
4
9
4×
網羅!
17
021102210
102220
212201
121110022011000
表の組み合わせ
021102210
102220
212201
121110022011000
021102210
102220
212201
121110022011000
021102210
102220
212201
121110022011000
021102210
102220
212201
121110022011000
不要
9
4
9
4×
18
表の組み合わせ
021102210
102220
212201
121110022011000
021102210
102220
212201
121110022011000
021102210
102220
212201
121110022011000
021102210
102220
212201
121110022011000
02110221
102220
212201
121110022011
9+9-1テスト数
17足し算
因子数(パラメータ数)
4*4 16 掛け算
9
4
9
4×
21
水準の異なる因子
021102210
102220
212201
121110022011000
1100
01101100
1100
01101100
1100
01101100
110
011011
3水準 2水準
まだ網羅されていない
ステップ1.水準毎に表を作成
22
水準の異なる因子
021102210
102220
212201
121110022011000
1100
01101100
1100
01101100
1100
01101100
110
011011
3水準 2水準
1202120110
ステップ2.水準間を網羅
25
アルゴリズムの例
一度に表を作成ヒルクライミング
シミュレイティッド・アニーリング
タブサーチ
1つずつテストを作成遺伝アルゴリズム*アントアルゴリズム*
*T. Shiba, T. Tsuchiya, T. Kikuno, “Using Artificial Life Techniques to Generate Test Cases for Combinatorial Testing,” COMPSAC 2004.
26
例.遺伝アルゴリズム (GA)
テストケースを進化させてAll-Pairを網羅染色体
テストケース
交叉
突然変異
23 2 122
31 1 33123 1 321
31 2 132
22 1 12123 1 321