Eggplant AIでテスト対象システム(SUT)のモデルを作成すると、アルゴリズムによってEggplant AIにシステム上でテストを生成させることができます。モデルは、状態アクションから構成されます。状態は、一般にソフトウェアアプリケーション内の画面を表します。アクションは、状態内で行うことのできるユーザーアクションを表し、この中にはユーザーを状態間で移動させるアクションも含まれます。

Eggplant AIモデルにおける状態の作成方法と使用方法について、以下に説明します。アクションについての情報は、 Eggplant AIでのアクション作成を参考してください。

状態のタイプ

Eggplant AIの状態は、次の4つのタイプから選択することができます。

Start:モデルの初期状態(開始点)に使用される状態タイプです。

  • Exception:エラー状態に使用される状態タイプで、新しいモデルを作成すると自動的に追加されます。この状態を使って、エラー処理を行うことができます。
  • Cleanup:クリーンアップ状態に使用される状態タイプで、新しいモデルを作成すると自動的に追加されます。この状態を使って、モデル実行の終了時にSUT上で実行したいクリーンアップ手順を行うことができます。
  • Normal:その他のすべての状態に使用される状態タイプです。モデルの大部分は、このNormalタイプの状態で構築されます。
  • 新規モデルにおけるデフォルトの状態

Eggplant AIで新しいモデルを作成すると、Modelタブのワークスペースに、Initialと名付けられた緑色の開始状態が自動的に配置されます。右側のペインにあるState Propertiesタブを選択し、Nameのところで、モデルをより的確に表現する状態名に変更することができます。

左側のペインにあるModel treeタブをクリックすると、新しいモデルにデフォルトで次の状態が備わっていることがわかります。

Initial:モデル実行の開始点となる開始状態です。

注:モデルには、開始状態を1つだけ置くことができます。アプリケーションに複数の入口点があり、ランタイム時にモデルがその中から選ぶようにしたい場合は、開始状態の中に複数のアクションを含めることで、この動作を実現することができます。

  • Error:Exceptionタイプの状態です。Eggplant AIは、モデルの実行中にエラーが発生したときは必ずこの状態を呼び出します。エラーは、モデルチェックの失敗時にも、SenseTalkスニペット内での問題発生時にも起こり得ます。こうした状況でエラー処理を使用するには、適切なSenseTalkスニペットをこの状態にアタッチする必要があります。この状態が呼び出されたときに何もスニペットがアタッチされていないと、ここで何の処置も行われずにモデルの実行が終了します。
  • Cleanup:モデルの実行終了直前にEggplant AIによって呼び出される状態です。必要であれば、このCleanup状態に適切なSenseTalkスニペットをアタッチし、それによって終了前にSUTをクリーンアップすることができます。例えば、アプリケーションまたはデータベース接続を閉じる必要があることが考えられます。この状態が呼び出されたときに何もスニペットがアタッチされていないと、ここで何の処置も行われずにモデルの実行が終了します。
  • Exit:アクションを一切含まない状態です。Eggplant AIによってこの状態が呼び出されると、モデルの実行は終了します。
  • 通常、Modelタブのワークスペース上には、開始状態と追加したNormalタイプの状態だけが表示されます。Exception、CleanupおよびExitタイプの状態は、Model treeタブにのみ表示されます。

モデルの状態作成

新しい状態を作成するには、Modelタブを選択してから、次のいずれかの操作を行います。

ツールバーの新規状態ボタンEggplant AIツールバーの新規状態(プラス)ボタンをクリック

  • Modelタブのワークスペース内で右クリックをして、コンテキストメニューからNew Stateを選択
  • メインメニューからEdit model > New Stateの順に選択
  • Ctrl+Shift+Sを使用
  • 状態を選択すると、右側のペインのState Propertiesタブで、状態の名前やその他のプロパティを変更することができます。
    注:UIの右側のタブの内容は、モデル内で選択されている要素のタイプに応じて変化します。State Propertiesタブを表示させるには、モデル内で状態を選択する必要があります。

モデルに状態を追加した後は、Eggplant AIでのアクション作成の説明に従ってモデルにアクションを追加します。

状態プロパティの設定

モデルの挙動をカスタマイズするために、状態に関連するプロパティを調整することができます。状態のプロパティを変更するには、Modelタブで状態を選択してから、右側のペインのState Propertiesタブを選択します。

State Propertiesタブでは、状態の全プロパティにアクセスすることができます。これらのプロパティは、モデルに状態を作成した当初に設定することも、必要に応じて後から戻ってきて調整することもできます。

Eggplant AI内の State Propertiesタブ

Eggplant AI内のState Propertiesタブでは、モデル内の状態のプロパティが調整可能

一般的なプロパティのセクション

State Propertiesタブの一番上のセクションでは、次のような状態の一般的なプロパティが調整可能です。

Name:新しい状態には、作成時、デフォルト名が付けられています。ここで、モデルに合った、より的確な名前に変更します。

  • Description:任意のフィールドですが、この状態についての有用な情報を記録しておくために使えます。
  • Type:状態のタイプを変更するときに使用するフィールドです。利用できる状態のタイプは、状態のタイプのところで説明しています。
  • 注:通常、状態のタイプは調整の必要がありません。新しい状態は、デフォルトでNormalタイプで作成されます。モデルの大部分は、このNormalタイプで構成されます。Start、ExceptionおよびCleanupの各状態タイプは、1つのモデルにつき1つずつとしてください。

