(57)【要約】【課題】人手によることなく、アプリケーションのテストを倍速で行なう際の不具合の発生を抑制し得る、仮想時刻配信システム、仮想時刻配信装置、仮想時刻情報の配信方法、及びプログラムを提供する。【解決手段】仮想時刻配信システム３００は、情報処理装置２００がアプリケーション２０４を倍速で実行する際の倍速値を区間毎に設定したスケジュールを生成するスケジュール生成部１０２と、区間の開始時刻毎に、当該開始時刻の前の区間の倍速値に基づいて、テストデータによるアプリケーションプログラム実行時の倍速値適用開始システム時刻を計算するシステム時刻計算部１０３と、アプリケーション２０４が時刻を要求した場合に、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、これと、設定された倍速値とを用いて、アプリケーション２０４に返却する時刻を計算する仮想時刻計算部２０３とを備えている。【選択図】図１
2018159985.tif 000002
【特許請求の範囲】
【請求項１】
テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するためのシステムであって、
前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、スケジュール生成部と、
前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、システム時刻計算部と、
テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、仮想時刻計算部と、
を備えていることを特徴とする仮想時刻配信システム。
【請求項２】
前記スケジュール生成部が、前記情報処理装置が前記テストデータと同一のデータを用いて前記アプリケーションプログラムを実行した時の時間毎の負荷を特定する、負荷情報を取得し、前記負荷情報に基づいて、前記スケジュールを生成する、
請求項１に記載の仮想時刻配信システム。
【請求項３】
前記システム時刻計算部が、
前記スケジュールに設定されている区間の開始時刻毎に、
当該開始時刻の１つ前の開始時刻から当該開始時刻までの時間を求め、求めた時間に、当該開始時刻の前の区間の前記倍速値の逆数を乗算し、そして、
当該開始時刻の１つ前の開始時刻に対応する前記システム時刻に、乗算によって得られた時間を加算し、加算によって得られた時刻を、当該開始時刻に対応する、前記倍速値適用開始システム時刻とする、
請求項１または２に記載の仮想時刻配信システム。
【請求項４】
前記仮想時刻計算部は、テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
特定した倍速値適用開始システム時刻から要求時のシステム時刻までの経過時間に、特定した倍速値適用開始システム時刻の区間に設定された前記倍速値を乗算し、そして、
特定した倍速値適用開始システム時刻に対応する前記開始時刻に、乗算して得られた時間を加算し、加算によって得られた時刻を、前記アプリケーションプログラムに返却する、
請求項１〜３のいずれかに記載の仮想時刻配信システム。
【請求項５】
テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するための装置であって、
前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、スケジュール生成部と、
前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、システム時刻計算部と、
を備えていることを特徴とする仮想時刻配信装置。
【請求項６】
テストデータを用いてアプリケーションプログラムを実行する情報処理装置と、前記情報処理装置に対して時刻を配信するための仮想時刻配信装置とを用いた方法であって、
（ａ）前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、ステップと、
（ｂ）前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、ステップと、
（ｃ）テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、ステップと、
を有することを特徴とする仮想時刻配信方法。
【請求項７】
コンピュータによって、テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するためのプログラムであって、
前記コンピュータに、
（ａ）前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、ステップと、
（ｂ）前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、ステップと、
を実行させるプログラム。
【請求項８】
テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して、
前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールにおける、区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻が、倍速値適用開始システム時刻として計算されているときに、
前記情報処理装置に、
（ａ）テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、ステップを、
実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するための、アプリケーション仮想時刻配信システム、仮想時刻配信装置、及び仮想時刻情報の配信方法に関し、更には、これらを実現するためのプログラムに関する。
【背景技術】
【０００２】
ソフトウェアのテストにおいては、過去に実際の業務で使用されたデータが、テストデータとして入力される場合がある。但し、テストデータ中に含まれる時刻が、テスト対象となるアプリケーションプログラム（以下「アプリケーション」と表記する。）内の時刻と異なると、アプリケーションが正常に動作しない事態となる。
【０００３】
そこで、アプリケーション内の時刻をテストデータの時刻に合わせるため、アプリケーションに仮想的な時刻（仮想時刻）を提供する方法が提案されている。この方法では、テスターは、アプリケーションを動作させる前に、テストデータの時刻と現在時刻との差分（差分値）をシステムに入力する。そして、アプリケーションが仮想時刻を要求すると、システムは現在時刻から差分値を引いた時刻をアプリケーションに返却する。これにより、過去のテストデータを用いて正常にテストを行うことができる。
【０００４】
また、ここで、テスト効率を上げるために、テストデータの入力を実際よりも速くすることを考える。テストデータの入力を速めたい例として、例えば、航空管制系システムにおける航空機の離発着のタイミング制御などが考えられる。この航空管制系システムでは、航空機の離発着が少ないときには処理の間隔が空き、テストを行う際に待ち時間が長くなってしまう。
【０００５】
但し、テストデータの入力だけを速めると、テストデータが保持する時刻とそのデータを処理するアプリケーション内の時刻との間に不整合が生じ、テスト対象のアプリケーションが正常に動作しないことになる。この問題に対する解決策として、例えば、特許文献１は、仮想時刻の経過速度を倍速化し、テストデータの入力のスピード（倍速値）と仮想時刻の経過速度とを合わせる同期システムを開示している。
【０００６】
特許文献１に開示された同期システムは、次のようにして現在の仮想時刻を求める。つまり、同期システムは、ある基準となるＯＳ（Operating System）時刻（以下「システム時刻」と表記する）と倍速値を定め、仮想時刻を提供する時点のシステム時刻から基準となるシステム時刻（以下「基準システム時刻」と表記する）を引いて得られた時間に倍速値を掛け合わせた時間を、経過時間とする。そして、同期システムは、基準時刻に経過時間を加算して得られた時刻から、仮想時刻の基準時刻（基準仮想時刻）と基準システム時刻との差分値を減算した時刻を現在の仮想時刻と定義する。
【０００７】
ところで、入力されるテストデータによってはアプリケーションの処理に時間がかかることが考えられる。このような場合、テストデータの入力を速くするとアプリケーションが処理しきれなくなり、テストが正常に行えなくなる可能性がある。そのため、各入力テストデータで実行する処理の負荷に応じて、倍速値を動的に変更する必要がある。
【０００８】
但し、テスト実行中に倍速値を変更した場合、仮想時刻が倍速値変更前の時刻よりも前の時刻に戻ることがあり、アプリケーションの処理の一貫性が失われ、テスト対象のアプリケーションが正常に動作しなくなる問題が発生する。
【０００９】
例えば、図１１のようなケースが考えられる。図１１は、従来のソフトウェアのテストにおいてテスト実行中に倍速値を変更した場合の問題点を示す図である。このケースでは、仮想時刻１６：００に倍速値を２倍から１倍に変更しており、仮想時刻が１６：００から１４：３０に戻ってしまっている。
【００１０】
この問題に対する解決策としては、特許文献１に開示されている、基準システム時刻と仮想時刻の基準時刻（基準仮想時刻）とを分けて設定する方法が考えられる。この方法では、図１２に示すように、倍速値を変更するタイミングで基準システム時刻と基準仮想時刻とが更新される。図１２は、図１１に示した問題点を解決するための従来の手法を説明する説明図である。
【００１１】
また、図１２の例において、基準システム時刻は現在のシステム時刻に設定され、基準仮想時刻はテスターによって設定される。基準仮想時刻の初期値は、差分値を含んだ時刻となる。従って、この方法では、倍速値変更時に仮想時刻が戻ってしまうことは回避される。また、仮想時刻は以下のように定義される。
仮想時刻＝（現在のシステム時刻−基準システム時刻）＊倍速値＋基準仮想時刻
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０１０−２３１５３１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
ところで、上述したように、特許文献１に開示されている同期システムでは、上記問題を解決するため、基準仮想時刻をテスターが人手によって指定する必要がある。そのため、特許文献１に開示されているシステムには、ユーザにおける負担が非常に大きくなるという新たな問題が発生している。なお、特許文献１に開示されている同期システムは、一連の株取引のシミュレートを倍速することを目的としており、処理内容に応じて適宜倍速値を変更することを考慮したものではない。このため、ソフトウェアのテストに特化した仮想時刻の提供が必要である。
【００１４】
本発明の目的の一例は、上記問題を解消し、人手によることなく、アプリケーションのテストを倍速で行なう際の不具合の発生を抑制し得る、仮想時刻配信システム、仮想時刻配信装置、仮想時刻情報の配信方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成するため、本発明の一側面における仮想時刻配信システムは、
テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するためのシステムであって、
前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、スケジュール生成部と、
前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、システム時刻計算部と、
テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、仮想時刻計算部と、
を備えていることを特徴とすることを特徴とする。
【００１６】
上記目的を達成するため、本発明の一側面における仮想時刻配信装置は、テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するための装置であって、
前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、スケジュール生成部と、
前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、システム時刻計算部と、
を備えていることを特徴とする。
【００１７】
また、上記目的を達成するため、本発明の一側面における仮想時刻配信方法は、テストデータを用いてアプリケーションプログラムを実行する情報処理装置と、前記情報処理装置に対して時刻を配信するための仮想時刻配信装置とを用いた方法であって、
（ａ）前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、ステップと、
（ｂ）前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、ステップと、
（ｃ）テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、ステップと、
を有することを特徴とする。
【００１８】
更に、上記目的を達成するため、本発明の一側面における第１のプログラムは、コンピュータによって、テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するためのプログラムであって、
前記コンピュータに、
（ａ）前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、ステップと、
（ｂ）前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、ステップと、
を実行させることを特徴とする。
【００１９】
上記目的を達成するため、本発明の一側面における第２のプログラムは、テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して、
前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールにおける、区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻が、倍速値適用開始システム時刻として計算されているときに、
前記情報処理装置に、
（ａ）テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、ステップを、
実行させることを特徴とする。
【発明の効果】
【００２０】
以上のように、本発明によれば、人手によることなく、ソフトウェアテストの効率化を図ることができる。
【図面の簡単な説明】
【００２１】
【図１】図１は、本発明の実施の形態における仮想時刻配信システム及び仮想時刻配信装置の概略構成を示す図である。
【図２】図２は、本発明の実施の形態における仮想時刻配信システム及び仮想時刻配信装置の構成を具体的に示す図である。
【図３】図３は、本発明の実施の形態で利用される負荷情報の一例を示す図である。
【図４】図４は、本発明の実施の形態における仮想時刻配信システムでの仮想時刻配信装置の動作を示すフロー図である。
【図５】図５は、本発明の実施の形態における仮想時刻配信システムでの情報処理装置の動作を示すフロー図である。
【図６】図６は、本発明の実施の形態において生成されるスケジュールの一例を示す図である。
【図７】図７は、本発明の実施の形態におけるシステム時刻計算部の処理を説明する図である。
【図８】図８は、本発明の実施の形態において生成される仮想時刻設定情報の一例を示す図である。
【図９】図９は、本発明の実施の形態における仮想時刻計算部の処理を説明する図である。
【図１０】図１０は、本発明の実施の形態における仮想時刻配信装置及び情報処理装置を実現するコンピュータの一例を示すブロック図である。
【図１１】図１１は、従来のソフトウェアのテストにおいてテスト実行中に倍速値を変更した場合の問題点を示す図である。
【図１２】図１２は、図１１に示した問題点を解決するための従来の手法を説明する説明図である。
【発明を実施するための形態】
【００２２】
（発明の概要）
本発明は、人手によって、アプリケーションプログラム（以下、単に「アプリケーション」と表記する。）を実行する情報処理装置のシステム時刻を計算することなく、アプリケーションプログラムをテストデータを用いて実行する際の仮想時刻を配信する。情報処理装置としては、アプリケーションを実行するアプリケーションサーバが挙げられる。
【００２３】
ここで、アプリケーションプログラムを実際に実行する際における、情報処理装置のシステム起動時のシステム時刻を「基準システム時刻」とする。テストデータ中の最初の時刻を「基準仮想時刻」とする。また、仮想時刻は、テストデータに含まれる過去の時刻に合わせて、アプリケーションに与えられる時刻であり、現在の時刻とは異なる時刻である。
【００２４】
まず、本発明では、情報処理装置がアプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールが生成される。スケジュールは、情報処理装置が、テストデータと同一のデータを用いて、過去にアプリケーションを実行した場合の実行結果から生成されている。スケジュールにおける各区間の開始時刻は、過去の時刻であり、上述の仮想時刻と表現できる。
【００２５】
スケジュールは、例えば、テストデータ中に含まれる、過去の特定の時間毎のＣＰＵ（Central Processing Unit）の負荷情報の平均値（サーバ毎）に基づいて生成される。具体的には、最もＣＰＵ負荷率（使用率）が高いサーバにおいて、ＣＰＵ負荷率の平均が閾値を超えないように、倍速値が設定される。
【００２６】
次に、本発明では、スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の倍速値に基づいて、情報処理装置が実際にテストデータを用いてアプリケーションを実行する際のシステム時刻を、倍速値適用開始システム時刻として計算する。また、倍速値適用開始システム時刻は、スケジュールと共に、倍速値変更情報として保持される。
【００２７】
例えば、スケジュールにおける１つ目の開始時刻に対応する倍速値適用開始システム時刻は、スケジュールで決められた１つ目の開始時刻から基準仮想時刻を引いた時間に倍速値の逆数を掛け、得られた値を、基準システム時刻に加算することで求められる。なお、スケジュールにおける最初の区間の開始点の時刻が基準仮想時刻に相当し、２つの目の区間の開始点（１つめの区間の終点）の時刻が１つめの開始時刻に相当する。
【００２８】
２つ目の開始時刻に対応する倍速値適用開始システム時刻は、１つ目の開始時刻に対応する倍速値適用開始システム時刻を基準システム時刻とし、１つ目の開始時刻を基準仮想時刻と考えることで、同様にして求められる。このような処理により、漸化的に、スケジュールにおける全ての開始時刻に対応するシステム時刻（倍速値適用開始システム時刻）を求めることができる。
【００２９】
また、情報処理装置が、テストデータを用いて、倍速でアプリケーションプログラムを実行している際に、アプリケーションが、情報処理装置に時刻（テスト時の仮想時刻）を要求したとする。この場合、情報処理装置においては、現在のシステム時刻が取得され、これを用いて、倍速値変更情報の検索が行なわれる。これにより、現在のシステム時刻以前であり、且つ、直近となる、倍速値適用開始システム時刻が特定される。
【００３０】
そして、現在のシステム時刻から、特定された倍速値適用開始システム時刻を減算して得られた時間に、特定された倍速値適用開始システム時刻に対応する区間の倍速値が乗算される。その後、乗算によって得られた時間が、特定された倍速値適用開始システム時刻に加算され、得られた時刻が、テストデータにおける仮想時刻とし、アプリケーションに返却される。返却された時刻は、スケジュールにおける全ての区間の開始時刻を反映した時刻であるため、倍速値が変わっても仮想時刻が以前の時刻に戻ることはない。
【００３１】
（実施の形態）
以下、本発明の実施の形態における、仮想時刻配信システム、仮想時刻配信装置、仮想時刻配信方法、及びプログラムについて、図１〜図１０を参照しながら説明する。
【００３２】
［システム構成］
最初に、本実施の形態における仮想時刻配信システム及び仮想時刻配信装置の構成について図１を用いて説明する。図１は、本発明の実施の形態における仮想時刻配信システム及び仮想時刻配信装置の概略構成を示す図である。
【００３３】
図１に示す、本実施の形態における情報配信システム３００は、テストデータを用いてアプリケーションプログラム２０４（以下、単位「アプリケーション２０４」と表記する。）を実行する情報処理装置２００に対して時刻を配信するためのシステムである。
【００３４】
アプリケーション２０４は、テストデータを入力として実行される場合に、仮想時刻を利用するアプリケーションであり、情報処理装置２００に対して任意のタイミングで仮想時刻を要求する。
【００３５】
図１に示すように、情報配信システム３００は、スケジュール生成部１０２と、システム時刻計算部１０３と、仮想時刻計算部２０３とを備えている。本実施の形態では、このうち、スケジュール生成部１０２と、システム時刻計算部１０３とは、仮想時刻配信装置１００に備えられている。また、仮想時計計算部２０３は、情報処理装置２００に備えられている。
【００３６】
スケジュール生成部１０２は、情報処理装置２００がアプリケーション２０４を倍速で実行する際の倍速値を時系列に沿って区間毎に設定した、スケジュールを生成する。
【００３７】
また、システム時刻計算部１０３は、スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の倍速値に基づいて、情報処理装置２００におけるアプリケーション２０４実行時のシステム時刻を、倍速値適用開始システム時刻として計算する。
【００３８】
仮想時刻計算部２０３は、テストデータを用いて倍速で実行されているアプリケーション２０４が、時刻を要求した場合に、開始時刻毎に計算された倍速値適用開始システム時刻の中から、要求時点の直前の倍速値適用開始システム時刻を特定する。また、仮想時刻計算部２０３は、特定した倍速値適用開始システム時刻と、その区間に設定された倍速値とを用いて、アプリケーション２０４に返却する時刻を計算する。
【００３９】
このように、本実施の形態では、区間毎に倍速値が設定されたスケジュールが自動的に設定されるので、人手によることなくアプリケーション２０４のテストを実行することができる。また、アプリケーション２０４に返却される時間は、全て、スケジュールに設定された区間に基づいて計算されているので、テスト中に倍速値が変わっても、テスト中の時刻がシステム時刻の前の時刻に戻ることはない。従って、本実施の形態によれば、アプリケーション２０４のテストを倍速で行なう際の不具合の発生を抑制できる。
【００４０】
続いて、図２及び図３を用いて、本実施の形態における仮想時刻配信システム及び仮想時刻配信装置の構成について図１を用いて説明する。図２は、本発明の実施の形態における仮想時刻配信システム及び仮想時刻配信装置の構成を具体的に示す図である。
【００４１】
図２に示すように、本実施の形態では、仮想時刻配信システム３００は、上述したスケジュール生成部１０２、システム時刻計算部１０３、及び仮想時刻計算部２０３に加えて、負荷情報格納部１０１と、情報配信部１０４と、情報受信部２０１と、情報格納部２０２とを備えている。
【００４２】
また、本実施の形態では、負荷情報格納部１０１と情報配信部１０４とは、仮想時刻配信装置１００に備えられ、情報受信部２０１と情報格納部２０２とは、アプリケーション２０４を実行する情報処理装置２００に備えられている。
【００４３】
また、以降においては、情報処理装置２００が１つである場合について説明しているが、本実施の形態では、情報処理装置２００は複数であっても良い。更に、情報処理装置２００は、アプリケーション２０４を実行するアプリケーションサーバであり、仮想時刻配信装置１００とネットワークを介して繋がっている。以降においては、情報処理装置２００は、「アプリケーションサーバ２００」と表記する。
【００４４】
加えて、本実施の形態では、仮想時刻配信装置１００の持つシステム時刻と、アプリケーションサーバ２００の持つシステム時刻とは、ネットワークタイムプロトコルによって同期されているものとする。従って、仮想時刻配信システム３００が処理を開始した時刻、即ち、テスターが仮想時刻開始コマンドを実行した時刻は、情報処理装置のシステム起動時のシステム時刻（基準システム時刻）と一致することになる。
【００４５】
更に、本実施の形態では、仮想時刻配信装置１００は、アプリケーションサーバ２００内に構築されていても良い。この場合は、アプリケーションサーバ２００が、各部を備えることになる。続いて、各部について具体的に説明する。
【００４６】
まず、図２に示すように、本実施の形態では、仮想時刻配信装置１００は、負荷情報格納部１０１と、スケジュール生成部１０２と、システム時刻計算部１０３と、情報配信部１０４とを備えている。
【００４７】
負荷情報格納部１０１は、負荷情報を格納している。負荷情報は、図３に示すように、アプリケーションサーバ２００がテストデータと同一のデータを用いてアプリケーション２０４を実行した時の時間毎の負荷を特定する情報である。図３は、本発明の実施の形態で利用される負荷情報の一例を示す図である。
【００４８】
図３の例では、負荷情報には、アプリケーション２０４が実行された日時が登録されている。また、負荷情報には、特定の時間毎（図３の例では１時間）のＣＰＵ負荷率の平均値も登録されている。
【００４９】
スケジュール生成部１０２は、本実施の形態では、負荷情報格納部１０１から負荷情報を取得し、取得した負荷情報に基づいて、スケジュールを生成する。
【００５０】
システム時刻計算部１０３は、本実施の形態では、スケジュール生成部１０２が生成したスケジュールを受け取り、受け取ったスケジュールに設定されている区間の開始時刻毎に、倍速値適用開始システム時刻を計算する。
【００５１】
具体的には、システム時刻計算部１０３は、スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の１つ前の開始時刻から当該開始時刻までの時間を求め、求めた時間に、当該開始時刻の前の区間の倍速値の逆数を乗算する。そして、システム時刻計算部１０３は、当該開始時刻の１つ前の開始時刻に対応する倍速値適用開始システム時刻に、乗算によって得られた時間を加算し、加算によって得られた時刻を、当該開始時刻に対応する、倍速値適用開始システム時刻とする。
【００５２】
なお、当該開始時刻の１つ前の開始時刻が、スケジュールの開始点である場合は、１つ前の開始時刻に対応する倍速値適用開始システム時刻は、テスターが仮想時刻開始コマンドを実行した時刻、即ち、上述した基準システム時刻となる。
【００５３】
また、システム時刻計算部１０３は、計算した開始時刻毎の倍速値適用開始システム時刻とスケジュールとを、仮想時刻設定情報として情報配信部１０４に出力する。情報配信部１０４は、システム時刻計算部１０３から出力されてきた仮想時刻設定情報をアプリケーションサーバ２００に配信する。
【００５４】
アプリケーションサーバ２００は、テストデータを用いてアプリケーション２０４を実行する。このとき、アプリケーションが時刻（仮想時刻）を要求すると、アプリケーションサーバ２００は、仮想時刻を返却する。図２に示すように、本実施の形態では、情報処理装置２００は、情報受信部２０１と、情報格納部２０２と、仮想時刻計算部２０３とを備えている。
【００５５】
情報受信部２０１は、情報配信部１０４から配信されてきた仮想時刻設定情報を受信し、受信した仮想時刻設定情報を、情報格納部２０２に格納する。
【００５６】
仮想時刻計算部２０３は、テストデータを入力データとして実行されているアプリケーション２０４が時刻（仮想時刻）を要求すると、先ず、情報格納部２０２から仮想時刻設定情報を取得する。更に、仮想時刻計算部２０３は、仮想時刻設定情報に含まれる倍速値的用開始システム時刻の中から、要求時のシステム時刻の直前となる倍速値的用開始システム時刻を特定する。
【００５７】
続いて、仮想時刻計算部２０３は、特定した倍速値適用開始システム時刻から要求時のシステム時刻までの経過時間に、特定した倍速値適用開始システム時刻の区間に設定された倍速値を乗算する。そして、仮想時刻計算部２０３は、特定した倍速値適用開始システム時刻に対応する開始時刻（仮想時間）に、乗算して得られた時間を加算し、加算によって得られた仮想時刻を、アプリケーション２０４に返却する。
【００５８】
このように、仮想時刻計算部２０３は、テストデータを入力データとして実行されているアプリケーション２０４が時刻（仮想時刻）を要求すると、現在の仮想時刻を計算してアプリケーション２０４に返却する。また、本実施の形態では、情報格納部２０２と仮想時刻計算部２０３とは、アプリケーションサーバ２００上に配置されている。このため、アプリケーション２０４から仮想時刻の要求がある度に、アプリケーションサーバ２００は、仮想時刻配信装置１００と通信する必要がないため、テスト時におけるアプリケーションサーバ２００の処理負担が軽減される。
【００５９】
［システム動作］
次に、本発明の実施の形態における仮想時刻配信システム３００及び仮想時刻配信装置１００の動作について図４〜図９を用いて説明する。以下の説明においては、適宜図１を参酌する。また、本実施の形態では、仮想時刻配信システム３００を動作させることによって、仮想時刻配信方法が実施される。よって、本実施の形態における仮想時刻配信方法の説明は、以下の仮想時刻配信システムの動作説明に代える。
【００６０】
まず、図４を用いて、仮想時刻配信装置１００で行なわれる処理について説明する。図４は、本発明の実施の形態における仮想時刻配信システムでの仮想時刻配信装置の動作を示すフロー図である。また、前提として、負荷情報格納部１１０は、図３に示した負荷情報を外部から受け取って、これを格納しているとする。
【００６１】
まず、ユーザであるテスターが、仮想時刻配信装置１００において、仮想時刻開始コマンドを実行する。これにより、図４に示すように、スケジュール生成部１０２は、負荷情報格納部１０１から負荷情報（図３参照）を取得し、取得した負荷情報に基づいて、スケジュールを生成する（ステップＡ１）。
【００６２】
次に、システム時刻計算部１０３は、スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の倍速値に基づいて、情報処理装置２００におけるアプリケーション２０４実行時のシステム時刻を、倍速値適用開始システム時刻として計算する（ステップＡ２）。また、システム時刻計算部１０３は、計算した開始時刻毎の倍速値適用開始システム時刻とスケジュールとを、仮想時刻設定情報として情報配信部１０４に出力する。
【００６３】
情報配信部１０４は、システム時刻計算部１０３から出力されてきた仮想時刻設定情報をアプリケーションサーバ２００に配信する（ステップＡ３）。
【００６４】
続いて、図５を用いて、アプリケーションサーバ２００で行なわれる処理について説明する。図５は、本発明の実施の形態における仮想時刻配信システムでの情報処理装置の動作を示すフロー図である。また、前提として、情報受信部２０１が、情報配信部１０４から配信されてきた仮想時刻設定情報を受信し、受信した仮想時刻設定情報を情報格納部２０２に格納しているとする。
【００６５】
図５に示すように、仮想時刻計算部２０３は、まず、テストデータを入力データとして実行されているアプリケーション２０４が時刻（仮想時刻）を要求しているかどうかを判定する（ステップＢ１）。
【００６６】
ステップＢ１の判定の結果、アプリケーション２０４が時刻を要求していない場合は、仮想時刻計算部２０３は待機状態となる。一方、ステップＢ１の判定の結果、アプリケーション２０４が時刻を要求している場合は、仮想時刻計算部２０３は、アプリケーションサーバ２００のＯＳからシステム時刻を取得する（ステップＢ２）。このとき取得したシステム時刻が、アプリケーション２０４の要求時のシステム時刻となる。
【００６７】
次に、仮想時刻計算部２０３は、情報格納部２０２から仮想時刻設定情報を取得し、仮想時刻設定情報に含まれる倍速値的用開始システム時刻の中から、要求時のシステム時刻の直前となる倍速値的用開始システム時刻を特定する（ステップＢ３）。
【００６８】
次に、仮想時刻計算部２０３は、ステップＢ３で特定した倍速値適用開始システム時刻から要求時のシステム時刻までの経過時間に、特定した倍速値適用開始システム時刻の区間に設定された倍速値を乗算する。そして、仮想時刻計算部２０３は、特定した倍速値適用開始システム時刻に対応する開始時刻（仮想時間）に、乗算して得られた時間を加算して、仮想時刻を計算する（ステップＢ４）。
【００６９】
次に、仮想時刻計算部２０３は、ステップＢ４で計算した仮想時刻を、アプリケーション２０４に返却する（ステップＢ５）。その後、仮想時刻計算部２０３は、再度ステップＢ１を実行する。ステップＢ１〜Ｂ５は、アプリケーション２０４が終了するまで、繰り返し実行される。
【００７０】
［具体例］
続いて、仮想時刻配信システム３００の動作の具体例について、図６〜図９を用いて説明する。まず、テスターが、２０１６年１１月９日１０：００に仮想時刻開始コマンドを実行したものとする。ユーザが仮想時刻開始コマンドを実行した時刻が、基準システム時刻となる。
【００７１】
［ステップＡ１］
スケジュール生成部１０２では、図３に示された負荷情報の最初の時刻（２０１６/１１/８の１０：００）を基準仮想時刻として、図６に示す倍速値変更スケジュールを生成する。図６は、本発明の実施の形態において生成されるスケジュールの一例を示す図である。
【００７２】
具体的には、スケジュール生成部１０２は、まず、図３に示した負荷情報に含まれる各時刻を仮想時刻に設定し、各ＣＰＵ負荷率の区切りとなる仮想時刻（１０：００、１１：００）で倍速値が変更されるようにスケジュールを生成する。従って、各ＣＰＵ負荷率の区切りとなる仮想時刻が、区間の開始時刻となる。また、開始時刻は、倍速値の適用が開始される時刻であり、「倍速値的用開始時刻」とも表記する。
【００７３】
例えば、図３の例では、１０：００〜１１：００において、ＣＰＵ負荷率（使用率）は４０%であるので、ＣＰＵ負荷率の閾値が８０%であるとすると、スケジュール生成部１０２は、１０：００時点の倍速値を、下記の数１に基づいて２倍と算出する。従って、スケジュール生成部１０２は、図６に示すように、倍速値的用開始時刻１０：００の倍速値を２倍に設定する。
【００７４】
【数１】
2018159985.tif 000003
【００７５】
一方、図３の例において、１１：００〜１２：００において、ＣＰＵ負荷率は９０%であり、既に閾値を超えてしまっているため、スケジュール生成部１０２は、図６に示すように、倍速値的用開始時刻１１：００の倍速値を１倍に設定する。
【００７６】
なお、上記の説明は、簡単のためアプリケーションサーバ２００が１つの場合を例に挙げているが、本実施の形態では、アプリケーションサーバ２００が複数台であっても良い。この場合、アプリケーションサーバ毎にＣＰＵ負荷率が異なるため、スケジュール生成部１０２は、例えば、時間帯毎に、ＣＰＵ負荷率が最も高いアプリケーションサーバ２００に合わせて倍速値を設定する。
【００７７】
［ステップＡ２〜Ａ３］
システム時刻計算部１０３は、図６に示した倍速値変更情報から、各倍速値適用開始時刻に対応する、倍速値適用開始システム時刻を計算する。具体的には、システム時刻計算部１０３は、各倍速値適用開始時刻に対する倍速値適用開始システム時刻を、下記の数２に示す漸化式を用いて算出する。
【００７８】
ここで、Ｓｎをｎ番目の倍速値適用開始時刻、ＴｎをＳｎに対応するｎ番目の倍速値適用開始システム時刻、Ｆｎをn番目の倍速値適用開始時刻後の倍速値とする。また、Ｔ０を基準システム時刻、Ｓ０を基準仮想時刻、Ｆ０を１とする。なお、ｎ＞０とする。
【００７９】
【数２】
2018159985.tif 000004
【００８０】
上記数２から分かるように、ｎ番目の倍速値適用開始時刻と（ｎ−１）番目の倍速値適用開始時刻との差から、システム時刻における経過時時間が計算され、各倍速値適用開始時刻が計算される。上記数２を用いた計算処理について図７を用いて説明する。図７は、本発明の実施の形態におけるシステム時刻計算部の処理を説明する図である。
【００８１】
図７において、テストデータにおける仮想時刻は２０１６年１１月８日の時刻を表しており、システム時刻は２０１６年１１月９日の時刻をそれぞれ表している。ここで、倍速値変更情報において、倍速値適用開始時刻は２つ存在するので、システム時刻計算部１０３は、ｎ＝１、２のそれぞれの場合について、上記数１を用いて、倍速値適用開始システム時刻を計算する。
【００８２】
まず、ｎ＝１の場合、上記数１を用いた計算は、以下の数３の通りとなる。以下では、Ｈ、Ｍそれぞれ時分を表す。
【００８３】
【数３】
2018159985.tif 000005
【００８４】
次に、ｎ＝２の場合、上記数１を用いた計算は、以下の数４の通りとなる。
【００８５】
【数４】
2018159985.tif 000006
【００８６】
システム時刻計算部１０３は、上記数３及び図４の結果に基づいて、図８に示す仮想時刻設定情報を生成する。図８は、本発明の実施の形態において生成される仮想時刻設定情報の一例を示す図である。情報配信部１０４は、図８に示す仮想時刻設定情報をアプリケーションサーバ２００に配信する
【００８７】
［ステップＢ１〜Ｂ５］
情報受信部２０１は、受信した仮想時刻設定情報（図８参照）を情報格納部２０２に格納する。仮想時刻計算部２０３は、アプリケーション２０４から時刻（仮想時刻）を要求されると、下記の数５及び図６を用いて、アプリケーションに返却する仮想時刻を計算する。
【００８８】
具体的には、本実施の形態では、仮想時刻計算部２０３は、ＡＰＩ（Application Program Interface）をアプリケーション２０４に提供している。このため、アプリケーション２０４は、提供されているＡＰＩを呼び出すことで、仮想時刻計算部２０３に仮想時刻を要求する。
【００８９】
ここで、Ｓｃを現在の仮想時刻、Ｔｃを現在のシステム時刻とする。また、下記の数５を満たすｎを元とする集合をＸとする。
【００９０】
【数５】
2018159985.tif 000007
【００９１】
そして、Ｘ＝φが成立するとき、下記の数６が成立し、Ｘ＝φが成立しないとき、ｎ＝ｍａｘ（Ｘ）とすると、下記の数７が成立する。
【００９２】
【数６】
2018159985.tif 000008
【００９３】
【数７】
2018159985.tif 000009
【００９４】
上記数７において、Ｓｎは、（ｎ−１）番目のペアまでの、倍速された時刻を含んでいるため、倍速値が変わっても仮想時刻が前の時刻に戻ることはない。
【００９５】
図９は、本発明の実施の形態における仮想時刻計算部の処理を説明する図である。図９の例では、システム時刻が２０１６年１１月９日１１時３０分であるときに、アプリケーション２０４が、仮想時刻計算部２０３に時刻を要求した場合を示している。このとき、仮想時刻計算部２０３は、上記数７を用いて仮想時刻を計算する。計算結果は、下記の数８の通りである。
【００９６】
【数８】
2018159985.tif 000010
【００９７】
従って、図９の例では、仮想時刻計算部２０３は、仮想時刻として、２０１６年１１月８日１１時３０分をアプリケーション２０４に返却する。
【００９８】
以上のように、本実施の形態によれば、人手によって、基準仮想時刻を指定することなく、アプリケーションのテストを倍速で行なうことが可能である。また、テストの際に、倍速値を変更した場合であっても、仮想時刻が前の時刻に戻ることがなく、常に一貫性のある時刻が提供されるので、不具合の発生が回避される。更に、テスト時の倍速値は、過去にアプリケーション実行した際に得られたＣＰＵの負荷情報に基づいて、システムによって最適化されるので、テストの効率化も図られている。
【００９９】
［変形例］
本実施の形態では、仮想時刻計算部２０３は、ＡＰＩをアプリケーション２０４に提供する態様の他に、ＯＳが提供する時刻取得用のインターフェイス（ＵＮＩＸ（登録商標）システムにおけるシステムコールなど）をフックするライブラリを提供する態様であってもよい。この態様では、ライブラリには、仮想時刻計算部２０３で行なわれる処理が埋め込まれる。また、この態様を用いる場合は、既存のアプリケーションに対して、本実施の形態における仮想時刻配信システムを適用できるため、汎用性が高くなる。
【０１００】
また、本実施の形態における仮想時刻配信システムでは、負荷情報格納部１０１を不揮発性記憶装置によって構築することで、仮想時刻配信装置１００が再起動された場合にも、同様の設定情報をアプリケーションサーバ２００に配信可能となる。また、情報格納部２０２を不揮発性記憶装置によって構築することで、アプリケーションサーバ２００が再起動された場合にも、同様の設定で、本実施の形態における仮想時刻配信システムを動作させることができる。
【０１０１】
［プログラム］
本実施の形態における第１のプログラムは、コンピュータに、図４に示すステップＡ１〜Ａ３を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における仮想時刻配信装置を実現することができる。この場合、コンピュータのＣＰＵ（Central Processing Unit）は、スケジュール生成部１０２、システム時刻計算部１０３、及び情報配信部１０４として機能し、処理を行なう。また、本実施の形態では、負荷情報格納部１０１は、コンピュータに備えられたハードディスク等の記憶装置によって実現できる。
【０１０２】
また、本実施の形態における第１のプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、スケジュール生成部１０２、システム時刻計算部１０３、及び情報配信部１０４のいずれかとして機能しても良い。また、負荷情報格納部１０１は、本実施の形態における第１のプログラムを実行するコンピュータとは別のコンピュータ上に構築されていても良い。
また、本実施の形態における第２のプログラムは、コンピュータに、図５に示すステップＢ１〜Ｂ５を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における仮想時刻計算部２０３を実現することができる。この場合、コンピュータのＣＰＵ（Central Processing Unit）は、仮想時刻計算部２０３として機能し、処理を行なう。なお、ここでいうコンピュータとしては、アプリケーションサーバ２００が挙げられる。
【０１０３】
また、本実施の形態における仮想時刻配信装置１００は、上述したようにアプリケーションサーバ２００に構築することもでき、この場合においては、第１のプログラム及び第２のプログラムは共に、アプリケーションサーバ２００にインストールされて、実行されることになる。
【０１０４】
［物理構成］
ここで、本実施の形態における第１及び第２のプログラムを実行するコンピュータについて図１０を用いて説明する。図１０は、本発明の実施の形態における仮想時刻配信装置及び情報処理装置を実現するコンピュータの一例を示すブロック図である。
【０１０５】
図１０に示すように、コンピュータ１１０は、ＣＰＵ１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。
【０１０６】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであっても良い。
【０１０７】
また、記憶装置１１３の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウスといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。
【０１０８】
データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ１１０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と、他のコンピュータとの間のデータ伝送を仲介する。
【０１０９】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記録媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記録媒体が挙げられる。
【０１１０】
なお、本実施の形態における仮想時刻配信装置１００は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、仮想時刻配信装置１００は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【０１１１】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記２０）によって表現することができるが、以下の記載に限定されるものではない。
【０１１２】
（付記１）
テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するためのシステムであって、
前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、スケジュール生成部と、
前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、システム時刻計算部と、
テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、仮想時刻計算部と、
を備えていることを特徴とする仮想時刻配信システム。
【０１１３】
（付記２）
前記スケジュール生成部が、前記情報処理装置が前記テストデータと同一のデータを用いて前記アプリケーションプログラムを実行した時の時間毎の負荷を特定する、負荷情報を取得し、前記負荷情報に基づいて、前記スケジュールを生成する、
付記１に記載の仮想時刻配信システム。
【０１１４】
（付記３）
前記システム時刻計算部が、
前記スケジュールに設定されている区間の開始時刻毎に、
当該開始時刻の１つ前の開始時刻から当該開始時刻までの時間を求め、求めた時間に、当該開始時刻の前の区間の前記倍速値の逆数を乗算し、そして、
当該開始時刻の１つ前の開始時刻に対応する前記システム時刻に、乗算によって得られた時間を加算し、加算によって得られた時刻を、当該開始時刻に対応する、前記倍速値適用開始システム時刻とする、
付記１または２に記載の仮想時刻配信システム。
【０１１５】
（付記４）
前記仮想時刻計算部は、テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
特定した倍速値適用開始システム時刻から要求時のシステム時刻までの経過時間に、特定した倍速値適用開始システム時刻の区間に設定された前記倍速値を乗算し、そして、
特定した倍速値適用開始システム時刻に対応する前記開始時刻に、乗算して得られた時間を加算し、加算によって得られた時刻を、前記アプリケーションプログラムに返却する、
付記１〜３のいずれかに記載の仮想時刻配信システム。
【０１１６】
（付記５）
テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するための装置であって、
前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、スケジュール生成部と、
前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、システム時刻計算部と、
を備えていることを特徴とする仮想時刻配信装置。
【０１１７】
（付記６）
前記スケジュール生成部が、前記情報処理装置が前記テストデータと同一のデータを用いて前記アプリケーションプログラムを実行した時の時間毎の負荷を特定する、負荷情報を取得し、前記負荷情報に基づいて、前記スケジュールを生成する、
付記５に記載の仮想時刻配信装置。
【０１１８】
（付記７）
前記システム時刻計算部が、
前記スケジュールに設定されている区間の開始時刻毎に、
当該開始時刻の１つ前の開始時刻から当該開始時刻までの時間を求め、求めた時間に、当該開始時刻の前の区間の前記倍速値の逆数を乗算し、そして、
当該開始時刻の１つ前の開始時刻に対応する前記システム時刻に、乗算によって得られた時間を加算し、加算によって得られた時刻を、当該開始時刻に対応する、前記倍速値適用開始システム時刻とする、
付記５または６に記載の仮想時刻配信装置。
【０１１９】
（付記８）
テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、仮想時刻計算部を更に備えている、
付記５〜７のいずれかに記載の仮想時刻配信装置。
【０１２０】
（付記９）
前記仮想時刻計算部は、テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
特定した倍速値適用開始システム時刻から要求時のシステム時刻までの経過時間に、特定した倍速値適用開始システム時刻の区間に設定された前記倍速値を乗算し、そして、
特定した倍速値適用開始システム時刻に対応する前記開始時刻に、乗算して得られた時間を加算し、加算によって得られた時刻を、前記アプリケーションプログラムに返却する、
付記８に記載の仮想時刻配信装置。
【０１２１】
（付記１０）
テストデータを用いてアプリケーションプログラムを実行する情報処理装置と、前記情報処理装置に対して時刻を配信するための仮想時刻配信装置とを用いた方法であって、
（ａ）前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、ステップと、
（ｂ）前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、ステップと、
（ｃ）テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、ステップと、
を有することを特徴とする仮想時刻配信方法。
【０１２２】
（付記１１）
前記（ａ）のステップにおいて、前記情報処理装置が前記テストデータと同一のデータを用いて前記アプリケーションプログラムを実行した時の時間毎の負荷を特定する、負荷情報を取得し、前記負荷情報に基づいて、前記スケジュールを生成する、
付記１０に記載の仮想時刻配信方法。
【０１２３】
（付記１２）
前記（ｂ）のステップにおいて、
前記スケジュールに設定されている区間の開始時刻毎に、
当該開始時刻の１つ前の開始時刻から当該開始時刻までの時間を求め、求めた時間に、当該開始時刻の前の区間の前記倍速値の逆数を乗算し、そして、
当該開始時刻の１つ前の開始時刻に対応する前記システム時刻に、乗算によって得られた時間を加算し、加算によって得られた時刻を、当該開始時刻に対応する、前記倍速値適用開始システム時刻とする、
付記１０または１１に記載の仮想時刻配信方法。
【０１２４】
（付記１３）
前記（ｃ）のステップにおいて、テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
特定した倍速値適用開始システム時刻から要求時のシステム時刻までの経過時間に、特定した倍速値適用開始システム時刻の区間に設定された前記倍速値を乗算し、そして、
特定した倍速値適用開始システム時刻に対応する前記開始時刻に、乗算して得られた時間を加算し、加算によって得られた時刻を、前記アプリケーションプログラムに返却する、
付記１０〜１２のいずれかに記載の仮想時刻配信方法。
【０１２５】
（付記１４）
コンピュータによって、テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して時刻を配信するためのプログラムであって、
前記コンピュータに、
（ａ）前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールを生成する、ステップと、
（ｂ）前記スケジュールに設定されている区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻を、倍速値適用開始システム時刻として計算する、ステップと、
を実行させるプログラム。
【０１２６】
（付記１５）
前記（ａ）のステップにおいて、前記情報処理装置が前記テストデータと同一のデータを用いて前記アプリケーションプログラムを実行した時の時間毎の負荷を特定する、負荷情報を取得し、前記負荷情報に基づいて、前記スケジュールを生成する、
付記１４に記載のプログラム。
【０１２７】
（付記１６）
前記（ｂ）のステップにおいて、
前記スケジュールに設定されている区間の開始時刻毎に、
当該開始時刻の１つ前の開始時刻から当該開始時刻までの時間を求め、求めた時間に、当該開始時刻の前の区間の前記倍速値の逆数を乗算し、そして、
当該開始時刻の１つ前の開始時刻に対応する前記システム時刻に、乗算によって得られた時間を加算し、加算によって得られた時刻を、当該開始時刻に対応する、前記倍速値適用開始システム時刻とする、
付記１４または１５に記載のプログラム。
【０１２８】
（付記１７）
前記コンピュータに、
（ｃ）テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、ステップ更に実行させる、
付記１４〜１６のいずれかに記載のプログラム。
【０１２９】
（付記１８）
前記（ｃ）のステップにおいて、
テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
特定した倍速値適用開始システム時刻から要求時のシステム時刻までの経過時間に、特定した倍速値適用開始システム時刻の区間に設定された前記倍速値を乗算し、そして、
特定した倍速値適用開始システム時刻に対応する前記開始時刻に、乗算して得られた時間を加算し、加算によって得られた時刻を、前記アプリケーションプログラムに返却する、
付記１７に記載のプログラム。
【０１３０】
（付記１９）
テストデータを用いてアプリケーションプログラムを実行する情報処理装置に対して、
前記情報処理装置が前記アプリケーションプログラムを倍速で実行する際の倍速値を時系列に沿って区間毎に設定したスケジュールにおける、区間の開始時刻毎に、当該開始時刻の前の区間の前記倍速値に基づいて、前記情報処理装置における前記アプリケーションプログラム実行時のシステム時刻が、倍速値適用開始システム時刻として計算されているときに、
前記情報処理装置に、
（ａ）テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
前記開始時刻毎に計算された前記倍速値適用開始システム時刻の中から、要求時のシステム時刻の直前の倍速値適用開始システム時刻を特定し、特定した倍速値適用開始システム時刻と、その区間に設定された前記倍速値とを用いて、前記アプリケーションプログラムに返却する時刻を計算する、ステップを、
実行させるプログラム。
【０１３１】
（付記２０）
前記（ａ）のステップにおいて、テストデータを用いて実行されている前記アプリケーションプログラムが、時刻を要求した場合に、
特定した倍速値適用開始システム時刻から要求時のシステム時刻までの経過時間に、特定した倍速値適用開始システム時刻の区間に設定された前記倍速値を乗算し、そして、
特定した倍速値適用開始システム時刻に対応する前記開始時刻に、乗算して得られた時間を加算し、加算によって得られた時刻を、前記アプリケーションプログラムに返却する、
付記１９に記載のプログラム。
【産業上の利用可能性】
【０１３２】
以上のように、本発明によれば、人手によることなく、ソフトウェアテストの効率化を図ることができる。本発明は、航空管制システムなど、時刻情報に依存した処理を含み、ソフトウェアテストにかかる時間が長くなりやすいシステムに有用である。具体的には、このようなシステムとしては、空港での航空機の離発着予定および飛行中の航空機の位置情報に基づき、着陸時の混雑回避のために、個々の航空機の離発着時刻を制御するシステムが挙げられる。
【符号の説明】
【０１３３】
１０１  負荷情報格納部
１０２  スケジュール生成部
１０３  システム時刻計算部
１０４  情報配信部
１１０  コンピュータ
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
２００  情報処理装置（アプリケーションサーバ）
２０１  情報受信部
２０２  情報格納部
２０３  仮想時刻計算部
２０４  アプリケーションプログラム
３００  仮想時刻配信システム
【図１】
2018159985.tif 000011
【図２】
2018159985.tif 000012
【図３】
2018159985.tif 000013
【図４】
2018159985.tif 000014
【図５】
2018159985.tif 000015
【図６】
2018159985.tif 000016
【図７】
2018159985.tif 000017
【図８】
2018159985.tif 000018
【図９】
2018159985.tif 000019
【図１０】
2018159985.tif 000020
【図１１】
2018159985.tif 000021
【図１２】
2018159985.tif 000022