デシジョンテーブルテスト
デシジョンテーブルはシステムが実装しなければならない複雑なビジネスルールを記録するために用いられます。またテストケースを作成するサインの指針としても役立つ。
デシジョンテーブルはテスト担当者の個人的な道具箱には欠かせない重要なツールです。
デシジョンテーブルの一般的な形
| ルール1 | ルール2 | ルール3 | ルール4 | ルール5 | ..... | ルールn | |
|---|---|---|---|---|---|---|---|
| 条件 | |||||||
| 条件1 | |||||||
| 条件2 | |||||||
| ... | |||||||
| 条件m | |||||||
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| アクション | |||||||
| アクション1 | |||||||
| アクション2 | |||||||
| ... | |||||||
| アクションp |
- 条件1から条件mまでは様々な入力条件。
- アクション1からアクションpまでは入力条件のさまざまな組み合わせで決定されるアクション。
- 各ルールは条件の一意な組み合わせを定義しており、その組み合わせが満たされると、結果としてルールに関連付けられたアクションが実行される。
分かりにくいと思うので、具体例で説明しようと思う。
ある自動車会社がドライバーが既婚の人や優秀な人には保険料を割り引きする場合を考える。
| ルール1 | ルール2 | ルール3 | ルール4 | |
|---|---|---|---|---|
| 条件 | ||||
| 優秀な学生 | Yes | Yes | No | No |
| 既婚 | Yes | No | Yes | No |
| ---- | ---- | ---- | ---- | ---- |
| アクション | ||||
| 割引額(ドル) | 60 | 25 | 50 | 0 |
すべての顧客はこの4パターンに属し、それぞれのパターンに応じてアクションが異なる。
例えば、優秀な学生ではあるが、既婚ではない場合(Yes, No)は、割引額が25ドルになる。
このように複雑なパターンを場合分けすることで簡潔に記録することができる。
条件が二つの場合は簡潔になることができるかもしれないが、もっと大きな条件になった場合は、どのようにすればいいだろうか。すべての任意の値が意味を持たない場合は、DC(Don't care)を使うことで簡潔に表記することができる。
例えば、A,B,Cの値をもらって返答をするシステムを考慮するときのルールとして、
- Aがある条件を満たさないとき、BやCの値に関わらず、エラーを返す。
などの、「任意の値以外が含まれていない時点で以下を考慮しない」場合、セルにDCを書くとテスト量を格段に減らせる