38. デシジョンテーブル
? デシジョンテーブルの書式
2017/6/17 WACATE 2017 Summer 38
#1 #2 #3 #4 #5 #6 #7 #8
条
件
条件1 Y Y Y Y N N N N
条件2 Y Y N N Y Y N N
条件3 Y N Y N Y N Y N
動
作
動作1 X X X X
動作2 X X X X
動作3 X X X X X
Y:条件が満たされなければならない
N:条件が満たされてはならない
組み合わせる条件を列挙
条件に応じて発生する動作を列挙
条件1が真
かつ 条件2が偽
かつ 条件3が真
の時
動作が動作3になる
43. デシジョンテーブル
2017/6/17 WACATE 2017 Summer 43
#1 #2 #3 #4 #5 #6 #7 #8 #9
条
件
年齢
0~3歳 Y
4~11歳 Y
12歳
13~17歳
18歳
19歳以上
在学状況
小学生 Y
中学生
高校生
その他 Y
動
作
購入すべき
券種
小人 X
中人
大人
不要 X
まず「0~3歳」は、
在学状況「その他」で、
動作は「不要」でしょ
次、「4~11歳」は、
在学状況「小学生」で、
動作は「小人」でしょ
ちょっと待って、
そうじゃないんだ!
44. #1 #2 #3 #4 #5 #6 #7 #8 #9
条
件
年齢
0~3歳 Y
4~11歳 Y
12歳
13~17歳
18歳
19歳以上
在学状況
小学生 Y
中学生
高校生
その他 Y
動
作
購入すべき
券種
小人 X
中人
大人
不要 X
デシジョンテーブル
2017/6/17 WACATE 2017 Summer 44
思いついた組み合わせで
列を足していく
「足し算」の考え方だと、
思いつかなかった組み合わせ
は漏れる
45. デシジョンテーブル
2017/6/17 WACATE 2017 Summer 45
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
条
件
年
齢
0~3歳 Y Y Y Y
4~11歳 Y Y Y Y
12歳 Y Y Y Y
13~17歳 Y Y Y Y
18歳 Y Y Y Y
19歳以上 Y Y Y Y
在
学
状
況
小学生 Y Y Y Y Y Y
中学生 Y Y Y Y Y Y
高校生 Y Y Y Y Y Y
その他 Y Y Y Y Y Y
動
作
購
入
券
種
小人
中人
大人
不要
最初に全ての条件の組み合わせを用意して、
テストできないものを削る「引き算」の考え方
の方が考慮もれを阻止できる
46. デシジョンテーブル
2017/6/17 WACATE 2017 Summer 46
4 5 8 9 10 14 15 16 19 20 23 24
条
件
年
齢
0~3歳 Y
4~11歳 Y Y
12歳 Y Y
13~17歳 Y Y Y
18歳 Y Y
19歳以上 Y Y
在
学
状
況
小学生 Y Y
中学生 Y Y
高校生 Y Y Y
その他 Y Y Y Y Y
動
作
購
入
券
種
小人 X X X
中人 X X X X X
大人 X X X
不要 X
ところで「在学状況」は12歳、18歳以外の
場合は購入券種の判定に無関係です
47. デシジョンテーブル
2017/6/17 WACATE 2017 Summer 47
4 5 9 10 14 19 20 23
条
件
年
齢
0~3歳 Y
4~11歳 Y
12歳 Y Y
13~17歳 Y
18歳 Y Y
19歳以上 Y
在
学
状
況
小学生 ー ー Y ー ー
中学生 ー ー Y ー ー
高校生 ー ー ー Y ー
その他 ー ー ー Y ー
動
作
購
入
券
種
小人 X X
中人 X X X
大人 X X
不要 X
無関係「-」を明示して
1列にまとめること
ができます
48. デシジョンテーブル
? デシジョンテーブルの使い方
① 同値分割で条件を洗い出す
② 最初に全ての組み合わせを用意する
③ テストできない組み合わせを削る
④ 動作の決定に無関係な条件をまとめる
? 「削る」「まとめる」は慎重に!
? 本当はテストできるのでは?無関係と言える根拠は?
? ケースを減らしたい気持ちが先行すると失敗するかも
2017/6/17 WACATE 2017 Summer 48
78. ドメイン分析
? ドメイン分析テストマトリクスで組み合わせる
2017/6/17 WACATE 2017 Summer 78
条件 #1 #2 #3 #4 #5 #6 #7 #8
0≦x On 0
Off -1
IN
x≦5 On 5
Off 6
IN
0≦y On 0
Off -1
IN
y<8 On 8
Off 7
IN
期待結果
境界値分析でみつけた4つの条件を並べる
条件毎にon/off、INの3行を配置
1列(ケース)に1つの境界値(on/off)を
含むように値を設定する
【条件4つ × on/off2通り =8列必要】
当日資料には
掲載なし
79. ドメイン分析
? ドメイン分析テストマトリクスで組み合わせる
2017/6/17 WACATE 2017 Summer 79
条件 #1 #2 #3 #4 #5 #6 #7 #8
0≦x On 0
Off -1
IN - - 1 2 3 4
x≦5 On 5
Off 6
IN - - 1 2 3 4
0≦y On 0
Off -1
IN 6 5 4 3 - -
y<8 On 8
Off 7
IN 6 5 4 3 - -
期待結果 True False True False True False False True
xの境界値をテストする時
yの値はIN値を設定
yの境界値をテストする時
xの値はIN値を設定
当日資料には
掲載なし
81. ドメイン分析
? 2枚≦大人
? 1枚≦大人以外
? 大人+大人以外≦8枚
2017/6/17 WACATE 2017 Summer 81
大人
9
9
8
8210
1 IN
大
人
以
外
条件 値
大人 On 2
Off 1
IN 2~8
大人以外 On 1
Off 0
IN 1~8
大人+以外 On 8
Off 9
IN 1~8
当日資料には
掲載なし
82. ドメイン分析
? 3つの境界線のon/offで6ケース
2017/6/17 WACATE 2017 Summer 82
条件 値 #1 #2 #3 #4 #5 #6
大人 On 2 2
Off 1 1
IN 2~8 6 4 3 6
大人以外 On 1 1
Off 0 0
IN 1~8 3 5 5 3
大人+以
外
On 8 8
Off 9 9
IN 1~8 5 6 7 4
期待結果 無料 有料 無料 有料 無料 エラー
当日資料には
掲載なし
IEEE Standard Classification for Software Anomalies
Defect
An imperfection or deficiency in a work product where that work product does not meet its requirements or specifications and needs to be either repaired or replaced.
作業成果物がその要件または仕様を満たさず、修理または交換する必要がある作業成果物の不完全または不足。
Fault
A manifestation of an error in software.
ソフトウェアにおけるエラーの現れ。
Failure
Termination of the ability of a product to perform a required function or its inability to perform within previously specified limits.
製品が要求された機能を果たす能力、または以前に特定された限度内で実行する能力の欠如。
An event in which a system or system component does not perform a required function within specified limits.
システムまたはシステムコンポーネントが指定された制限内で必要な機能を実行しないイベント。
Problem
Difficulty or uncertainty experienced by one or more persons, resulting from an unsatisfactory encounter with a system in use.
使用中のシステムとの不満足な遭遇の結果、1人または複数の人が経験する困難または不確実性。
A negative situation to overcome.
克服すべき否定的な状況。