メインコンテンツまでスキップ
バージョン: DAI 7.2

モデルの構築

Eggplant DAIのモデルは、テストしたいアプリケーション、インターフェース、またはウェブサイトのシンプルな視覚的表現です。モデルはテスト活動を調整するのに役立ち、テストしているUIの側面の表現を含みます。モデルは、有用であるために完全であるか、複雑である必要はありません。

あるいは、スクリプトを介してテストを実行することを好む場合は、このセクションをスキップして、スクリプトに基づく実行方法に従うことをお勧めします。

このページでは、モデル作成、バージョニング、操作の基本を説明します。

モデルとは何か?

視覚的には、Eggplant DAIモデルはフローチャートに似ていますが、機能的には、それはよりロードマップのようなものです。ユーザーの旅は、定義した状態やアクションの間で任意の数の方向に進むことができます。モデルを実行すると、Eggplant DAIのアルゴリズムが探索的テストを行うために、シミュレーションされたユーザージャーニーがフライに生成されます。

ノート

モデルから特定のユーザージャーニーをカバーするtest casesも作成できます。

Eggplant DAIのモデル

モデルのStatesActionsは、UI要素と遷移を表現します。状態は、アプリケーションの画面、ウェブサイトのページ、あるいはダイアログボックスウィンドウのようなものです。アクションは_状態内_で行われ、ユーザーを_状態間_で移動させることもできます。モデルを実行すると、Eggplant DAIは設定した状態とアクションを通じて可能なユーザージャーニーを自動化します。

モデルの概要を作成する

Eggplant DAIでモデルを作成する前に、テストしたいインターフェースの部分と、それらの部分がどのように接続されているかを考えてみてください。可能な状態とアクションについての簡単な概要やスケッチを作成することで、ユーザーインターフェースでユーザーが遭遇することで、モデルを整理するのに役立ちます。この初期の計画は、Eggplant DAIのワークスペースで行うことができます。

モデルの粒度はあなた次第です。ユーザーがログインするためのすべてのステップを実行する単一のログインアクションを持つことができます。ユーザー名を入力する、パスワードを入力する、OKをクリックする、または、これらの各ステップに対して別のアクションを作成することもできます。新しい画面やページではないもの、たとえばウィザードのパネルやホバーオーバーメニューも、状態と見なすことができます。

たとえば、旅行ウェブサイトをテストしている場合、ユーザーはまずウェブサイトに接続するかもしれません。ユーザーが接続すると、最初に見るページはホームページです。ホームページから、ユーザーが次に訪れることができる場所はいくつかあります:検索、マイアカウント、車、フライト、ホテル、レストラン。これらのページのいずれからでも、ユーザーはホームページに戻るか、別のページに移動することを選ぶかもしれません。ある時点で、ユーザーはサイトを終了します。

モデルを構築する

ユーザーが訪れることができる各ページや画面は、Eggplant DAIモデルの状態です。状態でユーザーが実行できるクリックやタップやその他の活動を表現するため、またはユーザーをモデル内の状態間で移動させるためにアクションを使用します。

すべての要素名は一意である必要がありますが、要素に対して一貫性のある意味のある命名規則を確立します。たとえば、_home_と呼ばれるアクションは、ユーザーを_Home page_と呼ばれる状態に移動させるかもしれません。また、_flights_と呼ばれるアクションは、ユーザーを_Flights page_と呼ばれる状態に移動させるでしょう。

ヒント

既存のモデルを出発点として使用することで時間を節約することができます。デザイナー > モデルから、再利用したいモデルを編集して名前を付けて保存をクリックします。

以下の指示に従ってモデルを構築します:

  1. 新しいモデルを作成するためにデザイナー > モデルに移動します。新しいモデルは開始のタイプを持つ一つの状態から始まり、初期と名付けられます。この状態の名前は、右のペインの状態プロパティタブで変更することができます。

    Eggplant AIの初期状態

  2. ツールバーで保存をクリックします。新しいモデルのバージョン番号が表示されるバージョンタグを作成ダイアログボックスが表示されます。

  3. 自動的なバージョン管理を許可するためにOKをクリックします。

    ノート

    保存するまで変更したモデルを実行することはできません。モデルを初めて保存した後、モデルへの変更は自動的に保存されます。

    重要

    Eggplant DAIは同じモデルの同時編集をサポートしていません。他のユーザーがあなたが現在開いているモデルを編集すると、Eggplant DAIは別の名前でモデルを保存するように警告します。

  4. 新しい状態を追加するには、ワークスペースで右クリックして、コンテキストメニューから新規状態を選択します。また、ツールバーの新規状態をクリックすることもできます。通常の状態は紫色の背景を持ちます。

  5. 状態にアクションを追加するには、状態を選択し、その内部で右クリックして、コンテキストメニューから新規アクションを選択します。また、ツールバーの新規アクションをクリックすることもできます。通常のアクションは灰色の背景を持ちます。

  6. モデルを満たすたために必要なだけの状態とアクションを作成します。

  7. アクションプロパティタブを使用してアクションを状態に接続します。アクションを選択し、アクションからの接続メニューのチェックボックスを選択して適切な状態に接続します。

    Eggplant AIでアクションをステートに接続する方法。 Eggplant AIでアクションを状態に接続する モデルワークスペースのアクションからの接続メニューを使用してアクションを状態に接続します

    モデル内に_グローバルアクション_も持つことができます。グローバルアクションは、ユーザージャーニーの任意の時点で実行される可能性のあるアクションで、モバイルデバイスの回転やショッピングサイトの検索などがあります。グローバルアクションについての情報は、グローバルアクションの作成を参照してください。

  8. ユーザーを前の状態に戻すアクションを表現するには、新しいアクションを作成します。そのアクションを選択した状態で、アクションプロパティタブのタイプリストから前のを選択します。前のタイプが選ばれると、アクションの形状が八角形に変わります。

  9. モデルの出口点を定義するには、アクションからの接続メニューで予定されたExit状態にアクションを関連付けます。

    Eggplant AIのExit状態に関連付けられたアクション

  10. モデルを保存します。

