見出し画像

第224回: 「ソフトウェアテストしようぜ」38 CEGTest(8. CEGTestツールの使い方 後編)

◀前の記事へ 次の記事へ▶


≡ はじめに

前回は、「CEGTestツールの使い方」の中編で、CEGTestツールを使用して以下のマインドマップをつくるまででした。

原因と結果の構造

もう、ほとんど原因結果グラフに見えるのですが、マインドマップには、論理関係が入っていません。論理関係とは、前にやった、NOTとANDとORのことです。

上記のマインドマップを見ると、「参加する」という判定は、「興味ある」と「時間ある」から決まることがわかります。でも、
  参加する = 興味ある ∧ 時間ある
と、
  参加する = 興味ある ∨ 時間ある
のどちらなのか、図には表現されていません。

「∧」は「AND」、「∨」は「OR」を表す論理記号(「+-×÷」と同じ仲間の二項演算子)です。

今回は、論理記号を追加して、さらに原因ノードを追加しつつ制約を設定する操作について書きます。



≡ CEGTestツールで論理記号を入力

それでは、上記マインドマップから原因結果グラフをつくります。

■ ノードの配置

まずは、同じ文字が入ったノードを同じように配置します。ノードの置き方と移動方法は前回にあります。

CEGTestにノードを配置

■ リンクの入力

ここまで出来たら、リンク線を引きながら同時に論理関係を入力していきます。
原因結果グラフを作成するときに、私は、右側の結果ノードから遡りながらつくっています。

この例で言えば、『興味があって、しかも、時間があるときに参加すると決めるよなあ』と考えながら、「参加する」、「興味がある」、「時間ある」をリンクします。

ノード間にラインを引くときの操作方法について説明します。
まず、CEGTestのモードを「リンクの入力モード」にする必要があります。

モードについては、前々回をご覧ください。

「リンクの入力モード」にする方法は、画面上部にある「/」ボタンを押すだけです。次の図は「/」ボタンを押した結果、ボタンが凹んだところです。

すべきことは、黄色のメッセージエリアに出ています。今は、「原因(あるいは起点)となるノード(あるいは制約)をクリックしてください」というメッセージが出ています。
そこで、「参加する」という結果ノードの原因の一つである「興味がある」ノードをクリックします。「興味がある」をクリックすると画面はこう変わります。

メッセージ欄をみます。
「始点=興味がある」と書いてあります。
これは、これから引くラインの始点が「興味がある」ノードであることを示しています。

そして「興味がある」ノードを見ると、上図のとおり【原因】と書かれています。「原因ノードとして選択中」ということを意味しています。マウスカーソルを結果ノードの「参加する」の上に移動すると、「参加する」ノードの下に【結果】という文字が現れました。

この【原因】と【結果】が表示されているときにマウスをクリックすると原因ノードと結果ノードが結ばれ、結果ノードの位置に、論理関係を指定するメニューが現れます。

論理関係を指定するメニューがあらわれたところ

今回は、「興味があって、しかも(かつ)、時間があるときに参加する」という論理関係を入力したいわけですから、「∧」(AND)を選択します。

「参加する」ノードに「∧」記号が付いたことに注目しましょう。

続いて、「時間がある」をクリックし、「参加する」をクリックします。参加するノードの論理記号は「∧」に決定していますので今度は論理関係を指定するメニューは現れません。
こうして、右側の3つのノードの論理関係を入力できました。

結果から論理関係を入力しているところ

変な状況になったら、いったん、「/」ボタン、または、余白をクリックして、「/」を解除してから、もう一度「/」を押すと分かりやすいです。慣れるまでは失敗することもあると思いますが、何度かつくるうちに、無意識で線を引けるようになります。

他のノードの関係も入力します。

全ての論理関係を入力したところ

「興味がある」ノードは「∧」ではなく「∨」(OR)となっている点に注意してください。「講演者に興味がある、もしくは、テーマに興味があるということは、興味があるということ」という論理関係なので、「∨」(OR)となります。

■ 制約の追加

上記の原因結果グラフは抽象度が高いものです。「プライベート面で問題なし」について、具体的なノードを追加してみます。

このように、右側からつくると具体・詳細化をするだけなのでつくりやすいです。

なお、NOTの入力は原因側のノードを2回クリックしてから結果ノードをクリックします。

さて、「習い事の日」のところをみると、「ジム」と「ピアノ」が「∨」でぶら下がっています。【同じ日に、「ジム」と「ピアノ」の両方に行くことはない】という前提条件があるとすると、それは制約として指定します。

「EXCL」ボタンを押して、[EXCLアイコン]を配置後、「ジム」、「EXCL」、「ピアノ」の順番にクリックします。

ここでも、おかしくなったらいったん余白部分をクリックして、「/」を押して、「EXCL」、「ピアノ」のように、始点、終点の順にクリックすればOKです。

完成した原因結果グラフはこちらになります。

制約を指定し、完成した原因結果グラフ

原因結果グラフが完成したので、CEGTestが作ってくれていたデシジョンテーブルを載せておきます。

デシジョンテーブルですが、原因結果グラフの上から順番に行が並んでいる点に注意しましょう。
逆にいうとテストの順序をノードの縦方向の位置で決めることができるということです。


≡  おわりに

今回は、「CEGTestツールの使い方」の後編でした。前回の「テスト分析」と対比すれば、「テスト設計」をしたということです。

原因結果グラフの作成は、このように、まず、大きな論理構造を少数のノードで結果ノードから原因ノードは遡るようにしてつくり、次に、テストケースを意識しながら、最左端の原因ノードについて同値分割してクラスに分割し、最後に、制約をつけるという手順でおこなうと良いと思っています。

「習うより慣れろ」ということわざがあるとおり、2、3個つくってみれば、すぐにCEGTestの操作方法のコツがわかります。

次回から制約についての説明がはじまります。
まずは、「制約ってなに?禁則と同じもの?違うもの?」、「制約をつけるとデシジョンテーブルはどうなるの?」といった基礎的な説明と、1番簡単で分かりやすい[ONE]について書く予定です。

◀前の記事へ 次の記事へ▶


この記事が気に入ったらサポートをしてみませんか?