« [イベント]WACATE2010 夏 開催決定! | トップページ | 原因結果グラフの「制約のテスト」 ONE制約 »

原因結果グラフの「制約のテスト」 その2

原因結果グラフの「制約のテスト」の続きです。

==

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

例題として以下のような原因結果グラフを使ってみます。

Ceg

  1. 制約全体で考える
  2. この原因結果グラフでは2個の制約があります。


    REQ=(B A)     i.e. Bが真であるためにはAが真であることが必要
    ONE=(B C D)    i.e. BとCとDはいずれかひとつが真でなければならない

    この原因結果グラフにおいて「制約が不成立」というのは「REQ制約が不成立」あるいは「ONE制約が不成立」を意味しますので、これはすなわち、

    Ceg_2

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

    Dt

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

  3. REQ制約について
  4. まず「REQ制約が成立するか否か」の原因結果グラフとデシジョンテーブルを作成します。

    Reqceg
    Reqdt

    明記していませんが、ONE制約は成立していることが前提です。「REQ制約が不成立」を確認したいので、#2を使います。

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

    Oneceg
    Onedt

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

    Dt_2

  9. 最終的なデシジョンテーブルについて
  10. 2~4のデシジョンテーブルを結合するとこのような8個のテスト条件が確認できます。

    Dt2

    テスト対象の原因結果グラフの3個と合わせて5個の「制約不成立」の確認をすることになります。

もう少し検証したらツールに反映します。

|

« [イベント]WACATE2010 夏 開催決定! | トップページ | 原因結果グラフの「制約のテスト」 ONE制約 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/155415/34656910

この記事へのトラックバック一覧です: 原因結果グラフの「制約のテスト」 その2:

« [イベント]WACATE2010 夏 開催決定! | トップページ | 原因結果グラフの「制約のテスト」 ONE制約 »