SlideShare a Scribd company logo
1 of 54
Download to read offline
■JaSST'08 Sapporo
HAYST法による
組合せテスト実践トレーニング
2008年10月24日
品質本部 秋山 浩一
2
 機能組合せテスト設計の課題
 経験則でランダムに組み合わせると
網羅率が低下する。
 機能組合せを網羅的に行うと
テスト項目数が爆発する。
組合せ網羅率
経験で作りこみ 約30%
HAYST法とは
HAYST法の開発によ
る網羅率向上と
テスト項目数低減の両立
組合せ網羅率
HAYST法 >80%
(テスト品質指標)
相反する課題
お客様は様々な機能の組み合わせでプリント
出力
結果
<ソフトウェア機能組み合わせテスト>
禁則処理
多因子多水準
プリンタドライバ機能組合せテスト
70因子280水準
用紙 向き 両面
原稿
サイズ
カラー
モード 画質
N-Up トレイ Finisher
18種類
2種類 2種類
21種類
3種類
7種類
6種類 2種類
詳細はhttp://www.jasst.jp/archives/jasst04.html
直交表を利用したソフトウェアテスト -HAYST法-
3
HAYST法の効用
HAYST法とは
富士ゼロックス独自の直交表適用によるSW評価法
<特許取得済み>
テスト計画作成支援装置: 特許公開2004-288034
<特色>
• テストの効率化と網羅率の最大化の両立
• 複雑な組合せ(多水準・禁則)に柔軟に対応できる
• 操作性の良いツール(MatrixTester)を用意している
⇒ 一瞬で組合せテスト計画表(直交表)ができる
• テストの履歴が残る(テスト実施内容の追跡が可能)
• 大規模なシステムのテストへ適用可能
⇒ 豊富な直交表(L4~L256)が準備されている
• バグの解析ができる
• 自動テストツールとの連携がとれる
ソフトウェアテストHAYST法入門
出版社: 日科技連出版社 (2007/7/26)
ISBN-10: 4817192283
「2008年 日経品質管理文献賞受賞」
4
ソフトウェアテストの難しさ
左はPowerPointの文字フォント修
飾機能(設定シート)
これを1日でテスト設計&テスト設
計レビューし、1日でテスト実施をす
るにはどうしたらよいだろうか??
?
ブラックボックステストのポイントは
、テスト設計プロセス
・ 同値分割(Zoom)
・ 組み合わせ(HAYST他)
・ 境界値・異常値・特異値
(テストデータ)
の3点。
やり方が共通化されていれば
レビューがしやすい!!
※ 俺流のテスト設計のレビューは困難
因子 水準数 全組合せ
下線 2 2
影付き 2 4
浮き出し 2 8
上付き 2 16
下付き 2 32
スタイル 4 128
サイズ 22 2,816
日本語用のフォント 59 166,144
英数字用のフォント 163 27,081,472
相対位置(-100~100) 201 5,443,375,872
色 16,777,216 91,324,692,773,732,400
5
大きい因子を同値分割で小さくする
<サイズで考えてみる>
• サイズの選択肢には「8, 9, 10, 12, 14, 16, 18, 20, 24, 28, 32, 36, 40,
44, 48, 54, 60, 66, 72, 80, 88, 96」 の22種類ある。サイズの増え方に
着目すると、「 8, 9, 10 」、「 10, 12, 14, 16, 18, 20」、「 20, 24, 28, 32,
36, 40, 44, 48」、「 48, 54, 60, 66, 72」、「 72, 80, 88, 96」の5グループ
に同値分割できる。
• ここから「10, 20, 48, 72」の4つを代表に選び小さい因子にすることが
出来る。
因子 水準数 全組合せ
下線 2 2
影付き 2 4
浮き出し 2 8
上付き 2 16
下付き 2 32
スタイル 4 128
サイズ 22 2,816
日本語用のフォント 59 166,144
英数字用のフォント 163 27,081,472
相対位置(-100~100) 201 5,443,375,872
色 16,777,216 91,324,692,773,732,400
サイズ
10 20 48 72
8
9
10
10
12
14
16
18
20
20
24
28
32
36
40
44
48
48
54
60
66
72
72
80
88
96
ズームイン
ズームアウト
6
組合せはそれでも爆発 (全38水準になったものの)
<さらに制約事項がある>
• 「上付き」と「下付き」は同時に選択でき
ない
• 相対位置は「上付き」と「下付き」が設
定された時に選択可能となる
• 選択するフォントによって選択可能な
サイズが変わる
• 英数字用のフォントには「日本語フォン
トを使う」という特殊な設定がある
• 「行間」との組合せは考えなくても良い
のか??
• 位置揃えについて考慮が必要か?
因子 水準数 全組合せ
下線 2 2
影付き 2 4
浮き出し 2 8
上付き 2 16
下付き 2 32
スタイル 4 128
サイズ 4 512
日本語用のフォント 4 2,048
英数字用のフォント 4 8,192
相対位置(-100~100) 4 32,768
色 8 262,144
7
組み合わせは指数関数的に増加
0
5000
10000
15000
20000
25000
30000
35000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
地球が出来て46億年経ちます。46億年を秒数に直すと257程度です。つまり、たった57の機
能であっても総組み合わせテストは46億年かかる(1秒間に1回実施として)ということです。
8
HAYST法を用いた結果
<HAYST法で作成すると>
• テスト項目数: 32項目
• 網羅率99.5%
• 禁則自動回避
• 網羅率100%時のテスト項目:36項目
• 因子・水準は減らしていない
• 行間(4)、位置揃え(3)を追加
9
直交表
L4直交表 A B C
1 0 0 0
2 0 1 1
3 1 0 1
4 1 1 0
因子
水準
因子 水準
OFF
ON
OFF
ON
OFF
ON
太字
斜体
下線
文字修飾の因子・水準
※ 水準値の0には
デフォルト水準を
割り付ける
10
割付け結果
L4直交表 太字 斜体 下線 結果
テストNo.1 OFF OFF OFF Test結果
テストNo.2 OFF ON ON Test結果
テストNo.3 ON OFF ON Test結果
テストNo.3 ON ON OFF Test結果
因子
水準
11
下線
太字
斜体
直交表が網羅する組合せ
2機能間の組合せが全て存在している
(この状態を組合せ網羅率100%と定義する)
全組合せでは直交表に存在しない組合せも出現する
(ただし、テスト回数は指数関数的に増大する)
よく見ると直交表では現れないNo.2, 3, 5は単機能テスト内容
OFF ON
ON
OFF OFF
ON
OFF ON
ON
OFF OFF
ON
太字
斜体 下線
L4直交表 太字 斜体 下線
テストNo.1 OFF OFF OFF
テストNo.2 OFF ON ON
テストNo.3 ON OFF ON
テストNo.4 ON ON OFF
全組合せ 太字 斜体 下線 L4
テストNo.1 OFF OFF OFF No.1
テストNo.2 OFF OFF ON ×
テストNo.3 OFF ON OFF ×
テストNo.4 OFF ON ON No.2
テストNo.5 ON OFF OFF ×
テストNo.6 ON OFF ON No.3
テストNo.7 ON ON OFF No.4
テストNo.8 ON ON ON ×
12
L8直交表への割付け
美味しいカレーライスを探求するために各種因子・水準を決めました。
<問題>: 次の因子・水準を直交表に割り付けなさい。
因子 水準
肉
牛肉
豚肉
鶏肉
マトン
辛味
甘口
辛口
とろみ
スープ
しっかり
付け合せ
福神漬け
ラッキョウ
飲み物
ビール
ラッシー
B C D E
1 0 0 0 0
2 1 1 1 1
3 0 0 1 1
4 1 1 0 0
5 0 1 0 1
6 1 0 1 0
7 0 1 1 0
8 1 0 0 1
A
0
0
1
3
1
2
2
3
13
多水準系直交表を作成する方法
L8直交表で4水準の因子を考慮する場合
<メリット>
因子ABC列の水準の種類は(000, 011, 101, 110)の4種類
多水準系にしても、他の列との直交性が崩れません。
<デメリット>
L8直交表に考慮できる因子の数は、7因子であったのが、
5因子に減ってしまいます。
因子列A、B、Cを結合する。
しかし、単純に無作為に、適当な列を選んで結合させればよいわけではありません。
例えばABD列を結合させた場合
因子ABD列の水準の種類は(000, 001, 010, 011, 100, 101, 110, 111)の8種類
他の列との直交性が崩れてしまっています。
結合して良い列と、結合してはだめな列との違いを見分けるには、
線点図を使用することですぐに判別できます
A B C D E F G
1 0 0 0 0 0 0 0
2 0 0 0 1 1 1 1
3 0 1 1 0 0 1 1
4 0 1 1 1 1 0 0
5 1 0 1 0 1 0 1
6 1 0 1 1 0 1 0
7 1 1 0 0 1 1 0
8 1 1 0 1 0 0 1
ABC D E F G
1 000 0 0 0 0
2 000 1 1 1 1
3 011 0 0 1 1
4 011 1 1 0 0
5 101 0 1 0 1
6 101 1 0 1 0
7 110 0 1 1 0
8 110 1 0 0 1
C ABD E F G
1 0 000 0 0 0
2 0 001 1 1 1
3 1 010 0 1 1
4 1 011 1 0 0
5 1 100 1 0 1
6 1 101 0 1 0
7 0 110 1 1 0
8 0 111 0 0 1
14
線点図は、各直交表に対してどの因子列を合体させて、多水準が入る因子列に変型しても大
丈夫なのかが、まとめてある図のことです。
線点図の種類
3
5
6
3
2水準線点図
4水準線点図
8水準線点図
1
3
2 6
5
4
7
直交表の中では
(0、1)の2値で記述されます
1
2
3
因子列番号
直交表の中では
(000, 011, 101, 110)
の4値で記述される
直交表の中では
(0000000, 0001111, 0110011,
0111100, 1010101, 1011010,
1100110, 1101001)
の8値で記述される
線点図とは
16水準線点図
1 2 3 4 5 6 7
1 0 0 0 0 0 0 0
2 0 0 0 1 1 1 1
3 0 1 1 0 0 1 1
4 0 1 1 1 1 0 0
5 1 0 1 0 1 0 1
6 1 0 1 1 0 1 0
7 1 1 0 0 1 1 0
8 1 1 0 1 0 0 1
123 4 5 6 7
1 000 0 0 0 0
2 000 1 1 1 1
3 011 0 0 1 1
4 011 1 1 0 0
5 101 0 1 0 1
6 101 1 0 1 0
7 110 0 1 1 0
8 110 1 0 0 1
4 6 75
L8直交表 変型後のL8直交表
15
L4直交表をL8直交表に拡張する例
1列 XOR 4列 = 5列
2列 XOR 4列 = 6列
3列 XOR 4列 = 7列
全く同じ手順で
L8をL16、
L16をL32、
L32をL64、
L64をL128
L128をL256
…
に拡張することができる
1 2 3
1 0 0 0
2 0 1 1
3 1 0 1
4 1 1 0
1 2 3 4 5 6 7
1 0 0 0 0 0 0 0
2 0 0 0 1 1 1 1
3 0 1 1 0 0 1 1
4 0 1 1 1 1 0 0
5 1 0 1 0 1 0 1
6 1 0 1 1 0 1 0
7 1 1 0 0 1 1 0
8 1 1 0 1 0 0 1
1 2 3
1 0 0 0
2 0 0 0
3 0 1 1
4 0 1 1
5 1 0 1
6 1 0 1
7 1 1 0
8 1 1 0
行を2倍 0、1を交互に
割付けた列を
追加
1 2 3 4
1 0 0 0 0
2 0 0 0 1
3 0 1 1 0
4 0 1 1 1
5 1 0 1 0
6 1 0 1 1
7 1 1 0 0
8 1 1 0 1
3列 XOR 4列 = 7列
1列 XOR 4列 = 5列
2列 XOR 4列 = 6列
直交表の成り立ちと線点図
XORの関係で作成された3列は、
4パターン(000, 011, 101, 110)し
か出てこない。
それが線点図で表されている。
1
3
2 6
5
4
7
16
線点図と直交表との対応
1
2
4
3
5 76
8
15
910 11
12 1413
L16 直交表線点図テンプレート 1
1
3
2 6
5
4
7
8 9 1011 12 14 1513
L16 直交表線点図テンプレート 2
使ってはいけない使ってはいけない
1 2 3 4 8 12 5 10 15 6 11 13 7 9 14
a b ab c d cd ac bd abc
d bc abd acd abc ad bcd
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 0 0 0 0 0 1 1 11 0 1 1 11 0 1 1 11 0 1 1 11
3 0 0 0 0 1 0 1 101 1 0 1 101 1 0 1 101 1 0 1 101
4 0 0 0 0 1 1 0 110 1 1 0 110 1 1 0 110 1 1 0 110
5 0 1 1 11 0 0 0 0 0 1 1 11 1 1 0 110 1 0 1 101
6 0 1 1 11 0 1 1 11 0 0 0 0 1 0 1 101 1 1 0 110
7 0 1 1 11 1 0 1 101 1 1 0 110 0 1 1 11 0 0 0 0
8 0 1 1 11 1 1 0 110 1 0 1 101 0 0 0 0 0 1 1 11
9 1 0 1 101 0 0 0 0 1 0 1 101 0 1 1 11 1 1 0 110
10 1 0 1 101 0 1 1 11 1 1 0 110 0 0 0 0 1 0 1 101
11 1 0 1 101 1 0 1 101 0 0 0 0 1 1 0 110 0 1 1 11
12 1 0 1 101 1 1 0 110 0 1 1 11 1 0 1 101 0 0 0 0
13 1 1 0 110 0 0 0 0 1 1 0 110 1 0 1 101 0 1 1 11
14 1 1 0 110 0 1 1 11 1 0 1 101 1 1 0 110 0 0 0 0
15 1 1 0 110 1 0 1 101 1 1 0 11 0 0 0 0 1 1 0 110
16 1 1 0 110 1 1 0 110 0 0 0 0 0 1 1 11 1 0 1 101
1 2 3 4 5 6 7 1234567 8 9 10 11 12 13 14 15
a b ab c ac bc abc d ad bd abd cd acd bcd abc
d
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
3 0 0 0 1 1 1 1 1111 0 0 0 0 1 1 1 1
4 0 0 0 1 1 1 1 1111 1 1 1 1 0 0 0 0
5 0 1 1 0 0 1 1 110011 0 0 1 1 0 0 1 1
6 0 1 1 0 0 1 1 110011 1 1 0 0 1 1 0 0
7 0 1 1 1 1 0 0 111100 0 0 1 1 1 1 0 0
8 0 1 1 1 1 0 0 111100 1 1 0 0 0 0 1 1
9 1 0 1 0 1 0 1 1010101 0 1 0 1 0 1 0 1
10 1 0 1 0 1 0 1 1010101 1 0 1 0 1 0 1 0
11 1 0 1 1 0 1 0 1011010 0 1 0 1 1 0 1 0
12 1 0 1 1 0 1 0 1011010 1 0 1 0 0 1 0 1
13 1 1 0 0 1 1 0 1100110 0 1 1 0 0 1 1 0
14 1 1 0 0 1 1 0 1100110 1 0 0 1 1 0 0 1
15 1 1 0 1 1 0 1 1101101 0 1 1 0 1 0 0 0
16 1 1 0 1 0 0 1 1101001 1 0 0 1 0 1 1 0
変形済みの直交表がhttp://hayst.com/readings.aspxにおいてあります。
17
米
コシヒカリ
ササニシキ
魚
鯛・さんま
すずき・ひらめ
さより・なまず
かれい
くろまぐろ
はたはた・かじき
金目鯛
はぜ
みそ汁
しじみ
わかめ
おかず
卵焼き
ほうれん草
デザート
ヨーグルト
プリン
水準の抽象化
水準の抽象化とは
線点図テンプレートに用意されている線点図が許容できる水準数を、実験したい因子の保有する水準数が越え
ている場合に用いる手法。
例えば、ある因子の水準数が12である場合、8水準線点図が許容できる水準数は8であるので4水準分不足する。
<朝ご飯の献立>
12
2
2
2
2
8
2
抽象化
1
3
2 6
5
4
7
8
9
10
11
線点図が許容可能な水準数を越えてしまっている場合には、同種の水準をまとめて1つの水準に抽象化して、
線点図の大きさに合わせる。抽象化された状態で、直交表に割付けてから、抽象化された水準を展開する。
1
3
2 6
5
4
7
8 9 101112 141513
L16 直交表線点図テンプレート
<朝ご飯の献立>
米
コシヒカリ
ササニシキ
魚
鯛
さんま
すずき
ひらめ
かれい
くろまぐろ
はたはた
金目鯛
さより
かじき
はぜ
なまず
みそ汁
しじみ
わかめ
おかず
卵焼き
ほうれん草
デザート
ヨーグルト
プリン
2
2
2
18
抽象化後の展開
1234567 8 9 10 11 12 13 14 15
1 0 0 0 0 0 0 0 0 0
2 0 1 1 1 1 1 1 1 1
3 1111 0 0 0 0 1 1 1 1
4 1111 1 1 1 1 0 0 0 0
5 110011 0 0 1 1 0 0 1 1
6 110011 1 1 0 0 1 1 0 0
7 111100 0 0 1 1 1 1 0 0
8 111100 1 1 0 0 0 0 1 1
9 1010101 0 1 0 1 0 1 0 1
10 1010101 1 0 1 0 1 0 1 0
11 1011010 0 1 0 1 1 0 1 0
12 1011010 1 0 1 0 0 1 0 1
13 1100110 0 1 1 0 0 1 1 0
14 1100110 1 0 0 1 1 0 0 1
15 1101101 0 1 1 0 1 0 0 0
16 1101001 1 0 0 1 0 1 1 0
割付け
抽象化水準の分離
抽象化することにより、抽象化された水準の直交性は崩れています。
もちろん、抽象化しなかった水準の直交性は保存されています。
あまり重要ではない水準同士は抽象化しても良いですが、他の因子と
の組合せまでしっかり見ておきたい水準に関しては抽象化をすることは
避けることをおすすめします。
また、今回の場合、3水準以上を1水準に抽象化してしまう場合どうなる
でしょうか?例えば、“鯛”、 “さんま”、“すずき” を “鯛・さんま・すずき”
にしてしまった場合です。
この場合には、どれか1つの水準を全く直交表に出現させることができ
なくなってしまいます。
割付け前の線点図に合わせて組み替えた直交
表
割付後の直交表(抽象化水準未展開)
抽象化された
ままの水準
抽
象
化
を
解
除
し
た
水
準
1234567 8 9 10 11 12 13 14 15
魚 米 みそ汁 おかず デザート cd acd bcd ab
cd
1 鯛・さんま コシヒカリ しじみ 卵焼き ヨーグルト 0 0 0 0
2 鯛・さんま ササニシキ わかめ ほうれん草 プリン 1 1 1 1
3 すずき・ひらめ コシヒカリ しじみ 卵焼き ヨーグルト 1 1 1 1
4 すずき・ひらめ ササニシキ わかめ ほうれん草 プリン 0 0 0 0
5 さより・なまず コシヒカリ しじみ ほうれん草 プリン 0 0 1 1
6 さより・なまず ササニシキ わかめ 卵焼き ヨーグルト 1 1 0 0
7 かれい コシヒカリ しじみ ほうれん草 プリン 1 1 0 0
8 かれい ササニシキ わかめ 卵焼き ヨーグルト 0 0 1 1
9 くろまぐろ コシヒカリ わかめ 卵焼き プリン 0 1 0 1
10 くろまぐろ ササニシキ しじみ ほうれん草 ヨーグルト 1 0 1 0
11 はたはた・かじき コシヒカリ わかめ 卵焼き プリン 1 0 1 0
12 はたはた・かじき ササニシキ しじみ ほうれん草 ヨーグルト 0 1 0 1
13 金目鯛 コシヒカリ わかめ ほうれん草 ヨーグルト 0 1 1 0
14 金目鯛 ササニシキ しじみ 卵焼き プリン 1 0 0 1
15 はぜ コシヒカリ わかめ ほうれん草 ヨーグルト 1 0 0 1
16 はぜ ササニシキ しじみ 卵焼き プリン 0 1 1 0
1234567 8 9 10 11 12 13 14 15
魚 米 みそ汁 おかず デザート cd acd bcd ab
cd
1 鯛 コシヒカリ しじみ 卵焼き ヨーグルト 0 0 0 0
2 さんま ササニシキ わかめ ほうれん草 プリン 1 1 1 1
3 すずき コシヒカリ しじみ 卵焼き ヨーグルト 1 1 1 1
4 ひらめ ササニシキ わかめ ほうれん草 プリン 0 0 0 0
5 さより コシヒカリ しじみ ほうれん草 プリン 0 0 1 1
6 なまず ササニシキ わかめ 卵焼き ヨーグルト 1 1 0 0
7 かれい コシヒカリ しじみ ほうれん草 プリン 1 1 0 0
8 かれい ササニシキ わかめ 卵焼き ヨーグルト 0 0 1 1
9 くろまぐろ コシヒカリ わかめ 卵焼き プリン 0 1 0 1
10 くろまぐろ ササニシキ しじみ ほうれん草 ヨーグルト 1 0 1 0
11 はたはた コシヒカリ わかめ 卵焼き プリン 1 0 1 0
12 かじき ササニシキ しじみ ほうれん草 ヨーグルト 0 1 0 1
13 金目鯛 コシヒカリ わかめ ほうれん草 ヨーグルト 0 1 1 0
14 金目鯛 ササニシキ しじみ 卵焼き プリン 1 0 0 1
15 はぜ コシヒカリ わかめ ほうれん草 ヨーグルト 1 0 0 1
16 はぜ ササニシキ しじみ 卵焼き プリン 0 1 1 0
19
ダミー水準
ダミー水準とは
線点図テンプレートに用意されている線点図が許容できる水準数を、実験したい因子の保有する水準数が下回っている場合
に用いる手法。
例えば、ある因子の水準数が6である場合、8水準線点図が許容できる水準数は8であるので2つ余ってしまう。
2
2
2
2
8ダミー水準
の追加
割付後の直交表
ダミー水準を入れることで、内容が全く同じテスト項目が出現することもある。
この例では、ダミーの元水準のテスト番号1、2、3、4と、13、14、15、16は全く同じテスト項目になってしまっているので、別に、13
~16番のテスト項目は削除してしまっても良い。
しかし、禁則の考慮、抽象化を行っている場合には、水準の出現状態が複雑になり、ダミーを入れても同じテスト項目が出現す
るようなことはほとんど無い。特に禁則の考慮をするような場合には、出現しない組合せも出てくるので、水準にウェイトをかけ
る意味で、ダミー水準を利用することも出来る。
<朝ご飯の献立>
米
コシヒカリ
ササニシキ
魚
鯛
すずき
さより
かれい
くろまぐろ
はたはた
みそ汁
しじみ
わかめ
おかず
卵焼き
ほうれん草
デザート
ヨーグルト
プリン
6
2
2
2
2
<朝ご飯の献立>
米
コシヒカリ
ササニシキ
魚
鯛
すずき
さより
かれい
くろまぐろ
はたはた
DMY_鯛
DMY_くろまぐろ
みそ汁
しじみ
わかめ
おかず
卵焼き
ほうれん草
デザート
ヨーグルト
プリン
1234567 8 9 10 11 12 13 14 15
魚 米 みそ汁 おかず デザート cd acd bcd ab
cd
1 鯛 コシヒカリ しじみ 卵焼き ヨーグルト 0 0 0 0
2 鯛 ササニシキ わかめ ほうれん草 プリン 1 1 1 1
3 すずき コシヒカリ しじみ 卵焼き ヨーグルト 1 1 1 1
4 すずき ササニシキ わかめ ほうれん草 プリン 0 0 0 0
5 さより コシヒカリ しじみ ほうれん草 プリン 0 0 1 1
6 さより ササニシキ わかめ 卵焼き ヨーグルト 1 1 0 0
7 かれい コシヒカリ しじみ ほうれん草 プリン 1 1 0 0
8 かれい ササニシキ わかめ 卵焼き ヨーグルト 0 0 1 1
9 くろまぐろ コシヒカリ わかめ 卵焼き プリン 0 1 0 1
10 くろまぐろ ササニシキ しじみ ほうれん草 ヨーグルト 1 0 1 0
11 はたはた コシヒカリ わかめ 卵焼き プリン 1 0 1 0
12 はたはた ササニシキ しじみ ほうれん草 ヨーグルト 0 1 0 1
13 DMY_鯛 コシヒカリ わかめ ほうれん草 ヨーグルト 0 1 1 0
14 DMY_鯛 ササニシキ しじみ 卵焼き プリン 1 0 0 1
15 DMY_くろまぐろ コシヒカリ わかめ ほうれん草 ヨーグルト 1 0 0 1
16 DMY_くろまぐろ ササニシキ しじみ 卵焼き プリン 0 1 1 0
20
L16直交表への割付け
メールソフトの評価を実施するために各種因子・水準を決めました。
<問題>: 次の因子・水準を直交表に割り付けなさい。
因子 水準
プロトコル
POP
APOP
IMAP
WebMail
セキュリティ
使用しない
SSL
TLS
メールデータ
JISテキストのみ
UTF-8のみ
HTML
英語ファイル名の
添付あり
日本語ファイル名
の添付あり
送信元のメール
ソフト
Outlook
Thunderbird
Becky!
サーバに残す
No
Yes
起動方法
ログイン時
メール到着都度
A B C D E F G
1 0 0 0 0 0 0 0
2 0 1 1 1 0 1 1
3 0 2 2 2 1 0 1
4 0 3 3 3 1 1 0
5 1 0 1 3 1 0 1
6 1 1 0 2 1 1 0
7 1 2 3 1 0 0 0
8 1 3 2 0 0 1 1
9 2 0 2 1 1 1 0
10 2 1 3 0 1 0 1
11 2 2 0 3 0 1 1
12 2 3 1 2 0 0 0
13 3 0 3 2 0 1 1
14 3 1 2 3 0 0 0
15 3 2 1 0 1 1 0
16 3 3 0 1 1 0 1
21
HAYST法のテストプロセス
<HAYST法によるテストプロセス>
1. テスト戦略の立案(顧客と仕様の理解)
2. FV表の作成による仕様分析とテストカバレッジの測定
3. FL表の作成による因子・水準の抽出
4. 直交表の大きさの見積り
5. 多水準が入る直交表の作成
6. 水準の重みづけ
7. 禁則の回避と割付け
8. 組合せ網羅率の確認
9. テスト実施
10. バグの解析
仕様書 FV表
ユーザ視点でシステム全体を把握
⇒ テストカバレッジ測定
FV表 FL表
組合せテスト内容を決定
FL表 直交表
最適な組合せテスト
⇒ 網羅率とテスト効率の両立
22
因子の選び方
1. 関連する因子は全て洗い出し表に組み込む
<総当り表による組み合わせテスト>
テスト総数 = 因子Aの水準数 × 因子Bの水準数 × 因子Cの水準数 × …
<直交表による組み合わせテスト>
テスト総数 = Σ (水準数 - 1) + 1
直交表は、因子数が増えてもそれほどテスト項目数には影響がありません。また、直交表を選択した段階で
テスト数は決まってしまいますので、なるべく列を余らせないように多くの因子を抽出することが重要です。
2. 機能以外の因子について
機種や環境なども因子として割付けることが出来ます。また、使用方法やタイミングも因子に加えるかどうか
検討すると良いでしょう。
その他、ソフトウェアの動作環境(OSやブラウザ、HW資源)、対向ソフト(サービスソフト、DB種類)、ソフト
ウェア利用者(熟練、初心者)といった検査対象ソフトと密接にかかわる因子の洗い出しも大切です。
23
因子を選ぶ視点と抽出方法(因子抽出レビューの意味)
Why(目的)
What(仕様)
How(設計)
Where(立脚点)、When、Who
因子の抽出方法の順番
+: 自由に批判なしでリストアップ
×: 同じものをまとめる
-: 明らかに不要なものを削除
÷: 多数決などで割り切る
Aさん Bさん Cさん
顕在化していてすぐに引き出せる知識
企画・開発・評価・営業が
集まってレビューする
How much(セールスポイント) Whom
誰のため?
お客様のお客様
浜崎あゆみ
⇒きみまろ
旅先の集合写真で全員写る
開発の視点
お客様の視点
24
顧客の理解と仕様の理解
(
6W2Hで
顧客を理解
 Why
 Who
 Whom
 When
 Where
 How to use
 How much
25
FV表
26
仕様書
ユーザの使い方
補足.因子・水準の検討とは?
要求
(RFP)
要件定義
仕様
詳細設計
基本設計
テストアクティビ
ティ開始
システムテスト
計画
単体テスト
計画
統合テス
ト計画
コーディング
デバッグ
&変更
デバッグ
&変更
デバッグ
&変更
デバッグ
&変更
受け入れテスト
実施
システムテスト
実施
単体テスト
実施
統合テスト
実施
レビュー
レビュー
レビュー
レビュー
要求
(RFP)
要件定義
仕様
詳細設計
基本設計
テストアクティビ
ティ開始
システムテスト
計画
単体テスト
計画
統合テス
ト計画
コーディング
デバッグ
&変更
デバッグ
&変更
デバッグ
&変更
デバッグ
&変更
受け入れテスト
実施
システムテスト
実施
単体テスト
実施
統合テスト
実施
レビュー
レビュー
レビュー
レビュー
全フェーズにおいて顧客視点を重視
特に重要
27
因子とは
入力
信号因子
M
出力
y
(レスポンス)
制御因子
( x1, x2, ・・・ , xn )
システム
ノイズ
誤差因子
(z1, z2, ・・・ , zk )
因子とは、実験の要因の中でテスト対象として取り上げたもの。
(要因とは、結果に影響を与える可能性がある主要な原因)
ソフトウェアテストでは、信号因子と誤差因子が中心。
28
因子とは(具体例:割り勘システム)
入力
信号因子
M
出力
y
(レスポンス)
制御因子
( x1, x2, ・・・ , xn )
システム
ノイズ
誤差因子
(z1, z2, ・・・ , zk )
信号因子 •都度入力
金額、男性の人数、女性の人数、支払い割合(平等、6:4、7:3、8:2から選択)
•初期設定
切り捨て桁数(100円単位、1000円単位)、幹事さんモード(太っ腹、お釣りは幹事さ
んへ)
誤差因子 •動作OS、操作順序
制御因子 •金額変数をLONGにするかdoubleにするか、人数の上限値
29
現実のシステム
入力
信号因子
M
出力
y
(レスポンス)
ノイズ
誤差因子
(z1, z2, ・・・ , zk )
現実のシステムは、サブシステムに別れ、さらに出力が入力に
フィードバックされる仕組みがあったりする。
まずは、システムの構成を明らかにすること。
対
象
30
さらに状態を考慮する
入力
信号因子
M {M1, M2, M3,…}
出力
y
(レスポンス)
ノイズ
誤差因子
z {z1, z2, z3 ・・・}
対
象
read write
内部変数の組合せ(=状態)
信号因子 m {m1, m2, m3 ,…}
内部変数の組合せ=状態
31
補足.選択しない因子と交互作用の考慮について
1. データを格納するためだけの因子
クラスのメソッドは通常は因子にあたりますが、データを格納するためだけに使用するset/get
といった因子は組合せテストには採用しません。
他の因子と相互作用を起こさないからです。
2. 使用パターンが決まっている因子
複数の因子があり、その使用パターンが決まっている因子は使用パターンを因子として割り
付けて、プリミティブな因子はそのパターン内に集約します。
3. 交互作用の考慮について
ソフトウェアの評価は主効果を求めるものではないので交互作用の考慮は不要です。
32
水準の選び方
1. ドメインに分割する
ソフトウェアの評価を実施する時に様々なOSでテストをすると
思います。簡単にテストを行う時には、
因子: Windows OS
水準: Win95, Win 98, Win 98SE, ME, Win 2000, Win XP
あたりで確認するのではないでしょうか?
実は、Windows 95だけでも「通常版」,「Rev A」,「Rev B」,「Rev
C」と4つのバージョンが存在するのですが、テストに詳しくなっ
てくると、「Windows 95 Rev B (OSR2)」で代表して実施しておけ
ば、ほとんどの問題を見つけることができる事が分かってきま
す。
このように、多くの水準があった場合は、それをドメインに分け
て代表選手を選ぶことをします。この時に、正しい代表選手を
選べるかどうかはテスト設計を実施する人の持っている情報量
で決まります。
上の例で言えば、Win 98とWin 98SEは大きく内部構造が違うの
でテストの必要性があることに気づく必要があります。
因子: 用紙サイズ
水準: A3, A4, A5, A6, B4, B5, B6, Letter, Tabloid, Legal,
Folio, はがき, statement
を5つにドメイン分割したい場合は、「A3」 「 A4, A5」 「 B4, B5,
B6 」 「A6,はがき」 「 Letter, Tabloid, Legal, Folio, statement 」と
しておいて、後は代表選手を選ぶという手順となります。
HAYST法では、ドメイン分割までは考えていただきますが、代
表選手を選ぶという方法を取らずに抽象化して割り付けたあと
に分離(抽象化を解除)して対応しています。
2. 同値分割、境界値分析
連続したデータがあった場合は,同値分割と境界値分析の考え
方で水準を選びます。つまり、入力値が0~5までの整数値を
取る場合であれば、同値分割し、
-∞ ~ -1 : 無効同値クラス
0 ~ 5: 有効同値クラス
6 ~ ∞: 無効同値クラス
各クラスのサンプル値「-3,2,8」を選択するとともに、境界値
の「-1,0,5,6」を水準に選びます。
なお、現在のHAYST法は,正常系評価なので,「0,2,5」を水準
に選びます。残りの「-8,-1,6,8」については、エラー処理
系のテストタイプで実施してください。
33
補足. 水準の抽出へマンダラートを活用
水準の抽出にマンダラートを活用することができます。
1. マンダラートの中心のマスに因子名を置く
2. 周辺の8マスに水準名を置く
3. 水準が数値の場合
3.1 上の3つのマスに有効同値クラスの下限値、最頻値、上限値を置く
3.2 下の3つのマスに対応する無効同値クラスの値を置く
3.3 因子の両脇のマスには特異値を置く
4. 水準が離散値の場合
4.1 水準のデフォルト値を左上のマスに置く
4.2 2~8水準までは通常のマンダラートの周辺マスに水準を埋める
4.3 16水準になるときには5×5の拡張マンダラートの外枠に埋める
4.4 32水準になるときには9×9の拡張マンダラートの外枠に埋める
4.5 16水準、32水準については、残りのマスを使って抽象化を表現する
5. 空いているマスがあった場合、埋められないか頭を絞る
34
補足. マンダラートの例1
マンダラートを活用した連続値を持つ因子の水準の抽出例です。
※ 時間をマンダラートで表しなさい。
35
補足. マンダラートの例2
マンダラートを活用した離散値を持つ因子の水準の抽出例です。
8水準までは9マスのマンダラートを利用します。
16水準までは25マスのマンダラートを利用し、抽象化も表します。
それ以上は、81マスのマンダラートを利用し、抽象化も表します。
36
直交表の選択方法
2水準系直交表には、L4、L8、L16、L32、L64、L128、L256と多数の種類が存在します。
ソフトウェアテストの規模に合わせて上記直交表を選択すればよいのですが、そのステップは次のとおりに
なります。
1. 組み合わせたい因子の中で、最も大きい水準数を持つ因子を2つ探す
2. 上記を掛け算した値が最小の直交表サイズ(水準数は2nに切上げる)
それでは、実際に例で説明します。今、用紙サイズ(6種類)、用紙方向(2種類)、両面(2種類)、拡大縮小
(4種類)、カラーモード(3種類)を組み合わせたテストを実施するとします。
1. 用紙サイズ(6種類) と、拡大縮小(4種類)が最も大きい水準数を持つ因子です
2. 8(6)×4=32 となり、 L32を選択します
こうすることによって、最大の因子同士でも全ペアが現れるようになります。 L32を選択した場合、網羅率は
100%です。
なお、自由度の総和から直交表のサイズを見積もる方法もあります。自由度は「水準数-1」ですから、全て
の因子に対してΣ を取れば良いので、
直交表のサイズ = 自由度の総和 + 1 = Σ (水準数 - 1) + 1
上記の例で言えば、
直交表のサイズ = (6-1)+ (2-1)+ (2-1)+ (4-1)+ (3-1) + 1 = 13
から、L16を選択するという考え方です。L16を選択した場合、網羅率は94%となります。
37
直交表一覧
HW系
推奨
名称
列数
備 考
2水準 3水準 4水準 5水準 6水準 8水準 16水準 合計
2水準系
L4 3 3
2水準系は
4水準→2水準3つ
8水準→4水準1つと2水準4つ
16水準→8水準1つと2水準8つ
にそれぞれ分解できる
L128とL256は富士ゼロックスで
開発
L8 4 1 7
L16 5 15
L16 8 1 15
L32 8 1 31
L64 9 63
L128 12 10 10 1 127
L256 11 21 13 6 255
3水準系
L9 4 4
L27 13 13
L81 40 40
L243 121 121
混合系
☆ L18 1 7 8
☆ L18(7) 6 1 7 L18の1,2列より6水準作成
L54 1 25 26
☆ L36 11 12 23
☆ L36(1
6)
3 13 16
L36(1
3)
13 13 上記16因子タイプの3水準列のみ
L108 49 49
4~5水準系
L16(5) 5 5
L32(1
0)
1 9 10
L64(2
1)
21 21
L25 6 6
L50 1 11 12
殆直交表
L’18 1 8 9 標準形に2'列を付加
L’27 22 22
38
17
直交表は変形により様々なサイズの因子を受け入れる
L256
L256
L256
L128
L128
L64
64 32 16 8 4 2
L64
L64
L64
1 64
1 10
1
161
1
1
34 52
64
48
16
32
6 7
2 15 4
L64
L32
21
1 16
列数
L256 6 13 21 11
L64
L32
9
81
変形
代表例
39
禁則の回避が必要な理由
これから試しに禁則処理を全く回避しないで、直交表に因子を割付けてみます。
<割付ける因子水準> <仕様書で記述されている禁則処理>
が同時に設定できない組合せ
因子 水準
部数
1
2
3
ソート ON
OFF
出力用紙サイズ
A3
A4
B4
はがき
まとめて1枚
なし
2アップ
4アップ
8アップ
ズーム
なし
25%
400%
原稿の向き たて
よこ
両面
しない
長辺とじ
短辺とじ
とじしろ位置
しない
短辺左
短辺右
短辺上
長辺左
長辺右
長辺上
スタンプ文字列
なし
まる秘
回覧
社外秘
スタンプ位置
上
下
左
右
スタンプ最初の
ページのみ
しない
する
まとめて1枚
し
な
い
2
u
p
4
u
p
8
u
p
ズ
ー
ム
しない
25%
400%
スタンプ位置
右 左 上 下
ス
タ
ン
プ
文
字
列
なし
まる秘
回覧
社外秘
最初の
ページ
のみ
し
な
い
す
る
ス
タ
ン
プ
文
字
列
なし
まる秘
回覧
社外秘
とじしろ位置
し
な
い
短
辺
左
短
辺
右
短
辺
上
長
辺
左
長
辺
右
長
辺
上原稿の
向き
両面
たて なし
たて 長辺
たて 短辺
よこ なし
よこ 長辺
よこ 短辺
40
禁則の回避が必要な理由
テスト可否 部数 ソート 出力用紙サイズ まとめて1枚 ズーム 原稿の向き 両面 とじしろ位置 スタンプ文字列 スタンプ位置スタンプ最初のページのみ
? 1 On A3 しない なし たて なし しない なし 上 しない
? 2 On A4 2アップ 25% たて 長辺とじ しない まる秘 下 する
? 3 On B4 4アップ 400% よこ 短辺とじ しない 回覧 左 しない
? DMY_1 On はがき 8アップ DMY_なし よこ DMY_なし しない 社外秘 右 する
? 1 Off A3 2アップ 25% よこ 短辺とじ 短辺左 回覧 右 する
? 2 Off A4 しない なし よこ DMY_なし 短辺左 社外秘 左 しない
? 3 Off B4 8アップ DMY_なし たて なし 短辺左 なし 下 する
? DMY_1 Off はがき 4アップ 400% たて 長辺とじ 短辺左 まる秘 上 しない
? 1 Off A4 4アップ DMY_なし よこ なし 短辺右 まる秘 左 する
? 2 Off A3 8アップ 400% よこ 長辺とじ 短辺右 なし 右 しない
? 3 Off はがき しない 25% たて 短辺とじ 短辺右 社外秘 上 する
? DMY_1 Off B4 2アップ なし たて DMY_なし 短辺右 回覧 下 しない
? 1 On A4 8アップ 400% たて 短辺とじ 短辺上 社外秘 下 しない
? 2 On A3 4アップ DMY_なし たて DMY_なし 短辺上 回覧 上 する
? 3 On はがき 2アップ なし よこ なし 短辺上 まる秘 右 しない
? DMY_1 On B4 しない 25% よこ 長辺とじ 短辺上 なし 左 する
? 1 Off はがき しない DMY_なし よこ 長辺とじ 長辺左 回覧 下 しない
? 2 Off B4 2アップ 400% よこ なし 長辺左 社外秘 上 する
? 3 Off A4 4アップ 25% たて DMY_なし 長辺左 なし 右 しない
? DMY_1 Off A3 8アップ なし たて 短辺とじ 長辺左 まる秘 左 する
? 1 On はがき 2アップ 400% たて DMY_なし 長辺右 なし 左 する
? 2 On B4 しない DMY_なし たて 短辺とじ 長辺右 まる秘 右 しない
? 3 On A4 8アップ なし よこ 長辺とじ 長辺右 回覧 上 する
? DMY_1 On A3 4アップ 25% よこ なし 長辺右 社外秘 下 しない
? 1 On B4 4アップ なし たて 長辺とじ 長辺上 社外秘 右 する
? 2 On はがき 8アップ 25% たて なし 長辺上 回覧 左 しない
? 3 On A3 しない 400% よこ DMY_なし 長辺上 まる秘 下 する
? DMY_1 On A4 2アップ DMY_なし よこ 短辺とじ 長辺上 なし 上 しない
? 1 Off B4 8アップ 25% よこ DMY_なし DMY_しない まる秘 上 しない
? 2 Off はがき 4アップ なし よこ 短辺とじ DMY_しない なし 下 する
? 3 Off A3 2アップ DMY_なし たて 長辺とじ DMY_しない 社外秘 左 しない
? DMY_1 Off A4 しない 400% たて なし DMY_しない 回覧 右 する
禁則処理を全く回避しないで、直交表に因子水準を割付けた結果です。
どこに禁則処理が含まれているかわかります?
いったいどのテスト項目に修正が必要なのでしょう?
修正するにしても、“あちらを立てればこちらが立たず”でまるでモグラたたきです。
41
禁則の回避が必要な理由
テスト可否 部数 ソート 出力用紙サイズ まとめて1枚 ズーム 原稿の向き 両面 とじしろ位置 スタンプ文字列 スタンプ位置スタンプ最初のページのみ
× 1 On A3 しない なし たて なし しない なし 上 しない
× 2 On A4 2アップ 25% たて 長辺とじ しない まる秘 下 する
× 3 On B4 4アップ 400% よこ 短辺とじ しない 回覧 左 しない
○ DMY_1 On はがき 8アップ DMY_なし よこ DMY_なし しない 社外秘 右 する
× 1 Off A3 2アップ 25% よこ 短辺とじ 短辺左 回覧 右 する
○ 2 Off A4 しない なし よこ DMY_なし 短辺左 社外秘 左 しない
× 3 Off B4 8アップ DMY_なし たて なし 短辺左 なし 下 する
× DMY_1 Off はがき 4アップ 400% たて 長辺とじ 短辺左 まる秘 上 しない
○ 1 Off A4 4アップ DMY_なし よこ なし 短辺右 まる秘 左 する
× 2 Off A3 8アップ 400% よこ 長辺とじ 短辺右 なし 右 しない
○ 3 Off はがき しない 25% たて 短辺とじ 短辺右 社外秘 上 する
× DMY_1 Off B4 2アップ なし たて DMY_なし 短辺右 回覧 下 しない
× 1 On A4 8アップ 400% たて 短辺とじ 短辺上 社外秘 下 しない
○ 2 On A3 4アップ DMY_なし たて DMY_なし 短辺上 回覧 上 する
× 3 On はがき 2アップ なし よこ なし 短辺上 まる秘 右 しない
× DMY_1 On B4 しない 25% よこ 長辺とじ 短辺上 なし 左 する
× 1 Off はがき しない DMY_なし よこ 長辺とじ 長辺左 回覧 下 しない
× 2 Off B4 2アップ 400% よこ なし 長辺左 社外秘 上 する
× 3 Off A4 4アップ 25% たて DMY_なし 長辺左 なし 右 しない
× DMY_1 Off A3 8アップ なし たて 短辺とじ 長辺左 まる秘 左 する
× 1 On はがき 2アップ 400% たて DMY_なし 長辺右 なし 左 する
× 2 On B4 しない DMY_なし たて 短辺とじ 長辺右 まる秘 右 しない
× 3 On A4 8アップ なし よこ 長辺とじ 長辺右 回覧 上 する
× DMY_1 On A3 4アップ 25% よこ なし 長辺右 社外秘 下 しない
× 1 On B4 4アップ なし たて 長辺とじ 長辺上 社外秘 右 する
× 2 On はがき 8アップ 25% たて なし 長辺上 回覧 左 しない
× 3 On A3 しない 400% よこ DMY_なし 長辺上 まる秘 下 する
× DMY_1 On A4 2アップ DMY_なし よこ 短辺とじ 長辺上 なし 上 しない
× 1 Off B4 8アップ 25% よこ DMY_なし DMY_しない まる秘 上 しない
× 2 Off はがき 4アップ なし よこ 短辺とじ DMY_しない なし 下 する
○ 3 Off A3 2アップ DMY_なし たて 長辺とじ DMY_しない 社外秘 左 しない
○ DMY_1 Off A4 しない 400% たて なし DMY_しない 回覧 右 する
禁則処理がテスト項目にどのように含まれているのかを確認してみました。
32項目あるテスト項目のうち25項目が禁則処理を含んでいることが分かります。
このままでは、正常系のテストが出来ないので、禁則関係にある水準を別な水準に変更する必要があります。
実際のソフトウェアでは因子の数もたくさんあり、禁則の数も膨大です。これらを一つ一つチェックし、組合せの
出現頻度を維持しながら、テスト実施可能なテスト項目を作成するのはたいへんな作業です。
直交表は、全ての組合せを保証してくれるのですが、その反面、禁則の回避をあらかじめしておかないと、
正常系のテスト項目として成り立たなくなってしまいます。
42
禁則の分類
禁則関係の分類は、禁則マトリクスを記述することで可能になります。
禁則マトリクスから、その禁則パターンを読み取り、禁則の種類を判別します。
それぞれの禁則関係に応じた禁則回避手法を用いることで、テストマトリクス上に
適切な割付を行うことが出来ます。
相互排他関係
多 層 化 関 係
可変因子関係
SWの禁則処理関係は大きく分けて以下の3種類が有ります。
43
禁則関係と禁則マトリクス
禁則マトリクスとは、因子の間の禁則関係を、マトリクス状に表現したものです。
赤色のセルが禁則の設定されている組合せです。
条件因子の保有する水準の組合せと、禁則設定因子の保有する水準の組合せの総当たり形式のマトリクスです。
禁則の設定には方向性を考慮します。
条件因子の影響を受けて禁則設定因子の選択可能な水準が変化すると解釈します。
複数個の条件因子を考慮する場合には、条件因子の保有する水準の全ての組合せを条件因子側に記述し、これらに
対して禁則設定因子の水準の選択状態が影響を受けると解釈します。
条件因子群の全組合せ
まとめて1枚
し
な
い
2
u
p
4
u
p
8
u
p
拡
大
縮
小
しない
25%
70%
400%
条件因子
禁則設定因子
とじしろ位置
し
な
い
短
辺
左
短
辺
右
短
辺
上
長
辺
左
長
辺
右
長
辺
上原稿の
向き
両面
たて なし
たて 長辺
たて 短辺
よこ なし
よこ 長辺
よこ 短辺
両面
し
な
い
長
辺
と
じ
短
辺
と
じ
出
力
用
紙
サ
イ
ズ
A4
A6
B4
はがき
封筒
B6
B5
44
相互排他因子融合手法
融合する
抽象化、又は、ダミー水準の付与
を行い、線点図に割付ける。
今回は8水準線点図
1
3
2 6
5
4
7
直交表に融合した状態で割付ける 融合した因子を分離する
融合を分離
相互排他関係にある条件因子と禁則設定因子を融合してしまいます。
まとめて1枚
し
な
い
2
u
p
4
u
p
8
u
p
拡
大
縮
小
しない
25%
70%
400%
拡大縮小 / まとめて1枚
しない・しない
25%・しない
70%・しない
400%・しない
しない・2up
しない・4up
しない・8up
拡大縮小/まとめて1枚 8 9 10 11 12 13 14 15
1 しない・しない 0 0 0 0 0 0 0 0
2 しない・しない 1 1 1 1 1 1 1 1
3 25%・しない 0 0 0 0 1 1 1 1
4 25%・しない 1 1 1 1 0 0 0 0
5 70%・しない 0 0 1 1 0 0 1 1
6 70%・しない 1 1 0 0 1 1 0 0
7 400%・しない 0 0 1 1 1 1 0 0
8 400%・しない 1 1 0 0 0 0 1 1
9 しない・2up 0 1 0 1 0 1 0 1
10 しない・2up 1 0 1 0 1 0 1 0
11 しない・4up 0 1 0 1 1 0 1 0
12 しない・4up 1 0 1 0 0 1 0 1
13 しない・8up 0 1 1 0 0 1 1 0
14 しない・8up 1 0 0 1 1 0 0 1
15 DMYしない・2up 0 1 1 0 1 0 0 0
16 DMYしない・2up 1 0 0 1 0 1 1 0
拡大縮小 まとめて1枚 8 9 10 11 12 13 14 15
1 しない しない 0 0 0 0 0 0 0 0
2 しない しない 1 1 1 1 1 1 1 1
3 25% しない 0 0 0 0 1 1 1 1
4 25% しない 1 1 1 1 0 0 0 0
5 70% しない 0 0 1 1 0 0 1 1
6 70% しない 1 1 0 0 1 1 0 0
7 400% しない 0 0 1 1 1 1 0 0
8 400% しない 1 1 0 0 0 0 1 1
9 しない 2up 0 1 0 1 0 1 0 1
10 しない 2up 1 0 1 0 1 0 1 0
11 しない 4up 0 1 0 1 1 0 1 0
12 しない 4up 1 0 1 0 0 1 0 1
13 しない 8up 0 1 1 0 0 1 1 0
14 しない 8up 1 0 0 1 1 0 0 1
15 しない 2up 0 1 1 0 1 0 0 0
16 しない 2up 1 0 0 1 0 1 1 0
45
多層化手法
禁則設定因子条件因子
禁則マトリクスが以下のように描画されている状況で手法の解説をします。
出力用紙サイズ → 両面
出力用紙サイズ → 給紙トレイ
両面 → とじしろ裏
とじしろ裏 → とじしろ裏(幅)
両面 給紙トレイ
出力用紙サイズ
とじしろ裏
とじしろ裏(幅)
禁則の依存
関係を整理
いろいろ
ぶら下がっている。
両面
し
な
い
長
辺
と
じ
短
辺
と
じ
出
力
用
紙
サ
イ
ズ
A4
A6
B4
はがき
封筒
B6
B5
給紙トレイ
ト
レ
イ
1
ト
レ
イ
2
ト
レ
イ
3
出
力
用
紙
サ
イ
ズ
A4
A6
B4
はがき
封筒
B6
B5
とじしろ裏
(幅)
0
10
50
と
じ
し
ろ
裏
しない
する
とじし
ろ裏
し
な
い
す
る
両
面
しない
長辺とじ
短辺とじ
46
多層化処理
Sub Matrix 1
Sub Matrix 2
Sub Matrix 3
L16に
割付ける
L4に
割付ける
L8に
割付ける
出力用紙サイズ A4
B4
両面 しない
長辺とじ
短辺とじ
給紙トレイ トレイ1
トレイ2
トレイ3
両面 長辺とじ
短辺とじ
とじしろ裏 しない
する
とじしろ裏 する
とじしろ裏 0
10
50
出力用紙サイズ
SubMatrix
両面 給紙トレイ
とじしろ裏
とじしろ裏(幅)
出力用紙
サイズ
とじしろ裏
両面
Main Matrix
Sub Matrix 1
MainMatrixへ連結
因子の出現が他の因子に依存する場合、
外部の直交表(Sub Matrix)に割付け、後からMainMatrixへ連結
因子A 因子B 因子C 因子D
Sub Matrix 2
Sub Matrix 3
47
可変因子処理
2) パターンの生成1) 禁則マトリクスのパターンの解析 3) とじしろ位置の
仮想因子の作成
同一列への割付
とじしろ位置
し
な
い
短
辺
左
短
辺
右
短
辺
上
長
辺
左
長
辺
右
長
辺
上原稿の
向き
両面
たて なし
たて 長辺
たて 短辺
よこ なし
よこ 長辺
よこ 短辺
とじしろ位置
し
な
い
短
辺
左
短
辺
右
短
辺
上
長
辺
左
長
辺
右
仮想1
し
な
い
短
辺
上
長
辺
左
長
辺
右
仮想2
し
な
い
長
辺
左
長
辺
右
仮想3
し
な
い
短
辺
左
短
辺
右
仮想4
し
な
い
長
辺
上
用紙サイズ 原稿の向き 両面 とじしろ位置 出力トレイ 部数
A4 たて なし 0 トレイ1 1
A4 たて 長辺 11 トレイ2 2
A4 よこ 短辺 101 トレイ3 1
A4 よこ DMY_なし 110 手差し 2
B4 よこ なし 110 手差し 1
B4 よこ 長辺 101 トレイ3 2
B4 たて 短辺 11 トレイ2 1
B4 たて DMY_なし 0 トレイ1 2
A3 よこ なし 11 トレイ2 2
A3 よこ 長辺 0 トレイ1 1
A3 たて 短辺 110 手差し 2
A3 たて DMY_なし 101 トレイ3 1
B5 たて なし 101 トレイ3 2
B5 たて 長辺 110 手差し 1
B5 よこ 短辺 0 トレイ1 2
B5 よこ DMY_なし 11 トレイ2 1
48
禁則回避手法のまとめ
概 略禁則回避手法名禁則関係
IF、FF、ME、AFを割付ける直交表
(:Main Matrix) とは別の小さなマトリクス
(:Sub Matrix)に割付けを行い、あとから
Sub MatrixをMain Matrixに結合する。
条件因子側の水準パターンに応じて、
仮想的な因子をパターンの数だけ作成し
仮想因子をMain Matrixに割付ける。
相互排他関係にある因子を融合して
1因子にしてしまう
多層化手法
可変因子手法
相互排他因子融合手法
因子の出現が他の因子の保有
する水準の出現に依存する
複雑な禁則関係
相互排他関係
説明で用いた禁則関係では、簡単化のために、それぞれの禁則関係を独立させて割付けを実施
しましたが、実際には、相互に禁則関係が入り組んでいて難解なものになっている場合も有ります。
そのような場合でも、順番に禁則回避手法に従って割付を実施すれば、自然にマトリクスは出来上がります
49
機能が直交(独立)している例
たぶん、このケースではHAYST法による組合せテス
トはしません。
各因子の独立性が高いためです。
組合せテストとしては水準集約法(単一網羅テスト)
を使用します。
50
単一網羅組合せ(HAYST法のテクニックの一つ:水準集約法)
No.
ファイル
名
ファイル
内の単語
探す場所 変更日 サイズ
ファイル
の種類
システム
フォルダ
の検索
隠しファイ
ルとフォ
ルダの検
索
サブフォ
ルダの検
索
大文字と
小文字の
区別
テープ
バックアッ
プの検索
1 sample1 sample1 ローカル 不明 不明 type1 する する する しない しない
2 sample1 sample1 ネット 1週間以内小 type1 しない しない しない する する
3 sample2 sample2 ローカル 1か月以内中 type2 する しない しない しない しない
4 sample2 sample2 ネット 1年以内 大 type2 しない する する する する
5 sample3 sample3 ローカル 日付指定1サイズ指定1 type3 しない する しない しない する
6 sample3 sample3 ネット 日付指定2サイズ指定2 type3 する しない する する しない
7 sample4 sample4 ローカル 日付指定3サイズ指定3 type4 しない しない する しない する
8 sample4 sample4 ネット 日付指定4サイズ指定4 type4 する する しない する しない
HAYST法では
L64になります
51
問題
インターネットエクスプローラーの「インターネットオプション」の「全般」にある次
のオプションシートの組合せをHAYST法で設計しなさい。
1. 色
2. フォント
文字列と背景の既定の
色を変更します。
ページを表示するときに使用す
るフォントを変えます。
52
色
チェックすると「ポイント
時の色」を設定できる
色のボタンを押すと表示される
チェックを外すと「文字列」と「背景」
の色を設定できる
53
フォント
Canadian Syllabic
Gurmukhi
Thaana
Yi
アラビア語
アルメニア語
オガム文字
オリヤー語
カナラ語
ギリシャ語
キリル言語
グジャラート語
クメール語
グルジア語
シンハラ語
タイ語
タミール語
チェロキー語
チベット語
デバナガリ文字
テルグ語
ビルマ語
ブライユ点字
ヘブライ語
ベンガル語
マラヤラム語
モンゴル語
ユーザー定義
ラオス語
ラテン語基本
ルーン文字
簡体字中国語
韓国語
古代エチオピア語
古代シリア語
日本語
繁体字中国語
Arial Unicode MS
ARISAKA
ARISAKA_AA
ARISAKA-等幅
HGPゴシックE
HGPゴシックM
HGP教科書体
HGP行書体
HGP創英プレゼンスEB
HGP創英角ゴシックUB
HGP創英角ポップ体
HGP明朝B
HGP明朝E
HGSゴシックE
HGSゴシックM
HGS教科書体
HGS行書体
HGS創英プレゼンスEB
HGS創英角ゴシックUB
HGS創英角ポップ体
HGS明朝B
HGS明朝E
HGゴシックE
HGゴシックM
HG丸ゴシックM-PRO
HG教科書体
HG行書体
HG正楷書体-PRO
HG創英プレゼンスEB
HG創英角ゴシックUB
HG創英角ポップ体
HG明朝B
HG明朝E
Lucida Sans Unicode
Microsoft Sans Serif
MS Pゴシック
MS P明朝
MS UI Gothic
MS ゴシック
MS 明朝
Tahoma
ふい字
ARISAKA-等幅
HGゴシックE
HGゴシックM
HG教科書体
HG行書体
HG創英プレゼンスEB
HG創英角ゴシックUB
HG創英角ポップ体
HG明朝B
HG明朝E
MS ゴシック
MS 明朝
ふい字
Webページ内の書式が付いて
いない文字列を表示するときに
指定するフォントを指定します。
Webページ内の書式付き文字
列を表示するときに使用する
フォントを指定します。
コンピュータにインス
トールされている文
字セットの一覧を表
示します。文字セット
を選びフォントを指
定します。
54
手順
以下の手順で実習してください。テストは「システムテスト」を想定してください。
1. 「色」、「フォント」上のアイテムのFV表の作成
a. 検証を考える時には機能の目的(Why)を意識する
b. 単機能で確認すること、組合せで確認すること
2. 因子・水準、禁則の洗い出し
a. どの水準を残すか(理由とともに)
b. 追加で必要な因子の検討
3. 直交表への割り付け
a. L16への割り付け
※ PC確認できるのは各チーム5分のみとします。

