原因結果グラフの「制約のテスト」 その2
原因結果グラフの「制約のテスト」の続きです。
==
制約を含んだ原因結果グラフをデシジョンテーブル変換する際、制約の成立性もあわせてデシジョンテーブルに変換してみようという試みです。原因結果グラフのメリットのひとつである「テスト条件を削減できる」という効果は薄れてしまいますが、前提条件である「制約のテスト」を網羅しやすくなるので、やる価値はあると思います。
例題として以下のような原因結果グラフを使ってみます。

- 制約全体で考える
- REQ制約について
- ONE制約について
- テスト対象の原因結果グラフについて
- 最終的なデシジョンテーブルについて
この原因結果グラフでは2個の制約があります。
REQ=(B A) i.e. Bが真であるためにはAが真であることが必要
ONE=(B C D) i.e. BとCとDはいずれかひとつが真でなければならない
この原因結果グラフにおいて「制約が不成立」というのは「REQ制約が不成立」あるいは「ONE制約が不成立」を意味しますので、これはすなわち、

と表現できます。得られるデシジョンテーブルは以下の通り。

言い換えれば、「REQ制約が不成立」を確認するテスト条件ではそれ以外の制約(ここでは「ONE制約」)は成立すると仮定する必要があります。でなければ「制約が不成立」という結果にどの原因が影響したかが不明確になるからです。逆も同様。3列目については「制約が成立」という結果ですので、はじめてテスト対象の原因結果グラフを意識することになります。
まず「REQ制約が成立するか否か」の原因結果グラフとデシジョンテーブルを作成します。


明記していませんが、ONE制約は成立していることが前提です。「REQ制約が不成立」を確認したいので、#2を使います。
次に「ONE制約が成立するか否か」の原因結果グラフとデシジョンテーブルを作成します。「ONE制約が不成立」を確認したいので、#2、#3、#4、#6を使います。


最後にすべての制約が成立することを前提にして、テスト対象の原因結果グラフとデシジョンテーブルを作成します。

2~4のデシジョンテーブルを結合するとこのような8個のテスト条件が確認できます。

テスト対象の原因結果グラフの3個と合わせて5個の「制約不成立」の確認をすることになります。
もう少し検証したらツールに反映します。
| 固定リンク
この記事へのコメントは終了しました。

コメント