デシジョンテーブルとは
デシジョンテーブルとは、ソフトウェアのテスト実施時、
条件が複雑に絡み合った仕様の場合、このデシジョンテーブルを使い、仕様を整理し、
このテーブルを使い、テストを実施することをデシジョンテーブルテストと言います。
デシジョンテーブルのフォーマットを理解する
デシジョンテーブルにはフォーマットが決まってます。これを理解すると、だいたい使い方はわかります。
具体的には
* 条件書くとこ
* 条件指定するとこ (Yes OR Noの頭文字とってY of N書いたり、Ture OR False の頭文字とってT or F書いたり、要は指定できればどっちでもいいです)
* 動作書くとこ
* 動作指定するとこ(この動作をする!とわかるように書くとこ、Y でも Xでもなんでもいいです)
恋愛仕様についてデシジョンテーブルで書いてみる
デシジョンテーブルはソフトウェアのテストで使うものですが、
現実の世界に置き換えてみましょう。

あなたが友達に「彼氏(or 彼女)候補を紹介して欲しい」と頼まれたとします。
その友達が求める彼氏(or 彼女)の条件はこうです。
恋人に求める条件
* とりあえず顔面偏差値 50以上は欲しい
* 結婚するなら年収800万以上あってほしい、付き合うだけならそれ以下でもいいけど
* タバコは吸う人は嫌
* 条件に当てはまらない人はガン無視
さて、こんな、めんどくさい友達の恋愛仕様をデシジョンテーブルにまとめることにします。
まず
* 条件書くとこ
* 条件指定するとこ (今回は、条件を満たす = Y , 条件を満たさない = Nで表すことにします)
を作ります。
考えられる条件の組み合わせを全て記載します。

次に
* 動作を書くとこ
を書きます。


二つの表を合わせると、、、以下のような感じ

そして
* 動作指定するとこ (今回は、この動作をする = ● , この動作をしない = X で表現することにします)
を書きます。
書き方は
【条件書くとこ】と【条件指定するとこ】を見ながら、
この条件の組み合わせの場合は、この動作をするよね!ってのを、● OR Xで表現し、記載していきます。
そうするとこんな感じでデシジョンテーブルができあがります。

つまり、
例えば、No.1の縦列を見ると
「顔面偏差値 50以上」&「年収 800万以上」&「タバコを吸わない」という条件を全て満たすお相手候補を投入した場合は、
「結婚する」「付き合う」という結果はありえるが「ガン無視」という結果はない。
No.2を例にすると、
「顔面偏差値 50以上」という条件だけ満たしているお相手候補を投入した場合は、
「付き合う」という結果はありえるが、「結婚する」「ガン無視」という結果はありえない。
ということになります。
そして、このようなデシジョンテーブルを基にテストすることを
デシジョンテーブルテストといいます。
ま、実際の恋愛がこんな単純じゃないことは承知の上ですが、、、