
Introduction
複雑な条件や複数の条件が組み合わされたソフトウェアが仕様どおりに動作するかをテストする場合、仕様書の記述内容や、条件、動作内容の把握が必要となります。このような、入力する複雑な条件や複数の条件の組み合わせによって求められる実行結果が変わる場合、デシジョンテーブルを作成し、整理していくことが有効であるといえるでしょう。
今回は、デシジョンテーブルを用いたテストのメリット・デメリットのほか、その構成と作成ポイントについて説明します。
目次
デシジョンテーブル(決定表)とは
デシジョンテーブル(decision table)は、想定されるすべての条件と、それに対して実行すべき動作を整理した表のことです。仕様ベースのブラックボックス技法のひとつとして、仕様の論理関係、論理的条件の組み合わせを表にまとめ、論理検証の網羅性を高める方法としてよく利用されます。日本産業企画のJIS X 0125:1986において、「決定表」として規定されています。
デシジョンテーブルテスト
デシジョンテーブルを使用して論理的な条件をカバーし、入出力の組み合わせを規則ごとに実行するテストケースを設計するテストを「デシジョンテーブルテスト」といいます。入力する条件の組み合わせによって実行結果が変わる場合に有効であり、起こりえない条件の組み合わせの把握や、それによるテストケースの効率化にも役立ちます。また、実際にテストを行った規則を、デシジョンテーブル内のすべての規則で除算してカバレッジを求めることもできます。
デシジョンテーブル(決定表)をつくるメリットとデメリット
入力する条件の組み合わせによって実行結果が変わるため、デシジョンテーブルを用いることで以下のようなメリット・デメリットがあります。
メリット
・複雑な条件や複数の条件の組み合わせを整理することができる
・網羅性を可視化し抜け漏れがないか確認できる
・矛盾している条件の組み合わせを特定することができる
・可視化されているので他者にもわかりやすい
・すべてのテストレベルに適用できる
デメリット
・複雑な条件や複数の条件の組み合わせが増えるとテストケースが増加する
・複雑な条件や複数の条件の組み合わせが多いと作成に時間がかかる
その他の活用方法
デシジョンテーブルを活用することで、以下のようなことも把握しやすくなります。
・不具合の原因を組み合わせから分析できる
・仕様の抜け漏れや組み合わせの曖昧さを可視化できる
デシジョンテーブル(決定表)の構成
デシジョンテーブルにはフォーマットがあり、以下に分けられます。

■ 図1 デシジョンテーブル
表見出しには「決定表の内容や用途」を記載し、初期化部には「順番に実行すべき動作」を記載します。次に、条件記述部には「考慮すべき条件やデータ」を記載し、動作記述部に「考慮すべき動作や結果」を記載します。そして、条件指定には「判定結果の組み合わせ」を記載し、動作指定には「組み合わせの動作や結果」を記載します。最後に条件指定と動作指定を組み合わせたものが規則となります。補足として補完規則には「実行すべき動作の補助」を記載しますが、初期化部と補完規則は任意であり記載しなくてもよいです。
用語解説
次に「日本産業標準調査会(JISC)日本産業企画 JIS X0125 1986」を参考にそれぞれの用語について解説します。
表見出し(table heading)
決定表のパターンの明確な内容や説明、用途などを記載します。
初期化部(initialization section)
考えられる条件を全て記載するために実行すべき条件を洗い出し記載します。初期化部は表見出しの次の行に記載しますが、記載は任意です。
条件(condition)
条件を列挙する条件記述部と条件の組み合わせを記載する条件指定部分をまとめて条件と定義します。
動作(action)
条件の結果を記載する動作記述分と条件の組み合わせ結果がどのような判断となるかを記載する動作指定をまとめて動作と定義します。
条件記述部(condition stub)
問題の記述において考慮すべきすべての条件を列挙します。
動作記述部(action stub)
問題の記述において実行すべきすべての動作を列挙します。
条件指定(condition entry)
ある条件と特定の規則との関連づけのことを示します。条件を満たす場合は「Y(YES)」、満たさない場合は「N(NO)」などを記載します。(指定形式:Y、N、語句、値又はコード、-、#など)
動作指定(action entry)
ある動作と特定の規則との関連づけのことを示します。動作する場合は「X(execute)」、しない場合は「-」などを記載します。(指定形式:X、語句、値又はコード、-など)
規則(rule)
条件指定部および動作指定部を通る一つの列のことで、列ひとつひとつをテストケースとして記載していきます。
補完規則(ELSE-rule)
規則において指定形式が表示されていない条件に対する補足を記載します。
デシジョンテーブル(決定表)作成における5つのポイント
- デシジョンテーブル(決定表)を作成する際のポイントをわかりやすくまとめると、以下の5つがポイントといえます。
- ・条件記述部にはすべての条件を書き出すこと
- ・動作記述部にはすべての動作を書き出すこと
- ・条件記述部と動作記述部の矛盾している条件は削除すること
- ・条件指定と動作指定に記載する順番は合わせること(1→10、1%→10%、\1→\10 etc)
- ・複雑な条件や複数の条件の組み合わせが多い場合、決定表を分けること
さらに気をつけるべき点として、条件記述部はすべて書き出し、記載する順番を合わせて作成することがあげられます。ただし、複雑な組み合わせや複数の組み合わせが多い場合は、組み合わせを分けて作成した方が整理しやすくなるといえるでしょう。
ソフトウェアテスト入門講座

※ご登録いただくとその場で無料動画の視聴が可能です。
株式会社SHIFTが運営するソフトウェアテスト・品質保証の人材育成を手掛けるヒンシツ大学のお試し講座「ソフトウェアテスト入門」をご視聴いただけます。ソフトウェアテストの目的、役割といった基礎知識を学びたい方におすすめの入門動画です。
※ご登録いただくとその場で無料動画の視聴が可能です。
株式会社SHIFTが運営するソフトウェアテスト・品質保証の人材育成を手掛けるヒンシツ大学のお試し講座「ソフトウェアテスト入門」をご視聴いただけます。ソフトウェアテストの目的、役割といった基礎知識を学びたい方におすすめの入門動画です。
関連サービスについて
まとめ
デシジョンテーブルは、複雑な条件や複数の条件の組み合わせを整理する上で役立ち、その構成(フォーマット)に従い、入力(条件)と出力(動作)の組み合わせを規則ごとに洗い出した表です。デシジョンテーブルを使用してテストケースとして作成することで網羅性を可視化し、デシジョンテーブルテストを行うことで抜け漏れのないテストが可能となります。
SEC BOOKS 高信頼化ソフトウェアのための開発手法ガイドブック
https://www.ipa.go.jp/files/000004550.pdf
JIS X 0125:1986 決定表
https://webdesk.jsa.or.jp/preview/pre_jis_x_00125_000_000_1986_j_pr10_i4.pdf
ISTQBテスト技術者資格制度
Foundation Level シラバス 日本語版 Version 2018V3.1.J03
http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018V31.J03.pdf