状態によって呼び出されるスニペットのセクション

このセクションには、選択した状態にリンクされているスニペットが一覧表示されます。モデルの実行中にこの状態に遭遇したときは、これらのスニペットが実行されます。スニペットは、SenseTalkコードの特定の断片で、モデルによって状態やアクションが呼び出されたときにSUTとのインタラクションを行います。

State PropertiesタブのSnippets called by stateセクション

状態に結び付けるスニペットの選択

状態やアクションへのスニペットの追加は、ModelタブとSnippetsタブを使って行うことができます。これらのタブを使ったスニペットのリンク方法については、Eggplant AIモデルとスニペットのリンク付けを参照してください。

一方、状態にアタッチしたいスニペットの名前がわかっていれば、このセクションでスニペットを追加することが可能です。やり方は、Nameフィールドをクリックしてから、スニペット名を入力します。

状態変数のセクション

この状態の中で使用する変数やこの状態によって呼び出されるスニペット内で使用する変数を設定するときは、このセクションの設定を使用します。状態変数を使用できるのは、状態または状態内のアクションです。また、スニペットの内外に渡すこともできます。

新しい変数を追加するには、State variablesセクションで、Newをクリックします。変数の追加は、Modelタブで状態を選択して右クリックし、コンテキストメニューからNew Variableを選択することでも行えます。状態変数の設定に使用できる項目は以下のとおりです。

Eggplant AIでの状態定義

Name:変数に合った名前を入力します。

  • Type:ドロップダウンメニューから適当な変数型を入力します。
  • Integer:正、負またはゼロの値をとれる整数(分数ではないもの)として変数を定義します。例えば、ユーザーやテストケースの数など、何らかのカウントが重要になってくるときは、この整数の変数型をモデルに使用します。

    • True or False:オン/オフ、真/偽、これに類するその他の値などのブーリアン値がモデルに必要なときは、このデータ型を使用します。
    • Real:5、-5、2/3などの有理数を含む実数データ型です。2の平方根などの無理数もここに含まれます。度、ラジアンまたはこれに類するその他の情報の値には、実数データ型を使用します。
    • Text:文字列を格納する必要があるときは、このデータ型を使用します。
    • Set:これを選択すると、この変数に入れることのできる値のセットが定義可能になります。ランタイム時に、Eggplant AIに、特定の値リストから値を選ばせたいときは、この型を使用します。(例:'spring'、'summer'、'autumn'、'winter’) 値のリストを入力するには、変数を右クリックしてコンテキストメニューからEdit Variable Detailsを選択し、Variable PropertiesダイアログボックスのValuesセクションで値を設定します。
    • Record:これを選択すると、Eggplant AIは、CSVファイルに入ったレコードから変数値を読み出します。CSVファイルの入っているディレクトリを確認するには、File > Settingsの順に選択します。Eggplant AIがこの変数に行き当たった場合、CSVファイルからレコードを1つ選択し、変数に格納します。
    • Generation:ドロップダウンメニューから適当な変数生成手法を入力します。
  • Generated:変数型に基づいて変数に新しい値が生成されます。

    • Generated Unique:値が生成されますが、以前に使用された値は再使用できなくなります。
    • Generated one-time:生成される値が選択され、一度選択されたら、再び選択されることはありません。値は、実行全体を通じて不変となります。
    • Non-generated:値は生成されず、値を格納するよう設定が必要です。
    • Initial Value:この変数に初期値がある場合、その値を設定します。
  • 既存の変数を編集するときは、その変数を選択して、State variablesセクションで情報を更新します。変数をさらに細かくカスタマイズするときは、変数を右クリックして、Edit Variable Detailsを選択します。Variable Propertiesダイアログボックスが開き、初期値だけでなく、値の範囲やその他の詳細を設定することができます。

変数を削除するときは、State Variablesセクションで変数を右クリックして、コンテキストメニューからRemove Variableを選択します。

関連タグのセクション

Eggplant AIでは、モデルに関する特定のプロパティを明らかにするために、タグを作成することができます。こうしたタグを状態に適用することで、モデル内でそのプロパティを追跡することができます。モデル内で状態にタグを関連付けるときは、このセクションの設定を使用します。タグを作成し、作成したそのタグをモデル内の状態に適用する方法については、Eggplant AIでのタグの使用を参照してください。

Eggplant AI lets you create tags to identify specific properties about a model. こうしたタグを状態に適用することで、モデル内でそのプロパティを追跡することができます。 モデル内で状態にタグを関連付けるときは、このセクションの設定を使用します。 タグを作成し、作成したそのタグをモデル内の状態に適用する方法については、Eggplant AIでのタグの使用Eggplant AIを参照してください。

 

This topic was last updated on 2月 01, 2019, at 11:13:23 午前.

Eggplant icon Eggplant.io | Documentation Home | User Forums | Support | Copyright © 2019 Eggplant