ソフトウェアの動作をデシジョンテーブルで視覚化する

投稿者: | 2017年11月3日

ソフトウェアテストを実施するにあたって、ソフトウェアの動作を決定する条件がシンプルであればその動作のテストを容易に確認することができるが、複雑な条件である場合は、条件の組合せ漏れが無いかを確認するためにソフトウェアの仕様を把握し理解する必要がある。特に、仕様を整理して条件の組合せ漏れが無いようにテストパターンを作成することは決して容易ではない。漏れなくテストを実施するためにデシジョンテーブルテストが有効である。

デシジョンテーブルテストのメリット

デシジョンテーブルとは、入力条件に対してソフトウェアがどのように動作するのかを表す。ソフトウェアテストにデシジョンテーブルを用いることで、どのようなメリットがあるかを紹介する。

1.条件の組合せに漏れが無いか確認できる

デシジョンテーブルを作成することにより、複数機能であるものや同時動作など複雑な条件を整理することができるので、複数条件の組合せを漏れなく洗い出せる。

そのため、仕様の理解誤りなどによるテスト漏れのための追加テスト・再テスト実施を防ぐことができ、コスト及びスケジュールの遅延を防ぐことにつながるだろう。

2.不良発生時に原因箇所を特定しやすい

条件をすべて列記することで、不良発生時に不良が発生した条件の組合せと同じパターンをデシジョンテーブルから探し出せるため不良条件を特定し易い。

一般的なデシジョンテーブルの例は以下の通り。

表1.デシジョンテーブル表

デシジョンテーブルの作成手順

1.条件と動作をまとめる

ログイン画面での画面遷移の条件を例として実際にデシジョンテーブルを作成してみる。

ログイン画面でのログイン画面遷移の条件

・正しいIDを入力する

・正しいパスワードを入力する

・誤ったIDを入力する

・誤ったパスワードを入力する

・IDが空欄

・パスワードが空欄

・ログインボタン押下

 

まずは、上記の条件と動作を以下の表にまとめる。

表2.条件と動作の一覧

1.条件と動作をデシジョンテーブルにまとめる

 

次に表2でまとめた条件と動作をデシジョンテーブルの表に記載する。

表3.デシジョンテーブル(条件と動作記入)

3.ルールのマスを埋める

最後に条件と動作に対してルール列にYes(Y)/No(N)/-を記入すれば完成。

表4.デシジョンテーブル(ルール記入)

Y:該当する N:該当しない -:適用されない

デシジョンテーブルが完成したら、実際にデシジョンテーブルに沿ってソフトウェアが動作するか確認する。すべてのルールを確認して、動作結果が期待値通りとなればテストは完了となる。上記の通り、デシジョンテーブル上のルールをテストケースとして用いることができるため、デシジョンテーブルを作成することで、それに沿ってテストを実施すればよい。

テスト対象の仕様を整理し、入出力の組み合わせパターンをテストケースとするためブラックボックスレベルのテストを網羅的に実施できるだろう。

まとめ

デシジョンテーブルはデシジョンテーブルテストのみならず、不良に対する原因分析や静的テストにも利用できる。なぜなら、不良が発生した条件の組合せと同じルールをデシジョンテーブルから探してその差異を比較することで不良の原因の条件を特定できるためである。

デシジョンテーブルを使用することで、条件の組合せ漏れが無くテストパターンを作成することができるが、コストやスケジュールのバランスを考慮してテストケースを作成する必要があるだろう。

 

ブラックボックステスト・ホワイトボックステストのテスト技法

https://blogs.techvan.co.jp/quality/testing_technique

免責事項

情報の掲載には注意を払っておりますが、掲載された情報の内容の正確性については一切保証しません。また、当サイトに掲載された情報を利用・使用(閲覧、投稿、外部での再利用など全てを含む)するなどの行為に関連して生じたあらゆる損害等につきましても、理由の如何に関わらず自己責任で行う必要があります。

 

参考文献

gihyo.jp

第5回 仕様整理に「デシジョンテーブル」を使ってみよう

http://gihyo.jp/dev/serial/01/test_up/0005

ソフトウェアテストの教科書

品質を決定づけるテスト工程の基本と実践