n-switchカバレッジテストの問題点と解決策
DESCRIPTION
SS2013で発表したものです。 本プレゼン資料に対応する論文を以下に置きました。 http://www.hayst.com/Documents/SS2013-paper.pdfTRANSCRIPT
N-Switch カバレッジテストの問題点と解決策
――状態遷移パスと,イベントの組合せの分離と統合
■SS2013 経験論文
2013年7月9日(火)
ソリューション・サービス開発本部 秋山 浩一
© 2013 Fuji Xerox Co., Ltd. All rights reserved.
目次
1. 状態遷移テスト
2. N-Switchカバレッジ
3. N-Switchカバレッジの問題点
4. 本手法(PathCombo法)
5. 本手法(PathCombo法)before / after
6. PathCombo法の効果
7. 残課題と今後の取組み
© 2013 Fuji Xerox Co., Ltd. All rights reserved. 2
1. 状態遷移テスト(状態遷移図・状態遷移表)
© Fuji Xerox Co., Ltd. All Rights Reserved. 3
状態遷移図を描く
状態遷移表を書く
• 状態×イベント
セルをテストする
• 遷移すること
• 遷移しないこと(N/A)
状態
イベント |スタート 連続再生 リピート再生 エンド
CD挿入 連続再生 N/A N/A N/A
曲送り N/A 連続再生 N/A N/A
Repeat N/A リピート再生 連続再生 N/A
Eject N/A エンド エンド N/A
2. N-Switchカバレッジ(1-Switch,2-Switch,……)
© Fuji Xerox Co., Ltd. All Rights Reserved. 4
N-SwitchカバレッジではN+1回の状態遷移を網羅するパスをテストする
関係行列を書く
• 遷移元×遷移先
関係行列をN+1乗する
遷移先
遷移元 |スタート 連続再生 リピート エンド
スタート CD挿入
連続再生 曲送り Repeat Eject
リピート再生 Repeat Eject
エンド
遷移先
遷移元 |スタート 連続再生 リピート エンド
スタート CD挿入
*曲送り
CD挿入
*Repeat
CD挿入
*Eject
連続再生 曲送り*曲送り+Repeat*Repeat
曲送り*Repeat
曲送り*Eject
+Repeat
*Eject
リピート再生 Repeat
*曲送り
Repeat
*Repeat
Repeat
*Eject
エンド
S0 S1 S2
データ破壊 故障顕在化
状態遷移 1-Switch
3. N-Switchカバレッジの問題点
© Fuji Xerox Co., Ltd. All Rights Reserved. 5
イベントが複数存在する場合に,N-Switchカバレッジを適用しようとすると パスが非常に複雑になる
例)カーオーディオでは,一つの命令(イベント)を,画面タッチ, ボタン操作,リモコン操作,後部座席からの4つの操作で実現している
左図の非常に単純な状態遷移であっても,A {a, b, c, d},I{i, j, k, l},M {m, n, o, p}のイベントが存在する場合, S0→S0: (a + b + c + d)2 と(i + j + k + l)×(m + n + o + p)
aa+ab+ac+ad+ba+bb+bc+bd+ca+cb+cc+cd+da+db+dc+dd+im+in+io+ip+jm+jn+jo+jp+km+kn+ko+kp+lm+ln+lo+lp
S0→S1: ai+aj+ak+al+bi+bj+bk+bl+ci+cj+ck+cl+di+dj+dk+dl
S1→S0: ma+mb+mc+md+na+nb+nc+nd+oa+ob+oc+od+pa+pb+pc+pd
S1→S1: mi+mj+mk+ml+ni+nj+nk+nl+oi+oj+ok+ol+pi+pj+pk+pl
遷移パスは,80通り(イベント数は160イベント)出現する
3. N-Switchカバレッジの問題点(補足)
© Fuji Xerox Co., Ltd. All Rights Reserved. 6
S0
a
b
c
d
a = 画面タッチ
b = ボタン操作
c = リモコン操作
d = 後部座席から A2 = (a + b + c + d)2
= aa+ab+ac+ad+ba+bb+bc+bd+ca+cb+cc+cd+da+db+dc+dd
A
4. 本手法(PathCombo法)
© Fuji Xerox Co., Ltd. All Rights Reserved. 7
本手法(PathCombo法)は,状態遷移とイベントの組合せを分けて考える.
1. イベントを一つにまとめてN-Switchカバレッジパスを求める
2. パスを連結し一本の長いパスを作成する
3. まとめたイベントを因子、元のイベントを水準として直交表に割り付け組み合わせる(水準集約法を使用して直交表の大きさは固定する)
1. イベントをA,M,Iのままパスを求める S0→S0について,AA+IM S0→S1について,AI S1→S0について,MA S1→S1について,MI
2. パスを1本に連結する [S0]:A→[S0]:A→[S0]:I→[S1]:M→[S0]:A→[S0]:I→[S1]:M→[S0]:I
3. まとめたイベントを因子、元のイベントを水準として直交表に割り付ける A1{a, b, c, d},A2{a, b, c, d},I1{i, j, k, l},M1{m, n, o, p},A3{a, b, c, d},I2{i, j, k, l},M2{m, n, o, p}, I2{i, j, k, l}
4. 本手法(PathCombo法の補足:L16水準集約法とは)
© Fuji Xerox Co., Ltd. All Rights Reserved. 8
水準集約法とは直交表を横に複数並べる方法
1. L16は4水準の因子が5列存在する
2. 横に並べると5列ごとに同じ列(同じ水準通しの 組合せしか現れない列)が発生する
3. 逆に言うと,前後4列との水準組合せは出現する
4. そもそも1-Switchカバレッジは前後のイベントの 水準組合せを出せばよい
A A I M A
1 a a i m
2 a b j n
3 a c k o
4 a d l p
…
d c j m
d d l n
I M I 4 5 1 2 3 4 5 1 2 3 4 5
15
16
前後4列との2列間組合せが現れる
5. 本手法(PathCombo法) before / after
© Fuji Xerox Co., Ltd. All Rights Reserved. 9
1. イベントをA,M,Iのままパスを求める S0→S0について,AA+IM S0→S1について,AI S1→S0について,MA S1→S1について,MI
2. パスを連結する [S0]:A→[S0]:A→[S0]:I→[S1]:M→[S0]:A→[S0]:I→[S1]:M→[S0]:I
3. イベントを因子として直交表に割り付ける A1{a, b, c, d},A2{a, b, c, d},I1{i, j, k, l},M1{m, n, o, p},A3{a, b, c, d},I2{i, j, k, l},M2{m, n, o, p}, I2{i, j, k, l}
S0→S0について aa+ab+ac+ad+ba+bb+bc+bd+ca+cb+cc+cd+da+db+dc+dd+im+in+io+ip+jm+jn+jo+jp+km+kn+ko+kp+lm+ln+lo+lp
S0→S1について ai+aj+ak+al+bi+bj+bk+bl+ci+cj+ck+cl+di+dj+dk+dl
S1→S0について ma+mb+mc+md+na+nb+nc+nd+oa+ob+oc+od+pa+pb+pc+pd
S1→S1について mi+mj+mk+ml+ni+nj+nk+nl+oi+oj+ok+ol+pi+pj+pk+pl
N-Switch 面倒!
PathCombo 簡単!
6. PathCombo法の効果
© Fuji Xerox Co., Ltd. All Rights Reserved. 10
No. A1 A2 I1 M1 A3 I2 M2 I3
1 a a i m a i m i
2 b b j n a j n j
3 c c k o a k o k
4 d d l p a l p l
5 c a j p b k m j
6 d b i o b l n i
7 a c l n b i o l
8 b d k m b j p k
9 d a k n c l m k
10 c b l m c k n l
11 b c i p c j o i
12 a d j o c i p j
13 b a l o d j m l
14 a b k p d i n k
15 d c j m d l o j
16 c d i n d k p i
本手法(PathCombo法)は,状態遷移とイベントの組合せを分けて考える.
1. 従来のN-Switchでは160イベントのバラバラなテストを必要とした
2. 本手法では128イベントで16回のテストとなった (=8個の因子×16回のテスト)
3. 1-Switchカバレッジは満たし,さらにL16水準集約法なので前後4イベントの組合せが出現している
4. 実際に医療機器の状態遷移テストへ適用済(状態数20程度)
7. 残課題と今後の取組み
© Fuji Xerox Co., Ltd. All Rights Reserved. 11
1. N-Switchテストでは,Nが増加するごとにテスト数は指数関数的(階乗)に増加する. 2-Switchであれば,強度3のL125を使って5水準の因子を5列ずつ水準集約法で割り付ければよいがテスト数がだいぶ多くなる(125回). テストの効果と効率を考えると, Nにいくつの値を取るのが最適値なのかに論理的に答えを出したい.
2. また,N-Switchカバレッジのテストを不要とするためのソフトウェアテスト設計技術(もしくはレビュー手法)について考えていきたい.