準備ができたら、トップメニューから実行をクリックしてモデルのテストを開始します。この段階では、モデルにエラーがないことを確認するために、モデルに対して探索的テストを実行するだけでよいです。SenseTalkスニペットをアクションに接続するまでは、モデルは実際のテスト対象システム(SUT)に対して動作しないでしょう。

ヒント

モデルに対してテストを実行する方法については、ライブランを参照してください。

モデルに複雑さを追加する

テスト要件が変更になったとき、モデルの複雑さも変わることがあります。ユーザーアクションの表現、パスワードの入力やページ上での選択などを追加したり、状態やアクションにパラメーターを追加したりすることができます。たとえば、スワイプアクションを持つモバイルアプリをテストする場合、そのスワイプがどの方向に行うことができるかをパラメーターを使用して定義することができます。

2つ以上のアクションが特定の順序で行われなければならない場合、それらを_順序立てる_ことができます。アクションプロパティタブで、一連の最初のアクションのタイプを通常に設定します。実行順序に必要なすべての後続アクションのタイプを順序立てに設定します。それらのアクションを実行したい順序で接続します。アクションのタイプを順序立てに変更すると、そのアクションの形状が楕円形に変わります。また、順序立てのアクションを使用してループを作成することもできます。

この例では、アクション10が実行された後にアクション11が実行され、それが実行された後にアクション12が実行されます。

Eggplant AIモデルでの順序立てアクション

Eggplant DAIでは、モデル内の状態やアクションの重要性を、それらの重みを調整することで定義することができます。重み付けされた要素を含むテストを実行すると、Eggplant DAIの学習アルゴリズムは、テストケースでそれらのアクションや状態を重みに応じて多かれ少なかれ頻繁にヒットさせるように調整します。

テストランを終了する最も簡単な方法は、予め定義されたExit状態を使用することですが、アクション制限などを使用して自分で終了点を定義することもできます。モデルは、グローバルアクションを除くと、何も残っていない状態に到達したときに終了します。ある状態内のすべてのアクションが設定した前提条件に失敗した場合、または状態内のすべてのアクションが実行制限を超えた場合(またはこれらの組み合わせの場合)、モデルは終了します。

モデルにスニペットを追加する

SenseTalkスニペットの使用に関する完全な情報については、Eggplant DAIとFusion Engineの統合スニペットへのEggplant DAIモデルのリンクを参照してください。

SenseTalkスニペットの使用に関する完全な情報については、Eggplant DAIとFusion Engineの統合およびEggplant DAIモデルをスニペットにリンクするを参照してください。

モデルバージョニング

保存をクリックしてモデルを_明示的に_保存するとき、次のいずれかを選択できます:

  • バージョンタグの作成ダイアログボックスでモデルの新しいバージョン名を作成します。
  • 自動生成されるデフォルトの名前を保持します。

Eggplant AIでのバージョンタグの作成

新しいバージョンを作成したくない場合は、キャンセルをクリックします。モデルが自動的に保存されると、行ったすべての変更がアクティブなバージョンに保存されます。

デザイナー > モデルから、モデルの前のバージョンに戻すことがいつでも可能です。

モデルツリーの操作

作業スペースの左側にあるモデルツリーは、ツリー形式でモデルを表示します。アクションは、それらに関連付けられた状態の下に表示されます。

モデルツリー

新しいモデルを作成すると、モデルツリーは自動的に以下の4つの状態で構成されます:

  • 初期状態はモデルの出発点です。
  • エラー状態は、モデルがエラーを検出したときに呼び出されます。これは、モデル内のチェックが失敗した場合や、SenseTalkスニペット内での失敗によるものかもしれません。
  • クリーンアップ状態は、モデルで最後に呼び出される状態で、終了またはエラー状態の後に発生します。クリーンアップ状態を使用して、次の状態の前にSUTを整理することができます。つまり、アプリケーションを閉じるなどの作業を行います。
  • 終了状態はモデルを終了します。

モデルツリーを使用して、アクションを一つの状態から別の状態に移動したり、アクションを状態からメインの作業領域に移動させてグローバルアクションにすることができます。移動したいアクションを選択し、新しい位置にドラッグします。そのアクションが配置可能な場所にマウスを置くと、選択したアクションのハイライトが緑色に変わります。

モデルツリーで作業領域と同じ操作を行うことができます。モデルツリーで右クリックしてコンテキストメニューを開き、モデルにアクション、状態、パラメータを追加できます。また、アイテムの削除、ブレークポイントの追加や削除、コンソールのクリアなどもコンテキストメニューから行うことができます。