ソフトウェアの動作をデシジョンテーブルで視覚化する
ソフトウェアテストを実施するにあたって、ソフトウェアの動作を決定する条件がシンプルであればその動作のテストを容易に確認することができるが、複雑な条件である場合は、条件の組合せ漏れが無いかを確認するためにソフトウェアの仕様を把握し理解する必要がある。特に、仕様を整理して条件の組合せ漏れが無いようにテストパターンを作成することは決して容易ではない。漏れなくテストを実施するためにデシジョンテーブルテストが有効である。
デシジョンテーブルテストのメリット
デシジョンテーブルとは、入力条件に対してソフトウェアがどのように動作するのかを表す。ソフトウェアテストにデシジョンテーブルを用いることで、どのようなメリットがあるかを紹介する。
1.条件の組合せに漏れが無いか確認できる
デシジョンテーブルを作成することにより、複数機能であるものや同時動作など複雑な条件を整理することができるので、複数条件の組合せを漏れなく洗い出せる。
そのため、仕様の理解誤りなどによるテスト漏れのための追加テスト・再テスト実施を防ぐことができ、コスト及びスケジュールの遅延を防ぐことにつながるだろう。
2.不良発生時に原因箇所を特定しやすい
条件をすべて列記することで、不良発生時に不良が発生した条件の組合せと同じパターンをデシジョンテーブルから探し出せるため不良条件を特定し易い。
一般的なデシジョンテーブルの例は以下の通り。
表1.デシジョンテーブル表
デシジョンテーブルの作成手順
1.条件と動作をまとめる
ログイン画面での画面遷移の条件を例として実際にデシジョンテーブルを作成してみる。
ログイン画面でのログイン画面遷移の条件
・正しいIDを入力する
・正しいパスワードを入力する
・誤ったIDを入力する
・誤ったパスワードを入力する
・IDが空欄
・パスワードが空欄
・ログインボタン押下
まずは、上記の条件と動作を以下の表にまとめる。
表2.条件と動作の一覧
1.条件と動作をデシジョンテーブルにまとめる
次に表2でまとめた条件と動作をデシジョンテーブルの表に記載する。
表3.デシジョンテーブル(条件と動作記入)
3.ルールのマスを埋める
最後に条件と動作に対してルール列にYes(Y)/No(N)/-を記入すれば完成。
表4.デシジョンテーブル(ルール記入)
Y:該当する N:該当しない -:適用されない
デシジョンテーブルが完成したら、実際にデシジョンテーブルに沿ってソフトウェアが動作するか確認する。すべてのルールを確認して、動作結果が期待値通りとなればテストは完了となる。上記の通り、デシジョンテーブル上のルールをテストケースとして用いることができるため、デシジョンテーブルを作成することで、それに沿ってテストを実施すればよい。
テスト対象の仕様を整理し、入出力の組み合わせパターンをテストケースとするためブラックボックスレベルのテストを網羅的に実施できるだろう。
まとめ
デシジョンテーブルはデシジョンテーブルテストのみならず、不良に対する原因分析や静的テストにも利用できる。なぜなら、不良が発生した条件の組合せと同じルールをデシジョンテーブルから探してその差異を比較することで不良の原因の条件を特定できるためである。
デシジョンテーブルを使用することで、条件の組合せ漏れが無くテストパターンを作成することができるが、コストやスケジュールのバランスを考慮してテストケースを作成する必要があるだろう。
テクバンの品質ソリューション事業部 特設サイトでは、「ソフトウェアテスト」や「テスト自動化」に関するサービスのご紹介をしております。
「プロダクトやサービスの品質がなかなか上がらない…」
「テスト自動化の導入/運用をしたいがどう進めたらよいか分からない…」
などのお悩みをお持ちの方は、以下のリンクからぜひお気軽にご相談ください。
また、「ソフトウェアテスト」や「テスト自動化」のお役立ち資料も掲載しておりますので、こちらも合わせてご利用ください!