More Related Content

What's hot

「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
Makoto Nonaka
 

What's hot (20)

テストアプローチにデータ分析を使おう
テストアプローチにデータ分析を使おうテストアプローチにデータ分析を使おう
テストアプローチにデータ分析を使おう
 
クラシフィケーション・ツリー法入門
クラシフィケーション・ツリー法入門クラシフィケーション・ツリー法入門
クラシフィケーション・ツリー法入門
 
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
「事実にもとづく管理」によるソフトウェア品質の改善 ー ヒンシツ大学 Evening Talk #04
 
モバイルアプリにおけるアーティストフレンドリーな水面表現戦略
モバイルアプリにおけるアーティストフレンドリーな水面表現戦略モバイルアプリにおけるアーティストフレンドリーな水面表現戦略
モバイルアプリにおけるアーティストフレンドリーな水面表現戦略
 
サンプリング定理
サンプリング定理サンプリング定理
サンプリング定理
 
Addressables で大量のリソース管理・困りどころと解消法
Addressables で大量のリソース管理・困りどころと解消法Addressables で大量のリソース管理・困りどころと解消法
Addressables で大量のリソース管理・困りどころと解消法
 
虫食算に学ぶ、深さ優先探索アルゴリズム (combmof, 2018/12/23)
虫食算に学ぶ、深さ優先探索アルゴリズム (combmof, 2018/12/23)虫食算に学ぶ、深さ優先探索アルゴリズム (combmof, 2018/12/23)
虫食算に学ぶ、深さ優先探索アルゴリズム (combmof, 2018/12/23)
 
