組み合わせテスト
WACATE2016 冬
2016/12/18
WACATE実行委員 藤原 洋平
技法セッション
テスト技法のセッションです!
そもそも、テスト技法とは?
JSTQB 曰く:
テストケースを作成したり
選択したりするための技法。
テスト技法のセッションです!
良いテスト(ケース群)を
作るためのテクニック
より少ないテストケース数で
より多くの不具合を見つけられ
テスト対象を網羅
テスト技法のセッションです!
いくつかの技法をご紹介します
その技法の考え方が分かる、
使えるようになる、
今回は基本編!玄奥はご自身で!
組み合わせテスト
「組み合わせテスト」
名前の通り「組み合わせ」が
発生する際に実行するテスト
テスト条件(パラメータ)
テスト環境
テスト対象...
組み合わせの例
以下の場合
ルー
ごはん
付け合せ
組み合わせの例
3 × 3 × 22 =36通り
ちょっと種類を追加して…
ルー
 [辛さ 1~10 を追加]
ごはん
付け合せ・トッピング
組み合わせの例
5×10×3×210 =153,600 通り
組み合わせによる「爆発」
組み合わせるものにより、
結果が膨大な数になることがある
全てのテスト実施は
「不可能」な場合もある
組み合わせテスト技法
テストで確認したいポイントは抑えつつ、
でも、テストケース数を削減したい
SQuBOK 曰く
組み合わせの技法とは、テスト条件
(パラメータ)の組み合わせを
決定するための技法である
用語の説明
と、ミニワーク
用語説明 : 因子と水準
因子 水準
ルー マホロバ、キーマ、おばあちゃん…
ごはん 白米、ターメリック、ナン
付け合わせ 福神漬け、らっきょう、卵、チーズ…
因子 水準
OS Windows7, Windows10, Mac OS X…
ブラウザ IE11, Edge, Chrome, FireFox, Safari
アプリver β、1.0、1.1、2.0…
用語説明 : 因子と水準
因子 水準
ルー マホロバ、キーマ、おばあちゃん…
ごはん 白米、ターメリック、ナン
付け合わせ 福神漬け、らっきょう、卵、チーズ…
因子 水準
OS Windows7, Windows10, Mac OS X…
ブラウザ IE11, Edge, Chrome, FireFox, Safari
アプリver β、1.0、1.1、2.0…
入力条件、
組み合わせの要素
因子のとりえる
パターンや値
用語説明 : 有則と無則
有則
因子が動作や結果に影響を与える
関係を持っている
仕様上の関わりがある
無則
お互いの因子および水準が影響しない
「直交」している
用語説明 : 有則
+ =シーフードカレー
+ =チーズカレー
+ =カツカレー
用語説明 : 無則
+ =チーズカレー
+
どんなドリンクでも
チーズカレー
用語説明 : 禁則
禁則
実現不可能な因子の組み合わせ
仕様上ありえない
=組み合わせることが出来ない
用語説明 : 禁則
ライスは以下から選べます
白米 サフラン ターメリック
+ サフラン = ??
ワーク解答例
有則の関係
会員情報・配送オプション・手数料
→ 合計金額に影響する
無則の関係
発送方法・梱包方法
→ 合計金額には影響がない
ワーク解答例
禁則の関係
冷凍冷蔵食品の注文・梱包
→ 冷凍冷蔵食品は梱包不可
ギフト設定にも、可不可がありそう…
ここまでのまとめ
用語:因子・水準
有則・無則・禁則
組み合わせテストでよく使われる技法
デシジョンテーブル
原因結果グラフ
CFD法
ドメイン分析
ペアワイズ(オールペア法)
直交表
クラシフィケーションツリー法
etc...
有則の関係の組み合わせを
効率的・網羅的に探したい
無則の組み合わせが
存在するとき
デシジョンテーブル
デシジョンテーブル
論理関係を持った複数条件を
表形式で整理するツール
自然言語よりロジックが明確になる
デシジョンテーブル
まずはこちらをご覧ください(例題)
[TOARU映画館 料金一覧]
一般料金 1800円
学生(大・専) 1,500円
中・高生 1000円
小人(3才~小学生)1000円。
60才以上 1,100円。
※学生、中・高生は学生証の提示が必要。
※3D作品は一律プラス 400円。メガネ持参 100円引き
デシジョンテーブル詳細
学生(大・専) N N N Y Y Y Y N N N N N N Y
中・高校生 N N N N N N N Y Y Y N N N N
小人 N N N N N N N N N N Y N N N
60才以上 N N N N N N N N N N ・ ・ ・ ・ N Y Y Y
学生証提示 N N N N Y Y Y N Y Y N N N Y
3D作品 N Y Y N N Y Y N N Y N N Y Y
3Dメガネ持参 N N Y N N N Y N N N N N Y Y
1,800円 X X X X X
1,500円 X X X
1,100円 X X X
1,000円 X X ・ ・ ・ ・ X
+400円 X X X X X X X
-100円 X X X X
デシジョンテーブル詳細
学生(大・専) N N N Y Y Y Y N N N N N N Y
中・高校生 N N N N N N N Y Y Y N N N N
小人 N N N N N N N N N N Y N N N
60才以上 N N N N N N N N N N ・ ・ ・ ・ N Y Y Y
学生証提示 N N N N Y Y Y N Y Y N N N Y
3D作品 N Y Y N N Y Y N N Y N N Y Y
3Dメガネ持参 N N Y N N N Y N N N N N Y Y
1,800円 X X X X X
1,500円 X X X
1,100円 X X X
1,000円 X X ・ ・ ・ ・ X
+400円 X X X X X X X
-100円 X X X X
「条件」を記載
Y は条件に当てはまるもの
Nは条件に当てはまらないもの
デシジョンテーブル詳細
学生(大・専) N N N Y Y Y Y N N N N N N Y
中・高校生 N N N N N N N Y Y Y N N N N
小人 N N N N N N N N N N Y N N N
60才以上 N N N N N N N N N N ・ ・ ・ ・ N Y Y Y
学生証提示 N N N N Y Y Y N Y Y N N N Y
3D作品 N Y Y N N Y Y N N Y N N Y Y
3Dメガネ持参 N N Y N N N Y N N N N N Y Y
1,800円 X X X X X
1,500円 X X X
1,100円 X X X
1,000円 X X ・ ・ ・ ・ X
+400円 X X X X X X X
-100円 X X X X
「動作」を記載
実行されるものを X
組み合わせにより変化
個人ワーク
作成手順
条件、動作を洗い出す
条件を上部、動作を下部の行に記載
条件の組み合わせをY/Nで列に記載
組み合わせ結果の動作Xを記載
ワークをやってみて…
「学生」と「中・高生」は
同時に Y にできない?
3D映画以外でメガネ持参?
デシジョンテーブル詳細
学生(大・専) Y Y Y Y Y N N
中・高校生 N Y Y Y Y Y Y
学生証提示 … Y N Y Y Y N Y …
3D作品 N N N Y Y N N
3Dメガネ持参 N N N N Y N N
1,800円 N/A N/A N/A N/A X
1,500円 X N/A N/A N/A N/A
1,000円 N/A N/A N/A N/A X …
+400円 N/A N/A N/A N/A
-100円 N/A N/A N/A N/A
あり得ない組み合わせが
出てきたときは…
デシジョンテーブル詳細
学生(大・専) Y Y Y Y Y N N
中・高校生 N Y Y Y Y Y Y
学生証提示 … Y - - - - N Y …
3D作品 N - - - - N N
3Dメガネ持参 N - - - - N N
1,800円 N/A N/A N/A N/A X
1,500円 X N/A N/A N/A N/A
1,000円 N/A N/A N/A N/A X …
+400円 N/A N/A N/A N/A
-100円 N/A N/A N/A N/A
デシジョンテーブル詳細
学生(大・専) Y Y N N
中・高校生 N Y Y Y
学生証提示 … Y - N Y …
3D作品 N - N N
3Dメガネ持参 N - N N
1,800円 N/A X
1,500円 X N/A
1,000円 N/A X …
+400円 N/A
-100円 N/A
デシジョンテーブル詳細
学生(大・専) Y Y N N N
中・高校生 N Y Y Y Y
学生証提示 … Y - N Y Y …
3D作品 N - N N N
3Dメガネ持参 N - N N Y
1,800円 N/A X
1,500円 X N/A
1,000円 N/A X X …
+400円 N/A ?
-100円 N/A ?
デシジョンテーブル詳細
学生(大・専) Y Y N N N N
中・高校生 N Y Y Y Y Y
学生証提示 … Y - N Y Y Y …
3D作品 N - N N N Y
3Dメガネ持参 - - - - - Y
1,800円 N/A X
1,500円 X N/A
1,000円 N/A X X X …
+400円 N/A X
-100円 N/A X
案1:3D作品 N の時点で
- にする
デシジョンテーブル詳細
学生(大・専) Y Y N N N N
中・高校生 N Y Y Y Y Y
学生証提示 … Y - N Y Y Y …
3D作品(メガネ有 N - N Y N Y
3D作品(メガネ無 N - N N Y Y
1,800円 N/A X
1,500円 X N/A
1,000円 N/A X X X …
+400円 N/A X N/A
+300円 N/A X N/A
案2:条件を明確にする
デシジョンテーブル詳細
金額(=動作)をまとめてもOK
2,200円
2,100円
1,900円
1,800円
1,500円
1,400円
1,300円
1,000円
一般料金の 1,800円と
中・高生の 1,500円
+ 3Dメガネ有 300円の
区別がつかない
問題ないか、確認
(= 何を確認したいのか)
デシジョンテーブル詳細
学生(大・専) N N N Y Y Y Y Y Y Y N N N N N N
中・高校生 N N N N N N N N N Y Y Y Y Y Y Y
学生証提示 - - - N N N Y Y Y - N N N Y Y Y
3D作品 N Y Y N Y Y N Y Y - N Y Y N Y Y
3Dメガネ持参 - N Y - N Y - N Y - - N Y - N Y
1,800円 X X X X X X N/A
X X X
1,500円 X X X N/A
1,000円 N/A
X X X
+400円 X X X X X X N/A
X X X X
-100円 X X X N/A
X X
ペアワイズ と 直交表
組み合わせの爆発を抑える
因子水準の組み合わせにより、
ケース数が爆発してしまった時、
ある理論や制約に基づいて、
ケース数を削減する技法
銀の弾丸では無い
Pair wise(All Pair)
ペアワイズ(オールペア法)
ペアワイズの特徴は、
複数ある因子のうち
2つの因子の組 = ペアに着目をし
ペア間の組み合わせを網羅していく
ペアワイズの簡単な例
例えば WEBアプリのテストにて…
WinとMac、ChromeとFirefox
機能A・B
各OS、ブラウザ、機能が
動くことを確認したい!
ペアワイズの簡単な例
OS ブラウザ 機能
Windows Chrome A機能
Windows Chrome B機能
Windows Firefox A機能
Windows Firefox B機能
: : :
Mac Chrome B機能
Mac Firefox A機能
Mac Firefox B機能
たった3因子
2水準でも
それなりの
数…
ペアワイズの簡単な例
1つのブラウザで、A機能かB機能
どちらかが確認できれば OK!
1つの OS で、各ブラウザが1回は
動作すれば OK!
A機能・B機能、それぞれ各 OS で
動作すれば OK!(ブラウザ不問)
ペアワイズの簡単な例
OS ブラウザ 機能
Windows Chrome A機能
Windows Firefox B機能
Mac Chrome B機能
Mac Firefox A機能
4ケーステストすれば、先の条件において、
網羅できている!
先の条件 = ペア(2因子間)を網羅する
ペアワイズの簡単な例
なぜ、ペア(2因子)の網羅で
良しとするのか?
多因子間網羅の考え方
因子水準が増えれば組み合わせは
指数関数的に増えていく
不具合の多くは単機能、2機能の
組み合わせで見つかっている
因子が増えるほど効率が落ちる
2因子以上の組み合わせ方も可能
個人ワーク
以下の環境でテストをしたい
OS: Windows, Mac
言語: 日本語、英語
ブラウザ: Chrome, Firefox
機能: A機能、B機能
2因子間網羅してください
回答例
OS 言語 ブラウザ 機能
Windows 日本語 Chrome A機能
Windows 英語 Firefox B機能
Mac 日本語 Firefox B機能
Mac 英語 Chrome B機能
Mac 英語 Firefox A機能
ワークをやってみて…
「たった 4因子なのに結構大変」
これ以上増えたらやってられない…
ツールを使いましょう
ツールの紹介
PICT
(Pairwise Independent Combinatorial Testing tool)
Microsoft社が開発したテストツール
PictMasterOA
PICT を Excel上で動かし、
結果を自動生成するツール
補足
ペアワイズでは出てくる水準が
一律ではないことがある
ツールを使えば、水準の
重み付けも可能
直交表
直交表とは
ペアワイズは水準の出現回数が
均一ではない場合がある
各水準は同じ数だけテストしたい
→ 直交表
直交表とは
水準の出現回数が同一になる
ように組み合わせる技法
ペアワイズより組み合わせ数が
多くなることがある
「実験計画法」でも使われている
直交表とは
直交表という表を使います
直交表のつくりかた:参考
参考文献:
JaSST’05 in Osaka
「直交表を活用した
ソフトウェアテストの効率化
-HAYST法の活用-」
秋山 浩一
http://jasst.jp/archives/jasst05w/pdf/S4-1.pdf
直交表サンプル L8(27)
No. 因子A 因子B 因子C 因子D 因子E 因子F 因子G
1 1 1 1 1 1 1 1
2 1 1 1 2 2 2 2
3 1 2 2 1 1 2 2
4 1 2 2 2 2 1 1
5 2 1 2 1 2 1 2
6 2 1 2 2 1 2 1
7 2 2 1 1 2 2 1
8 2 2 1 2 1 1 2
どの因子を見ても
水準 1 と 2 の
出現回数は同じ
直交表の種類
直交表は因子・水準の数により
大きさが変わる
L8(27) .
2水準 因子の数が 7
大きさが 8
直交表の種類
L4 から 2N の大きさの直交表が
存在する
L64(263)
直交表の種類
2水準系だけでなく3水準系の
直交表も存在する
L9 など
さらに L12,L18,L36 と言った
混合系も存在する
直交表の選び方
テストの目的
コスト・費用対効果
因子・水準から
洗い出されていること
例題
次の組み合わせを考える
OS : Windows, Mac
言語 : 日本語、英語
ブラウザ : Chrome, Firefox
Proxy : あり/なし
アプリver : α, β
対象機能 : 機能1、機能2
直交表
因子が 6、各水準は 2
L4(23), L8(27), L16(215),...
再登場 L8(27)
No. 因子A 因子B 因子C 因子D 因子E 因子F 因子G
1 1 1 1 1 1 1 1
2 1 1 1 2 2 2 2
3 1 2 2 1 1 2 2
4 1 2 2 2 2 1 1
5 2 1 2 1 2 1 2
6 2 1 2 2 1 2 1
7 2 2 1 1 2 2 1
8 2 2 1 2 1 1 2
再登場 L8(27)
因子A → OS
水準1 → Windows
水準2 → Mac
:
:
L8(27) 完成!
No. OS 言語 ブラウザ Proxy Ver. 機能 因子G
1 Win 日 Chrome あり α 1 1
2 Win 日 Chrome なし β 2 2
3 Win 英 Firefox あり α 2 2
4 Win 英 Firefox なし β 1 1
5 Mac 日 Firefox あり β 1 2
6 Mac 日 Firefox なし α 2 1
7 Mac 英 Chrome あり β 2 1
8 Mac 英 Chrome なし α 1 2
個人ワーク
架空ショッピングサイト
荷物配送システムのチェック
水準が足りないときは?
多めにテストしたい水準で埋める
そもそものテスト目的は?
因子・水準の選び方は適切?
L16(45) 完成!
No. 支払い方法 配送オプション 発送オプション 梱包 -
1 コンビニ・ATM なし なし なし
2 コンビニ・ATM お急ぎ便 まとめて発送 FFP
3 コンビニ・ATM 当日お急ぎ便 順次発送 ギフト
4 コンビニ・ATM お届け日時指定 まとめて発送 FFP
5 代金引換 なし まとめて発送 ギフト
6 代金引換 お急ぎ便 なし FFP
7 代金引換 当日お急ぎ便 まとめて発送 なし
8 代金引換 お届け日時指定 順次発送 FFP
9 クレジット なし 順次発送 ギフト
10 クレジット お急ぎ便 まとめて発送 ギフト
: : : : :
15 ギフト券 当日お急ぎ便 まとめて発送 なし
16 ギフト券 お届け日時指定 なし ギフト
おわりに
まとめ
デシジョンテーブル
条件が複雑・論理関係があるとき
ペアワイズ
組み合わせの数が爆発したとき
直交表
水準の偏りをなくしたいとき
参考
自動改札機の運賃計算プログラムはいかに
デバッグされているのか?
10の40乗という運賃パターンのテスト方法を
開発者が解説
 http://www.publickey1.jp/blog/12/_1040_1.html
 IoT は組み合わせの概念
まとめ
技法は決して銀の弾丸ではない
どの技法をどう使うか適切に判断
できることが大事
“考え方”を知っておくだけでも
WACATE2016 冬 組み合わせテスト

WACATE2016 冬 組み合わせテスト