SlideShare a Scribd company logo
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+j
p+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カバレッジのテストを不要とするためのソフトウェアテス
ト設計技術(もしくはレビュー手法)について考えていきたい.
ご清聴ありがとうございました

More Related Content

What's hot

グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
Insight Technology, Inc.
 
東北大学 先端技術の基礎と実践_深層学習による画像認識とデータの話_菊池悠太
東北大学 先端技術の基礎と実践_深層学習による画像認識とデータの話_菊池悠太東北大学 先端技術の基礎と実践_深層学習による画像認識とデータの話_菊池悠太
東北大学 先端技術の基礎と実践_深層学習による画像認識とデータの話_菊池悠太
Preferred Networks
 
不確実性に対応する開発手法 - スクラムの基礎
不確実性に対応する開発手法 - スクラムの基礎不確実性に対応する開発手法 - スクラムの基礎
不確実性に対応する開発手法 - スクラムの基礎
西岡 賢一郎
 
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkIoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
 
画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ
Takahiro Kubo
 
MLOps入門
MLOps入門MLOps入門
MLOps入門
Hiro Mura
 
競プロでGo!
競プロでGo!競プロでGo!
競プロでGo!
鈴木 セシル
 
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
西岡 賢一郎
 
製造業におけるインクリメンタル学習異常検知事例の紹介
製造業におけるインクリメンタル学習異常検知事例の紹介製造業におけるインクリメンタル学習異常検知事例の紹介
製造業におけるインクリメンタル学習異常検知事例の紹介
KeiichiIto7
 
ロジスティック回帰分析の書き方
ロジスティック回帰分析の書き方ロジスティック回帰分析の書き方
ロジスティック回帰分析の書き方
Sayuri Shimizu
 
深層学習は美味しい珈琲の夢を見る
深層学習は美味しい珈琲の夢を見る深層学習は美味しい珈琲の夢を見る
深層学習は美味しい珈琲の夢を見る
Daisuke Motohashi
 
最適化計算/パラメータスタディーとFreeCADの連携についての調査
最適化計算/パラメータスタディーとFreeCADの連携についての調査最適化計算/パラメータスタディーとFreeCADの連携についての調査
最適化計算/パラメータスタディーとFreeCADの連携についての調査
Daisuke Matsubara
 
SIGNATE 産業技術総合研究所 衛星画像分析コンテスト 2位入賞モデルの工夫点
SIGNATE産業技術総合研究所 衛星画像分析コンテスト2位入賞モデルの工夫点SIGNATE産業技術総合研究所 衛星画像分析コンテスト2位入賞モデルの工夫点
SIGNATE 産業技術総合研究所 衛星画像分析コンテスト 2位入賞モデルの工夫点
Ken'ichi Matsui
 
BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装
Deep Learning Lab(ディープラーニング・ラボ)
 
機械学習システムのアーキテクチャアラカルト
機械学習システムのアーキテクチャアラカルト機械学習システムのアーキテクチャアラカルト
機械学習システムのアーキテクチャアラカルト
BrainPad Inc.
 
Dynamic Routing Between Capsules
Dynamic Routing Between CapsulesDynamic Routing Between Capsules
Dynamic Routing Between Capsules
harmonylab
 
顕著性マップの推定手法
顕著性マップの推定手法顕著性マップの推定手法
顕著性マップの推定手法
Takao Yamanaka
 
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
Yahoo!デベロッパーネットワーク
 
C++による数値解析の並列化手法
C++による数値解析の並列化手法C++による数値解析の並列化手法
C++による数値解析の並列化手法
dc1394
 
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
智啓 出川
 

What's hot (20)

グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
 
東北大学 先端技術の基礎と実践_深層学習による画像認識とデータの話_菊池悠太
東北大学 先端技術の基礎と実践_深層学習による画像認識とデータの話_菊池悠太東北大学 先端技術の基礎と実践_深層学習による画像認識とデータの話_菊池悠太
東北大学 先端技術の基礎と実践_深層学習による画像認識とデータの話_菊池悠太
 
不確実性に対応する開発手法 - スクラムの基礎
不確実性に対応する開発手法 - スクラムの基礎不確実性に対応する開発手法 - スクラムの基礎
不確実性に対応する開発手法 - スクラムの基礎
 
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkIoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
 
画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ
 
MLOps入門
MLOps入門MLOps入門
MLOps入門
 
競プロでGo!
競プロでGo!競プロでGo!
競プロでGo!
 
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
 
製造業におけるインクリメンタル学習異常検知事例の紹介
製造業におけるインクリメンタル学習異常検知事例の紹介製造業におけるインクリメンタル学習異常検知事例の紹介
製造業におけるインクリメンタル学習異常検知事例の紹介
 
ロジスティック回帰分析の書き方
ロジスティック回帰分析の書き方ロジスティック回帰分析の書き方
ロジスティック回帰分析の書き方
 
深層学習は美味しい珈琲の夢を見る
深層学習は美味しい珈琲の夢を見る深層学習は美味しい珈琲の夢を見る
深層学習は美味しい珈琲の夢を見る
 
