(57)【特許請求の範囲】
【請求項１】
ホストシステムの移行に伴うホストシステムの動作をテストする装置であって、
移行前のホストシステムと端末との間で送受信されたメッセージのうち、当該端末における手動操作により発生したメッセージを抽出して作成されたファイルを保持する記憶装置と、
移行後のホストシステムとの間でメッセージの送受信を行う送受信制御部と、
前記ファイルに記録されている前記メッセージを再生し、再生したメッセージを前記送受信制御部により前記移行後のホストシステムへ送信させる手動操作再生部と、
前記送受信制御部を介して前記移行後のホストシステムから受信したメッセージが応答を要求するメッセージである場合に、当該要求に対する応答メッセージを自動生成し、生成したメッセージを当該送受信制御部により当該移行後のホストシステムへ送信させる応答メッセージ自動生成部と、
前記送受信制御部を介して前記移行後のホストシステムから受信したメッセージに基づき、端末の表示装置に表示させる画面の画面データを生成する画面データ生成部と、
前記画面データ生成部により生成された画面データと、前記端末の動作を再生して生成された画面データとを比較して、一致しているか否かを判定する比較部と、を備え、
前記送受信制御部は、前記移行後のホストシステムから受信したメッセージに対して、前記手動操作再生部により再生されたメッセージおよび前記応答メッセージ自動生成部により生成されたメッセージを送信する場合、当該応答メッセージ自動生成部により生成されたメッセージを送信した後に、当該手動操作再生部により再生されたメッセージを送信する、装置。
【請求項２】
ホストシステムから送られたメッセージに基づいて端末の表示装置に表示される画面は、キャラクタ・ベースのユーザ・インターフェイスである、請求項１に記載の装置。
【請求項３】
前記手動操作再生部は、送信しようとする前記メッセージを、直前に他のメッセージを送信してから特定時間が経過した後に送信し、
前記特定時間は、前記移行前のホストシステムと前記端末との間で行われた送受信において、当該端末が前記送信しようとするメッセージに対応するメッセージを送信した時刻と、当該メッセージを送信する直前に手動操作により発生したメッセージを送信した時刻とに基づいて定められる、
請求項１または請求項２に記載の装置。
【請求項４】
前記手動操作再生部は、送信しようとする前記メッセージを、直前に行われた処理が終了した後に送信する、請求項１または請求項２に記載の装置。
【請求項５】
前記移行前のホストシステムと前記端末との間で送受信されたメッセージを再生するメッセージ再生部と、
前記メッセージ再生部により再生されたメッセージに基づき、前記端末における手動操作により発生したメッセージを抽出してファイルを作成し、前記記憶装置に保持させるファイル作成部と、
前記メッセージ再生部により再生されたメッセージに基づき、前記端末の表示装置に表示された画面の画面データを模擬的に生成する画面データ模擬生成部と、を備え、
前記比較部は、前記画面データ生成部により生成された画面データと前記画面データ模擬生成部により生成された画面データとを比較して、一致しているか否かを判定する、請求項１または請求項２に記載の装置。
【請求項６】
ホストシステムの移行に伴うホストシステムの動作をテストする装置であって、
移行前のホストシステムと端末との間で送受信されたメッセージを再生するメッセージ再生部と、
前記メッセージ再生部により再生されたメッセージに基づき、前記端末における手動操作により発生したメッセージを抽出してファイルを作成するファイル作成部と、
前記メッセージ再生部により再生されたメッセージに基づき、前記端末の表示装置に表示された画面の画面データを模擬的に生成する画面データ模擬生成部と、
移行後のホストシステムとの間でメッセージの送受信を行う送受信制御部と、
前記ファイル作成部により作成された前記ファイルに記録されている前記メッセージを再生し、再生したメッセージを前記送受信制御部により前記移行後のホストシステムへ送信させる手動操作再生部と、
前記送受信制御部を介して前記移行後のホストシステムから受信したメッセージが応答を要求するメッセージである場合に、当該要求に対する応答メッセージを自動生成し、生成したメッセージを当該送受信制御部により当該移行後のホストシステムへ送信させる応答メッセージ自動生成部と、
前記送受信制御部を介して前記移行後のホストシステムから受信したメッセージに基づき、端末の表示装置に表示させる画面の画面データを生成する画面データ生成部と、
前記画面データ生成部により生成された画面データと、前記端末の動作を再生して生成された画面データとを比較して、一致しているか否かを判定する比較部と、を備え、
前記手動操作再生部は、送信しようとする前記メッセージを、直前に他のメッセージを送信してから、前記移行前のホストシステムと前記端末との間で行われた送受信において当該端末が前記送信しようとするメッセージに対応するメッセージを送信した時刻と、当該メッセージを送信する直前に手動操作により発生したメッセージを送信した時刻とに基づいて定められる特定時間が経過した後であって、直前に行われた処理が終了した後に送信し、
前記送受信制御部は、前記移行後のホストシステムから受信したメッセージに対して、前記手動操作再生部により再生されたメッセージおよび前記応答メッセージ自動生成部により生成されたメッセージを送信する場合、当該応答メッセージ自動生成部により生成されたメッセージを送信した後に、当該手動操作再生部により再生されたメッセージを送信する、装置。
【請求項７】
ホストシステムの移行に伴うホストシステムの動作をテストする方法であって、
移行後のホストシステムの動作をテストするサーバが、当該移行後のホストシステムとの間でメッセージの送受信を行うステップと、
前記移行後のホストシステムから受信したメッセージに基づき、端末の表示装置に表示させる画面の画面データを生成するステップと、
前記移行後のホストシステムから受信したメッセージに基づいて生成された画面データと、移行前のホストシステムとの間で送受信されたメッセージに基づく前記端末の動作を再生して生成された画面データとを比較して、一致しているか否かを判定するステップとを含み、
前記メッセージの送受信を行うステップは、
移行前のホストシステムと端末との間で送受信されたメッセージのうち、当該端末における手動操作により発生したメッセージを抽出して作成されたファイルから当該メッセージを読み出して再生し、再生したメッセージを前記移行後のホストシステムへ送信するステップと、
前記移行後のホストシステムから受信したメッセージが応答を要求するメッセージである場合に、当該要求に対する応答メッセージを自動生成し、生成したメッセージを当該移行後のホストシステムへ送信するステップとを含み、
前記移行後のホストシステムから受信したメッセージに対して、手動操作により発生したメッセージを抽出して作成されたファイルから再生されたメッセージおよび自動生成されたメッセージを送信する場合、当該自動生成されたメッセージを送信した後に、当該ファイルから再生されたメッセージを送信する、方法。
【請求項８】
ホストシステムの移行に伴うホストシステムの動作をテストするコンピュータを、
移行後のホストシステムとの間でメッセージの送受信を行う送受信制御手段と、
移行前のホストシステムと端末との間で送受信されたメッセージのうち、当該端末における手動操作により発生したメッセージを抽出して作成されたファイルから当該メッセージを読み込んで再生し、再生したメッセージを前記送受信制御手段により前記移行後のホストシステムへ送信させる手動操作再生手段と、
前記移行後のホストシステムから受信したメッセージが応答を要求するメッセージである場合に、当該要求に対する応答メッセージを自動生成し、生成したメッセージを前記送受信制御手段により当該移行後のホストシステムへ送信させる応答メッセージ自動生成手段と、
前記移行後のホストシステムから受信したメッセージに基づき、端末の表示装置に表示させる画面の画面データを生成する画面データ生成手段と、
前記画面データ生成手段により生成された画面データと、前記端末の動作を再生して生成された画面データとを比較して、一致しているか否かを判定する比較手段として、機能させ、
前記送受信制御手段の動作として、前記移行後のホストシステムから受信したメッセージに対して、前記手動操作再生手段により再生されたメッセージおよび前記応答メッセージ自動生成手段により生成されたメッセージを送信する場合、当該応答メッセージ自動生成手段により生成されたメッセージを送信した後に、当該手動操作再生手段により再生されたメッセージを送信する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムの移行等に伴って行われるテストを行う装置、方法およびプログラムに関する。
【背景技術】
【０００２】
情報システムを他の構成に移行する際の方式として、アプリケーション・プログラムやデータにはできるだけ変更を加えずにハードウェアやＯＳ、ミドルウェア等のプラットフォーム（基盤）部分を移行する場合がある（いわゆるリホスト（rehost））。このような情報システムの移行を行う場合、移行後の情報システムにおいてアプリケーション・プログラムやデータを移行前の情報システムと同様に扱えることを検証することが重要である。
【０００３】
また、情報システムの移行テストの評価方法には、情報システムによる処理の実行時における送受信メッセージを追跡（トレース）して記録し、記録したトレース結果に基づき情報システムの動作を再生してテストし、テスト結果を評価する方法がある。従来、この種のテストを行うツールとしては、端末のネットワークとその関連メッセージをシミュレートし、情報システムにおける機能およびストレス、パフォーマンス、キャパシティーをテストする機能を有するテスト・ツールがあった（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“Workload Simulator for z/OS and OS/390”、［online］、［平成２６年９月１６日検索］、インターネット＜URL：http://www-03.ibm.com/software/products/ja/workloadsimulator/＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
情報システムのホスト−端末間で通信を行う場合、通信プロトコルによっては、端末に同じ画面を表示させ、ホストが端末から同じ入力を受け取る動作が行われる場合であっても、ホスト−端末間で送受信されるメッセージが同一である必要はない。したがって、そのような情報システムの移行テストを行う場合、移行前と移行後の情報システムにおいて、端末に同じ画面を表示させてホストが端末から同じ入力を受け取る動作において送受信されるメッセージが同一でない場合があることを考慮する必要がある。
【０００６】
同種のプラットフォームのバージョンアップのような、ホスト−端末間のミドルウェアの実装が変更されない情報システムへの移行では、通常、移行前と移行後の情報システムにおいて、端末に同じ画面を表示させてホストが端末から同じ入力を受け取る動作において送受信されるメッセージは同一である。そのため、既存のテスト・ツールを用いた、情報システムによる処理のトレース結果に基づくテストを行うことが可能であった。
【０００７】
これに対し、メインフレームからオープンなシステムへ移行する場合のように、装置間のミドルウェアの実装が異なる情報システムへの移行では、移行前と移行後の情報システムにおいて、端末に同じ画面を表示させてホストが端末から同じ入力を受け取る動作において送受信されるメッセージは同一でない場合がある。そのため、既存のテスト・ツールを用いた、情報システムによる処理のトレース結果に基づくテストを行うことができない場合があった。
【０００８】
そこで本発明は、情報システムの移行テストにおいて、移行前と移行後の情報システムにおけるミドルウェアの実装が異なる場合でも、情報システムによる通信のトレース結果に基づくテストを実行可能とすることを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するため、本発明は、次のような装置として実現される。この装置は、ホストシステムの移行に伴うホストシステムの動作をテストする装置であって、移行前のホストシステムと端末との間で送受信されたメッセージを再生するメッセージ再生部と、メッセージ再生部により再生されたメッセージに基づき、端末における手動操作により発生したメッセージを抽出してファイルを作成するファイル作成部と、メッセージ再生部により再生されたメッセージに基づき、端末の表示装置に表示された画面の画面データを模擬的に生成する画面データ模擬生成部と、移行後のホストシステムとの間でメッセージの送受信を行う送受信制御部と、ファイル作成部により作成されたファイルに記録されているメッセージを再生し、再生したメッセージを送受信制御部により移行後のホストシステムへ送信させる手動操作再生部と、送受信制御部を介して移行後のホストシステムから受信したメッセージが応答を要求するメッセージである場合に、この要求に対する応答メッセージを自動生成し、生成したメッセージを送受信制御部により移行後のホストシステムへ送信させる応答メッセージ自動生成部と、送受信制御部を介して移行後のホストシステムから受信したメッセージに基づき、端末の表示装置に表示させる画面の画面データを生成する画面データ生成部と、画面データ生成部により生成された画面データと、端末の動作を再生して生成された画面データとを比較して、一致しているか否かを判定する比較部と、を備える。手動操作再生部は、送信しようとするメッセージである送信対象メッセージを、直前に他のメッセージを送信してから、移行前のホストシステムと端末との間で行われた送受信において端末が送信対象メッセージに対応するメッセージを送信した時刻と、この送信対象メッセージに対応するメッセージを受信する直前に手動操作により発生したメッセージを送信した時刻とに基づいて定められる特定時間が経過した後であって、直前に行われた処理が終了した後に送信する。送受信制御部は、移行後のホストシステムから受信したメッセージに対して、手動操作再生部により再生されたメッセージおよび応答メッセージ自動生成部により生成されたメッセージを送信する場合、応答メッセージ自動生成部により生成されたメッセージを送信した後に、手動操作再生部により再生されたメッセージを送信する。
【００１０】
また、本発明は、次のような方法としても実現される。この方法は、ホストシステムの移行に伴うホストシステムの動作をテストする方法であって、移行後のホストシステムの動作をテストするサーバが、移行後のホストシステムとの間でメッセージの送受信を行うステップと、移行後のホストシステムから受信したメッセージに基づき、端末の表示装置に表示させる画面の画面データを生成するステップと、移行後のホストシステムから受信したメッセージに基づいて生成された画面データと、移行前のホストシステムとの間で送受信されたメッセージに基づく端末の動作を再生して生成された画面データとを比較して、一致しているか否かを判定するステップとを含み、メッセージの送受信を行うステップは、移行前のホストシステムと端末との間で送受信されたメッセージのうち、端末における手動操作により発生したメッセージを抽出して作成されたファイルからメッセージを読み出して再生し、再生したメッセージを移行後のホストシステムへ送信するステップと、移行後のホストシステムから受信したメッセージが応答を要求するメッセージである場合に、この要求に対する応答メッセージを自動生成し、生成したメッセージを移行後のホストシステムへ送信するステップと、を含む。
【００１１】
さらにまた、本発明は、コンピュータを制御して上述した装置の各機能を実現するプログラム、あるいは、コンピュータに上記の各ステップに対応する処理を実行させるプログラムとしても実現される。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより、提供することができる。
【発明の効果】
【００１２】
本発明によれば、情報システムの移行テストにおいて、移行前と移行後の情報システムにおけるミドルウェアの実装が異なる場合でも、情報システムによる通信のトレース結果に基づくテストを実行することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態が適用されるテスト・システムの構成例を示す図である。
【図２】メッセージ・ファイルの構成例を示す図である。
【図３】テスト実行サーバの機能構成例を示す図である。
【図４】シナリオ・ファイルの構成例を示す図である。
【図５】自動応答によるメッセージの送信処理を示すフローチャートである。
【図６】手動操作によるメッセージの送信処理を示すフローチャートである。
【図７】図２に示すメッセージ・ファイルのシーケンス番号０７のメッセージに含まれる画面データに基づく画面を示す図であり、図７（Ａ）は、テスト用画面バッファに書き込まれた画面データに基づく画面を示す図、図７（Ｂ）は、比較用画面バッファに書き込まれた画面データに基づく画面を示す図である。
【図８】図２に示すメッセージ・ファイルのシーケンス番号２５のメッセージに含まれる画面データに基づく画面を示す図であり、図８（Ａ）は、テスト用画面バッファに書き込まれた画面データに基づく画面を示す図、図８（Ｂ）は、比較用画面バッファに書き込まれた画面データに基づく画面を示す図である。
【図９】図２に示すメッセージ・ファイルのシーケンス番号３３のメッセージに含まれる画面データに基づく画面を示す図であり、図９（Ａ）は、テスト用画面バッファに書き込まれた画面データに基づく画面を示す図、図９（Ｂ）は、比較用画面バッファに書き込まれた画面データに基づく画面を示す図である。
【図１０】図９（Ａ）の画面の画面データを示す図である。
【図１１】図９（Ｂ）の画面の画面データを示す図である。
【図１２】本実施形態のテスト実行サーバを構成するのに好適なハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して、本発明の実施形態について詳細に説明する。
【００１５】
＜システム構成＞
図１は、本実施形態が適用されるテスト・システムの構成例を示す図である。図１に示すテスト・システム１０は、現行の情報システムを構成している現行ホストシステム４０から新たな情報システムで用いられる新ホストシステム５０へ移行する場合の移行テストを実行する。すなわち、本実施形態のテスト・システム１０は、移行後の新ホストシステム５０が移行前の現行ホストシステム４０と同様に動作するか否かをテストする。また、本実施形態による検証対象の情報システムは、ホストシステム（現行ホストシステム４０、新ホストシステム５０）と端末３０との間におけるメッセージの送受信を、ホストシステムの主導により行うシステムである。なお、本実施形態では、検証対象の情報システムは、キャラクタ（文字）・ベースの画面によるユーザ・インターフェイス（ＣＵＩ：character-based user interface）を有するシステムとする。すなわち、ホストシステム（現行ホストシステム４０および新ホストシステム５０）からのメッセージに基づいて端末３０の表示装置に表示されるインターフェイス画面は、キャラクタ・ベースの画面である。
【００１６】
このテスト・システム１０は、端末３０と現行ホストシステム４０とを接続する回線上に設けられたミラーポート２０により、端末３０と現行ホストシステム４０との間で送受信されるデータ（ネットワーク・データ）を取得する。そして、このテスト・システム１０は、端末３０の動作をシミュレートして、検証対象である新ホストシステム５０に対して送受信されるデータを取得する。このようにして取得された、現行ホストシステム４０に対して送受信されたデータに関する情報と、新ホストシステム５０に対して送受信されたデータに関する情報とを比較することにより、新ホストシステム５０の動作を検証することができる。
【００１７】
また、図１に示すように、本実施形態のテスト・システム１０は、ミラーポート２０から送られるネットワーク・データを受け付けるデータ収集サーバ１００と、データ収集サーバ１００により受け付けたネットワーク・データを処理して新ホストシステム５０のテストを実行するテスト実行サーバ２００とを備える。
【００１８】
データ収集サーバ１００は、端末３０と現行ホストシステム４０との間で送受信されるネットワーク・データを、ミラーポート２０を介して取得（トレース）し、テスト実行サーバ２００へ送る。テスト実行サーバ２００は、データ収集サーバ１００からネットワーク・データを取得すると、取得したネットワーク・データに含まれる端末３０と現行ホストシステム４０との間でやり取りされたメッセージを記録したメッセージ・ファイル３０１を作成する。メッセージ・ファイル３０１は、現行ホストシステム４０との間でメッセージをやり取りする端末３０ごとに作成される。なお、作成されたメッセージ・ファイル３０１は、図１に示すように、テスト実行サーバ２００の外部の記憶装置３００に格納しても良いし、テスト実行サーバ２００の内部に設けられた記憶装置（不図示）に格納しても良い。
【００１９】
ここで、端末３０から現行ホストシステム４０へ送られるメッセージには、操作者による端末３０の操作（以下、手動操作）によって発生したメッセージと、現行ホストシステム４０からの要求に応じて端末３０が自動的に応答して発生させたメッセージとがある。そして、情報システムにおいて操作者が入力する内容は、情報システムの移行前後で変わらない。したがって、上記のメッセージ・ファイル３０１に含まれるメッセージのうち、手動操作により発生したメッセージは、新ホストシステム５０の動作をテストする際にも、そのまま再生して良い。
【００２０】
一方、新ホストシステム５０から端末３０への要求として送られるメッセージおよびこの要求に対して端末３０が自動応答で発生させるメッセージは、要求や応答の内容が同様であっても、メッセージ自体は現行ホストシステム４０と端末３０との間でやり取りされるメッセージと同一でない場合がある。これは、現行ホストシステム４０と新ホストシステム５０とで、ホストシステムのミドルウェアの実装が異なることによるものである。そして、ホストシステムから端末３０へ送られるメッセージ内の要求が異なれば、端末３０から自動応答されるメッセージも、それに応じて異なるものとなる。すなわち、インターフェイス画面（以下、ＵＩ画面）を表示させるために新ホストシステム５０から端末３０へ送信されるメッセージにおいて、ＵＩ画面を構成する全ての文字を、画面ごとに毎度送信するとは限らない。また、キャラクタ・ベースのＵＩ画面では、複数のフィールドを組み合わせて構成され、ＵＩ画面のデータを送信する場合、画面における各フィールドの位置（ポジション）を指定して送信するため、各フィールドの情報が送信される順序は必ずしも固定されない。そのため、ホストシステムの移行前後で、同じ表示画面を送るメッセージが同一でない場合があり得る。そこで、本実施形態では、自動応答により発生したメッセージに関しては、テスト実行サーバ２００が新ホストシステム５０から要求を受け取り、端末３０の動作をシミュレートすることによって、実際に、自動応答によるメッセージを生成する。
【００２１】
また、上記のように、新ホストシステム５０からのメッセージおよび自動応答によるメッセージは、現行ホストシステム４０と端末３０との間でやり取りされたメッセージと同一でない場合があるため、メッセージどうしを比較しても、新ホストシステム５０の動作と現行ホストシステム４０の動作とが整合しているか否かを判断することができない。そこで、本実施形態では、現行ホストシステム４０と端末３０との間でメッセージがやり取りされた結果として端末３０の表示装置に表示される画面と、新ホストシステム５０とテスト実行サーバ２００（端末３０のシミュレーション）との間でメッセージがやり取りされた結果として生成される画面とを比較し、新ホストシステム５０の動作と現行ホストシステム４０の動作とが整合しているか否かを判断する。
【００２２】
なお、図１に示した例では、テスト実行サーバ２００がメッセージ・ファイル３０１を作成したが、図示の構成には限定されず、データ収集サーバ１００がメッセージ・ファイル３０１を作成しても良い。
【００２３】
＜メッセージ・ファイルの構成例＞
図２は、メッセージ・ファイル３０１の構成例を示す図である。ここでは、３２７０プロトコル（ＴＮ３２７０Ｅ等）でメッセージがやり取りされた例を示している。図２に示す例では、シーケンス番号０１からシーケンス番号３６まで、現行ホストシステム４０と端末３０との間でやり取りされた３６個のメッセージが、メッセージ・ファイル３０１に記録されている。なお、図２に示す例において、送信されたデータ量の多いメッセージ（シーケンス番号０７、１５、１９、２１、２３、２５、２７、２９、３１、３３、３５、３６のメッセージ）について、データの記載を一部省略し、短縮して記載している。
【００２４】
図２に示すメッセージ・ファイル３０１において、１行目に「ＭＳＧＤＷＮ」と記載されたメッセージ（シーケンス番号０１、０３、０５等のメッセージ）は、現行ホストシステム４０から端末３０へ送信されたメッセージを示す。また、１行目に「ＭＳＧＵＰ」と記載されたメッセージ（シーケンス番号０２、０４、０６等のメッセージ）は、端末３０から現行ホストシステム４０へ送信されたメッセージを示す。また、各メッセージの１行目には、端末３０と現行ホストシステム４０との間で送受信された（トレースされた）日時が記録されている。例えば、シーケンス番号０１のメッセージは、現行ホストシステム４０から端末３０へ、「２０１４／０９／１３  １７：３６：０３」に送信されたメッセージである。同様に、シーケンス番号０２のメッセージは、端末３０から現行ホストシステム４０へ、「２０１４／０９／１３  １７：３６：０４」に送信されたメッセージである。
【００２５】
＜テスト実行サーバの機能構成＞
図３は、テスト実行サーバ２００の機能構成例を示す図である。図３に示すように、本実施形態のテスト実行サーバ２００は、テストにおける比較用に、端末３０および現行ホストシステム４０の動作を再現する、ホスト・メッセージ再生部２１１と、端末メッセージ再生部２１２と、比較用画面バッファ２１３とを備える。また、テスト実行サーバ２００は、新ホストシステム５０の動作をテストするための、端末エージェント２２１と、自動応答部２２２と、テスト用画面バッファ２２３と、手動操作再生部２２４と、比較部２２５とを備える。
【００２６】
ホスト・メッセージ再生部２１１および端末メッセージ再生部２１２は、メッセージ・ファイル３０１をそれぞれ読み込み、現行ホストシステム４０と端末３０との間で行われた通信を実際の実行順に再生する。
【００２７】
ホスト・メッセージ再生部２１１は、現行ホストシステム４０の送受信動作をシミュレートする機能を有する。ここでは、ホスト・メッセージ再生部２１１は、メッセージ・ファイル３０１に記録されたメッセージのうち、現行ホストシステム４０から端末３０へ送られたメッセージを端末メッセージ再生部２１２へ送り、端末３０から現行ホストシステム４０へ送られたメッセージを端末メッセージ再生部２１２から受け取る。
【００２８】
端末メッセージ再生部２１２は、端末３０の動作をシミュレートする機能として、送受信機能と、画面生成機能とを有する。また、端末３０が有しない端末メッセージ再生部２１２に固有の機能として、メッセージ判別機能と、シナリオ・ファイル作成機能とを有する。端末メッセージ再生部２１２の機能のうち、端末３０の動作をシミュレートする機能については、既存の端末エミュレータにより実現しても良い。
【００２９】
端末メッセージ再生部２１２は、送受信機能により、メッセージ・ファイル３０１に記録されたメッセージのうち、現行ホストシステム４０から端末３０へ送られたメッセージをホスト・メッセージ再生部２１１から受け取り、端末３０から現行ホストシステム４０へ送られたメッセージをホスト・メッセージ再生部２１１へ送る。
【００３０】
また、端末メッセージ再生部２１２は、画面生成機能により、ホスト・メッセージ再生部２１１から受け取ったメッセージに基づく画面のデータ（以下、画面データ）を、端末メッセージ再生部２１２とホスト・メッセージ再生部２１１との間の（すなわち、端末３０と現行ホストシステム４０との間の）通信プロトコルにおけるデータストリームの定義にしたがって、比較用画面バッファ２１３に書き込む。すなわち、端末メッセージ再生部２１２は、現行ホストシステム４０から受信したメッセージに基づいて端末３０の表示装置に表示された画面の画面データを模擬的に生成する画面データ模擬生成部として機能する。
【００３１】
また、端末メッセージ再生部２１２は、メッセージ判別機能により、ホスト・メッセージ再生部２１１へ送る各メッセージに関して、端末３０の操作者がキーボードを操作（打鍵）したことにより発生したメッセージか否かを判別する。上述したように、本実施形態では、端末３０において手動操作により発生したメッセージと端末３０の自動応答により発生したメッセージとを区別して扱う。メッセージの判別方法については後述する。
【００３２】
また、端末メッセージ再生部２１２は、メッセージ判別機能により手動操作で発生したメッセージと判別したメッセージを、シナリオ・ファイル作成機能により、シナリオ・ファイル２０１に書き出す。すなわち、端末メッセージ再生部２１２は、再生したメッセージに基づいてシナリオ・ファイル２０１を作成するファイル作成部としても機能する。また、端末メッセージ再生部２１２は、メッセージにおいて手動操作により入力された文字やコマンドの情報を抽出し、シナリオ・ファイル２０１に記録する。また、シナリオ・ファイル２０１には、自動応答により発生したメッセージを含む各メッセージが取得された（メッセージ・ファイル３０１に記録された）時刻の情報も記録される。作成されたシナリオ・ファイル２０１は、テスト実行サーバ２００のメモリや磁気ディスク等の記憶装置に保持され、後に新ホストシステム５０の動作をテストする際に、端末３０において行われた手動操作を再現するために用いられる。なお、ここでは、端末メッセージ再生部２１２は、画面データをシナリオ・ファイル２０１に書き込むこととしたが、シナリオ・ファイル２０１とは別に画面データのファイルを作成し、個別に管理するように構成しても良い。
【００３３】
また、端末メッセージ再生部２１２は、手動操作により発生したメッセージに記述されているＵＩ画面のフィールドの情報から、手動操作による入力（キー入力）が行われたフィールドを特定する。そして、端末メッセージ再生部２１２は、特定したフィールドの記述に基づいて、キー入力が行われたフィールドの位置、入力されたキーの種類（入力内容）、画面におけるカーソルの位置等の情報を抽出し、シナリオ・ファイル２０１に記録する。これは、検証において、ＵＩ画面のどのフィールドに対してキー入力が行われたのかを明確にするためである。なお、画面データの管理と同様に、端末メッセージ再生部２１２は、メッセージから抽出した情報を、シナリオ・ファイル２０１とは別のファイルに記録し、個別に管理するように構成しても良い。メッセージからキー入力が行われたフィールドを特定し、キー入力に関する情報等を抽出するための具体的な手法については後述する。
【００３４】
比較用画面バッファ２１３は、端末メッセージ再生部２１２によりメッセージから抽出された画面データを保持する。端末３０の機能をソフトウェアにより再現する端末エミュレータは、その機能において、端末３０に表示される画面を生成する際に用いられる画面バッファの機能を有するものがある。そこで、端末メッセージ再生部２１２を端末エミュレータにより実現する場合、その端末エミュレータが画面バッファの機能を有するならば、この端末エミュレータの機能により比較用画面バッファ２１３を実現しても良い。比較用画面バッファ２１３に保持された画面データは、後の新ホストシステム５０の動作のテストにおいて生成される画面データの比較対象となる。
【００３５】
端末エージェント２２１は、検証対象である新ホストシステム５０に接続し、新ホストシステム５０との間で、端末３０と現行ホストシステム４０との間で行われた通信を再生する。すなわち、端末エージェント２２１は、新ホストシステム５０から送られたメッセージを受信し、自動応答部２２２へ転送する送受信制御部として機能する。また、端末エージェント２２１は、手動操作により発生するメッセージおよび新ホストシステム５０からの要求に対する自動応答により発生するメッセージを新ホストシステム５０へ送る。なお、端末エージェント２２１から新ホストシステム５０へのメッセージの送信には、メッセージの整合性やタイミングを適切に制御する必要がある。この送信時の具体的な動作については後述する。
【００３６】
自動応答部２２２は、端末エージェント２２１を介して新ホストシステム５０から受け取ったメッセージに基づく画面データを、端末エージェント２２１と新ホストシステム５０との間の通信プロトコルにおけるデータストリームの定義にしたがって、テスト用画面バッファ２２３に書き込む。また、自動応答部２２２は、受け取ったメッセージが応答を要求するものである場合は、要求に対する応答メッセージを生成し、端末エージェント２２１へ送る。この応答メッセージは、上述したように、端末エージェント２２１から新ホストシステム５０へ送られる。すなわち、自動応答部２２２は、新ホストシステム５０から受信したメッセージに基づき端末３０の表示装置に表示させ得る画面の画面データを生成する画面データ生成部として機能すると共に、新ホストシステム５０から受信したメッセージの要求に対する処理を行って応答メッセージを自動生成する応答メッセージ自動生成部として機能する。
【００３７】
テスト用画面バッファ２２３は、自動応答部２２２によりメッセージから抽出された画面データを保持する。テスト用画面バッファ２２３に保持された画面データは、端末メッセージ再生部２１２によりシナリオ・ファイル２０１またはその他の管理用のファイルに書き出された画面データと比較される。なお、端末エージェント２２１、自動応答部２２２およびテスト用画面バッファ２２３は、端末メッセージ再生部２１２および比較用画面バッファ２１３と同様に、既存の端末エミュレータにより実現しても良い。
【００３８】
手動操作再生部２２４は、端末メッセージ再生部２１２により作成されたシナリオ・ファイル２０１に基づいて、端末３０と現行ホストシステム４０との間で行われたメッセージの送受信のうち、端末３０において手動操作により発生したメッセージを再生する。そして、手動操作再生部２２４は、再生したメッセージを、後述する適当なタイミングで、端末エージェント２２１を介して新ホストシステム５０へ送信する。手動操作により発生したメッセージの送信タイミングの詳細については後述する。
【００３９】
比較部２２５は、端末メッセージ再生部２１２によりシナリオ・ファイル２０１またはその他の管理用のファイルに記録された画面データとテスト用画面バッファ２２３に保持された画面データとを比較し、一致しているか否かを判定し、判定結果を出力する。出力された判定結果は、例えば、テスト実行サーバ２００のメモリ等の記憶装置や外部記憶装置に保持される。
【００４０】
＜シナリオ・ファイルの構成例＞
ここで、シナリオ・ファイルの構成について説明する。図４は、シナリオ・ファイル２０１の構成例を示す図である。図４に示す例では、シナリオ・ファイル２０１には、端末メッセージ再生部２１２により生成された画面データは記録されておらず、手動操作により発生したメッセージのみが記録されている。なお、画面データは、シナリオ・ファイル２０１とは別のファイルに書き出されて管理されているものとする。
【００４１】
図４に示す例では、シーケンス番号０１からシーケンス番号１１まで、端末３０における手動操作により発生した１１個のメッセージが、シナリオ・ファイル２０１に記録されている。なお、シナリオ・ファイル２０１のシーケンス番号０１〜１１の各メッセージは、図２に示したメッセージ・ファイル３０１のシーケンス番号０８、１６、１８、２０、２２、２４、２６、２８、３０、３２、３４の各メッセージに対応している。
【００４２】
シナリオ・ファイル２０１を作成するためには、上述したように、メッセージ・ファイル３０１に記録されたメッセージのうち、手動操作により発生したメッセージを判別する必要がある。本実施形態では、メッセージの特定の位置に特定のキー入力を示す情報が存在するか否かを判断することにより、手動操作により発生したメッセージか否かを判別する。
【００４３】
キーボードのキーには、文字入力のみが行われるキーの他に、打鍵されるとメッセージの送信が行われるキー（例えば、「Ｅｎｔｅｒ」キーやファンクション・キー等、以下、ＡＩＤキーと呼ぶ）が含まれる。また、端末３０と現行ホストシステム４０との間でやり取りされるメッセージは、通信プロトコルに基づいて規定される書式にしたがって記述されている。そこで、メッセージの書式に基づき、ＡＩＤキーがメッセージの特定の位置に記述されていれば、そのメッセージがＡＩＤキーの打鍵により送信された（キーボードの操作により発生した）メッセージであることがわかる。その他、使用されている通信プロトコルの種類に応じて、特定の書式や記述に基づき、手動操作により発生したメッセージか自動応答により発生したメッセージかを判別可能な条件を設定し、その条件に基づいてメッセージの種類を判別すれば良い。
【００４４】
図２に示したメッセージ・ファイル３０１および図４に示したシナリオ・ファイル２０１の例では、３２７０プロトコルに基づいて送受信されたメッセージなので、メッセージの２行目以降のデータ部分における６バイト目の値に着目する。例えば、シナリオ・ファイル２０１のシーケンス番号０１のメッセージ（メッセージ・ファイル３０１ではシーケンス番号０８）では、６バイト目の値が「７ｄ」となっている。この値は、ＡＩＤキーである「Ｅｎｔｅｒ」キーを表している。したがって、このメッセージは、手動操作により発生したメッセージと判別される。また、シナリオ・ファイル２０１のシーケンス番号０７のメッセージ（メッセージ・ファイル３０１ではシーケンス番号２６）では、６バイト目の値が「ｆ３」となっている。この値は、ＡＩＤキーであるファンクション・キー（「Ｆ３」キー）を表している。したがって、このメッセージは、手動操作により発生したメッセージと判別される。
【００４５】
＜キー入力が行われたフィールドの情報の抽出＞
端末メッセージ再生部２１２は、シナリオ・ファイル２０１を作成する処理において、シナリオ・ファイル２０１に記録する対象であるメッセージから、キー入力が行われたフィールドを特定し、キー入力に関する情報等を抽出してシナリオ・ファイル２０１に記録する。シナリオ・ファイル２０１に記録する対象であるメッセージは、メッセージ・ファイル３０１に記録されたメッセージのうち、端末３０での手動操作により発生し、端末３０から現行ホストシステム４０へ送信されたメッセージ（以下、送信メッセージ）である。この送信メッセージには、キー入力が行われたフィールド以外のフィールドの情報も記述されている。そのため、送信メッセージの内容のみでは、キー入力の行われたフィールドを判別することができない。
【００４６】
そこで、本実施形態では、端末メッセージ再生部２１２が比較用画面バッファ２１３に書き込んだ画面データと、送信メッセージとを対比することにより、キー入力の行われたフィールドを判別する。具体的には、端末メッセージ再生部２１２は、まず、画面データをホスト・メッセージ再生部２１１から受信した後、最初にホスト・メッセージ再生部２１１へ送信される送信メッセージを選択する。次に、端末メッセージ再生部２１２は、画面データに含まれるフィールドのうち、選択した送信メッセージに記述されている各フィールドに対応するフィールドを特定し、対応する各フィールドのデータを比較する。ここで、画面データと送信メッセージとで、対応するフィールドのデータが異なっていれば、そのフィールドのデータは、画面が表示された後に手動操作により入力されたデータである。
【００４７】
例として、図４に示したシナリオ・ファイル２０１のメッセージを参照する。このメッセージは２３７０プロトコルに基づいているので、６バイト目の値が入力されたＡＩＤキーの種類を表し、７、８バイト目の値がカーソルの位置を表す。また、値「１１」から続く部分がフィールドの情報を示す。具体的には、値「１１」の直後の２バイトの値がフィールドの位置を示し、その後に続く不定長の値がフィールドに記録されたデータを示す。例えば、シナリオ・ファイル２０１のシーケンス番号０１のメッセージであれば、入力されたＡＩＤキーの種類は「７ｄ」、カーソル位置は「５ｄｃ８」である。また、記述されているフィールドは一つであり、フィールドの位置は「５ｄｃ３」、フィールドに記録されたデータは「８３８９８３ａ２８１」である。なお、フィールドに記録されたデータは、次の値「１１」の位置または値「ｆｆｅｆ」（ＴＥＬＮＥＴのメッセージ終了を示す値）まで続く。また、値「１１」、フィールドの位置、データの組を繰り返し挿入することで、複数のフィールドの情報をメッセージに記述することができる。
【００４８】
以上のようにしてキー入力されたフィールドが特定されたならば、端末メッセージ再生部２１２は、ＡＩＤキー、カーソル位置、キー入力が行われたフィールドの位置、入力内容等の情報をシナリオ・ファイル２０１またはその他の管理用のファイルに記録する。
【００４９】
＜手動操作により発生するメッセージの送信タイミングの制御＞
情報システムでは、一般に、多数の端末（例えば数万台程度）がホストシステムに同時接続して動作する場合がある。このような場合、ホストシステムと各端末との間の通信負荷等を考慮すると、移行後の情報システムの動作を正確にテストするには、各メッセージの送受信の時間間隔も再現することが望ましい。そこで、本実施形態では、シナリオ・ファイル２０１に記録された各メッセージの取得時刻（メッセージ・ファイル３０１に記録された時刻）の情報に基づき、手動操作により発生したメッセージの送信タイミングを制御する。
【００５０】
具体的には、手動操作再生部２２４は、あるメッセージを送信する場合、直前にメッセージを送信してからシナリオ・ファイル２０１に記録された時刻に基づいて特定される時間（特定時間）だけ待った後に、メッセージの送信を実行する。すなわち、手動操作再生部２２４は、まず、シナリオ・ファイル２０１に記録されたメッセージのうち、直前に送信したメッセージに対応するメッセージの取得時刻と、今回送信するメッセージに対応するメッセージの取得時刻との差分を求める。そして、手動操作再生部２２４は、直前にメッセージを送信してから、求めた差分に相当する時間が経過した後（時間条件を満足した場合）に、今回のメッセージの送信を行う。言い換えれば、本実施形態は、シナリオ・ファイル２０１に記録された各メッセージの取得時刻に基づいて特定される特定時間を用いて、各メッセージを送信するタイミングを定める時間条件を設定する。
【００５１】
一例として、図４のシナリオ・ファイル２０１において、シーケンス番号０１のメッセージおよびシーケンス番号０２のメッセージを参照する。シーケンス番号０１のメッセージは、送信時刻が「１７：３６：２９」である。一方、シーケンス番号０２のメッセージは、送信時刻が「１７：３６：４３」である。したがって、両者の差分から、手動操作再生部２２４がシーケンス番号０２のメッセージに対応するメッセージを送信するタイミング（時間条件）は、シーケンス番号０１のメッセージを送信してから１４秒後となる。
【００５２】
なお、手動操作再生部２２４がシナリオ・ファイル２０１の先頭に記録されたシーケンス番号０１のメッセージに対応するメッセージを送信するための時間条件は、シーケンス番号０１のメッセージの取得時刻と、端末３０と現行ホストシステム４０とが接続した時刻との差分に基づいて設定される。端末３０と現行ホストシステム４０とが接続した時刻は、図４に示したシナリオ・ファイル２０１では、２行目（「ＣＯＮＮ  １４１０５９〜」）に記録されており、「１７：３５：０９」である。したがって、手動操作再生部２２４がシーケンス番号０２のメッセージに対応するメッセージを送信するタイミングは、テスト実行サーバ２００（端末エージェント２２１）と新ホストシステム５０とが接続してから１分２０秒後となる。
【００５３】
また、手動操作再生部２２４は、メッセージを送信する際に、新ホストシステム５０とのメッセージの送受信に基づいて行われた直前の処理（すなわち、直前の画面データの書き込みまでの処理）が終了していることを確認する。そして、直前の処理が終了していた場合に、メッセージの送信を実行する。これは、端末３０におけるキー入力は、必ず入力操作が行われる画面が端末３０の表示装置に表示された後に行われるためである。
【００５４】
そこで、本実施形態の手動操作再生部２２４は、メッセージを送信するタイミングになると、直前の処理が終了していることを確認するため、テスト用画面バッファ２２３に保持されている画面データと、端末メッセージ再生部２１２がこのメッセージをシナリオ・ファイル２０１に書き出した際に比較用画面バッファ２１３に保持されていた画面データとを比較する。比較用画面バッファ２１３に保持されていた画面データは、シナリオ・ファイル２０１またはその他の管理ファイルに書き出されているので、このファイルに書き出された画面データを用いて比較すれば良い。
【００５５】
この比較の結果、双方の画面データの内容が一致したならば、新ホストシステム５０を含む検証対象の情報システムで直前の処理が終了しているので、手動操作再生部２２４は、メッセージを送信する。一方、双方の画面データの内容が一致しない場合は、直前の処理が終了していないので、テスト用画面バッファ２２３へ次の画面データの書き込みが行われるのを待ち、新たな書き込みが行われた後に、改めて画面データを比較する。そして、双方の画面データの内容が一致しない状態が継続すると、手動操作により発生したメッセージを送信しない待ち状態が続くことになるので、結果的に、新ホストシステム５０を含む検証対象の情報システムに対するテストは停止する。なお、待ち時間の上限を設定しておき、設定時間に達したならば、異常が発生したことを報知する等のエラー処理を行って動作を継続または終了するように構成しても良い。
【００５６】
＜テスト実行サーバにおけるメッセージの送信処理＞
次に、テスト実行サーバ２００から新ホストシステム５０へメッセージを送信する処理の流れを説明する。図５は、自動応答によるメッセージの送信処理を示すフローチャートである。図６は、手動操作によるメッセージの送信処理を示すフローチャートである。本実施形態において、テスト実行サーバ２００の端末エージェント２２１は、新ホストシステム５０に対し、自動応答部２２２により生成された自動応答によるメッセージと、手動操作再生部２２４によりシナリオ・ファイル２０１にしたがって再生された手動操作によるメッセージとを送信する。
【００５７】
自動応答によるメッセージの送信処理の場合、図５に示すように、まず、端末エージェント２２１が、新ホストシステム５０からメッセージを受信する（ステップ５０１）。そして、受信したメッセージが応答を要求するメッセージであった場合、自動応答部２２２が応答メッセージを生成し（ステップ５０２、５０３）、端末エージェント２２１が生成されたメッセージを直ちに新ホストシステム５０へ送信する（ステップ５０４）。
【００５８】
なお、テスト実行サーバ２００（端末エージェント２２１）と新ホストシステム５０とが接続されると、まず、新ホストシステム５０からの問い合わせに応じて、自動応答部２２２が、自動応答により、端末の情報（端末名や表示画面サイズ等）を送信する。この情報は、端末３０と現行ホストシステム４０との間で送受信されたメッセージから抜き出して、シナリオ・ファイル２０１またはその他の管理用のファイルに書き出され、自動応答部２２２にセットされる。また、この情報を端末エージェント２２１にセットしておき、自動応答部２２２による応答に、端末エージェント２２１が端末の情報を上書きするような実装としても良い。
【００５９】
手動操作によるメッセージの送信処理の場合、図６に示すように、まず、手動操作再生部２２４が、シナリオ・ファイル２０１に記録されている最初のメッセージを読み込む（ステップ６０１）。そして、手動操作再生部２２４は、読み込んだメッセージを送信するための時間条件を満足するか否かを判定する（ステップ６０２）。ここで、メッセージを送信するための時間条件とは、上述した、シナリオ・ファイル２０１に記録された時刻に基づいて判断される時間条件である。
【００６０】
時間条件を満足したならば、次に手動操作再生部２２４は、新ホストシステム５０およびテスト実行サーバ２００を含む情報システムにおいて直前の処理が終了しているか否かを判断する（ステップ６０３）。この判断は、上述したように、テスト用画面バッファ２２３に保持されている画面データと、シナリオ・ファイル２０１等から取得される比較用画面バッファ２１３に保持されていた画面データとを比較することにより行われる。
【００６１】
そして、直前の処理が終了していない場合、手動操作再生部２２４は、テスト用画面バッファ２２３へ次の画面データの書き込みが行われるのを待つ（ステップ６０４）。そして、次の画面データの書き込みが行われた後に、改めて直前の処理が終了しているか否かを判断する。
【００６２】
一方、直前の処理が終了していた場合、手動操作再生部２２４は、ステップ６０１で読み込んだメッセージを端末エージェント２２１に送る。端末エージェント２２１は、手動操作再生部２２４から受け取ったメッセージと他の送信メッセージとの整合を取る整合処理を行って（ステップ６０５）、手動操作再生部２２４から受け取ったメッセージを新ホストシステム５０へ送信する（ステップ６０６）。ここで、整合処理は、各メッセージのシーケンス番号の調整等、通信プロトコルが要求する形式に適合するように調整する処理を含む。また、新ホストシステム５０から直前に受信したメッセージが応答を要求するものであり、手動操作によるメッセージおよび自動応答によるメッセージの両方が送信される場合に、自動応答部２２２により生成されたメッセージ（自動応答によるメッセージ）を先に送信した後に手動操作によるメッセージの送信を行うことを含む。
【００６３】
次に、手動操作再生部２２４は、シナリオ・ファイル２０１に未処理のメッセージがあるか否かを調べ、未処理のメッセージのうち、シーケンス番号の最も若いメッセージを読み込む（ステップ６０７、６０８）。そして、手動操作再生部２２４は、ステップ６０２以降の処理を繰り返す。シナリオ・ファイル２０１の全てのメッセージに対して処理を行ったならば、そのシナリオ・ファイル２０１に基づく手動操作によるメッセージの送信処理を終了する（ステップ６０７）。
【００６４】
以上のようにして、一つのシナリオ・ファイル２０１に基づくメッセージの送信処理を含む新ホストシステム５０の動作のテストが行われる。シナリオ・ファイル２０１は、現行の情報システムにおいて現行ホストシステム４０に接続されている端末３０ごとに作成されるので、本実施形態のテスト実行サーバ２００は、各端末３０に対応するシナリオ・ファイル２０１に対し、同様に新ホストシステム５０のテストを行う。
【００６５】
＜テストの実行例＞
次に、図７乃至図９を参照し、比較用画面バッファ２１３に書き込まれた画面データに基づく画面と、テスト用画面バッファ２２３に書き込まれた画面データに基づく画面とを比較して、テストの実行例を説明する。ここでは、図２に示したメッセージ・ファイル３０１に記録されたメッセージのうち、シーケンス番号０７のメッセージにより送受信された画面データに基づく画面、シーケンス番号２５のメッセージにより送受信された画面データに基づく画面、シーケンス番号３３のメッセージにより送受信された画面データに基づく画面を比較した例について説明する。
【００６６】
図７は、図２に示すメッセージ・ファイル３０１のシーケンス番号０７のメッセージに含まれる画面データに基づく画面を示す図である。図７（Ａ）は、テスト用画面バッファ２２３に書き込まれた画面データに基づく画面であり、図７（Ｂ）は、比較用画面バッファ２１３に書き込まれた画面データに基づく画面である。図７（Ａ）の画面と図７（Ｂ）の画面とを比較すると、完全に同一であり、この画面に関する処理では、新ホストシステム５０が現行ホストシステム４０と同様に動作したことがわかる。
【００６７】
図７（Ａ）に示す「再生時刻」は、図７（Ａ）の画面に対して行われた手動操作に基づくメッセージが手動操作再生部２２４により再生された時刻である。また、「キー入力」には、手動操作再生部２２４により再生された手動操作において、画面の「２４行、２０列」の位置に文字列「ｃｉｃｓａ」が入力され、Ｅｎｔｅｒキーが入力されたことが示されている。この内容は、後述の図７（Ｂ）の「キー入力」の内容と同一である。また、この入力内容は、図４に示したシナリオ・ファイル２０１のシーケンス番号０１のメッセージに基づいて手動操作再生部２２４により再生された内容である。
【００６８】
一方、図７（Ｂ）に示す「ネットワークトレース時刻」は、図７（Ｂ）の画面の画面データを含むメッセージがトレースされてメッセージ・ファイル３０１に記録された時刻である。また、「キー入力」には、端末３０において、表示された画面に対して実際に行われた手動操作が示されており、画面の「２４行、２０列」の位置に文字列「ｃｉｃｓａ」が入力され、Ｅｎｔｅｒキーが入力されたことが示されている。
【００６９】
図８は、図２に示すメッセージ・ファイル３０１のシーケンス番号２５のメッセージに含まれる画面データに基づく画面を示す図である。図８（Ａ）は、テスト用画面バッファ２２３に書き込まれた画面データに基づく画面であり、図８（Ｂ）は、比較用画面バッファ２１３に書き込まれた画面データに基づく画面である。図８（Ａ）の画面と図８（Ｂ）の画面とを比較すると、完全に同一であり、この画面に関する処理では、新ホストシステム５０が現行ホストシステム４０と同様に動作したことがわかる。
【００７０】
図８（Ａ）に示す「再生時刻」は、図８（Ａ）の画面に対して行われた手動操作に基づくメッセージが手動操作再生部２２４により再生された時刻である。また、「キー入力」には、手動操作再生部２２４により再生された手動操作において、「Ｆ３」キー（ファンクション・キー）が入力されたことが示されている。この内容は、後述の図８（Ｂ）の「キー入力」の内容と同一である。また、この入力内容は、図４に示したシナリオ・ファイル２０１のシーケンス番号０７のメッセージに基づいて手動操作再生部２２４により再生された内容である。
【００７１】
一方、図８（Ｂ）に示す「ネットワークトレース時刻」は、図８（Ｂ）の画面の画面データを含むメッセージがトレースされてメッセージ・ファイル３０１に記録された時刻である。また、「キー入力」には、端末３０において、表示された画面に対して実際に行われた手動操作が示されており、「Ｆ３」キー（ファンクション・キー）が入力されたことが示されている。
【００７２】
図９は、図２に示すメッセージ・ファイル３０１のシーケンス番号３３のメッセージに含まれる画面データに基づく画面を示す図である。図９（Ａ）は、テスト用画面バッファ２２３に書き込まれた画面データに基づく画面であり、図９（Ｂ）は、比較用画面バッファ２１３に書き込まれた画面データに基づく画面である。図９（Ａ）の画面と図９（Ｂ）の画面とを比較すると、一部が異なっており、この画面に関する処理では、新ホストシステム５０が現行ホストシステム４０とは異なる動作をしたことがわかる。図９（Ａ）および図９（Ｂ）の画面の差異の詳細については後述する。
【００７３】
図９（Ａ）に示す「再生時刻」は、図９（Ａ）の画面に対して行われた手動操作に基づくメッセージが手動操作再生部２２４により再生された時刻である。また、「キー入力」には、手動操作再生部２２４により再生された手動操作において、「Ｆ３」キー（ファンクション・キー）が入力されたことが示されている。この内容は、後述の図９（Ｂ）の「キー入力」の内容と同一である。また、この入力内容は、図４に示したシナリオ・ファイル２０１のシーケンス番号１１のメッセージに基づいて手動操作再生部２２４により再生された内容である。
【００７４】
一方、図９（Ｂ）に示す「ネットワークトレース時刻」は、図９（Ｂ）の画面の画面データを含むメッセージがトレースされてメッセージ・ファイル３０１に記録された時刻である。また、「キー入力」には、端末３０において、表示された画面に対して実際に行われた手動操作が示されており、「Ｆ３」キー（ファンクション・キー）が入力されたことが示されている。
【００７５】
図９（Ａ）および図９（Ｂ）の画面の差異について説明する。図９（Ａ）および図９（Ｂ）において「Ｎｕｍｂｅｒ  ｏｆ  Ｓｈａｒｅｓ  Ｈｅｌｄ：」と記載された箇所に着目すると、図９（Ａ）では値が「００１０」となっているのに対し、図９（Ｂ）では値が「０１００」となっており、同一でない。また、図９（Ａ）および図９（Ｂ）において「Ｖａｌｕｅ  ｏｆ  Ｓｈａｒｅｓ  Ｈｅｌｄ：」と記載された箇所に着目すると、図９（Ａ）では値が「００００００７９０．００」となっているのに対し、図９（Ｂ）では値が「０００００７９００．００」となっており、同一でない。したがって、このテストにおいては、図３に示したテスト実行サーバ２００の比較部２２５が、図９（Ａ）および図９（Ｂ）の画面の画面データを比較した際に、新ホストシステム５０が現行ホストシステム４０とは異なる動作をしたことを示す比較結果を出力する。
【００７６】
上記の説明では、視覚的に理解しやすいように画面どうしを比較したが、本実施形態では、キャラクタ・ベースの画面が用いられるので、比較部２２５は、実際に表示装置に表示される画面どうしを比較する必要はなく、その画面を表示するための画面データを比較すれば良い。そこで次に、図９（Ａ）および図９（Ｂ）の画面の画面データを参照する。
【００７７】
図１０は、図９（Ａ）の画面の画面データを示す図である。また、図１１は、図９（Ｂ）の画面の画面データを示す図である。図１０の画面データと図１１の画面データとを比較すると、反転表示した２箇所の値が異なっている。すなわち、図１０で「ｆ０ｆ１」となっている箇所が、図１１では「ｆ１ｆ０」となっている。また、図１０で「ｆ０ｆ７ｆ９」となっている箇所が図１１では「ｆ７ｆ９ｆ０」となっている。したがって、比較部２２５は、これらの画面データを比較し、不一致であることを示す比較結果を出力する。
【００７８】
＜ハードウェア構成例＞
図１２は、本実施形態のテスト実行サーバ２００を構成するのに好適なハードウェア構成例を示す図である。ここでは、コンピュータにより構成する場合について説明する。図１２に示すコンピュータは、演算手段であるＣＰＵ（Central Processing Unit）１０ａと、主記憶手段であるメモリ１０ｃを備える。また、外部デバイスとして、磁気ディスク装置（ＨＤＤ：Hard Disk Drive）１０ｇ、ネットワーク・インターフェイス１０ｆ、ディスプレイ装置を含む表示機構１０ｄ、キーボードやマウス等の入力デバイス１０ｉ等を備える。
【００７９】
図１２に示す構成例では、メモリ１０ｃおよび表示機構１０ｄは、システム・コントローラ１０ｂを介してＣＰＵ１０ａに接続されている。また、ネットワーク・インターフェイス１０ｆ、磁気ディスク装置１０ｇおよび入力デバイス１０ｉは、Ｉ／Ｏコントローラ１０ｅを介してシステム・コントローラ１０ｂと接続されている。各構成要素は、システム・バスや入出力バス等の各種のバスによって接続される。
【００８０】
図１２において、磁気ディスク装置１０ｇにはＯＳのプログラムやアプリケーション・プログラムが格納されている。そして、これらのプログラムがメモリ１０ｃに読み込まれてＣＰＵ１０ａに実行されることにより、テスト実行サーバ２００におけるホストメッセージ再生部２１１、端末メッセージ再生部２１２、端末エージェント２２１、自動応答部２２２、手動操作再生部２２４及び比較部２２５の各機能が実現される。また、メモリ１０ｃや磁気ディスク装置１０ｇにより、比較用画面バッファ２１３およびテスト用画面バッファ２２３が実現される。また、シナリオ・ファイル２０１も、メモリ１０ｃや磁気ディスク装置１０ｇに保持される。なお、図１２は、本実施形態のテスト実行サーバ２００を実現するのに好適なコンピュータのハードウェア構成を例示するに過ぎず、テスト実行サーバ２００の具体的構成は、図１２に示す構成に限定されない。
【００８１】
以上、本実施形態について説明したが、本実施形態のテスト・システム１０は、上記の具体的構成に限定されるものではない。例えば、テスト実行サーバ２００の機能構成のうち、端末３０および現行ホストシステム４０の動作を再現するための、ホスト・メッセージ再生部２１１、端末メッセージ再生部２１２および比較用画面バッファ２１３と、新ホストシステム５０の動作をテストするための、端末エージェント２２１、自動応答部２２２、テスト用画面バッファ２２３、手動操作再生部２２４および比較部２２５とを、別個のサーバにより構成しても良い。
【００８２】
また、上記の実施形態では、手動操作再生部２２４が手動操作により発生したメッセージを送信するタイミングを、端末３０と現行ホストシステム４０との間で実際に行われたメッセージのやり取りに基づいて特定される時間条件にしたがって、制御した。これは、実際の経過時間を守って再生することで、単位時間当たりの負荷をメッセージ・ファイル３０１の記録時と同じにするためである。これにより、ホストシステムに多数の端末が接続される情報システムの構成を考慮し、ホストシステムの機能要件のテストに加えて、ホストシステムの負荷や安定性などの非機能要件のテストを行う。これに対し、ホストシステムの機能要件のテストのみを行えば良い場合には、時間条件の上限（例えば５秒）を設定し、メッセージの送信タイミングを一定時間以上遅くしないように制御しても良い。
【００８３】
また、上記の実施形態では、手動操作再生部２２４は、メッセージを送信する前に、直前の処理が終了していることを確認するため、テスト用画面バッファ２２３に書き込まれた画面データと、シナリオ・ファイル２０１等に記録されている画面データとを比較した。これに対し、具体的に画面データを比較するのではなく、前回の手動操作によるメッセージの送信後に端末エージェント２２１が新ホストシステム５０から受信したメッセージのメッセージ長の合計と、メッセージ・ファイル３０１に記録されている対応するメッセージのメッセージ長の合計とを比較して、同一であれば、直前の処理が終了していると判定するように構成しても良い。これは、画面データを比較する場合と比べて精度が落ちるが、テスト実行サーバ２００の負担を軽減することが可能な簡便な実装である。
【００８４】
さらに、上記の実施形態では、端末エージェント２２１が手動操作によるメッセージを送信する際に、直前に新ホストシステム５０から受信したメッセージが応答を要求するものであった場合、自動応答によるメッセージを先に送信した後に手動操作によるメッセージの送信を行うこととした。これに対し、端末エージェント２２１が、直前に新ホストシステム５０から受信したメッセージを判別することなく、単に、手動操作再生部２２４からメッセージを取得した後、一定時間（通常、自動応答に必要となる時間）が経過してから、取得したメッセージを送信するように構成しても良い。また、上記の実施形態では、検証対象の情報システムがキャラクタ・ベースのユーザ・インターフェイスを有する場合を例として説明したが、グラフィカル・ユーザ・インターフェイスを有する情報システムに対しても本実施の形態によるテスト・システム１０を適用することが可能である。その他、上記の実施形態に、種々の変更または改良を加えたものも、本発明の技術的範囲に含まれる。
【符号の説明】
【００８５】
１０…テスト・システム、２０…ミラーポート、３０…端末、４０…現行ホストシステム、５０…新ホストシステム、１００…データ収集サーバ、２００…テスト実行サーバ、２０１…シナリオ・ファイル、２１１…ホスト・メッセージ再生部、２１２…端末メッセージ再生部、２１３…比較用画面バッファ、２２１…端末エージェント、２２２…自動応答部、２２３…テスト用画面バッファ、２２４…手動操作再生部、２２５…比較部、３０１…メッセージ・ファイル
【図１】
0005954752.tif 000002
【図２】
0005954752.tif 000003
【図３】
0005954752.tif 000004
【図４】
0005954752.tif 000005
【図５】
0005954752.tif 000006
【図６】
0005954752.tif 000007
【図７】
0005954752.tif 000008
【図８】
0005954752.tif 000009
【図９】
0005954752.tif 000010
【図１０】
0005954752.tif 000011
【図１１】
0005954752.tif 000012
【図１２】
0005954752.tif 000013