(57)【要約】【課題】  容易に異なるフォーマットに対応することができるアプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法を提供する。【解決手段】  端末装置１は、アプリケーションを格納する第１の格納部１７１と、前記第１の格納部に記憶されているアプリケーションにおけるログデータを格納する第２の格納部１７５とを具備する。端末装置１は、前記第２の格納部に格納されているログデータを読み込み、解析ライブラリが格納される記憶領域１７７に記憶されているデータに基づいて読み込むログデータの解析を行い、解析したデータに基づいてシナリオを生成し、生成したシナリオを入力データとして前記アプリケーションを実行する。【選択図】  図３
2010218452.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションを格納する第１の格納部と、
前記第１の格納部に記憶されているアプリケーションにおけるログデータを格納する第２の格納部と、
前記第２の格納部に格納されているログデータを読み込む読み込み処理部と、
解析ライブラリが格納される解析ライブラリ格納部と、
前記解析ライブラリ格納部に格納される解析ライブラリに基づいて前記読み込み処理部により読み込むログデータの解析を行う解析処理部と、
前記解析処理部により解析したデータに基づいてシナリオを生成するシナリオ生成部と、
前記シナリオ生成部により生成されるシナリオを入力データとして前記アプリケーションを実行する自動実行部と、
を具備することを特徴とするアプリケーションのテストを行う端末装置。
【請求項２】
データが入力される入出力部と、
前記入出力部により入力される解析ライブラリを前記解析ライブラリ格納部に格納するように制御する制御部と、
をさらに具備することを特徴とする請求項１に記載のアプリケーションのテストを行う端末装置。
【請求項３】
前記読み込み処理部は、初回に予め設定されたサイズのデータを読み込むことを特徴とする請求項１に記載のアプリケーションのテストを行う端末装置。
【請求項４】
前記読み込み処理部は、初回に読み込んだデータの中に１つのログデータの長さを示す情報が含まれていない場合、解析ライブラリを参照することによりログデータにおける長さ情報の位置を確認し、長さ情報を含む位置までのサイズのログデータを読み込むことを特徴とする請求項３に記載のアプリケーションのテストを行う端末装置。
【請求項５】
前記読み込み処理部は、読み込んだデータの中に１つのログデータの長さを示す情報が含まれている場合、１つのログデータの長さを示す情報に基づいて次回の読み込みを行う事を特徴とする請求項４に記載のアプリケーションのテストを行う端末装置。
【請求項６】
アプリケーションを格納する外部機器とデータの送受信を行う第１の入出力部と、
コマンドとレスポンスとを対応付けて記憶する電文シナリオ格納部と、
電文解析ライブラリが格納される電文解析ライブラリ格納部と、
前記電文解析ライブラリ格納部に格納される電文解析ライブラリに基づいて前記第１の入出力部により前記外部機器から受信する電文の解析を行い、電文に含まれるコマンドを抽出する解析処理部と、
前記解析処理部により抽出したコマンドに対応付けられているレスポンスを抽出し前記第１の入出力部により前記外部機器に送信するシミュレーション処理部と、
を具備することを特徴とするアプリケーションのテストを行う端末装置。
【請求項７】
データが入力される第２の入出力部と、
前記第２の入出力部により入力される電文解析ライブラリを前記電文解析ライブラリ格納部に格納するように制御する制御部と、
をさらに具備することを特徴とする請求項６に記載のアプリケーションのテストを行う端末装置。
【請求項８】
前記解析処理部は、前記電文解析ライブラリ格納部に格納される電文解析ライブラリを参照することにより電文の各データのサイズを認識し、認識したサイズ分のデータを前記外部機器に対して要求することを特徴とする請求項６に記載のアプリケーションのテストを行う端末装置。
【請求項９】
アプリケーションを格納する第１の格納部と、前記第１の格納部に記憶されているアプリケーションにおけるログデータを格納する第２の格納部とを具備する端末装置に用いられるアプリケーションのテスト方法であって、
前記第２の格納部に格納されているログデータを読み込み、
解析ライブラリが格納される記憶領域に記憶されているデータに基づいて読み込むログデータの解析を行い、
解析したデータに基づいてシナリオを生成し、
生成したシナリオを入力データとして前記アプリケーションを実行する、
ことを特徴とするアプリケーションのテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、ログに基づいてアプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法に関する。
【背景技術】
【０００２】
コンピュータのプログラムを実行し、正しく動作するか否かを確認するソフトウェアテストが一般的に行われている。ソフトウェアテストは、プログラム中のバグ（欠陥）をできる限り多く発見することを目的として行われる。
【０００３】
ソフトウェアのテストの方法として、プログラムに対する入出力の関係に着目してテストを行う方法がある。例えば、通信システムの障害発生時のログを入力データとして、障害状況の再現及びシミユレ−ションを行い、障害原因を短時間で見つけ出せるようにするための自動ツールが提供されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０４−３０８９４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記したように、従来の自動実行ツールは、ログデータを入力データとしてシミュレーションを行い、確認用のデータを出力する。通常、アプリケーションでは、入出力データに所定のフォーマットが定められている。即ち、あるフォーマットに適合するように作成された自動実行ツールは、異なるフォーマットのログデータ及びアプリケーションに対応することができない。この為、アプリケーションまたはシステム毎に自動実行ツールを全て作成する必要があるという問題がある。
【０００６】
そこで、本発明の目的は、容易に異なるフォーマットに対応することができるアプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の一実施形態としてのアプリケーションのテストを行う端末装置は、アプリケーションを格納する第１の格納部と、前記第１の格納部に記憶されているアプリケーションにおけるログデータを格納する第２の格納部と、前記第２の格納部に格納されているログデータを読み込む読み込み処理部と、解析ライブラリが格納される解析ライブラリ格納部と、前記解析ライブラリ格納部に格納される解析ライブラリに基づいて前記読み込み処理部により読み込むログデータの解析を行う解析処理部と、前記解析処理部により解析したデータに基づいてシナリオを生成するシナリオ生成部と、前記シナリオ生成部により生成されるシナリオを入力データとして前記アプリケーションを実行する自動実行部と、を具備する。
【０００８】
また、本発明の一実施形態としてのアプリケーションのテスト方法は、アプリケーションを格納する第１の格納部と、前記第１の格納部に記憶されているアプリケーションにおけるログデータを格納する第２の格納部とを具備する端末装置に用いられるアプリケーションのテスト方法であって、前記第２の格納部に格納されているログデータを読み込み、解析ライブラリが格納される記憶領域に記憶されているデータに基づいて読み込むログデータの解析を行い、解析したデータに基づいてシナリオを生成し、生成したシナリオを入力データとして前記アプリケーションを実行する。
【発明の効果】
【０００９】
この発明の一形態によれば、容易に異なるフォーマットに対応することができるアプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の第１の実施形態に係るアプリケーションのテストを行う端末装置１の構成例について説明するためのブロック図である。
【図２】図２は、図１に示す記憶部に記憶されているファイルの例について説明するための説明図である。
【図３】図３は、図１及び図２に示す端末装置において自動実行処理を行う例について説明するための説明図である。
【図４】図４は、解析ライブラリ格納部に格納される解析ライブラリの例について説明するための説明図である。
【図５】図５は、図１及び図２に示す端末装置において行われる処理について説明するためのフローチャートである。
【図６】図６は、本発明の第２の実施形態に係るアプリケーションのテストを行う端末装置について説明するための説明図である。
【図７】図７は、電文解析ライブラリ格納部に格納される電文解析ライブラリの例について説明するための説明図である。
【図８】図８は、図６に示すシミュレータＰＣにおいて行われる処理について説明するためのフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、本発明の一実施形態に係るアプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法について詳細に説明する。
【００１２】
図１は、本発明の第１の実施形態に係るアプリケーションのテストを行う端末装置１の構成例について説明するためのブロック図である。  
図１に示すように、端末装置１は、ＣＰＵ１１、入出力部１２、ディスプレイ１３、キーボード１４、ＲＯＭ１５、ＲＡＭ１６、及び記憶部１７などを有している。
【００１３】
ＣＰＵ１１は、端末装置１全体の制御を司る制御部として機能する。ＣＰＵ１１は、ＲＯＭ１５あるいは記憶部１７に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。
【００１４】
入出力部１２は、例えばＬＡＮなどを介して外部の機器と通信を行うためのインターフェース、または、記憶媒体を接続可能なインターフェースにより構成される。  
ディスプレイ１３は、ＣＰＵ１１の制御により種々の情報を表示する。キーボード１４は、端末装置１の操作者による操作を操作信号として受け取る。
【００１５】
ＲＯＭ１５は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＣＰＵ１１は、ＲＯＭ１５に記憶されているプログラムを実行することにより、種々の処理を実現することができる。
【００１６】
ＲＡＭ１６は、ワーキングメモリとして機能する揮発性のメモリである。ＲＡＭ１６は、ＣＰＵ１１の処理中のデータなどを一時的に格納する。例えば、ＲＡＭ１６は、入出力部１２を介して受信したデータを一時的に格納する。また、ＲＡＭ１６は、ＣＰＵ１１が実行するプログラムを一時的に格納する。
【００１７】
記憶部１７は、記憶部として機能する。記憶部１７は、例えば、ＥＥＰＲＯＭまたはＨＤＤなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。記憶部１７は、例えば図２に示すようなファイルを記憶する。
【００１８】
図２は、図１に示す記憶部１７に記憶されているファイルの例について説明するための説明図である。
【００１９】
図２に示すように、記憶部１７は、アプリケーション１７１、ログファイル１７５、シナリオジェネレータ１７６、及び自動実行ツール１７８などを記憶する。また、記憶部１７は、シナリオジェネレータ１７６により参照される記憶領域である解析ライブラリ格納部１７７を備えている。なお、アプリケーション１７１、シナリオジェネレータ１７６、及び自動実行ツール１７８は、全てＣＰＵ１１により実行されることにより動作するものとして説明する。
【００２０】
アプリケーション１７１は、操作入力のデータに対して処理結果を出力するソフトウェアである。アプリケーション１７１は、ＣＰＵ１１により実行されることにより動作する。
【００２１】
ログファイル１７５は、動作ログデータが格納される記憶領域である。ログファイル１７５は、アプリケーション１７１に操作信号が入力される場合に操作信号及び処理結果を記憶する。即ち、ログデータは、アプリケーション１７１に入力される操作信号を有する。ログデータは、例えば、コマンドコード、サブコマンドコード、レングス、ダミー領域、実データ領域などで構成されている。
【００２２】
また、コマンドは、例えば、Ｏｐｅｎコマンド＝１、Ｃｌｏｓｅコマンド＝２である場合、または、Ｃｏｎｎｅｃｔコマンド＝１、Ｇｅｔコマンド＝２、Ｓｅｔコマンド＝３、Ｄｉｓｃｏｎｎｅｃｔコマンド＝４である場合など、構成及びサイズがアプリケーションまたはシステムごとに異なる可能性がある。
【００２３】
なお、データの長さは可変である為、ログデータ中には、必ずデータ長を示す情報が書き込まれる領域が存在する。
【００２４】
シナリオジェネレータ１７６は、ログファイル１７５中のログデータに基づいてシナリオを生成する。シナリオは、アプリケーション１７１に基づいて動作する装置に対して行われた操作入力を示す情報である。即ち、シナリオジェネレータ１７６は、ログデータに基づいて、その際に行われた入力操作を判断し、シナリオを生成する。
【００２５】
この為に、シナリオジェネレータ１７６は、ログデータの解析を行う必要がある。上記したように、ログデータは、アプリケーション１７１に対応するフォーマットにより攻勢される。シナリオジェネレータ１７６は、アプリケーション１７１に対応する解析ライブラリを用いてログデータの解析を行う。
【００２６】
解析ライブラリ格納部１７７は、解析ライブラリを格納するための記憶領域である。解析ライブラリは、特定のアプリケーションにおけるログデータのフォーマットを少なくとも有している。即ち、シナリオジェネレータ１７６は、解析ライブラリを参照することにより、ログデータの各バイト毎のデータと、データの種類と、を対応付けることができる。
【００２７】
解析ライブラリ格納部１７７に格納される解析ライブラリは、端末装置１の操作者により入力される。即ち、端末装置１の操作者により、テストを行うアプリケーションに対応する解析ライブラリが例えば入出力部１２などにより入力される。ＣＰＵ１１は、入力された解析ライブラリを、解析ライブラリ格納部１７７に格納する。
【００２８】
この構成により、端末装置１のＣＰＵ１１は、記憶部１７の常に同じ記憶領域を参照することにより、種々のフォーマットのログデータの解析を行うことができる。
【００２９】
自動実行ツール１７８は、シナリオジェネレータ１７６により生成されたシナリオを取得し、アプリケーション１７１に投入する。これにより、アプリケーション１７１は、実際に操作が入力される場合と同様の処理（自動実行処理）を行う事ができる。
【００３０】
即ち、ＣＰＵ１１は、シナリオジェネレータ１７６、解析ライブラリ格納部１７７の記憶データ、及び自動実行ツール１７８により、ログファイル１７５からログデータの読み込み、読み込んだログの解析、シナリオの生成、及び、自動実行処理を行う事ができる。
【００３１】
図３は、図１及び図２に示す端末装置１において自動実行処理を行う例について説明するための説明図である。  
図３に示すように、アプリケーション１７１に基づいて動作する装置に、操作が入力される場合、アプリケーション１７１は、操作信号の受信処理を行い、操作信号に基づいて処理を行い、上記のログデータを記憶部１７のログファイル１７５に記憶する。なお、ログファイル１７５は、予め記憶されているものであってもよい。
【００３２】
ＣＰＵ１１は、シナリオジェネレータ１７６を実行する。この場合、ＣＰＵ１１は、ログファイル１７５からログデータを読み込む。また、解析ライブラリ格納部１７７から解析ライブラリを読み込む。ＣＰＵ１１は、読み込んだ解析ライブラリに基づいてログデータの解析を行う。さらに、ＣＰＵ１１は、解析したログデータ（解析データ）に基づいてシナリオを生成し、出力する。これにより、ＣＰＵ１１は、操作入力を再現する。ＣＰＵ１１は、出力したシナリオをＲＡＭ１６に一時的に記憶する。
【００３３】
ＣＰＵ１１は、自動実行ツールを実行する。この場合、ＣＰＵ１１は、ＲＡＭ１６に記憶されているシナリオを読み込み、擬似メッセージを生成する。ＣＰＵ１１は、生成した擬似メッセージを操作信号をとしてアプリケーション１７１に入力する。
【００３４】
ＣＰＵ１１は、アプリケーション１７１を起動する。ＣＰＵ１１は、操作信号を入力データとしてアプリケーション１７１を実行し、処理結果を取得する。ここで、ＣＰＵ１１は、例えば、ログファイル１７５に格納されている先の処理結果と、擬似メッセージに基づいて取得した処理結果とを比較し、一致するか否かの判定を行う。両結果が一致する場合、ＣＰＵ１１は、不具合無しであると判定する。また、両結果が一致しない場合、ＣＰＵ１１は、不具合有りであると判定する。
【００３５】
図４は、解析ライブラリ格納部１７７に格納される解析ライブラリの例について説明するための説明図である。
【００３６】
本実施形態では、シナリオジェネレータ１７６の書き換えは行われない。この為、シナリオジェネレータ１７６から参照する解析ライブラリの記憶部１７におけるアドレスは、常に同じである。即ち、シナリオジェネレータ１７６の構文には、解析ライブラリ格納部１７７のアドレスが対応付けられている。
【００３７】
ＣＰＵ１１は、シナリオジェネレータ１７６を実行する場合、ＲＡＭ１６に読み込んだ構文を一時的に記憶する。ＣＰＵ１１は、読み込んだ構文中にリンクアドレスが張られている場合、リンク先のアドレスに格納されているデータを参照する。即ち、この場合、解析ライブラリ格納部１７７のアドレスが構文中に貼られているため、ＣＰＵ１１は、解析ライブラリ格納部１７７の記憶しているデータを読み込み、ＲＡＭ１６に格納する。
【００３８】
例えば、アプリケーションＡにおけるログのフォーマットが、「コマンド／レングス／データ」により構成される場合、解析ライブラリ格納部１７７には、図４に示すような解析ライブラリＡが格納される。
【００３９】
図４に示すように、解析ライブラリＡは、「コマンド／レングス／データ」により構成される。また、また、解析ライブラリＡは、各データの長さ（バイト数）を示す情報を有する。ＣＰＵ１１は、解析ライブラリＡに基づいて各データのバイト数を認識する。これにより、ＣＰＵ１１は、２値データの羅列であるログデータの各バイト毎のデータの種類を認識する。即ち、ＣＰＵ１１は、ログデータから「コマンド／レングス／データ」のデータを取得する。
【００４０】
また、例えば、アプリケーションＢにおけるログのフォーマットが、「レングス／ダミー／コマンド／サブコマンド／データ」により構成される場合、解析ライブラリ格納部１７７には、図４に示すような解析ライブラリＢが格納される。
【００４１】
図４に示すように、解析ライブラリＢは、「レングス／ダミー／コマンド／サブコマンド／データ」により構成される。また、また、解析ライブラリＢは、各データの長さ（バイト数）を示す情報を有する。ＣＰＵ１１は、解析ライブラリＢに基づいて各データのバイト数を認識する。これにより、ＣＰＵ１１は、２値データの羅列であるログデータの各バイト毎のデータの種類を認識する。即ち、ＣＰＵ１１は、ログデータから「レングス／ダミー／コマンド／サブコマンド／データ」のデータを取得する。
【００４２】
上記したように、解析ライブラリ格納部１７７に格納されているフォーマットに因らず、ＣＰＵ１１は、自動実行処理の一連の処理を行うことができる。このため、本実施形態に係る端末装置１は、システムまたはアプリケーションに合わせて複数のログフォーマットを簡単に切り替えることができる。即ち、プログラムのテストの環境を容易に入れ替えることができる。
【００４３】
図５は、図１及び図２に示す端末装置１において行われる処理について説明するためのフローチャートである。
【００４４】
ＣＰＵ１１は、シナリオジェネレータ１７６を実行することにより、アプリケーションによる動作ログをファイルごと読み込む（ステップＳ１１）。ＣＰＵ１１は、ログデータの初回読み込みサイズをセットする（ステップＳ１２）。なお、ここでセットする読み込みサイズは、予め設定するものであり、適宜変更できるものである。さらに、ＣＰＵ１１は、読み込み開始位置、即ちオフセットを０にセットする（ステップＳ１３）。
【００４５】
ＣＰＵ１１は、全てのログデータの読み取りが完了したか否かの判定を行う（ステップＳ１４）。即ち、ＣＰＵ１１は、オフセットを確認し、オフセットが読み込んだログファイルの最終アドレスに達したか否か判定する。
【００４６】
まだ読み込んでいないログデータが存在する場合（ステップＳ１４、ＮＯ）、ＣＰＵ１１は、オフセットから設定した読み込みサイズ分のログデータを読み込む。（ステップＳ１５）。
【００４７】
ＣＰＵ１１は、読み込んだデータにログデータの長さを示すデータが含まれていたか否か判定する（ステップＳ１６）。即ち、ＣＰＵ１１は、解析ライブラリを参照し、読み込んだデータがレングスを含むものであるか否かを判断する。
【００４８】
ここで、ログデータの長さを示すデータが含まれていない場合、（ステップＳ１６、ＮＯ）、ＣＰＵ１１は、データ不足と判定し、長さの書かれた領域が含まれるデータサイズの情報を、呼び出し元のシナリオジェネレータに返す（ステップＳ１７）。ＣＰＵ１１は、再度読み込みサイズをセットし（ステップＳ１８）、ステップＳ１５に移行する。なお、この場合、ＣＰＵ１１は、解析ライブラリを参照することによりレングスの位置を認識している。即ち、ステップＳ１８においてセットする読み込みサイズは、オフセット位置から少なくともレングスに達する長さである。
【００４９】
ステップＳ１６において、読み込んだデータに長さを示すデータが含まれている場合（ステップＳ１６、ＹＥＳ）、ＣＰＵ１１は、読み込んだ長さを示すデータに基づいてログデータ全体の長さを認識する（ステップＳ１９）。
【００５０】
ＣＰＵ１１は、認識した１つのログデータ全体の長さに基づいて１つのログデータ分のデータを読み込む（ステップＳ２０）。ＣＰＵ１１は、読み込んだ１つのログデータに対して、解析処理を行う（ステップＳ２１）。即ち、ＣＰＵ１１は、解析ライブラリ格納部１７７に格納されている解析ライブラリに基づいて、ログデータの各バイト毎のデータの種類を判別する。
【００５１】
これにより、ＣＰＵ１１は、解析結果を取得する（ステップＳ２２）。ＣＰＵ１１は、取得した解析結果をシナリオジェネレータ１７６に入力する。また、ＣＰＵ１１は、読み込んだログデータの長さだけオフセットをシークさせる（ステップＳ２３）。ＣＰＵ１１は、上記の処理を、ログファイルの全てのデータを読み込むまで繰り返し行う。
【００５２】
ステップＳ１４において、全てのログデータの読み込みが完了した場合（ステップＳ１４、ＹＥＳ）、ＣＰＵ１１は、シナリオの生成を行う（ステップＳ２４）。即ち、ＣＰＵ１１は、シナリオジェネレータ１７６に読み込ませたデータに基づいてシナリオを生成するように制御を行う。
【００５３】
ＣＰＵ１１は、シナリオジェネレータ１７６の出力を自動実行ツール１７８に入力する。これにより、ＣＰＵ１１は、自動実行処理を行う（ステップＳ２５）。即ち、自動実行ツール１７８は、ＣＰＵ１１の制御に基づいて、入力されたシナリオに基づいて擬似メッセージを作成する。自動実行ツール１７８は、擬似メッセージをアプリケーション１７１に入力する。アプリケーション１７１は、擬似メッセージを入力データとして処理を行い、処理結果を出力する。これにより、アプリケーションの動作が自動的に再現される。
【００５４】
上記した本発明の位置実施形態によると、端末装置１の記憶部１７は、ログデータの解析を行う為の解析ライブラリが格納される記憶領域を備えている。また、シナリオジェネレータ１７６の構文中に解析ライブラリが格納される記憶領域へのリンクが含まれている。この為、ＣＰＵ１１は、シナリオジェネレータ１７６の構文中に含まれるリンクを読み込んだ場合、リンク先の解析ライブラリ格納部を参照することができる。
【００５５】
これにより、シナリオジェネレータの内容を書き換えることなく、異なるフォーマットのデータを解析することができる。この結果、容易に異なるフォーマットに対応することができるアプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法を提供することができる。
【００５６】
次に本発明の第２の実施形態について説明する。
【００５７】
図６は、本発明の第２の実施形態に係るアプリケーションのテストを行う端末装置２について説明するための説明図である。  
図６に示すように、異なるＰＣ上、または同ＰＣ内でのアプリケーション間（プロセス間）で、ＬＡＮを使用し通信を行うシステムがある。本実施形態の端末装置（シミュレータＰＣ）２は、ＬＡＮなどを解してターゲットＰＣ３と接続されている。これにより、ターゲットとなるアプリケーション以外をシミュレーション環境とするシステムが構築される。
【００５８】
シミュレータＰＣ２は、ターゲットＰＣ３に格納されているアプリケーション１７２のテストを行う端末である。シミュレータＰＣ２は、電文シナリオ２７５、及びシミュレータ２７６などを有している。
【００５９】
なお、シミュレータＰＣ２は、第１の実施形態と同様に、ＣＰＵ１１、入出力部１２、ディスプレイ１３、キーボード１４、ＲＯＭ１５、ＲＡＭ１６、及び記憶部１７などを有している。また、電文シナリオ２７５、及びシミュレータ２７６は、記憶部１７に格納されているとする。またさらに、記憶部１７は、電文解析ライブラリ格納部２７７を有している。
【００６０】
電文シナリオ２７５は、コマンドとレスポンスとが対応付けられたデータである。電文シナリオ２７５は、実際にデータがアプリケーション１７２に入力された場合の処理結果（ログデータ）である。
【００６１】
シミュレータ２７６は、シミュレーション処理を実行するプログラムである。シミュレータ２７６の構文には、電文解析ライブラリ格納部２７７へのリンクが含まれている。
【００６２】
電文解析ライブラリ格納部２７７は、電文解析ライブラリを格納するための記憶領域である。電文解析ライブラリは、特定のアプリケーションから送信される電文のフォーマットを少なくとも情報として有する。
【００６３】
電文解析ライブラリ格納部２７７に格納される電文解析ライブラリは、シミュレータＰＣ２の操作者により入力される。即ち、シミュレータＰＣ２の操作者により、テストを行うアプリケーションに対応する電文解析ライブラリが図示しない例えば入出力部１２などにより入力される。ＣＰＵ１１は、入力された電文解析ライブラリを、電文解析ライブラリ格納部２７７に格納する。
【００６４】
ターゲットＰＣ３は、アプリケーション１７２を格納している。アプリケーション１７２は、実際の通信電文を送信するものである。アプリケーション１７２は、実際の通信電文に基づいて本来の処理を行う。この為、シミュレータＰＣ２は、ターゲットＰＣ３のアプリケーション１７２から送信される電文の解析を行う。シミュレータＰＣ２は解析した電文に基づいてレスポンスを生成し、ターゲットＰＣ３に送信する。
【００６５】
ＬＡＮを介して送信される電文は、ヘッダを必ず有する。ヘッダは、少なくとも実データ部の長さの情報を有する。しかし、その他のヘッダの情報、例えば、ヘッダ長、電文長、電文フォーマットなどは、アプリケーションごとに異なる。この為、シミュレータＰＣ２は、アプリケーション１７２から送信される電文を解析するために、アプリケーションに対応する電文解析ライブラリが必要になる。
【００６６】
シミュレータ２７６は、電文解析ライブラリを参照することにより、電文の各バイト毎のデータと、データの種類と、を対応付けることができる。この構成により、シミュレータＰＣ２のＣＰＵ１１は、記憶部１７の常に同じ記憶領域を参照することにより、種々のフォーマットの電文の解析を行うことができる。
【００６７】
即ち、シミュレータ２７６は、アプリケーション１７２から電文を受信した場合、電文解析ライブラリ格納部２７７に格納されている電文解析ライブラリに基づいて電文の解析を行う。シミュレータ２７６は、解析したデータにコマンドデータが含まれている場合、電文シナリオ２７５を参照する。シミュレータ２７６は、受信したコマンドデータに対応付けられているレスポンスを電文シナリオ２７５から抽出し、レスポンスデータをターゲットＰＣ３に返信する。
【００６８】
図７は、電文解析ライブラリ格納部２７７に格納される電文解析ライブラリの例について説明するための説明図である。
【００６９】
本実施形態では、シミュレータ２７６の書き換えは行われない。この為、シミュレータ２７６から参照する電文解析ライブラリの記憶部１７におけるアドレスは、常に同じである。即ち、シミュレータ２７６の構文には、電文解析ライブラリ格納部２７７のアドレスが対応付けられている。
【００７０】
ＣＰＵ１１は、シミュレータ２７６を実行する場合、ＲＡＭ１６に読み込んだ構文を一時的に記憶する。ＣＰＵ１１は、読み込んだ構文中にリンクアドレスが張られている場合、リンク先のアドレスに格納されているデータを参照する。即ち、この場合、電文解析ライブラリ格納部２７７のアドレスが構文中に貼られているため、ＣＰＵ１１は、電文解析ライブラリ格納部２７７の記憶しているデータを読み込み、ＲＡＭ１６に格納する。
【００７１】
例えば、アプリケーションＡにおける電文のフォーマット（Ａフォーマット）が、「送信元／送信先／・・・／実データの長さ／実データ」を含み、実データが「コマンド／レングス／データ」などにより構成される場合、電文解析ライブラリ格納部２７７には、図７に示すようなＡフォーマットの電文解析ライブラリが格納される。
【００７２】
また、例えば、アプリケーションＢにおける電文のフォーマット（Ｂフォーマット）が、「実データの長さ／実データ」を含み、実データが「コマンド／レングス／データ」などにより構成される場合、電文解析ライブラリ格納部２７７には、図７に示すようなＢフォーマットの電文解析ライブラリが格納される。
【００７３】
シミュレータ２７６は、電文解析ライブラリを参照し、アプリケーション１７２から送信される電文の各データ毎の種類を認識する。
【００７４】
上記したように、電文解析ライブラリ格納部２７７に格納されているフォーマットに因らず、シミュレータ２７６は、シミュレーション処理の一連の動作を行うことができる。このため、本実施形態に係るシミュレータＰＣ２は、システムまたはアプリケーションに合わせて複数の電文のフォーマットを簡単に切り替えることができる。即ち、プログラムのテストの環境を容易に入れ替えることができる。
【００７５】
図８は、図６に示すシミュレータＰＣ２において行われる処理について説明するためのフローチャートである。
【００７６】
電文解析ライブラリ格納部２７７に格納される電文解析ライブラリは、フォーマットごとに異なるヘッダ部長を取得する為の関数、引数で渡されたヘッダ部分の情報を元に、全データのうちヘッダ部分を除く実データ部長を取得する為の関数、及び、引数で渡された実データ部分のデータを元に、実データ内のコマンドコードを取得する為の関数などを有している。
【００７７】
ＣＰＵ１１の制御に基づき動作するシミュレータ２７６は、電文解析ライブラリ格納部２７７を参照し、電文解析ライブラリから「フォーマットごとに異なるヘッダ部長を取得する為の関数」を取得する（ステップＳ３１）。シミュレータ２７６は、取得した関数を実行し、アプリケーションごとに異なる電文フォーマットのヘッダサイズを取得する。
【００７８】
シミュレータ２７６は、取得したヘッダサイズに基づいて、アプリケーション１７２に対しデータの送信を要求し、アプリケーション１７２から受信する電文のヘッダを取得する（ステップＳ３２）。
【００７９】
シミュレータ２７６は、電文解析ライブラリ格納部２７７を参照し、電文解析ライブラリから「引数で渡されたヘッダ部分の情報を元に、全データのうちヘッダ部分を除く実データ部長を取得する為の関数」を取得する（ステップＳ３３）。シミュレータ２７６は、取得した関数を実行し、アプリケーションごとに異なる電文フォーマットの実データ長を取得する。
【００８０】
シミュレータ２７６は、取得した実データ長の情報に基づいて、アプリケーション１７２に対しデータの送信を要求し、アプリケーション１７２から受信する電文の実データを取得する（ステップＳ３４）。
【００８１】
シミュレータ２７６は、取得した実データを電文解析ライブラリに入力する（ステップＳ３５）。
【００８２】
電文解析ライブラリは、ＣＰＵ１１の制御に基づいて動作する。電文解析ライブラリは、「引数で渡された実データ部分のデータを元に、実データ内のコマンドコードを取得する為の関数」を実行することにより、入力された実データからコマンドコードを取得する。電文解析ライブラリは、取得したコマンドコードをシミュレータ２７６に入力する。（ステップＳ３６）。
【００８３】
シミュレータ２７６は、電文シナリオ２７５を参照し、入力されるコマンドコードに対応付けられているレスポンスを検索する。（ステップＳ３７）。シミュレータ２７６は、検索したレスポンスをターゲットＰＣ３に送信する（ステップＳ３８）。
【００８４】
さらにＣＰＵ１１は、次の電文が存在するか否か判定する（ステップＳ３９）。次の電文が存在する場合、ＣＰＵ１１は、ステップＳ３２に移行し、電文を受信しなくなるまで上記の処理を繰り返し行う。
【００８５】
なお、シミュレータ２７６が電文シナリオを参照し、コマンドコードに対応付けられているレスポンスを検索する構成として説明したが、上記の処理を電文解析ライブラリが行ってもよい。
【００８６】
上記した本発明の位置実施形態によると、アプリケーションに基づいて動作する他の装置から受信する電文の解析を行う場合、所定の記憶領域に格納されている電文解析ライブラリを参照することにより、電文の解析を行うことができる。電文解析ライブラリが格納される記憶領域は、書き換え可能な記憶媒体中に設けられているため、格納する電文解析ライブラリをテストするアプリケーションまたはシステムに適合するものに容易に書き換えることができる。
【００８７】
これにより、シミュレータの内容を書き換えることなく、異なるフォーマットの電文を解析することができる。この結果、容易に異なるフォーマットに対応することができるアプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法を提供することができる。
【００８８】
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具現化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合わせてもよい。
【符号の説明】
【００８９】
１…端末装置、２…シミュレータＰＣ、３…ターゲットＰＣ、１１…ＣＰＵ、１２…入出力部、１３…ディスプレイ、１４…キーボード、１５…ＲＯＭ、１６…ＲＡＭ、１７…記憶部、１７１…アプリケーション、１７２…アプリケーション、１７５…ログファイル、１７６…シナリオジェネレータ、１７７…解析ライブラリ格納部、１７８…自動実行ツール、２７５…電文シナリオ、２７６…シミュレータ、２７７…電文解析ライブラリ格納部。
【図１】
2010218452.tif 000003
【図２】
2010218452.tif 000004
【図３】
2010218452.tif 000005
【図４】
2010218452.tif 000006
【図５】
2010218452.tif 000007
【図６】
2010218452.tif 000008
【図７】
2010218452.tif 000009
【図８】
2010218452.tif 000010