コラム

  • 2021.09.06
  • ソフトウェアテスト
  • #テスト実行
  • #テスト技法
  • #テスト計画
  • #テスト設計
  • #基礎知識

抜け漏れのないテストを行おう!デシジョンテーブルの書き方における5つのポイントを紹介

複雑な条件や複数の条件が組み合わされたソフトウェアが仕様どおりに動作するかをテストする場合、仕様書の記述内容や、条件、動作内容の把握が必要となります。このような、入力する複雑な条件や複数の条件の組み合わせによって求められる実行結果が変わる場合、デシジョンテーブルを作成し、整理していくことが有効であるといえるでしょう。
今回は、デシジョンテーブルを用いたテストのメリット・デメリットのほか、その構成と作成ポイントについて説明します。

デシジョンテーブルとは

デシジョンテーブル(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)
・複雑な条件や複数の条件の組み合わせが多い場合、決定表を分けること

さらに気をつけるべき点として、条件記述部はすべて書き出し、記載する順番を合わせて作成することがあげられます。ただし、複雑な組み合わせや複数の組み合わせが多い場合は、組み合わせを分けて作成した方が整理しやすくなるといえるでしょう。

ソフトウェアテスト入門動画

まとめ

デシジョンテーブルは、複雑な条件や複数の条件の組み合わせを整理する上で役立ち、その構成(フォーマット)に従い、入力(条件)と出力(動作)の組み合わせを規則ごとに洗い出した表です。デシジョンテーブルを使用してテストケースとして作成することで網羅性を可視化し、デシジョンテーブルテストを行うことで抜け漏れのないテストが可能となります。

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

資料ダウンロード/動画視聴

テスト観点作成テンプレート

ソフトウェアテスト入門動画

テスト計画入門動画

SHIFTサービス資料

関連サービス