最適化計算/パラメータスタディーとFreeCADの連携についての調査
最適化計算/パラメータスタディーとFreeCADの連携についての調査最適化計算/パラメータスタディーとFreeCADの連携についての調査
最適化計算/パラメータスタディーとFreeCADの連携についての調査
 
SIGNATE 産業技術総合研究所 衛星画像分析コンテスト 2位入賞モデルの工夫点
SIGNATE産業技術総合研究所 衛星画像分析コンテスト2位入賞モデルの工夫点SIGNATE産業技術総合研究所 衛星画像分析コンテスト2位入賞モデルの工夫点
SIGNATE 産業技術総合研究所 衛星画像分析コンテスト 2位入賞モデルの工夫点
 
BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装
 
機械学習システムのアーキテクチャアラカルト
機械学習システムのアーキテクチャアラカルト機械学習システムのアーキテクチャアラカルト
機械学習システムのアーキテクチャアラカルト
 
Dynamic Routing Between Capsules
Dynamic Routing Between CapsulesDynamic Routing Between Capsules
Dynamic Routing Between Capsules
 
顕著性マップの推定手法
顕著性マップの推定手法顕著性マップの推定手法
顕著性マップの推定手法
 
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
 
C++による数値解析の並列化手法
C++による数値解析の並列化手法C++による数値解析の並列化手法
C++による数値解析の並列化手法
 
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
 

Viewers also liked

20160607 SS2016 FP
20160607 SS2016 FP20160607 SS2016 FP
20160607 SS2016 FP
Kouichi Akiyama
 
20160619 wacate 解答
20160619 wacate   解答20160619 wacate   解答
20160619 wacate 解答
Kouichi Akiyama
 
20160619 wacate
20160619 wacate20160619 wacate
20160619 wacate
Kouichi Akiyama
 
テスト分析・設計について、釈然としないところ
テスト分析・設計について、釈然としないところテスト分析・設計について、釈然としないところ
テスト分析・設計について、釈然としないところ
Kosuke Fujisawa
 
Wacate2015summer_report
Wacate2015summer_reportWacate2015summer_report
Wacate2015summer_report
Kosuke Fujisawa
 
20170203 test analysisdesign
20170203 test analysisdesign20170203 test analysisdesign
20170203 test analysisdesign
Kouichi Akiyama
 
KDDI Business ID におけるアジャイル開発と検証フロー
KDDI Business ID におけるアジャイル開発と検証フローKDDI Business ID におけるアジャイル開発と検証フロー
KDDI Business ID におけるアジャイル開発と検証フロー
ques_staff
 
テスコン優勝事例におけるテスト分析公開用
テスコン優勝事例におけるテスト分析公開用テスコン優勝事例におけるテスト分析公開用
テスコン優勝事例におけるテスト分析公開用
Tetsuya Kouno
 
マインドマップを使った 仕様分析&テスト設計
マインドマップを使った 仕様分析&テスト設計マインドマップを使った 仕様分析&テスト設計
マインドマップを使った 仕様分析&テスト設計
Akira Ikeda
 
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacateテスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacateKinji Akemine
 
WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略
Masaki Nakagawa
 
概説 テスト分析
概説 テスト分析概説 テスト分析
概説 テスト分析
崇 山﨑
 
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudyなんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
POStudy
 
WACATE 2010夏 ゆもつよ講演スライド
WACATE 2010夏 ゆもつよ講演スライドWACATE 2010夏 ゆもつよ講演スライド
WACATE 2010夏 ゆもつよ講演スライドTsuyoshi Yumoto
 
テスト分析についての説明資料公開用
テスト分析についての説明資料公開用テスト分析についての説明資料公開用
テスト分析についての説明資料公開用
Tsuyoshi Yumoto
 

Viewers also liked (15)

20160607 SS2016 FP
20160607 SS2016 FP20160607 SS2016 FP
20160607 SS2016 FP
 
20160619 wacate 解答
20160619 wacate   解答20160619 wacate   解答
20160619 wacate 解答
 
20160619 wacate
20160619 wacate20160619 wacate
20160619 wacate
 
テスト分析・設計について、釈然としないところ
テスト分析・設計について、釈然としないところテスト分析・設計について、釈然としないところ
テスト分析・設計について、釈然としないところ
 
Wacate2015summer_report
Wacate2015summer_reportWacate2015summer_report
Wacate2015summer_report
 
20170203 test analysisdesign
20170203 test analysisdesign20170203 test analysisdesign
20170203 test analysisdesign
 
KDDI Business ID におけるアジャイル開発と検証フロー
KDDI Business ID におけるアジャイル開発と検証フローKDDI Business ID におけるアジャイル開発と検証フロー
KDDI Business ID におけるアジャイル開発と検証フロー
 
テスコン優勝事例におけるテスト分析公開用
テスコン優勝事例におけるテスト分析公開用テスコン優勝事例におけるテスト分析公開用
テスコン優勝事例におけるテスト分析公開用
 
