このセクションでは、SOAtest/Virtualize で Parasoft 変更アドバイザーを使用する方法について説明します。テスト資産またはサービス仮想アセットが送信するリクエスト/レスポンス メッセージの更新方法について説明します。

このセクションの内容:

変更アドバイザーとは

変更アドバイザーは、サービスの変更によって、既存のテスト 資産またはサービスの仮想アセットから送信されるメッセージがどのような影響を受けるかを自動的に識別します。たとえば、名前変更の操作、要素や型の追加、名前空間の変更などです。また、既存のテスト スイートの更新や新規のテスト スイートの作成のために、影響のあったツールを個別にまたはまとめて、変更テンプレートに基づいて自動でリファクタリングします。変更テンプレートは、「元の定義の要素/操作/リソースとスキーマ」が「現在の定義の要素/操作/リソースとスキーマ」にどのように関連するかを表す自動定義されたマッピングをレビューおよび改良することで作成されます。これによって、ユーザーはできる限り早く、正確に、そしてインテリジェントにテスト資産を更新できます。

変更アドバイザーは、 EMF Compare と呼ばれる Eclipse プラグインに依存します。  このプラグインは、SOAtest をフル インストールした場合には一緒にインストールされます。しかし、SOAtest を更新サイトやプラグイン インストーラーからインストールした場合には一緒にインストールされません。 

EMF Compare プラグインは Eclipse の更新サイトを使用してインストールできます。更新サイトの URL はこちらです:https://archive.eclipse.org/modeling/emf/compare/updates/releases/2.0

ワークフロー

サービスが変更されたと推測される場合の一般的なワークフローは、以下のとおりです。

  1. [Parasoft 変更アドバイザー] パースペクティブから変更影響度分析を実行します。
  2. 変更テンプレートを作成します。
  3. 変更テンプレートを適用し、既存のテスト スイートを更新するか、新規テスト スイートを作成します。変更テンプレートの適用方法は 2 通りあります。 1 つは、変更影響度分析でレポートされた特定の変更影響度を解決するために、ケース バイ ケースで適用します。もう 1 つは、プロジェクトやスイート中で影響があったすべてのツールを早急に更新するために、バッチのリファクタリングに適用します。

SOAtest は、予期しないサービスの変更が起こると直ちにそれをキャッチできます: 

  1. テスト実行時に変更影響度分析を実施する、テスト実行用のテスト コンフィギュレーションを更新します。
  2. 変更の影響がレポートされた場合:
    1. 変更テンプレートを作成します。
    2. 変更テンプレートを適用し、既存のテスト スイートを更新するか、新規テスト スイートを作成します。変更テンプレートの適用方法は 2 通りあります。 1 つは、変更影響度分析でレポートされた特定の変更影響度を解決するために、ケース バイ ケースで適用します。もう 1 つは、プロジェクトやスイート中で影響があったすべてのツールを早急に更新するために、バッチのリファクタリングに適用します。

変更影響度分析

変更影響度分析が実行されるとき、変更アドバイザーはどのようにアセットのメッセージが関連する定義ファイル (例: OpenAPI/Swagger、RAML、WADL、WSDL、スキーマ) の変更による影響を受けたかをレポートします。次のいずれかを分析します。 

この分析結果は、アセットのメッセージの更新に必要な変更のスコープや性質を評価しやすくします。

リファクタリング

更新の対象が明確になったら、変更テンプレートを適用して、変更されたサービス定義に合うようにメッセージを自動的にリファクタリングできます。このリファクタリングは、色々な方法で適用できます。 

変更テンプレートの定義

変更テンプレートはサービス カタログから自動生成されます。サービス カタログは変更影響度分析の実行中にデータ投入されます。

変更テンプレートを作成したら、自動定義されたマッピングをレビューして調整することを推奨します。自動定義されたマッピングは、元の定義の要素/操作/リソース/スキーマが現在の定義のものとどのように関係するかを表します。 

自動定義されたマッピングのレビューや更新は、変更テンプレート エディターでグラフィカルに実施されます。




生成した変更テンプレートは、(変更影響度分析でレポートされた特定の変更影響度を解決するために) ケース バイ ケースで適用するだけでなく、(プロジェクトやスイート中で影響があったすべてのツールを早急に更新するために) バッチのリファクタリングで適用できます。

変更の範囲

SOAtest では、SOAP Client、 REST Client、 EDI Client、 Fixed Length Client、 Message Stub といったメッセージング ツール変更アドバイザーを適用できます。Virtualize ではメッセージ レスポンダーにも適用できます。ツールが WSDL または スキーマに従うよう設定されている場合、またはサービス定義に OpenAPI/Swagger、RAML、または WADL (SOAtest) が指定されている場合、変更アドバイザーはフォーム入力を介して指定されたメッセージに作用します。サービス定義に OpenAPI/Swagger、RAML、または WADL が指定されている場合、変更アドバイザーはフォーム JSON を介して指定されたメッセージに作用します。 ツールのメッセージがサポート外のフォーマットで指定されていた場合、そのメッセージは分析やリファクタリングの際にスキップされます。サポート外のフォーマットの値、メッセージ以外のフィールドの値、または変更アドバイザーがサポートしていないツールの値を更新するには、Parasoft の「検索と置換」を使用します「検索と置換を使用してツールの値を更新」を参照してください。

