(57)【要約】【課題】２つのパケットキャプチャーファイルを比較検証する技術を提供する。【解決手段】期待値のパケットキャプチャーファイルを読込み、メッセージテーブルと内容テーブルとを作成し、試験対象のパケットキャプチャーファイルを読込み、メッセージテーブルと内容テーブルとに読み込み、メッセージテーブルと内容テーブルとに基づいて、メッセージシーケンスとメッセージの構成とメッセージの値とを比較するパケットキャプチャーファイル比較方法およびプログラムにより、達成できる。【選択図】図５
2014150445.tif 000002
【特許請求の範囲】
【請求項１】
期待値パケットキャプチャーファイルを読み込むステップと、
前記期待値パケットキャプチャーファイルに基づいて、送信元名称と送信先名称と第１の期待値フレーム番号と期待値メッセージと第１の試験フレーム番号と試験メッセージとを含むメッセージテーブルの、前記送信元名称と前記送信先名称と前記第１の期待値フレーム番号と前記期待値メッセージとを記載するステップと、
前記期待値パケットキャプチャーファイルに基づいて、第２の期待値フレーム番号と期待値と第２の試験フレーム番号と試験値とを含む内容テーブルの、前記第２の期待値フレーム番号と前記期待値とを記載するステップと、
試験対象パケットキャプチャーファイルを読み込むステップと、
前記試験対象パケットキャプチャーファイルに基づいて、前記メッセージテーブルの、前記第１の試験フレーム番号と前記試験メッセージとを記載するステップと、
前記試験対象パケットキャプチャーファイルに基づいて、前記内容テーブルの、前記第２の試験フレーム番号と前記試験値とを記載するステップと、
前記メッセージテーブルと前記内容テーブルとに基づいて、メッセージシーケンスとメッセージの構成とメッセージの値とを比較するステップと、
を含むパケットキャプチャーファイル比較方法。
【請求項２】
請求項１に記載のパケットキャプチャーファイル比較方法であって、
前記内容テーブルは、さらにフィールド識別子を含み、
比較実行を行うフィールド識別子を指定することを特徴とするパケットキャプチャーファイル比較方法。
【請求項３】
請求項１に記載のパケットキャプチャーファイル比較方法であって、
前記内容テーブルは、さらにフィールド識別子を含み、
比較実行を行わないフィールド識別子を指定することを特徴とするパケットキャプチャーファイル比較方法。
【請求項４】
請求項１に記載のパケットキャプチャーファイル比較方法であって、
前記比較するステップにおいて、
前記メッセージテーブルで前記第１の期待値フレーム番号と前記第１の試験フレーム番号とを対応付けて、メッセージの漏れとメッセージの過多とを検出することを特徴とするパケットキャプチャーファイル比較方法。
【請求項５】
コンピュータを
期待値パケットキャプチャーファイルを読み込む手段、
前記期待値パケットキャプチャーファイルに基づいて、送信元名称と送信先名称と第１の期待値フレーム番号と期待値メッセージと第１の試験フレーム番号と試験メッセージとを含むメッセージテーブルの、前記送信元名称と前記送信先名称と前記第１の期待値フレーム番号と前記期待値メッセージとを記載する手段、
前記期待値パケットキャプチャーファイルに基づいて、第２の期待値フレーム番号と期待値と第２の試験フレーム番号と試験値とを含む内容テーブルの、前記第２の期待値フレーム番号と前記期待値とを記載する手段、
試験対象パケットキャプチャーファイルを読み込む手段、
前記試験対象パケットキャプチャーファイルに基づいて、前記メッセージテーブルの、前記第１の試験フレーム番号と前記試験メッセージとを記載する手段、
前記試験対象パケットキャプチャーファイルに基づいて、前記内容テーブルの、前記第２の試験フレーム番号と前記試験値とを記載する手段、
前記メッセージテーブルと前記内容テーブルとに基づいて、メッセージシーケンスとメッセージの構成とメッセージの値とを比較する手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットキャプチャーファイル比較方法およびプログラムに係り、特に試験対象のパケットキャプチャーファイルを期待値パケットキャプチャーファイルと比較するパケットキャプチャーファイル比較方法およびプログラムに関する。
【背景技術】
【０００２】
通信装置において、修正した通信ソフトウェアの呼処理機能が修正前と同じ動作をしているかのレグレッション確認テストを行う。この確認テストは、所定のテスト項目を疑似呼装置から実行して行う。疑似呼装置と直接接続しているインタフェースは、疑似呼装置でも受信メッセージが正しいか確認が可能である。しかし、試験対象装置から別の装置に接続している場合、疑似呼装置は、直接確認ができない。この為、パケットキャプチャー装置を使用してネットワーク全体のパケットキャプチャーファイルをテスト項目単位で取得して、人が内容を確認する。このパケットキャプチャーファイルは、オープンソースのキャプチャー解析ツールまたは専用のキャプチャー取得装置などにより取得する。
【０００３】
パケットキャプチャーファイルの比較は、一般的に以下の方法が行われている。
（１）オープンソースのキャプチャー解析ツールのＧＵＩ画面を２画面開いてチェックしたい部分だけを見比べる。
（２）キャプチャー解析ツールで詳細解析を出力したテキストファイルを、テキスト比較プログラムでテキスト比較する。
【０００４】
前者のＧＵＩで画面を見てのチェックは、データを一個一個選びながら行う為時間がかかり、チェック漏れが起き易い。後者のテキストでの比較は、時刻、チェックサム、シーケンス番号の様に毎回変化するフィールドもあるので、全てのフィールドが完全には一致しない。したがって、その部分を飛ばしながら見る必要がある。そのために、（ａ）テキスト編集ツール等でキーワードを指定して一致するキーワードがある行を削除してから比較する方法、（ｂ）キーワードを指定して一致するキーワードがある行を抽出してから比較する方法がある。
【０００５】
特許文献１は、コンピュータとプリンタの間の通信を通信シーケンスと送受信データに分離して通信環境に依存する部分を特定の文字列に置き換えて比較することを開示する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−２５８４９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１では、通信メッセージの定義を行ってバイナリファイルから解析するプログラムを作成している。しかし、大規模な通信システムでは、通信するプロトコル数も多く、メッセージも複雑であり、データ作成工数が肥大化する。また、既にキャプチャー解析ツールがある場合、そのツールを活用して利用する方が効率が良い。
【０００８】
特許文献１では、ＩＰアドレス、ＭＡＣアドレス、ポート番号等の通信環境に依存するパラメータを定義するとしている。しかし、ＬＴＥ／ＳＡＥ（Long Term Evolution/System Architecture Evolution）システムのように多数のインタフェース内に変動部分が大量にある場合、パラメータ定義も大量に作成する必要がある。さらに、使用する通信プロトコルが変更になった場合、パラメータ定義の修正が必要になる。
【０００９】
具体的には、ＬＴＥ／ＳＡＥ環境のレグレッション確認テストは、十以上の装置を連結して一回の呼処理テスト項目でメッセージ数約百個、合計フィールド数約数千個を数十テスト項目行う。この為、データ作成量が非常に多くなる。
【００１０】
端末加入者識別コード、具体的には、ＩＭＳＩ（International Mobile Subscriber Identity）は、２つのパケットキャプチャーファイルで値が同じ場合は一致するか比較し、毎回異なる場合は比較しないような設定変更が容易ではない。
【００１１】
また、
（１）メッセージシーケンスを比較して過不足をチェックする
（２）対応させたメッセージ内のフィールドの過不足をチェックする
（３）対応させたフィールドの値が同じかを比較する
のチェックを実現できるか、特許文献１から明確に判断できない。また、無人により自動検証ができるかどうかも、特許文献１から判断できない。
【００１２】
テキスト編集処理で変動する部分を削除してから比較する方法では、現実には変化する部分が多い為この削除処理が大きくなる。さらに、比較したい部分のみを抽出してから比較する方法には、比較する部分が多いと抽出処理が大きくなるという問題がある。
【００１３】
これらのテキスト比較の方法では結果が全く同じか違うかはわかるが、何か所、どのように違うかの詳細はわからない。
テキストで比較する為には、目的以外の余計なプロトコルが少しでも入っていると比較箇所がずれてしまう為、必要なプロトコルだけにフィルターして行う必要がある。
【００１４】
本発明は、上記のような問題点を解決するためになされたもので、キャプチャー解析ツールの出力した解析結果を入力とする。この為、一度プログラムを作成しておけばプロトコルの追加やプロトコル仕様変更にも容易に対応可能で、比較するフィールド識別子を最初に一回決めて指定することで通信環境に依存するパラメータを定義しなくてもよく、その変更も容易である。本発明は、パケットキャプチャーファイルを比較検証して、バッチ処理によって自動検証も可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【００１５】
試験対象のパケットキャプチャーファイルを期待値キャプチャーファイルと比較することで、特にチェックの為に別のデータを用意する必要は無い。全フィールドを比較すると同じにはならない為、比較するフィールドをコンフィグレーション設定で選べるようにする。このコンフィグレーションは、そのテスト環境で一度決めておけば、全部のテストで共通に使用できる。
【００１６】
上述した課題は、期待値パケットキャプチャーファイルを読み込むステップと、期待値パケットキャプチャーファイルに基づいて、送信元名称と送信先名称と第１の期待値フレーム番号と期待値メッセージと第１の試験フレーム番号と試験メッセージとを含むメッセージテーブルの、送信元名称と送信先名称と第１の期待値フレーム番号と期待値メッセージとを記載するステップと、期待値パケットキャプチャーファイルに基づいて、第２の期待値フレーム番号と期待値と第２の試験フレーム番号と試験値とを含む内容テーブルの、第２の期待値フレーム番号と期待値とを記載するステップと、試験対象パケットキャプチャーファイルを読み込むステップと、
試験対象パケットキャプチャーファイルに基づいて、メッセージテーブルの、第１の試験フレーム番号と試験メッセージとを記載するステップと、試験対象パケットキャプチャーファイルに基づいて、内容テーブルの、第２の試験フレーム番号と試験値とを記載するステップと、メッセージテーブルと内容テーブルとに基づいて、メッセージシーケンスとメッセージの構成とメッセージの値とを比較するステップと、を含むパケットキャプチャーファイル比較方法により、解決できる。
【００１７】
また、コンピュータを期待値パケットキャプチャーファイルを読み込む手段、期待値パケットキャプチャーファイルに基づいて、送信元名称と送信先名称と第１の期待値フレーム番号と期待値メッセージと第１の試験フレーム番号と試験メッセージとを含むメッセージテーブルの、送信元名称と送信先名称と第１の期待値フレーム番号と期待値メッセージとを記載する手段、期待値パケットキャプチャーファイルに基づいて、第２の期待値フレーム番号と期待値と第２の試験フレーム番号と試験値とを含む内容テーブルの、第２の期待値フレーム番号と期待値とを記載する手段、試験対象パケットキャプチャーファイルを読み込む手段、試験対象パケットキャプチャーファイルに基づいて、メッセージテーブルの、第１の試験フレーム番号と試験メッセージとを記載する手段、試験対象パケットキャプチャーファイルに基づいて、内容テーブルの、第２の試験フレーム番号と試験値とを記載する手段、メッセージテーブルと内容テーブルとに基づいて、メッセージシーケンスとメッセージの構成とメッセージの値とを比較する手段、として機能させるためのプログラムにより、達成できる。
【発明の効果】
【００１８】
本発明に依れば、極めて高速に２つのパケットキャプチャーファイルを比較して差分を検出できる。
【図面の簡単な説明】
【００１９】
【図１】メッセージシーケンスの比較を説明する図（その１）である。
【図２】メッセージシーケンスの比較を説明する図（その２）である。
【図３】メッセージのフィールド内容の比較を説明する図（その１）である。
【図４】メッセージのフィールド内容の比較を説明する図（その２）である。
【図５】パケット比較装置のブロック図である。
【図６】パケット比較装置のハードウェアブロック図である。
【図７】パケット比較装置の処理を説明するフローチャートである。
【図８】１パケット分の解析ＸＭＬファイル（抜粋）を説明する図である。
【図９】比較アルゴリズムの機能ブロック図である。
【図１０】テーブルの構成を説明する図である。
【図１１】比較フィールドテーブル作成のフローチャートである。
【図１２】メッセージテーブル作成のフローチャートである。
【図１３】メッセージ情報収集処理のフローチャートである。
【図１４】内容テーブル作成のフローチャートである。
【図１５】比較実行決定処理のフローチャートである。
【図１６】メッセージ比較処理のフローチャートである。
【図１７】メッセージテーブル検索のフローチャートである。
【図１８】メッセージテーブル後処理のフローチャートである。
【図１９】内容比較処理のフローチャートである。
【図２０】内容テーブル検索のフローチャートである。
【図２１】期待値フレームＮｏ検索のフローチャートである。
【図２２】内容テーブル後処理のフローチャートである。
【図２３】試験フレームＮｏ検索のフローチャートである。
【図２４】メッセージテーブルを説明する図（その１）である。
【図２５】メッセージテーブルを説明する図（その２）である。
【図２６】メッセージテーブルを説明する図（その３）である。
【図２７】内容テーブルを説明する図（その１）である。
【図２８】内容テーブルを説明する図（その２）である。
【図２９】内容テーブルを説明する図（その３）である。
【図３０】内容テーブルを説明する図（その４）である。
【図３１】内容テーブルを説明する図（その５）である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施の形態について、実施例を用い図面を参照しながら詳細に説明する。なお、実質同一部位には同じ参照番号を振り、説明は繰り返さない。
【実施例１】
【００２１】
本実施例では、パケットの確認の手段として、取得したパケットキャプチャーファイルを成功している時の期待値のパケットキャプチャーファイルと比較して、差分を探す方法を採る。
【００２２】
比較する項目としては、
（１）メッセージシーケンスが一致しているか
（２）それぞれのメッセージ内容のフィールド構成が一致しているか
（３）フィールドの中の値が一致しているか
の３つの観点のチェックを行えば十分である。
【００２３】
ここで、フィールド構成とは、（ａ）情報要素が期待値パケットキャプチャーファイルにあって試験対象にはない、（ｂ）逆に余計な情報要素がある、を言う。
以下パケットキャプチャーファイルをキャプチャーファイルと略す場合がある。
【００２４】
図１から図４のテスト環境では、最初にトリガとなるメッセージの送信を実行するＮｏｄｅ−Ａは、疑似呼装置であり、テストシナリオによって、疑似呼装置から送信するメッセージを変化させていく。レグレッション確認テストの対象は、Ｎｏｄｅ−Ｂであり、Ｎｏｄｅ−Ａ、Ｎｏｄｅ−Ｃはテスト前後で変更しない。以降、Ｎｏｄｅ−Ｂのソフトウェアを修正する度に、疑似呼装置からテストシナリオを実行する。
【００２５】
図１と図２を参照して、メッセージシーケンスの比較を説明する。図１と図２において、Ｎｏｄｅ−Ａ、Ｎｏｄｅ−Ｂ、Ｎｏｄｅ−Ｃは、テストシナリオＡを実行する。パケットキャプチャー装置３００は、テストＡ試験対象キャプチャーファイルを取得する。パケットキャプチャー装置３００は、テストＡ試験対象キャプチャーファイルをパケット比較装置５００に送信する。パケット比較装置５００は、受信したテストＡ試験対象キャプチャーファイルを、テストＡ期待値キャプチャーファイルと比較する。
【００２６】
図１において、パケット比較装置５００が保持するテストＡ期待値キャプチャーファイルは、メッセージシーケンスの正解となるファイルである。キャプチャーファイルＡ（４月１日）は、テストＡ期待値キャプチャーファイルと同じメッセージシーケンスである為、成功である。一方、キャプチャーファイルＡ（５月１日）は、メッセージが不足している。キャプチャーファイルＡ（５月１日）は、テストＡ期待値キャプチャーファイルにあるメッセージＭＳＧ１ＢＡが存在しない為、失敗である。
【００２７】
図２において、キャプチャーファイルＡ（６月１日）は、期待しないメッセージがある。キャプチャーファイルＡ（６月１日）は、テストＡ期待値キャプチャーファイルにないメッセージＭＳＧ２ＢＣ’が存在する為、失敗である。
【００２８】
図３と図４を参照して、メッセージのフィールド内容の比較を説明する。図３と図４において、Ｎｏｄｅ−Ａ、Ｎｏｄｅ−Ｂ、Ｎｏｄｅ−Ｃは、テストシナリオＢを実行する。パケットキャプチャー装置３００は、テストＢ試験対象キャプチャーファイルを取得する。パケット比較装置５００は、テストＢ試験対象キャプチャーファイルを、テストＢ期待値キャプチャーファイルと比較する。
【００２９】
図３において、キャプチャーファイルＢ（３月１日）は、フィールド構成と値の正解となる期待値ファイルである。キャプチャーファイルＢ（４月１日）は、テストＢ期待値キャプチャーファイルと同じフィールド構成で、値が同じである為、成功である。キャプチャーファイル（５月１日）は、テストＢ期待値キャプチャーファイルと同じフィールド構成で、値が異なっている。キャプチャーファイルＢ（５月１日）は、フィールドＦ２２の値が期待値ではＶ２２だが、Ｘ２２となっている為、失敗である。キャプチャーファイルＢ（６月１日）は、フィールドが不足している。キャプチャーファイルＢ（６月１日）は、期待値キャプチャーファイルのメッセージＭＳＧ２ＢＣにあるフィールドＦ２２が存在しない為、失敗である。
【００３０】
図４において、キャプチャーファイルＢ（７月１日）は、期待しないフィールドがある。キャプチャーファイルＢ（７月１日）は、メッセージＭＳＧ２ＢＣに期待値キャプチャーファイルにはないフィールドＦ２３が存在する為、失敗である。
【００３１】
このようなパケットキャプチャーファイルの比較を、自動的に実現する方法を以下に述べる。
基準にする期待値のキャプチャーファイルと、試験対象のキャプチャーファイルの２個のキャプチャーファイルを用意する。
【００３２】
また、比較処理は大きくメッセージ比較と内容比較の二段階に分けて行う。
（１）メッセージ比較
メッセージ比較ではパケットデータを以下のデータ構成のメッセージテーブル上で処理する。
［送信元ノード，送信先ノード，期待メッセージ，試験メッセージ，比較結果，期待値フレームＮｏ，試験フレームＮｏ］
最初に期待値キャプチャーファイルを読込んで、該当のプロトコルについて、メッセージテーブルを用意する。
［送信元ノード，送信先ノード，期待値フレームＮｏ，期待値メッセージ］
を設定する。
【００３３】
次に試験対象のキャプチャーファイルを読込んで、
［送信元ノード，送信先ノード，期待値メッセージ］
でメッセージテーブルを検索し、同じデータがあった場合は、そのメッセージの比較結果は成功とし、試験フレームＮｏにフレームＮｏを書く。
【００３４】
メッセージテーブルを検索して無い場合は、試験対象キャプチャーファイルだけにあるメッセージとなり、メッセージテーブルに追加して比較結果は失敗とする。
最後にメッセージテーブルの比較結果が空欄のメッセージは、期待値キャプチャーファイルだけにあるメッセージの為、比較結果を失敗とする。
（２）内容比較
内容比較は適用する試験状況によりモード１、モード２から適した方を選択して実行する。
（ａ）内容比較  比較モード１
比較モード１は、比較したフィールド数が少ない時に使用するモードである。
パケットキャプチャーファイルの各フィールドにはキャプチャー解析ツールによって決まっているフィールドを識別するフィールド識別子とフィールドの値と値のデコード結果で構成されている。比較フィールドコンフィグレーションファイルに比較を実行するフィールド識別子の一覧を定義しておく。
【００３５】
内容比較ではパケットデータを以下のデータ構成の内容テーブル上で処理する。
［フィールド識別子，期待値フレームＮｏ，期待値，試験フレームＮｏ，試験値，比較結果］
最初に期待値キャプチャーファイルを読込んで、上記の内容テーブルを用意する。
比較フィールドコンフィグレーションファイルに設定されているフィールド識別子の場合、内容テーブルに追加する。
【００３６】
次に試験対象のキャプチャーファイルを読込みフレームＮｏを取りだし、そのフレームＮｏをメッセージテーブルの試験フレームＮｏから探し、そのデータから対応する期待値フレームＮｏを取りだす。
【００３７】
比較フィールドコンフィグレーションファイルに設定されているフィールド識別子の場合、内容テーブルよりその期待値フレームＮｏでフィールド識別子が一致するデータを探し試験値を書き、期待値と比較を行う。一致すれば比較結果を成功とし、不一致ならば比較結果を失敗とする。
【００３８】
同じフィールド識別子が見つからない場合は、期待値キャプチャーファイルには無い為、内容テーブルに追加し比較結果は失敗とする。
最後に内容テーブルの比較結果が空欄のフィールドは、期待値キャプチャーファイルだけにあるフィールドの為、比較結果は失敗とする。
（ｂ）内容比較  比較モード２
比較モード２は、比較したフィールド数が多い時に使用するモードである。比較モード１では、フィールド識別子の指定が漏れるとそのフィールドの試験が漏れる。一方、比較したいフィールドの数が多い場合（比較モード２）、指定作業が大きいため、比較しないフィールド識別子を指定する。その為、比較フィールドコンフィグレーションファイルに比較を実行しないフィールド識別子の一覧を定義しておく。
【００３９】
内容比較ではパケットデータを以下のデータ構成の内容テーブル上で処理する。
［フィールド識別子，期待値フレームＮｏ，期待値，試験フレームＮｏ，試験値，比較結果］
最初に期待値キャプチャーファイルを読込んで上記の内容テーブルを用意する。比較フィールドコンフィグレーションファイルに設定されていないフィールド識別子の場合は内容テーブルに追加する。
【００４０】
次に試験対象のキャプチャーファイルを読込みフレームＮｏを取りだし、そのフレームＮｏをメッセージテーブルの試験フレームＮｏから探し、そのデータから対応する期待値フレームＮｏを取りだす。
【００４１】
比較フィールドコンフィグレーションファイルに設定されていないフィールド識別子の場合、内容テーブルよりその期待値フレームＮｏでフィールド識別子が一致するデータを探し試験値を書き、期待値と比較を行う。一致すれば比較結果を成功とし不一致ならば比較結果を失敗とする。
【００４２】
同じフィールド識別子が見つからない場合、期待値キャプチャーファイルには無い為、内容テーブルに追加し、比較結果を失敗とする。
最後に、内容テーブルの比較結果が空欄のフィールドは、期待値キャプチャーファイルだけにあるフィールドの為、比較結果は失敗とする。
【００４３】
図５を参照して、パケット比較装置の機能ブロックを説明する。図５において、パケット比較装置５００は、パケットキャプチャーファイルＥ１０と、パケットキャプチャーファイルＴ２０と、キャプチャー解析ツール３０と、解析ＸＭＬファイルＥ１１と、解析ＸＭＬファイルＴ２１と、コンフィグレーションファイル４０と、パケット比較プログラム１００と、結果表示部５１と、結果ログファイル５２とを含んで構成されている。パケット比較プログラム１００は、ＸＭＬパーサ１０１と、メッセージテーブル１０２と、内容テーブル１０３と、比較アルゴリズム１０４とを含む。
【００４４】
パケット比較装置５００は、比較結果を結果表示部５１に出力する。パケット比較装置５００は、比較結果を結果ログファイル５２に出力する。
【００４５】
パケット比較装置５００は、基準にする期待値のパケットキャプチャーファイルＥ１０と、試験対象のパケットキャプチャーファイルＴ２０の２個のパケットキャプチャーファイルを読み込んで、比較を行うパケット比較プログラム１００を実行する。
【００４６】
全フィールドを比較すると同じにはならない為、パケット比較装置５００は、比較するフィールドをコンフィグレーションファイル４０で選択する。なお、端末加入者識別コード（ＩＭＳＩ、ＭＳＩＤ（Mobile Station Identity）、ＭＩＮ（Mobile Identification Number）等）は、１個だけか、別プログラムで１個に絞り込まれている。
【００４７】
期待値のパケットキャプチャーファイル１０について、コマンドラインベースキャプチャー解析ツール３０−Ｅは、解析結果を解析ＸＭＬ（Extensible Markup Language）ファイル１１に変換する。一方、試験対象のパケットキャプチャーファイル２０について、キャプチャー解析ツール３０−Ｔは、解析結果を解析ＸＭＬファイル２１に変換する。
【００４８】
パケット比較プログラム１００は、ＸＭＬファイル１１およびＸＭＬファイル２１をＳＡＸ（Simple API for XML）方式のＸＭＬパーサ１０１経由で読込む。パケット比較プログラム１００は、ＧＵＩでの対話形式で実行する。
【００４９】
図６を参照して、パケット比較装置のハードウェアブロックを説明する。図６において、パケット比較装置５００は、ＣＰＵ５１０と、メモリ５２０と、外部記憶装置５３０と、Ｉ／Ｏ５４０と、ＮＩＣ（Network Interface Card）５５０と、入力装置５６０と、出力装置５７０と、内部バス５８０とを含んで構成されている。
【００５０】
ＣＰＵ５１０は、メモリ５２０上のプログラムを実行する。メモリ５２０は、プログラムを記憶する。外部記憶装置５３０は、ファイルを記憶する。Ｉ／Ｏ５４０は、内部バス５８０に入力装置５６０と出力装置５７０を接続する。ＮＩＣ５５０は、外部装置をパケット比較装置５００に接続する。入力装置５６０は、キーボード等である。出力装置５７０は、ディスプレイ、プリンタ等である。内部バス５８０は、ＣＰＵ５１０とメモリ５２０と外部記憶装置５３０とＩ／Ｏ５４０とＮＩＣ５５０とを、相互接続する。
【００５１】
図７を参照して、パケット比較装置の処理を説明する。図７において、パケット比較装置５００は、コンフィグレーションファイルを受け付ける（Ｓ１０）。パケット比較装置５００は、期待値ＸＭＬファイルを受け付ける（Ｓ２０）。パケット比較装置５００は、試験対象ＸＭＬファイルを受け付ける（Ｓ３０）。パケット比較装置５００は、結果を出力して（Ｓ４０）、終了する。
【００５２】
ステップ１０において、パケット比較装置５００は、比較フィールドテーブル１０５を作成する（Ｓ１１）。ステップ２０において、パケット比較装置５００は、メッセージテーブル１０２を作成する（Ｓ２１）。パケット比較装置５００は、内容テーブル１０３を作成する（Ｓ２２）。ステップ３０において、パケット比較装置５００は、メッセージ比較処理を実行する（Ｓ３１）。パケット比較装置５００は、内容比較を実行する（Ｓ３２）。
＜１＞比較フィールドテーブル作成
ＩＰアドレス、ＭＡＣアドレスは、装置環境により異なる。ＩＭＳＩ、ＭＳＩＤは、端末加入者毎に異なる。シーケンス番号は、メッセージ送信毎に異なる。これらの為、どのフィールドを比較して、比較しないかを比較フィールドテーブル１０５に設定する。
【００５３】
パケットキャプチャーファイルの解析ＸＭＬファイル１１および２１の各パケットは、フレームＮｏ、プロトコル、複数のフィールドがある。各フィールドは、フィールドを識別するフィールド識別子と値とデコード結果がある。
【００５４】
フィールド識別子は、キャプチャー解析ツール３０の表示フィルターで使用している名前である。具体的には”ｉｐ．ｓｒｃ”である。図８において、＜ｐｒｏｔｏ  ｎａｍｅ＝”ｉｐ”＞中の＜ｆｉｅｌｄ＞タグ内のｎａｍｅ＝”ｉｐ．ｓｒｃ”である。
【００５５】
図８を参照して、解析ＸＭＬファイルを説明する。図８において、解析ＸＭＬファイルは、＜ｐｄｍｌ＞タグの中に＜ｐａｃｋｅｔ＞タグがパケット数分（ここでは１パケット）存在する。＜ｐａｃｋｅｔ＞タグの中には＜ｐｒｏｔｏ＞タグがプロトコル数分存在する。＜ｐｒｏｔｏ＞タグの中には、＜ｆｉｅｌｄ＞タグがフィールド数分存在する。
【００５６】
それぞれは＜ｆｉｅｌｄ＞タグの中の属性ｎａｍｅで示す文字列を、フィールド識別子と呼ぶ。また、属性ｓｈｏｗで示す文字列をフィールドの値と呼ぶ。
【００５７】
フレームＮｏ２０１は、パケットキャプチャーファイルの中でパケットに１から順番に振られるフレームＮｏである。プロトコル名２０２は、＜ｐｒｏｔｏ＞タグのプロトコルを表す。シーケンス番号２０４は、メッセージを送信する毎に変化するので、期待値解析ＸＭＬファイルと試験対象解析ＸＭＬファイルで一致しないので比較対象外とする。ＩＭＳＩ２０５は、端末加入者識別コードの為、期待値解析ＸＭＬファイルと試験対象解析ＸＭＬファイルで一致しない事もあるので、比較対象外とする。
【００５８】
メッセージタイプ２０３は、期待値解析ＸＭＬファイルと試験対象解析ＸＭＬファイルで同じはずなので比較対象とする。結果コード２０６は、期待値解析ＸＭＬファイルと試験対象解析ＸＭＬファイルで同じはずなので比較対象とする。
【００５９】
内容比較の比較モードとしては、比較を実行するフィールド識別子を指定する比較モード１と、比較を実行しないフィールド識別子を指定する比較モード２がある。
比較モード１は、比較フィールドコンフィグレーションファイル４０に比較を実行するフィールド識別子の一覧を定義しておく。
【００６０】
具体的には、ｇｔｐｖ２．ｍｅｓｓａｇｅ＿ｔｙｐｅ
ｇｔｐｖ２．ｃａｕｓｅ                がフィールド識別子である。フィールド識別子は、この順でメッセージタイプ２０３と結果コード２０６を設定する。
【００６１】
ｇｔｐｖ２は、ＧＴＰ  Ｖｅｒｓｉｏｎ２（GPRS Tunneling Protocol）プロトコルを示す。ｇｔｐｖ２は、ＬＴＥ／ＳＡＥシステムでは、Ｓ１１インタフェースやＳ５インタフェースに使用される。
【００６２】
比較モード２は、比較フィールドコンフィグレーションファイル４０に比較を実行しないフィールド識別子の一覧を定義しておく。
具体的にはｇｔｐｖ２．ｓｅｑ
ｇｔｐｖ２．ｉｍｓｉとして、シーケンス番号２０４とＩＭＳＩ２０５を設定する。
【００６３】
図９を参照して、比較アルゴリズムの構成を説明する。図９において、比較アルゴリズム１０４は、コンフィグレーションファイル入力部１１０と、期待値解析ＸＭＬファイル入力部１１１と、試験対象解析ＸＭＬファイル入力部１１２とを含んで構成される。
【００６４】
コンフィグレーションファイル入力部１１０は、コンフィグレーションファイル４０の比較フィールドを読み込んで、比較フィールドテーブル１０５に記録する。期待値解析ＸＭＬファイル入力部１１１は、ＸＭＬパーサ１０１を介して、期待値解析ＸＭＬファイル１１を読み込んで、メッセージテーブル１０２と内容テーブル１０３に記録する。試験対象解析ＸＭＬファイル入力部１１２は、ＸＭＬパーサ１０１を介して、試験対象解析ＸＭＬファイル２１を読み込んで、メッセージテーブル１０２と内容テーブル１０３に記録する。
【００６５】
図１０を参照して、比較フィールドテーブル、比較モード、メッセージテーブル、内容テーブルを説明する。図１０（ａ）において、比較フィールドテーブル１０５は、列名とデータ型で定義される。比較フィールドテーブルは図示では１式だが、可変数ｌを採り得る。
【００６６】
図１０（ｂ）において、比較モード３０１は、列名とデータ型で定義される。比較モード３０１は、グローバル変数であり、データ型は、１または２である。
図１０（ｃ）（ｄ）において、メッセージテーブル１０２と内容テーブル１０３に付した○は、テーブルの設定タイミングを表す。設定タイミングは、期待値解析ＸＭＬファイル１１読込時、試験対象解析ＸＭＬファイル２１読込時の比較時、追加時の３つのタイミングがある。
【００６７】
図１０（ｃ）において、メッセージテーブル１０２は、列名とデータ型で定義される。期待値と比較時と追加時とは、設定タイミングである。メッセージテーブルは、図示では１式だが、可変数ｍを採り得る。
１メッセージ毎に以下のデータを作成する。ＳＲＣノードは、メッセージの送信元ノード名を表す。ＤＳＴノードは、メッセージの送信先ノード名を表す。ＳＲＣノードおよびＤＳＴノードは、共にｅＮＢ１、ＭＭＥ１、Ｓ−ＧＷ１のような文字列が入る。この文字列は、プロトコル名、メッセージから決定する。ＳＲＣノードおよびＤＳＴノードは、同じノードが複数ある場合や、同じメッセージを違うノード間で使用される場合もあるため区別するために使用する。しかし、ＳＲＣノードおよびＤＳＴノードは、必須ではない。
【００６８】
プロトコルは、通信の種別を表す。プロトコルは、同じノード間でも複数の通信プロトコルが使用されるため区別する。プロトコルは、期待値解析ＸＭＬファイル１１のプロトコル名２０２が入る。プロトコルは、Ｓ１ＡＰ、ＧＴＰｖ２、Ｄｉａｍｅｔｅｒｅのような文字列が入る。プロトコルは、メッセージの文字列で区別されれば必須ではない。
【００６９】
期待値フレームＮｏは、期待値解析ＸＭＬファイル１１のフレームＮｏ２０１を整数で入れる。期待値メッセージは、期待値解析ＸＭＬファイル１１の期待値フレームＮｏにあるメッセージ名を文字列で入る。この文字列は、図８でshowname＝で表される文字列より作成する。図８の場合は、Create Session Response (33)を設定する。
【００７０】
試験フレームＮｏは、試験対象解析ＸＭＬファイル２１のフレームＮｏ２０１を整数で入れる。試験フレームＮｏは、期待値フレームＮｏとメッセージが対応している必要がある。
【００７１】
試験メッセージは、試験対象解析ＸＭＬファイル２１の試験フレームＮｏにあるメッセージ名を文字列で入る。この文字列は、図８でshowname＝で表される文字列より作成する。図８の場合は、Create Session Response (33)を設定する。
【００７２】
Ｒｅｓｕｌｔは、メッセージ比較結果を表す。
ＯＫ：  比較結果正常
ＮＧ：  比較結果異常
の文字列が入る。
【００７３】
Ｃａｕｓｅは、ＲｅｓｕｌｔがＮＧの場合の理由を表す。
Ｕｎｄｉｓｃｏｖｅｒｅｄ：メッセージ未発見
Ｕｎｅｘｐｅｃｔｅｄ    ：メッセージ非期待
空欄                    ：正常
の文字列が入る。
【００７４】
図１０（ｄ）において、内容テーブル１０３は、列名とデータ型で定義される。期待値と比較時と追加時とは、設定タイミングである。内容テーブルは、図示では１式だが、可変数ｎを採り得る。
【００７５】
１つのメッセージの中には複数のフィールドが存在する。１フィールド毎に以下のデータを作成する。
フィールド識別子は、キャプチャー解析ツール３０の表示フィルターで使用している名前である。ＴＬＶ（Tag Length Value）タグは、プロトコルによって存在するＴＬＶのタグ番号である。
【００７６】
具体的には、ｇｔｐｖ２．ｉｅ＿ｔｙｐｅ
ｄｉａｍｅｔｅｒ．ａｖｐ＿ｃｏｄｅ
ｍｉｐ６．ｖｓｍ＿ｓｕｂｔｙｐｅである。
【００７７】
ＴＬＶタグを入れたのは、ｄｉａｍｅｔｅｒ．ａｖｐ．ｆｌａｇｓのように同じフィールド識別子がＴＬＶ毎に複数存在する為、どのＴＬＶか区別する為である。ＷｉＭＡＸ（Worldwide Interoperability for Microwave Access）のＲ６プロトコルでは、ＴＬＶと呼ぶ。ＴＬＶは、ＤｉａｍｅｔｅｒプロトコルではＡＶＰ（Attribute Value Pair）と呼ばれる。ＴＬＶは、ＧＴＰｖ２プロトコル（GPRS Tunneling Protocol）ではＩＥ  Ｔｙｐｅ（Information Element Type）と呼ばれる。さらに、ＴＬＶは、モバイルＩＰプロトコルでは、Ｖｅｎｄｏｒ  Ｓｐｅｃｉｆｉｃ  Ｍｏｂｉｌｉｔｙ  Ｓｕｂｔｙｐｅと呼ばれる。ＴＬＶタグは、無い場合もあるが、その場合はＴＬＶタグを空欄にしておけばよい。ＴＬＶタグは、使用環境によっては必須ではない。
【００７８】
期待値フレームＮｏは、期待値解析ＸＭＬファイル１１のフレームＮｏ２０１を整数で入れる。期待値は、期待値対象解析ＸＭＬファイル１１の期待値フレームＮｏのメッセージで、図８でshow＝で表される文字列を入れる。
【００７９】
試験フレームＮｏは、試験対象解析ＸＭＬファイル２１のフレームＮｏ２０１を整数で入れる。試験フレームＮｏは、期待値フレームＮｏとメッセージが対応している必要がある。
【００８０】
試験値は、試験対象解析ＸＭＬファイル２１の試験フレームＮｏのメッセージで、図８でｓｈｏｗ＝で表される文字列を入れる。比較実行は、このフィ−ルド識別子が比較対象かどうか論理型で表す。
ＴＲＵＥ  ：比較対象である
ＦＡＬＳＥ：比較対象でない
の文字列が入る。
【００８１】
Ｒｅｓｕｌｔは、メッセージ内容比較結果を表す。
ＯＫ  ：比較結果正常
ＮＧ  ：比較結果異常
（ｎｇ）：比較対象メッセージが存在しない
空欄  ：比較対象外
の文字列が入る。
【００８２】
Ｃａｕｓｅは、ＲｅｓｕｌｔがＮＧの場合の理由を表す。
ＮｏｔＥｑｕａｌ        ：値不一致
Ｕｎｄｉｓｃｏｖｅｒｅｄ：フィールド未発見
Ｕｎｅｘｐｅｃｔｅｄ    ：フィールド非期待
空欄                    ：正常または比較対象外
の文字列が入る。
【００８３】
図１１を参照して、図７のステップ１１の比較フィールドテーブル作成の詳細を説明する。このフローチャートは、コンフィグレーションファイル入力部１１０上で実行される。図１１において、コンフィグレーションファイル入力部１１０は、比較フィールドコンフィグレーションファイル４０をオープンする（Ｓ５０１）。コンフィグレーションファイル入力部１１０は、ファイルの終了を判断する（Ｓ５０２）。ここではＮＯなので、コンフィグレーションファイル入力部１１０は、フィールド識別子を読みだす（Ｓ５０３）。コンフィグレーションファイル入力部１１０は、コメント(#で始まっている等)または空行か判定する（Ｓ５０４）。ＮＯのとき、コンフィグレーションファイル入力部１１０は、比較フィールドテーブルに追加する（Ｓ５０５）。コンフィグレーションファイル入力部１１０は、フールド識別子を比較フィールドテーブル１０５に書き込んで（Ｓ５０６）、ステップ５０２に遷移する。ステップ５０２でファイルが終了したら、コンフィグレーションファイル入力部１１０は、比較フィールドコンフィグレーションファイル４０をクローズして（Ｓ５０７）、終了する。ステップ５０４でＹＥＳのとき、コンフィグレーションファイル入力部１１０は、ステップ５０２に遷移する。
【００８４】
次に、図７のステップ２０の期待値ＸＭＬファイル受付において、期待値解析ＸＭＬファイル入力部１１１は、期待値キャプチャーファイルの解析ＸＭＬファイルＥ１１を読込む。期待値解析ＸＭＬファイル入力部１１１は、メッセージテーブル１０２に期待値パケットキャプチャーファイル１１のメッセージシーケンスと、内容テーブル１０３に期待値パケットキャプチャーファイル１１のフィールド情報を設定する。
＜２＞メッセージテーブル作成
図１２を参照して、図７のステップ２１のメッセージテーブル作成の詳細を説明する。図１２において、このフローチャートは、期待値解析ＸＭＬファイル入力部１１１上で実行される。期待値解析ＸＭＬファイル入力部１１１は、期待値ＸＭＬファイルをオープンする（Ｓ２０１）。期待値解析ＸＭＬファイル入力部１１１は、ファイルが終了したか判定する（Ｓ２０２）。ここではＮＯなので、期待値解析ＸＭＬファイル入力部１１１は、プロトコルは、対象プロトコルか判定する（Ｓ２０３）。ＹＥＳのとき、期待値解析ＸＭＬファイル入力部１１１は、メッセージ情報収集処理サブルーチンを実行する（Ｓ２０４）。期待値解析ＸＭＬファイル入力部１１１は、メッセージテーブルへ追加する（Ｓ２０５）。期待値解析ＸＭＬファイル入力部１１１は、ＳＲＣノード、ＤＳＴノード、プロトコル、フレームＮｏ、メッセージ文字列をメッセージテーブルにコピーして（Ｓ２０６）、ステップ２０２に遷移する。ステップ２０２でファイルが終了したとき、期待値解析ＸＭＬファイル入力部１１１は、期待値ＸＭＬファイルをクローズして（Ｓ２０７）、終了する。
【００８５】
なお、ステップ２０３における対象のプロトコルとは、呼処理通信に関係するプロトコルである。以下は、ＬＴＥ／ＳＡＥシステムでの該当である：ｓ１ａｐ，ｘ２ａｐ，ｇｔｐｖ２，ｇｔｐ，ｒａｄｉｕｓ，ｄｉａｍｅｔｅｒ，ｍｉｐｖ６，ｇｒｅ，ａ１１。
【００８６】
図１３を参照して、図１２のステップ２０４のメッセージ情報収集処理の詳細を説明する。このフローチャートは、期待値解析ＸＭＬファイル入力部１１１上で実行される。図１３において、期待値解析ＸＭＬファイル入力部１１１は、メッセージの種類から各ノードのＩＰアドレスを決定する（Ｓ６０１）。期待値解析ＸＭＬファイル入力部１１１は、メッセージの送信元ＩＰアドレス、送信先ＩＰアドレス、各ノードのＩＰアドレスからＳＲＣノード、ＤＳＴノードを決定する（Ｓ６０２）。期待値解析ＸＭＬファイル入力部１１１は、メッセージ文字列を作成して（Ｓ６０３）、終了する。
【００８７】
メッセージ情報収集処理（Ｓ２０４）において、期待値解析ＸＭＬファイル入力部１１１は、パケットを以下のデータ構成のメッセージテーブル１０２上で処理する。
［ＳＲＣノード，ＤＳＴノード，プロトコル，期待値フレームＮｏ，期待値メッセージ，試験フレームＮｏ，試験メッセージ，Ｒｅｓｕｌｔ，Ｃａｕｓｅ］
ＳＲＣノード、ＤＳＴノードは、ＩＰアドレスではなくｅＮＢ（evolved Node B）、ＭＭＥ（Mobility Management Entity）などの記号を用いる。この為、異なるＩＰアドレス環境同士でもメッセージ比較が可能になる。ＬＴＥ／ＳＡＥシステムのＳ１ＡＰプロトコルのＡｔｔａｃｈ  Ｒｅｑｕｅｓｔメッセージの場合、送信元ノードをｅＮＢ装置、送信先ノードをＭＭＥ装置として認識する。この為、ステップ６０１において、ｅＮＢ（Ｓ１インタフェ−ス）、ＭＭＥ（Ｓ１インタフェ−ス）のＩＰアドレスが判明する。ステップ６０２において、期待値解析ＸＭＬファイル入力部１１１は、次からはそのｅＮＢ（Ｓ１インタフェ−ス）、ＭＭＥ（Ｓ１インタフェ−ス）のＩＰアドレスと比較することで、送信元、送信先のノードがｅＮＢ装置かＭＭＥ装置か決定する。
【００８８】
同様に、Ｓ１１インタフェースのＣｒｅａｔｅ  Ｓｅｓｓｉｏｎ  Ｒｅｑｕｅｓｔメッセージの場合、期待値解析ＸＭＬファイル入力部１１１は、送信元ノードをＭＭＥ装置、送信先ノードをＳ−ＧＷ(Serving Gateway)装置として認識する。ステップ６０１において、ＭＭＥ（Ｓ１１インタフェース）、Ｓ−ＧＷ（Ｓ１１インタフェース）のＩＰアドレスが判明する。ステップ６０２において、期待値解析ＸＭＬファイル入力部１１１は、次からはそのＭＭＥ（Ｓ１１インタフェース）、Ｓ−ＧＷ（Ｓ１１インタフェース）のＩＰアドレスと比較することで、送信元、送信先のノードがＭＭＥ装置かＳ−ＧＷ装置か決定する。
【００８９】
ステップ６０３の期待メッセージに格納するメッセージ文字列を作成する処理で、期待値解析ＸＭＬファイル入力部１１１は、メッセージの動作を表すような文字列を加える。これによって、期待値解析ＸＭＬファイル入力部１１１は、全く違うメッセージ同士を比較できないようにする。メッセージの動作としては、接続、切断などがある。
＜３＞内容テーブル作成
図１４を参照して、図７のステップ２２における内容テーブル作成の詳細を説明する。このフローチャートは、期待値解析ＸＭＬファイル入力部１１１上で実行される。図１４において、期待値解析ＸＭＬファイル入力部１１１は、期待値ＸＭＬファイルをオープンする（Ｓ３０１）。期待値解析ＸＭＬファイル入力部１１１は、ファイル終了を判定する（Ｓ３０２）。ここではＮＯなので、期待値解析ＸＭＬファイル入力部１１１は、プロトコルが対象プロトコルか判定する（Ｓ３０３）。ＹＥＳのとき、期待値解析ＸＭＬファイル入力部１１１は、比較実行決定処理サブルーチンを実行する（Ｓ３０４）。なお、引数としてフィールド識別子を利用する。期待値解析ＸＭＬファイル入力部１１１は、戻値を判定する（Ｓ３０５）。ＴＲＵＥのとき、期待値解析ＸＭＬファイル入力部１１１は、ＴＲＵＥを内容テーブルの比較実行にコピーする（Ｓ３０６）。ステップ３０５でＦＡＬＳＥのとき、期待値解析ＸＭＬファイル入力部１１１は、ＦＡＬＳＥを内容テーブルの比較実行にコピーする（Ｓ３０７）。ステップ３０６またはステップ３０７のあと、期待値解析ＸＭＬファイル入力部１１１は、内容情報を収集する（Ｓ３０８）。期待値解析ＸＭＬファイル入力部１１１は、内容テーブルに追加して（Ｓ３０９）、ステップ３０２に遷移する。ステップ３０２で終了のとき、期待値解析ＸＭＬファイル入力部１１１は、期待値ＸＭＬファイルをクローズして（Ｓ３１０）、終了する。
図１４によれば、比較実行しない（ＦＡＬＳＥ）フィールドの値もＧＵＩのテーブル上で並べて見る事が可能である。
【００９０】
図１５を参照して、図１４のステップ３０４の比較実行決定処理の詳細を説明する。このフローチャートは、期待値解析ＸＭＬファイル入力部１１１上で実行される。図１５において、比較実行（論理型）にはＴＲＵＥ、ＦＡＬＳＥを設定するが、比較モード３０１によって以下の様に設定方法を変更する。
【００９１】
期待値解析ＸＭＬファイル入力部１１１は、比較モードを判定する（Ｓ７０１）。比較モードが１のとき、期待値解析ＸＭＬファイル入力部１１１は、比較フィールドテーブルが終了したか判定する（Ｓ７０２）。ここでは終了していないので、期待値解析ＸＭＬファイル入力部１１１は、フィールド識別子を読み出す（Ｓ７０３）。期待値解析ＸＭＬファイル入力部１１１は、引数がフィールド識別子と同じか判定する（Ｓ７０４）。ＹＥＳのとき、期待値解析ＸＭＬファイル入力部１１１は、戻値にＴＲＵＥを設定して（Ｓ７０５）、終了する。ステップ７０４でＮＯのとき、期待値解析ＸＭＬファイル入力部１１１は、ステップ７０２に遷移する。ステップ７０２で終了したとき、期待値解析ＸＭＬファイル入力部１１１は、戻値にＦＡＬＳＥを設定して（Ｓ７０６）、終了する。
【００９２】
ステップ７０１で比較モードが２のとき、期待値解析ＸＭＬファイル入力部１１１は、比較フィールドテーブルが終了したか判定する（Ｓ７０７）。ここでは終了していないので、期待値解析ＸＭＬファイル入力部１１１は、フィールド識別子を読み出す（Ｓ７０８）。期待値解析ＸＭＬファイル入力部１１１は、引数がフィールド識別子と同じか判定する（Ｓ７０９）。ＹＥＳのとき、期待値解析ＸＭＬファイル入力部１１１は、戻値にＦＡＬＳＥを設定して（Ｓ７１０）、終了する。ステップ７０９でＮＯのとき、期待値解析ＸＭＬファイル入力部１１１は、ステップ７０７に遷移する。ステップ７０７で終了したとき、期待値解析ＸＭＬファイル入力部１１１は、戻値にＴＲＵＥを設定して（Ｓ７１１）、終了する。
【００９３】
図７のステップ３０の試験対象ＸＭＬファイル受付において、試験対象解析ＸＭＬファイル入力部１１２は、試験対象キャプチャーファイルの解析ＸＭＬファイル２１を読込んで、メッセージテーブル１０２上の期待値キャプチャーファイル１０のメッセージシーケンスと試験対象キャプチャーファイル２０のメッセージシーケンスを比較アルゴリズム１０４で比較し、内容テーブル１０３上の期待値キャプチャーファイル１０のフィールド情報と試験対象キャプチャーファイル２０のフィールド情報を比較アルゴリズム１０４で比較する。
＜４＞メッセージ比較処理
図１６を参照して、図７のステップ３１のメッセージ比較処理の詳細を説明する。このフローチャートは、試験対象解析ＸＭＬファイル入力部１１２上で実行される。図１６において、試験対象解析ＸＭＬファイル入力部１１２は、試験対象ＸＭＬファイルをオープンする（Ｓ２１１）。試験対象解析ＸＭＬファイル入力部１１２は、ファイルが終了したか判定する（Ｓ２１２）。ここではＮＯなので、試験対象解析ＸＭＬファイル入力部１１２は、プロトコルが対象プロトコルか判定する（Ｓ２１３）。ＹＥＳのとき、試験対象解析ＸＭＬファイル入力部１１２は、メッセージ情報収集処理サブルーチンを実行する（Ｓ２１４）。試験対象解析ＸＭＬファイル入力部１１２は、メッセージテーブル検索サブルーチンを実行して（Ｓ２１５）、ステップ２１２に遷移する。ステップ２１２で終了したとき、試験対象解析ＸＭＬファイル入力部１１２は、試験対象ＸＭＬファイルをクローズする（Ｓ２１６）。試験対象解析ＸＭＬファイル入力部１１２は、メッセージテーブル後処理サブルーチンを実行して（Ｓ２１７）、終了する。なお、ステップ２１４の詳細な説明は、図１３と同一である。
【００９４】
図１７を参照して、図１６のステップ２１５のメッセージテ−ブル検索の詳細を説明する。図１７において、このフローチャートは、試験対象解析ＸＭＬファイル入力部１１２上で実行される。試験対象解析ＸＭＬファイル入力部１１２は、メッセージテーブルが終了したか判定する（Ｓ２２１）。ここではＮＯなので、試験対象解析ＸＭＬファイル入力部１１２は、試験フレームＮｏが空か判定する（Ｓ２２２）。ＹＥＳのとき、試験対象解析ＸＭＬファイル入力部１１２は、ＳＲＣノード、ＤＳＴノード、プロトコル、期待値メッセージを読み出す（Ｓ２２３）。試験対象解析ＸＭＬファイル入力部１１２は、引数と同じか判定する（Ｓ２２４）。ＹＥＳのとき、試験対象解析ＸＭＬファイル入力部１１２は、ＲｅｓｕｌｔにＯＫ、試験フレームＮｏに引数のフレームＮｏ、試験メッセージに引数のメッセージを記録して（Ｓ２２５）、終了する。
【００９５】
ステップ２２４でＮＯのとき、試験対象解析ＸＭＬファイル入力部１１２は、ステップ２２１に遷移する。ステップ２２２でＮＯのとき、試験対象解析ＸＭＬファイル入力部１１２は、ステップ２２１に遷移する。ステップ２２１で終了のとき、試験対象解析ＸＭＬファイル入力部１１２は、メッセージテーブルに追加する（Ｓ２２６）。試験対象解析ＸＭＬファイル入力部１１２は、ＲｅｓｕｌｔにＮＧ、ＣａｕｓｅにＵｎｅｘｐｅｃｔｅｄ、試験フレームに引数のフレームＮｏ、試験メッセージに引数のメッセージを記録して（Ｓ２２７）、終了する。
ステップ２２６とステップ２２７は、非期待メッセージ処理である。
【００９６】
図１８を参照して、図１６のステップ２１７のメッセージテ−ブル後処理の詳細を説明する。図１８において、メッセージテ−ブル後処理は、未発見メッセージ処理である。試験対象解析ＸＭＬファイル入力部１１２は、メッセージテーブル１０２を読込む（Ｓ２９１）。試験対象解析ＸＭＬファイル入力部１１２は、Ｒｅｓｕｌｔを読み出す（Ｓ２９２）。試験対象解析ＸＭＬファイル入力部１１２は、Ｒｅｓｕｌｔが空か判定する（Ｓ２９３）。ＹＥＳのとき、試験対象解析ＸＭＬファイル入力部１１２は、ＲｅｓｕｌｔにＮＧ、ＣａｕｓｅにＵｎｄｉｓｃｏｖｅｒｅｄを書き込んで（Ｓ２９４）、ステップ２９１に遷移する。ステップ２９３でＮＯのとき、試験対象解析ＸＭＬファイル入力部１１２は、そのままステップ２９１に遷移する。ステップ２９１でメッセージテーブルが終了したとき、試験対象解析ＸＭＬファイル入力部１１２は、終了する。
＜５＞内容比較処理
図１９を参照して、図７のステップ３２の内容比較処理の詳細を説明する。図１９において、このフローチャートは、試験対象解析ＸＭＬファイル入力部１１２上で実行される。試験対象解析ＸＭＬファイル入力部１１２は、試験対象ＸＭＬファイルをオープンする（Ｓ３１１）。試験対象解析ＸＭＬファイル入力部１１２は、ファイルが終了したか判定する（Ｓ３１２）。ここではＮＯなので、試験対象解析ＸＭＬファイル入力部１１２は、プロトコルは、対象プロトコルか判定する（Ｓ３１３）。ＹＥＳのとき、試験対象解析ＸＭＬファイル入力部１１２は、内容情報を収集する（Ｓ３１４）。試験対象解析ＸＭＬファイル入力部１１２は、内容テーブル検索サブルーチンを実行して（Ｓ３１５）、ステップ３１２に遷移する。ステップ３１３でＮＯとき、試験対象解析ＸＭＬファイル入力部１１２は、ステップ３１２に遷移する。ステップ３１２で終了のとき、試験対象解析ＸＭＬファイル入力部１１２は、試験対象ＸＭＬフィルをクローズする（Ｓ３１６）。試験対象解析ＸＭＬファイル入力部１１２は、内容テーブル後処理サブルーチンを実行して（Ｓ３１７）、終了する。
なお、ステップ３１５の内容テーブル検索サブルーチンの引数は、フィールド識別子、ＴＬＶタグ、試験値、フレームＮｏである。
【００９７】
図２０を参照して、図１９のステップ３１５の内容テーブル検索の詳細を説明する。このフローチャートは、試験対象解析ＸＭＬファイル入力部１１２上で実行される。図２０において、試験対象解析ＸＭＬファイル入力部１１２は、期待値フレームＮｏ検索サブルーチンを実行する（Ｓ３２１）。なお、引数はフレームＮｏである。試験対象解析ＸＭＬファイル入力部１１２は、戻値を期待値フレームＮｏにセットする（Ｓ３２２）。試験対象解析ＸＭＬファイル入力部１１２は、戻値が０か０を超えているか判定する（Ｓ３２３）。０超えのとき、試験対象解析ＸＭＬファイル入力部１１２は、内容テーブルが終了したか判定する（Ｓ３２４）。ここでは終了ではないので、試験対象解析ＸＭＬファイル入力部１１２は、期待値フレームＮｏ読み出す（Ｓ３２５）。試験対象解析ＸＭＬファイル入力部１１２は、読み出した期待値フレームＮｏが戻り値の期待値フレームＮｏと同じか判定する（Ｓ３２６）。
【００９８】
ＹＥＳのとき、試験対象解析ＸＭＬファイル入力部１１２は、試験フレームＮｏが空欄か判定する（Ｓ３２７）。ＹＥＳのとき、試験対象解析ＸＭＬファイル入力部１１２は、フィールド識別子、ＴＬＶタグを読み出す（Ｓ３２８）。試験対象解析ＸＭＬファイル入力部１１２は、引数がフィールド識別子、ＴＬＶタグと同じか判定する（Ｓ３２９）。ＹＥＳのとき、試験対象解析ＸＭＬファイル入力部１１２は、比較実行を読み出す（Ｓ３３０）。試験対象解析ＸＭＬファイル入力部１１２は、比較実行のＴＲＵＥ／ＦＡＬＳＥを判定する（Ｓ３３１）。ＴＲＵＥのとき、試験対象解析ＸＭＬファイル入力部１１２は、期待値を読み出す（Ｓ３３２）。試験対象解析ＸＭＬファイル入力部１１２は、引数が試験値と同じか判定する（Ｓ３３３）。ＹＥＳのとき、試験対象解析ＸＭＬファイル入力部１１２は、ＲｅｓｕｌｔにＯＫをセットする（Ｓ３３４）。試験対象解析ＸＭＬファイル入力部１１２は、試験値に引数の試験値、試験フレームＮｏに引数のフレームＮｏをセットして（Ｓ３３５）、終了する。
【００９９】
ステップ３３３でＮＯのとき、試験対象解析ＸＭＬファイル入力部１１２は、ＲｅｓｕｌｔにＮＧ、ＣａｕｓｅにＮｏｔＥｑｕａｌをセットして（Ｓ３３６）、ステップ３３５に遷移する。ステップ３２９でＮＯのとき、およびステップ３２７でＮＯのとき、試験対象解析ＸＭＬファイル入力部１１２は、ステップ３２４に遷移する。ステップ３２４で終了のとき、試験対象解析ＸＭＬファイル入力部１１２は、内容テーブルに追加する（Ｓ３４０）。試験対象解析ＸＭＬファイル入力部１１２は、ＲｅｓｕｌｔにＮＧ、ＣａｕｓｅにＵｎｅｘｐｅｃｔｅｄをセットする（Ｓ３４１）。試験対象解析ＸＭＬファイル入力部１１２は、フィールド識別子に引数のフィールド識別子、ＴＬＶタグに引数のＴＬＶタグ、試験フレームＮｏに引数のフレームＮｏ、試験値に引数の試験値、期待値フレームＮｏに期待値フレームＮｏをそれぞれセットして（Ｓ３４２）、終了する。
なお、ステップ３４０ないしステップ３４２は、非期待フィールド処理である。
【０１００】
図２１を参照して、図２０のステップ３２１の期待値フレームＮｏ検索の詳細を説明する。このフローチャートは、試験対象解析ＸＭＬファイル入力部１１２上で実行される。図２１において、試験対象解析ＸＭＬファイル入力部１１２は、メッセージテーブルが終了したか判定する（Ｓ２５１）。ここではＮＯなので、試験対象解析ＸＭＬファイル入力部１１２は、メッセージテーブルから試験フレームＮｏを読み出す（Ｓ２５２）。試験対象解析ＸＭＬファイル入力部１１２は、引数が試験フレームＮｏと同じか判定する（Ｓ２５３）。ＹＥＳのとき、試験対象解析ＸＭＬファイル入力部１１２は、戻値にメッセージテーブルの期待値フレームＮｏをセットして（Ｓ２５４）、終了する。ステップ２５３でＮＯのとき、試験対象解析ＸＭＬファイル入力部１１２は、ステップ２５１に遷移する。ステップ２５１で終了のとき、試験対象解析ＸＭＬファイル入力部１１２は、戻値に０をセットして（Ｓ２５５）、終了する。
【０１０１】
図２２を参照して、図１９のステップ３１７の内容テーブル後処理の詳細を説明する。このフローチャートは、試験対象解析ＸＭＬファイル入力部１１２上で実行される。図２２において、試験対象解析ＸＭＬファイル入力部１１２は、内容テーブルが終了したか判定する（Ｓ３８１）。ここではＮＯなので、試験対象解析ＸＭＬファイル入力部１１２は、試験フレームＮｏを読み出す（Ｓ３８２）。試験対象解析ＸＭＬファイル入力部１１２は、試験フレームＮｏが空か判定する（Ｓ３８３）。ＹＥＳのとき、試験対象解析ＸＭＬファイル入力部１１２は、試験フレームＮｏ検索サブルーチンを実行する（Ｓ３８４）。試験対象解析ＸＭＬファイル入力部１１２は、戻値が０か０超か判定する（Ｓ３８５）。０超のとき、試験対象解析ＸＭＬファイル入力部１１２は、ＲｅｓｕｌｔにＮＧ、ＣａｕｓｅにＵｎｄｉｓｃｏｖｅｒｅｄをセットして（Ｓ３８６）、ステップ３８１に遷移する。ステップ３８５で０のとき、試験対象解析ＸＭＬファイル入力部１１２は、Ｒｅｓｕｌｔに（ｎｇ）をセットして（Ｓ３８７）、ステップ３８１に遷移する。ステップ３８３でＮＯのとき、試験対象解析ＸＭＬファイル入力部１１２は、ステップ３８１に遷移する。ステップ３８１で終了したとき、試験対象解析ＸＭＬファイル入力部１１２は、終了する。
【０１０２】
図２３を参照して、図２２のステップ３８４の試験フレームＮｏ検索の詳細を説明する。このフローチャートは、試験対象解析ＸＭＬファイル入力部１１２上で実行される。図２３において、試験対象解析ＸＭＬファイル入力部１１２は、メッセージテーブルの終了を判定する（Ｓ３５１）。ここではＮＯなので、試験対象解析ＸＭＬファイル入力部１１２は、期待値フレームＮｏを読み出す（Ｓ３５２）。試験対象解析ＸＭＬファイル入力部１１２は、引数が期待値フレームＮｏと同じか判定する（Ｓ３５３）。ＹＥＳのとき、試験対象解析ＸＭＬファイル入力部１１２は、戻値に試験フレームＮｏをセットして（Ｓ３５４）、終了する。ステップ３５３でＮＯのとき、試験対象解析ＸＭＬファイル入力部１１２は、ステップ３５１に遷移する。ステップ３５１で終了の時、試験対象解析ＸＭＬファイル入力部１１２は、戻値に０をセットして（Ｓ３５５）、終了する。
【０１０３】
図２４を参照して、キャプチャーファイルからメッセージテーブル１０２を作成する手順を説明する。図２４において、メッセージは、前から順番にフレーム番号が１、２、３、４の番号が付いている。
【０１０４】
テストＡ期待値キャプチャーファイルでは、最初のメッセージであるＭＳＧ１ＡＢは、Ｎｏｄｅ−ＡがＮｏｄｅ−Ｂへ送信するメッセージと決まっているので、プロトコルはＰ１のメッセージである。この時に、送信元ＩＰアドレスがＮｏｄｅ−Ａで、送信先ＩＰアドレスはＮｏｄｅ−Ｂであると判明する。Ｎｏｄｅ−Ａが送信しＮｏｄｅ−Ｂが受信するメッセージでプロトコルはＰ１であるため、期待値解析ＸＭＬファイル入力部１１１は、メッセージテーブルの最初のエントリにＳＲＣノード＝Ｎｏｄｅ−Ａ、ＤＳＴノード＝Ｎｏｄｅ−Ｂ、プロトコル＝Ｐ１、期待値フレームＮｏ＝１、期待メッセージ＝ＭＳＧ１ＡＢとして設定する。
【０１０５】
以下同様にして、期待値解析ＸＭＬファイル入力部１１１は、２〜４個目のメッセージをメッセージテーブル１０２に追加し、テストＡ期待値キャプチャーファイルの入力が終わる。
【０１０６】
テストＡ成功キャプチャーファイルでは、最初のメッセージであるＭＳＧ１ＡＢは、Ｎｏｄｅ−Ａが送信し、Ｎｏｄｅ−Ｂが受信するメッセージでプロトコルはＰ１である。このため、試験対象解析ＸＭＬファイル入力部１１２は、メッセージテーブル１０２からＳＲＣノード＝Ｎｏｄｅ−Ａ、ＤＳＴノード＝Ｎｏｄｅ−Ｂ、プロトコル＝Ｐ１、期待メッセージ＝ＭＳＧ１ＡＢのエントリを検索する。試験対象解析ＸＭＬファイル入力部１１２は、最初に一致した箇所のエントリに、試験フレームＮｏ＝１、Ｃａｕｓｅ＝ＯＫとして設定する。以下同様にして、試験対象解析ＸＭＬファイル入力部１１２は、２〜４個目のメッセージをメッセージテーブル１０２に設定し、テストＡ成功キャプチャーファイルの入力が終わる。
【０１０７】
図２５、図２６を参照して、図１、図２のメッセージシーケンスに対応したメッセージテーブル１０２を説明する。
図２５において、テストＡ期待値キャプチャーファイルは、メッセージシーケンスの正解となるファイルである。これよりメッセージテーブル１０２の期待値部分を作成する。図２５において、テストＡ成功キャプチャーファイルは、テストＡ期待値キャプチャーファイルと同じメッセージシーケンスであり、全てのメッセージテーブル１０２のエントリのＲｅｓｕｌｔはＯＫとなる。
【０１０８】
図２６のテストＡ失敗１キャプチャーファイルは、期待しないメッセージがある。メッセージＭＳＧ２ＢＣ’は、期待値キャプチャーファイルにはないメッセージである。メッセージＭＳＧ２ＢＣ’のＲｅｓｕｌｔは、ＮＧでＣａｕｓｅがＵｎｅｘｐｅｃｔｅｄとなる。
【０１０９】
図２６のテストＡ失敗２キャプチャーファイルは、期待値キャプチャーファイルよりメッセージが不足している。メッセージＭＳＧ１ＢＡが期待値キャプチャーファイルにはあって、試験対象キャプチャーファイルにはない。メッセージＭＳＧ１ＢＡのＲｅｓｕｌｔは、ＮＧでＣａｕｓｅがＵｎｄｉｓｃｏｖｅｒｅｄとなる。
【０１１０】
図２７を参照して、比較モード１でキャプチャーファイルからメッセージテーブル１０２と内容テーブル１０３を作成する手順を説明する。図２７において、メッセージは前から順番にフレーム番号が１、２の番号が付いている。
【０１１１】
テストＢ期待値キャプチャーファイルでは、最初のメッセージであるＭＳＧ１ＡＢは、Ｎｏｄｅ−Ａが送信し、Ｎｏｄｅ−Ｂが受信するメッセージでプロトコルはＰ１である。このため、期待値解析ＸＭＬファイル入力部１１１は、メッセージテーブル１０２の最初のエントリにＳＲＣノード＝Ｎｏｄｅ−Ａ、ＤＳＴノード＝Ｎｏｄｅ−Ｂ、プロトコル＝Ｐ１、期待値フレームＮｏ＝１、期待メッセージ＝ＭＳＧ１ＡＢとして設定する。以下同様にして、期待値解析ＸＭＬファイル入力部１１１は、２個目のメッセージをメッセージテーブル１０２に追加し、テストＢ期待値キャプチャーファイルのメッセージテーブル１０２の入力を終える。
【０１１２】
比較モード３０１がモード１の為、比較フィールドテーブル１０５には比較を行うフィールド識別子が定義されている。以後、フィールドＦ１１のフィールド識別子をＦ１１ｉｄのようにして表す。
【０１１３】
最初のメッセージであるＭＳＧ１ＡＢにはフィールドがＦ１１、Ｆ１２の２個ある。Ｆ１１は比較フィールドテーブル１０５に定義がない為、後で試験対象解析ＸＭＬファイル入力部１１２は、比較を実行しない。Ｆ１２は比較フィールドテーブル１０５にある為、後で試験対象解析ＸＭＬファイル入力部１１２は、比較を実行する。期待値解析ＸＭＬファイル入力部１１２は、内容テーブル１０３の最初のエントリにフィールドＦ１１を期待値フレームＮｏ＝１、期待値＝Ｖ１１、比較実行＝ＦＡＬＳＥで設定する。期待値解析ＸＭＬファイル入力部１１２は、内容テーブル１０３の次のエントリにフィールドＦ１２を期待値フレームＮｏ＝１、期待値＝Ｖ１２、比較実行＝ＴＲＵＥで設定する。以下同様にして、期待値解析ＸＭＬファイル入力部１１２は、２個目のメッセージＭＳＧ２ＢＣを内容テーブル１０３に追加し、テストＢ期待値キャプチャーファイルの内容テーブル１０３の入力を終える。
【０１１４】
テストＢ成功キャプチャーファイルでは、最初のメッセージであるＭＳＧ１ＡＢは、Ｎｏｄｅ−Ａが送信し、Ｎｏｄｅ−Ｂが受信するメッセージで、プロトコルはＰ１である。このため、試験対象解析ＸＭＬファイル入力部１１２は、メッセージテーブルからＳＲＣノード＝Ｎｏｄｅ−Ａ、ＤＳＴノード＝Ｎｏｄｅ−Ｂ、プロトコル＝Ｐ１、期待メッセージ＝ＭＳＧ１ＡＢのエントリを検索する。試験対象解析ＸＭＬファイル入力部１１２は、最初に一致した箇所のエントリに、試験フレームＮｏ＝１、Ｒｅｓｕｌｔ＝ＯＫとして設定する。以下同様にして、試験対象解析ＸＭＬファイル入力部１１２は、２個目のメッセージＭＳＧ２ＢＣをメッセージテーブル１０２に設定し、テストＢ成功キャプチャーファイルのメッセージテーブル１０２の入力を終える。
【０１１５】
最初のメッセージであるＭＳＧ１ＡＢには、フィールドがＦ１１、Ｆ１２の２個ある。フレームＮｏは１であるため、メッセージテーブル１０２で試験フレームＮｏが１のエントリを検索すると、そのエントリの期待値フレームＮｏは１である。試験対象解析ＸＭＬファイル入力部１１２は、内容テーブル１０３からフィールドＦ１１、期待値フレームＮｏ＝１のエントリを検索する。試験対象解析ＸＭＬファイル入力部１１２は、一致した箇所のエントリに試験フレームＮｏ＝１、試験値＝Ｘ１１で設定する。そのエントリの比較実行がＦＡＬＳＥであるため、試験対象解析ＸＭＬファイル入力部１１２は、比較は行わない。
【０１１６】
試験対象解析ＸＭＬファイル入力部１１２は、内容テーブル１０３からフィールドＦ１２、期待値フレームＮｏ＝１のエントリを検索する。試験対象解析ＸＭＬファイル入力部１１２は、一致した箇所のエントリに試験フレームＮｏ＝１、試験値＝Ｖ１２で設定する。そのエントリの比較実行がＴＲＵＥであるため、試験対象解析ＸＭＬファイル入力部１１２は、比較を行うと期待値がＶ１２で試験値がＶ１２で一致するため、Ｒｅｓｕｌｔ＝ＯＫを設定する。
【０１１７】
以下同様にして、試験対象解析ＸＭＬファイル入力部１１２は、２個目のメッセージＭＳＧ２ＢＣを内容テーブル１０３に追加し、テストＢ成功キャプチャーファイルの内容テーブル１０３の入力を終える。
【０１１８】
図２８を参照して、比較モード２でキャプチャーファイルからメッセージテーブル１０２と内容テーブル１０３を作成する手順を説明する。図２８において、メッセージは、前から順番にフレーム番号が１、２の番号が付いている。
【０１１９】
テストＢ期待値キャプチャーファイルでは、最初のメッセージであるＭＳＧ１ＡＢは、Ｎｏｄｅ−Ａが送信し、Ｎｏｄｅ−Ｂが受信するメッセージで、プロトコルはＰ１である。このため、期待値解析ＸＭＬファイル入力部１１１は、メッセージテーブル１０２の最初のエントリにＳＲＣノード＝Ｎｏｄｅ−Ａ、ＤＳＴノード＝Ｎｏｄｅ−Ｂ、プロトコル＝Ｐ１、期待値フレームＮｏ＝１、期待メッセージ＝ＭＳＧ１ＡＢとして設定する。以下同様にして、期待値解析ＸＭＬファイル入力部１１１は、２個目のメッセージＭＳＧ２ＢＣをメッセージテーブル１０２に追加し、テストＢ期待値キャプチャーファイルのメッセージテーブル１０２の入力を終える。
【０１２０】
比較モード３０１がモード２の為、比較フィールドテーブル１０５には比較を行わないフィールド識別子が定義されている。最初のメッセージであるＭＳＧ１ＡＢにはフィールドがＦ１１、Ｆ１２の２個ある。Ｆ１１は比較フィールドテーブル１０５に定義している為、後で試験対象解析ＸＭＬファイル入力部１１２は、比較を実行しない。Ｆ１２は比較フィールドテーブル１０５にない為、後で試験対象解析ＸＭＬファイル入力部１１２は、比較を実行する。
【０１２１】
期待値解析ＸＭＬファイル入力部１１２は、内容テーブル１０３の最初のエントリにフィールドＦ１１を期待値フレームＮｏ＝１、期待値＝Ｖ１１、比較実行＝ＦＡＬＳＥで設定する。期待値解析ＸＭＬファイル入力部１１２は、内容テーブル１０３の次のエントリにフィールドＦ１２を期待値フレームＮｏ＝１、期待値＝Ｖ１２、比較実行＝ＴＲＵＥで設定する。以下同様にして、期待値解析ＸＭＬファイル入力部１１２は、２個目のメッセージＭＳＧ２ＢＣを内容テーブル１０３に追加し、テストＢ期待値キャプチャーファイルの内容テーブル１０３の入力を終える。
【０１２２】
テストＢ成功キャプチャーファイルでは、最初のメッセージであるＭＳＧ１ＡＢは、Ｎｏｄｅ−Ａが送信し、Ｎｏｄｅ−Ｂが受信するメッセージで、プロトコルはＰ１である。このため、試験対象解析ＸＭＬファイル入力部１１２は、メッセージテーブル１０２からＳＲＣノード＝Ｎｏｄｅ−Ａ、ＤＳＴノード＝Ｎｏｄｅ−Ｂ、プロトコル＝Ｐ１、期待メッセージ＝ＭＳＧ１ＡＢのエントリを検索する。試験対象解析ＸＭＬファイル入力部１１２は、最初に一致した箇所のエントリに、試験フレームＮｏ＝１、Ｒｅｓｕｌｔ＝ＯＫとして設定する。以下同様にして、試験対象解析ＸＭＬファイル入力部１１２は、２個目のメッセージＭＳＧ２ＢＣをメッセージテーブル１０２に設定し、テストＢ成功キャプチャーファイルのメッセージテーブル１０２の入力を終える。
【０１２３】
最初のメッセージであるＭＳＧ１ＡＢにはフィールドがＦ１１、Ｆ１２の２個ある。フレームＮｏは１であるため、メッセージテーブル１０２で試験フレームＮｏが１のエントリを検索すると、そのエントリの期待値フレームＮｏは１である。
【０１２４】
試験対象解析ＸＭＬファイル入力部１１２は、内容テーブル１０３からフィールドＦ１１、期待値フレームＮｏ＝１のエントリを検索する。試験対象解析ＸＭＬファイル入力部１１２は、一致した箇所のエントリに試験フレームＮｏ＝１、試験値＝Ｘ１１で設定する。そのエントリの比較実行がＦＡＬＳＥであるため、試験対象解析ＸＭＬファイル入力部１１２は、比較は行わない。
【０１２５】
試験対象解析ＸＭＬファイル入力部１１２は、内容テーブル１０３からフィールドＦ１２、期待値フレームＮｏ＝１のエントリを検索する。試験対象解析ＸＭＬファイル入力部１１２は、一致した箇所のエントリに試験フレームＮｏ＝１、試験値＝Ｖ１２で設定する。そのエントリの比較実行がＴＲＵＥであるため、試験対象解析ＸＭＬファイル入力部１１２は、比較を行う。期待値がＶ１２で試験値がＶ１２で一致するため、試験対象解析ＸＭＬファイル入力部１１２は、Ｒｅｓｕｌｔ＝ＯＫを設定する。
【０１２６】
以下同様にして、試験対象解析ＸＭＬファイル入力部１１２は、２個目のメッセージＭＳＧ２ＢＣを内容テーブル１０３に追加し、テストＢ成功キャプチャーファイルの内容テーブル１０３の入力を終える。
【０１２７】
図２９、図３０、図３１を参照して、図３、図４のメッセージのフィールド構成に対応したメッセージテーブル１０２と内容テーブル１０３を説明する。
【０１２８】
図２９において、テストＢ期待値キャプチャーファイルは、フィールド構成とフィールドの値の正解となるファイルである。期待値解析ＸＭＬファイル入力部１１１は、これよりメッセージテーブル１０２と内容テーブル１０３の期待値部分を作成する。
【０１２９】
メッセージＭＳＧ１ＡＢのフィールドＦ１１、メッセージＭＳＧ２ＢＣのフィールドＦ２１は毎回変化するフィールドの為、後で試験対象解析ＸＭＬファイル入力部１１２は、比較を実行しない。
【０１３０】
比較モード１では、コンフィグレーションファイル入力部１１０は、比較対象のフィールドＦ１２、Ｆ２２のフィールド識別子であるＦ１２ｉｄ、Ｆ２２ｉｄを比較フィールドテーブル１０５に指定する。一方、比較モード２では、コンフィグレーションファイル入力部１１０は、比較対象外のフィールドＦ１１、Ｆ２１のフィールド識別子であるＦ１１ｉｄ、Ｆ２１ｉｄを比較フィールドテーブル１０５に指定する。両者の指定は、等価である。
【０１３１】
テストＢ成功キャプチャーファイルは、テストＢ期待値キャプチャーファイルと同じフィールド構成で、比較対象の値が同じであり、全ての内容テーブル１０３のエントリのＲｅｓｕｌｔはＯＫとなる。
【０１３２】
図３０において、テストＢ失敗１キャプチャーファイルは、同じフィールド構成で、値が異なる。テストＢ期待値キャプチャーファイルにあるフィールドＦ２２の期待値がＸ２２でテストＢ失敗１キャプチャーファイルのフィールドＦ２２の試験値はＶ２２であり値が一致しない為、試験対象解析ＸＭＬファイル入力部１１２は、内容テーブル１０３のＲｅｓｕｌｔをＮＧ、ＣａｕｓｅをＮｏｔＥｑｕａｌとする。
【０１３３】
図３０において、テストＢ失敗２キャプチャーファイルは、フィールドが不足している。テストＢ期待値キャプチャーファイルにあるフィールドＦ２２がない為、試験対象解析ＸＭＬファイル入力部１１２は、フィールドＦ２２の内容テーブル１０３のＲｅｓｕｌｔはＮＧでＣａｕｓｅはＵｎｄｉｃｏｖｅｒｅｄとする。
【０１３４】
図３１において、テストＢ失敗３キャプチャーファイルは、期待しないフィールドがある。テストＢ期待値キャプチャーファイルにないフィールドＦ２３がある為、試験対象解析ＸＭＬファイル入力部１１２は、フィールドＦ２３の内容テーブル１０３のＲｅｓｕｌｔをＮＧ、ＣａｕｓｅをＵｎｅｘｐｅｃｔｅｄとする。
＜６＞比較結果出力
メッセージテーブル、内容テーブルはＧＵＩ(Graphical User Interface)部品で作成され画面上に表として見えるものとする為、結果表示（図５の５１）されている。
実施例１によれば、極めて高速に二つのパケットキャプチャーファイルの違いを検出できる。試験対象のパケットキャプチャーファイルを期待値のパケットキャプチャーファイルと比較する為、テスト毎にチェックする為のデータの作成が不要である。比較を実行するフィールドもしくは比較を実行しないフィールドを選択可能にする事で、違うＩＰアドレス環境や、違う端末加入者のパケットキャプチャーファイル間でも比較が可能であり、同じＩＰアドレス環境や、同じ端末加入者の場合はその部分の比較も行うように調整が可能である。少ない工数でコンフィグレーションファイルを作成でき、一旦作成すればそのコンフィグレーションファイルを再利用も可能。そのコンフィグレーションによって、比較するフィールドと比較しないフィールドを区別可能である。
【０１３５】
また、メッセージシーケンスの違いとフィールド構成の違いと、フィールドの値の違いを全て検出可能である。比較結果が一致か不一致かのみでなく、どの個所が、どのように違ったかを検出可能である。メッセージテーブルで期待値のファイルと試験対象のファイルのメッセージの対応付けを行っている為、メッセージの順序が変化またはメッセージの不足や余分があっても、フィールドの比較が可能である。
【０１３６】
さらに、プログラム内で不要なプロトコルはスキップする為、テキスト比較でやるような必要なプロトコルのメッセ−ジだけに削減しておく必要がない。テスト実行を自動で行うシステムと組合わせることで完全にテストを無人化して、自動実行と自動結果確認を行うことが可能となる。
【実施例２】
【０１３７】
実施例２では、パケット比較プログラムをコマンドラインで実行する場合を説明する。パケット比較プログラムは、コマンドでのバッチ実行動作で、引数で期待値キャプチャーファイルの解析ＸＭＬファイルＥ１１、試験対象キャプチャーファイルの解析ＸＭＬファイルＴ２１のパスを入力として、試験対象キャプチャーファイルの解析ＸＭＬファイルＴ２１と同じディレクトリに、結果ファイルを自動出力する。
【０１３８】
なお、コンフィグレーションファイルのパスは、固定されていることとする。その他は実施例１と同じであるが、以下の比較結果出力が異なる。
【０１３９】
図７のステップ４０において、以下の比較の実行結果の出力を行う。
（１）メッセージテーブル１０２よりＲｅｓｕｌｔがＮＧのメッセージとＣａｕｓｅ、試験フレームＮｏを結果ログ５２へ出力する。
（２）内容テーブル１０３よりＲｅｓｕｌｔがＮＧのフィールドのＣａｕｓｅ、フィールド識別子、ＴＬＶタグ、試験フレームＮｏ、期待値、試験値を結果ログ５２へ出力する。
【０１４０】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。実施例は、分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能である。また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１４１】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【変形実施例】
【０１４２】
プログラムの動作する環境はパーソナルコンピュータ、ワークステーション、大型コンピュータ、専用ハードウェアのあらゆる装置を含みオペレーティングシステムは限定しない。
【０１４３】
プログラム言語は、限定されない。ＸＭＬパーサ１０１は、ＳＡＸ方式に限定せずＤＯＭ（Document Object Model）方式も含む。テーブル作成に限定せず、データベースも含まれる。
【０１４４】
パケット比較プログラム１００の入力は、キャプチャー解析ツール３０の出力した解析ＸＭＬ１１、２１ファイルで読まなくても、バイナリデータを直接読込んでパケット比較プログラム１００でデコードしてもよい。パケット比較プログラム１００の入力は、キャプチャー解析ツールの出力したＣＳＶ形式、パケット一覧テキスト、詳細解析テキストを入力してもよい。
【０１４５】
キャプチャー解析ツール２０の中にパケット比較プログラム１００を組込んで入れる場合も実施形態に含まれる。
比較処理は、メッセージ比較（Ｓ３１）と、内容比較（Ｓ３２）を分けて二回読込んで行っても、一回の読込みで同時に行ってもよい。
【０１４６】
試験対象パケットキャプチャー２０はファイルでなくてもリアルタイムに現在パケットキャプチャーしているパケットキャプチャーも含む。
プロトコルは、何種類でもよい。また、ノードの個数は、何台でもよい。解析ＸＭＬファイル１１，２１の作成方法は、ＧＵＩ画面で手動操作によりＧＵＩキャプチャー解析ツール３０からエキスポートしてもよく、パケット比較プログラム１００内部で自動的にコマンドライン実行方式のキャプチャー解析ツール３０で変換出力してもよく、パケット比較プログラム１００内部で逐次出力しながら解析ＸＭＬファイル１１，２１を作成しないで読んでもどの方法でもよい。
【０１４７】
重複したパケットの削除、端末加入者識別コード（ＩＭＳＩ，ＭＳＩＤ，ＭＩＮ等）の絞り込みは別プログラムで行っても、パケット比較プログラム内で同時に処理してもよい。ＧＵＩとして画面で見る事も、ＣＬＩコマンド実行形式として画面を出さずにテキストにログを出す方法のどちらでも適用できる。
【０１４８】
メッセージ比較（Ｓ３１）にＮＧがあった場合に内容比較（Ｓ３２）に進まないでそこで実行を中止してもよく、中止するかしないかを選択できてもよい。メッセージテーブル１０２の作成と内容テーブル１０３の作成は、分けて期待値解析ＸＭＬファイル１１や試験対象解析ＸＭＬファイル２１をそれぞれ二度読んで行っても、一度の読込みで同時に作成を行ってもよい。メッセージテーブル１０２で期待メッセージと試験メッセージを分けているが、分けずにメッセージだけにしてもよい。
【０１４９】
メッセージテーブル１０２でＳＲＣノード、ＤＳＴノードを入れているが、同じ種類のノードが現れることはなくノードを区別する必要も無いシステム構成では、時にＳＲＣノード、ＤＳＴノードを入れなくてもよい。
【０１５０】
メッセージテーブル１０２のＳＲＣノード、ＤＳＴノードの名前付けは、ｅＮＢ、ＭＭＥでなく複数台存在する環境ではｅＮＢ１、ｅＮＢ２、ｅＮＢ３、ＭＭＥ１、ＭＭＥ２と複数台に分けて管理してもよい。負荷分散の理由等で実際はＡＡＡ１、ＡＡＡ２、ＡＡＡ３、ＨＳＳ１、ＨＳＳ２、ＨＳＳ３と複数台あってもメッセージテーブル１０２のノード名はまとめてＡＡＡ(Authentication Authorization Accounting)やＨＳＳ(Home Subscriber Server)としてまとめて比較してもよい。
【０１５１】
内容テーブル１０３の作成は、毎回行っても、内容比較（Ｓ３２）の直前に行ってもよい。メッセージ比較でＮＧになった場合に内容比較（Ｓ３２）を行わない場合は、内容テーブル１０３の作成が無駄になる。
【０１５２】
対象プロトコルのフィールドは、全て内容テーブル１０３に入るが、内容テーブル１０３に入れる、入れないを指定するコンフィグレーションを使用してもよい。比較フィールドコンフィグレーションファイル４０は、モード１、モード２ではファイルを別々に作成してもよい。
【０１５３】
比較フィールドテーブル１０５は、比較モード１、比較モード２ではテーブルを別々に作成してもよく、テーブルを作成しないでその都度コンフィグレーションファイルを読むことでもよい。期待値キャプチャーファイル１０の入力は、省略して、連続して別の試験対象キャプチャーファイル２０の比較を実行することもできる。その場合は、試験対象キャプチャーファイル２０入力時に設定したデータの初期化と、メッセージテーブル１０２と内容テーブル１０３に追加したデータ削除を行う。
【符号の説明】
【０１５４】
１０…期待値パケットキャプチャーファイル、１１…期待値解析ＸＭＬファイル、２０…試験対象パケットキャプチャーファイル、２１…試験対象解析ＸＭＬファイル、３０…キャプチャー解析ツール、４０…比較フィールドコンフィグレーションファイル、５１…結果表示、５２…結果ログ、１００…パケット比較プログラム、１０１…ＸＭＬパーサ、１０２…メッセージテーブル、１０３…内容テーブル、１０４…比較アルゴリズム、１０５…比較フィールドテーブル、１１０…コンフィグレーションファイル入力部、１１１…期待値解析ＸＭＬファイル入力部、１１２…試験対象解析ＸＭＬファイル入力部、２０１…フレームＮｏ、２０２…プロトコル、２０３…メッセージタイプ、２０４…シーケンス番号、２０５…ＩＭＳＩ、２０６…結果コード、３００…パケットキャプチャー装置、５００…パケット比較装置。
【図１】
2014150445.tif 000003
【図２】
2014150445.tif 000004
【図３】
2014150445.tif 000005
【図４】
2014150445.tif 000006
【図５】
2014150445.tif 000007
【図６】
2014150445.tif 000008
【図７】
2014150445.tif 000009
【図８】
2014150445.tif 000010
【図９】
2014150445.tif 000011
【図１０】
2014150445.tif 000012
【図１１】
2014150445.tif 000013
【図１２】
2014150445.tif 000014
【図１３】
2014150445.tif 000015
【図１４】
2014150445.tif 000016
【図１５】
2014150445.tif 000017
【図１６】
2014150445.tif 000018
【図１７】
2014150445.tif 000019
【図１８】
2014150445.tif 000020
【図１９】
2014150445.tif 000021
【図２０】
2014150445.tif 000022
【図２１】
2014150445.tif 000023
【図２２】
2014150445.tif 000024
【図２３】
2014150445.tif 000025
【図２４】
2014150445.tif 000026
【図２５】
2014150445.tif 000027
【図２６】
2014150445.tif 000028
【図２７】
2014150445.tif 000029
【図２８】
2014150445.tif 000030
【図２９】
2014150445.tif 000031
【図３０】
2014150445.tif 000032
【図３１】
2014150445.tif 000033