JP6072547B2 - アプリケーション・テストシステム - Google Patents

アプリケーション・テストシステム Download PDF

Info

Publication number
JP6072547B2
JP6072547B2 JP2013009927A JP2013009927A JP6072547B2 JP 6072547 B2 JP6072547 B2 JP 6072547B2 JP 2013009927 A JP2013009927 A JP 2013009927A JP 2013009927 A JP2013009927 A JP 2013009927A JP 6072547 B2 JP6072547 B2 JP 6072547B2
Authority
JP
Japan
Prior art keywords
information
simulation
computer
operator
application
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.)
Active
Application number
JP2013009927A
Other languages
English (en)
Other versions
JP2014142745A (ja
Inventor
岸川 喜代成
喜代成 岸川
前田 義雄
義雄 前田
勲 仲村
勲 仲村
健太 藤原
健太 藤原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GEO Technical Laboratory Co Ltd
Original Assignee
GEO Technical Laboratory Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by GEO Technical Laboratory Co Ltd filed Critical GEO Technical Laboratory Co Ltd
Priority to JP2013009927A priority Critical patent/JP6072547B2/ja
Publication of JP2014142745A publication Critical patent/JP2014142745A/ja
Application granted granted Critical
Publication of JP6072547B2 publication Critical patent/JP6072547B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、オペレータとの対話型アプリケーションにおいて、オペレータの操作をシミュレートし、アプリケーションの動作をテストするためのシステムに関する。
コンピュータ上で稼働する種々のアプリケーションを開発する際には、正常に動作するか否かのテストをする必要がある。アプリケーションを改修したときや、アプリケーションが稼働するオペレーションシステムを入れ替えたときなどにも、改修した部分が他の機能に影響を与えていないかテストをする必要がある。
かかるテストを自動で行う場合、オペレータの操作に応じて稼働する対話型のアプリケーションでは、オペレータの操作を再現する必要がある。
特許文献1、2は、次の通り、こうした操作の再現に関する技術を開示する。
特許文献1は、アプリケーションについて内部で発生される内部イベントおよび、キーボード、マウスなどの入力に応じて発生する外部イベントを、それぞれイベント単位で記憶させることによって、操作内容をリプレイするシステムを開示している。
特許文献2は、GUIを用いたアプリケ−ションにおいて、GUIに対する操作に基づいて発生したイベント情報を保持することによって、GUIの操作を自動的に再現するシステムを開示している。
特表2008−529113号公報 特開平7−84765号公報
しかし、近年、対話型アプリケーションの中には、複数のコンピュータ上で稼働し、それぞれオペレータが行った操作に基づいて一つの結果を得るものがある。例えば、複数のコンピュータで共有されるデータベースに対する操作を行い、これらによってデータベースを整備するためのアプリケーションなどが挙げられる。かかるアプリケーションの動作テストを行うためには、各コンピュータ上で行われた操作を再現するのみならず、複数のコンピュータで行われた操作のタイミングを相互に制御する必要もある。従来技術では、このように複数のコンピュータで行われた操作の再現については検討されていなかった。
本発明は、かかる課題を解決するものであり、複数のコンピュータで、対話型アプリケーションに対して行われた操作を再現することによって、その動作テストを実現することを目的とする。
本発明は、
ネットワークで接続された複数のコンピュータ上で稼働する対話型アプリケーションに対して、オペレータによってなされた操作を再現し、該対話型アプリケーションの動作をテストするアプリケーション・テストシステムであって、
前記各コンピュータで、前記対話型アプリケーションに対してオペレータによって行われた操作を、操作ごとに再現可能な操作情報として逐次抽出するロギング部と、
前記ロギング部によって抽出された前記操作情報を記憶する操作ログデータベース記憶部と、
前記操作情報に基づいて、前記対話型アプリケーションに対して前記オペレータによって行われた操作を再現するシミュレーション部とを備え、
前記操作情報は、他のコンピュータからの操作がなされないという排他条件下で実行されるべき操作に対して、該排他条件を含む情報であるアプリケーション・テストシステムとして構成することができる。
ロギング部、操作ログデータベース記憶部、シミュレーション部は、オペレータが操作を行う各コンピュータ及び対話型アプリケーションのテストを行う各コンピュータ上に設けても良い。また、これらのコンピュータとネットワークで接続されたサーバ上に設けても良い。また、ロギング部、シミュレーション部は、両者の機能を統合した一つのユニットとして構成することも可能である。
複数のコンピュータ上で対話型アプリケーションを実行する場合には、一つのコンピュータで操作が行われた後、他のコンピュータで操作が行われることがある。かかる場合には、操作を再現する際に、各コンピュータで行われた操作が競合しないよう、その操作を制御する必要がある。
本発明では、対話型アプリケーションに対し、オペレータによる操作を記憶した操作情報に基づき、操作を再現することができる。操作情報には、他のコンピュータからの操作を排除するための排他条件が含まれているため、一つのコンピュータで操作が行われているときに、他のコンピュータから競合する操作が行われることを回避できる。従って、複数のコンピュータ上で稼働する対話型アプリケーションのテストを実現することができる。
操作情報で記憶する対象となる操作としては、例えば、マウス、キーボードによる操作などが挙げられる。
操作情報は、種々の形式で抽出し、記憶しておくことができるが、対話型アプリケーションがイベントドリブン型である場合には、オペレータの操作に応じて発生するイベントを利用することが好ましい。
また、操作情報は、オペレータが操作したときと異なる動作環境下で対話型アプリケーションを動作させた場合でも、操作を再現可能な形式で生成することが好ましい。例えば、マウスでクリックした位置座標は、ディスプレイ上の座標値で記憶するのではなく、対話型アプリケーションが扱う論理座標系で記憶することが好ましい。
排他条件は、それぞれの操作ごとに排他条件下で行われるべきものか否かを表す情報を関連づける形式としてもよい。また、操作とは別の情報として、排他条件のオン・オフを表す情報を記憶するようにしてもよい。例えば、排他条件オン、操作A、操作B、排他条件オフのように、時系列に情報を記憶しておけば、操作A、操作Bは、排他条件下で行われるべき操作であることを特定することができる。
排他条件は、オペレータによって操作が行われているコンピュータ以外の全コンピュータからの操作を拒否する情報としてもよいし、一部の特定のコンピュータからの操作を拒否する情報としてもよい。
本発明においては、
さらに、前記操作情報に基づき、前記排他条件に反する操作を避けるよう、前記各操作の実行順序を決定したシミュレート計画情報を生成するシミュレート計画生成部を備え、
前記シミュレーション部は、前記シミュレート計画情報に基づいて、前記再現を行うものとしてもよい。
こうすることにより、各コンピュータで行われる操作が競合することを回避するだけでなく、その操作順序まで再現することが可能となる。
シミュレート計画情報は、操作の再現を行う際に生成するものとしてもよいし、操作情報を記憶する際、または記憶し終えたときに生成するようにしてもよい。
シミュレート計画情報は、例えば、コンピュータごとに操作が実行された順に操作情報をソートする処理と、排他条件に基づいて、各コンピュータにおける操作情報の実行タイミングを調整する処理とを行うことによって生成することができる。例えば、あるコンピュータにおいて排他条件下で操作が行われているときには、その操作が終了し、排他条件が解除されるまで、他のコンピュータで行う操作を遅らせるようにすればよい。
このような操作情報の実行タイミングの制御は、種々の形式で行うことができる。例えば、それぞれの操作情報に対して、操作の開始時刻を指定するようにしてもよい。また、複数のコンピュータで行われる全ての操作情報に対して、実行する順序を一連の番号の形で指定してもよい。さらに、操作情報に対して、それが実行する際に満たすべき開始条件を付すようにしてもよい。他の排他条件下で行われるべき操作が終了していることを開始条件として設定すれば、それが付された操作は、排他条件が解除された後に行われることになる。
異なるコンピュータで行われた操作間の実行順序を正確に再現するための方法として、操作情報には、複数のコンピュータで行われた操作にわたって実行順序を表す情報を含めても良い。対話型アプリケーションがデータベースに対して操作するものである場合には、実行順序を表す情報として、データベースに施された操作を記憶するためのシステム変更番号などを用いることもできる。
本発明においては、
前記シミュレーション部は、
前記操作ログデータベース記憶部に記憶された操作情報のうち、再現の対象とすべき操作情報を絞り込むための選択条件を受け付け、
該選択条件に合致する操作情報を前記操作ログデータベース記憶部から抽出し、
該抽出された操作情報に基づいて前記再現を行うものとしてもよい。
こうすることにより、予めオペレータが行った多種多様な操作を操作情報として操作ログデータベース記憶部に記憶しておき、その中から、テストすべき操作情報を選択して再現することができる。
対話型アプリケーションのテストは、種々の機能・項目に対して実行する必要がある。また、テストで不具合が発見された場合には、対話型アプリケーションの修正を行い、不具合が発見された操作のみを対象に再テストを行う必要も生じる。上述の態様によれば、予めオペレータが行っておいた操作情報から、テストに必要なもののみを選択的に実行可能となるため、テストを効率的に実施することができる。
テストすべき操作情報を選択する条件としては、例えば、操作情報が記録された時刻、操作情報の内容、オペレータによって操作された対象データの範囲などを用いることができる。
本発明においては、
前記対話型アプリケーションは、操作対象となるべき所定の対象データベースに対する操作を行うものであり、
前記操作情報は、前記対象データベースに記憶されたデータのうち、該排他条件下での操作対象となったデータを特定する情報を、前記排他条件に関連づけて記憶するものとしてもよい。
こうすることにより、排他条件下で操作対象とされたデータを特定することができ、かかるデータに対して複数のコンピュータから競合する操作がなされることを回避することができる。
本発明は、その他、コンピュータによって対話型アプリケーションのテストを行うためのアプリケーション・テスト方法として構成してもよいし、かかるテストをコンピュータに実行させるためのコンピュータプログラムとして構成してもよい。また、かかるコンピュータプログラムを記録したコンピュータが読み取り可能な記録媒体として構成してもよい。記録媒体としては、フレキシブルディスクやCD−ROM、光磁気ディスク、ICカード、ROMカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置(RAMやROMなどのメモリ)および外部記憶装置等、コンピュータが読取り可能な種々の媒体を利用できる。
アプリケーション・テストシステムの構成を示す説明図である。 シミュレーションの概要を示す説明図である。 操作記録、シミュレーションの実行概要を示す説明図である。 操作ログデータベースの構成を示す説明図である。 シミュレーション実行処理のフローチャートである。 シミュレーション計画情報生成処理のフローチャート(1)である。 シミュレーション計画情報生成処理のフローチャート(2)である。 シミュレーション計画情報生成処理のフローチャート(3)である。
本発明の実施の形態について、以下に示す。本実施例では、複数台のコンピュータで共有されている地図データベースを、複数人のオペレータが協同して整備するための対話型アプリケーションを例にとって説明する。
A.システム構成:
図1は、アプリケーション・テストシステムの構成を示す説明図である。本実施例のアプリケーション・テストシステムは、対話型アプリケーションに対して、オペレータが行った操作を記録し、再現することによって、アプリケーションの機能をテストするためのシステムである。以下、こうした操作の記録をロギング、操作の再現によるテストを、シミュレーションと呼ぶこともある。
このシステムは、対話型アプリケーションを稼働するための複数台のコンピュータ20、およびサーバ10をネットワークNEで接続して構成されている。図中で、コンピュータ20に付した[1]、[2]の識別子は、説明の便宜上、ネットワークに接続された各コンピュータを識別するためのものである。
本実施例では、サーバ10を備える構成を例示しているが、サーバ10の一部または全部の機能を、いずれかのコンピュータ20に組み込んでもよい。コンピュータ20およびサーバ10には、図示する各機能が用意されている。本実施例では、これらの機能は、コンピュータプログラムをインストールすることによってソフトウェア的に実現しているが、その一部または全部をハードウェア的に構築することもできる。
各コンピュータ20に備えられたアプリケーション21は、サーバ10に備えられた地図データベース12を対話型で整備するためのアプリケーションである。本実施例では、オペレータの操作等に応じて発生するイベントに基づいて稼働するイベントドリブン型のプログラムとしているが、フロー型のプログラムとしてもよい。
ロギング・シミュレート部22は、2つの機能を奏する。第1の機能は、アプリケーション21の稼働中にオペレータが行った操作に応じて発生したイベントを操作ログとして逐次記録する機能、即ちロギング機能である。操作ログの記録先は、本実施例では、後述する通りサーバ10とした。第2の機能は、記録された操作ログに基づいて、シミュレーションを実行する機能である。シミュレーションは、サーバ10に蓄積された操作ログを読込み、これをアプリケーション21に実行させることによって実現される。
操作ログ保持部23は、シミュレーションに際し、サーバ10から読み込んだ操作ログを一時的に保持する機能を奏する。
サーバ10には、地図データベース12、操作ログデータベース15、検証用データベース16の3つのデータベースが用意されている。
地図データベース12は、地図を描画するための地物等のポリゴンデータ、ラインデータなどを記録しており、コンピュータ20にインストールされたアプリケーション21での整備対象となるデータベースである。
操作ログデータベース15は、ネットワークNEに接続された各コンピュータ20で行われたアプリケーション21に対する操作ログを逐次、記録する。
検証用データベース16は、アプリケーション21のシミュレーション結果を検証するためのデータベースである。即ち、アプリケーション21のシミュレーションの正解とも言うべきデータ、シミュレーションによって生成された1または2以上のデータなどを記憶する。
地図データベース管理部11は、地図データベース11および検証用データベース16へのデータ入出力を管理する。
操作ログ管理部13は、操作ログデータベース15へのデータ入出力を管理する。
シミュレート計画生成部14は、操作ログデータベース15に記録された操作ログに基づき、シミュレーションを実行する際に必要となるコンピュータ20の台数、操作ログの実行順序などを指定するシミュレート計画情報を生成する。
比較検証部17は、検証用データベース16に記憶されたシミュレーション結果を、オペレータの操作によって生成された結果と比較することによって、アプリケーション21の機能が正常か否かを検証する。
B.システム構成:
図2は、シミュレーションの概要を示す説明図である。シミュレーションは、以下の手順で実行する。
まず、コンピュータ20において、オペレータがアプリケーション21を稼働させ、整備前データベース12(図1の地図データベース12を意味する)に対して、地図データベースを整備するための操作を行う(a:オペレータによる操作)。ここで行うべき操作は、後にアプリケーション21のシミュレーションを行う際の検証対象となる操作である。
上記においてオペレータが行った操作に基づいて発生したイベントは、操作ログデータベース15に記録される(b:操作ログ記録)。記録される操作としては、マウス、キーボードによる操作が挙げられる。また、各種ダイアログへの入力を操作の一つとして区別して記録してもよい。
また、オペレータの操作による結果は、整備後データベース16A(図1の検証用データベース16を意味する)として記録される(c:生成)。この整備後データベース16Aは、後にシミュレーションにおいて、アプリケーションが正常に稼働したか否かを検証するための正解と言うべき基準のデータとなる。
こうして、オペレータによる操作が終了すると、シミュレーションの準備が完了する。オペレータによる操作は、一つだけでなく、シミュレーションの対象となるべき複数の操作を行ってもよい。
次に以下の手順でシミュレーションを実行する。
コンピュータ20上で検証アプリケーション21Aをシミュレーションモードで起動させる(d:シミュレート起動)。検証アプリケーション21Aとは、オペレータが操作したアプリケーション21に対して、その内容またはオペレーションシステムなどの動作環境を変化させたものであり、シミュレーションによって、動作の適否を検証すべき対象となっているアプリケーションを言う。検証アプリケーション21Aを動作させるコンピュータは、オペレータが操作したコンピュータと同一でもよいし、異なっていてもよい。
検証アプリケーション21Aが起動すると、ロギング・シミュレート部22は、操作ログデータベース15に記録された操作ログを読み出し(e:操作ログ読出し)、これに基づいて、オペレータの操作を自動再生する(f:操作ログに基づく自動再生)。この操作は、整備前データベース12に施され、その結果は、検証対象データベース16B(図1の検証用データベース16を意味する)に格納される(g:生成)。
比較検証部17は、検証アプリケーション21Aの動作の適否を判断する。ここでは、オペレータの操作によって生成された整備後データベース16Aと、検証対象データベース16Bとを、それぞれ読み出し(h:読出し)、両者を比較する例を示した。他に、整備後データベース16Aに代えて、前回のシミュレーションで生成されたデータベースを用いてもよい。
図3は、操作記録、シミュレーションの実行概要を示す説明図である。
図3(a)は、アプリケーションに対するオペレータの操作を記録する方法を示している。本実施例では、アプリケーションはイベントドリブン型のプログラムとしており、その稼働中、このイベントの発生を検知し、実行内容を特定するイベントハンドラ処理を繰り返し実行している。オペレータの操作によって、イベントが発生すると、イベントハンドラ処理によって、その発生が検知され、イベントの内容に応じた動作、即ち内部処理が行われる。
本実施例において、コンピュータ20に備えられているロギング・シミュレート部22は、上述の過程でアプリケーションが動作する際に発生されるイベントに基づいて操作を記録するのである。記録すべき内容としては、後で、オペレータによる操作を再現可能な情報が含まれる。
ただし、アプリケーションが稼働する環境に依らず、その操作を再現可能な形式をとる。例えば、マウスによってクリックされた位置を記録する場合には、ディスプレイ上の座標値を記録するのではなく、アプリケーションが扱う論理座標系での位置座標を記録する。こうすることによって、ディスプレイの解像度が変わったり、アプリケーションを稼働させているウィンドウの位置やサイズが変わっても、オペレータによる操作を忠実に再現することが可能となる。もっとも、解像度や、ウィンドウの位置・サイズの変化による影響を補正して、オペレータによる操作を再現可能であるなら、ディスプレイ上の座標値でクリックの位置を記録してもよい。
図3(b)は、アプリケーションに対するシミュレーションの実行方法を示している。シミュレーションなので、オペレータによる操作は行われない。アプリケーションが起動すると、ロギング・シミュレート部22は、図3(a)の手順で記録された操作情報に基づいて、イベントを発生させる。すると、アプリケーションは、イベントハンドラ処理によって、このイベント発生を検出し、それに応じた内部処理を実行する。イベントの内容は、オペレータの操作を反映したものとなっているため、かかる手順によって、自動でオペレータの操作を再現することが可能となる。
C.操作ログデータベースの構成:
図1〜3で説明したアプリケーションのシミュレーションを実現するため、本実施例では、複数のコンピュータ上で行われる操作を、操作ログデータベース15に記録し、それを再現している。以下では、こうしたシミュレーションの実現に利用される操作ログデータベース15の構成について説明する。
図4は、操作ログデータベースの構成を示す説明図である。左側の実線の枠囲みで示した各情報は、操作ログの記録時に生成される情報である。右側の破線の枠囲みで示した各情報は、シミュレーションの実行時に生成される情報である。
ロギング情報は、オペレータが行った一連の操作を単位として発生する情報である。ロギング情報には、直接的または間接的に、必要数の操作情報、排他順序情報、排他情報が関連づけられている。ロギング情報として記録されている情報は次の通りである。
ロギングIDは、各ロギング情報を識別するための識別情報である。
プログラム名は、オペレータが操作を行ったアプリケーションの名称である。
起動開始日時、起動終了日時は、オペレータによってアプリケーションが起動または終了された日時を表している。
操作情報は、オペレータによって行われた操作の内容を記録する情報である。操作情報は、ロギングIDによって、ロギング情報と関連づけられている。操作IDは、操作情報を識別するための識別情報である。
操作内容は、オペレータによる操作の内容を表している。記録する操作内容としては、マウス、キーボードおよびメニュー操作などが挙げられる。
排他順序情報は、オペレータの操作が排他条件下で行われたか否かを表す情報であり、排他条件の開始時/終了時に生成される。排他順序情報は、ロギングID、操作IDによって、ロギング情報、操作情報に関連づけられている。排他順序IDは、排他順序情報を識別するための識別情報である。
排他順序情報には、システム変更番号が保持される。システム変更番号とは、データベースに対する操作に対してシーケンシャルに付される番号を言う。システム変更番号は、例えば、データベースに対する改変を溯ってデータベースを復旧させる際などに利用される。本実施例では、データベースに対する整備操作を対象として操作情報を記録しているため、その操作順序を表す情報としてシステム変更番号を利用しているが、アプリケーションの種類に応じてシステム変更番号以外の情報を用いても良い。
整備DB更新日時とは、データベースに対する操作が行われた日時を記録している。
排他情報は、排他条件下で操作された対象を特定する情報である。本実施例では、地図データベースに対する整備を行うアプリケーションを対象としているため、排他情報としては、排他条件下で整備された地物を特定する情報が記録される。排他情報は、ロギングID、操作ID、排他順序IDで、それぞれロギング情報、操作情報、排他順序情報と関連づけられている。排他IDは、排他情報を識別するための識別情報である。
地物情報は、上述の通り排他条件下で操作された地物を特定する情報であり、例えば、地物に付された識別情報などを用いることができる。
本実施例では、ロギング情報、操作情報、排他順序情報、排他情報という形に分けて操作に関する情報を記録しているため、操作の数、排他条件の有無などに応じて、必要な情報を柔軟に組み合わせて操作内容を適切に記録することが可能となっている。操作ログは、かかる形式に限られるものではなく、例えば、これらの情報を、ロギング情報内に全て包含して記録させる形式としてもよい。
次に、ロギング情報他に基づいて、シミュレーション時に生成される情報、即ちシミュレート計画情報、開始条件情報について説明する。これらの情報は、後述するシミュレーション計画情報生成処理によって生成されるものである。
シミュレート計画情報は、シミュレーションの実行に関する情報であり、どのロギング情報を何台のコンピュータで実行するかを表す情報である。シミュレート計画情報の記録内容は、次の通りである。
シミュレート計画IDは、シミュレート計画情報の識別情報である。
シミュレート範囲は、シミュレーションを実行するロギング情報を、データベースの範囲で規定する情報である。データベースの範囲が規定されている場合には、排他情報における地物情報の記録に基づき、指定されたデータベース、例えば、地図データベースのうち特定の地域またはメッシュなど、に対する操作を記録したロギング情報が実行対象となる。
操作ログ採取開始日時、操作ログ採取終了日時は、シミュレーションを実行するロギング情報を時間範囲で規定する情報である。ロギング情報の起動開始日時または起動終了日時が、操作ログ採取開始/終了日時で示される時間範囲内にあるロギング情報が実行対象となる。
実行順序情報は、複数のロギング情報を用いてシミュレーションを行う場合に、どのロギング情報から順に実行するかを表す情報である。
必要マシン数は、ロギング情報に基づくシミュレーションの実行に必要なコンピュータ数またはプロセス数を表している。
開始条件情報は、ロギング情報に記録された操作情報を再現する際に、その開始条件を記録する。オペレータの操作が排他条件下で行われている場合には、シミュレーション時も、その操作が完了するまでは、他の操作が行われないように制御する必要がある。かかる制御は、例えば、排他条件下で行われた特定の操作が完了することを、他の操作情報を実行するための開始条件として設定することによって実現できる。開始条件情報は、これを記録しているのである。
開始条件情報は、シミュレート計画IDによって、シミュレート計画情報と関連づけられている。また、開始条件情報は、特定の操作情報を実行するための開始条件を記録するものであるから、ロギングID、操作IDによってロギング情報、操作情報とも関連づけられている。
本実施例では、開始条件は、上述の通り、「ある特定の操作情報が終了していること」という形式で表すことができる。この終了しているべき操作情報を表すため、開始条件情報では、その操作情報に伏せられたロギングID、操作IDを、それぞれ開始条件ロギングID、開始条件操作IDとして記録する。
D.シミュレーション実行処理:
操作ログを用いてシミュレーションを実行するための処理内容について説明する。
図5は、シミュレーション実行処理のフローチャートである。この処理は、各コンピュータ20に備えられたロギング・シミュレート部22と、シミュレート計画生成部14とが協同して実行する処理である。
この処理が開始されると、サーバ10は、シミュレーション条件の指定を受け付ける(ステップS10)。条件の指定は、シミュレーションを実施するいずれかのコンピュータ20または、シミュレーションとは無関係のコンピュータから、ネットワークNEを介してサーバ10に指示情報を送信することによって行われる。指定すべき条件としては、シミュレート対象時間範囲、シミュレート対象エリアが挙げられる。シミュレート対象時間範囲を指定すると、操作ログのうち、特定の時間範囲内に生成されたものをシミュレーションの実行対象とすることができる。シミュレート対象エリアを指定すると、操作ログのうち、地図データベースの特定の地域またはメッシュを対象として行われた操作に絞ってシミュレーションを実行することができる。
このように条件を指定可能とすることによって、多種多様な操作ログから必要なもののみに絞ってシミュレーションを実行可能となる。逆に言えば、シミュレーションの実行対象か否かを考慮することなく、オペレータは予め多種多様な操作を行って操作ログを蓄積させておくことができ、操作ログの蓄積とシミュレーションの実施とを独立して行うことが可能となるため、操作ログの蓄積を効率的に行うことができる。また、シミュレーションの結果、不具合が発見された箇所に絞って再度シミュレーションを実行するなど、多様な操作ログの一部を選択して実行できるため、シミュレーションの効率も向上する。
次に、サーバ10は、シミュレート計画情報生成処理を実行する(ステップS100)。これは、操作ログから、図4に示したシミュレート計画情報、開始条件情報を生成するための処理である。処理内容については、後述する。シミュレート計画生成部14をコンピュータ20側に設け、コンピュータ20側でシミュレート計画情報、開始条件情報を生成し、サーバ10に格納するものとしてもよい。
シミュレート計画情報が生成されると、シミュレーションに必要なコンピュータの台数が決定される。従って、サーバ10は、この結果に基づいて、シミュレーションを実行すべきコンピュータ、即ちシミュレート実行マシンを指定する(ステップS200)。シミュレート実行マシンについては、必要台数に応じて、オペレータが手動で指定可能としてもよい。
以上の処理が完了すると、サーバ10は、シミュレーションを実行する各コンピュータ20に対して、シミュレーションの開始を指示する。すると、各コンピュータ20は、サーバ10から、シミュレーション計画情報、開始条件情報、および必要なロギング情報等を読込み、これらの情報を、操作ログ保持部23に保持した後、シミュレーションを実行する(ステップS210)。
シミュレーションの結果は、図1、2で説明した通り、検証用データベース16に蓄積される。
シミュレーションが完了すると、サーバ10は、検証用データベース16に蓄積されたデータに基づいて、シミュレーション実行結果の比較検証を行う(ステップS220)。検証用データベース16には、図2に示した通り、オペレータの操作によって生成された正解とも言うべき整備後データベース16Aが保持されているから、サーバ10は、この内容と、シミュレーションによって生成された検証対象データベース16Bとを比較するのである。両者が一致すれば、シミュレーションによりアプリケーションの動作は正常であったと判定することができ、そうでない場合には、アプリケーションの動作に異常があったと判定することができる。
シミュレーション条件を適宜変更して、以上の処理を実行することにより、アプリケーションの機能を、効率的に検証することが可能となる。
D1.シミュレーション計画情報生成処理:
次に、シミュレーション計画情報生成処理の内容について説明する。この処理は、シミュレーション実行処理(図5)のステップS100に相当する処理であり、サーバ10のシミュレート計画生成部14によって行われる処理である。
図6〜図8は、シミュレーション計画情報生成処理のフローチャートである。
この処理を開始すると、サーバ10は、まずシミュレーションの対象となっているロギング情報を読み込む(ステップS110)。読込み対象となるのは、図5のステップS10で指定されたシミュレート対象時間範囲、シミュレート対象エリアの条件を満たすロギング情報である。かかるロギング情報は、複数、存在する可能性がある。
次に、サーバ10は、ロギング情報を、システム変更番号に基づきソートする(ステップS120)。システム変更番号は、ロギング情報に関連づけられた排他順序情報を参照することによって得られる。
図中にソートの例を示した。ロギング情報1に含まれる排他順序情報には、システム変更番号1、2、7,8が記録されているとする。同様にロギング情報2にはシステム変更番号5、6、ロギング情報3にはシステム変更番号3、4が記録されているとする。サーバ10は、これらのシステム変更番号の最小値に基づいてロギング情報をソートする。従って、この例では、ロギング情報1、ロギング情報3、ロギング情報2の順にソートされる。
システム変更番号は、データベースに対して施された操作の順序を表す番号となるため、これに基づいてロギング情報をソートすることにより、ロギング情報を概ねオペレータによってなされた操作順に並べ替えることができる。
次に、サーバ10は、共通の地物に対して操作を行うロギング情報をグループ化する(ステップS130)。これは、ロギング情報に関連づけられた排他情報に記録された地物情報に基づいて行うことができる。
図中に、このグループ化の例を示した。ロギング情報1およびロギング情報2が、地物Aに対する操作を行っており、ロギング情報3が地物Bに対する操作を行っているものとする。この場合には、ロギング情報1、2が同一の地物に対する操作を行っているため、グループ化されることになる。
このグループ化は、次の意味を持つ。共通の地物に対して複数のコンピュータから操作が行われる場合、その実行順序を制御しないと、得られる結果が異なってしまう。従って、このようなロギング情報については、相互に競合する操作を回避するための制御が必要となる。このように制御対象を特定するための処理がグループ化である。従って、あるロギング情報と、他のロギング情報とで複数の地物を対象に操作を行っている場合、その一部が共通していれば、競合する操作を行う可能性があるため、グループ化されることになる。
サーバ10は、次に開始条件情報を付加する(図7のステップS140)。開始条件を付加するための処理例および手順を図中に示した。ここでは、シミュレートマシンA、Bという2台のコンピュータで、それぞれロギング情報1、2に基づいてシミュレーションを実行する場合を例示している。
シミュレートマシンAでは、ロギング情報1に操作情報1〜4(それぞれのシステム変更番号は1、2、7、8である)が記録されており、これらの操作を順次実行するものとする。これら4つの操作は、それぞれ排他条件下で行われるべきものとする。また、シミュレートマシンBでは、ロギング情報2に操作情報1、2(それぞれのシステム変更番号は5、6である)が記録されており、これら2つの操作が排他条件下で行われるものとする。シミュレートマシンA、Bで行う操作は、共に共通の地物に対するものであり、シミュレーションの実行時には操作の競合を回避する必要がある。
サーバ10は、まず、ロギング情報1、2に記録された操作情報全体をシステム変更番号に基づいてソートする。図の例では、システム変更番号順に、シミュレートマシンAの操作情報1、2→シミュレートマシンBの操作情報1、2→シミュレートマシンAの操作情報3、4の順にソートされる。
こうしてソートした後、サーバ10は、操作情報が属するロギング情報が切り替わる部分に、開始条件情報を付加する。
図の例では、まず、シミュレートマシンAの操作情報2と、シミュレートマシンBの操作情報1との間で、ロギング情報1からロギング情報2に切り替わっているため、ここに開始条件情報を付加する。開始条件情報の内容としては、シミュレートマシンBの操作情報1を実行する前に終了しているべき操作情報、即ち、シミュレートマシンAの操作情報2を表すロギングID、操作IDとなる。
次に、シミュレートマシンBの操作情報2と、シミュレートマシンAの操作情報3との間でも、ロギング情報2からロギング情報1に切り替わっているため、ここに開始条件情報を付加する。開始条件情報の内容は、シミュレートマシンBの操作情報2を表すロギングID、操作IDとなる。
このように開始条件情報を設定すると、サーバ10は、このシミュレーションを実行するために必要となるプロセス数を決定する。図中に示した例の場合、ロギング情報1については、操作情報3の直前に付された開始条件情報が存在するため、操作情報2を実行した後、操作情報3の実行を開始条件が満たされるまで保留する必要があることになる。一方、ロギング情報2については、操作情報1の直前に付された開始条件情報が存在するため、操作情報1を実行する前に、開始条件が満たされるまで実行を保留する必要があることになる。従って、図に例示した処理を実行するためには、2つのプロセスが必要となることが分かる。
開始条件情報を設定すると、サーバ10は、実行順序情報を設定する(図8のステップS150)。実行順序情報は、システム変更番号に基づいて設定すればよい。図6のステップS120に示した通り、単純にシステム変更番号順にソートすれば、実行順序は、ロギング情報1、ロギング情報3、ロギング情報2の順となる。しかし、図7のステップS140で示した通り、ロギング情報1とロギング情報2とは、2つのプロセスで実行されるべきものであることが分かっている。従って、ロギング情報2をシミュレートマシンBで実行するものとすれば、図示する通り、シミュレートマシンAでは、ロギング情報1、ロギング情報3の順に実行すればよいことになる。図中の破線は、ロギング情報1、ロギング情報2が、お互いに開始条件情報で相互に関連して実行されるべきものであることを表している。
サーバ10は、こうして生成されたシミュレート計画情報を格納し(ステップS160)、シミュレート計画情報生成処理を終了する。
ここでは、シミュレーションの実施時にシミュレート計画情報を生成する例を示したが、シミュレート計画情報の生成は、操作ログが取得された後、任意のタイミングで実行可能である。
E.効果および変形例:
以上で説明した本実施例のアプリケーション・テストシステムによれば、複数のコンピュータ上で稼働する対話型アプリケーションに対して、オペレータが行った操作を再現し、アプリケーションのテストを自動的に実行することが可能となる。特に、複数のコンピュータからの操作が競合する場合、操作情報に、他のコンピュータからの操作を排除するための排他順序情報、排他情報を設けることにより、競合を回避しながら操作を再現することが可能となる。
以上、本発明の実施例について説明した。アプリケーション・テストシステムは、必ずしも上述した実施例の全ての機能を備えている必要はなく、一部のみを実現するようにしてもよい。また、上述した内容に追加の機能を設けてもよい。
実施例では、地図データベースに対する整備を行うアプリケーションを例にとって説明したが、本発明は、複数のコンピュータ上で稼働するアプリケーションのシミュレーションに広く適用可能である。
本発明は上述の実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、実施例においてハードウェア的に構成されている部分は、ソフトウェア的に構成することもでき、その逆も可能である。
本発明は、複数のコンピュータ上で稼働する対話型アプリケーションに対し、オペレータが行った操作を再現することによってその機能を検証するために利用可能である。
10…サーバ
11…地図データベース管理部
12…地図データベース(整備前データベース)
13…操作ログ管理部
14…シミュレート計画生成部
15…操作ログデータベース
16…検証用データベース
16A…整備後データベース
16B…検証対象データベース
17…比較検証部
20…コンピュータ
21…アプリケーション
22…ロギング・シミュレート部
23…操作ログ保持部

Claims (6)

  1. ネットワークで接続された複数のコンピュータ上で稼働する対話型アプリケーションに対して、オペレータによってなされた操作を再現し、該対話型アプリケーションの動作をテストするアプリケーション・テストシステムであって、
    前記各コンピュータで、前記対話型アプリケーションに対してオペレータによって行われた操作を、操作ごとに再現可能な操作情報として逐次抽出するロギング部と、
    前記ロギング部によって抽出された前記操作情報を記憶する操作ログデータベース記憶部と、
    前記操作情報に基づいて、前記対話型アプリケーションに対して前記オペレータによって行われた操作を複数のコンピュータによって再現するシミュレーション部とを備え、
    前記操作情報は、他のコンピュータからの操作がなされないという排他条件下で実行されるべき操作を、操作順序とともに記憶する情報であり、
    前記シミュレーション部は、
    各コンピュータに対して、自身が行うべき操作よりも操作順序が前の他のコンピュータによる操作が完了するまでは、自身の操作の開始を停止させながら前記操作順序に従って前記操作を再現させるアプリケーション・テストシステム。
  2. 請求項1記載のアプリケーション・テストシステムであって、
    さらに、前記操作情報に基づき、前記排他条件に反する操作を避けるよう、前記各操作の実行順序を決定したシミュレート計画情報を生成するシミュレート計画生成部を備え、
    前記シミュレーション部は、前記シミュレート計画情報に基づいて、前記再現を行うアプリケーション・テストシステム。
  3. 請求項1または2記載のアプリケーション・テストシステムであって、
    前記シミュレーション部は、
    前記操作ログデータベース記憶部に記憶された操作情報のうち、再現の対象とすべき操作情報を絞り込むための選択条件を受け付け、
    該選択条件に合致する操作情報を前記操作ログデータベース記憶部から抽出し、
    該抽出された操作情報に基づいて前記再現を行うアプリケーション・テストシステム。
  4. 請求項1〜3いずれか記載のアプリケーション・テストシステムであって、
    前記対話型アプリケーションは、操作対象となるべき所定の対象データベースに対する操作を行うものであり、
    前記操作情報は、前記対象データベースに記憶されたデータのうち、該排他条件下での操作対象となったデータを特定する情報を、前記排他条件に関連づけて記憶しているアプリケーション・テストシステム。
  5. ロギング部と、操作ログデータベースと、シミュレーション部とを備えたアプリケーション・テストシステムで、ネットワークで接続された複数のコンピュータ上で稼働する対話型アプリケーションに対して、オペレータによってなされた操作を再現し、該対話型アプリケーションの動作をテストするアプリケーション・テスト方法であって、
    前記ロギング部が、前記各コンピュータで、前記対話型アプリケーションに対してオペレータによって行われた操作を、操作ごとに再現可能な操作情報として逐次抽出するステップと、
    前記シミュレーション部が、抽出された前記操作情報を蓄積した前記操作ログデータベースから、前記操作情報に基づいて、前記対話型アプリケーションに対して前記オペレータによって行われた操作を複数のコンピュータによって再現するシミュレーションステップと
    を実行し、
    前記操作情報は、他のコンピュータからの操作がなされないという排他条件下で実行されるべき操作を、操作順序とともに記憶する情報であり、
    前記シミュレーションステップは、各コンピュータに対して、自身が行うべき操作よりも操作順序が前の他のコンピュータによる操作が完了するまでは、自身の操作の開始を停止させながら前記操作順序に従って前記操作を再現させるアプリケーション・テスト方法。
  6. ネットワークで接続された複数のコンピュータ上で稼働する対話型アプリケーションに対して、オペレータによってなされた操作を再現し、該対話型アプリケーションの動作をテストするための機能をコンピュータに実現させるコンピュータプログラムであって、
    前記各コンピュータで、前記対話型アプリケーションに対してオペレータによって行われた操作を、操作ごとに再現可能な操作情報として逐次抽出する機能と、
    前記抽出された操作情報を蓄積した操作ログデータベースから、前記操作情報に基づいて、前記対話型アプリケーションに対して前記オペレータによって行われた操作を複数のコンピュータによって再現するシミュレーション機能とをコンピュータに実現させるとともに、
    前記操作情報は、他のコンピュータからの操作がなされないという排他条件下で実行されるべき操作を、操作順序とともに記憶する情報であり、
    前記シミュレーション機能は、各コンピュータに対して、自身が行うべき操作よりも操作順序が前の他のコンピュータによる操作が完了するまでは、自身の操作の開始を停止させながら前記操作順序に従って前記操作を再現させるコンピュータプログラム。
JP2013009927A 2013-01-23 2013-01-23 アプリケーション・テストシステム Active JP6072547B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013009927A JP6072547B2 (ja) 2013-01-23 2013-01-23 アプリケーション・テストシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013009927A JP6072547B2 (ja) 2013-01-23 2013-01-23 アプリケーション・テストシステム

Publications (2)

Publication Number Publication Date
JP2014142745A JP2014142745A (ja) 2014-08-07
JP6072547B2 true JP6072547B2 (ja) 2017-02-01

Family

ID=51423984

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013009927A Active JP6072547B2 (ja) 2013-01-23 2013-01-23 アプリケーション・テストシステム

Country Status (1)

Country Link
JP (1) JP6072547B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112015845B (zh) 2020-09-29 2024-02-06 北京百度网讯科技有限公司 地图检索测试的方法、装置、设备以及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000339193A (ja) * 1999-05-28 2000-12-08 Sharp Corp テストケース生成装置、テストケース生成方法およびテストケース生成プログラムを記録した媒体
JP2004110267A (ja) * 2002-09-17 2004-04-08 Fuji Xerox Co Ltd テスト実行装置、方法およびプログラム
JP2009116535A (ja) * 2007-11-05 2009-05-28 Sony Corp 自動テストシステム及び自動テスト方法並びにプログラム
JP4888663B2 (ja) * 2008-02-26 2012-02-29 日本電気株式会社 検証用プログラム自動生成装置、その方法及びプログラム
JP2009245353A (ja) * 2008-03-31 2009-10-22 Nomura Research Institute Ltd 情報処理システムおよび情報処理方法
JP2009295082A (ja) * 2008-06-09 2009-12-17 Hitachi Ltd バグ管理システム、および、バグ管理方法
JP5112277B2 (ja) * 2008-12-18 2013-01-09 株式会社日立製作所 再現処理方法、計算機システムおよびプログラム
JP5174706B2 (ja) * 2009-02-12 2013-04-03 株式会社日立ソリューションズ テスト実行システム
JP2011128940A (ja) * 2009-12-18 2011-06-30 Arp Co Ltd ソフトウェアテスト自動化システム及びソフトウェアテスト自動化方法

Also Published As

Publication number Publication date
JP2014142745A (ja) 2014-08-07

Similar Documents

Publication Publication Date Title
US6986125B2 (en) Method and apparatus for testing and evaluating a software component using an abstraction matrix
US7917895B2 (en) Automated software testing and validation system
US7093238B2 (en) Automated software testing and validation system
US8819642B2 (en) Method and system for generating and processing black box test cases
TWI510915B (zh) Computer automated test system and test methods, recording media and program products
US7844929B2 (en) Optimizing test code generation for verification environment
CN107391333B (zh) 一种osd磁盘故障测试方法及系统
WO2022227454A1 (zh) 持续集成自动化测试系统和方法、电子设备、存储介质
JP6592605B2 (ja) Ecuシミュレーション装置
US20140047276A1 (en) Model-based testing of a graphical user interface
US20130339798A1 (en) Methods for automated software testing and devices thereof
US10592703B1 (en) Method and system for processing verification tests for testing a design under test
JP2006309576A (ja) 論理システムの検証装置及び検証方法、記憶媒体及びコンピュータプログラム
CN111249743B (zh) 一种美术资源的检查提交方法和装置
JP6072547B2 (ja) アプリケーション・テストシステム
US10579761B1 (en) Method and system for reconstructing a graph presentation of a previously executed verification test
US8739091B1 (en) Techniques for segmenting of hardware trace and verification of individual trace segments
JP4215255B2 (ja) デグレード確認検査方法、デグレード確認検査システム、およびそのためのプログラム
JP2007249949A (ja) フォーマットする試験結果の文脈を提供する変数値を格納する装置
CN110674038A (zh) 一种对软件测试中错误信息的分类方法及装置
JP2013077124A (ja) ソフトウェアテストケース生成装置
CN105653445A (zh) 一种满足do-178c测试结果的实现方法
US20100293018A1 (en) Test Model Abstraction For Testability in Product Line Engineering
JP6949441B2 (ja) ベクタ適正化装置及びベクタ適正化用プログラム
JP2020098413A (ja) テスト支援装置、テスト支援方法及びコンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161122

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161228

R150 Certificate of patent or registration of utility model

Ref document number: 6072547

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250