はじめに

複雑な条件・動作がある機能のテストをする際に有効な手法、決定表を使用したテスト(ディシジョンテーブルテスト)について説明します。

決定表とは

すべての条件と、その条件に対する動作または出力を明記した表です。テストケースや要件の整理で使用します。

決定表の見方・書き方

決定表の見方

上半分が条件部、下半分が動作部です。1列を1ケースとして、条件・動作毎に記号を記入します。

決定表1

記号の意味

N:No
Y:Yes
X:execute(実行)
‐:条件部の場合は考慮しないこと、動作部の場合は動作しないことを表します。

例1 入場制限の場合

ある博物館で土日の混雑しやすい時間帯に入場制限を行うとします。

決定表は次の通りです。

決定表2

例2 ブログ記事投稿前の確認の場合

このブログの仕様を元に決定表を書く場合で考えます。
仕様は次の通りだとします。

  • 記事のテーマはITに関わるものとする
  • 記事に誤りやレイアウトの乱れがあれば修正し、なければ投稿する

決定表は次の通りです。

決定表3

決定表の用途

決定表の使用が適しているのは、例1、例2のように確認すべき項目が少ない場合、または一部の項目のみを確認する場合です。複数の条件・動作が絡み合うテストケースを表にまとめることで、全体が見やすくなり、漏れやダブりを発見しやすくなります。その一方で、確認すべき項目が多い場合の使用は困難です。例えば例1の博物館で、土日の入場制限に加え、曜日に関わらず実際に混雑している場合に入場制限を行うとします。

決定表4

条件を1つ加えるだけで、テストケース数が2倍になります。このように決定表の難点は、条件・動作が増える毎にテストケース数が膨れ上がり、作ることも使うことも難しくなる点です。

最後に

複雑な入出力のテストをする際には、決定表を活用することでテストの負担を減らすことができます。

参考資料

高橋寿一(2013)『知識ゼロから学ぶソフトウェアテスト【改訂版】』 翔泳社
橋本裕史(2017)『情報処理教科書 出るとこだけ!基本情報技術者[午後]第2版』国宝社