はじめに
ソフトウェアテストの概論について学んだので,テスト技法を実践してみます.
Excelでやってみるというのも考えてみたんですが,ツールを使うほうが楽だろうということで
GIHOZを用いて「デシジョンテーブルテスト」をやってみます.
GIHOZはデシジョンテーブルテスト以外にも,以下のようなテストに対応しています.
- ペアワイズテスト
- 状態遷移テスト
- 境界値分析
- クラシフィケーションツリー法
- CFD法
GIHOZはユーザー登録するだけで基本無料で使え,デシジョンテーブルやテストケースの表はCSVとしてダウンロードすることができます.
デシジョンテーブルについて
デシジョンテーブルとは,
想定されるすべての条件と、それに対して実行すべき動作を整理した表のことです.
これを用いることにより,すべての組み合わせをもれなくテストする際に有効です.
組み合わせパターンを視覚的に整理できるので,条件の組み合わせ漏れを防げます.
ただし,すべての組み合わせを網羅するのが大変な場合もあるので,
効率的なやり方でも実践してみます.
デシジョンテーブル使用例1
以下の映画館の料金設定に対して適用することを考えてみます.
映画館の料金設定
- 基本料金は1800円
- 20時以降に上映開始される作品(レイトショー)は1200円
- 高校生以下は1500円(子供料金)
- 毎月1日は一律1000円(映画の日)
※2つ以上の割引サービスの適用が重なった場合は金額が低いほうを優先
※高校生以下のレイトショーの入場制限は考慮しない
条件と動作の抽出
この場合の条件と動作は以下のように考えられます
- 条件
- 映画の日
- レイトショー
- 高校生以下(子供料金)
- 動作
- 1000円
- 1200円
- 1500円
- 1800円
条件が3つあるので2の3乗の組み合わせがあるので,
YとNのすべての組み合わせで升目を埋めます.("組み合わせを生成"を選択)
動作の記入
表の簡略化
ここで,ルール1~4は最初の条件である「映画の日」が「Y」になった時点で,
動作は必ず1000円となります
したがって,1つのルールにまとめることができます.(「-」はどちらでもよいという意味)
これによりルールを減らすことができ,テストケースを削減できます.
デシジョンテーブル使用例2
以下のDVDレンタルの料金割引に対して適用することを考えてみます.
レンタルDVDの料金割引設定
- 年齢が18歳以下は10%オフ
- 年齢が65歳以上は20%オフ
- 旧作(レンタル開始日から6ヶ月以上経過)は半額
※ただし2つ以上の割引の適用条件が重なった場合は,割引率の高いほうを優先
条件と動作の抽出
この場合の条件と動作は以下のように考えられます
- 条件
- 18歳以下
- 65歳以上
- 旧作
- 動作
- 10%オフ
- 20%オフ
- 50%オフ
- 割引なし
条件が3つあるので2の3乗の組み合わせがあるので,
YとNのすべての組み合わせで升目を埋めます.
矛盾条件の削除
ここで,18歳以上かつ65歳以上の両方を満たすような人は存在しないので
「N/A」を動作に記入して動作を埋めます.
最後に
GIHOZを用いたデシジョンテーブルにより,条件のすべての組み合わせの洗い出しや,
テストケースの作成を簡単に行うことができました.
すべての組み合わせを洗い出すのはよいですが,必要に応じて分割や簡略化などをし,
テスト実施が可能な項目数になるようなテーブルを作成するようにしたいと思いました.
次回以降では状態遷移テストと境界値分析に対してGIHOZを用いていきたいです.