JP2010218452A - アプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法 - Google Patents
アプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法 Download PDFInfo
- Publication number
- JP2010218452A JP2010218452A JP2009067008A JP2009067008A JP2010218452A JP 2010218452 A JP2010218452 A JP 2010218452A JP 2009067008 A JP2009067008 A JP 2009067008A JP 2009067008 A JP2009067008 A JP 2009067008A JP 2010218452 A JP2010218452 A JP 2010218452A
- Authority
- JP
- Japan
- Prior art keywords
- data
- application
- analysis library
- message
- storage unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
【課題】 容易に異なるフォーマットに対応することができるアプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法を提供する。
【解決手段】 端末装置1は、アプリケーションを格納する第1の格納部171と、前記第1の格納部に記憶されているアプリケーションにおけるログデータを格納する第2の格納部175とを具備する。端末装置1は、前記第2の格納部に格納されているログデータを読み込み、解析ライブラリが格納される記憶領域177に記憶されているデータに基づいて読み込むログデータの解析を行い、解析したデータに基づいてシナリオを生成し、生成したシナリオを入力データとして前記アプリケーションを実行する。
【選択図】 図3
【解決手段】 端末装置1は、アプリケーションを格納する第1の格納部171と、前記第1の格納部に記憶されているアプリケーションにおけるログデータを格納する第2の格納部175とを具備する。端末装置1は、前記第2の格納部に格納されているログデータを読み込み、解析ライブラリが格納される記憶領域177に記憶されているデータに基づいて読み込むログデータの解析を行い、解析したデータに基づいてシナリオを生成し、生成したシナリオを入力データとして前記アプリケーションを実行する。
【選択図】 図3
Description
本発明は、例えば、ログに基づいてアプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法に関する。
コンピュータのプログラムを実行し、正しく動作するか否かを確認するソフトウェアテストが一般的に行われている。ソフトウェアテストは、プログラム中のバグ(欠陥)をできる限り多く発見することを目的として行われる。
ソフトウェアのテストの方法として、プログラムに対する入出力の関係に着目してテストを行う方法がある。例えば、通信システムの障害発生時のログを入力データとして、障害状況の再現及びシミユレ−ションを行い、障害原因を短時間で見つけ出せるようにするための自動ツールが提供されている(例えば、特許文献1参照)。
上記したように、従来の自動実行ツールは、ログデータを入力データとしてシミュレーションを行い、確認用のデータを出力する。通常、アプリケーションでは、入出力データに所定のフォーマットが定められている。即ち、あるフォーマットに適合するように作成された自動実行ツールは、異なるフォーマットのログデータ及びアプリケーションに対応することができない。この為、アプリケーションまたはシステム毎に自動実行ツールを全て作成する必要があるという問題がある。
そこで、本発明の目的は、容易に異なるフォーマットに対応することができるアプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法を提供することにある。
本発明の一実施形態としてのアプリケーションのテストを行う端末装置は、アプリケーションを格納する第1の格納部と、前記第1の格納部に記憶されているアプリケーションにおけるログデータを格納する第2の格納部と、前記第2の格納部に格納されているログデータを読み込む読み込み処理部と、解析ライブラリが格納される解析ライブラリ格納部と、前記解析ライブラリ格納部に格納される解析ライブラリに基づいて前記読み込み処理部により読み込むログデータの解析を行う解析処理部と、前記解析処理部により解析したデータに基づいてシナリオを生成するシナリオ生成部と、前記シナリオ生成部により生成されるシナリオを入力データとして前記アプリケーションを実行する自動実行部と、を具備する。
また、本発明の一実施形態としてのアプリケーションのテスト方法は、アプリケーションを格納する第1の格納部と、前記第1の格納部に記憶されているアプリケーションにおけるログデータを格納する第2の格納部とを具備する端末装置に用いられるアプリケーションのテスト方法であって、前記第2の格納部に格納されているログデータを読み込み、解析ライブラリが格納される記憶領域に記憶されているデータに基づいて読み込むログデータの解析を行い、解析したデータに基づいてシナリオを生成し、生成したシナリオを入力データとして前記アプリケーションを実行する。
この発明の一形態によれば、容易に異なるフォーマットに対応することができるアプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法を提供することができる。
以下、図面を参照しながら、本発明の一実施形態に係るアプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法について詳細に説明する。
図1は、本発明の第1の実施形態に係るアプリケーションのテストを行う端末装置1の構成例について説明するためのブロック図である。
図1に示すように、端末装置1は、CPU11、入出力部12、ディスプレイ13、キーボード14、ROM15、RAM16、及び記憶部17などを有している。
図1に示すように、端末装置1は、CPU11、入出力部12、ディスプレイ13、キーボード14、ROM15、RAM16、及び記憶部17などを有している。
CPU11は、端末装置1全体の制御を司る制御部として機能する。CPU11は、ROM15あるいは記憶部17に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。
入出力部12は、例えばLANなどを介して外部の機器と通信を行うためのインターフェース、または、記憶媒体を接続可能なインターフェースにより構成される。
ディスプレイ13は、CPU11の制御により種々の情報を表示する。キーボード14は、端末装置1の操作者による操作を操作信号として受け取る。
ディスプレイ13は、CPU11の制御により種々の情報を表示する。キーボード14は、端末装置1の操作者による操作を操作信号として受け取る。
ROM15は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。CPU11は、ROM15に記憶されているプログラムを実行することにより、種々の処理を実現することができる。
RAM16は、ワーキングメモリとして機能する揮発性のメモリである。RAM16は、CPU11の処理中のデータなどを一時的に格納する。例えば、RAM16は、入出力部12を介して受信したデータを一時的に格納する。また、RAM16は、CPU11が実行するプログラムを一時的に格納する。
記憶部17は、記憶部として機能する。記憶部17は、例えば、EEPROMまたはHDDなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。記憶部17は、例えば図2に示すようなファイルを記憶する。
図2は、図1に示す記憶部17に記憶されているファイルの例について説明するための説明図である。
図2に示すように、記憶部17は、アプリケーション171、ログファイル175、シナリオジェネレータ176、及び自動実行ツール178などを記憶する。また、記憶部17は、シナリオジェネレータ176により参照される記憶領域である解析ライブラリ格納部177を備えている。なお、アプリケーション171、シナリオジェネレータ176、及び自動実行ツール178は、全てCPU11により実行されることにより動作するものとして説明する。
アプリケーション171は、操作入力のデータに対して処理結果を出力するソフトウェアである。アプリケーション171は、CPU11により実行されることにより動作する。
ログファイル175は、動作ログデータが格納される記憶領域である。ログファイル175は、アプリケーション171に操作信号が入力される場合に操作信号及び処理結果を記憶する。即ち、ログデータは、アプリケーション171に入力される操作信号を有する。ログデータは、例えば、コマンドコード、サブコマンドコード、レングス、ダミー領域、実データ領域などで構成されている。
また、コマンドは、例えば、Openコマンド=1、Closeコマンド=2である場合、または、Connectコマンド=1、Getコマンド=2、Setコマンド=3、Disconnectコマンド=4である場合など、構成及びサイズがアプリケーションまたはシステムごとに異なる可能性がある。
なお、データの長さは可変である為、ログデータ中には、必ずデータ長を示す情報が書き込まれる領域が存在する。
シナリオジェネレータ176は、ログファイル175中のログデータに基づいてシナリオを生成する。シナリオは、アプリケーション171に基づいて動作する装置に対して行われた操作入力を示す情報である。即ち、シナリオジェネレータ176は、ログデータに基づいて、その際に行われた入力操作を判断し、シナリオを生成する。
この為に、シナリオジェネレータ176は、ログデータの解析を行う必要がある。上記したように、ログデータは、アプリケーション171に対応するフォーマットにより攻勢される。シナリオジェネレータ176は、アプリケーション171に対応する解析ライブラリを用いてログデータの解析を行う。
解析ライブラリ格納部177は、解析ライブラリを格納するための記憶領域である。解析ライブラリは、特定のアプリケーションにおけるログデータのフォーマットを少なくとも有している。即ち、シナリオジェネレータ176は、解析ライブラリを参照することにより、ログデータの各バイト毎のデータと、データの種類と、を対応付けることができる。
解析ライブラリ格納部177に格納される解析ライブラリは、端末装置1の操作者により入力される。即ち、端末装置1の操作者により、テストを行うアプリケーションに対応する解析ライブラリが例えば入出力部12などにより入力される。CPU11は、入力された解析ライブラリを、解析ライブラリ格納部177に格納する。
この構成により、端末装置1のCPU11は、記憶部17の常に同じ記憶領域を参照することにより、種々のフォーマットのログデータの解析を行うことができる。
自動実行ツール178は、シナリオジェネレータ176により生成されたシナリオを取得し、アプリケーション171に投入する。これにより、アプリケーション171は、実際に操作が入力される場合と同様の処理(自動実行処理)を行う事ができる。
即ち、CPU11は、シナリオジェネレータ176、解析ライブラリ格納部177の記憶データ、及び自動実行ツール178により、ログファイル175からログデータの読み込み、読み込んだログの解析、シナリオの生成、及び、自動実行処理を行う事ができる。
図3は、図1及び図2に示す端末装置1において自動実行処理を行う例について説明するための説明図である。
図3に示すように、アプリケーション171に基づいて動作する装置に、操作が入力される場合、アプリケーション171は、操作信号の受信処理を行い、操作信号に基づいて処理を行い、上記のログデータを記憶部17のログファイル175に記憶する。なお、ログファイル175は、予め記憶されているものであってもよい。
図3に示すように、アプリケーション171に基づいて動作する装置に、操作が入力される場合、アプリケーション171は、操作信号の受信処理を行い、操作信号に基づいて処理を行い、上記のログデータを記憶部17のログファイル175に記憶する。なお、ログファイル175は、予め記憶されているものであってもよい。
CPU11は、シナリオジェネレータ176を実行する。この場合、CPU11は、ログファイル175からログデータを読み込む。また、解析ライブラリ格納部177から解析ライブラリを読み込む。CPU11は、読み込んだ解析ライブラリに基づいてログデータの解析を行う。さらに、CPU11は、解析したログデータ(解析データ)に基づいてシナリオを生成し、出力する。これにより、CPU11は、操作入力を再現する。CPU11は、出力したシナリオをRAM16に一時的に記憶する。
CPU11は、自動実行ツールを実行する。この場合、CPU11は、RAM16に記憶されているシナリオを読み込み、擬似メッセージを生成する。CPU11は、生成した擬似メッセージを操作信号をとしてアプリケーション171に入力する。
CPU11は、アプリケーション171を起動する。CPU11は、操作信号を入力データとしてアプリケーション171を実行し、処理結果を取得する。ここで、CPU11は、例えば、ログファイル175に格納されている先の処理結果と、擬似メッセージに基づいて取得した処理結果とを比較し、一致するか否かの判定を行う。両結果が一致する場合、CPU11は、不具合無しであると判定する。また、両結果が一致しない場合、CPU11は、不具合有りであると判定する。
図4は、解析ライブラリ格納部177に格納される解析ライブラリの例について説明するための説明図である。
本実施形態では、シナリオジェネレータ176の書き換えは行われない。この為、シナリオジェネレータ176から参照する解析ライブラリの記憶部17におけるアドレスは、常に同じである。即ち、シナリオジェネレータ176の構文には、解析ライブラリ格納部177のアドレスが対応付けられている。
CPU11は、シナリオジェネレータ176を実行する場合、RAM16に読み込んだ構文を一時的に記憶する。CPU11は、読み込んだ構文中にリンクアドレスが張られている場合、リンク先のアドレスに格納されているデータを参照する。即ち、この場合、解析ライブラリ格納部177のアドレスが構文中に貼られているため、CPU11は、解析ライブラリ格納部177の記憶しているデータを読み込み、RAM16に格納する。
例えば、アプリケーションAにおけるログのフォーマットが、「コマンド/レングス/データ」により構成される場合、解析ライブラリ格納部177には、図4に示すような解析ライブラリAが格納される。
図4に示すように、解析ライブラリAは、「コマンド/レングス/データ」により構成される。また、また、解析ライブラリAは、各データの長さ(バイト数)を示す情報を有する。CPU11は、解析ライブラリAに基づいて各データのバイト数を認識する。これにより、CPU11は、2値データの羅列であるログデータの各バイト毎のデータの種類を認識する。即ち、CPU11は、ログデータから「コマンド/レングス/データ」のデータを取得する。
また、例えば、アプリケーションBにおけるログのフォーマットが、「レングス/ダミー/コマンド/サブコマンド/データ」により構成される場合、解析ライブラリ格納部177には、図4に示すような解析ライブラリBが格納される。
図4に示すように、解析ライブラリBは、「レングス/ダミー/コマンド/サブコマンド/データ」により構成される。また、また、解析ライブラリBは、各データの長さ(バイト数)を示す情報を有する。CPU11は、解析ライブラリBに基づいて各データのバイト数を認識する。これにより、CPU11は、2値データの羅列であるログデータの各バイト毎のデータの種類を認識する。即ち、CPU11は、ログデータから「レングス/ダミー/コマンド/サブコマンド/データ」のデータを取得する。
上記したように、解析ライブラリ格納部177に格納されているフォーマットに因らず、CPU11は、自動実行処理の一連の処理を行うことができる。このため、本実施形態に係る端末装置1は、システムまたはアプリケーションに合わせて複数のログフォーマットを簡単に切り替えることができる。即ち、プログラムのテストの環境を容易に入れ替えることができる。
図5は、図1及び図2に示す端末装置1において行われる処理について説明するためのフローチャートである。
CPU11は、シナリオジェネレータ176を実行することにより、アプリケーションによる動作ログをファイルごと読み込む(ステップS11)。CPU11は、ログデータの初回読み込みサイズをセットする(ステップS12)。なお、ここでセットする読み込みサイズは、予め設定するものであり、適宜変更できるものである。さらに、CPU11は、読み込み開始位置、即ちオフセットを0にセットする(ステップS13)。
CPU11は、全てのログデータの読み取りが完了したか否かの判定を行う(ステップS14)。即ち、CPU11は、オフセットを確認し、オフセットが読み込んだログファイルの最終アドレスに達したか否か判定する。
まだ読み込んでいないログデータが存在する場合(ステップS14、NO)、CPU11は、オフセットから設定した読み込みサイズ分のログデータを読み込む。(ステップS15)。
CPU11は、読み込んだデータにログデータの長さを示すデータが含まれていたか否か判定する(ステップS16)。即ち、CPU11は、解析ライブラリを参照し、読み込んだデータがレングスを含むものであるか否かを判断する。
ここで、ログデータの長さを示すデータが含まれていない場合、(ステップS16、NO)、CPU11は、データ不足と判定し、長さの書かれた領域が含まれるデータサイズの情報を、呼び出し元のシナリオジェネレータに返す(ステップS17)。CPU11は、再度読み込みサイズをセットし(ステップS18)、ステップS15に移行する。なお、この場合、CPU11は、解析ライブラリを参照することによりレングスの位置を認識している。即ち、ステップS18においてセットする読み込みサイズは、オフセット位置から少なくともレングスに達する長さである。
ステップS16において、読み込んだデータに長さを示すデータが含まれている場合(ステップS16、YES)、CPU11は、読み込んだ長さを示すデータに基づいてログデータ全体の長さを認識する(ステップS19)。
CPU11は、認識した1つのログデータ全体の長さに基づいて1つのログデータ分のデータを読み込む(ステップS20)。CPU11は、読み込んだ1つのログデータに対して、解析処理を行う(ステップS21)。即ち、CPU11は、解析ライブラリ格納部177に格納されている解析ライブラリに基づいて、ログデータの各バイト毎のデータの種類を判別する。
これにより、CPU11は、解析結果を取得する(ステップS22)。CPU11は、取得した解析結果をシナリオジェネレータ176に入力する。また、CPU11は、読み込んだログデータの長さだけオフセットをシークさせる(ステップS23)。CPU11は、上記の処理を、ログファイルの全てのデータを読み込むまで繰り返し行う。
ステップS14において、全てのログデータの読み込みが完了した場合(ステップS14、YES)、CPU11は、シナリオの生成を行う(ステップS24)。即ち、CPU11は、シナリオジェネレータ176に読み込ませたデータに基づいてシナリオを生成するように制御を行う。
CPU11は、シナリオジェネレータ176の出力を自動実行ツール178に入力する。これにより、CPU11は、自動実行処理を行う(ステップS25)。即ち、自動実行ツール178は、CPU11の制御に基づいて、入力されたシナリオに基づいて擬似メッセージを作成する。自動実行ツール178は、擬似メッセージをアプリケーション171に入力する。アプリケーション171は、擬似メッセージを入力データとして処理を行い、処理結果を出力する。これにより、アプリケーションの動作が自動的に再現される。
上記した本発明の位置実施形態によると、端末装置1の記憶部17は、ログデータの解析を行う為の解析ライブラリが格納される記憶領域を備えている。また、シナリオジェネレータ176の構文中に解析ライブラリが格納される記憶領域へのリンクが含まれている。この為、CPU11は、シナリオジェネレータ176の構文中に含まれるリンクを読み込んだ場合、リンク先の解析ライブラリ格納部を参照することができる。
これにより、シナリオジェネレータの内容を書き換えることなく、異なるフォーマットのデータを解析することができる。この結果、容易に異なるフォーマットに対応することができるアプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法を提供することができる。
次に本発明の第2の実施形態について説明する。
図6は、本発明の第2の実施形態に係るアプリケーションのテストを行う端末装置2について説明するための説明図である。
図6に示すように、異なるPC上、または同PC内でのアプリケーション間(プロセス間)で、LANを使用し通信を行うシステムがある。本実施形態の端末装置(シミュレータPC)2は、LANなどを解してターゲットPC3と接続されている。これにより、ターゲットとなるアプリケーション以外をシミュレーション環境とするシステムが構築される。
図6に示すように、異なるPC上、または同PC内でのアプリケーション間(プロセス間)で、LANを使用し通信を行うシステムがある。本実施形態の端末装置(シミュレータPC)2は、LANなどを解してターゲットPC3と接続されている。これにより、ターゲットとなるアプリケーション以外をシミュレーション環境とするシステムが構築される。
シミュレータPC2は、ターゲットPC3に格納されているアプリケーション172のテストを行う端末である。シミュレータPC2は、電文シナリオ275、及びシミュレータ276などを有している。
なお、シミュレータPC2は、第1の実施形態と同様に、CPU11、入出力部12、ディスプレイ13、キーボード14、ROM15、RAM16、及び記憶部17などを有している。また、電文シナリオ275、及びシミュレータ276は、記憶部17に格納されているとする。またさらに、記憶部17は、電文解析ライブラリ格納部277を有している。
電文シナリオ275は、コマンドとレスポンスとが対応付けられたデータである。電文シナリオ275は、実際にデータがアプリケーション172に入力された場合の処理結果(ログデータ)である。
シミュレータ276は、シミュレーション処理を実行するプログラムである。シミュレータ276の構文には、電文解析ライブラリ格納部277へのリンクが含まれている。
電文解析ライブラリ格納部277は、電文解析ライブラリを格納するための記憶領域である。電文解析ライブラリは、特定のアプリケーションから送信される電文のフォーマットを少なくとも情報として有する。
電文解析ライブラリ格納部277に格納される電文解析ライブラリは、シミュレータPC2の操作者により入力される。即ち、シミュレータPC2の操作者により、テストを行うアプリケーションに対応する電文解析ライブラリが図示しない例えば入出力部12などにより入力される。CPU11は、入力された電文解析ライブラリを、電文解析ライブラリ格納部277に格納する。
ターゲットPC3は、アプリケーション172を格納している。アプリケーション172は、実際の通信電文を送信するものである。アプリケーション172は、実際の通信電文に基づいて本来の処理を行う。この為、シミュレータPC2は、ターゲットPC3のアプリケーション172から送信される電文の解析を行う。シミュレータPC2は解析した電文に基づいてレスポンスを生成し、ターゲットPC3に送信する。
LANを介して送信される電文は、ヘッダを必ず有する。ヘッダは、少なくとも実データ部の長さの情報を有する。しかし、その他のヘッダの情報、例えば、ヘッダ長、電文長、電文フォーマットなどは、アプリケーションごとに異なる。この為、シミュレータPC2は、アプリケーション172から送信される電文を解析するために、アプリケーションに対応する電文解析ライブラリが必要になる。
シミュレータ276は、電文解析ライブラリを参照することにより、電文の各バイト毎のデータと、データの種類と、を対応付けることができる。この構成により、シミュレータPC2のCPU11は、記憶部17の常に同じ記憶領域を参照することにより、種々のフォーマットの電文の解析を行うことができる。
即ち、シミュレータ276は、アプリケーション172から電文を受信した場合、電文解析ライブラリ格納部277に格納されている電文解析ライブラリに基づいて電文の解析を行う。シミュレータ276は、解析したデータにコマンドデータが含まれている場合、電文シナリオ275を参照する。シミュレータ276は、受信したコマンドデータに対応付けられているレスポンスを電文シナリオ275から抽出し、レスポンスデータをターゲットPC3に返信する。
図7は、電文解析ライブラリ格納部277に格納される電文解析ライブラリの例について説明するための説明図である。
本実施形態では、シミュレータ276の書き換えは行われない。この為、シミュレータ276から参照する電文解析ライブラリの記憶部17におけるアドレスは、常に同じである。即ち、シミュレータ276の構文には、電文解析ライブラリ格納部277のアドレスが対応付けられている。
CPU11は、シミュレータ276を実行する場合、RAM16に読み込んだ構文を一時的に記憶する。CPU11は、読み込んだ構文中にリンクアドレスが張られている場合、リンク先のアドレスに格納されているデータを参照する。即ち、この場合、電文解析ライブラリ格納部277のアドレスが構文中に貼られているため、CPU11は、電文解析ライブラリ格納部277の記憶しているデータを読み込み、RAM16に格納する。
例えば、アプリケーションAにおける電文のフォーマット(Aフォーマット)が、「送信元/送信先/・・・/実データの長さ/実データ」を含み、実データが「コマンド/レングス/データ」などにより構成される場合、電文解析ライブラリ格納部277には、図7に示すようなAフォーマットの電文解析ライブラリが格納される。
また、例えば、アプリケーションBにおける電文のフォーマット(Bフォーマット)が、「実データの長さ/実データ」を含み、実データが「コマンド/レングス/データ」などにより構成される場合、電文解析ライブラリ格納部277には、図7に示すようなBフォーマットの電文解析ライブラリが格納される。
シミュレータ276は、電文解析ライブラリを参照し、アプリケーション172から送信される電文の各データ毎の種類を認識する。
上記したように、電文解析ライブラリ格納部277に格納されているフォーマットに因らず、シミュレータ276は、シミュレーション処理の一連の動作を行うことができる。このため、本実施形態に係るシミュレータPC2は、システムまたはアプリケーションに合わせて複数の電文のフォーマットを簡単に切り替えることができる。即ち、プログラムのテストの環境を容易に入れ替えることができる。
図8は、図6に示すシミュレータPC2において行われる処理について説明するためのフローチャートである。
電文解析ライブラリ格納部277に格納される電文解析ライブラリは、フォーマットごとに異なるヘッダ部長を取得する為の関数、引数で渡されたヘッダ部分の情報を元に、全データのうちヘッダ部分を除く実データ部長を取得する為の関数、及び、引数で渡された実データ部分のデータを元に、実データ内のコマンドコードを取得する為の関数などを有している。
CPU11の制御に基づき動作するシミュレータ276は、電文解析ライブラリ格納部277を参照し、電文解析ライブラリから「フォーマットごとに異なるヘッダ部長を取得する為の関数」を取得する(ステップS31)。シミュレータ276は、取得した関数を実行し、アプリケーションごとに異なる電文フォーマットのヘッダサイズを取得する。
シミュレータ276は、取得したヘッダサイズに基づいて、アプリケーション172に対しデータの送信を要求し、アプリケーション172から受信する電文のヘッダを取得する(ステップS32)。
シミュレータ276は、電文解析ライブラリ格納部277を参照し、電文解析ライブラリから「引数で渡されたヘッダ部分の情報を元に、全データのうちヘッダ部分を除く実データ部長を取得する為の関数」を取得する(ステップS33)。シミュレータ276は、取得した関数を実行し、アプリケーションごとに異なる電文フォーマットの実データ長を取得する。
シミュレータ276は、取得した実データ長の情報に基づいて、アプリケーション172に対しデータの送信を要求し、アプリケーション172から受信する電文の実データを取得する(ステップS34)。
シミュレータ276は、取得した実データを電文解析ライブラリに入力する(ステップS35)。
電文解析ライブラリは、CPU11の制御に基づいて動作する。電文解析ライブラリは、「引数で渡された実データ部分のデータを元に、実データ内のコマンドコードを取得する為の関数」を実行することにより、入力された実データからコマンドコードを取得する。電文解析ライブラリは、取得したコマンドコードをシミュレータ276に入力する。(ステップS36)。
シミュレータ276は、電文シナリオ275を参照し、入力されるコマンドコードに対応付けられているレスポンスを検索する。(ステップS37)。シミュレータ276は、検索したレスポンスをターゲットPC3に送信する(ステップS38)。
さらにCPU11は、次の電文が存在するか否か判定する(ステップS39)。次の電文が存在する場合、CPU11は、ステップS32に移行し、電文を受信しなくなるまで上記の処理を繰り返し行う。
なお、シミュレータ276が電文シナリオを参照し、コマンドコードに対応付けられているレスポンスを検索する構成として説明したが、上記の処理を電文解析ライブラリが行ってもよい。
上記した本発明の位置実施形態によると、アプリケーションに基づいて動作する他の装置から受信する電文の解析を行う場合、所定の記憶領域に格納されている電文解析ライブラリを参照することにより、電文の解析を行うことができる。電文解析ライブラリが格納される記憶領域は、書き換え可能な記憶媒体中に設けられているため、格納する電文解析ライブラリをテストするアプリケーションまたはシステムに適合するものに容易に書き換えることができる。
これにより、シミュレータの内容を書き換えることなく、異なるフォーマットの電文を解析することができる。この結果、容易に異なるフォーマットに対応することができるアプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法を提供することができる。
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具現化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合わせてもよい。
1…端末装置、2…シミュレータPC、3…ターゲットPC、11…CPU、12…入出力部、13…ディスプレイ、14…キーボード、15…ROM、16…RAM、17…記憶部、171…アプリケーション、172…アプリケーション、175…ログファイル、176…シナリオジェネレータ、177…解析ライブラリ格納部、178…自動実行ツール、275…電文シナリオ、276…シミュレータ、277…電文解析ライブラリ格納部。
Claims (9)
- アプリケーションを格納する第1の格納部と、
前記第1の格納部に記憶されているアプリケーションにおけるログデータを格納する第2の格納部と、
前記第2の格納部に格納されているログデータを読み込む読み込み処理部と、
解析ライブラリが格納される解析ライブラリ格納部と、
前記解析ライブラリ格納部に格納される解析ライブラリに基づいて前記読み込み処理部により読み込むログデータの解析を行う解析処理部と、
前記解析処理部により解析したデータに基づいてシナリオを生成するシナリオ生成部と、
前記シナリオ生成部により生成されるシナリオを入力データとして前記アプリケーションを実行する自動実行部と、
を具備することを特徴とするアプリケーションのテストを行う端末装置。 - データが入力される入出力部と、
前記入出力部により入力される解析ライブラリを前記解析ライブラリ格納部に格納するように制御する制御部と、
をさらに具備することを特徴とする請求項1に記載のアプリケーションのテストを行う端末装置。 - 前記読み込み処理部は、初回に予め設定されたサイズのデータを読み込むことを特徴とする請求項1に記載のアプリケーションのテストを行う端末装置。
- 前記読み込み処理部は、初回に読み込んだデータの中に1つのログデータの長さを示す情報が含まれていない場合、解析ライブラリを参照することによりログデータにおける長さ情報の位置を確認し、長さ情報を含む位置までのサイズのログデータを読み込むことを特徴とする請求項3に記載のアプリケーションのテストを行う端末装置。
- 前記読み込み処理部は、読み込んだデータの中に1つのログデータの長さを示す情報が含まれている場合、1つのログデータの長さを示す情報に基づいて次回の読み込みを行う事を特徴とする請求項4に記載のアプリケーションのテストを行う端末装置。
- アプリケーションを格納する外部機器とデータの送受信を行う第1の入出力部と、
コマンドとレスポンスとを対応付けて記憶する電文シナリオ格納部と、
電文解析ライブラリが格納される電文解析ライブラリ格納部と、
前記電文解析ライブラリ格納部に格納される電文解析ライブラリに基づいて前記第1の入出力部により前記外部機器から受信する電文の解析を行い、電文に含まれるコマンドを抽出する解析処理部と、
前記解析処理部により抽出したコマンドに対応付けられているレスポンスを抽出し前記第1の入出力部により前記外部機器に送信するシミュレーション処理部と、
を具備することを特徴とするアプリケーションのテストを行う端末装置。 - データが入力される第2の入出力部と、
前記第2の入出力部により入力される電文解析ライブラリを前記電文解析ライブラリ格納部に格納するように制御する制御部と、
をさらに具備することを特徴とする請求項6に記載のアプリケーションのテストを行う端末装置。 - 前記解析処理部は、前記電文解析ライブラリ格納部に格納される電文解析ライブラリを参照することにより電文の各データのサイズを認識し、認識したサイズ分のデータを前記外部機器に対して要求することを特徴とする請求項6に記載のアプリケーションのテストを行う端末装置。
- アプリケーションを格納する第1の格納部と、前記第1の格納部に記憶されているアプリケーションにおけるログデータを格納する第2の格納部とを具備する端末装置に用いられるアプリケーションのテスト方法であって、
前記第2の格納部に格納されているログデータを読み込み、
解析ライブラリが格納される記憶領域に記憶されているデータに基づいて読み込むログデータの解析を行い、
解析したデータに基づいてシナリオを生成し、
生成したシナリオを入力データとして前記アプリケーションを実行する、
ことを特徴とするアプリケーションのテスト方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009067008A JP2010218452A (ja) | 2009-03-18 | 2009-03-18 | アプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009067008A JP2010218452A (ja) | 2009-03-18 | 2009-03-18 | アプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010218452A true JP2010218452A (ja) | 2010-09-30 |
Family
ID=42977187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009067008A Withdrawn JP2010218452A (ja) | 2009-03-18 | 2009-03-18 | アプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010218452A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017539031A (ja) * | 2014-12-09 | 2017-12-28 | エントイット ソフトウェア エルエルシーEntit Software Llc | テスト実行からのテスト検証の分離 |
CN109032869A (zh) * | 2018-07-26 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种便携式服务器硬件测试终端 |
-
2009
- 2009-03-18 JP JP2009067008A patent/JP2010218452A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017539031A (ja) * | 2014-12-09 | 2017-12-28 | エントイット ソフトウェア エルエルシーEntit Software Llc | テスト実行からのテスト検証の分離 |
US10534700B2 (en) | 2014-12-09 | 2020-01-14 | Micro Focus Llc | Separating test verifications from test executions |
CN109032869A (zh) * | 2018-07-26 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种便携式服务器硬件测试终端 |
CN109032869B (zh) * | 2018-07-26 | 2021-11-05 | 郑州云海信息技术有限公司 | 一种便携式服务器硬件测试终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111651366B (zh) | Sdk测试方法、装置、设备及存储介质 | |
US20070067512A1 (en) | Method, system and software arrangement for processing a device support file for a field device | |
CN109800005B (zh) | 一种客户端热更新方法及装置 | |
KR101401143B1 (ko) | 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을수행하기 위한 방법 및시스템 | |
CN103152327B (zh) | 一种配置压缩/解压缩插件的方法、客户端及*** | |
CN111078278A (zh) | 支持Flutter及iOS混编工程的自动化打包方法 | |
EP1942386A1 (en) | Simulation data creation supporting device | |
WO2020177429A1 (zh) | 在应用中嵌入代码的方法、装置及电子设备 | |
CN110795353A (zh) | 快应用的调试方法、装置、设备及存储介质 | |
US10659321B2 (en) | Electronic apparatus for recording debugging information and control method thereof | |
JP2010218452A (ja) | アプリケーションのテストを行う端末装置、及びアプリケーションのテスト方法 | |
CN111078529B (zh) | 客户端写入模块测试方法、装置、电子设备 | |
CN109947407B (zh) | 一种数据获取方法及装置 | |
CN108614704B (zh) | 代码编译方法及装置 | |
CN109783133B (zh) | 代码打包方法、装置、计算机设备及存储介质 | |
JP2008165324A (ja) | プログラム作成支援装置 | |
CN102843269A (zh) | 一种模拟微码业务处理流程的方法及*** | |
JP6097231B2 (ja) | プログラム生成装置および方法 | |
JP6818568B2 (ja) | 通信装置、通信仕様差分抽出方法及び通信仕様差分抽出プログラム | |
CN110795338A (zh) | 一种基于前后端交互的自动化测试方法、装置及电子设备 | |
JP2007219843A (ja) | ノード管理装置及びノード管理方法及びプログラム | |
JP2009009212A (ja) | 仕様書作成支援装置および支援方法 | |
US20100115328A1 (en) | Methods and Systems for Handling Device Failovers during Test Executions | |
CN116610557B (zh) | 动作绑定信息排错方法、装置、存储介质及电子设备 | |
JP2018163432A (ja) | 自動修正装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20120605 |