第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料
 
【Unity道場スペシャル 2017博多】TextMesh Pro を使いこなす
【Unity道場スペシャル 2017博多】TextMesh Pro を使いこなす【Unity道場スペシャル 2017博多】TextMesh Pro を使いこなす
【Unity道場スペシャル 2017博多】TextMesh Pro を使いこなす
 
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
 
Introduction to PFMEA (traditional Chinese)
Introduction to PFMEA (traditional Chinese)Introduction to PFMEA (traditional Chinese)
Introduction to PFMEA (traditional Chinese)
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
 
親に知ってほしい受験勉強
親に知ってほしい受験勉強親に知ってほしい受験勉強
親に知ってほしい受験勉強
 
Unityでオニオンアーキテクチャ
UnityでオニオンアーキテクチャUnityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
 
DDD 20121106 SEA Forum November
DDD 20121106 SEA Forum NovemberDDD 20121106 SEA Forum November
DDD 20121106 SEA Forum November
 
探索的テストはじめの一歩 #wacate
探索的テストはじめの一歩 #wacate探索的テストはじめの一歩 #wacate
探索的テストはじめの一歩 #wacate
 
Prml 4.3.6
Prml 4.3.6Prml 4.3.6
Prml 4.3.6
 
検索可能暗号の概観と今後の展望(第2回次世代セキュア情報基盤ワークショップ)
検索可能暗号の概観と今後の展望(第2回次世代セキュア情報基盤ワークショップ)検索可能暗号の概観と今後の展望(第2回次世代セキュア情報基盤ワークショップ)
検索可能暗号の概観と今後の展望(第2回次世代セキュア情報基盤ワークショップ)
 
