デシジョンテーブルテスト
デシジョンテーブルはシステムが実装しなければならない複雑なビジネスルールを記録するために用いられます。またテストケースを作成するサインの指針としても役立つ。
デシジョンテーブルはテスト担当者の個人的な道具箱には欠かせない重要なツールです。
デシジョンテーブルの一般的な形
ルール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を書くとテスト量を格段に減らせる