Modelの設定には、Eggplant AI Modelの実行とデバッグに影響を与えるいくつかの機能が含まれています。
[Disable all snippets]は、ModelのStateやActionに添付されているEggplant Functional Snippetをすべて無効にします。Eggplant AIがアタッチされたSnippetを実行せずにModelを実行したい場合は、再生ボタンを使用してModelを実行する前にこのオプションを選択してください。[Disable all snippets]は、主にEggplant Functionalに問題があると思われるModelをデバッグする場合に使用します。
Modelの設定でSnippetをグローバルに無効にするだけでなく、特定のSnippetを[State]タブまたは[Action Property]タブで無効にすることもできます。
このレッスンでは、Eggplant AIツールバーの「Abort」ボタンについて説明しました。デフォルトでは、Abort機能を使用すると、Cleanup Stateがバイパスされ、Modelの実行がAbortされた後、テスト対象のアプリケーションはUnknow Stateになる可能性があります。Abort後にCleanupの実行オプションを使用して、Abort時にCleanup Stateを起動するようにModelを設定することができます。
残りのModel設定のほとんどは、Modelの実行時にコンソールに表示され、実行後にRun Reportに表示されるレポートを参照しています。これらのレポート機能は、主にModelをデバッグするとき、またはアプリケーションの問題を再現する目的でテスト中のアプリケーションを介してワークフローをトレースするときに便利です。
右図のように、多くのレポートオプションが用意されています。Eggplant AIの新しいユーザーとして、しばらくの間、すべてのレポートオプションを使用してみて、どれが便利かを確認してみてください。これらのオプションによって作成された追加のレポートエントリは、Run Reportにも表示されます。過去の実行、特に失敗した実行を確認する際には、この追加情報にアクセスすることが重要になります。
ここまでのレッスンでは、Eggplant AI GUIを使ったModelの実行について説明してきました。GUIを使用して実行することは、デバッグ時やテスト実行時には非常に有効ですが、テスト実行の多くをGUIのインタラクションに依存しない自動化された方法で処理したい場合もあるでしょう。
Eggplant AI REST APIは、Eggplant AIを自動テストプロセスに組み込むために利用できます。このAPIには、Model実行の開始、停止、監視、レポート表示のための8つの異なるメソッドが含まれています。
Eggplant AI APIとPythonやJavaフレームワークなどのクライアントを使用して、Modelをプログラム的に実行します。
このレッスンの「リソース」セクションをチェックして、REST API ドキュメントへのリンクを取得したり、Eggplant AI REST API の Postmanコレクションのサンプルをダウンロードしたりします。
これまでは、主にModel全体を実行することについて説明してきました。このパラダイムはソフトウェアテストの世界ではかなり新しいものであり、多くのQAチームは今でもテストケースを活動と成功の指標として使用しています。
Eggplant AIには、この古いテストケースのパラダイムに対応するために、テストケースの機能が用意されています。テストケースを構築した後、2つの方法でテストケースを使用することができます。
1つ目は、Directedテストケースと呼ばれるテストケースを直接実行する方法です。
2つ目の方法は、ModelのRun Reportを分析して、ModelがModel全体の実行の副産物としてテストケースを実行したかどうかを判断することです。テストケース分析については、このコースのレッスン6でさらに詳しく説明します。
Eggplant AIは、Directedテストケースとして実行していない定義されたテストケースや、Model実行の一部としてModelがまだ実行していないテストケースを自動的に識別します。次のModel実行時には、Eggplant AI はこれらのテストケースをフォーカスされたテストケースとして設定し、Model実行時に実行される確率を高めるために、内部的にこれらのテストケースに高いウェイトを適用します。
テストケースを定義するには、[Test Case Builder]タブを使用します。
Test Case Builderは、Eggplant AI UIの右側にあります。最初のテストケースを作成するには、[Add new test case]ボタンをクリックし、テストケースに名前を付けます。
次に何をするかについては、Eggplant AIインターフェイス内の説明を参照してください。[Model]タブのワークスペースで、テストケースに表示される順番にStateとActionをクリックします。
テストケースの各StateとActionに対して、Modelがテストケースを分析するときに、テストケースを満たすために何をしなければならないか、またはDirectedテストケースがどの変数値を使用するかを指定する追加の設定オプションがあります。
Hit Count オプションは、テストケースが満たされるまでにModelがStateまたはActionを何回実行しなければならないかを決定します。
Not オプションは、テストケースが満たされるためには、テストケースのワークフローのその位置でStateやActionが発生してはならないことを示します。
Variable Conditions(Variable Conditions)は、テストケースを満足させるために、どの変数値が許容されるか、許容されないかを指定します。Variable Conditionsを含むテストケースをDirectedテストケースとして実行すると、テストケースはVariable Conditionsを満たす値を選択し、Actionを実行するときにその値を使用します。
また、Test Case Builderタブでテスト ケースのステップを削除したり、並べ替えたりすることもできます。テストケースステップの右端にある赤い[X]ボタンをクリックしてテストケースから削除し、左端にある縦スクロールアイコンをドラッグして、テストケース内のステップを並べ替えることができます。
テストケースを使用してModelの実行を解析したり、Directedテストケースを実行したりすることができるため、テストケースにはいくつかの設定上の注意点があります。すべてのテストケースコンポーネントや構成オプションが、テストケース分析とDirectedテストケースの両方で使用することに意味があるわけではありません。
最も明白な注意点は、テストケースを分析した場合にはStateが有効ですが、Directedテストケースとしてテストケースを実行した場合には有効ではないということです。Stateステップを含むテストケースをDirectedテストケースとして使おうとすると、Directedテストケースはエラーを発生させます。これは、Stateがオープンエンドのテストケースのステップであり、State内の任意のActionの実行がテストケースを満たすからです。しかし、Directedテストケースは、次に実行すべきActionを正確に知る必要があります。
Hit Countには、RangeやZero、Manyなどのオープンエンドのオプションがあります。これらのオプションはDirectedテストケースのコンテキストでは意味をなさないので、Directedテストケースは特定の設定に応じて、これらを無視するか、Actionを完全にスキップします。
Notオプションもまた、Directedテストケースでは意味をなさないオプションです。Notアクションを含むDirectedテストケースを実行した場合、Eggplant AIはこのオプションを無視してActionを実行します。