(57)【要約】【課題】  複数のコンピュータ上で稼働する対話型アプリケーションに対して、オペレータが行った操作のシミュレーションを実現する。【解決手段】  複数のコンピュータ上で稼働する対話型アプリケーションに対し、オペレータが行ったマウス、キーボードなどの操作内容を、そのイベントに基づいて操作情報として取得する。この際、共通のデータベースへのアクセスなど、他のコンピュータからの操作を排除して行われた操作に対しては、排他条件下を示す情報を付加しておく。アプリケーションに対するシミュレーションは、排他条件を示す情報を踏まえて、それぞれの操作情報を実行する順序を表すシミュレート計画情報を作成した上で実行する。  こうすることにより、排他条件を考慮して操作情報を実行させることができ、複数のコンピュータからの操作が競合することを回避して、適切なシミュレーションを実現することができる。【選択図】  図４
2014142745.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークで接続された複数のコンピュータ上で稼働する対話型アプリケーションに対して、オペレータによってなされた操作を再現し、該対話型アプリケーションの動作をテストするアプリケーション・テストシステムであって、
前記各コンピュータで、前記対話型アプリケーションに対してオペレータによって行われた操作を、操作ごとに再現可能な操作情報として逐次抽出するロギング部と、
前記ロギング部によって抽出された前記操作情報を記憶する操作ログデータベース記憶部と、
前記操作情報に基づいて、前記対話型アプリケーションに対して前記オペレータによって行われた操作を再現するシミュレーション部とを備え、
前記操作情報は、他のコンピュータからの操作がなされないという排他条件下で実行されるべき操作に対して、該排他条件を含む情報であるアプリケーション・テストシステム。
【請求項２】
請求項１記載のアプリケーション・テストシステムであって、
さらに、前記操作情報に基づき、前記排他条件に反する操作を避けるよう、前記各操作の実行順序を決定したシミュレート計画情報を生成するシミュレート計画生成部を備え、
前記シミュレーション部は、前記シミュレート計画情報に基づいて、前記再現を行うアプリケーション・テストシステム。
【請求項３】
請求項１または２記載のアプリケーション・テストシステムであって、
前記シミュレーション部は、
前記操作ログデータベース記憶部に記憶された操作情報のうち、再現の対象とすべき操作情報を絞り込むための選択条件を受け付け、
該選択条件に合致する操作情報を前記操作ログデータベース記憶部から抽出し、
該抽出された操作情報に基づいて前記再現を行うアプリケーション・テストシステム。
【請求項４】
請求項１〜３いずれか記載のアプリケーション・テストシステムであって、
前記対話型アプリケーションは、操作対象となるべき所定の対象データベースに対する操作を行うものであり、
前記操作情報は、前記対象データベースに記憶されたデータのうち、該排他条件下での操作対象となったデータを特定する情報を、前記排他条件に関連づけて記憶しているアプリケーション・テストシステム。
【請求項５】
ロギング部と、操作ログデータベースと、シミュレーション部とを備えたアプリケーション・テストシステムで、ネットワークで接続された複数のコンピュータ上で稼働する対話型アプリケーションに対して、オペレータによってなされた操作を再現し、該対話型アプリケーションの動作をテストするアプリケーション・テスト方法であって、
前記ロギング部が、前記各コンピュータで、前記対話型アプリケーションに対してオペレータによって行われた操作を、操作ごとに再現可能な操作情報として逐次抽出するステップと、
前記シミュレーション部が、抽出された前記操作情報を蓄積した前記操作ログデータベースから、前記操作情報に基づいて、前記対話型アプリケーションに対して前記オペレータによって行われた操作を再現するステップと
を実行し、
前記操作情報は、他のコンピュータからの操作がなされないという排他条件下で実行されるべき操作に対して、該排他条件を含む情報であるアプリケーション・テスト方法。
【請求項６】
ネットワークで接続された複数のコンピュータ上で稼働する対話型アプリケーションに対して、オペレータによってなされた操作を再現し、該対話型アプリケーションの動作をテストするための機能をコンピュータに実現させるコンピュータプログラムであって、
前記各コンピュータで、前記対話型アプリケーションに対してオペレータによって行われた操作を、操作ごとに再現可能な操作情報として逐次抽出する機能と、
前記抽出された操作情報を蓄積した操作ログデータベースから、前記操作情報に基づいて、前記対話型アプリケーションに対して前記オペレータによって行われた操作を再現する機能とをコンピュータに実現させるとともに、
前記操作情報は、他のコンピュータからの操作がなされないという排他条件下で実行されるべき操作に対して、該排他条件を含む情報であるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オペレータとの対話型アプリケーションにおいて、オペレータの操作をシミュレートし、アプリケーションの動作をテストするためのシステムに関する。
【背景技術】
【０００２】
コンピュータ上で稼働する種々のアプリケーションを開発する際には、正常に動作するか否かのテストをする必要がある。アプリケーションを改修したときや、アプリケーションが稼働するオペレーションシステムを入れ替えたときなどにも、改修した部分が他の機能に影響を与えていないかテストをする必要がある。
かかるテストを自動で行う場合、オペレータの操作に応じて稼働する対話型のアプリケーションでは、オペレータの操作を再現する必要がある。
【０００３】
特許文献１、２は、次の通り、こうした操作の再現に関する技術を開示する。
特許文献１は、アプリケーションについて内部で発生される内部イベントおよび、キーボード、マウスなどの入力に応じて発生する外部イベントを、それぞれイベント単位で記憶させることによって、操作内容をリプレイするシステムを開示している。
特許文献２は、ＧＵＩを用いたアプリケ−ションにおいて、ＧＵＩに対する操作に基づいて発生したイベント情報を保持することによって、ＧＵＩの操作を自動的に再現するシステムを開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００８−５２９１１３号公報
【特許文献２】特開平７−８４７６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、近年、対話型アプリケーションの中には、複数のコンピュータ上で稼働し、それぞれオペレータが行った操作に基づいて一つの結果を得るものがある。例えば、複数のコンピュータで共有されるデータベースに対する操作を行い、これらによってデータベースを整備するためのアプリケーションなどが挙げられる。かかるアプリケーションの動作テストを行うためには、各コンピュータ上で行われた操作を再現するのみならず、複数のコンピュータで行われた操作のタイミングを相互に制御する必要もある。従来技術では、このように複数のコンピュータで行われた操作の再現については検討されていなかった。
【０００６】
本発明は、かかる課題を解決するものであり、複数のコンピュータで、対話型アプリケーションに対して行われた操作を再現することによって、その動作テストを実現することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、
ネットワークで接続された複数のコンピュータ上で稼働する対話型アプリケーションに対して、オペレータによってなされた操作を再現し、該対話型アプリケーションの動作をテストするアプリケーション・テストシステムであって、
前記各コンピュータで、前記対話型アプリケーションに対してオペレータによって行われた操作を、操作ごとに再現可能な操作情報として逐次抽出するロギング部と、
前記ロギング部によって抽出された前記操作情報を記憶する操作ログデータベース記憶部と、
前記操作情報に基づいて、前記対話型アプリケーションに対して前記オペレータによって行われた操作を再現するシミュレーション部とを備え、
前記操作情報は、他のコンピュータからの操作がなされないという排他条件下で実行されるべき操作に対して、該排他条件を含む情報であるアプリケーション・テストシステムとして構成することができる。
ロギング部、操作ログデータベース記憶部、シミュレーション部は、オペレータが操作を行う各コンピュータ及び対話型アプリケーションのテストを行う各コンピュータ上に設けても良い。また、これらのコンピュータとネットワークで接続されたサーバ上に設けても良い。また、ロギング部、シミュレーション部は、両者の機能を統合した一つのユニットとして構成することも可能である。
【０００８】
複数のコンピュータ上で対話型アプリケーションを実行する場合には、一つのコンピュータで操作が行われた後、他のコンピュータで操作が行われることがある。かかる場合には、操作を再現する際に、各コンピュータで行われた操作が競合しないよう、その操作を制御する必要がある。
本発明では、対話型アプリケーションに対し、オペレータによる操作を記憶した操作情報に基づき、操作を再現することができる。操作情報には、他のコンピュータからの操作を排除するための排他条件が含まれているため、一つのコンピュータで操作が行われているときに、他のコンピュータから競合する操作が行われることを回避できる。従って、複数のコンピュータ上で稼働する対話型アプリケーションのテストを実現することができる。
【０００９】
操作情報で記憶する対象となる操作としては、例えば、マウス、キーボードによる操作などが挙げられる。
操作情報は、種々の形式で抽出し、記憶しておくことができるが、対話型アプリケーションがイベントドリブン型である場合には、オペレータの操作に応じて発生するイベントを利用することが好ましい。
また、操作情報は、オペレータが操作したときと異なる動作環境下で対話型アプリケーションを動作させた場合でも、操作を再現可能な形式で生成することが好ましい。例えば、マウスでクリックした位置座標は、ディスプレイ上の座標値で記憶するのではなく、対話型アプリケーションが扱う論理座標系で記憶することが好ましい。
排他条件は、それぞれの操作ごとに排他条件下で行われるべきものか否かを表す情報を関連づける形式としてもよい。また、操作とは別の情報として、排他条件のオン・オフを表す情報を記憶するようにしてもよい。例えば、排他条件オン、操作Ａ、操作Ｂ、排他条件オフのように、時系列に情報を記憶しておけば、操作Ａ、操作Ｂは、排他条件下で行われるべき操作であることを特定することができる。
排他条件は、オペレータによって操作が行われているコンピュータ以外の全コンピュータからの操作を拒否する情報としてもよいし、一部の特定のコンピュータからの操作を拒否する情報としてもよい。
【００１０】
本発明においては、
さらに、前記操作情報に基づき、前記排他条件に反する操作を避けるよう、前記各操作の実行順序を決定したシミュレート計画情報を生成するシミュレート計画生成部を備え、
前記シミュレーション部は、前記シミュレート計画情報に基づいて、前記再現を行うものとしてもよい。
こうすることにより、各コンピュータで行われる操作が競合することを回避するだけでなく、その操作順序まで再現することが可能となる。
シミュレート計画情報は、操作の再現を行う際に生成するものとしてもよいし、操作情報を記憶する際、または記憶し終えたときに生成するようにしてもよい。
シミュレート計画情報は、例えば、コンピュータごとに操作が実行された順に操作情報をソートする処理と、排他条件に基づいて、各コンピュータにおける操作情報の実行タイミングを調整する処理とを行うことによって生成することができる。例えば、あるコンピュータにおいて排他条件下で操作が行われているときには、その操作が終了し、排他条件が解除されるまで、他のコンピュータで行う操作を遅らせるようにすればよい。
このような操作情報の実行タイミングの制御は、種々の形式で行うことができる。例えば、それぞれの操作情報に対して、操作の開始時刻を指定するようにしてもよい。また、複数のコンピュータで行われる全ての操作情報に対して、実行する順序を一連の番号の形で指定してもよい。さらに、操作情報に対して、それが実行する際に満たすべき開始条件を付すようにしてもよい。他の排他条件下で行われるべき操作が終了していることを開始条件として設定すれば、それが付された操作は、排他条件が解除された後に行われることになる。
異なるコンピュータで行われた操作間の実行順序を正確に再現するための方法として、操作情報には、複数のコンピュータで行われた操作にわたって実行順序を表す情報を含めても良い。対話型アプリケーションがデータベースに対して操作するものである場合には、実行順序を表す情報として、データベースに施された操作を記憶するためのシステム変更番号などを用いることもできる。
【００１１】
本発明においては、
前記シミュレーション部は、
前記操作ログデータベース記憶部に記憶された操作情報のうち、再現の対象とすべき操作情報を絞り込むための選択条件を受け付け、
該選択条件に合致する操作情報を前記操作ログデータベース記憶部から抽出し、
該抽出された操作情報に基づいて前記再現を行うものとしてもよい。
【００１２】
こうすることにより、予めオペレータが行った多種多様な操作を操作情報として操作ログデータベース記憶部に記憶しておき、その中から、テストすべき操作情報を選択して再現することができる。
対話型アプリケーションのテストは、種々の機能・項目に対して実行する必要がある。また、テストで不具合が発見された場合には、対話型アプリケーションの修正を行い、不具合が発見された操作のみを対象に再テストを行う必要も生じる。上述の態様によれば、予めオペレータが行っておいた操作情報から、テストに必要なもののみを選択的に実行可能となるため、テストを効率的に実施することができる。
テストすべき操作情報を選択する条件としては、例えば、操作情報が記録された時刻、操作情報の内容、オペレータによって操作された対象データの範囲などを用いることができる。
【００１３】
本発明においては、
前記対話型アプリケーションは、操作対象となるべき所定の対象データベースに対する操作を行うものであり、
前記操作情報は、前記対象データベースに記憶されたデータのうち、該排他条件下での操作対象となったデータを特定する情報を、前記排他条件に関連づけて記憶するものとしてもよい。
こうすることにより、排他条件下で操作対象とされたデータを特定することができ、かかるデータに対して複数のコンピュータから競合する操作がなされることを回避することができる。
【００１４】
本発明は、その他、コンピュータによって対話型アプリケーションのテストを行うためのアプリケーション・テスト方法として構成してもよいし、かかるテストをコンピュータに実行させるためのコンピュータプログラムとして構成してもよい。また、かかるコンピュータプログラムを記録したコンピュータが読み取り可能な記録媒体として構成してもよい。記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置等、コンピュータが読取り可能な種々の媒体を利用できる。
【図面の簡単な説明】
【００１５】
【図１】アプリケーション・テストシステムの構成を示す説明図である。
【図２】シミュレーションの概要を示す説明図である。
【図３】操作記録、シミュレーションの実行概要を示す説明図である。
【図４】操作ログデータベースの構成を示す説明図である。
【図５】シミュレーション実行処理のフローチャートである。
【図６】シミュレーション計画情報生成処理のフローチャート（１）である。
【図７】シミュレーション計画情報生成処理のフローチャート（２）である。
【図８】シミュレーション計画情報生成処理のフローチャート（３）である。
【発明を実施するための形態】
【実施例１】
【００１６】
本発明の実施の形態について、以下に示す。本実施例では、複数台のコンピュータで共有されている地図データベースを、複数人のオペレータが協同して整備するための対話型アプリケーションを例にとって説明する。
【００１７】
Ａ．システム構成：
図１は、アプリケーション・テストシステムの構成を示す説明図である。本実施例のアプリケーション・テストシステムは、対話型アプリケーションに対して、オペレータが行った操作を記録し、再現することによって、アプリケーションの機能をテストするためのシステムである。以下、こうした操作の記録をロギング、操作の再現によるテストを、シミュレーションと呼ぶこともある。
このシステムは、対話型アプリケーションを稼働するための複数台のコンピュータ２０、およびサーバ１０をネットワークＮＥで接続して構成されている。図中で、コンピュータ２０に付した［１］、［２］の識別子は、説明の便宜上、ネットワークに接続された各コンピュータを識別するためのものである。
本実施例では、サーバ１０を備える構成を例示しているが、サーバ１０の一部または全部の機能を、いずれかのコンピュータ２０に組み込んでもよい。コンピュータ２０およびサーバ１０には、図示する各機能が用意されている。本実施例では、これらの機能は、コンピュータプログラムをインストールすることによってソフトウェア的に実現しているが、その一部または全部をハードウェア的に構築することもできる。
【００１８】
各コンピュータ２０に備えられたアプリケーション２１は、サーバ１０に備えられた地図データベース１２を対話型で整備するためのアプリケーションである。本実施例では、オペレータの操作等に応じて発生するイベントに基づいて稼働するイベントドリブン型のプログラムとしているが、フロー型のプログラムとしてもよい。
ロギング・シミュレート部２２は、２つの機能を奏する。第１の機能は、アプリケーション２１の稼働中にオペレータが行った操作に応じて発生したイベントを操作ログとして逐次記録する機能、即ちロギング機能である。操作ログの記録先は、本実施例では、後述する通りサーバ１０とした。第２の機能は、記録された操作ログに基づいて、シミュレーションを実行する機能である。シミュレーションは、サーバ１０に蓄積された操作ログを読込み、これをアプリケーション２１に実行させることによって実現される。
操作ログ保持部２３は、シミュレーションに際し、サーバ１０から読み込んだ操作ログを一時的に保持する機能を奏する。
【００１９】
サーバ１０には、地図データベース１２、操作ログデータベース１５、検証用データベース１６の３つのデータベースが用意されている。
地図データベース１２は、地図を描画するための地物等のポリゴンデータ、ラインデータなどを記録しており、コンピュータ２０にインストールされたアプリケーション２１での整備対象となるデータベースである。
操作ログデータベース１５は、ネットワークＮＥに接続された各コンピュータ２０で行われたアプリケーション２１に対する操作ログを逐次、記録する。
検証用データベース１６は、アプリケーション２１のシミュレーション結果を検証するためのデータベースである。即ち、アプリケーション２１のシミュレーションの正解とも言うべきデータ、シミュレーションによって生成された１または２以上のデータなどを記憶する。
【００２０】
地図データベース管理部１１は、地図データベース１１および検証用データベース１６へのデータ入出力を管理する。
操作ログ管理部１３は、操作ログデータベース１５へのデータ入出力を管理する。
シミュレート計画生成部１４は、操作ログデータベース１５に記録された操作ログに基づき、シミュレーションを実行する際に必要となるコンピュータ２０の台数、操作ログの実行順序などを指定するシミュレート計画情報を生成する。
比較検証部１７は、検証用データベース１６に記憶されたシミュレーション結果を、オペレータの操作によって生成された結果と比較することによって、アプリケーション２１の機能が正常か否かを検証する。
【００２１】
Ｂ．システム構成：
図２は、シミュレーションの概要を示す説明図である。シミュレーションは、以下の手順で実行する。
まず、コンピュータ２０において、オペレータがアプリケーション２１を稼働させ、整備前データベース１２（図１の地図データベース１２を意味する）に対して、地図データベースを整備するための操作を行う（ａ：オペレータによる操作）。ここで行うべき操作は、後にアプリケーション２１のシミュレーションを行う際の検証対象となる操作である。
上記においてオペレータが行った操作に基づいて発生したイベントは、操作ログデータベース１５に記録される（ｂ：操作ログ記録）。記録される操作としては、マウス、キーボードによる操作が挙げられる。また、各種ダイアログへの入力を操作の一つとして区別して記録してもよい。
また、オペレータの操作による結果は、整備後データベース１６Ａ（図１の検証用データベース１６を意味する）として記録される（ｃ：生成）。この整備後データベース１６Ａは、後にシミュレーションにおいて、アプリケーションが正常に稼働したか否かを検証するための正解と言うべき基準のデータとなる。
こうして、オペレータによる操作が終了すると、シミュレーションの準備が完了する。オペレータによる操作は、一つだけでなく、シミュレーションの対象となるべき複数の操作を行ってもよい。
【００２２】
次に以下の手順でシミュレーションを実行する。
コンピュータ２０上で検証アプリケーション２１Ａをシミュレーションモードで起動させる（ｄ：シミュレート起動）。検証アプリケーション２１Ａとは、オペレータが操作したアプリケーション２１に対して、その内容またはオペレーションシステムなどの動作環境を変化させたものであり、シミュレーションによって、動作の適否を検証すべき対象となっているアプリケーションを言う。検証アプリケーション２１Ａを動作させるコンピュータは、オペレータが操作したコンピュータと同一でもよいし、異なっていてもよい。
検証アプリケーション２１Ａが起動すると、ロギング・シミュレート部２２は、操作ログデータベース１５に記録された操作ログを読み出し（ｅ：操作ログ読出し）、これに基づいて、オペレータの操作を自動再生する（ｆ：操作ログに基づく自動再生）。この操作は、整備前データベース１２に施され、その結果は、検証対象データベース１６Ｂ（図１の検証用データベース１６を意味する）に格納される（ｇ：生成）。
比較検証部１７は、検証アプリケーション２１Ａの動作の適否を判断する。ここでは、オペレータの操作によって生成された整備後データベース１６Ａと、検証対象データベース１６Ｂとを、それぞれ読み出し（ｈ：読出し）、両者を比較する例を示した。他に、整備後データベース１６Ａに代えて、前回のシミュレーションで生成されたデータベースを用いてもよい。
【００２３】
図３は、操作記録、シミュレーションの実行概要を示す説明図である。
図３（ａ）は、アプリケーションに対するオペレータの操作を記録する方法を示している。本実施例では、アプリケーションはイベントドリブン型のプログラムとしており、その稼働中、このイベントの発生を検知し、実行内容を特定するイベントハンドラ処理を繰り返し実行している。オペレータの操作によって、イベントが発生すると、イベントハンドラ処理によって、その発生が検知され、イベントの内容に応じた動作、即ち内部処理が行われる。
本実施例において、コンピュータ２０に備えられているロギング・シミュレート部２２は、上述の過程でアプリケーションが動作する際に発生されるイベントに基づいて操作を記録するのである。記録すべき内容としては、後で、オペレータによる操作を再現可能な情報が含まれる。
ただし、アプリケーションが稼働する環境に依らず、その操作を再現可能な形式をとる。例えば、マウスによってクリックされた位置を記録する場合には、ディスプレイ上の座標値を記録するのではなく、アプリケーションが扱う論理座標系での位置座標を記録する。こうすることによって、ディスプレイの解像度が変わったり、アプリケーションを稼働させているウィンドウの位置やサイズが変わっても、オペレータによる操作を忠実に再現することが可能となる。もっとも、解像度や、ウィンドウの位置・サイズの変化による影響を補正して、オペレータによる操作を再現可能であるなら、ディスプレイ上の座標値でクリックの位置を記録してもよい。
【００２４】
図３（ｂ）は、アプリケーションに対するシミュレーションの実行方法を示している。シミュレーションなので、オペレータによる操作は行われない。アプリケーションが起動すると、ロギング・シミュレート部２２は、図３（ａ）の手順で記録された操作情報に基づいて、イベントを発生させる。すると、アプリケーションは、イベントハンドラ処理によって、このイベント発生を検出し、それに応じた内部処理を実行する。イベントの内容は、オペレータの操作を反映したものとなっているため、かかる手順によって、自動でオペレータの操作を再現することが可能となる。
【００２５】
Ｃ．操作ログデータベースの構成：
図１〜３で説明したアプリケーションのシミュレーションを実現するため、本実施例では、複数のコンピュータ上で行われる操作を、操作ログデータベース１５に記録し、それを再現している。以下では、こうしたシミュレーションの実現に利用される操作ログデータベース１５の構成について説明する。
【００２６】
図４は、操作ログデータベースの構成を示す説明図である。左側の実線の枠囲みで示した各情報は、操作ログの記録時に生成される情報である。右側の破線の枠囲みで示した各情報は、シミュレーションの実行時に生成される情報である。
【００２７】
ロギング情報は、オペレータが行った一連の操作を単位として発生する情報である。ロギング情報には、直接的または間接的に、必要数の操作情報、排他順序情報、排他情報が関連づけられている。ロギング情報として記録されている情報は次の通りである。
ロギングＩＤは、各ロギング情報を識別するための識別情報である。
プログラム名は、オペレータが操作を行ったアプリケーションの名称である。
起動開始日時、起動終了日時は、オペレータによってアプリケーションが起動または終了された日時を表している。
【００２８】
操作情報は、オペレータによって行われた操作の内容を記録する情報である。操作情報は、ロギングＩＤによって、ロギング情報と関連づけられている。操作ＩＤは、操作情報を識別するための識別情報である。
操作内容は、オペレータによる操作の内容を表している。記録する操作内容としては、マウス、キーボードおよびメニュー操作などが挙げられる。
【００２９】
排他順序情報は、オペレータの操作が排他条件下で行われたか否かを表す情報であり、排他条件の開始時／終了時に生成される。排他順序情報は、ロギングＩＤ、操作ＩＤによって、ロギング情報、操作情報に関連づけられている。排他順序ＩＤは、排他順序情報を識別するための識別情報である。
排他順序情報には、システム変更番号が保持される。システム変更番号とは、データベースに対する操作に対してシーケンシャルに付される番号を言う。システム変更番号は、例えば、データベースに対する改変を溯ってデータベースを復旧させる際などに利用される。本実施例では、データベースに対する整備操作を対象として操作情報を記録しているため、その操作順序を表す情報としてシステム変更番号を利用しているが、アプリケーションの種類に応じてシステム変更番号以外の情報を用いても良い。
整備ＤＢ更新日時とは、データベースに対する操作が行われた日時を記録している。
【００３０】
排他情報は、排他条件下で操作された対象を特定する情報である。本実施例では、地図データベースに対する整備を行うアプリケーションを対象としているため、排他情報としては、排他条件下で整備された地物を特定する情報が記録される。排他情報は、ロギングＩＤ、操作ＩＤ、排他順序ＩＤで、それぞれロギング情報、操作情報、排他順序情報と関連づけられている。排他ＩＤは、排他情報を識別するための識別情報である。
地物情報は、上述の通り排他条件下で操作された地物を特定する情報であり、例えば、地物に付された識別情報などを用いることができる。
【００３１】
本実施例では、ロギング情報、操作情報、排他順序情報、排他情報という形に分けて操作に関する情報を記録しているため、操作の数、排他条件の有無などに応じて、必要な情報を柔軟に組み合わせて操作内容を適切に記録することが可能となっている。操作ログは、かかる形式に限られるものではなく、例えば、これらの情報を、ロギング情報内に全て包含して記録させる形式としてもよい。
【００３２】
次に、ロギング情報他に基づいて、シミュレーション時に生成される情報、即ちシミュレート計画情報、開始条件情報について説明する。これらの情報は、後述するシミュレーション計画情報生成処理によって生成されるものである。
シミュレート計画情報は、シミュレーションの実行に関する情報であり、どのロギング情報を何台のコンピュータで実行するかを表す情報である。シミュレート計画情報の記録内容は、次の通りである。
シミュレート計画ＩＤは、シミュレート計画情報の識別情報である。
シミュレート範囲は、シミュレーションを実行するロギング情報を、データベースの範囲で規定する情報である。データベースの範囲が規定されている場合には、排他情報における地物情報の記録に基づき、指定されたデータベース、例えば、地図データベースのうち特定の地域またはメッシュなど、に対する操作を記録したロギング情報が実行対象となる。
操作ログ採取開始日時、操作ログ採取終了日時は、シミュレーションを実行するロギング情報を時間範囲で規定する情報である。ロギング情報の起動開始日時または起動終了日時が、操作ログ採取開始／終了日時で示される時間範囲内にあるロギング情報が実行対象となる。
実行順序情報は、複数のロギング情報を用いてシミュレーションを行う場合に、どのロギング情報から順に実行するかを表す情報である。
必要マシン数は、ロギング情報に基づくシミュレーションの実行に必要なコンピュータ数またはプロセス数を表している。
【００３３】
開始条件情報は、ロギング情報に記録された操作情報を再現する際に、その開始条件を記録する。オペレータの操作が排他条件下で行われている場合には、シミュレーション時も、その操作が完了するまでは、他の操作が行われないように制御する必要がある。かかる制御は、例えば、排他条件下で行われた特定の操作が完了することを、他の操作情報を実行するための開始条件として設定することによって実現できる。開始条件情報は、これを記録しているのである。
開始条件情報は、シミュレート計画ＩＤによって、シミュレート計画情報と関連づけられている。また、開始条件情報は、特定の操作情報を実行するための開始条件を記録するものであるから、ロギングＩＤ、操作ＩＤによってロギング情報、操作情報とも関連づけられている。
本実施例では、開始条件は、上述の通り、「ある特定の操作情報が終了していること」という形式で表すことができる。この終了しているべき操作情報を表すため、開始条件情報では、その操作情報に伏せられたロギングＩＤ、操作ＩＤを、それぞれ開始条件ロギングＩＤ、開始条件操作ＩＤとして記録する。
【００３４】
Ｄ．シミュレーション実行処理：
操作ログを用いてシミュレーションを実行するための処理内容について説明する。
図５は、シミュレーション実行処理のフローチャートである。この処理は、各コンピュータ２０に備えられたロギング・シミュレート部２２と、シミュレート計画生成部１４とが協同して実行する処理である。
この処理が開始されると、サーバ１０は、シミュレーション条件の指定を受け付ける（ステップＳ１０）。条件の指定は、シミュレーションを実施するいずれかのコンピュータ２０または、シミュレーションとは無関係のコンピュータから、ネットワークＮＥを介してサーバ１０に指示情報を送信することによって行われる。指定すべき条件としては、シミュレート対象時間範囲、シミュレート対象エリアが挙げられる。シミュレート対象時間範囲を指定すると、操作ログのうち、特定の時間範囲内に生成されたものをシミュレーションの実行対象とすることができる。シミュレート対象エリアを指定すると、操作ログのうち、地図データベースの特定の地域またはメッシュを対象として行われた操作に絞ってシミュレーションを実行することができる。
このように条件を指定可能とすることによって、多種多様な操作ログから必要なもののみに絞ってシミュレーションを実行可能となる。逆に言えば、シミュレーションの実行対象か否かを考慮することなく、オペレータは予め多種多様な操作を行って操作ログを蓄積させておくことができ、操作ログの蓄積とシミュレーションの実施とを独立して行うことが可能となるため、操作ログの蓄積を効率的に行うことができる。また、シミュレーションの結果、不具合が発見された箇所に絞って再度シミュレーションを実行するなど、多様な操作ログの一部を選択して実行できるため、シミュレーションの効率も向上する。
【００３５】
次に、サーバ１０は、シミュレート計画情報生成処理を実行する（ステップＳ１００）。これは、操作ログから、図４に示したシミュレート計画情報、開始条件情報を生成するための処理である。処理内容については、後述する。シミュレート計画生成部１４をコンピュータ２０側に設け、コンピュータ２０側でシミュレート計画情報、開始条件情報を生成し、サーバ１０に格納するものとしてもよい。
シミュレート計画情報が生成されると、シミュレーションに必要なコンピュータの台数が決定される。従って、サーバ１０は、この結果に基づいて、シミュレーションを実行すべきコンピュータ、即ちシミュレート実行マシンを指定する（ステップＳ２００）。シミュレート実行マシンについては、必要台数に応じて、オペレータが手動で指定可能としてもよい。
【００３６】
以上の処理が完了すると、サーバ１０は、シミュレーションを実行する各コンピュータ２０に対して、シミュレーションの開始を指示する。すると、各コンピュータ２０は、サーバ１０から、シミュレーション計画情報、開始条件情報、および必要なロギング情報等を読込み、これらの情報を、操作ログ保持部２３に保持した後、シミュレーションを実行する（ステップＳ２１０）。
シミュレーションの結果は、図１、２で説明した通り、検証用データベース１６に蓄積される。
シミュレーションが完了すると、サーバ１０は、検証用データベース１６に蓄積されたデータに基づいて、シミュレーション実行結果の比較検証を行う（ステップＳ２２０）。検証用データベース１６には、図２に示した通り、オペレータの操作によって生成された正解とも言うべき整備後データベース１６Ａが保持されているから、サーバ１０は、この内容と、シミュレーションによって生成された検証対象データベース１６Ｂとを比較するのである。両者が一致すれば、シミュレーションによりアプリケーションの動作は正常であったと判定することができ、そうでない場合には、アプリケーションの動作に異常があったと判定することができる。
シミュレーション条件を適宜変更して、以上の処理を実行することにより、アプリケーションの機能を、効率的に検証することが可能となる。
【００３７】
Ｄ１．シミュレーション計画情報生成処理：
次に、シミュレーション計画情報生成処理の内容について説明する。この処理は、シミュレーション実行処理（図５）のステップＳ１００に相当する処理であり、サーバ１０のシミュレート計画生成部１４によって行われる処理である。
図６〜図８は、シミュレーション計画情報生成処理のフローチャートである。
この処理を開始すると、サーバ１０は、まずシミュレーションの対象となっているロギング情報を読み込む（ステップＳ１１０）。読込み対象となるのは、図５のステップＳ１０で指定されたシミュレート対象時間範囲、シミュレート対象エリアの条件を満たすロギング情報である。かかるロギング情報は、複数、存在する可能性がある。
【００３８】
次に、サーバ１０は、ロギング情報を、システム変更番号に基づきソートする（ステップＳ１２０）。システム変更番号は、ロギング情報に関連づけられた排他順序情報を参照することによって得られる。
図中にソートの例を示した。ロギング情報１に含まれる排他順序情報には、システム変更番号１、２、７，８が記録されているとする。同様にロギング情報２にはシステム変更番号５、６、ロギング情報３にはシステム変更番号３、４が記録されているとする。サーバ１０は、これらのシステム変更番号の最小値に基づいてロギング情報をソートする。従って、この例では、ロギング情報１、ロギング情報３、ロギング情報２の順にソートされる。
システム変更番号は、データベースに対して施された操作の順序を表す番号となるため、これに基づいてロギング情報をソートすることにより、ロギング情報を概ねオペレータによってなされた操作順に並べ替えることができる。
【００３９】
次に、サーバ１０は、共通の地物に対して操作を行うロギング情報をグループ化する（ステップＳ１３０）。これは、ロギング情報に関連づけられた排他情報に記録された地物情報に基づいて行うことができる。
図中に、このグループ化の例を示した。ロギング情報１およびロギング情報２が、地物Ａに対する操作を行っており、ロギング情報３が地物Ｂに対する操作を行っているものとする。この場合には、ロギング情報１、２が同一の地物に対する操作を行っているため、グループ化されることになる。
このグループ化は、次の意味を持つ。共通の地物に対して複数のコンピュータから操作が行われる場合、その実行順序を制御しないと、得られる結果が異なってしまう。従って、このようなロギング情報については、相互に競合する操作を回避するための制御が必要となる。このように制御対象を特定するための処理がグループ化である。従って、あるロギング情報と、他のロギング情報とで複数の地物を対象に操作を行っている場合、その一部が共通していれば、競合する操作を行う可能性があるため、グループ化されることになる。
【００４０】
サーバ１０は、次に開始条件情報を付加する（図７のステップＳ１４０）。開始条件を付加するための処理例および手順を図中に示した。ここでは、シミュレートマシンＡ、Ｂという２台のコンピュータで、それぞれロギング情報１、２に基づいてシミュレーションを実行する場合を例示している。
シミュレートマシンＡでは、ロギング情報１に操作情報１〜４（それぞれのシステム変更番号は１、２、７、８である）が記録されており、これらの操作を順次実行するものとする。これら４つの操作は、それぞれ排他条件下で行われるべきものとする。また、シミュレートマシンＢでは、ロギング情報２に操作情報１、２（それぞれのシステム変更番号は５、６である）が記録されており、これら２つの操作が排他条件下で行われるものとする。シミュレートマシンＡ、Ｂで行う操作は、共に共通の地物に対するものであり、シミュレーションの実行時には操作の競合を回避する必要がある。
【００４１】
サーバ１０は、まず、ロギング情報１、２に記録された操作情報全体をシステム変更番号に基づいてソートする。図の例では、システム変更番号順に、シミュレートマシンＡの操作情報１、２→シミュレートマシンＢの操作情報１、２→シミュレートマシンＡの操作情報３、４の順にソートされる。
こうしてソートした後、サーバ１０は、操作情報が属するロギング情報が切り替わる部分に、開始条件情報を付加する。
図の例では、まず、シミュレートマシンＡの操作情報２と、シミュレートマシンＢの操作情報１との間で、ロギング情報１からロギング情報２に切り替わっているため、ここに開始条件情報を付加する。開始条件情報の内容としては、シミュレートマシンＢの操作情報１を実行する前に終了しているべき操作情報、即ち、シミュレートマシンＡの操作情報２を表すロギングＩＤ、操作ＩＤとなる。
次に、シミュレートマシンＢの操作情報２と、シミュレートマシンＡの操作情報３との間でも、ロギング情報２からロギング情報１に切り替わっているため、ここに開始条件情報を付加する。開始条件情報の内容は、シミュレートマシンＢの操作情報２を表すロギングＩＤ、操作ＩＤとなる。
このように開始条件情報を設定すると、サーバ１０は、このシミュレーションを実行するために必要となるプロセス数を決定する。図中に示した例の場合、ロギング情報１については、操作情報３の直前に付された開始条件情報が存在するため、操作情報２を実行した後、操作情報３の実行を開始条件が満たされるまで保留する必要があることになる。一方、ロギング情報２については、操作情報１の直前に付された開始条件情報が存在するため、操作情報１を実行する前に、開始条件が満たされるまで実行を保留する必要があることになる。従って、図に例示した処理を実行するためには、２つのプロセスが必要となることが分かる。
【００４２】
開始条件情報を設定すると、サーバ１０は、実行順序情報を設定する（図８のステップＳ１５０）。実行順序情報は、システム変更番号に基づいて設定すればよい。図６のステップＳ１２０に示した通り、単純にシステム変更番号順にソートすれば、実行順序は、ロギング情報１、ロギング情報３、ロギング情報２の順となる。しかし、図７のステップＳ１４０で示した通り、ロギング情報１とロギング情報２とは、２つのプロセスで実行されるべきものであることが分かっている。従って、ロギング情報２をシミュレートマシンＢで実行するものとすれば、図示する通り、シミュレートマシンＡでは、ロギング情報１、ロギング情報３の順に実行すればよいことになる。図中の破線は、ロギング情報１、ロギング情報２が、お互いに開始条件情報で相互に関連して実行されるべきものであることを表している。
サーバ１０は、こうして生成されたシミュレート計画情報を格納し（ステップＳ１６０）、シミュレート計画情報生成処理を終了する。
ここでは、シミュレーションの実施時にシミュレート計画情報を生成する例を示したが、シミュレート計画情報の生成は、操作ログが取得された後、任意のタイミングで実行可能である。
【００４３】
Ｅ．効果および変形例：
以上で説明した本実施例のアプリケーション・テストシステムによれば、複数のコンピュータ上で稼働する対話型アプリケーションに対して、オペレータが行った操作を再現し、アプリケーションのテストを自動的に実行することが可能となる。特に、複数のコンピュータからの操作が競合する場合、操作情報に、他のコンピュータからの操作を排除するための排他順序情報、排他情報を設けることにより、競合を回避しながら操作を再現することが可能となる。
【００４４】
以上、本発明の実施例について説明した。アプリケーション・テストシステムは、必ずしも上述した実施例の全ての機能を備えている必要はなく、一部のみを実現するようにしてもよい。また、上述した内容に追加の機能を設けてもよい。
実施例では、地図データベースに対する整備を行うアプリケーションを例にとって説明したが、本発明は、複数のコンピュータ上で稼働するアプリケーションのシミュレーションに広く適用可能である。
本発明は上述の実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、実施例においてハードウェア的に構成されている部分は、ソフトウェア的に構成することもでき、その逆も可能である。
【産業上の利用可能性】
【００４５】
本発明は、複数のコンピュータ上で稼働する対話型アプリケーションに対し、オペレータが行った操作を再現することによってその機能を検証するために利用可能である。
【符号の説明】
【００４６】
１０…サーバ
１１…地図データベース管理部
１２…地図データベース（整備前データベース）
１３…操作ログ管理部
１４…シミュレート計画生成部
１５…操作ログデータベース
１６…検証用データベース
１６Ａ…整備後データベース
１６Ｂ…検証対象データベース
１７…比較検証部
２０…コンピュータ
２１…アプリケーション
２２…ロギング・シミュレート部
２３…操作ログ保持部
【図１】
2014142745.tif 000003
【図２】
2014142745.tif 000004
【図３】
2014142745.tif 000005
【図４】
2014142745.tif 000006
【図５】
2014142745.tif 000007
【図６】
2014142745.tif 000008
【図７】
2014142745.tif 000009
【図８】
2014142745.tif 000010