このセクションでは、テスト スイートのプロパティ (テスト スイート名や個々のテスト ケースの実行方法など) をカスタマイズする方法を説明します。このセクションの内容:

テスト スイートのコンフィギュレーション パネルへのアクセス

テスト スイートのプロパティをカスタマイズするには、テスト ケース エクスプローラーでテストスイートのノードをダブルクリックします。

コメント、要件、タスク、 欠陥、機能リクエストをテストに関連付ける

テスト スイート コンフィギュレーション パネルの [要件および説明] タブでは、テスト スイートの特定のテストと要件、タスク、欠陥、機能リクエストを関連付けることができます。

HTML レポートには、テストに関連する成果物が表示されます。たとえば次の図は、テストに関連付けられたコメントが表示されたレポートを表しています。



定義した要件は、構成レポートおよび接続された DTP システム (該当する場合) に表示されます。このレポートは、テスト要件が満たされているかどうかをマネージャーやレビューアーが判断するのに役立ちます。構造レポートの詳細については「テスト スイート構成のレポート作成」を参照してください。

関連およびコメントの追加

  1. テスト ケース エクスプローラーでテスト スイート ノードをダブルクリックし、[要件および説明] タブをクリックします。
  2. [要件トラッキング] セクションで、関連あるいはコメントを適用する範囲を選択します。この情報は、テスト スイート、ネストしたテスト スイート、およびテストに適用できます。
     
  3. [追加] ボタンをクリックし、[型] ボックスで要件のタイプを選択します。DTP はこの情報を使用してテスト スイートのテスト ケースと指定された要素タイプを関連付けます。「コードとテストの関連付けの特定」の説明に従って、カスタム タグを追加できます。デフォルトのタグは以下のとおりです。
  4. 要求の ID および URL を入力して [OK] をクリックします。



    [設定] > [レポート] > [レポートの内容] オプションで [要求/欠陥の詳細] が有効に設定されている場合、ここで指定された関連が HTML レポートに表示されます。URL を指定した場合、HTML レポートにハイパーリンクが表示されます。
  5. コメントを追加するには (たとえば「このテストは要求を部分的にテストする」または「このテストは要求を完全にテストする」など)、[コメント] フィールドにコメントを入力します。ここで入力したコメントは、HTML レポートに表示されます。



  6. テスト スイートについて詳しい説明を追加するには、[注釈] フィールドに入力します。

実行オプションの指定 (テスト フロー ロジック、回帰オプションなど)

実行オプションを使用すると、次のような条件をコントロールすることができます。

これらのオプションは、[実行オプション] タブで指定します。このタブには [テストの実行]、[テスト フロー ロジック]、[回帰オプション] タブがあります。

テストの実行

[実行オプション] タブの [テストの実行] サブタブでは、以下のオプションをカスタマイズできます。

実行モード

このテスト スイートの子である個々のテストおよびテスト スイートを一度に 1 つ実行するには、[テストを順次実行] を有効にします。

このテスト スイートのすべてのテストと子テスト スイートを一度に実行するには、[テストを同時実行] を有効にします。テストは同時に実行されます。

テストの関連性 

これらのオプションは、データ ソース行をどのように反復処理するかを指定します。

テストごとにすべてのデータ ソース行を繰り返すには、[個別にテストを実行可能] を有効にします。これがデフォルトです。個別にテストが実行される場合、次のテストまたはテスト スイートの実行に移る前に、すべての行が使用されます。子テスト スイートが実行される場合、SOAtest は次のテストまたはテスト スイートの実行に移る前に、そのテスト スイートのすべての子の実行が完了するまで待機します。

データ ソースの各行を使用してすべてのテストを実行するには、[グループとしてテストを実行] を有効にします。シナリオの場合はこれがデフォルトです。データ ソースから 1 行が選択され、その行を使用して各テストおよび子テスト スイートが実行されます。  すべての子が実行されたら、新しい行が選択され同じプロセスが繰り返されます。[次の場合にシナリオを異常終了: ] オプションは、[グループとしてテストを実行] が有効な場合にアクティブになります (詳細については「次の場合にシナリオを異常終了」を参照)。

このテスト スイートに含まれるテストを、このテスト スイートの直接の子として実行するには、[このグループの一部としてすべてのサブ グループのテストを実行] オプションを有効にします。そして、グループとしてアクションを順に処理します。[次の場合にシナリオを異常終了: ] オプションは、[グループとしてテストを実行] が有効な場合にアクティブになります (詳細については「次の場合にシナリオを異常終了」を参照)。

