スキルアップ

デシジョンテーブルとは。書き方の手順からテストケースへの落とし込みまで解説

デシジョンテーブルとは。書き方の手順からテストケースへの落とし込みまで解説

この記事では、デシジョンテーブルの定義や構成、作成手順、テストケースへの落とし込み方について、具体例を交えて解説します。

デシジョンテーブル(決定表)とは

デシジョンテーブル(決定表)とは、複数の条件の組み合わせと、その組み合わせに応じて決まる動作との関係を整理する表です。

ソフトウェアテストでは、条件と期待される動作の対応関係を整理し、テストケースを作成するために利用します。

デシジョンテーブルの定義

デシジョンテーブルは、「どの条件の組み合わせで、どの動作を行うか」という規則を、表形式で整理したものです。

デシジョンテーブルでは、考慮すべき条件と動作を洗い出し、条件の組み合わせと、それに対応する動作を整理します。この条件の組み合わせと、それに対応する動作の組を「規則」と呼びます。

規則ごとに条件と動作の関係を表現することで、複雑な判定ロジックを体系的に整理できます。

デシジョンテーブルは日本産業規格のJIS X 0125:1986「決定表」において、形式が規定されています。ソフトウェア開発やソフトウェアテストでは、複雑な判定ロジックを整理する際に広く利用されています。

デシジョンテーブルを使いテストを行うメリット

デシジョンテーブルテストは、複雑な条件や制約のあるソフトウェア仕様を整理し、条件の組み合わせを網羅的に検討してテストする際に有効です。

条件と動作の関係を表形式で整理することで、どの条件の組み合わせを考慮する必要があるかを視覚的に把握しやすくなります。これにより、テストを実施する前に、条件の組み合わせの考慮漏れを防ぎやすくなります。

また、条件と動作の対応関係を整理する過程で、仕様の矛盾や曖昧な部分を発見できる場合があります。

デシジョンテーブルは表形式で内容を確認できるため、テスト担当者だけでなく、開発者や仕様作成者とのレビューや認識合わせにも利用できます。

デシジョンテーブルと他のテスト技法の違い

複数の条件の組み合わせを扱うテスト技法には、デシジョンテーブルテストのほかに、組み合わせテストがあります。

JSTQBのAdvanced Level テストアナリストのシラバス(※)では、組み合わせテストは「データに基づくテスト技法」、デシジョンテーブルテストは「ルールに基づくテスト技法」として分類されており、着目する対象が異なります。

デシジョンテーブルテストは、「どの条件の組み合わせで、どの動作を行うか」という規則を整理し、その規則に基づいてテストケースを作成する技法です。条件の組み合わせと期待される動作の関係が仕様として定められている場合に適しています。

一方、組み合わせテストは、複数の条件を組み合わせ、条件間の思わぬ相互作用によって発生する不具合を確認する技法です。どの条件の組み合わせが動作に影響するかが明確でない場合でも、条件の組み合わせを体系的にテストすることができます。

このため、判定規則を整理して確認したい場合にはデシジョンテーブルテスト、複数の条件の相互作用を広く確認したい場合には組み合わせテストが適しています。

また、複数の要素の組み合わせや対応関係を整理する方法として、縦軸と横軸に項目を配置したマトリクスを用いる場合があります。

マトリクスは、要素同士の組み合わせや対応関係を一覧で確認するのに適しています。一方、デシジョンテーブルは、条件の組み合わせと、それに応じて決まる動作との関係を規則として表現する点が特徴です。

手法

主な着眼点

向いているケース

デシジョンテーブルテスト

条件の組み合わせと、それに応じた動作・判定ルール

「この条件ならこの結果」という仕様上のルールを整理して確認したい場合

組み合わせテスト

複数条件の組み合わせによる相互作用

どの条件同士が不具合に影響するか不明な場合でも、組み合わせを広く確認したい場合

マトリクス

要素同士の組み合わせ・対応関係

複数の要素の関係を一覧で整理・確認したい場合

 ※出典:JSTQB「Advanced Level シラバス 日本語版 テストアナリスト(CTAL-TA)Version 4.0.J01」

デシジョンテーブルの構成

デシジョンテーブルは主に以下の4つの要素で構成されています。

① 条件記述部

考慮すべき条件を列挙して記述する部分です。図では①の部分が該当します。条件を記述するので条件記述部と呼ばれます。

② 動作記述部

考慮すべき動作(出力結果)を列挙して記述する部分です。図では②の部分が該当します。動作を記述するので動作記述部と呼ばれます。

③ 条件指定部

①の条件記述を満たすかどうか、つまり真か偽かをYかNで表します。図では③の部分が該当します。YはYesの頭文字であり、他にもT(True)と表現する場合もあります。NはNoの頭文字であり、他にもF(False)と表現する場合もあります。各条件記述のY/Nの組み合わせを指定するので、条件指定部と呼ばれます。

④ 動作指定部

図の④の部分が該当します。各列(これを"規則"と呼びます)で指定されている条件指定のY/Nの組み合わせによって決まる出力結果(動作)を示します。その条件の組み合わせによって動作する動作記述に「X」を指定します。バツではなくeXecution(実行)を意味します。「-」は逆に動作しないことを示します。動作を指定するので、動作指定部と呼びます。

例えば、規則1は、「タイムサービス時間内であり、割引対象商品であれば、会員かどうかにかかわらず、10%割引される」と読めます。このデシジョンテーブルで定義された規則ごとにテストケースを作ることで、条件の組み合わせを網羅できます。

デシジョンテーブルテストとは

デシジョンテーブルテストとは、複雑な判定ロジックの整理に有用な決定表(デシジョンテーブル)の考え方に基づき、入力条件の組み合わせと対応する出力結果を整理することでテストケースを作成する技法です。

 テスト設計全般についてはこちらのページもご覧ください。

