[[TEF/テスト技法]]
#contents(fromhere=true)
*技法名 デシジョンテーブル [#o4bea013]
*技法名(英語) decision table [#fda89b43]
*説明 [#m420b17d]
仕様ベースのブラックボックステスト技法の1つです。JISでは「決定表」として規定されています。
この技法は、仕様の論理関係、すなわち考えうる論理的条件の組合せを表にまとめ、その論理検証網羅性を高めるテスト方法です。つまり、入力する条件の組合せによって実行結果が変わる場合に有効な手法です。
デシジョンテーブルの構成は下表の通りです。
|条件項目|ルール(条件の組合せ)|
|結果項目|ルールに基づいたアクション|
*使用例 [#h22dc43e]
JRの料金体系は、
|おとな|12歳以上(12歳でも小学生は「こども」です)|
|こども|6歳〜12歳未満(6歳でも小学校入学前は「幼児」です)|
|幼児|1歳〜6歳未満|
|乳児|1歳未満|
となっています。&br;
こちらをデシジョンテーブルで表現すると、
|JR料金体系1|ルール1|ルール2|ルール3|ルール4|ルール5|ルール6|h
|13歳以上|BGCOLOR(#98FB98):T|F|F|F|F|F|
|12歳|-|BGCOLOR(#98FB98):T|F|F|F|F|
|7歳〜11歳|-|-|BGCOLOR(#98FB98):T|F|F|F|
|6歳|-|-|-|BGCOLOR(#98FB98):T|F|F|
|1歳〜5歳|-|-|-|-|BGCOLOR(#98FB98):T|F|
|0歳|-|-|-|-|-|BGCOLOR(#98FB98):T|
|おとな|BGCOLOR(#F8F8FF):×|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):|
|こども|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):×|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):|
|幼児|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):×|BGCOLOR(#F8F8FF):|
|乳児|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):×|
|次表へ|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):×|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):×|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):|
と、
|JR料金体系2|ルール7|ルール8|ルール9|ルール10|h
|12歳|BGCOLOR(#98FB98):T|BGCOLOR(#98FB98):T|F|F|
|6歳|-|-|BGCOLOR(#98FB98):T|BGCOLOR(#98FB98):T|
|小学生|F|BGCOLOR(#98FB98):T|BGCOLOR(#98FB98):T|F|
|おとな|BGCOLOR(#F8F8FF):×|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):|
|こども|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):×|BGCOLOR(#F8F8FF):×|BGCOLOR(#F8F8FF):|
|幼児|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):|BGCOLOR(#F8F8FF):×|
となります。&br;
このケースで、論理条件は、「13歳以上、12歳、7歳〜11歳、6歳、1歳〜5歳、0歳、小学生(か否か)」の7つあります。したがって、総組合せで考えると2の7乗の128通りあるのですが、上に示したとおり10つのルールで検証できるわけです。
※ 実際のテストの場合は、1つのルールに対して境界値を複数テストする場合があります。たとえば、単機能テストが不十分な場合は、ルール2で7歳と11歳の2つのテストケースを実施したほうが良いでしょう。
*補足 [#v73ab46d]
論理関係が複雑になった場合は、原因結果グラフや、CFD法を使用して、そこからデシジョンテーブルを作成します。
*参考文献 [#n28b511d]
書籍: ソフトウェアテストの基礎、デシジョン・テーブル入門、テーブル化による思考整理学
total &counter(total); today &counter(today); yesterday &counter(yesterday);
RIGHT:[[TEF/index]]に戻る