たとえば、次の図のようなテスト スイートがあるとします。

Test Suite 2 と Test Suite 3 は、どちらも [個別にテストを実行可能] として設定され、Table には 2 行のデータがあり、Test Suite 1 のそれぞれの [テストの関連性] オプションの下でテストが実行されるとします。次の表は、Test Suite 1 の実行オプションの設定によって、テストの実行順序がどのように変わるかを示したものです。なお、Test Suite 2 および Test Suite 3 は [個別にテストを実行可能] が設定されているとします。  

個別にテストを実行可能グループとしてテストを実行このグループの一部としてすべてのサブグループのテストを実行
SOAP Client 1 行 1SOAP Client 1 行 1SOAP Client 1 行 1
SOAP Client 1 行 2SOAP Client 2 行 1SOAP Client 2 行 1
SOAP Client 2 行 1SOAP Client 2 行 2SOAP Client 3 行 1
SOAP Client 2 行 2SOAP Client 3 行 1SOAP Client 1 行 2
SOAP Client 3 行 1SOAP Client 3 行 2SOAP Client 2 行 2
SOAP Client 1 行 2SOAP Client 1 行 2SOAP Client 3 行 2

SOAP Client 2 行 1

SOAP Client 2 行 2

SOAP Client 3 行 1

SOAP Client 3 行 2

指定の条件でテスト実行を停止するには、[シナリオを中止] を有効にし、[致命的なエラー] または [任意のエラー] をドロップダウン メニューから選択します。前のテストが致命的なエラーとなった場合、[致命的なエラー時にシナリオを中止] チェックボックスをオンにします。このオプションは [テストを順次実行] が有効で [個別にテストを実行可能] が無効の場合にだけ利用できます。  このケースは、テスト スイート内のテストのセットがお互いに依存し、互いに別々に実行できず、連続して実行する必要があるときに発生します。  このオプションが有効で、かつシナリオ内の実行中のテストに致命的なエラーがある場合、シナリオ内の残りのテストは実行されません。  このオプションが無効の場合は、たとえ致命的なエラーが発生しても、シナリオ内の残りのテストが実行されます。

拡張オプション

[複数データ ソースの反復] ドロップダウン メニューからオプションを選択して、「1 つのテスト スイートで複数のデータ ソースが使用されており、テスト スイート中のテストが個別に実行可能ではない場合に、どのようにデータ ソースを繰り返すか」を指定します。すべてのデータ ソースが同じ数の行を持たない場合、最も小さなデータ ソースの最終行で反復は停止します。次のオプションが利用可能です。


[すべての反復を表示] オプションがオンの場合、すべてのデータ ソース行の繰り返し (個別に実行可能なテストの実行も含む) がカウントされて表示されます。デフォルト値はオンです。このオプションがオフの場合、個別に実行可能なテストについては、個々のデータ ソース行の繰り返しは表示されません。つまり、50 行のデータがあるデータ ソースでテストをパラメータライズした場合、1 回のテスト実行としてレポートされます。  結果として、複数のデータ ソース行でエラーが発生した場合、テスト実行回数よりも多いエラーがレポートされる場合があります。

テスト フロー ロジック

SOAtest では、前のテストや、セットアップ テスト、またはティアダウン テストが成功したか失敗したかに応じて実行されるテストを作成できます。この機能は、テスト スイート内で効率的なワークフローを作成するのに役立ちます。さらに、変数の値に基づくループや if/else 文を作成して、テスト スイートのロジックを制御することもできます。

オプションはテスト スイート レベル (テスト スイート内のすべてのテストにオプションが適用されます) で設定することも、個々のテストに対して設定することもできます。

テスト スイート ロジック オプション

多くの場合、ある条件を満たすまで、同じ処理を SOAtest で繰り返すのが良いでしょう。それには、テスト スイート フロー ロジックを使用します。

オプションを理解する

そのようなシナリオ テストの自動化を支援するために、SOAtest では 2 つの主要なテスト フロー タイプを選択できます。

例:

オプションの設定

テスト スイート全体に適用されるテスト フロー ロジックのオプションを設定するには、次の操作を行います。

  1. [実行オプション] > [テスト フロー ロジック] タブを開き、最上位のノードを選択します。



  2. 目的のフロー タイプを選択します。
  3. (任意) 指定した条件に一致することが無かった場合に、ループが実行される最大回数をカスタマイズできます。
  4. [while 条件 (成功/失敗)] フローを選択した場合、[ループ停止条件] で [1 つのテスト] または [すべてのテスト] を選択します。そしてテスト スイートの実行を先に進める条件としたい結果に応じて [成功] または [失敗] を選択します。



  5. [while 条件 (変数)] フローを選択した場合、次のように [while] および [do] 条件を設定します。

