JP2010225044A - テストプログラム生成方法、プログラム - Google Patents
テストプログラム生成方法、プログラム Download PDFInfo
- Publication number
- JP2010225044A JP2010225044A JP2009073831A JP2009073831A JP2010225044A JP 2010225044 A JP2010225044 A JP 2010225044A JP 2009073831 A JP2009073831 A JP 2009073831A JP 2009073831 A JP2009073831 A JP 2009073831A JP 2010225044 A JP2010225044 A JP 2010225044A
- Authority
- JP
- Japan
- Prior art keywords
- response
- time
- communication log
- test program
- request
- 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
Abstract
【課題】通信ログに残された通信動作を別のテスト環境でも再現させるためのテストプログラムを生成するにあたって、レスポンス受信待ちのタイムアウトを判断する時間の設定が当該別のテスト環境にそぐわないことが原因で、タイムアウトエラーを頻発させてしまうことを防止する。
【解決手段】ネットワークに接続されたサーバー機器とクライアント機器との間の通信ログを取得し、前記クライアント機器が前記サーバー機器へリクエストを送信してから、当該リクエストに対応するレスポンスを受信するまでのレスポンス到達時間を取得し、予めユーザーが決定した判定許容時間とに基づいてレスポンス待ちタイムアウト時間を設定し、前記通信ログに残された通信を再現するためのテストプログラムであって、前記レスポンス待ちタイムアウト時間内に、前記レスポンスを受信した場合にテスト結果が正常であると判断することを指示したテストプログラムを生成する。
【選択図】図1
【解決手段】ネットワークに接続されたサーバー機器とクライアント機器との間の通信ログを取得し、前記クライアント機器が前記サーバー機器へリクエストを送信してから、当該リクエストに対応するレスポンスを受信するまでのレスポンス到達時間を取得し、予めユーザーが決定した判定許容時間とに基づいてレスポンス待ちタイムアウト時間を設定し、前記通信ログに残された通信を再現するためのテストプログラムであって、前記レスポンス待ちタイムアウト時間内に、前記レスポンスを受信した場合にテスト結果が正常であると判断することを指示したテストプログラムを生成する。
【選択図】図1
Description
本発明は、テストプログラムの生成方法、およびそのテストプログラムを生成するプログラムに関する。
従来、通信機能を備えたテスト対象機器を、ネットワークを介して外部から与えたテスト動作指示によって、テストする構成が知られている。特許文献1には、被検査デバイスに対して送信検査データを送信するとともに、被検査デバイスから受信検査データを受信し、送信検査データと受信検査データとを比較してその結果を表示することが記載されている。
ネットワーク上を行き来するパケットデータをキャプチャーし、通信ログとして出力する機能を備えたパケットキャプチャー装置が知られている。ネットワークに接続された通信機器の間でなされた通信を再現するために、パケットキャプチャー装置から取得した通信ログを元にテストプログラムを自動生成する仕組みを構築することを考える。テストプログラムを自動生成することができれば、手動で作成する場合よりも作成所要時間を短縮できる。
通信ログに基づいて、通信ログに残された通信動作を、通信ログを取得したのと同じ環境において再現しようとするテストプログラムを作成すること自体は容易である。しかし、そのように作成されたテストプログラムを用いて、通信ログを取得した環境と異なる環境でテストしようとしたとき、実際には通信ログに残されていた通信動作を同じように再現できないことが多い。具体的には例えば、ネットワークのトラフィックや、テストに用いる機器のハードウェアの処理能力の差異により、テストプログラム内で規定されているタイムアウト時間内に所望のデータを受信できないことがある。テストプログラム実行時に送受信されるデータは正しいにもかかわらず、タイムアウトエラーの判断基準とするタイムアウト時間の設定が適切でないためにタイムアウトエラーと判定してしまうケースが発生する。
本発明は、上記問題に鑑みてなされたもので、通信ログに残された通信動作を別のテスト環境でも再現させるためのテストプログラムを生成するにあたって、レスポンス受信待ちのタイムアウトを判断する時間の設定が当該別のテスト環境にそぐわないことが原因で、タイムアウトエラーを頻発させてしまうことを防止することを目的の一つとする。
(1)上記目的を達成するためのテストプログラム生成方法は、ネットワークに接続されたサーバー機器とクライアント機器との間の通信ログを取得する通信ログ取得工程と、前記通信ログに基づいて、前記クライアント機器が前記サーバー機器へリクエストを送信してから、前記サーバー機器から当該リクエストに対応するレスポンスを受信するまでのレスポンス到達時間を取得するレスポンス到達時間取得工程と、予めユーザーが決定した判定許容時間を取得する判定許容時間取得工程と、前記レスポンス到達時間と前記判定許容時間と基づいてレスポンス待ちタイムアウト時間を設定するタイムアウト時間設定工程と、前記通信ログに残された通信を、前記サーバー機器と当該サーバー機器と通信するクライアント機器との間で再現するためのテストプログラムであって、前記リクエストの送信から、前記レスポンス待ちタイムアウト時間内に、前記リクエストに対するレスポンスを受信した場合にテスト結果が正常であると判断することを指示したテストプログラムを生成するテストプログラム生成工程と、を含む。
本発明によると、通信ログに残された通信動作を別のテスト環境でも再現するためのテストプログラムを生成するにあたって、通信タイムアウトと判断するタイムアウト時間の設定値を調整することができる。レスポンス受信待ちタイムアウト時間として、通信ログに残された値をそのまま用いるわけではないので、レスポンス受信待ちのタイムアウト判定をテスト環境に応じた値にすることができる。そのため、例えば送受信データの内容や送受信動作自体は再現できているのにも関わらず、レスポンスデータの受信タイミングが通信ログに残されている時間より少し遅れたり、あるいは少し速いために、テストプログラムによる通信テストの結果がエラーとなってしまうことを防止することができる。
以上のテストプログラム生成方法は、この方法をコンピューターに実現させるプログラムの発明や、この方法を実施する装置の発明としても適用可能である。また、以上のような方法を実施する装置は、単独の装置によって実現される場合もあれば、複数の装置を組み合わせることによって実現される場合もあり、各種の態様を含むものである。一部がソフトウェアであり一部がハードウェアであったりするなど、適宜、変更可能である。さらに、前述のプログラムを記録する記録媒体としても発明は成立する。むろん、その記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。
ここでは、下記の順序に従って本発明の実施の形態について説明する。
(1)テストプログラム生成方法の概要と構成:
(2)テストプログラム生成処理:
(3)他の実施形態:
(1)テストプログラム生成方法の概要と構成:
(2)テストプログラム生成処理:
(3)他の実施形態:
(1)テストプログラム生成方法の概要と構成:
図1は、本発明にかかるテストプログラム生成方法を実施する構成と、生成されたテストプログラムを実施する構成を説明するためのブロック図である。コンピューター50,53、プリンター52、パケットキャプチャー装置51は、LANに接続されている。パケットキャプチャー装置51は、コンピューター50とプリンター52との間で交わされるパケットデータを時系列順に取得し、パケットデータ群を示すバイナリデータを含む通信ログファイルを出力する。コンピューター10は、RAM,ROM,CPU等を備える制御部20とHDD30とを備えており、ROMまたはHDD30に記録された様々なプログラムを制御部20で実行することができる。本実施形態においては、テストプログラム生成プログラム21を実行することができる。
図1は、本発明にかかるテストプログラム生成方法を実施する構成と、生成されたテストプログラムを実施する構成を説明するためのブロック図である。コンピューター50,53、プリンター52、パケットキャプチャー装置51は、LANに接続されている。パケットキャプチャー装置51は、コンピューター50とプリンター52との間で交わされるパケットデータを時系列順に取得し、パケットデータ群を示すバイナリデータを含む通信ログファイルを出力する。コンピューター10は、RAM,ROM,CPU等を備える制御部20とHDD30とを備えており、ROMまたはHDD30に記録された様々なプログラムを制御部20で実行することができる。本実施形態においては、テストプログラム生成プログラム21を実行することができる。
テストプログラム生成プログラム21は、パケットキャプチャー装置51から取得した通信ログをもとに、コンピューター50とプリンター52との間で行われた通信を再現するためのプログラムを生成する機能を有している。従来より、キャプチャーした通信をそのまま再現することができる機器は知られているが、キャプチャー環境と再現環境とが同じでなければ機能しなかった。キャプチャー環境と異なる環境で再現するためには、環境固有のパラメーターを再現環境に適したものに変更する必要がある。
テストプログラム生成プログラム21によって生成されたテストプログラム30aは、コンピューター50を含めた様々なコンピューターで実行させることによって、通信ログを取得した際のコンピューター50とプリンター52間の通信を、様々なコンピューター(例えばコンピューター53)とプリンター52の間で再現させることを目的としたプログラムである。
テストプログラム生成プログラム21は、上述のテストプログラム30aを生成する機能を実現するために、通信ログ取得部21aと、レスポンス到達時間取得部21bと、判定許容時間取得部21cと、タイムアウト時間設定部21dと、テストプログラム生成部21eを備えている。通信ログ取得部21aは、二つの通信機器間の通信ログを取得する機能を制御部20に実現させるモジュールである。例えば、パケットキャプチャー装置51が生成したバイナリファイルとしての通信ログを取得する。レスポンス到達時間取得部21bは、通信ログに含まれる複数の組のレスポンス到達時間を取得する機能を制御部20に実現させるモジュールである。
判定許容時間取得部21cは、予めユーザーによって定義された判定許容時間をパラメーター定義ファイル30bから取得する機能を制御部20に実現させるモジュールである。タイムアウト時間設定部21dは、レスポンス到達時間と判定許容時間とに応じてレスポンス待ちタイムアウト時間を設定する機能を制御部20に実現させるモジュールである。テストプログラム生成部21eは、通信ログを再現するためのテストプログラム30aを生成する機能を制御部20に実現させるモジュールである。
テストプログラム30aを実行するコンピューター(例えばコンピューター53)は、ROM,RAM,CPU等を含む制御部200を備えている。コンピューター53の制御部200は、テストプログラム30aの他に、TCP/IPプログラム220やLANアダプタードライバープログラム230を実行可能である。TCP/IPプログラム220は、TCPやUDPやIPなどのプロトコルスタックを含んでおり、各プロトコルに準拠した通信の実行を担当する。LANアダプタードライバープログラム230は、コンピューター53に備えられているLANアダプター400を制御するためのドライバープログラムである。
テストプログラム30aは、TCP/IPプログラム220を使用して、コンピューター53(クライアント機器)とプリンター52(サーバー機器)との通信を実行するための指示(処理命令)を含んでいる。コンピューター53でテストプログラム30aを実行している間、プリンター52とコンピューター53の間で、テストプログラム30aの指示に対応する通信が行われる。
(2)テストプログラム生成処理:
まず、図2は、コンピューター53とプリンター52との間で交わされた通信の一例を説明するためのシーケンス図である。シーケンス図として可視化すると図2のように表されるバイナリデータとしての通信ログファイルを、コンピューター10は、パケットキャプチャー装置51から取得することができる。シーケンス図の上から下に向かう方向は、過去からの時間経過を表している。一つの矢印が一つのパケットを表しており、矢印の根本側がそのパケットの送信元で矢印の先側がそのパケットの宛先を意味している。図2のシーケンス図は、データ送信パケット(リクエスト)とそれに対するデータ受信パケット(レスポンス)の対を一組として合計5組の対を表している。また、通信ログには、各組ごとにレスポンス到達時間を示す情報が含まれている。
まず、図2は、コンピューター53とプリンター52との間で交わされた通信の一例を説明するためのシーケンス図である。シーケンス図として可視化すると図2のように表されるバイナリデータとしての通信ログファイルを、コンピューター10は、パケットキャプチャー装置51から取得することができる。シーケンス図の上から下に向かう方向は、過去からの時間経過を表している。一つの矢印が一つのパケットを表しており、矢印の根本側がそのパケットの送信元で矢印の先側がそのパケットの宛先を意味している。図2のシーケンス図は、データ送信パケット(リクエスト)とそれに対するデータ受信パケット(レスポンス)の対を一組として合計5組の対を表している。また、通信ログには、各組ごとにレスポンス到達時間を示す情報が含まれている。
本実施形態においてレスポンス到達時間は、レスポンスデータ生成時間とネットワーク転送時間との和で定義される時間である。レスポンスデータ生成時間は、リクエストデータを受信した側の機器が当該リクエストデータに対応するレスポンスデータを生成しネットワークに送信し始めるまでの時間を意味する。レスポンスデータ生成時間は、CPUの処理速度やRAMサイズなどのリソースの性能や負荷状況に依存する。ネットワーク転送時間は、リクエストデータが送信されてから当該リクエストデータを受信する側の機器が当該リクエストデータを受信するまでの時間と、レスポンスデータが送信されてからリクエストデータを送信した側の機器が当該レスポンスデータを受信するまでの時間との和を指している。ネットワーク転送時間は、ネットワークのトラフィックや、物理層における転送レート等に依存する。そのため、通信ログに含まれているレスポンス到達時間をそのまま、各組のレスポンスデータ受信の際のタイムアウトを判定するための時間として用いると、上述したような様々な条件によっては、タイムアウトエラーという結果に終わってしまう可能性がある。
そこで本実施形態では、通信ログに含まれる各組の通信のレスポンス到達時間の平均値を求め、予め取得しておいたユーザーの決定による判定許容時間を加算した時間をレスポンス待ちタイムアウト時間とする。図3はテストプログラム生成処理を示すフローチャートである。はじめに制御部20は、通信ログファイルを取得し(ステップS100)、通信ログを解析し、リクエスト送信とそれに対するレスポンス受信までの時間を取得する(ステップS105)。通信ログには、リクエストデータやそのリクエストに対するレスポンスデータ、レスポンス到達時間が含まれており、制御部20は通信ログを解析してそれらの情報を取得する。
続いて制御部20は、通信ログに含まれる全ての組の通信について解析が終了したかどうかを判定し(ステップS110)、解析が完了した場合は、通信ログに含まれる各組のレスポンス到達時間からその平均値を算出する(ステップS115)。次に制御部20は、予めユーザーが設定しておいた判定許容時間と、ステップS115で算出した平均値とを合算して、レスポンス待ちタイムアウト時間を設定する(ステップS120)。
続いて制御部20は、レスポンス待ちタイムアウト時間をタイムアウトエラーの判定の閾値として用いたテストプログラムを生成する(ステップS125)。具体的には、図4のフローチャートに示すような処理の流れを記述したソースコードを生成する。例えば、図2のように示される通信ログからは、レスポンス到達時間の平均値は、「82ms」と算出される。ユーザーが予め設定しておいた判定許容時間が「+100ms」であるとすると、レスポンス待ちタイムアウト時間は182msとなる。リクエスト1のデータを送信して所要時間のカウントを開始し(ステップS200)、レスポンス待ちタイムアウト時間が経過したか否かを判定し(ステップS205)、レスポンス待ちタイムアウト時間内にレスポンスの受信が完了していれば(ステップS210、Y判定)、受信したレスポンスデータを取り出す(ステップS215)。レスポンス待ちタイムアウト時間内にレスポンスデータが到着しなかった場合は(ステップS205、Y判定)、レスポンス1の受信タイムアウトエラーを記録する(ステップS220)。以降の組の送受信処理も同様に記述する(ステップS225〜S240)。
以上説明したように、本実施形態によると、通信ログに残された通信動作を別のテスト環境でも再現するためのテストプログラムを生成するにあたって、通信タイムアウトと判断するタイムアウト時間の設定値を調整することができる。レスポンス受信待ちタイムアウト時間として、通信ログに残された値をそのまま用いるわけではないので、レスポンス受信待ちのタイムアウト判定をテスト環境に応じた値にすることができる。そのため、例えば送受信データの内容や送受信動作自体は再現できているのにも関わらず、レスポンスデータの受信タイミングが通信ログに残されている時間より少し遅れたり、あるいは少し速いために、テストプログラムによる通信テストの結果がエラーとなってしまうことを防止することができる。
(3)他の実施形態:
尚、本発明の技術的範囲は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。例えば、上記実施形態では、通信ログから取得した各レスポンス到達時間の平均値とユーザー設定値である判定許容時間との和を全ての通信のエラー判定に共通して用いるレスポンス待ちタイムアウト時間とすることを説明したが、レスポンス待ちタイムアウト時間は、送信データや受信データのサイズに応じて変更するようにしてもよい。すなわち、リクエストデータやレスポンスデータのサイズが大きい組は小さい組よりもレスポンス待ちタイムアウト時間を長く設定するようにしてもよい。リクエストデータやレスポンスデータのサイズを通信ログから取得することができる。
尚、本発明の技術的範囲は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。例えば、上記実施形態では、通信ログから取得した各レスポンス到達時間の平均値とユーザー設定値である判定許容時間との和を全ての通信のエラー判定に共通して用いるレスポンス待ちタイムアウト時間とすることを説明したが、レスポンス待ちタイムアウト時間は、送信データや受信データのサイズに応じて変更するようにしてもよい。すなわち、リクエストデータやレスポンスデータのサイズが大きい組は小さい組よりもレスポンス待ちタイムアウト時間を長く設定するようにしてもよい。リクエストデータやレスポンスデータのサイズを通信ログから取得することができる。
10:コンピューター、20:制御部、21:テストプログラム生成プログラム、21a:通信ログ取得部、21b:レスポンス到達時間取得部、21c:判定許容時間取得部、21d:タイムアウト時間設定部、21e:テストプログラム生成部、30a:テストプログラム、30b:パラメーター定義ファイル、50:コンピューター、51:パケットキャプチャー装置、52:プリンター、53:コンピューター、200:制御部、220:プログラム、230:LANアダプタードライバープログラム、400:LANアダプター。
Claims (2)
- ネットワークに接続されたサーバー機器とクライアント機器との間の通信ログを取得する通信ログ取得工程と、
前記通信ログに基づいて、前記クライアント機器が前記サーバー機器へリクエストを送信してから、前記サーバー機器から当該リクエストに対応するレスポンスを受信するまでのレスポンス到達時間を取得するレスポンス到達時間取得工程と、
予めユーザーが決定した判定許容時間を取得する判定許容時間取得工程と、
前記レスポンス到達時間と前記判定許容時間と基づいてレスポンス待ちタイムアウト時間を設定するタイムアウト時間設定工程と、
前記通信ログに残された通信を、前記サーバー機器と当該サーバー機器と通信するクライアント機器との間で再現するためのテストプログラムであって、前記リクエストの送信から、前記レスポンス待ちタイムアウト時間内に、前記リクエストに対するレスポンスを受信した場合にテスト結果が正常であると判断することを指示したテストプログラムを生成するテストプログラム生成工程と、
を含むテストプログラム生成方法。 - ネットワークに接続されたサーバー機器とクライアント機器との間の通信ログを取得する通信ログ取得機能と、
前記通信ログに基づいて、前記クライアント機器が前記サーバー機器へリクエストを送信してから、前記サーバー機器から当該リクエストに対応するレスポンスを受信するまでのレスポンス到達時間を取得するレスポンス到達時間取得機能と、
予めユーザーが決定した判定許容時間を取得する判定許容時間取得機能と、
前記レスポンス到達時間と前記判定許容時間と基づいてレスポンス待ちタイムアウト時間を設定するタイムアウト時間設定機能と、
前記通信ログに残された通信を、前記サーバー機器と当該サーバー機器と通信するクライアント機器との間で再現するためのテストプログラムであって、前記リクエストの送信から、前記レスポンス待ちタイムアウト時間内に、前記リクエストに対するレスポンスを受信した場合にテスト結果が正常であると判断することを指示したテストプログラムを生成するテストプログラム生成機能と、
をコンピューターに実現させるテストプログラム生成プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009073831A JP2010225044A (ja) | 2009-03-25 | 2009-03-25 | テストプログラム生成方法、プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009073831A JP2010225044A (ja) | 2009-03-25 | 2009-03-25 | テストプログラム生成方法、プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010225044A true JP2010225044A (ja) | 2010-10-07 |
Family
ID=43042139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009073831A Withdrawn JP2010225044A (ja) | 2009-03-25 | 2009-03-25 | テストプログラム生成方法、プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010225044A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014175699A (ja) * | 2013-03-06 | 2014-09-22 | Hitachi Ltd | パケットリプレイ装置およびパケットリプレイ方法 |
JP2015170203A (ja) * | 2014-03-07 | 2015-09-28 | 富士通株式会社 | 検証方法、検証プログラムおよび検証装置 |
-
2009
- 2009-03-25 JP JP2009073831A patent/JP2010225044A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014175699A (ja) * | 2013-03-06 | 2014-09-22 | Hitachi Ltd | パケットリプレイ装置およびパケットリプレイ方法 |
JP2015170203A (ja) * | 2014-03-07 | 2015-09-28 | 富士通株式会社 | 検証方法、検証プログラムおよび検証装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kakhki et al. | Taking a long look at QUIC: an approach for rigorous evaluation of rapidly evolving transport protocols | |
US10392823B2 (en) | Synthetic client | |
US20040210665A1 (en) | Protocol testing system and protocol testing method | |
US11395189B2 (en) | State machine handling at a proxy node in an Ethernet-based fronthaul network | |
EP3457704A1 (en) | Quality of user experience testing for video transmissions | |
JP2007006477A (ja) | 装置及び方法 | |
JP2006013920A (ja) | 障害解析プログラム、障害解析装置、記録媒体及び障害解析方法 | |
EP3089435B1 (en) | Service processing method and network device | |
JP5203495B2 (ja) | イーサネット環境におけるudpデータ伝送の公正性確保装置及び方法 | |
WO2010097978A1 (ja) | 通信装置、方法及びプログラム | |
JP2010205011A (ja) | 障害再現システム、障害再現方法および通信再現装置 | |
Kakhki et al. | Taking a long look at QUIC: An approach for rigorous evaluation of rapidly evolving transport protocols | |
JP5304674B2 (ja) | データ変換装置、データ変換方法及びプログラム | |
JP2010225044A (ja) | テストプログラム生成方法、プログラム | |
CN107294877B (zh) | 一种tcp流重组方法和装置 | |
JP5768722B2 (ja) | 検証試験のためのプログラム、情報処理方法及び情報処理装置 | |
US20140189009A1 (en) | Computer-readable recording medium and information processing apparatus | |
JP2003076619A (ja) | 通信処理装置、管理装置、プログラム及び通信システム | |
JP2010226617A (ja) | テストプログラム生成方法、プログラム | |
CN107070673B (zh) | 基于集中式控制平面的路径状态回报方法 | |
CN115277806A (zh) | 云桌面连接方法、装置和设备 | |
CN113923140B (zh) | 往返时延测量方法、系统和存储介质 | |
JP5194307B2 (ja) | シリアルデバイスサーバ | |
Toll et al. | IoTreeplay: Synchronous Distributed Traffic Replay in IoT Environments | |
US20160036683A1 (en) | Synthetic client |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20120605 |