マインドマップを使った 仕様分析&テスト設計
マインドマップを使った 仕様分析&テスト設計マインドマップを使った 仕様分析&テスト設計
マインドマップを使った 仕様分析&テスト設計
 
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacateテスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
 
WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略
 
概説 テスト分析
概説 テスト分析概説 テスト分析
概説 テスト分析
 
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudyなんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
 
WACATE 2010夏 ゆもつよ講演スライド
WACATE 2010夏 ゆもつよ講演スライドWACATE 2010夏 ゆもつよ講演スライド
WACATE 2010夏 ゆもつよ講演スライド
 
テスト分析についての説明資料公開用
テスト分析についての説明資料公開用テスト分析についての説明資料公開用
テスト分析についての説明資料公開用
 

More from Kouichi Akiyama

業務状態遷移テストを語る夕べ
業務状態遷移テストを語る夕べ業務状態遷移テストを語る夕べ
業務状態遷移テストを語る夕べ
Kouichi Akiyama
 
Ralph's Chart連結
Ralph's Chart連結Ralph's Chart連結
Ralph's Chart連結
Kouichi Akiyama
 
20180421 Issueの書き方と伝えかた勉強会
20180421 Issueの書き方と伝えかた勉強会20180421 Issueの書き方と伝えかた勉強会
20180421 Issueの書き方と伝えかた勉強会
Kouichi Akiyama
 
Oa mat
Oa matOa mat
SS2016 Workshop
SS2016 WorkshopSS2016 Workshop
SS2016 Workshop
Kouichi Akiyama
 
よいアーキテクチャ、よいライブラリ、よいテスター
よいアーキテクチャ、よいライブラリ、よいテスターよいアーキテクチャ、よいライブラリ、よいテスター
よいアーキテクチャ、よいライブラリ、よいテスター
Kouichi Akiyama
 
20150424 jasst新潟基調講演
20150424 jasst新潟基調講演20150424 jasst新潟基調講演
20150424 jasst新潟基調講演Kouichi Akiyama
 
20080615 wacate
20080615 wacate20080615 wacate
20080615 wacate
Kouichi Akiyama
 
Answer
AnswerAnswer
20081024 ja sst-sapporo
20081024 ja sst-sapporo20081024 ja sst-sapporo
20081024 ja sst-sapporo
Kouichi Akiyama
 
とてか2
とてか2とてか2
とてか2
Kouichi Akiyama
 

More from Kouichi Akiyama (12)

業務状態遷移テストを語る夕べ
業務状態遷移テストを語る夕べ業務状態遷移テストを語る夕べ
業務状態遷移テストを語る夕べ
 
Ralph's Chart連結
Ralph's Chart連結Ralph's Chart連結
Ralph's Chart連結
 
20180421 Issueの書き方と伝えかた勉強会
20180421 Issueの書き方と伝えかた勉強会20180421 Issueの書き方と伝えかた勉強会
20180421 Issueの書き方と伝えかた勉強会
 
Oa mat
Oa matOa mat
Oa mat
 
SS2016 Workshop
SS2016 WorkshopSS2016 Workshop
SS2016 Workshop
 
よいアーキテクチャ、よいライブラリ、よいテスター
よいアーキテクチャ、よいライブラリ、よいテスターよいアーキテクチャ、よいライブラリ、よいテスター
よいアーキテクチャ、よいライブラリ、よいテスター
 
20150424 jasst新潟基調講演
20150424 jasst新潟基調講演20150424 jasst新潟基調講演
20150424 jasst新潟基調講演
 
20080615 wacate
20080615 wacate20080615 wacate
20080615 wacate
 
20140610 秋山-ss2014
20140610 秋山-ss201420140610 秋山-ss2014
20140610 秋山-ss2014
 
Answer
AnswerAnswer
Answer
 
20081024 ja sst-sapporo
20081024 ja sst-sapporo20081024 ja sst-sapporo
20081024 ja sst-sapporo
 
とてか2
とてか2とてか2
とてか2
 

N-Switchカバレッジテストの問題点と解決策

  • 2. 目次 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
  • 3. 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
  • 4. 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
  • 5. 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+j p+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イベント)出現する
  • 6. 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
  • 7. 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}
  • 8. 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列間組合せが現れる
  • 9. 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 簡単!
  • 10. 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程度)
  • 11. 7. 残課題と今後の取組み © Fuji Xerox Co., Ltd. All Rights Reserved. 11 1. N-Switchテストでは,Nが増加するごとにテスト数は指数関数的(階乗) に増加する. 2-Switchであれば,強度3のL125を使って5水準の因子を5列ずつ水準集 約法で割り付ければよいがテスト数がだいぶ多くなる(125回). テストの効果と効率を考えると, Nにいくつの値を取るのが最適値なのか に論理的に答えを出したい. 2. また,N-Switchカバレッジのテストを不要とするためのソフトウェアテス ト設計技術(もしくはレビュー手法)について考えていきたい.