while 条件 (成功/失敗) テスト フロー ロジックを設定する詳細な手順については、「テストの成功/失敗までループする - テスト フロー ロジックの使用」を参照してください。

テスト特有のロジック オプション

個々のテストに対して以下のオプションを指定できます。



 利用可能なセットアップ テストまたはティアダウン テストがある場合、GUI 左側のパネルにそれらのテストが表示され、以下のようにテスト ロジックを設定することができます。

  • セットアップ テストの結果に基づいてテストを実行できます。
  • 前のセットアップ テストの結果に基づいてセットアップ テストを実行できます。
  • 通常のテスト、セットアップ テスト、または前のティアダウン テストの結果に基づいてティアダウン テストを実行できます。

この機能を使用すると、セットアップ テストが失敗した場合にテストを中止 (またはテストを実行) できます。

回帰オプション

[回帰オプション] コントロール オプションを使用すると、回帰テストでどのようにデータ ソースを使用するかや、回帰コントロールを追加するテスト スイートを指定できます。このタブの設定は、Web シナリオ テストには適用できないことに注意してください。以下のオプションを指定できます。次のオプションが利用可能です。

データ ソースに新しい行が挿入されたり行が削除された場合、データ ソースに関連付けられた複数行の回帰コントロールをすべて更新する必要があります。
 

変数の定義

[変数] タブで変数を設定し、テストの定義を簡略化したり、柔軟で再利用性の高いテスト スイートを作成するために使用できます。変数を追加すると、その変数を使用してテストをパラメータライズできます。

変数とは

変数に特定の値を指定すると、現在のテスト スイート全体でその変数を使用して値を参照できます。この方法で、同じ値を複数回入力する必要がなくなります。そして値を変更したい場合は、1 箇所を変更するだけです。

変数に特定の値を手動で設定するには、データ バンク ツール (例: XML Data Bank) または Extension ツールですぐに変数の値を設定できます。

さらに、テスト スイートへの参照がある場合 (詳細については「テスト スイートの参照を使用」を参照)、変数を使用して親テスト スイートのデータ ソースにアクセスできます。

変数は、ツール コンフィギュレーション パネル内でパラメーター値として使用できるほか (${env_name} という書式を使用します) 、com.parasoft.api.ExtensionToolContext.getValue(String) および setValue(String, String) を使用してスクリプト内で使用することもできます。  値は、string、 integer、 boolean 型です。

テストの実行中、テスト スイートで定義された変数は、そのテスト スイート内のすべてのテストから、およびそのテスト スイートの後に実行されたすべてのテストから見えます (テストが同じテスト スイート中にあるのか、あるいは子スイートまたは親スイートにあるのかは関係ありません)。たとえば、以下の構造のテスト スイートがあり、以下の順番でテストを実行するものとします。

テスト スイート A で定義されたテスト変数は、テスト スイート A、B、C 内のすべてのテストから見えます。一方、B で定義された変数が見えるのはテスト スイート B および C だけです。

変数の追加

  1. [追加] をクリックします。
  2. [名前] フィールドに新しい変数を入力します。
  3. [型] ボックスから [Integer]、 [Boolean]、 [String]、 または [Data Source] のいずれかを選択します。
  4. ローカルな値を使用するか、親テスト スイートの値を使用するかを指定します。
  5. (Data Source 型のみ) 適切な値が格納されているデータ ソースの名前と行を指定します。  データ ソースは親テスト スイート (現在のテスト スイートを参照するテスト スイート) に存在していなければなりません。
  6. [値] フィールドに変数の値を入力します。Data Bank ツール や Extension ツールに再設定されない限り、[ローカル値を使用] を選択すると変数は常に指定した値に設定されます。[親テスト スイートの値を使用] を選択した場合、ここで指定された値は、対応する値が親テスト スイートで見つからなかった場合にだけ使用されます。



  7. [OK] をクリックします。

変数の使用

変数を追加した後は、以下のような用途に使用できます。

スクリプト経由で変数とロジックを設定

テスト対象のサービスからのレスポンスに応じて、テスト スイート ロジックおよび変数を変更したいケースがよくあります。Extension ツールを使用すると、変数を設定してテスト フローの実行を制御することができます。たとえば、Test 1 が変数 x=3 を返した場合、Test 2 を実行するなどです。

