モデルのアウトライン作成
Eggplant AIでモデルを構築する前に、まずテストを行うインターフェースのパーツと、それらのパーツをどのように結び付けるかを検討します。インターフェース上でユーザーが遭遇する可能性のある状態とアクションの簡単なアウトラインまたはスケッチを作成しておくと、モデルを構成する際に役立ちます。この最初の計画立案は、Eggplant AIのワークスペース内で行うことができます。
モデルの細かさは、任意で決定することができます。ユーザーがログイン時に行う手順(ユーザー名の入力、パスワードの入力、「OK」のクリック)をすべて実行する1つの「ログイン」アクションを設けることも、それぞれの手順に個別のアクションを作成することも可能です。また、ウィザード内のパネルやマウスオーバーメニューなど、新規の画面やページ以外のものも状態と見なすことができます。
- 例えば、トラベルサイトのテストを行っている場合、ユーザーはまずウェブサイトに接続することが考えられます。ユーザーが接続したとき、最初に見るのはホームページです。ホームページの次にユーザーが訪れることのできる候補は、検索、マイアカウント、レンタカー、フライト、ホテル、レストランなど複数あります。これらのページのいずれでも、ユーザーは、ホームページに戻ったり、別のページに移動したりする選択を行うことが考えられます。そして、いずれかの時点で、ユーザーはサイトを後にします。
- モデル構築の段階的手順
- Eggplant AIモデルにおいては、ユーザーが訪れる可能性のある各ページまたは画面が状態となります。クリックやタップなど、ユーザーがその状態内で行う可能性のあるアクティビティまたはユーザーをモデルの状態間で移動させるアクティビティは、アクションで表されます。
- すべての要素名は一意でなければなりませんが、要素名の決定においては、一貫していて意味のある命名規則を定めるようにしてください。例えば、homeと名付けられたアクションは、Home pageと名付けられた状態にユーザーを移動させることが考えられますし、flightsと名付けられたアクションであれば、Flights pageと名付けられた状態にユーザーを移動させるでしょう。
- Eggplant AIにおけるモデルの構築手順を以下に説明します。
File > New Modelの順に選択し、新しいモデルを作成します。新しいモデルは、Initialという名前のStartタイプの状態1個からスタートします。この状態の名前は、右側のペインにあるState propertiesタブで変更することができます。Eggplant AI内のInitial状態
注: Eggplant AIへの初回ログイン時には、Initial状態を備えた新しいモデルがModelタブに表示されています。新しいモデルを作成するのではなく、このモデルから発展させていくことができます。
Eggplant AI内のInitial状態
注: Eggplant AIへの初回ログイン時には、Initial状態を備えた新しいモデルがModelタブに表示されています。新しいモデルを作成するのではなく、このモデルから発展させていくことができます。
ツールバーにあるモデルの保存(フロッピーディスクアイコン)をクリックするか、File > Save Modelの順に選択し、モデルを保存してグループに割り当てます。グループに割り当てることで、複数のユーザーがモデルにアクセスできるようになります。同時に複数名がモデルの編集を行うことはできません。
モデル名には、スペースを含めることができませんので注意してください。一旦モデルに名前を付けて保存すれば、後は変更のたびにEggplant AIが自動的にモデルの保存を行います。
新しい状態を追加するには、ワークスペースで右クリックをして、コンテキストメニューからNew Stateを選択します。新規状態の追加は、ツールバーの新規状態ボタン(プラスアイコン)をクリックするか、Edit model > New Actionの順に選択することでも行えます。Normalタイプの状態では、背景が紫色となります。
状態にアクションを追加するには、状態を選択し、その中で右クリックをして、コンテキストメニューからNew Actionを選択します。新規アクションの追加は、ツールバーの新規アクションボタン(フラッシュアイコン)をクリックするか、Edit model > New Actionの順に選択することでも行えます。アクションの背景は、灰色です。
手順3と手順4を繰り返して、必要な数だけ状態とアクションを作成します。
アクションを状態に結び付けるときは、Action Propertiesタブを使用します。アクションを選択してから、Connections from actionメニューのチェックボックスを選択することによって、適当な状態に結び付けます。
Eggplant AI内のConnections from actionメニューを使ったアクションと状態の結び付け
モデルには、グローバルアクションを用いることもできます。グローバルアクションは、モバイルデバイスの回転やショッピングサイトでの検索のように、ユーザージャーニーのどの時点でも実行可能なアクションです。グローバルアクションについては、グローバルアクションの作成を参照してください。
ユーザーを1つ前の状態に戻すアクションをモデリングするときは、新しいアクションを作成します。そのアクションを選択したまま、Action PropertiesタブのTypeドロップダウンリストからPreviousを選択します。Previousタイプを選択すると、アクションの形が八角形に変わります。
Connections from actionメニューで、事前定義のExit状態にアクションを関連付けることにより、モデルの出口点を定義します。
Eggplant AI内のExit状態
モデルを保存します。
準備が終わったら、ツールバーのプレイボタン(緑の矢印)をクリックしてモデルを実行することができます。ただし、SenseTalkスニペットをアクションに結び付けるまでは、実際のテスト対象システム(SUT)に対してモデルが機能することはありません。
モデルの複雑さの追加
- 構築するモデルの複雑さは、テスト要件の変更に合わせて変えられます。パスワードの入力やページ上での選択といったユーザーアクション表示を追加したり、状態やアクションに変数を追加したりすることができます。例えば、スワイプアクションを備えたモバイルアプリのテストを行っている場合、変数を使って、スワイプの行える方向を定義することが可能です。
- 複数のアクションが決まった順番で行われなければならないときは、アクションタイプをsequentにします。Action Propertiesタブで、一連の最初のアクションをNormalタイプに設定します。順番に実行する必要のある、続くすべてのアクションをSequentタイプに設定します。実行させたい順番でアクション同士を結び付けます。アクションのタイプをSequentに変更すると、アクションの形が楕円形に変わります。連続アクションを使ってループを作成することもできます。
- 下の例では、アクション10が実行された後にアクション11が実行され、そうして初めてアクション12が実行可能になります。
- 連続アクションを用いたEggplant AIモデル
- Eggplant AIでは、状態やアクションの重みを調整することで、それらの重要度を定義することができます。重み付けされた要素をもつテストを実行すると、Eggplant AI内のラーニングアルゴリズムが、アクションや状態の重み付けに応じて、テストケースにおけるその発生頻度の高低を調整します。
- テストの実行を終了させるには、事前定義のExit状態を使う方法が一番簡単ですが、アクションの制限値などを用いて独自の終了点を定義することもできます。グローバルアクション以外に残された動作が存在しない状態に達した場合、モデルは終了します。また、状態内のすべてのアクションが、設定した前提条件に合わなかったり、実行制限値を超えたりした場合(またはこれらのケースが組み合わさった場合)も、モデルは終了します。
- モデルへのスニペットの追加
- Eggplant AIとEggplant Functionalの統合が完了している場合、モデルにスニペットを追加することができます。スニペットとは、SenseTalkコードの小さな断片のことで、モデル内でアクションや状態と関連付けることが可能です。Eggplant Functionalスニペットが関連付けられたEggplant AIモデルを実行すると、Eggplant AIでモデルが実行されるのと同時に、テスト対象システム(SUT)でもモデルが実行されます。
- SenseTalkスニペットの使用についての全情報は、Eggplant AIと Eggplant Functionalの統合およびEggplant AIモデルとスニペットのリンク付けを参照してください。
ワークスペース左側のModel treeには、モデルがツリー形式で表示されます。アクションは、関連する状態の下に表示されています。
Eggplant AI内のModel Treeパネル
新しいモデルを作成すると、モデルツリーには次の4つの状態が自動的に表示されます。
Initial状態は、モデルの開始点です。
Error状態は、モデルがエラーを検出するたびに呼び出されます。エラーの原因としては、モデル内チェックの失敗やSenseTalkスニペット内の不具合などが考えられます。
Cleanup状態は、Exitの直前に呼び出され、次の状態(例、アプリケーションの終了など)に移る前にSUTをクリーンアップするために使用されます。
Exit状態は、モデルの終点となります。
モデルツリーを使って、状態から状態へのアクションの移動や、状態からメインワークスペースへのアクションの移動(グローバルアクションへの変更)を行うことができます。移動させるアクションを選択して、新しい場所にドラッグします。アクションを配置できる場所の上にマウスをもっていくと、選択しているアクションのハイライトが緑に変わります。
モデルツリーのコンテキストメニュー
モデルツリー内では、ワークスペース内と同じ操作が行えます。モデルツリーで右クリックをすると、コンテキストメニューが開き、そこから、アクション、状態または変数をモデルに追加することができます。また、項目の削除やブレークポイントの追加/削除、コンソールのクリアもこのコンテキストメニューから操作が可能です。
When you explicitly save a model (by clicking the Save button or going to File > Save Model) anytime after the initial save, you can create a new version name of the model. Add a tag name in the Create a version tag window. Click Cancel if you don't want to create a new version; when the model automatically saves, any changes you've made save to the active version.
You can revert to previous versions of models. Go to File > Model History to choose which version to open.
Versions are preserved when you switch between them; reverting to another version doesn't overwrite the version that you switched from.
Working with the Model Tree
ワークスペース左側のModel treeには、モデルがツリー形式で表示されます。 アクションは、関連する状態の下に表示されています。
新しいモデルを作成すると、モデルツリーには次の4つの状態が自動的に表示されます。
- Initial状態は、モデルの開始点です。
- Error状態は、モデルがエラーを検出するたびに呼び出されます。 エラーの原因としては、モデル内チェックの失敗やSenseTalkスニペット内の不具合などが考えられます。
- Cleanup state is called just before Exit, and is used to tidy up the SUT prior to the next state, i.e., closing applications, etc.
- Exit状態は、モデルの終点となります。
モデルツリーを使って、状態から状態へのアクションの移動や、状態からメインワークスペースへのアクションの移動(グローバルアクションへの変更)を行うことができます。 移動させるアクションを選択して、新しい場所にドラッグします。 アクションを配置できる場所の上にマウスをもっていくと、選択しているアクションのハイライトが緑に変わります。
モデルツリー内では、ワークスペース内と同じ操作が行えます。 モデルツリーで右クリックをすると、コンテキストメニューが開き、そこから、アクション、状態または変数をモデルに追加することができます。 また、項目の削除やブレークポイントの追加/削除、コンソールのクリアもこのコンテキストメニューから操作が可能です。