(57)【要約】      （修正有）【課題】通信ログに残された通信動作を別のテスト環境でも再現させるためのテストプログラムを生成するにあたって、レスポンス受信待ちのタイムアウトを判断する時間の設定が当該別のテスト環境にそぐわないことが原因で、タイムアウトエラーを頻発させてしまうことを防止する。【解決手段】ネットワークに接続されたサーバー機器とクライアント機器との間の通信ログを取得し、前記クライアント機器が前記サーバー機器へリクエストを送信してから、当該リクエストに対応するレスポンスを受信するまでのレスポンス到達時間を取得し、予めユーザーが決定した判定許容時間とに基づいてレスポンス待ちタイムアウト時間を設定し、前記通信ログに残された通信を再現するためのテストプログラムであって、前記レスポンス待ちタイムアウト時間内に、前記レスポンスを受信した場合にテスト結果が正常であると判断することを指示したテストプログラムを生成する。【選択図】図１
2010225044.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続されたサーバー機器とクライアント機器との間の通信ログを取得する通信ログ取得工程と、
前記通信ログに基づいて、前記クライアント機器が前記サーバー機器へリクエストを送信してから、前記サーバー機器から当該リクエストに対応するレスポンスを受信するまでのレスポンス到達時間を取得するレスポンス到達時間取得工程と、
予めユーザーが決定した判定許容時間を取得する判定許容時間取得工程と、
前記レスポンス到達時間と前記判定許容時間と基づいてレスポンス待ちタイムアウト時間を設定するタイムアウト時間設定工程と、
前記通信ログに残された通信を、前記サーバー機器と当該サーバー機器と通信するクライアント機器との間で再現するためのテストプログラムであって、前記リクエストの送信から、前記レスポンス待ちタイムアウト時間内に、前記リクエストに対するレスポンスを受信した場合にテスト結果が正常であると判断することを指示したテストプログラムを生成するテストプログラム生成工程と、
を含むテストプログラム生成方法。
【請求項２】
ネットワークに接続されたサーバー機器とクライアント機器との間の通信ログを取得する通信ログ取得機能と、
前記通信ログに基づいて、前記クライアント機器が前記サーバー機器へリクエストを送信してから、前記サーバー機器から当該リクエストに対応するレスポンスを受信するまでのレスポンス到達時間を取得するレスポンス到達時間取得機能と、
予めユーザーが決定した判定許容時間を取得する判定許容時間取得機能と、
前記レスポンス到達時間と前記判定許容時間と基づいてレスポンス待ちタイムアウト時間を設定するタイムアウト時間設定機能と、
前記通信ログに残された通信を、前記サーバー機器と当該サーバー機器と通信するクライアント機器との間で再現するためのテストプログラムであって、前記リクエストの送信から、前記レスポンス待ちタイムアウト時間内に、前記リクエストに対するレスポンスを受信した場合にテスト結果が正常であると判断することを指示したテストプログラムを生成するテストプログラム生成機能と、
をコンピューターに実現させるテストプログラム生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テストプログラムの生成方法、およびそのテストプログラムを生成するプログラムに関する。
【背景技術】
【０００２】
従来、通信機能を備えたテスト対象機器を、ネットワークを介して外部から与えたテスト動作指示によって、テストする構成が知られている。特許文献１には、被検査デバイスに対して送信検査データを送信するとともに、被検査デバイスから受信検査データを受信し、送信検査データと受信検査データとを比較してその結果を表示することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３２８２６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ネットワーク上を行き来するパケットデータをキャプチャーし、通信ログとして出力する機能を備えたパケットキャプチャー装置が知られている。ネットワークに接続された通信機器の間でなされた通信を再現するために、パケットキャプチャー装置から取得した通信ログを元にテストプログラムを自動生成する仕組みを構築することを考える。テストプログラムを自動生成することができれば、手動で作成する場合よりも作成所要時間を短縮できる。
【０００５】
通信ログに基づいて、通信ログに残された通信動作を、通信ログを取得したのと同じ環境において再現しようとするテストプログラムを作成すること自体は容易である。しかし、そのように作成されたテストプログラムを用いて、通信ログを取得した環境と異なる環境でテストしようとしたとき、実際には通信ログに残されていた通信動作を同じように再現できないことが多い。具体的には例えば、ネットワークのトラフィックや、テストに用いる機器のハードウェアの処理能力の差異により、テストプログラム内で規定されているタイムアウト時間内に所望のデータを受信できないことがある。テストプログラム実行時に送受信されるデータは正しいにもかかわらず、タイムアウトエラーの判断基準とするタイムアウト時間の設定が適切でないためにタイムアウトエラーと判定してしまうケースが発生する。
【０００６】
本発明は、上記問題に鑑みてなされたもので、通信ログに残された通信動作を別のテスト環境でも再現させるためのテストプログラムを生成するにあたって、レスポンス受信待ちのタイムアウトを判断する時間の設定が当該別のテスト環境にそぐわないことが原因で、タイムアウトエラーを頻発させてしまうことを防止することを目的の一つとする。
【課題を解決するための手段】
【０００７】
（１）上記目的を達成するためのテストプログラム生成方法は、ネットワークに接続されたサーバー機器とクライアント機器との間の通信ログを取得する通信ログ取得工程と、前記通信ログに基づいて、前記クライアント機器が前記サーバー機器へリクエストを送信してから、前記サーバー機器から当該リクエストに対応するレスポンスを受信するまでのレスポンス到達時間を取得するレスポンス到達時間取得工程と、予めユーザーが決定した判定許容時間を取得する判定許容時間取得工程と、前記レスポンス到達時間と前記判定許容時間と基づいてレスポンス待ちタイムアウト時間を設定するタイムアウト時間設定工程と、前記通信ログに残された通信を、前記サーバー機器と当該サーバー機器と通信するクライアント機器との間で再現するためのテストプログラムであって、前記リクエストの送信から、前記レスポンス待ちタイムアウト時間内に、前記リクエストに対するレスポンスを受信した場合にテスト結果が正常であると判断することを指示したテストプログラムを生成するテストプログラム生成工程と、を含む。
【０００８】
本発明によると、通信ログに残された通信動作を別のテスト環境でも再現するためのテストプログラムを生成するにあたって、通信タイムアウトと判断するタイムアウト時間の設定値を調整することができる。レスポンス受信待ちタイムアウト時間として、通信ログに残された値をそのまま用いるわけではないので、レスポンス受信待ちのタイムアウト判定をテスト環境に応じた値にすることができる。そのため、例えば送受信データの内容や送受信動作自体は再現できているのにも関わらず、レスポンスデータの受信タイミングが通信ログに残されている時間より少し遅れたり、あるいは少し速いために、テストプログラムによる通信テストの結果がエラーとなってしまうことを防止することができる。
【０００９】
以上のテストプログラム生成方法は、この方法をコンピューターに実現させるプログラムの発明や、この方法を実施する装置の発明としても適用可能である。また、以上のような方法を実施する装置は、単独の装置によって実現される場合もあれば、複数の装置を組み合わせることによって実現される場合もあり、各種の態様を含むものである。一部がソフトウェアであり一部がハードウェアであったりするなど、適宜、変更可能である。さらに、前述のプログラムを記録する記録媒体としても発明は成立する。むろん、その記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の構成を示すブロック図。
【図２】通信ログに含まれるパケット群のシーケンスの一例を示すシーケンス図。
【図３】テストプログラム生成処理を示すフローチャート。
【図４】テストプログラムを示すフローチャート。
【発明を実施するための形態】
【００１１】
ここでは、下記の順序に従って本発明の実施の形態について説明する。
（１）テストプログラム生成方法の概要と構成：
（２）テストプログラム生成処理：
（３）他の実施形態：
【００１２】
（１）テストプログラム生成方法の概要と構成：
図１は、本発明にかかるテストプログラム生成方法を実施する構成と、生成されたテストプログラムを実施する構成を説明するためのブロック図である。コンピューター５０，５３、プリンター５２、パケットキャプチャー装置５１は、ＬＡＮに接続されている。パケットキャプチャー装置５１は、コンピューター５０とプリンター５２との間で交わされるパケットデータを時系列順に取得し、パケットデータ群を示すバイナリデータを含む通信ログファイルを出力する。コンピューター１０は、ＲＡＭ，ＲＯＭ，ＣＰＵ等を備える制御部２０とＨＤＤ３０とを備えており、ＲＯＭまたはＨＤＤ３０に記録された様々なプログラムを制御部２０で実行することができる。本実施形態においては、テストプログラム生成プログラム２１を実行することができる。
【００１３】
テストプログラム生成プログラム２１は、パケットキャプチャー装置５１から取得した通信ログをもとに、コンピューター５０とプリンター５２との間で行われた通信を再現するためのプログラムを生成する機能を有している。従来より、キャプチャーした通信をそのまま再現することができる機器は知られているが、キャプチャー環境と再現環境とが同じでなければ機能しなかった。キャプチャー環境と異なる環境で再現するためには、環境固有のパラメーターを再現環境に適したものに変更する必要がある。
【００１４】
テストプログラム生成プログラム２１によって生成されたテストプログラム３０ａは、コンピューター５０を含めた様々なコンピューターで実行させることによって、通信ログを取得した際のコンピューター５０とプリンター５２間の通信を、様々なコンピューター（例えばコンピューター５３）とプリンター５２の間で再現させることを目的としたプログラムである。
【００１５】
テストプログラム生成プログラム２１は、上述のテストプログラム３０ａを生成する機能を実現するために、通信ログ取得部２１ａと、レスポンス到達時間取得部２１ｂと、判定許容時間取得部２１ｃと、タイムアウト時間設定部２１ｄと、テストプログラム生成部２１ｅを備えている。通信ログ取得部２１ａは、二つの通信機器間の通信ログを取得する機能を制御部２０に実現させるモジュールである。例えば、パケットキャプチャー装置５１が生成したバイナリファイルとしての通信ログを取得する。レスポンス到達時間取得部２１ｂは、通信ログに含まれる複数の組のレスポンス到達時間を取得する機能を制御部２０に実現させるモジュールである。
【００１６】
判定許容時間取得部２１ｃは、予めユーザーによって定義された判定許容時間をパラメーター定義ファイル３０ｂから取得する機能を制御部２０に実現させるモジュールである。タイムアウト時間設定部２１ｄは、レスポンス到達時間と判定許容時間とに応じてレスポンス待ちタイムアウト時間を設定する機能を制御部２０に実現させるモジュールである。テストプログラム生成部２１ｅは、通信ログを再現するためのテストプログラム３０ａを生成する機能を制御部２０に実現させるモジュールである。
【００１７】
テストプログラム３０ａを実行するコンピューター（例えばコンピューター５３）は、ＲＯＭ，ＲＡＭ，ＣＰＵ等を含む制御部２００を備えている。コンピューター５３の制御部２００は、テストプログラム３０ａの他に、ＴＣＰ／ＩＰプログラム２２０やＬＡＮアダプタードライバープログラム２３０を実行可能である。ＴＣＰ／ＩＰプログラム２２０は、ＴＣＰやＵＤＰやＩＰなどのプロトコルスタックを含んでおり、各プロトコルに準拠した通信の実行を担当する。ＬＡＮアダプタードライバープログラム２３０は、コンピューター５３に備えられているＬＡＮアダプター４００を制御するためのドライバープログラムである。
【００１８】
テストプログラム３０ａは、ＴＣＰ／ＩＰプログラム２２０を使用して、コンピューター５３（クライアント機器）とプリンター５２（サーバー機器）との通信を実行するための指示（処理命令）を含んでいる。コンピューター５３でテストプログラム３０ａを実行している間、プリンター５２とコンピューター５３の間で、テストプログラム３０ａの指示に対応する通信が行われる。
【００１９】
（２）テストプログラム生成処理：
まず、図２は、コンピューター５３とプリンター５２との間で交わされた通信の一例を説明するためのシーケンス図である。シーケンス図として可視化すると図２のように表されるバイナリデータとしての通信ログファイルを、コンピューター１０は、パケットキャプチャー装置５１から取得することができる。シーケンス図の上から下に向かう方向は、過去からの時間経過を表している。一つの矢印が一つのパケットを表しており、矢印の根本側がそのパケットの送信元で矢印の先側がそのパケットの宛先を意味している。図２のシーケンス図は、データ送信パケット（リクエスト）とそれに対するデータ受信パケット（レスポンス）の対を一組として合計５組の対を表している。また、通信ログには、各組ごとにレスポンス到達時間を示す情報が含まれている。
【００２０】
本実施形態においてレスポンス到達時間は、レスポンスデータ生成時間とネットワーク転送時間との和で定義される時間である。レスポンスデータ生成時間は、リクエストデータを受信した側の機器が当該リクエストデータに対応するレスポンスデータを生成しネットワークに送信し始めるまでの時間を意味する。レスポンスデータ生成時間は、ＣＰＵの処理速度やＲＡＭサイズなどのリソースの性能や負荷状況に依存する。ネットワーク転送時間は、リクエストデータが送信されてから当該リクエストデータを受信する側の機器が当該リクエストデータを受信するまでの時間と、レスポンスデータが送信されてからリクエストデータを送信した側の機器が当該レスポンスデータを受信するまでの時間との和を指している。ネットワーク転送時間は、ネットワークのトラフィックや、物理層における転送レート等に依存する。そのため、通信ログに含まれているレスポンス到達時間をそのまま、各組のレスポンスデータ受信の際のタイムアウトを判定するための時間として用いると、上述したような様々な条件によっては、タイムアウトエラーという結果に終わってしまう可能性がある。
【００２１】
そこで本実施形態では、通信ログに含まれる各組の通信のレスポンス到達時間の平均値を求め、予め取得しておいたユーザーの決定による判定許容時間を加算した時間をレスポンス待ちタイムアウト時間とする。図３はテストプログラム生成処理を示すフローチャートである。はじめに制御部２０は、通信ログファイルを取得し（ステップＳ１００）、通信ログを解析し、リクエスト送信とそれに対するレスポンス受信までの時間を取得する（ステップＳ１０５）。通信ログには、リクエストデータやそのリクエストに対するレスポンスデータ、レスポンス到達時間が含まれており、制御部２０は通信ログを解析してそれらの情報を取得する。
【００２２】
続いて制御部２０は、通信ログに含まれる全ての組の通信について解析が終了したかどうかを判定し（ステップＳ１１０）、解析が完了した場合は、通信ログに含まれる各組のレスポンス到達時間からその平均値を算出する（ステップＳ１１５）。次に制御部２０は、予めユーザーが設定しておいた判定許容時間と、ステップＳ１１５で算出した平均値とを合算して、レスポンス待ちタイムアウト時間を設定する（ステップＳ１２０）。
【００２３】
続いて制御部２０は、レスポンス待ちタイムアウト時間をタイムアウトエラーの判定の閾値として用いたテストプログラムを生成する（ステップＳ１２５）。具体的には、図４のフローチャートに示すような処理の流れを記述したソースコードを生成する。例えば、図２のように示される通信ログからは、レスポンス到達時間の平均値は、「８２ｍｓ」と算出される。ユーザーが予め設定しておいた判定許容時間が「＋１００ｍｓ」であるとすると、レスポンス待ちタイムアウト時間は１８２ｍｓとなる。リクエスト１のデータを送信して所要時間のカウントを開始し（ステップＳ２００）、レスポンス待ちタイムアウト時間が経過したか否かを判定し（ステップＳ２０５）、レスポンス待ちタイムアウト時間内にレスポンスの受信が完了していれば（ステップＳ２１０、Ｙ判定）、受信したレスポンスデータを取り出す（ステップＳ２１５）。レスポンス待ちタイムアウト時間内にレスポンスデータが到着しなかった場合は（ステップＳ２０５、Ｙ判定）、レスポンス１の受信タイムアウトエラーを記録する（ステップＳ２２０）。以降の組の送受信処理も同様に記述する（ステップＳ２２５〜Ｓ２４０）。
【００２４】
以上説明したように、本実施形態によると、通信ログに残された通信動作を別のテスト環境でも再現するためのテストプログラムを生成するにあたって、通信タイムアウトと判断するタイムアウト時間の設定値を調整することができる。レスポンス受信待ちタイムアウト時間として、通信ログに残された値をそのまま用いるわけではないので、レスポンス受信待ちのタイムアウト判定をテスト環境に応じた値にすることができる。そのため、例えば送受信データの内容や送受信動作自体は再現できているのにも関わらず、レスポンスデータの受信タイミングが通信ログに残されている時間より少し遅れたり、あるいは少し速いために、テストプログラムによる通信テストの結果がエラーとなってしまうことを防止することができる。
【００２５】
（３）他の実施形態：
尚、本発明の技術的範囲は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。例えば、上記実施形態では、通信ログから取得した各レスポンス到達時間の平均値とユーザー設定値である判定許容時間との和を全ての通信のエラー判定に共通して用いるレスポンス待ちタイムアウト時間とすることを説明したが、レスポンス待ちタイムアウト時間は、送信データや受信データのサイズに応じて変更するようにしてもよい。すなわち、リクエストデータやレスポンスデータのサイズが大きい組は小さい組よりもレスポンス待ちタイムアウト時間を長く設定するようにしてもよい。リクエストデータやレスポンスデータのサイズを通信ログから取得することができる。
【符号の説明】
【００２６】
１０：コンピューター、２０：制御部、２１：テストプログラム生成プログラム、２１ａ：通信ログ取得部、２１ｂ：レスポンス到達時間取得部、２１ｃ：判定許容時間取得部、２１ｄ：タイムアウト時間設定部、２１ｅ：テストプログラム生成部、３０ａ：テストプログラム、３０ｂ：パラメーター定義ファイル、５０：コンピューター、５１：パケットキャプチャー装置、５２：プリンター、５３：コンピューター、２００：制御部、２２０：プログラム、２３０：ＬＡＮアダプタードライバープログラム、４００：ＬＡＮアダプター。
【図１】
2010225044.tif 000003
【図２】
2010225044.tif 000004
【図３】
2010225044.tif 000005
【図４】
2010225044.tif 000006