年の瀬!リアルタイム通信ゲームサーバ勉強会
年の瀬!リアルタイム通信ゲームサーバ勉強会年の瀬!リアルタイム通信ゲームサーバ勉強会
年の瀬!リアルタイム通信ゲームサーバ勉強会
 
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
 

Similar to 20081024 ja sst-sapporo

Similar to 20081024 ja sst-sapporo (9)

2進数フレンズ
2進数フレンズ 2進数フレンズ
2進数フレンズ
 
「科学=予測」Science cafe 2011 june 10
「科学=予測」Science cafe 2011 june 10「科学=予測」Science cafe 2011 june 10
「科学=予測」Science cafe 2011 june 10
 
論理回路2017 no.6
論理回路2017 no.6論理回路2017 no.6
論理回路2017 no.6
 
Why typed
Why typedWhy typed
Why typed
 
T45 episteme
T45 epistemeT45 episteme
T45 episteme
 
STC OC20210605 ハノイの塔
STC OC20210605  ハノイの塔STC OC20210605  ハノイの塔
STC OC20210605 ハノイの塔
 
Operations research yonezawa_no2
Operations research yonezawa_no2Operations research yonezawa_no2
Operations research yonezawa_no2
 
フォントのしくみ
フォントのしくみフォントのしくみ
フォントのしくみ
 