デシジョンテーブルテストの利用例

ソフトウェアはさまざまな条件判定を行って動作を制御しているため、どのようなシステムであっても条件判定を行っている機能や処理であれば本技法を適用することが可能です。次に示すのはあくまで簡単な例ですが、このように条件の組み合わせによって出力結果(ソフトウェアの動作)が決定するものに、デシジョンテーブルテストを利用できます。

例)
オンラインショップのシステムの割引料率の判定(会員種別による割引、タイムサービスによる割引などの条件の組み合わせによって割引料率という結果(動作)が決定される)

【例題】デシジョンテーブルの書き方と作成手順

ここからは、以下の仕様を例として、デシジョンテーブルの作り方について説明します。

  • 毎日18:00~20:00のタイムサービスの時間内であれば、以下の割引を受けられる
  • 割引対象商品を購入した場合には、10%の割引
  • 会員の場合は、会員特典として、割引対象商品以外の商品についても5%の割引

ツールとして、通常は表計算ソフトなどが用いられますが、今回はさまざまなテスト技法を手軽に利用してテスト設計に役立てられるGIHOZというツールを使って説明します。GIHOZを使うことで、以下のステップに従って効率的にデシジョンテーブルを作れます。

GIHOZの詳細はこちら

ステップ1 条件を特定し記述する

仕様の中から条件に該当するものを特定して、条件記述部に記述します。

ステップ1 条件を特定し記述する

ステップ2 動作を特定し記述する

仕様の中から動作に該当するものを特定して、動作記述部に記述します。

ステップ2 動作を特定し記述する

ステップ3 条件の組み合わせを指定する

条件の組み合わせを指定します。識別した条件記述の内容は、それぞれの条件が真か偽であるかの2値(Y/N)を取るので、2×2×2の8つが組み合わせパターンの全数になります。GIHOZでは自動で全ての組み合わせパターンを生成できます。

ステップ3 条件の組み合わせを指定する

ステップ4 各規則の動作を指定する

条件の組み合わせに応じた動作を指定します。動作指定部で、該当する動作に「X」を入力します。

ステップ5 テーブルを整理する

デシジョンテーブルは、テーブルを整理する場合があります。特定の条件に関わらず同じ動作になる規則が複数ある場合や、矛盾する条件の組み合わせが一つの規則の中に含まれる場合などに、テーブルを整理できます。

テーブルを整理する方法の詳細はこちらのページもご覧ください。
GIHOZの使い方:デシジョンテーブルの整理(圧縮)

今回の例では、特定の条件に関わらず同じ動作になる規則が複数ありますので、それらを整理します。規則1と2は「タイムサービス時間内」と「割引商品」がYであれば、「会員」がYかNかに関わらず、「10%割引」という動作が決定しますので、これらの規則を一つの規則にまとめられます。

また、規則5から8は、「タイムサービス時間内」がNであれば、「割引対象商品」と「会員」がYかNかに関わらず「割引なし」という動作が決定しますので、これらの規則も一つにまとめられます。テーブルを整理する場合、動作に影響を与えない条件には「-」を指定します。

このデシジョンテーブルをテストケースにするには、デシジョンテーブルの規則ごとにテストケースに落とし込みます。

例えば規則1からテストケースを作成すると、「19:00(タイムサービス時間内)に、商品A(割引対象商品で価格は500円)を購入して支払金額が450円(商品価格の10%割引)になることを確認する」といった内容のテストケースになります。

条件数が多いデシジョンテーブルの整理(圧縮)と注意点

デシジョンテーブルを作成する際、本来組み合わせる必要がない条件まで記述すると、条件の組み合わせが多くなりテーブルの作成やレビューに時間がかかります。テスト対象の仕様から、考慮が必要な条件を適切に識別して、必要十分な条件をデシジョンテーブルに記述する必要があります。

また、上記の「ステップ5 テーブルを整理(圧縮)する」を実施する場合、システム内部での条件判定のフローが明確になっている必要があります。

フローが不明確なままテーブルを整理するとテストの漏れにつながる可能性がありますので、ご注意ください。

デシジョンテーブル作成を効率化するツール

デシジョンテーブルは、Excelなどの表計算ソフトを使って作成できます。条件数が少ない場合には手作業でも作成できますが、条件が増えると組み合わせの数も増えるため、表の作成や修正に手間がかかります。

Excelのマクロなどを利用して条件の組み合わせを自動生成する方法もありますが、デシジョンテーブルの作成に対応したツールを利用すると、より効率的に作成できます。

ベリサーブが提供するクラウド型テスト技法ツール「GIHOZ」では、条件と動作を入力することで、条件の組み合わせを自動生成し、デシジョンテーブルを作成できます。

デシジョンテーブルを繰り返し作成する場合や、条件数が多い場合には、このようなツールを利用することで作成作業を効率化できます。

複雑な仕様をデシジョンテーブルで整理して品質向上につなげよう

入力条件の組み合わせと対応する出力結果を整理できるデシジョンテーブルテストについてご紹介しました。

デシジョンテーブルテストは、入力条件の組み合わせに応じて出力結果が変わるような、判定ロジックの部分をテストする場合に利用すると効果的です。

GIHOZを使うと、デシジョンテーブルの記法に特化したUIで作業でき、条件の組み合わせの自動生成も可能なため、デシジョンテーブルを楽に作成できます。

漏れのないテストケースを効率よく作成するために、デシジョンテーブルテストやGIHOZをぜひご活用ください。

SNSシェア

この記事は面白かったですか?

今後の改善の参考にさせていただきます!

Search Articles By The Cast出演者/執筆者から記事を探す

Search Articless By The Categoryカテゴリから記事を探す

Ranking

ランキング

もっと見る