(57)【特許請求の範囲】
【請求項１】
コンピュータに、
装置間において送受信される一連のデータを取得し、
取得した前記一連のデータを分割することにより複数のデータ群を作成し、
作成した前記複数のデータ群の中から、送信元の識別情報の発行要求となる特定のデータを含むデータ群を検出し、
前記複数のデータ群のうち、検出した前記データ群よりも送信された順序が後となる後続のデータ群の先頭に前記特定のデータを付加し、
前記後続のデータ群の先頭に前記特定のデータを付加した前記複数のデータ群を出力する、
処理を実行させることを特徴とする検証支援プログラム。
【請求項２】
前記作成する処理は、
前記一連のデータの各々のデータのデータ量に基づいて、前記一連のデータを基準時刻からデータ群単位のデータ量が所定値となるように分割することにより、前記複数のデータ群を作成することを特徴とする請求項１に記載の検証支援プログラム。
【請求項３】
前記作成する処理は、
前記一連のデータの各々のデータの送信時刻に基づいて、前記一連のデータを基準時刻から一定の時間幅で区切った期間ごとに分割することにより、前記複数のデータ群を作成することを特徴とする請求項１に記載の検証支援プログラム。
【請求項４】
前記コンピュータに、
検証対象システムの動作検証を行う複数の検証装置の各々の検証装置に、前記後続のデータ群の先頭に前記特定のデータを付加した前記複数のデータ群の各々のデータ群をそれぞれ割り当て、
前記各々の検証装置に割り当てた前記各々のデータ群に基づく前記動作検証が行われた結果、前記各々の検証装置から前記動作検証の検証結果を取得し、
前記各々の検証装置から取得した前記検証結果に基づいて、前記検証対象システムが正常に動作するか否かを判定し、
判定した判定結果を出力する、
処理を実行させることを特徴とする請求項１〜３のいずれか一つに記載の検証支援プログラム。
【請求項５】
前記コンピュータに、
前記装置間においてデータベースに対する操作を表すデータが送受信される場合、所定期間内に設定された各々の時刻における前記データベースの記憶内容を複製した前記各々の時刻における複製データを生成する処理を実行させ、
前記取得する処理は、
前記所定期間内の前記装置間において送受信される一連のデータを取得し、
前記作成する処理は、
前記一連のデータを前記各々の時刻において分割することにより前記複数のデータ群を作成することを特徴とする請求項１〜４のいずれか一つに記載の検証支援プログラム。
【請求項６】
前記コンピュータに、
検証対象システムの動作検証を行う複数の検証装置がアクセス可能な記憶部に前記各々の時刻における複製データを格納し、
前記複数の検証装置の各々の検証装置に、前記後続のデータ群の先頭に前記特定のデータを付加した前記複数のデータ群の各々のデータ群をそれぞれ割り当て、
前記各々のデータ群と前記記憶部に格納されている前記動作検証の開始時刻に対応する複製データとに基づく前記動作検証が行われた結果、前記動作検証の終了時刻における前記データベースの記憶内容と前記記憶部に格納されている前記動作検証の終了時刻に対応する複製データとの比較結果を前記各々の検証装置から取得し、
前記各々の検証装置から取得した前記比較結果に基づいて、前記検証対象システムが正常に動作するか否かを判定し、
判定した判定結果を出力する、
処理を実行させることを特徴とする請求項５に記載の検証支援プログラム。
【請求項７】
コンピュータが、
装置間において送受信される一連のデータを取得し、
取得した前記一連のデータを分割することにより複数のデータ群を作成し、
作成した前記複数のデータ群の中から、送信元の識別情報の発行要求となる特定のデータを含むデータ群を検出し、
前記複数のデータ群のうち、検出した前記データ群よりも送信された順序が後となる後続のデータ群の先頭に前記特定のデータを付加し、
前記後続のデータ群の先頭に前記特定のデータを付加した前記複数のデータ群を出力する、
処理を実行することを特徴とする検証支援方法。
【請求項８】
装置間において送受信される一連のデータを取得する取得部と、
前記取得部によって取得された前記一連のデータを分割することにより複数のデータ群を作成する作成部と、
前記作成部によって作成された前記複数のデータ群の中から、送信元の識別情報の発行要求となる特定のデータを含むデータ群を検出する検出部と、
前記複数のデータ群のうち、前記検出部によって検出された前記データ群よりも送信された順序が後となる後続のデータ群の先頭に前記特定のデータを付加する付加部と、
前記付加部によって前記後続のデータ群の先頭に前記特定のデータが付加された前記複数のデータ群を出力する出力部と、
を有することを特徴とする検証支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検証支援プログラム、検証支援方法および検証支援装置に関する。
【背景技術】
【０００２】
システムの性能や機能を検証する分野において、実動系のシステムとは別に検証系のシステムを用意し、実動系のシステムと同様の負荷を検証系のシステムにかけて性能や機能の検証を行う技術がある。
【０００３】
関連する先行技術としては、例えば、実際の配信間隔と同じタイミングで再送を行って、障害発生の再現テストを実施し、再現する必要がない部分については短い電文間隔で高速再送してシミュレーションを行う技術がある（以下、「従来技術１」と表記）。また、例えば、プログラムのデバッグを取り消して過去のプログラム実行環境に設定し、プログラム実行環境が過去に遡った時点で有効になっていたデバッグ設定情報を復元するための技術がある。また、例えば、遠隔にある予備系サーバからの応答を待たずに主系サーバからパケットを送出し続けて、予備系サーバが主系サーバと同一処理を同一タイミングで実行するための技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−８１１９４号公報
【特許文献２】特開平１１−１１０２５３号公報
【特許文献３】特開２０１１−１９９６８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術によれば、実動系システムと同様の負荷をかけて検証系システムの性能や機能を検証する場合の検証期間の短縮化を図ることが難しいという問題がある。例えば、従来技術１は、実動系システムの電文間隔より短い間隔で検証系システムに電文を送信するため、検証系システムの負荷を保った検証試験を実施するには短くする間隔に限界があり、また、電文間隔を詰められる部分は限られている。
【０００６】
一側面では、本発明は、システムの検証試験を複数の検証系において分散処理する検証用データを作成することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、装置間において送受信される一連のデータを取得し、取得した前記一連のデータを分割することにより複数のデータ群を作成し、作成した前記複数のデータ群の中から、送信元の識別情報の発行要求となる特定のデータを含むデータ群を検出し、前記複数のデータ群のうち、検出した前記データ群よりも送信された順序が後となる後続のデータ群の先頭に前記特定のデータを付加し、前記後続のデータ群の先頭に前記特定のデータを付加した前記複数のデータ群を出力する検証支援プログラム、検証支援方法および検証支援装置が提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、システムの検証試験を複数の検証系において分散処理する検証用データを作成することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態１にかかる検証支援方法の一実施例を示す説明図である。
【図２】図２は、試験システム２００のシステム構成例を示す説明図である。
【図３】図３は、検証試験装置２０１のハードウェア構成例を示すブロック図である。
【図４】図４は、キャプチャデータの具体例を示す説明図である。
【図５】図５は、実施の形態１にかかる試験管理装置２０２の機能的構成例を示すブロック図である。
【図６】図６は、分割キャプチャデータの作成例を示す説明図（その１）である。
【図７】図７は、分割キャプチャデータの作成例を示す説明図（その２）である。
【図８】図８は、パケットＸの付加例を示す説明図である。
【図９】図９は、検証結果および判定結果の具体例を示す説明図（その１）である。
【図１０】図１０は、実施の形態１にかかる試験管理装置２０２の検証支援処理手順の一例を示すフローチャートである。
【図１１】図１１は、実施の形態１にかかる試験管理装置２０２の検証処理手順の一例を示すフローチャートである。
【図１２】図１２は、ＤＢに対する操作を表すパケットの具体例を示す説明図（その１）である。
【図１３】図１３は、ＤＢに対する操作を表すパケットの具体例を示す説明図（その２）である。
【図１４】図１４は、実施の形態２にかかる試験管理装置２０２の機能的構成例を示すブロック図である。
【図１５】図１５は、更新系のパケットの付加例を示す説明図である。
【図１６】図１６は、スナップショットの生成例を示す説明図である。
【図１７】図１７は、スナップショットテーブル１７００の記憶内容の一例を示す説明図である。
【図１８】図１８は、試験装置の検証処理の処理例を示す説明図である。
【図１９】図１９は、検証結果および判定結果の具体例を示す説明図（その２）である。
【図２０】図２０は、実施の形態２にかかる試験管理装置２０２の生成処理手順の一例を示すフローチャートである。
【図２１】図２１は、実施の形態２にかかる試験装置２０３−ｉの検証処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、この発明にかかる検証支援プログラム、検証支援方法および検証支援装置の実施の形態を詳細に説明する。
【００１１】
（実施の形態１）
図１は、実施の形態１にかかる検証支援方法の一実施例を示す説明図である。図１において、検証支援装置１００は、検証対象システムの動作検証を支援するコンピュータである。ここで、検証対象システムは、例えば、実際に稼動している実動系システムを模擬したシステムである。
【００１２】
また、検証対象システムの動作検証とは、検証対象システムの機能や性能を検証することである。具体的には、例えば、検証対象システムにおいて、実動系システムの装置間において送受信されるデータと同様のデータを送受信させることにより、実動系システムと同様の負荷を検証対象システムにかけて機能や性能の検証が行われる。
【００１３】
より具体的には、例えば、サーバへのパッチ適用、ファームウェア更新等の作業が行われる場合に、検証対象システムにおいて作業後のサーバが作業前と同様に動作するか否かの検証が行われる。また、実際のトランザクションデータから障害が発生した期間のデータを抜き出して、検証対象システムにおいて障害発生時の動作を再現して障害原因の検証が行われる。また、システムを移行する場合に、実動系システムを停止することなく、検証対象システムにおいてシステム移行後の各装置が正常に動作するか否かの検証が行われる。
【００１４】
実動系システムの装置間において送受信されるデータは、例えば、実動系システムの装置間において送受信されるパケットである。また、データは、実動系システムの装置間において送受信される複数のパケットを解析して再構成されるメッセージデータであってもよい。
【００１５】
検証支援装置１００は、例えば、実動系システムに含まれるスイッチ装置のミラーリングの機能を利用して、実動系システムの装置間で送受信されるデータを取得することができる。なお、ミラーリングとは、あるポートに出力されるデータと同じデータを、他のポートからも出力する機能である。
【００１６】
以下の説明では、実動系システムの装置間において送受信されるデータとして「パケット」を例に挙げて説明する。また、実動系システムのスイッチ装置のミラーリングの機能などを利用して取得されるパケットの集合を「キャプチャデータ」と表記する場合がある。
【００１７】
ここで、１つの実動系システムに対して複数の検証系システムを用意することにより、検証対象システムの動作検証にかかる負荷を複数の検証系システムに分散して、検証対象システムの動作検証を並列に行うことができる。例えば、キャプチャデータをｎ個に分割して、分割後のキャプチャデータをｎ個の検証系システムにそれぞれ割り当てることにより、検証対象システムの動作検証を並列に行って検証期間の短縮化を図ることができる。
【００１８】
一方、キャプチャデータを分割する時刻に、あるセッションが継続中の場合、セッションが分割後のキャプチャデータを跨ぐことになる。セッションとは、装置間において実行される一連の処理である。この場合、分割後のキャプチャデータからセッションを維持するための情報が欠落して、実動系システムの装置間において実行される一連の処理を検証系システムの装置間において再現することができない場合がある。
【００１９】
例えば、図１において、実動系システムの装置間において、８時から１２時の間に送受信されるパケットｐ１〜ｐ１６が示されている。パケットｐ１〜ｐ１６は、実動系システムのクライアント装置とサーバとの間で実行されたセッションＳにかかる一連のパケットである。
【００２０】
セッションＳは、コネクションＡ〜Ｄを含む。コネクションとは、装置間のセッションにおいてデータ転送を行うための論理的な通信経路である。１つのセッションには１以上のコネクションが存在する。ここでは、コネクションＡにはパケットｐ１〜ｐ３が含まれ、コネクションＢにはパケットｐ４〜ｐ１０が含まれ、コネクションＣにはパケットｐ１１〜ｐ１３が含まれ、コネクションＤにはパケットｐ１４〜ｐ１６が含まれている。
【００２１】
セッションＳは、コネクションＡにおけるログイン処理により開始され、コネクションＤにおけるログアウト処理まで継続する。具体的には、例えば、クライアント装置からサーバへのパケットｐ１の送信を契機に、サーバにおいてセッションＩＤが発行され、このセッションＩＤを用いてクライアント装置とサーバとのセッションＳが維持される。
【００２２】
セッションＩＤは、送信元を識別する識別情報であり、例えば、クライアント装置のユーザを識別するＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）のＣｏｏｋｉｅ情報である。セッションＩＤは、装置間において実行されるセッションＳを維持するための情報となる。
【００２３】
以下、８時を基準時刻として１時間の時間幅で区切ることにより、パケットｐ１〜ｐ１６をパケット群Ｅ１〜Ｅ４に分割して、各パケット群Ｅ１〜Ｅ４を別々の検証系システムに分散して、検証対象システムの動作検証を行う場合を想定する。
【００２４】
この場合、８時から９時のパケット群Ｅ１にはコネクションＡとコネクションＢが含まれる。また、９時から１０時のパケット群Ｅ２にはコネクションＢが含まれる。また、１０時から１１時のパケット群Ｅ３にはコネクションＢとコネクションＣとコネクションＤが含まれる。また、１１時から１２時のパケット群Ｅ４にはコネクションＤが含まれる。
【００２５】
ここで、パケット群Ｅ１〜Ｅ４のうち、セッションＩＤが発行されるのはログイン処理が実行されるパケット群Ｅ１である。このため、パケット群Ｅ２〜Ｅ４に含まれるコネクションからセッションＳを維持するための情報が欠落して、検証中に不整合を起こす場合がある。
【００２６】
すなわち、パケットｐ１〜ｐ１６を１時間ごとに分割した場合、パケットｐ１〜ｐ１６を分割する時刻において、セッションＳが継続中のため、セッションＳがパケット群Ｅ１〜Ｅ４を跨ぐことになる。このため、パケット群Ｅ２〜Ｅ４を用いて、実動系システムの装置間において実行される処理を、検証系システムの装置間において再現させることが難しくなる。
【００２７】
そこで、実施の形態１では、検証支援装置１００は、実動系システムにおいて送受信される一連のパケットを分割した複数のパケット群のうち、装置間のセッションを維持するための情報を取得するパケットが欠落している箇所に該パケットを補間する。これにより、複数の検証系システムにおいて検証試験を分散処理する際に、実動系システムの装置間において実行される処理を再現可能にする。以下、検証支援装置１００の検証支援処理手順の一実施例について説明する。
【００２８】
（１）検証支援装置１００は、実動系システムの装置間において送受信される一連のパケットを取得する。図１の例では、実動系システムのクライアント装置とサーバとの間において送受信されるパケットｐ１〜ｐ１６が取得される。
【００２９】
（２）検証支援装置１００は、取得した一連のパケットを分割することにより複数のパケット群を作成する。図１の例では、８時を基準時刻として１時間の時間幅で区切った期間ごとにパケットｐ１〜ｐ１６を分割することにより、パケット群Ｅ１〜Ｅ４が作成されている。
【００３０】
（３）検証支援装置１００は、作成した複数のパケット群の中から、送信元の識別情報の発行要求となる特定のパケットを含むパケット群を検出する。ここで、特定のパケットは、例えば、クライアント装置のユーザを識別するＣｏｏｋｉｅ情報の発行要求となるパケットである。図１の例では、クライアント装置からサーバへのパケットｐ１の送信を契機にＣｏｏｋｉｅ情報が発行されるため、パケットｐ１が特定のパケットとなる。このため、パケット群Ｅ１〜Ｅ４の中からパケットｐ１を含むパケット群Ｅ１が検出される。
【００３１】
（４）検証支援装置１００は、複数のパケット群のうち、検出したパケット群よりも送信された順序が後となる後続のパケット群の先頭に特定のパケットを付加する。図１の例では、パケット群Ｅ１よりも送信された順序が後となる後続のパケット群は、パケット群Ｅ２〜Ｅ４である。このため、パケット群Ｅ２の先頭にパケットｐ１が付加され、パケット群Ｅ３の先頭にパケットｐ１が付加され、パケット群Ｅ４の先頭にパケットｐ１が付加される。
【００３２】
このように、実施の形態１にかかる検証支援装置１００によれば、複数の検証系システムにおいて検証対象システムの検証試験を分散処理するための検証用データを作成することができる。これにより、検証対象システムの検証試験を、複数の検証系システムにおいて分散処理して検証期間の短縮化を図ることができる。
【００３３】
図１の例では、パケット群Ｅ１およびパケットｐ１が付加されたパケット群Ｅ２〜Ｅ４をそれぞれ別々の検証系システムに割り当てることにより、検証対象システムの検証試験を分散処理することができる。この際、各検証系システムにおいて、最初にパケットｐ１が送信されてセッションＩＤが発行されるため、各検証系システムの装置間においてセッションを維持することができ、実動系システムの装置間において実行される処理を再現することができる。
【００３４】
（試験システムのシステム構成例）
つぎに、実施の形態１にかかる試験システム２００について説明する。図２は、試験システム２００のシステム構成例を示す説明図である。図２において、試験システム２００は、検証試験装置２０１と、複数のクライアント装置ＣＬと、複数のサーバＳＶと、を含む。試験システム２００において、検証試験装置２０１、クライアント装置ＣＬおよびサーバＳＶは、有線または無線のネットワーク２１０を介して接続されている。ネットワーク２１０は、例えば、インターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などである。
【００３５】
検証試験装置２０１は、検証対象システムの動作検証を行うコンピュータである。検証試験対象システムは、例えば、実動系システム２２０を模擬したシステムである。実動系システム２２０は、クライアント装置ＣＬとサーバＳＶとを含むクライアント・サーバ型のシステムである。クライアント装置ＣＬは、例えば、ウェブサービスの提供を受けるユーザが使用するコンピュータである。サーバＳＶは、例えば、ウェブサーバ、アプリケーションサーバ、データベースサーバなどのコンピュータである。
【００３６】
また、検証試験装置２０１は、自装置のハードウェア資源を仮想化して、複数の異なるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を実行可能である。具体的には、例えば、検証試験装置２０１は、自装置のハードウェア資源を分割して構築される実行環境で動作する仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ、ＶＭ）によってＯＳを稼働させることができる。また、ハードウェア資源を仮想化せず、検証試験装置２０１と各サーバ（ウェブサーバ、アプリケーション、データベースサーバなど）を異なる物理マシン上に構築することも可能である。
【００３７】
仮想マシンは、検証試験装置２０１のハードウェア資源を分割して構築される実行環境で動作する仮想的なコンピュータである。仮想マシンの実体は、例えば、プログラムやＯＳなどのソフトウェア、ソフトウェアに与えられる変数、およびソフトウェアを実行させるためのハードウェア資源を指定する情報を含むものである。
【００３８】
ここでは、検証試験装置２０１は、試験管理装置２０２と、試験装置２０３−１〜２０３−ｎと、検証系装置群２０４−１〜２０４−ｎと、を含む（ｎ：１以上の自然数）。
【００３９】
試験管理装置２０２は、システムの動作検証を支援する仮想マシンである。試験管理装置２０２は、例えば、実動系システム２２０のスイッチ装置（不図示）のミラーリングの機能を利用して、実動系システム２００の装置間において送受信されるパケットをキャプチャすることができる。試験管理装置２０２は、図１に示した検証支援装置１００に相当する。
【００４０】
試験装置２０３−１〜２０３−ｎは、検証系装置群２０４−１〜２０４−ｎと連動して、検証対象システムの動作検証を行う仮想マシンである。検証系装置群２０４−１〜２０４−ｎは、実動系システム２２０を模擬したシステムを構築するための仮想マシンである。ここでは、試験装置２０３−ｉと検証系装置群２０４−ｉとのペアが一つの検証系システム２３０−ｉとなる（ｉ＝１，２，…，ｎ）。
【００４１】
なお、上述した説明では、試験管理装置２０２と、試験装置２０３−１〜２０３−ｎと、検証系装置群２０４−１〜２０４−ｎとを、検証試験装置２０１上で動作する仮想マシンとしたが、それぞれ異なる物理的なコンピュータにより実現することにしてもよい。
【００４２】
（検証試験装置２０１のハードウェア構成例）
図３は、検証試験装置２０１のハードウェア構成例を示すブロック図である。図３において、検証試験装置２０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）３０３と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０４と、ディスプレイ３０５と、キーボード３０６と、マウス３０７と、を有している。また、各構成部はバス３００によってそれぞれ接続されている。
【００４３】
ここで、ＣＰＵ３０１は、検証試験装置２０１の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有している。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されているプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させることになる。
【００４４】
ＨＤＤ３０３は、ＣＰＵ３０１の制御にしたがって磁気ディスクに対するデータのリード／ライトを制御する。Ｉ／Ｆ３０４は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して外部装置に接続される。そして、Ｉ／Ｆ３０４は、ネットワーク２１０と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ３０４は、仮想的なＩＦを含み、検証試験装置２０１上で動作する仮想マシン間を接続する。Ｉ／Ｆ３０４には、例えば、モデム、ＬＡＮアダプタ、仮想ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）などを採用することができる。
【００４５】
ディスプレイ３０５は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ３０５は、例えば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。キーボード３０６は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。マウス３０７は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。なお、検証試験装置２０１は、上述した構成部のほか、例えば、スキャナやプリンタなどを有することにしてもよい。
【００４６】
（キャプチャデータの具体例）
つぎに、試験管理装置２０２が用いるキャプチャデータの具体例について説明する。キャプチャデータは、実動系システム２２０のクライアント装置ＣＬとサーバＳＶとの間において送受信されるパケットをキャプチャしたデータである。
【００４７】
図４は、キャプチャデータの具体例を示す説明図である。図４において、キャプチャデータ４００は、パケットＩＤ、Ｔｉｍｅ、Ｓｒｃ、Ｄｓｔ、Ｄｓｔ＿Ｐｏｒｔ、Ｓｅｓｓｉｏｎ−ＩＤおよびＩｎｆｏのフィールドを有する。各フィールドに情報を設定することにより、実動系システム２２０の装置間において送受信されたパケット（例えば、パケットｐ１〜ｐ１８）がレコードとして記憶されている。
【００４８】
パケットＩＤは、パケットを識別する識別情報である。Ｔｉｍｅは、パケットがキャプチャされたキャプチャ時刻である。Ｓｒｃは、パケットの送信元となる装置のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスである。なお、図面では、Ｓｒｃとして、送信元が、クライアント装置ＣＬまたはサーバＳＶであることを示す「ＣＬ」または「ＳＶ」を表記している。
【００４９】
Ｄｓｔは、パケットの宛先となる装置のＩＰアドレスである。なお、図面では、Ｄｓｔとして、宛先が、クライアント装置ＣＬまたはサーバＳＶであることを示す「ＣＬ」または「ＳＶ」を表記している。Ｄｓｔ＿Ｐｏｒｔは、パケットの宛先となる装置のポート番号である。
【００５０】
Ｓｅｓｓｉｏｎ−ＩＤは、クライアント装置ＣＬのユーザを識別するＣｏｏｋｉｅ情報である。Ｃｏｏｋｉｅ情報には、例えば、クッキー名とその値、ドメイン名、パス名、有効期限、生成日時、クライアント装置ＣＬのＩＰアドレスなどが含まれている。Ｉｎｆｏは、パケットの宛先となる装置に要求される処理の処理内容や処理結果を表す情報である。なお、図示は省略するが、各パケットには、各パケットの種別（リクエストまたはレスポンス）、各パケットの送信元となる装置のポート番号および各パケットのデータサイズを表すパケット長などが示されていてもよい。
【００５１】
ここで、パケットｐ１，ｐ２を例に挙げて、クライアント装置ＣＬおよびサーバＳＶの動作例を説明する。まず、パケットｐ１がクライアント装置ＣＬからサーバＳＶに送信されると、サーバＳＶにおいてユーザ名：Ｔａｒｏのログイン処理が実行される。ログイン処理が完了すると、サーバＳＶのＳｅｔ−Ｃｏｏｋｉｅ処理においてＳｅｓｓｉｏｎ−ＩＤ「Ａｌｐｈａ」が発行され、Ｓｅｓｓｉｏｎ−ＩＤ「Ａｌｐｈａ」を含むパケットｐ２がサーバＳＶからクライアント装置ＣＬに送信される。
【００５２】
これにより、以降において、クライアント装置ＣＬとサーバＳＶとの間で送受信されるパケットにＳｅｓｓｉｏｎ−ＩＤ「Ａｌｐｈａ」を含めることにより、サーバＳＶはクライアント装置ＣＬのユーザを識別することができる。なお、Ｓｅｓｓｉｏｎ−ＩＤは、例えば、サーバＳＶのＳｅｔ−Ｃｏｏｋｉｅ処理において定期的に更新される。
【００５３】
（試験管理装置２０２の機能的構成例）
図５は、実施の形態１にかかる試験管理装置２０２の機能的構成例を示すブロック図である。図５において、試験管理装置２０２は、取得部５０１と、作成部５０２と、検出部５０３と、付加部５０４と、割当部５０５と、収集部５０６と、判定部５０７と、出力部５０８と、を含む。取得部５０１〜出力部５０８は制御部となる機能であり、具体的には、例えば、図３に示したメモリ３０２、ＨＤＤ３０３などに記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０４により、その機能を実現する。また、各機能部の処理結果は、例えば、メモリ３０２、ＨＤＤ３０３などに記憶される。
【００５４】
取得部５０１は、装置間において送受信される一連のパケットを取得する機能を有する。ここで、一連のパケットは、装置間において送受信される時系列のパケット群であり、例えば、装置間において実行されるセッションにかかるパケット群である。
【００５５】
具体的には、例えば、取得部５０１は、実動系システム２００の装置間において送受信されるパケットをキャプチャすることにより、一連のパケットを含むキャプチャデータを取得する。また、取得部５０１は、図３に示したキーボード３０６やマウス３０７を用いたユーザの操作入力により、または、データベースからの抽出により、一連のパケットを含むキャプチャデータを取得してもよい。
【００５６】
キャプチャデータは、所定期間分（例えば、１日分、１週間分）のパケットの集合であり、例えば、１以上のセッションにかかる一連のパケットを含む。具体的には、例えば、キャプチャデータは、図４に示したキャプチャデータ４００である。
【００５７】
作成部５０２は、取得された一連のパケットを分割することにより複数のパケット群を作成する機能を有する。具体的には、例えば、作成部５０２は、取得されたキャプチャデータを分割することにより、複数の分割キャプチャデータを作成する。キャプチャデータを分割する際の最小単位は、例えば、１パケットである。
【００５８】
キャプチャデータから分割される分割キャプチャデータの個数は、例えば、予め設定されていてもよい。具体的には、例えば、分割キャプチャデータの個数は、検証試験にかけられる最大検証時間や検証系システム２３０−ｉの最大数などから算出されてメモリ３０２、ＨＤＤ３０３などに記憶されていてもよい。
【００５９】
より具体的には、例えば、作成部５０２は、キャプチャデータに含まれる各々のパケットの送信時刻に基づいて、基準時刻から一定の時間幅で区切った期間ごとにキャプチャデータを分割することにしてもよい。ここで、基準時刻は、例えば、検証対象システムの動作検証を行う検証期間の開始時刻である。また、パケットの送信時刻は、例えば、パケットのキャプチャ時刻に相当する。
【００６０】
また、作成部５０２は、例えば、キャプチャデータに含まれる各々のパケットのデータサイズに基づいて、基準時刻から分割キャプチャデータ単位のデータサイズが所定値となるようにキャプチャデータを分割することにしてもよい。分割キャプチャデータ単位のデータサイズは、例えば、分割キャプチャデータに含まれる各パケットのパケット長を積算したものである。なお、分割キャプチャデータの作成例については、図６および図７を用いて後述する。
【００６１】
以下の説明では、取得されたキャプチャデータを「キャプチャデータＰ」と表記する場合がある。また、キャプチャデータＰから分割された複数の分割キャプチャデータを「分割キャプチャデータＰ1〜Ｐn」と表記する場合がある。また、分割キャプチャデータＰ1〜Ｐnのうち任意の分割キャプチャデータを「分割キャプチャデータＰi」と表記する場合がある。
【００６２】
また、キャプチャデータＰには１以上のセッションにかかるパケットの集合が含まれており、１以上のセッションを「セッションＳ１〜Ｓｍ」と表記する場合がある。また、セッションＳ１〜Ｓｍのうち任意のセッションを「セッションＳｊ」と表記する場合がある（ｊ＝１，２，…，ｍ）。
【００６３】
検出部５０３は、作成された分割キャプチャデータＰ1〜Ｐnの中から、送信元の識別情報の発行要求となる特定のパケットを含む分割キャプチャデータを検出する機能を有する。ここで、特定のパケットは、例えば、実動系システム２００の装置間において実行されるセッションＳｊを識別するセッションＩＤの発行要求となるパケットである。
【００６４】
より詳細に説明すると、特定のパケットは、例えば、クライアント装置ＣＬのユーザを識別するＣｏｏｋｉｅ情報の発行要求となるパケットである。すなわち、特定のパケットは、例えば、クライアント装置ＣＬのユーザがログインする場合に、クライアント装置ＣＬからサーバＳＶに送信されるパケットである。
【００６５】
具体的には、例えば、検出部５０３は、各分割キャプチャデータＰiに含まれる各々のパケットのＩｎｆｏの情報、例えば、クエリ文字列、セッションオブジェクトなどを字句解析して『ログイン』という文字列を含む特定のパケットを検出する。そして、検出部５０３は、分割キャプチャデータＰ1〜Ｐnの中から、特定のパケットを含む分割キャプチャデータを検出する。
【００６６】
以下の説明では、特定のパケットを「パケットＸ」と表記する場合がある。また、パケットＸを含む分割キャプチャデータを「分割キャプチャデータＰk」と表記する場合がある（ｋ＝１，２，…，ｎ）。
【００６７】
付加部５０４は、分割キャプチャデータＰ1〜Ｐnのうち、分割キャプチャデータＰkよりも送信順序が後となる後続の分割キャプチャデータの先頭にパケットＸを付加する機能を有する。ここで、後続の分割キャプチャデータとは、分割キャプチャデータＰ1〜Ｐnのうち、分割キャプチャデータＰkに含まれるパケットよりも送信時刻が後となるパケットを含む分割キャプチャデータである。
【００６８】
具体的には、例えば、付加部５０４は、後続の分割キャプチャデータの各々におけるパケットＸの送信時刻が最古となるようにパケットＸの送信時刻を書き換えて、後続の分割キャプチャデータの各々にパケットＸを付加することにしてもよい。
【００６９】
また、キャプチャデータＰkには複数のパケットＸが含まれる場合がある。この場合、付加部５０４は、キャプチャデータＰkに含まれる複数のパケットＸのうち最新のパケットＸを後続の分割キャプチャデータの先頭に付加することにしてもよい。
【００７０】
また、パケットＸを含む分割キャプチャデータが複数検出される場合がある。ここで、分割キャプチャデータＰ1〜Ｐnの中から、パケットＸ１を含む分割キャプチャデータＰkとパケットＸ２を含む分割キャプチャデータＰk+2が検出された場合を想定する。
【００７１】
この場合、付加部５０４は、例えば、分割キャプチャデータＰk+1および分割キャプチャデータＰk+2の先頭にパケットＸ１を付加し、分割キャプチャデータＰk+3〜Ｐnの先頭にパケットＸ２を付加することにしてもよい。すなわち、ある分割キャプチャデータに付加されるパケットＸは、その分割キャプチャデータに含まれるパケットよりも前に送信されたパケットＸのうちの最新のパケットＸとなる。
【００７２】
また、キャプチャデータＰには２以上のセッションにかかるパケットの集合が含まれている場合がある。この場合、付加部５０４は、例えば、セッションＳｊごとに、セッションＳｊにかかる一連のパケットを含む分割キャプチャデータのうち、パケットＸを含む分割キャプチャデータＰkの後続の分割キャプチャデータの先頭にパケットＸを付加することにしてもよい。
【００７３】
キャプチャデータＰの集合のうち、セッションＳｊにかかる一連のパケットは、例えば、クライアント装置ＣＬのＩＰアドレス、サーバＳＶのＩＰアドレスおよびセッションＩＤなどから特定することができる。サーバＳＶのＩＰアドレスやドメイン名は複数存在する場合がある。また、キャプチャデータＰのうち、Ｉｎｆｏに『ログイン』という文字列を含むパケットから『ログアウト』という文字列を含むパケットまでをセッションＳｊにかかる一連のパケットとしてもよい。さらに、例えば、キーボード３０６やマウス３０７を用いてユーザの操作入力により、キャプチャデータＰのうち各セッションＳｊにかかる一連のパケットを指定することにしてもよい。なお、パケットＸの付加例については、図８を用いて後述する。
【００７４】
割当部５０５は、後続の分割キャプチャデータの先頭にパケットＸが付加された分割キャプチャデータＰ1〜Ｐnの各々の分割キャプチャデータＰiを、試験装置２０３−１〜２０３−ｎの各々の試験装置２０３−ｉに割り当てる機能を有する。試験装置２０３−ｉは、検証対象システムの動作検証を行うコンピュータである（図２参照）。
【００７５】
具体的には、例えば、まず、割当部５０５は、分割キャプチャデータＰ1〜Ｐnの個数分の試験装置２０３−１〜２０３−ｎを起動する。そして、割当部５０５は、分割キャプチャデータＰ1〜Ｐnの各々の分割キャプチャデータＰiを、試験装置２０３−１〜２０３−ｎの各々の試験装置２０３−ｉに割り当てる。
【００７６】
収集部５０６は、試験装置２０３−ｉに割り当てられた分割キャプチャデータＰiに基づく検証対象システムの動作検証が行われた結果、試験装置２０３−ｉから検証結果を取得する機能を有する。具体的には、例えば、収集部５０６は、試験装置２０３−１〜２０３−ｎの各々の試験装置２０３−ｉから各々の検証結果を取得する。なお、検証結果の具体例については、図９を用いて後述する。
【００７７】
判定部５０７は、取得された検証結果に基づいて、検証対象システムが正常に動作するか否かを判定する機能を有する。具体的には、例えば、判定部５０７は、試験装置２０３−１〜２０３−ｎから取得された検証結果に基づいて、検証対象システムが正常に動作するか否かを判定する。なお、判定結果の具体例については、図９を用いて後述する。
【００７８】
出力部５０８は、判定された判定結果を出力する。具体的には、例えば、出力部５０８は、図９に示す判定結果９０１を出力する。また、出力部５０８は、試験装置２０３−１〜２０３−ｎの各々の試験装置２０３−ｉから取得された各々の検証結果を出力することにしてもよい。出力形式としては、例えば、ディスプレイ３０５への表示、プリンタ（不図示）への印刷出力、Ｉ／Ｆ３０４による外部装置への送信、メモリ３０２やＨＤＤ３０３への記憶がある。
【００７９】
また、出力部５０８は、後続の分割キャプチャデータの先頭にパケットＸが付加された分割キャプチャデータＰ1〜Ｐnを出力することにしてもよい。これにより、検証系システム２３０−１〜２３０−ｎにおいて負荷を分散して検証試験を行うための検証用の分割キャプチャデータＰ1〜Ｐnを出力することができる。この結果、検証系システム２３０−１〜２３０−ｎにおいて、分割キャプチャデータＰ1〜Ｐnを用いて、検証対象システムの動作検証を任意のタイミングで行うことができる。
【００８０】
（分割キャプチャデータＰiの作成例）
つぎに、分割キャプチャデータＰiの作成例について説明する。ここでは、まず、図６を用いて、各々のパケットの送信時刻に基づく分割キャプチャデータＰiの作成例について説明する。
【００８１】
図６は、分割キャプチャデータの作成例を示す説明図（その１）である。図６において、キャプチャデータ６００は、実動系システム２００の装置間において送受信されたパケット（例えば、パケットｐ１００〜ｐ２０１）を含む情報である。ここで、検証期間の開始時刻から終了時刻までの総時間を「総時間Ｔ＿ａｌｌ」とし、検証系システム２３０−ｉの数を「分割数ｎ」とする。
【００８２】
まず、作成部５０２は、総時間Ｔ＿ａｌｌを分割数ｎで割ることにより、基本時間Ｔ＿ｄｉｖを算出する。そして、作成部５０２は、キャプチャデータ６００に含まれる各々のパケットのキャプチャ時刻に基づいて、検証期間の開始時刻から基本時間Ｔ＿ｄｉｖで区切った期間ごとにキャプチャデータ６００を分割する。
【００８３】
ここでは、検証期間の開始時刻を「８：００：００」とし、基本時間Ｔ＿ｄｉｖを「６０［分］」とする。この場合、作成部５０２は、時刻「８：００：００」から６０［分］単位で区切った期間ごとにキャプチャデータ６００を分割する。図６の例では、キャプチャデータ６００を時刻「８：００：００」から時刻「８：５９：５９」までの期間で分割することにより、パケットｐ１００〜ｐ１９９を含む分割キャプチャデータＰ1が作成される。
【００８４】
これにより、各検証系システム２３０−ｉにおける検証期間が均等になるようにキャプチャデータ６００を分割して分割キャプチャデータＰ1〜Ｐnを作成することができる。
【００８５】
つぎに、図７を用いて、各々のパケットのデータ量に基づく分割キャプチャデータＰiの作成例について説明する。
【００８６】
図７は、分割キャプチャデータの作成例を示す説明図（その２）である。図７において、キャプチャデータ７００は、実動系システム２００の装置間において送受信されたパケット（例えば、パケットｐ１００〜ｐ２０１）を含む情報である。キャプチャデータ７００には、各パケットのパケット長［Ｂ（バイト）］が示されている。ここで、キャプチャデータ７００のデータサイズを「データサイズＳ＿ａｌｌ」とし、検証系システム２３０−ｉの数を「分割数ｎ」とする。
【００８７】
まず、作成部５０２は、データサイズＳ＿ａｌｌを分割数ｎで割ることにより、基本サイズＳ＿ｄｉｖを算出する。そして、作成部５０２は、キャプチャデータ７００に含まれる各々のパケットのパケット長に基づいて、検証期間の開始時刻から分割キャプチャデータ単位のデータサイズが基本サイズＳ＿ｄｉｖとなるようにキャプチャデータ７００を分割する。
【００８８】
ここでは、検証期間の開始時刻を「８：００：００」とし、基本サイズＳ＿ｄｉｖを「Ｓ＿ｄｉｖ＝１［ＧＢ］」とする。この場合、作成部５０２は、時刻「８：００：００」から分割キャプチャデータ単位のデータサイズが１［ＧＢ］となるようにキャプチャデータ７００を分割する。図７の例では、キャプチャデータ７００を時刻「８：００：００」から１［ＧＢ］単位で分割することにより、パケットｐ１００〜ｐ２０１を含む分割キャプチャデータＰ1が作成される。
【００８９】
これにより、各検証系システム２３０−ｉにおける分割キャプチャデータＰiのデータサイズが均等になるようにキャプチャデータ７００を分割して分割キャプチャデータＰ1〜Ｐnを作成することができる。
【００９０】
（パケットＸの付加例）
つぎに、パケットＸの付加例について説明する。図８は、パケットＸの付加例を示す説明図である。図８において、あるキャプチャデータＰから分割された分割キャプチャデータＰ1，Ｐ2が示されている。ここでは、分割キャプチャデータＰ1，Ｐ2に含まれるパケットｐ１〜ｐ１８は、セッションＳ１にかかる一連のパケットとする。
【００９１】
この場合、検出部５０３は、まず、パケットＸとなるパケットｐ１を含む分割キャプチャデータＰ1を検出する。つぎに、付加部５０４は、分割キャプチャデータＰ1よりも送信順序が後となる後続の分割キャプチャデータＰ2の先頭にパケットＸであるパケットｐ１を付加する。
【００９２】
具体的には、例えば、付加部５０４は、分割キャプチャデータＰ2において、クライアント装置ＣＬからサーバＳＶに送信されたパケットの中でパケットＸであるパケットｐ１の送信時刻が最古となるように、分割キャプチャデータＰ2にパケットｐ１を付加する。図８の例では、パケットｐ１のキャプチャ時刻が「８：５９：５９」に変更されて分割キャプチャデータＰ2に付加されている。
【００９３】
この場合、例えば、分割キャプチャデータＰ2に基づく検証対象システムの動作検証において、検証系装置群２０４−２の装置間において最初にパケットｐ１が送受信されることになる。この結果、クライアント装置ＣＬのユーザのログイン処理が実行されてセッションＩＤが発行されることになり、検証系装置群２０４−２の装置間においてセッションが維持されることになる。
【００９４】
具体的には、例えば、パケットｐ１のログイン処理によりセッションＩＤ「Ｄｅｌｔａ」が発行され、パケットｐ１１，ｐ１３のリクエストがセッションＩＤ「Ｄｅｌｔａ」を使用して送信される。また、パケットｐ１３のリクエストに対して新しいセッションＩＤ「Ｅｃｈｏ」が発行され、パケットｐ１５，ｐ１７のリクエストがセッションＩＤ「Ｅｃｈｏ」を使用して送信される。
【００９５】
なお、セッションＩＤは、検証系装置群２０４−ｉの装置間においてパケットＸが送受信された結果発行される。このため、検証前の段階は、分割キャプチャデータＰiのセッションＩＤには、情報が未設定であってもよく、あるいは、分割前と同じセッションＩＤが設定されていてもよい。
【００９６】
（検証結果および判定結果の具体例）
つぎに、図９を用いて検証結果および判定結果の具体例について説明する。ここでは、分割キャプチャデータＰ1〜Ｐnの個数を「４」、すなわち、キャプチャデータＰを４分割する場合を例に挙げて説明する。
【００９７】
図９は、検証結果および判定結果の具体例を示す説明図（その１）である。図９において、検証結果９００−１〜９００−４は、試験装置２０３−１〜２０３−４から取得される検証対象システムの動作検証の検証結果を表している。
【００９８】
検証結果９００−１には、検証対象システムの機能検証の検証結果「ＯＫ」と、検証対象システムの性能検証の検証結果「ＯＫ」と、検証対象システムのページロード時間の平均「ＡＶＲＧ１」および分散「ＳＴＤＮ１」とが示されている。
【００９９】
また、検証結果９００−２には、検証対象システムの機能検証の検証結果「ＯＫ」と、検証対象システムの性能検証の検証結果「ＯＫ」と、検証対象システムのページロード時間の平均「ＡＶＲＧ２」および分散「ＳＴＤＮ２」とが示されている。
【０１００】
また、検証結果９００−３には、検証対象システムの機能検証の検証結果「ＯＫ」と、検証対象システムの性能検証の検証結果「ＯＫ」と、検証対象システムのページロード時間の平均「ＡＶＲＧ３」および分散「ＳＴＤＮ３」とが示されている。
【０１０１】
また、検証結果９００−４には、検証対象システムの機能検証の検証結果「ＯＫ」と、検証対象システムの性能検証の検証結果「ＯＫ」と、検証対象システムのページロード時間の平均「ＡＶＲＧ４」および分散「ＳＴＤＮ４」とが示されている。
【０１０２】
なお、機能検証の検証結果「ＯＫ」は検証対象システムの機能が正常であることを示している。また、機能検証の検証結果「ＮＧ」は検証対象システムの機能が異常であることを示している。性能検証の検証結果「ＯＫ」は検証対象システムの性能が正常であることを示している。また、性能検証の検証結果「ＮＧ」は検証対象システムの性能が異常であることを示している。
【０１０３】
ここで、パケットＸが付加された分割キャプチャデータＰiに基づく検証対象システムの動作検証にかかる試験装置２０３−ｉの検証処理の具体的な処理例について説明する。
【０１０４】
例えば、試験装置２０３−ｉは、分割キャプチャデータＰiが割り当てられた結果、検証系装置群２０４−ｉを起動して、分割キャプチャデータＰiに基づく検証対象システムの動作検証を行う。具体的には、例えば、試験装置２０３−ｉは、検証系装置群２０４−ｉの装置間において、分割キャプチャデータＰiに含まれるリクエストのパケットを送受信させる。
【０１０５】
この際、分割キャプチャデータＰiの先頭にはパケットＸが付加されているため、検証系装置群２０４−ｉの装置間においてセッションが維持されることになる。このため、実動系システム２２０において実行される一連の処理を検証系システム２３０−ｉにおいて再現することができる。なお、分割キャプチャデータＰiに含まれる各リクエストのパケットのヘッダ情報（例えば、送信元ＩＰアドレス、宛先ＩＰアドレスなど）は、検証系装置群２０４−ｉの各装置に合わせて変更される。
【０１０６】
そして、試験装置２０３−ｉは、例えば、検証系装置群２０４−ｉの装置間におけるリクエスト数、レスポンス数およびレスポンス時間を計測する。レスポンス時間は、例えば、クライアント装置ＣＬに表示されるウェブページのページロード時間である。レスポンス時間は、例えば、リクエストの送信時刻から、該リクエストに対応するレスポンスの送信時刻までの時間として算出することができる。さらに、試験装置２０３−ｉは、レスポンス時間の平均、分散などを算出することにしてもよい。
【０１０７】
つぎに、試験装置２０３−ｉは、例えば、検証系装置群２０４−ｉにおけるレスポンス数と、実動系システム２２０におけるレスポンス数とを比較することにより、検証系装置群２０４−ｉの機能検証を行う。具体的には、例えば、試験装置２０３−ｉは、検証系装置群２０４−ｉにおけるレスポンス数と、実動系システム２２０におけるレスポンス数とが不一致の場合に、検証対象システムの機能が異常であると判定することにしてもよい。なお、実動系システム２２０におけるレスポンス数は、例えば、分割キャプチャデータＰiに基づいて算出される。
【０１０８】
ここで、パケットＸが付加された分割キャプチャデータＰiに基づく検証対象システムの動作検証では、パケットＸに対するレスポンスが発生する。このため、試験装置２０３−ｉは、例えば、検証系装置群２０４−ｉにおけるレスポンス数からパケットＸに対するレスポンスの数を減算した値を、検証系装置群２０４−ｉにおけるレスポンス数として算出することにしてもよい。
【０１０９】
また、キャプチャデータＰから分割された分割キャプチャデータＰiには、対応するリクエストが存在しないレスポンスが含まれる場合がある。このため、試験装置２０３−ｉは、例えば、実動系システム２２０におけるレスポンス数から対応するリクエストが存在しないレスポンスの数を減算した値を、実動系システム２２０におけるレスポンス数として算出することにしてもよい。
【０１１０】
なお、キャプチャデータＰに含まれるリクエストとレスポンスとの対応関係は、例えば、試験管理装置２０２により予め設定されている。これにより、試験装置２０３−ｉは、例えば、レスポンスに対応するリクエストの存在を判別することができる。また、試験管理装置２０２は、分割キャプチャデータＰiに含まれるレスポンスのうち対応するリクエストが存在するレスポンス数を計数して、その計数結果を分割キャプチャデータＰiに付与することにしてもよい。これにより、試験装置２０３−ｉにおけるレスポンス数の計数が不要となる。
【０１１１】
また、試験装置２０３−ｉは、検証系装置群２０４−ｉにおけるレスポンスのレスポンスコードと、実動系システム２２０におけるレスポンスのレスポンスコードとを比較することにより、レスポンスコードの不一致数を計測することにしてもよい。レスポンスコードは、例えば、ＨＴＴＰのステータスコードである。そして、試験装置２０３−ｉは、例えば、レスポンスコードの不一致数が１以上の場合に、検証対象システムの機能が異常であると判定することにしてもよい。
【０１１２】
ただし、上述したように、分割キャプチャデータＰiには、対応するリクエストが存在しないレスポンスが含まれる場合がある。このため、試験装置２０３−ｉは、例えば、実動系システム２２０におけるレスポンスのうち、対応するリクエストが存在しないレスポンスをレスポンスコードの比較対象から除外することにしてもよい。
【０１１３】
また、試験装置２０３−ｉは、例えば、検証系装置群２０４−ｉにおけるレスポンス時間の平均と、実動系システム２２０におけるレスポンス時間の平均とを比較することにより、検証系装置群２０４−ｉの性能検証を行うことにしてもよい。具体的には、例えば、試験装置２０３−ｉは、検証系装置群２０４−ｉにおけるレスポンス時間の平均と、実動系システム２２０におけるレスポンス時間の平均との差分が所定値以上の場合に、検証対象システムの性能が異常であると判定することにしてもよい。
【０１１４】
また、試験装置２０３−ｉは、例えば、検証系装置群２０４−ｉにおけるレスポンス時間の分散と、実動系システム２２０におけるレスポンス時間の分散とを比較することにより、検証系装置群２０４−ｉの性能検証を行うことにしてもよい。具体的には、例えば、試験装置２０３−ｉは、検証系装置群２０４−ｉにおけるレスポンス時間の分散と、実動系システム２２０におけるレスポンス時間の分散との差分が所定値以上の場合に、検証対象システムの性能が異常であると判定することにしてもよい。
【０１１５】
つぎに、検証結果９００−１〜９００−４を例に挙げて、判定部５０７の判定処理の具体的な処理例について説明する。
【０１１６】
判定部５０７は、検証結果９００−１〜９００−４に基づいて、検証対象システムの機能が正常であるか否かを判定する。具体的には、例えば、判定部５０７は、検証結果９００−１〜９００−４の機能検証の検証結果がすべて「ＯＫ」の場合に、検証対象システムの機能が正常であると判定する。
【０１１７】
また、判定部５０７は、検証結果９００−１〜９００−４に基づいて、検証対象システムの性能が正常であるか否かを判定する。具体的には、例えば、判定部５０７は、検証結果９００−１〜９００−４の性能検証の検証結果がすべて「ＯＫ」の場合に、検証対象システムの性能が正常であると判定する。
【０１１８】
また、判定部５０７は、例えば、検証系装置群２０４−１〜２０４−４におけるレスポンス時間の平均と、実動系システム２２０におけるレスポンス時間の平均とを比較することにより、検証対象システムの性能検証を行うことにしてもよい。実動系システム２２０におけるレスポンス時間の平均は、例えば、キャプチャデータＰに基づいて算出される。
【０１１９】
具体的には、例えば、判定部５０７は、下記式（１）を用いて、検証系装置群２０４−１〜２０４−４におけるレスポンス時間の平均を算出することができる。ただし、ＡＶＲＧは、検証系装置群２０４−１〜２０４−４全体の平均レスポンス時間である。ＲＥＳiは、検証系装置群２０４−ｉにおけるレスポンス数である。ＡＶＲＧiは、検証系装置群２０４−ｉにおける平均レスポンス時間である。
【０１２０】
【数１】
0005807594.tif 000002
【０１２１】
そして、判定部５０７は、検証系装置群２０４−１〜２０４−４全体の平均レスポンス時間ＡＶＲＧと、実動系システム２２０全体の平均レスポンス時間Ｒとの差分が所定値以上の場合に、検証対象システムの性能が異常であると判定することにしてもよい。この場合、判定部５０７は、検証結果９００−１〜９００−４のいずれかの性能検証の検証結果が「ＮＧ」であっても、平均レスポンス時間ＡＶＲＧと平均レスポンス時間Ｒとの差分が所定値未満の場合は、検証対象システムの性能が正常であると判定する。
【０１２２】
また、判定部５０７は、例えば、検証系装置群２０４−１〜２０４−４におけるレスポンス時間の分散と、実動系システム２２０におけるレスポンス時間の分散とを比較することにより、検証対象システムの性能検証を行うことにしてもよい。実動系システム２２０におけるレスポンス時間の分散は、例えば、キャプチャデータＰに基づいて算出される。
【０１２３】
具体的には、例えば、判定部５０７は、下記式（２）を用いて、検証系装置群２０４−１〜２０４−４におけるレスポンス時間の分散を算出することができる。ただし、ＳＴＤＮは、検証系装置群２０４−１〜２０４−４全体のレスポンス時間の分散である。ＳＴＤＮiは、検証系装置群２０４−ｉにおけるレスポンス時間の分散である。
【０１２４】
【数２】
0005807594.tif 000003
【０１２５】
そして、判定部５０７は、検証系装置群２０４−１〜２０４−４全体のレスポンス時間の分散ＳＴＤＮと、実動系システム２２０全体のレスポンス時間の分散Ｓとの差分が所定値以上の場合に、検証対象システムの性能が異常であると判定することにしてもよい。この場合、判定部５０７は、検証結果９００−１〜９００−４のいずれかの性能検証の検証結果が「ＮＧ」であっても、分散ＳＴＤＮと分散Ｓとの差分が所定値未満の場合は、検証対象システムの性能が正常であると判定する。
【０１２６】
判定部５０７は、検証対象システムの機能検証の検証結果と、検証対象システムの性能検証の検証結果とに基づいて、検証対象システムの動作が正常であるか否かを判定する。具体的には、例えば、判定部５０７は、検証対象システムの機能が正常かつ検証対象システムの性能が正常の場合に、検証対象システムの動作が正常であると判定する。
【０１２７】
図９の例では、判定部５０７は、例えば、検証対象システムの機能および性能が正常のため、最終的に、検証対象システムの動作が正常であると判定する。そして、出力部５０８は、判定結果９０１を出力する。
【０１２８】
（試験管理装置２０２の各種処理手順）
つぎに、実施の形態１にかかる試験管理装置２０２の各種処理手順について説明する。ここでは、まず、試験管理装置２０２の検証支援処理手順について説明する。
【０１２９】
図１０は、実施の形態１にかかる試験管理装置２０２の検証支援処理手順の一例を示すフローチャートである。図１０のフローチャートにおいて、まず、試験管理装置２０２は、キャプチャデータＰを取得したか否かを判断する（ステップＳ１００１）。
【０１３０】
ここで、試験管理装置２０２は、キャプチャデータＰを取得するのを待つ（ステップＳ１００１：Ｎｏ）。そして、試験管理装置２０２は、キャプチャデータＰを取得した場合（ステップＳ１００１：Ｙｅｓ）、キャプチャデータＰを分割することにより、分割キャプチャデータＰ1〜Ｐnを作成する（ステップＳ１００２）。
【０１３１】
つぎに、試験管理装置２０２は、セッションＳｊの「ｊ」を「ｊ＝１」とする（ステップＳ１００３）。そして、試験管理装置２０２は、分割キャプチャデータＰ1〜Ｐnの中から、セッションＳｊにかかる一連のパケットのうちの少なくともいずれかのパケットを含む１以上の分割キャプチャデータを特定する（ステップＳ１００４）。
【０１３２】
つぎに、試験管理装置２０２は、セッションＳｊにかかる分割キャプチャデータの中から、クライアント装置ＣＬのユーザを識別するＣｏｏｋｉｅ情報の発行要求となるパケットＸを含む分割キャプチャデータＰkを検出する（ステップＳ１００５）。
【０１３３】
そして、試験管理装置２０２は、セッションＳｊにかかる分割キャプチャデータのうち、分割キャプチャデータＰkよりも送信順序が後となる後続の分割キャプチャデータの先頭にパケットＸを付加する（ステップＳ１００６）。
【０１３４】
つぎに、試験管理装置２０２は、セッションＳｊの「ｊ」をインクリメントして（ステップＳ１００７）、「ｊ」が「ｍ」より大きくなったか否かを判断する（ステップＳ１００８）。ここで、「ｊ」が「ｍ」以下の場合（ステップＳ１００８：Ｎｏ）、試験管理装置２０２は、ステップＳ１００４に戻る。
【０１３５】
一方、「ｊ」が「ｍ」より大きくなった場合（ステップＳ１００８：Ｙｅｓ）、試験管理装置２０２は、検証用の分割キャプチャデータＰ1〜Ｐnを出力して（ステップＳ１００９）、本フローチャートによる一連の処理を終了する。検証用の分割キャプチャデータＰ1〜Ｐnは、各セッションＳｊについて、分割キャプチャデータＰkの後続の分割キャプチャデータの先頭にパケットＸが付加された分割キャプチャデータＰ1〜Ｐnである。
【０１３６】
これにより、検証系システム２３０−１〜２３０−ｎにおいて負荷を分散して検証試験を行うための検証用の分割キャプチャデータＰ1〜Ｐnを出力することができる。
【０１３７】
つぎに、試験管理装置２０２の検証処理手順について説明する。
【０１３８】
図１１は、実施の形態１にかかる試験管理装置２０２の検証処理手順の一例を示すフローチャートである。図１１のフローチャートにおいて、まず、試験管理装置２０２は、検証用の分割キャプチャデータＰ1〜Ｐnをメモリ３０２から読み込む（ステップＳ１１０１）。
【０１３９】
つぎに、試験管理装置２０２は、検証用の分割キャプチャデータＰ1〜Ｐnの各々の分割キャプチャデータＰiを、試験装置２０３−１〜２０３−ｎの各々の試験装置２０３−ｉに割り当てる（ステップＳ１１０２）。そして、試験管理装置２０２は、試験装置２０３−１〜２０３−ｎから検証結果を取得したか否かを判断する（ステップＳ１１０３）。
【０１４０】
ここで、試験管理装置２０２は、試験装置２０３−１〜２０３−ｎから検証結果を取得するのを待つ（ステップＳ１１０３：Ｎｏ）。試験管理装置２０２は、試験装置２０３−１〜２０３−ｎから検証結果を取得した場合（ステップＳ１１０３：Ｙｅｓ）、取得した検証結果に基づいて、検証対象システムが正常に動作するか否かを判定する（ステップＳ１１０４）。そして、試験管理装置２０２は、判定した判定結果を出力して（ステップＳ１１０５）、本フローチャートによる一連の処理を終了する。
【０１４１】
これにより、検証対象システムの動作検証にかかる負荷を試験装置２０３−１〜２０３−ｎにほぼ均等に分散して、検証対象システムの動作検証を並列に行うことができる。
【０１４２】
以上説明したように、実施の形態１にかかる試験管理装置２０２によれば、キャプチャデータＰから分割された分割キャプチャデータＰ1〜Ｐnの中からパケットＸを含む分割キャプチャデータＰkを検出することができる。パケットＸは、送信元の識別情報の発行要求となるパケットであり、装置間においてセッションを維持するための情報（例えば、Ｃｏｏｋｉｅ情報）を取得するリクエストのパケットである。また、試験管理装置２０２によれば、分割キャプチャデータＰkの後続の分割キャプチャデータの先頭にパケットＸを付加して、後続の分割キャプチャデータの先頭にパケットＸが付加された分割キャプチャデータＰ1〜Ｐnを出力することができる。
【０１４３】
これにより、装置間においてセッションを維持するための情報を取得するリクエストが欠落している分割キャプチャデータにパケットＸを補間して、検証用の分割キャプチャデータＰ1〜Ｐnを出力することができる。
【０１４４】
また、試験管理装置２０２によれば、キャプチャデータＰに含まれる各々のパケットのキャプチャ時刻に基づいて、検証期間の開始時刻から基本時間Ｔ＿ｄｉｖで区切った期間ごとにキャプチャデータＰを分割することができる。これにより、各検証系システム２３０−ｉにおける検証期間が均等になるようにキャプチャデータＰを分割して分割キャプチャデータＰ1〜Ｐnを作成することができる。
【０１４５】
また、試験管理装置２０２によれば、キャプチャデータＰに含まれる各々のパケットのパケット長に基づいて、検証期間の開始時刻から分割キャプチャデータ単位のデータサイズが基本サイズＳ＿ｄｉｖとなるようにキャプチャデータＰを分割することができる。これにより、各検証系システム２３０−ｉにおける分割キャプチャデータＰiのデータサイズが均等になるようにキャプチャデータＰを分割して分割キャプチャデータＰ1〜Ｐnを作成することができる。この結果、各検証系システム２３０−ｉにおける分割キャプチャデータＰiの読み込みにかかる時間を一定にして検証期間の開始時刻を一定にすることができる。なお、各検証系システム２３０−ｉにおける検証期間の終了時刻がばらつく可能性があるが、装置間の通信があまり発生していない部分でパケットの送信間隔を詰めることにより終了時刻を早めることが可能である。
【０１４６】
また、試験管理装置２０２によれば、検証用の分割キャプチャデータＰ1〜Ｐnの各々の分割キャプチャデータＰiを、試験装置２０３−１〜２０３−ｎの各々の試験装置２０３−ｉに割り当てることができる。これにより、検証系システム２３０−１〜２３０−ｎにおいて負荷を分散して、検証対象システムの動作検証を並列に行うことができる。
【０１４７】
また、試験管理装置２０２によれば、各検証対象システム２３０−ｉにおいて各分割キャプチャデータＰiに基づく検証対象システムの動作検証が行われた結果、各試験装置２０３−ｉから検証結果を取得することができる。また、試験管理装置２０２によれば、試験装置２０３−１〜２０３−ｎから取得した検証結果に基づいて、検証対象システムの動作検証を行うことができる。
【０１４８】
（実施の形態２）
つぎに、実施の形態２にかかる試験管理装置２０２について説明する。なお、実施の形態１で説明した箇所と同様の箇所については説明を省略する。
【０１４９】
実施の形態２では、実動系システム２００の装置間においてＤＢ（データベース）に対する操作を表すパケットが送受信される場合について説明する。具体的には、例えば、実施の形態２では、試験管理装置２０２は、キャプチャデータＰを分割する時刻におけるＤＢの記憶内容の複製データを生成する。これにより、検証対象システム２３０−ｉにおいて、キャプチャデータＰを分割する時刻におけるデータベースの記憶内容を復元可能にして、データベースの記憶内容に基づく検証対象システムの機能検証を可能にする。
【０１５０】
（ＤＢに対する操作を表すパケットの具体例）
ここで、実動系システム２００の装置間において送受信されるＤＢに対する操作を表すパケットの具体例について説明する。操作対象となるＤＢは、例えば、実動系システム２００のデータベースサーバが有するＤＢである。
【０１５１】
図１２および図１３は、ＤＢに対する操作を表すパケットの具体例を示す説明図である。図１２において、パケット１２００は、ＨＴＴＰヘッダ部１２０１とＨＴＴＰボディ部１２０２を有する。パケット１２００は、ＨＴＴＰボディ部１２０２にＳＥＬＥＣＴ文が含まれており、ＤＢの内容を参照するのみ、すなわち、ＤＢの内容を書き換えないリクエストである。具体的には、パケット１２００は、ユーザ情報管理テーブルの顧客名「Ｔａｒｏ」の預金を参照するための参照系のリクエストである。
【０１５２】
図１３において、パケット１３００は、ＨＴＴＰヘッダ部１３０１とＨＴＴＰボディ部１３０２を有する。パケット１３００は、ＨＴＴＰボディ部１３０１にＩＮＳＥＲＴ文が含まれており、ＤＢの内容を書き換えるリクエストである。具体的には、パケット１３００は、手続き情報管理テーブルに、顧客名「Ｔａｒｏ」、相手顧客「Ｊｉｒｏ」、取引時刻「システム時刻」、取引内容「Ｔｒａｎｓｆｅｒ」および取引金額「１５０＄」の行を挿入するための更新系のリクエストである。
【０１５３】
（試験管理装置２０２の機能的構成例）
つぎに、実施の形態２にかかる試験管理装置２０２の機能的構成例について説明する。図１４は、実施の形態２にかかる試験管理装置２０２の機能的構成例を示すブロック図である。図１４において、試験管理装置２０２は、取得部５０１と、作成部５０２と、検出部５０３と、付加部５０４と、割当部５０５と、収集部５０６と、判定部５０７と、出力部５０８と、生成部１４０１と、を含む。取得部５０１〜出力部５０８および生成部１４０１は制御部となる機能であり、具体的には、例えば、図３に示したメモリ３０２、ＨＤＤ３０３などに記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０４により、その機能を実現する。また、各機能部の処理結果は、例えば、メモリ３０２、ＨＤＤ３０３などに記憶される。
【０１５４】
生成部１４０１は、所定期間内に設定された各々の時刻におけるＤＢの記憶内容を複製した各々の時刻における複製データを生成する機能を有する。ここで、所定期間は、例えば、検証対象システムの動作検証を行う検証期間の開始時刻から終了時刻までの期間である。また、各々の時刻は、キャプチャデータＰを分割する時刻であり、検証期間の開始時刻および終了時刻を含む。ＤＢの記憶内容は、例えば、ＤＢに記憶されている各種テーブルの記憶内容である。
【０１５５】
具体的には、例えば、生成部１４０１は、キャプチャデータＰを分割する各時刻Ｔ0〜ＴnにおけるＤＢに記憶されている各種テーブルのスナップショットＤＢ0〜ＤＢnを生成する。なお、時刻Ｔ0は検証期間の開始時刻に相当し、時刻Ｔnは検証期間の終了時刻に相当する。
【０１５６】
生成された各時刻Ｔ0〜ＴnにおけるスナップショットＤＢ0〜ＤＢnは、例えば、各検証系システム２３０−ｉの試験装置２０３−ｉと検証系装置群２０４−ｉとがアクセス可能な共有メモリに格納される。共有メモリは、例えば、メモリ３０２やＨＤＤ３０３により実現される。なお、スナップショットＤＢ0〜ＤＢnの生成例については、図１５を用いて後述する。
【０１５７】
作成部５０２は、取得されたキャプチャデータＰを各時刻Ｔ0〜Ｔnにおいて分割することにより、分割キャプチャデータＰ1〜Ｐnを作成する。これにより、各検証系システム２３０−ｉにおいて、各検証期間の開始時刻および終了時刻におけるＤＢの記憶内容をスナップショットＤＢ0〜ＤＢnから復元することができる。
【０１５８】
収集部５０６は、試験装置２０３−ｉに割り当てられた分割キャプチャデータＰiとスナップショットＤＢi-1とに基づく検証対象システムの動作検証が行われた結果、試験装置２０３−ｉから検証結果を取得する。ここで、スナップショットＤＢi-1は、スナップショットＤＢ0〜ＤＢnのうち、検証系システム２３０−ｉの検証期間の開始時刻に対応するＤＢのスナップショットである。
【０１５９】
試験装置２０３−ｉからの検証結果には、例えば、検証系システム２３０−ｉの検証完了後におけるＤＢの記憶内容と、検証系システム２３０−ｉの検証期間の終了時刻に対応するスナップショットＤＢiから復元されるＤＢの記憶内容との比較結果を含む。なお、検証結果の具体例については、図１８を用いて後述する。
【０１６０】
判定部５０７は、取得された検証結果に含まれるＤＢの記憶内容の比較結果に基づいて、検証対象システムが正常に動作するか否かを判定する。具体的には、例えば、判定部５０７は、試験装置２０３−１〜２０３−ｎから取得された比較結果に基づいて、検証対象システムが正常に動作するか否かを判定する。なお、判定結果の具体例については、図１８を用いて後述する。
【０１６１】
上述した説明では、生成部１４０１が各時刻Ｔ0〜ＴnにおけるスナップショットＤＢ0〜ＤＢnを生成することにしたが、これに限らない。
【０１６２】
例えば、生成部１４０１は、分割キャプチャデータＰ1〜Ｐnの連続する第１の分割キャプチャデータおよび第２の分割キャプチャデータのうち、第１の分割キャプチャデータの中からＤＢに対する操作を表すパケットを検索することにしてもよい。具体的には、例えば、生成部１４０１は、第１の分割キャプチャデータの中から、更新系のリクエストのパケットを検索する。更新系のリクエストは、例えば、図１３に示したようなＩＮＳＥＲＴ文を含むパケット１３００である。
【０１６３】
この場合、付加部５０４は、検索されたパケットを第２の分割キャプチャデータの先頭に付加することにしてもよい。そして、付加部５０４は、分割キャプチャデータＰ1〜Ｐnのうち、分割キャプチャデータＰkよりも送信順序が後となる後続の分割キャプチャデータの先頭にパケットＸを付加することにしてもよい。
【０１６４】
これにより、各検証系システム２３０−ｉにおいて、分割キャプチャデータＰi-1に含まれる更新系のリクエストを再現することができる。例えば、オンラインショッピングを想定すると、分割キャプチャデータＰi-1において更新された買い物リストの内容（商品の追加、削除等）を、分割キャプチャデータＰiにおいて再現することができる。
【０１６５】
また、生成部１４０１は、時刻Ｔ0におけるＤＢに記憶されている各種テーブルのスナップショットＤＢ0を生成することにしてもよい。時刻Ｔ0は検証期間の開始時刻に相当する。この場合、作成部５０２は、時刻Ｔ0を基準時刻として、キャプチャデータＰを分割することにより、分割キャプチャデータＰ1〜Ｐnを作成する。
【０１６６】
これにより、各検証系システム２３０−ｉにおいて、スナップショットＤＢ0から復元される時刻Ｔ0におけるＤＢの記憶内容をもとに、クライアント装置からの参照系のリクエストに対して、サーバから適正な値を返すことができるようになる。ここで、更新系のパケットを付加する付加例について説明する。
【０１６７】
（更新系のパケットの付加例）
図１５は、更新系のパケットの付加例を示す説明図である。図１５において、あるキャプチャデータＰから分割された分割キャプチャデータＰ1，Ｐ2が示されている。ただし、分割直後は、分割キャプチャデータＰ2にはパケットｐ１，ｐ５，ｐ７，ｐ９は含まれていない。
【０１６８】
この場合、生成部１４０１は、分割キャプチャデータＰ1の中からＤＢに対する操作を表すパケットを検索する。図１５の例では、パケットｐ５，ｐ７，ｐ９が検索される。この場合、付加部５０４は、検索されたパケットｐ５，ｐ７，ｐ９を分割キャプチャデータＰ2の先頭に付加する。
【０１６９】
さらに、付加部５０４は、分割キャプチャデータＰ1から検出されるパケットＸを分割キャプチャデータＰ2の先頭に付加する。図１５の例では、パケットｐ５，ｐ７，ｐ９が付加された付加後の分割キャプチャデータＰ2の先頭にパケットＸであるパケットｐ１が付加されている。この際、パケットｐ５，ｐ７，ｐ９の送信時刻は、パケットｐ１の送信時刻よりも後でかつパケットｐ１０よりも前となるようにそれぞれ変更される。
【０１７０】
これにより、パケットｐ１５の時点において、例えば、ユーザ名「Ｔａｒｏ」が預金残高確認のリクエストを送信する際、サーバから適正な値を返すことができるようになる。なお、分割キャプチャデータＰ2に付加するパケットｐ５，ｐ７，ｐ９は、順序さえ正しければ時間間隔を詰めて送信することも可能である。
【０１７１】
（スナップショットＤＢ0〜ＤＢnの生成例）
つぎに、スナップショットＤＢ0〜ＤＢnの生成例について説明する。ここでは、基準時刻を「８：００：００」とし、基準時刻から１時間の時間幅で区切った期間ごとにキャプチャデータＰを分割する場合を例に挙げて説明する。
【０１７２】
図１６は、スナップショットの生成例を示す説明図である。図１６において、キャプチャデータ１５００から分割された分割キャプチャデータＰ1，Ｐ2が示されている。ただし、分割直後は、分割キャプチャデータＰ2にはパケットｐ１は含まれていない。ここで、検証対象システムの検証期間の開始時刻を「８：００：００」とし、終了時刻を「１０：００：００」とする。
【０１７３】
このため、キャプチャデータＰを分割する各時刻Ｔ0〜Ｔ2は、「Ｔ0＝８：００：００」、「Ｔ1＝９：００：００」および「Ｔ2＝１０：００：００」となる。この場合、生成部１４０１は、キャプチャデータＰを分割する各時刻Ｔ0〜Ｔ2におけるＤＢに記憶されている各種テーブルのスナップショットＤＢ0〜ＤＢ2を生成する。
【０１７４】
生成されたスナップショットＤＢ0〜ＤＢ2は、例えば、図１７に示すスナップショットテーブル１７００に格納される。スナップショットテーブル１７００は、例えば、各検証系システム２３０−ｉの試験装置２０３−ｉと検証系装置群２０４−ｉとがアクセス可能な共有メモリに記憶されている。
【０１７５】
図１７は、スナップショットテーブル１７００の記憶内容の一例を示す説明図である。図１７において、スナップショットテーブル１７００は、各スナップショットＤＢ0〜ＤＢ2を、キャプチャデータＰを分割する各時刻Ｔ0〜Ｔ2と対応付けて記憶している。各検証系システム２３０−ｉの試験装置２０３−ｉと検証系装置群２０４−ｉは、スナップショットテーブル１７００にアクセスすることにより、各時刻Ｔ0〜Ｔ2のスナップショットＤＢ0〜ＤＢ2を取得することができる。
【０１７６】
ここで、パケットＸが付加された分割キャプチャデータＰ1およびスナップショットＤＢ0，ＤＢ1に基づく試験装置２０３−１の検証処理の処理例について説明する。
【０１７７】
図１８は、試験装置の検証処理の処理例を示す説明図である。図１８において、ユーザ情報管理テーブル１８１０の記憶内容１８１１は、「８：００：００」時点のスナップショットＤＢ0から復元されたものである。各時点のスナップショットは、例えば、図１７に示したスナップショットテーブル１７００から特定される。
【０１７８】
ここで、分割キャプチャデータＰ1に、図１３に示したパケット１３００が含まれる場合を想定する。この場合、検証系システム２３０−１の検証系装置群２０４−１においてパケット１３００が送受信された結果、手続き情報管理テーブル１８２０の記憶内容が更新される。そして、「８：００：００」時点のユーザ情報管理テーブル１８１０の記憶内容１８１１と更新後の手続き情報管理テーブル１８２０の記憶内容とに基づいて、「９：００：００」時点のユーザ情報管理テーブル１８１０の記憶内容１８１２に更新される。
【０１７９】
この場合、試験装置２０３−１は、例えば、スナップショットテーブル１７００を参照して、スナップショットＤＢ1から、「９：００：００」時点のユーザ情報管理テーブル１８１０の記憶内容を復元する。つぎに、試験装置２０３−１は、ユーザ情報管理テーブル１８１０の記憶内容１８１２と、復元した「９：００：００」時点のユーザ情報管理テーブル１８１０の記憶内容とを比較する。そして、試験装置２０３−１は、比較した比較結果を含む検証結果を試験管理装置２０２に送信する。
【０１８０】
（検証結果および判定結果の具体例）
ここで、図１９を用いて検証結果および判定結果の具体例について説明する。ここでは、分割キャプチャデータＰ1〜Ｐnの個数を「４」、すなわち、キャプチャデータＰを４分割する場合を例に挙げて説明する。
【０１８１】
図１９は、検証結果および判定結果の具体例を示す説明図（その２）である。図１９において、検証結果１９００−１〜１９００−４は、試験装置２０３−１〜２０３−４から取得される検証対象システムの動作検証の検証結果を表している。
【０１８２】
検証結果１９００−１には、検証対象システムの機能検証の検証結果「ＯＫ」、検証対象システムの性能検証の検証結果「ＯＫ」、検証対象システムのページロード時間の平均「ＡＶＲＧ１」、分散「ＳＴＤＮ１」およびスナップショット「一致」が示されている。ここで、スナップショット「一致」は、検証系システム２３０−１の検証完了後におけるＤＢの記憶内容と、検証系システム２３０−１の検証期間の終了時刻に対応するスナップショットＤＢ1から復元されるＤＢの記憶内容とが一致することを示している。
【０１８３】
検証結果１９００−２には、検証対象システムの機能検証の検証結果「ＯＫ」、検証対象システムの性能検証の検証結果「ＯＫ」、検証対象システムのページロード時間の平均「ＡＶＲＧ２」、分散「ＳＴＤＮ２」およびスナップショット「不一致」が示されている。ここで、スナップショット「不一致」は、検証系システム２３０−２の検証完了後におけるＤＢの記憶内容と、検証系システム２３０−２の検証期間の終了時刻に対応するスナップショットＤＢ2から復元されるＤＢの記憶内容とが一致しないことを示している。
【０１８４】
検証結果１９００−３には、検証対象システムの機能検証の検証結果「ＯＫ」、検証対象システムの性能検証の検証結果「ＯＫ」、検証対象システムのページロード時間の平均「ＡＶＲＧ３」、分散「ＳＴＤＮ３」およびスナップショット「一致」が示されている。ここで、スナップショット「一致」は、検証系システム２３０−３の検証完了後におけるＤＢの記憶内容と、検証系システム２３０−３の検証期間の終了時刻に対応するスナップショットＤＢ3から復元されるＤＢの記憶内容とが一致することを示している。
【０１８５】
検証結果１９００−４には、検証対象システムの機能検証の検証結果「ＯＫ」、検証対象システムの性能検証の検証結果「ＯＫ」、検証対象システムのページロード時間の平均「ＡＶＲＧ４」、分散「ＳＴＤＮ４」およびスナップショット「一致」が示されている。ここで、スナップショット「一致」は、検証系システム２３０−４の検証完了後におけるＤＢの記憶内容と、検証系システム２３０−４の検証期間の終了時刻に対応するスナップショットＤＢ4から復元されるＤＢの記憶内容とが一致することを示している。
【０１８６】
判定部５０７は、検証結果１９００−１〜１９００−４に基づいて、検証対象システムの機能が正常であるか否かを判定する。ここでは、判定部５０７は、例えば、検証結果１９００−１〜１９００−４の機能検証の検証結果は「ＯＫ」となっているが、検証結果の１９００−２のスナップショットが「不一致」となっているため、検証対象システムの機能が異常であると判定する。
【０１８７】
また、判定部５０７は、例えば、検証結果１９００−１〜１９００−４の性能検証の検証結果がすべて「ＯＫ」となっているため、検証対象システムの性能が正常であると判定する。この場合、判定部５０７は、検証対象システムの機能が異常となったため、最終的に、検証対象システムの動作が異常であると判定する。そして、出力部５０８は、判定結果１９０１を出力する。
【０１８８】
（試験管理装置２０２の生成処理手順）
つぎに、実施の形態２にかかる試験管理装置２０２の生成処理手順について説明する。生成処理は、キャプチャデータＰを分割する各時刻Ｔ0〜ＴnにおけるＤＢに記憶されている各種テーブルのスナップショットＤＢ0〜ＤＢnを生成する処理である。
【０１８９】
図２０は、実施の形態２にかかる試験管理装置２０２の生成処理手順の一例を示す説明図である。図２０のフローチャートにおいて、まず、試験管理装置２０２は、時刻Ｔiの「ｉ」を「ｉ＝０」として（ステップＳ２００１）、現在時刻が時刻Ｔiとなったか否かを判断する（ステップＳ２００２）。
【０１９０】
ここで、試験管理装置２０２は、現在時刻が時刻Ｔiとなるのを待つ（ステップＳ２００２：Ｎｏ）。そして、試験管理装置２０２は、現在時刻が時刻Ｔiとなった場合（ステップＳ２００２：Ｙｅｓ）、ＤＢの記憶内容のスナップショットＤＢiを生成する（ステップＳ２００３）。
【０１９１】
つぎに、試験管理装置２０２は、時刻Ｔiの「ｉ」をインクリメントして（ステップＳ２００４）、「ｉ」が「ｎ」より大きくなったか否かを判断する（ステップＳ２００５）。ここで、「ｉ」が「ｎ」以下の場合（ステップＳ２００５：Ｎｏ）、試験管理装置２０２は、ステップＳ２００２に戻る。
【０１９２】
一方、「ｉ」が「ｎ」より大きくなった場合（ステップＳ２００５：Ｙｅｓ）、試験管理装置２０２は、本フローチャートによる一連の処理を終了する。これにより、キャプチャデータＰを分割する各時刻Ｔ0〜ＴnにおけるＤＢに記憶されている各種テーブルのスナップショットＤＢ0〜ＤＢnを生成することができる。
【０１９３】
なお、実施の形態２にかかる試験管理装置２０２の検証支援処理手順および検証処理手順については、実施の形態１で説明した試験管理装置２０２の検証支援処理手順および検証処理手順と同様のため、ここでは説明を省略する。
【０１９４】
また、分割キャプチャデータＰiに更新系のパケットを付加する場合、試験管理装置２０２は、セッションＳｊごとに、分割キャプチャデータＰi-1から更新系のパケットを検索して、分割キャプチャデータＰiに付加することになる。
【０１９５】
（試験装置２０３−ｉの検証処理手順）
つぎに、実施の形態２にかかる試験装置２０３−ｉの検証処理手順について説明する。なお、ここでは、検証系システム２３０−ｉにおいて検証試験を行う期間を「基本時間」という。基本時間は、例えば、キャプチャデータＰを分割する際の一定の時間幅（例えば、１時間）である。
【０１９６】
図２１は、実施の形態２にかかる試験装置２０３−ｉの検証処理手順の一例を示すフローチャートである。図２１のフローチャートにおいて、まず、試験装置２０３−ｉは、スナップショットＤＢi-1からＤＢの記憶内容を復元する（ステップＳ２１０１）。
【０１９７】
つぎに、試験装置２０３−ｉは、割り当てられた分割キャプチャデータＰiと、復元したＤＢの記憶内容とに基づいて、検証対象システムの動作検証を行う（ステップＳ２１０２）。そして、試験装置２０３−ｉは、基本時間内に検証対象システムの動作検証が完了したか否かを判断する（ステップＳ２１０３）。
【０１９８】
ここで、基本時間内に検証対象システムの動作検証が完了した場合（ステップＳ２１０３：Ｙｅｓ）、試験装置２０３−ｉは、検証系システム２３０−ｉの検証完了後におけるＤＢの記憶内容を取得する（ステップＳ２１０４）。つぎに、試験装置２０３−ｉは、スナップショットＤＢiからＤＢの記憶内容を復元する（ステップＳ２１０５）。
【０１９９】
そして、試験装置２０３−ｉは、取得したＤＢの記憶内容と、復元したＤＢの記憶内容とが一致するか否かを判断する（ステップＳ２１０６）。ここで、ＤＢの記憶内容が一致する場合（ステップＳ２１０６：Ｙｅｓ）、試験装置２０３−ｉは、スナップショットが一致することを示す比較結果を含む検証結果を試験管理装置２０２に送信して（ステップＳ２１０７）、本フローチャートによる一連の処理を終了する。
【０２００】
一方、ＤＢの記憶内容が不一致の場合（ステップＳ２１０６：Ｎｏ）、試験装置２０３−ｉは、スナップショットが不一致であることを示す比較結果を含む検証結果を試験管理装置２０２に送信して（ステップＳ２１０８）、本フローチャートによる一連の処理を終了する。
【０２０１】
また、ステップＳ２１０３において、基本時間内に検証対象システムの動作検証が完了しなかった場合（ステップＳ２１０３：Ｎｏ）、試験装置２０３−ｉは、検証失敗を示す検証結果を試験管理装置２０２に送信して（ステップＳ２１０９）、本フローチャートによる一連の処理を終了する。
【０２０２】
これにより、検証対象システム２３０−ｉにおいて、キャプチャデータＰを分割する各時刻Ｔi-1，ＴiにおけるＤＢの記憶内容を復元して、ＤＢの記憶内容に基づく検証対象システムの機能検証を行うことができる。また、実施の形態１で説明したような、レスポンス数やレスポンスコードの比較を合わせて行うことにより、より精度の高い機能検証を行うことができる。
【０２０３】
また、操作対象となるＤＢの構成や機能を変更して検証試験を行う際に、アプリケーションやＤＢで蓄積するログ情報や統計情報を参照することにより、ＤＢの構成変更や機能変更の有効性や検証試験に失敗した原因を突き止めやすくなる。例えば、ＤＢの台数を増やしたり、ＤＢのキャッシュ機能を利用して検証試験を行う際に、ＤＢに対して非常に負荷がかかる処理が行われた結果、負荷に耐え切れずＤＢが応答を返さなくなってしまう事象を検知することができる。
【０２０４】
以上説明したように、実施の形態２にかかる試験管理装置２０２によれば、キャプチャデータＰを分割する各時刻Ｔ0〜ＴnにおけるＤＢに記憶されている各種テーブルのスナップショットＤＢ0〜ＤＢnを生成することができる。
【０２０５】
また、実施の形態２にかかる試験装置２０３−ｉによれば、キャプチャデータＰを分割する各時刻Ｔi-1，ＴiにおけるＤＢの記憶内容を復元して、ＤＢの記憶内容に基づく検証対象システムの機能検証を行うことができる。
【０２０６】
また、試験管理装置２０２によれば、分割キャプチャデータＰ1〜Ｐnの連続する第１の分割キャプチャデータおよび第２の分割キャプチャデータのうち、第１の分割キャプチャデータの中からＤＢに対する操作を表す更新系のパケットを検索することができる。そして、試験管理装置２０２によれば、検索した更新系のパケットを第２の分割キャプチャデータの先頭に付加することができる。
【０２０７】
これにより、検証系システム２３０−ｉにおいて、分割キャプチャデータＰi-1に含まれる更新系のリクエストを再現することができる。この結果、検証系システム２３０−ｉにおいて、クライアント装置からの参照系のリクエストに対して、サーバから適正な値を返すことができるようになる。
【０２０８】
なお、本実施の形態で説明した検証支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本検証支援プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本検証支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【０２０９】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０２１０】
（付記１）コンピュータに、
装置間において送受信される一連のデータを取得し、
取得した前記一連のデータを分割することにより複数のデータ群を作成し、
作成した前記複数のデータ群の中から、送信元の識別情報の発行要求となる特定のデータを含むデータ群を検出し、
前記複数のデータ群のうち、検出した前記データ群よりも送信された順序が後となる後続のデータ群の先頭に前記特定のデータを付加し、
前記後続のデータ群の先頭に前記特定のデータを付加した前記複数のデータ群を出力する、
処理を実行させることを特徴とする検証支援プログラム。
【０２１１】
（付記２）前記作成する処理は、
前記一連のデータの各々のデータのデータ量に基づいて、前記一連のデータを基準時刻からデータ群単位のデータ量が所定値となるように分割することにより、前記複数のデータ群を作成することを特徴とする付記１に記載の検証支援プログラム。
【０２１２】
（付記３）前記作成する処理は、
前記一連のデータの各々のデータの送信時刻に基づいて、前記一連のデータを基準時刻から一定の時間幅で区切った期間ごとに分割することにより、前記複数のデータ群を作成することを特徴とする付記１に記載の検証支援プログラム。
【０２１３】
（付記４）前記コンピュータに、
検証対象システムの動作検証を行う複数の検証装置の各々の検証装置に、前記後続のデータ群の先頭に前記特定のデータを付加した前記複数のデータ群の各々のデータ群をそれぞれ割り当て、
前記各々の検証装置に割り当てた前記各々のデータ群に基づく前記動作検証が行われた結果、前記各々の検証装置から前記動作検証の検証結果を取得し、
前記各々の検証装置から取得した前記検証結果に基づいて、前記検証対象システムが正常に動作するか否かを判定し、
判定した判定結果を出力する、
処理を実行させることを特徴とする付記１〜３のいずれか一つに記載の検証支援プログラム。
【０２１４】
（付記５）前記コンピュータに、
前記装置間においてデータベースに対する操作を表すデータが送受信される場合、所定期間内に設定された各々の時刻における前記データベースの記憶内容を複製した前記各々の時刻における複製データを生成する処理を実行させ、
前記取得する処理は、
前記所定期間内の前記装置間において送受信される一連のデータを取得し、
前記作成する処理は、
前記一連のデータを前記各々の時刻において分割することにより前記複数のデータ群を作成することを特徴とする付記１〜４のいずれか一つに記載の検証支援プログラム。
【０２１５】
（付記６）前記コンピュータに、
検証対象システムの動作検証を行う複数の検証装置がアクセス可能な記憶部に前記各々の時刻における複製データを格納し、
前記複数の検証装置の各々の検証装置に、前記後続のデータ群の先頭に前記特定のデータを付加した前記複数のデータ群の各々のデータ群をそれぞれ割り当て、
前記各々のデータ群と前記記憶部に格納されている前記動作検証の開始時刻に対応する複製データとに基づく前記動作検証が行われた結果、前記動作検証の終了時刻における前記データベースの記憶内容と前記記憶部に格納されている前記動作検証の終了時刻に対応する複製データとの比較結果を前記各々の検証装置から取得し、
前記各々の検証装置から取得した前記比較結果に基づいて、前記検証対象システムが正常に動作するか否かを判定し、
判定した判定結果を出力する、
処理を実行させることを特徴とする付記５に記載の検証支援プログラム。
【０２１６】
（付記７）前記コンピュータに、
前記複数のデータ群の連続する第１のデータ群および第２のデータ群のうち、前記第１のデータ群の中からデータベースに対する操作を表すデータを検索し、
検索した前記データを前記第２のデータ群の先頭に付加する処理を実行させ、
前記特定のデータを付加する処理は、
検索した前記データを前記第２のデータ群の先頭に付加した結果、前記後続のデータ群の先頭に前記特定のデータを付加することを特徴とする付記１〜６のいずれか一つに記載の検証支援プログラム。
【０２１７】
（付記８）コンピュータが、
装置間において送受信される一連のデータを取得し、
取得した前記一連のデータを分割することにより複数のデータ群を作成し、
作成した前記複数のデータ群の中から、送信元の識別情報の発行要求となる特定のデータを含むデータ群を検出し、
前記複数のデータ群のうち、検出した前記データ群よりも送信された順序が後となる後続のデータ群の先頭に前記特定のデータを付加し、
前記後続のデータ群の先頭に前記特定のデータを付加した前記複数のデータ群を出力する、
処理を実行することを特徴とする検証支援方法。
【０２１８】
（付記９）装置間において送受信される一連のデータを取得する取得部と、
前記取得部によって取得された前記一連のデータを分割することにより複数のデータ群を作成する作成部と、
前記作成部によって作成された前記複数のデータ群の中から、送信元の識別情報の発行要求となる特定のデータを含むデータ群を検出する検出部と、
前記複数のデータ群のうち、前記検出部によって検出された前記データ群よりも送信された順序が後となる後続のデータ群の先頭に前記特定のデータを付加する付加部と、
前記付加部によって前記後続のデータ群の先頭に前記特定のデータが付加された前記複数のデータ群を出力する出力部と、
を有することを特徴とする検証支援装置。
【符号の説明】
【０２１９】
１００  検証支援装置
２０２  試験管理装置
５０１  取得部
５０２  作成部
５０３  検出部
５０４  付加部
５０５  割当部
５０６  収集部
５０７  判定部
５０８  出力部
１４０１  生成部
【図１】
0005807594.tif 000004
【図２】
0005807594.tif 000005
【図３】
0005807594.tif 000006
【図４】
0005807594.tif 000007
【図５】
0005807594.tif 000008
【図６】
0005807594.tif 000009
【図７】
0005807594.tif 000010
【図８】
0005807594.tif 000011
【図９】
0005807594.tif 000012
【図１０】
0005807594.tif 000013
【図１１】
0005807594.tif 000014
【図１２】
0005807594.tif 000015
【図１３】
0005807594.tif 000016
【図１４】
0005807594.tif 000017
【図１５】
0005807594.tif 000018
【図１６】
0005807594.tif 000019
【図１７】
0005807594.tif 000020
【図１８】
0005807594.tif 000021
【図１９】
0005807594.tif 000022
【図２０】
0005807594.tif 000023
【図２１】
0005807594.tif 000024