Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from space FUNCTDEV and version SOAVIRT_9.10.8_CTP_3.1.4

...

Table of Contents
maxLevel1

変更アドバイザーとは

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

Info
iconfalse
title SOAtest をプラグインとしてインストール、または更新サイトからインストールした場合

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

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

ワークフロー

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

...

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

変更影響度分析

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

...

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

リファクタリング

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

  • テスト単位またはレスポンダー単位
  •  選択されたテストまたはレスポンダ
  • スイート中のすべての適用可能なテストまたはレスポンダー
  • スイート中のすべてのテストまたはレスポンダー

変更テンプレートの定義

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

...




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

変更の範囲

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

以下のセクションを参照してください:

変更アドバイザーの UI

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

...

  • 標準のアセット エクスプローラー: どのアセットを分析するか、またはリファクタリングするかを選択します。
  • ツールバーボタン: 次の 3 つのボタンが追加されています。[実行] ボタン (アセットが適切にリファクタリングされたかを確認するために、変更影響度分析を再実行するために使用)、[変更影響度分析の実行] ボタン (後で説明)、および [変更テンプレートを使用してリファクタリング] ボタン (後で説明) です。

  • [サービス カタログ] ビュー: 各サービスの各バージョンの情報、および、あるバージョンのサービス構成と他のバージョンのサービス構成との比較を定義する「変更テンプレート」を格納します。
  • [プロパティ] ビュー:  変更テンプレート エディターで選択されたアイテムの詳細を表示します。
  • [変更影響度分析の進捗] ビュー: 変更影響度分析の進捗と結果をレポートします。
  • [品質タスク] ビュー: 変更影響度をレビューし、利用可能な変更テンプレートを使用して関連するツールをリファクタリングできます。

Anchor
Identifying Changes with Change Impact Analysis
Identifying Changes with Change Impact Analysis
変更影響度分析で変更を確認

変更影響度分析について

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

...

  • サービスに変更があったと疑われる場合、変更アドバイザーから変更影響度分析を実行し、何が変更されたかを識別します。そして、変更に対処するために必要な更新のスコープや性質を確認します。
  • 変更を予期していない場合、通常のテスト実行と一緒に変更影響度分析を実行します。テストが失敗した場合、失敗がサービスの変更に関係しているか即座に確認できます。

変更影響度分析の実行

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

...

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

分析結果の参照

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

...



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

変更影響度の検索

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

...

  • 変更影響度メッセージを右クリックし、[テスト ケース エクスプローラーでソースを表示] をクリックします。

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

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

...

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

Anchor
Defining a Change Template
Defining a Change Template
変更テンプレートの定義

変更テンプレートの作成

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

...

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

  1. 変更影響度分析をまだ実行していない場合は、「変更影響度分析で変更を確認」に従って実行します。
  2. [サービス カタログ] ビューは変更のあったサービスを表示します。また、古いサービス定義と現在のサービス定義の「バージョン」を含みます。
    • カタログにサービスを追加するには、[サービス カタログ] ビューで右クリックをし、[カタログにサービスを追加] をクリックします。表示されたダイアログの項目 (選択した成果物のタイプによって異なります) を入力し、[終了] をクリックします。
    • カタログにバージョンを追加するには、関連するサービスを右クリックして [カタログにバージョンを追加] を選択し、バージョンの詳細を指定します。
    • サービスまたはバージョンの名前を変更するには、サービス カタログ ノードを右クリックし、適切な 名前の変更 コマンドを選択します。ここで指定した名前は、[変更テンプレートを使用してリファクタリング] ウィザードで使用されます。

      Info
      iconfalse
      titleサービス カタログに 2 つの操作ノードがある理由

      SOAtest と Virtualize の両方をインストールしている場合、 [操作] ノードは 2 つのノードに分けられています。

      クライアント ビュー: SOAtest メッセージング クライアント用です (リクエスト パラメーターをカバーしています)。

      レスポンダー ビュー: Virtualize メッセージ レスポンダー用です (レスポンダー パラメーターをカバーしています)。

  3. 次のいずれかを実施します。
    • [ファイル] > [新規] > [変更テンプレート] を選択します。
    • サービス カタログで、元のバージョンのノードと新しいバージョンのノードを選択し、右クリックします。適切な [変更テンプレートの追加] オプションを選択します。
    • サービス カタログで、元のバージョンの 変更テンプレート ノードを右クリックし、[変更テンプレートの追加] をクリックします。
  4. ウィザードで以下の操作を行います。
    1. 変更テンプレートの基本情報を指定します。
      • SOAtest と Virtualize の両方をインストールしている場合、クライアントやレスポンダー用の変更テンプレートを作成するオプションが表示されます。SOAtest メッセージング クライアント ツールのリクエストの更新方法を変更テンプレートに定義させる場合、[クライアント] を選択します。Virtualize メッセージ レスポンダー ツールのレスポンスの更新方法を変更テンプレートに定義させる場合、[レスポンダー] を選択します。
    2. [次へ] をクリックします。
    3. 作成する変更テンプレートのファイル名と場所を指定します。
    4. [終了] をクリックします。

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

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

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

...

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

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

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

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

 

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

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

アイコン説明

すべて

任意の型

属性

選択肢

複合型

要素

列挙型

操作

シーケンス

単純型

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

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

アイコン説明

任意の型

配列

配列のアイテム

Boolean

列挙型

列挙型の値

Integer/数値

アイテムのコンテナ

Null

オブジェクト

オブジェクト プロパティ

選択肢

プロパティのコンテナ

String

変更テンプレートの共有

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

チュートリアル

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