TestSuiteVariable API を使用して変数にアクセスし、変数に値を設定したり、変数の値を取得することができます。  この値を使用してテスト フロー ロジックを構築できます。  詳細については Extensibility API Javadoc の com.parasoft.api Interface TestSuiteVariable を参照してください。Javadoc を参照するには、[Parasoft] メニューの [ヘルプ] をクリックし、[Parasoft SOAtest Extensibility API] を開きます。 

たとえば、Extension ツールに次のようなコードを入力して変数をセットできます。

from com.parasoft.api import Application

def setVar(input, context):
	context.setValue("x", input.toString())

TestSuiteVariable object x の値を取得するには、次のようなコードを入力します。

varValue = context.getValue("x")

varValue は string として返されます。

たとえば、テストに XML Transformer ツールを追加して特定の値を抽出します。その後、XML Transformer ツールの出力に Extension ツールを連結し、Transformer ツールの値を取得するスクリプトを記述します。最後に、最初のテストから適切な値が返された場合にだけ 2 つ目のテストを実行するよう設定できます。

変数の使用状況のモニタリング

実行時に実際に使用された変数を表示するには、コンソールの設定 ([Parasoft] > [設定] > [Parasoft] > [コンソール]) で 通常または高冗長レベルを選択します。

個々のテストが実行された後、実行時に使用された変数がコンソール ビュー ([ビューの表示] > [Parasoft] > [コンソール]) に表示されます。例:

Scenario: ICalculator
    Test 1: first add - success
        get x=0
        set x=10.0
        set Test 1: type=xsd:float
    Test 2: second add - success
        get x=10
        set x=20.0
    Test 3: third add - success
        get x=20      
        set x=30.0
    Test 1: first add - success
        get x=30
        set x=50.0
        set Test 1: type=xsd:float
    Test 2: second add - success
        get x=50
        set x=70.0
    Test 3: third add - success
        get x=70      
        set x=90.0

このような変数の参照は、発生した問題の原因を診断するのに役立ちます。

チュートリアル

変数の使用の詳細な手順については「再利用可能な (モジュラーな) テスト スイートの作成」を参照してください。

クライアント オプションの指定

[クライアント オプション] タブは以下のセクションに分かれています。

全般

以下の全般的なテスト スイート オプションを設定できます。

SOAP

以下の SOAP 関連のテスト スイート オプションを設定できます。

ブラウザー再生オプションの指定

[ブラウザー再生オプション] タブはいくつかのセクションに分かれています。

上記のオプションは、コマンドライン インターフェイスから実行したテストには適用されません。

コマンドライン モード (soatestcli を使用) では、Web シナリオはデフォルトでヘッドレス モードで実行されます。CLI から ヘッドレス モードで実行したくない場合は、soatestcli-browserTestsVisible を指定します (「コマンドラインからのテスト実行 (soatestcli)」の説明を参照)。

認証の設定

ベーシック、NTLM、ダイジェスト、および Kerberos 認証がサポートされており、このパネルで指定できます。ベーシック、NTLM、およびダイジェスト認証の場合はユーザー名およびパスワードを指定し、Kerberos 認証の場合はサービス プリンシパルを指定します。

大きく分けると 3 つの認証オプションがあります。

このテスト スイートに対して指定された認証情報をいつ適用するかを指定するには、認証を必要とするパスまたはレルムを指定します。複数のサーバーにアクセスするシナリオ内の 1 つのサーバーだけが認証を要求する場合、そのサーバーの使用するパスまたはレルムを指定できます。すると、指定されたパスまたはレルムに一致するリクエストにだけ認証が適用されます。たとえば、http://www.example.com/ というパスを入力すると、http://www.example.com/ で始まるリクエストにだけ指定された認証情報が使用されます。

すべてのリクエストに認証情報を適用する場合は、パスおよびレルムを空のままにしておきます。



シナリオが認証の方法が異なる複数のサーバーにアクセスする場合、複数の認証情報を入力できます。SOAtest はパスおよびレルムによって、リクエストに適用するべき認証スキームを判断します。

次のシナリオの場合、http://www.example.com で始まるリクエストには Digest 認証が適用されます。http://www.parasoft.com で始まるリクエストには Kerberos 認証が適用されます。



SOAtest は、初回のシナリオ記録時は、SOAtest の [セキュリティ] 設定画面で指定された認証情報を使用しようとすることに注意してください。記録中に認証情報が使用され、認証が成功した場合、その認証情報が [ブラウザー再生オプション] に記録されます。