要素の並び替えや型の変更など、定義ファイルの簡単な変更は、SOAtest が自動的に更新します。

変更アドバイザーの UI

[変更アドバイザー] パースペクティブは、変更影響度を識別し、対処するために明確に設計されています。 

[変更アドバイザー] パースペクティブを開くには、次の操作を行います。

このパースペクティブは次の要素から構成されています:

変更影響度分析で変更を確認

変更影響度分析について

変更影響度分析は、ツールのメッセージを作成するのに元々使用していたサービス定義を、次のいずれかと比較します。 

変更影響度分析は、ユーザーが分析しているツールに関係のある変更だけをレポートします。たとえば、ツールで使われることのなかったオプション要素がサービスから除外された場合、変更影響度にはレポートされません。

SOAtest での変更影響度分析の実行の一般的な使用事例は、次のとおりです。

変更アドバイザーからの変更影響度分析の実行

変更アドバイザーから変更影響度分析を実行するには、次の操作を行います。

  1. [エクスプローラー] で、分析するアセットを指定します。個別のツール、スイート、プロジェクトを選択できます。SOAtest と Virtualize の両方がインストールされている場合、.tst ファイルまたは .pva ファイルのいずれかを選択します。
  2. 変更アドバイザーのツールバーで、[変更影響度分析の実行] ボタンをクリックします。
  3. [変更影響度分析の実行] ダイアログで、次の項目を入力します。

たとえば、3 つの異なるサービス定義に基づいたアセットを含むスイートを選択したものとします。[現在のサービス記述に対して選択されたアセットをスキャン] オプションを使用した分析では、これらのすべてのアセットを、対応するサービス定義の現在のバージョンに対して比較します。[指定されたサービス記述に対して選択されたアセットをスキャン] を選択し、それらのアセットで使用される 3 つのサービス定義のうち 1 つの既存および更新バージョンの場所を指定すると、その指定されたサービス記述を使用するアセットだけが分析されます。他の 2 つの定義に基づくアセットは分析されません。


通常のテスト実行中での変更影響度分析の実行

通常のテスト実行中に変更影響度分析を実行すると、サービスの変更を反映するためにテストを更新する必要がある時を特定するのに役立ちます。通常のテスト実行中に変更影響度分析を実行するには (現行バージョンのアセットの既存のサービス定義に対して):

  1. 変更影響度分析を実行するように、任意の実行用テスト コンフィギュレーションを構成します。 変更影響度分析の有効/無効は、[実行] > [変更影響度] タブで設定できます。



  2. ユーザー インターフェイスまたはコマンドライン インターフェイスを使用して、そのテスト コンフィギュレーションでテストを実行します。

分析結果の参照

変更影響度分析を実行すると、分析の進捗が [進捗] ビューおよび [コンソール] ビューに表示されます。アセットが「スキップ」されたと表示された場合、サポートされている形式 (たとえばフォーム入力など) で指定されたメッセージがないことを示します。

分析の結果は [品質タスク] ビューにレポートされます。変更の影響をレビューするために、変更インパクト レイアウトが用意されています。[品質タスク] ビューがこのレイアウトではない場合、ビューのツールバーで [変更インパクト レイアウト] をクリックして有効にできます。

 

 ビューのドロップ ダウン メニューからもこのレイアウトを開くことができます。
 



分析結果は、サービス、スイート/場所、変更のタイプから構成されています。 

[品質タスク] ビューに加えて、分析結果は関連する HTML レポートで報告されます。ただし、テスト結果が DTP にアップロードされる場合、変更影響度分析の結果は表示されないことに注意してください。

変更影響度の検索

メッセージを更新する必要があるツールを開くには、次の操作を行います。

プロジェクト内のツールの場所を確認するには、次の操作を行います:

変更テンプレートを使用してリファクタリング

変更テンプレートは、 「Defining a Change Template」で説明するように作成されます。変更テンプレートは 2 つの方法で適用できます。

変更テンプレートを適用するには、次の操作を行います:

  1. 次のいずれかの方法でリファクタリング ウィザードを開きます:
  2. ウィザードの最初のページで必要項目を記入し、[次へ] をクリックします。
  3. ウィザードの 2 ページ目で、更新したアセットの保存先を指定します。デフォルトでは、更新したアセットは新しい場所に保存します。そのため、元のアセットを上書きするのではなく、新しいテストまたはレスポンダーのセットが作成されます。


     

     