諸学者向け!進数変換の基礎知識
諸学者向け!進数変換の基礎知識諸学者向け!進数変換の基礎知識
諸学者向け!進数変換の基礎知識
 

More from Kouichi Akiyama

20150424 jasst新潟基調講演
20150424 jasst新潟基調講演20150424 jasst新潟基調講演
20150424 jasst新潟基調講演
Kouichi Akiyama
 

More from Kouichi Akiyama (16)

業務状態遷移テストを語る夕べ
業務状態遷移テストを語る夕べ業務状態遷移テストを語る夕べ
業務状態遷移テストを語る夕べ
 
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
 
20170203 test analysisdesign
20170203 test analysisdesign20170203 test analysisdesign
20170203 test analysisdesign
 
20160619 wacate 解答
20160619 wacate   解答20160619 wacate   解答
20160619 wacate 解答
 
20160619 wacate
20160619 wacate20160619 wacate
20160619 wacate
 
20160607 SS2016 FP
20160607 SS2016 FP20160607 SS2016 FP
20160607 SS2016 FP
 
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
 
N-Switchカバレッジテストの問題点と解決策
N-Switchカバレッジテストの問題点と解決策N-Switchカバレッジテストの問題点と解決策
N-Switchカバレッジテストの問題点と解決策
 
とてか2
とてか2とてか2
とてか2
 

20081024 ja sst-sapporo