リファクタリングは、変更テンプレートの定義に従ってメッセージを更新します。取り除かれた操作のツールは無効になりますが、削除はされません。

変更テンプレートの定義

変更テンプレートの作成

変更テンプレートは要素/操作/リソース/スキーマ (XML または JSON) を、あるサービスのバージョンから別のバージョンへどのようにマッピングするかを指定します。変更テンプレートを定義したら、適用してサービスの変更によって影響を受けたアセットを更新できます。変更影響度分析後にレポートされた特定の変更影響度に対処するために、あるいは選択したツール、スイート、プロジェクトに一括更新を実行するために適用できます。たとえば、変更テンプレートで FundPrepaid が FundPrepaidRequest へマッピングされた場合、この変更テンプレートを適用すると選択したツールのメッセージで FundPrepaid が FundPrepaidRequest に更新されます。

変更テンプレートは、[Parasoft 変更アドバイザー] パースペクティブから作成、レビュー、修正します。

変更テンプレートを作成するには、以下の操作を行います。

  1. 変更影響度分析をまだ実行していない場合は、「Identifying Changes with Change Impact Analysis」に従って実行します。
  2. [サービス カタログ] ビューは変更のあったサービスを表示します。また、古いサービス定義と現在のサービス定義の「バージョン」を含みます。
  3. 次のいずれかを実施します。
  4. ウィザードで以下の操作を行います。
    1. 変更テンプレートの基本情報を指定します。
      • SOAtest と Virtualize の両方をインストールしている場合、クライアントやレスポンダー用の変更テンプレートを作成するオプションが表示されます。SOAtest メッセージング クライアント ツールのリクエストの更新方法を変更テンプレートに定義させる場合、[クライアント] を選択します。Virtualize メッセージ レスポンダー ツールのレスポンスの更新方法を変更テンプレートに定義させる場合、[レスポンダー] を選択します。
    2. [次へ] をクリックします。
    3. 作成する変更テンプレートのファイル名と場所を指定します。
    4. [終了] をクリックします。

変更テンプレートが作成され、[変更テンプレート エディター] に表示されます。

変更テンプレートの参照と変更

変更テンプレートは、Parasoft の経験値に基づいて、要素/操作/リソース/スキーマを元のサービス定義から新しいサービス定義へ自動的にマッピングします。

要素/操作/リソースは [マップ要素/操作/リソース] タブにマッピングされます。 


各要素のスキーマは [スキーマのマップ] タブにマッピングされます。

 

 マッピングをレビューする際、エディターの上部にあるフィルターを使用できます。フィルターは [可能性の高い一致]、[レビューが必要な一致]、[一致しない] に絞り込むことができます。 



変更テンプレートをレビューする際、次の操作を実行できます。 

目的操作
マッピングされていない 2 つのアイテムが相関関係にあることを指定する。両方のアイテムを選択し、[接続] をクリックする。
マッピングされた 2 つのアイテムは相関関係にないことを指定する。両方のアイテムを選択し、[切断] をクリックする。
一致のないアイテムのデフォルト値を指定する。アイテムを右クリックし、[追加された<アイテム名>にデフォルト値を設定] をクリックする。ダイアログに適切な値を入力する。 
「レビューが必要な一致」のレビューが完了したことを 指示する (黄色のマッピングを緑色に変更する)。マップを右クリックし、[<マップ>をレビュー済みとしてマーク] または [<マップ>および子をレビュー済みとしてマーク] をクリックする。
一致のないアイテムのレビューが完了したことを指示する。

要素を右クリックし、[<アイテム名>をレビュー済みとしてマーク] または [<アイテム名>および子をレビュー済みとしてマーク] をクリックする。

マッピング中にプロパティを確認

要素/操作/リソース/スキーマをマッピングする際、[プロパティ] ビューでマッピングするアイテムの詳細を参照できます。例:

 

XML 用変更テンプレートのアイコン説明

変更テンプレート エディターでは、次のアイコンが XML アイテムのマークとして使用されます。

アイコン説明

すべて

任意の型

属性

選択肢

複合型

要素

列挙型

操作

シーケンス

単純型

JSON 用変更テンプレートのアイコン説明

変更テンプレート エディターでは、次のアイコンが JSON アイテムのマークとして使用されます。

アイコン説明

任意の型

配列

配列のアイテム

Boolean

列挙型

列挙型の値

Integer/数値

アイテムのコンテナ

Null

オブジェクト

オブジェクト プロパティ

選択肢

プロパティのコンテナ

String

変更テンプレートの共有

チームで変更テンプレートを共有する場合、テンプレートを含むプロジェクトを共有するか、ワークスペース間でテンプレートをコピーします。 

チュートリアル

変更アドバイザーの使用に関するチュートリアルについては「サービスの変更に合わせたテストの更新」を参照してください。