(57)【特許請求の範囲】
【請求項１】
試験対象のマンマシンソフトウェアを起動させる計算機と、該マンマシンソフトウェアの操作画面を表示する表示手段と、該操作画面に対してオペレータが操作入力するための入力手段を備えたソフトウェア自動試験装置であって、
前記計算機は、
該マンマシンソフトウェアの操作画面におけるオペレータの操作手順が記録された操作手順データ保存部と、
前記操作手順データ保存部に記録された操作手順に基づいて、任意の再生速度及び繰り返し回数で該マンマシンソフトウェアを自動操作する自動操作手段と、
前記自動操作手段による自動操作の再生速度を調整する再生速度調整手段と、
前記表示手段に表示された該マンマシンソフトウェアの操作画面の画面イメージを画像データとして所定のタイミングで取得する画像データ取得手段と、
前記画像データ取得手段により取得された画像データを保存する画像データ保存部と、
前記画像データ取得手段により取得された最新の画像データを、前回のタイミングで取得された画像データと比較し、該マンマシンソフトウェアの操作画面の更新の有無を判定する画像データ比較手段を有し、
前記画像データ比較手段は、前記画像データ取得手段により取得された最新の画像データが、前回のタイミングで取得された画像データと異なる場合、該最新の画像データを前記画像データ保存部に保存すると共に、前記画像データ取得手段により取得された最新の画像データが、前回のタイミングで取得された画像データと同一である場合、該最新の画像データを破棄し画面非更新カウントを１プラスし、この画面非更新カウントが予め設定された数値より大きくなった場合、前記自動操作手段による自動操作を強制終了し、前記再生速度調整手段により自動操作の再生速度を調整した後、該マンマシンソフトウェアを再起動するとともに、前記自動操作手段による自動操作を開始させることを特徴とするソフトウェア自動試験装置。
【請求項２】
請求項１に記載のソフトウェア自動試験装置であって、前記自動操作手段による自動操作の初回の再生速度は、オペレータにより前記入力手段を介して設定されることを特徴とするソフトウェア自動試験装置。
【請求項３】
請求項１に記載のソフトウェア自動試験装置であって、前記自動操作手段による自動操作の繰り返し回数は、オペレータにより前記入力手段を介して設定されることを特徴とするソフトウェア自動試験装置。
【請求項４】
請求項１に記載のソフトウェア自動試験装置であって、前記再生速度調整手段は、新たに開始される自動操作の再生速度を、前回の自動操作の再生速度よりも低下させることを特徴とするソフトウェア自動試験装置。
【請求項５】
試験対象のマンマシンソフトウェアを起動するとともに、該マンマシンソフトウェアの操作画面におけるオペレータの操作手順に基づいて任意の再生速度及び繰り返し回数で該マンマシンソフトウェアを自動操作する第１のステップ、
前記第１のステップと並行して、表示手段に表示された該マンマシンソフトウェアの操作画面の画面イメージを画像データとして所定のタイミングで取得し保存する第２のステップ、
前記第２のステップにおいて取得された最新の画像データを、前回のタイミングで取得された画像データと比較し、該マンマシンソフトウェアの操作画面の更新の有無を判定する第３のステップ、
前記第３のステップにおいて該マンマシンソフトウェアの操作画面の更新が所定期間無いと判定された場合、該マンマシンソフトウェアの自動操作を強制終了し、自動操作の再生速度を調整する第４のステップを含み、
前記第１のステップ乃至前記第４のステップを繰り返し行い、第１のステップにおける自動操作が任意の繰り返し回数完了した時点で試験終了とすることを特徴とするソフトウェア自動試験方法。
【請求項６】
請求項５に記載のソフトウェア自動試験方法であって、前記第１のステップにおける初回の自動操作の再生速度は、実施可能な範囲内の最高速度に設定されることを特徴とするソフトウェア自動試験方法。
【請求項７】
請求項５に記載のソフトウェア自動試験方法であって、前記第４のステップにおいて自動操作の再生速度を調整する際に、前回の自動速度の再生速度よりも低下させることを特徴とするソフトウェア自動試験方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マンマシンソフトウェアの試験を実施するソフトウェア自動試験装置及びソフトウェア自動試験方法に関し、特に連続操作による負荷耐久試験に関するものである。
【背景技術】
【０００２】
従来、マンマシンソフトウェアの自動試験方法として、該マンマシンソフトウェアの操作画面におけるオペレータの操作手順を自動操作により再現し、入力された操作とその時の操作画面の画像データをそれぞれ別のファイルに順次保存し、保存された操作内容と操作画面を対応させて確認することにより試験結果を判定していた。
【０００３】
さらに、試験結果を効率よく確認するために、特許文献１では、マンマシンソフトウェアを自動操作する手段と、自動操作とこれに対応する画面ログ出力を任意のタイミングで自動記録する手段を備え、自動操作とこれに対応する画面ログ出力を一対一に対応させてリスト化して記録するようにしたソフトウェア自動試験装置が提示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１０２４４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のような従来のソフトウェア自動試験装置においては、自動試験の実施中にシステムの負荷状況等により画面更新が遅れると、自動操作による入力が操作画面とずれてタイミングが合わなくなり、入力に失敗することがあった。また、試験時間を短縮するために自動操作の再生速度を高速化した場合も同様に、画面更新の遅れにより自動操作の入力に失敗することがあり、いずれの場合も以後の試験が正常に継続されないという問題があった。一方、画面更新の遅れを考慮し、自動操作の再生速度を低速化して試験を実施した場合、試験時間が長くなり効率が悪いという問題があった。
【０００６】
本発明は、上記のような課題を解決するためになされたものであり、マンマシンソフトウェアの操作画面におけるオペレータの操作手順を再現する自動試験を最後まで確実に実施すると共に、試験時間を短縮することが可能なソフトウェア自動試験装置及びソフトウェア自動試験方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るソフトウェア自動試験装置は、試験対象のマンマシンソフトウェアを起動させる計算機と、該マンマシンソフトウェアの操作画面を表示する表示手段と、該操作画面に対してオペレータが操作入力するための入力手段を備えたソフトウェア自動試験装置であって、計算機は、該マンマシンソフトウェアの操作画面におけるオペレータの操作手順が記録された操作手順データ保存部と、操作手順データ保存部に記録された操作手順に基づいて、任意の再生速度及び繰り返し回数で該マンマシンソフトウェアを自動操作する自動操作手段と、自動操作手段による自動操作の再生速度を調整する再生速度調整手段と、表示手段に表示された該マンマシンソフトウェアの操作画面の画面イメージを画像データとして所定のタイミングで取得する画像データ取得手段と、画像データ取得手段により取得された画像データを保存する画像データ保存部と、画像データ取得手段により取得された最新の画像データを、前回のタイミングで取得された画像データと比較し、該マンマシンソフトウェアの操作画面の更新の有無を判定する画像データ比較手段を有し、画像データ比較手段は、画像データ取得手段により取得された最新の画像データが、前回のタイミングで取得された画像データと異なる場合、該最新の画像データを画像データ保存部に保存すると共に、画像データ取得手段により取得された最新の画像データが、前回のタイミングで取得された画像データと同一である場合、該最新の画像データを破棄し画面非更新カウントを１プラスし、この画面非更新カウントが予め設定された数値より大きくなった場合、自動操作手段による自動操作を強制終了し、再生速度調整手段により自動操作の再生速度を調整した後、該マンマシンソフトウェアを再起動するとともに、自動操作手段による自動操作を開始させるものである。
【０００８】
また、本発明に係るソフトウェア自動試験方法は、試験対象のマンマシンソフトウェアを起動すると共に、該マンマシンソフトウェアの操作画面におけるオペレータの操作手順に基づいて任意の再生速度及び繰り返し回数で該マンマシンソフトウェアを自動操作する第１のステップと、第１のステップと並行して、表示手段に表示された該マンマシンソフトウェアの操作画面の画面イメージを画像データとして所定のタイミングで取得し保存する第２のステップと、第２のステップにおいて取得された最新の画像データを、前回のタイミングで取得された画像データと比較し、該マンマシンソフトウェアの操作画面の更新の有無を判定する第３のステップと、第３のステップにおいて該マンマシンソフトウェアの操作画面の更新が所定期間無いと判定された場合、該マンマシンソフトウェアの自動操作を強制終了し、自動操作の再生速度を調整する第４のステップを含み、第１のステップ乃至第４のステップを繰り返し行い、第１のステップにおける自動操作が任意の繰り返し回数完了した時点で試験終了とするものである。
【発明の効果】
【０００９】
本発明に係るソフトウェア自動試験装置によれば、マンマシンソフトウェアを自動操作する自動操作手段と、該マンマシンソフトウェアの操作画面の画面イメージを画像データとして所定のタイミングで取得する画像データ取得手段と、画像データ取得手段により取得された最新の画像データを前回のタイミングで取得された画像データと比較し、該マンマシンソフトウェアの操作画面の更新の有無を判定する画像データ比較手段を備えることにより、自動操作の入力失敗により自動操作が正常に継続されていないことを早期に検出し、自動試験を最後まで確実に実施することができると共に、試験時間を短縮することが可能である。
【００１０】
また、本発明に係るソフトウェア自動試験方法によれば、マンマシンソフトウェアを自動操作すると共に、該マンマシンソフトウェアの操作画面の画面イメージを画像データとして所定のタイミングで取得して操作画面の更新の有無を判定し、操作画面の更新が所定期間無いと判定された場合には該マンマシンソフトウェアの自動操作を強制終了し、自動操作の再生速度を調整して自動操作を開始するようにしたので、自動操作の入力失敗により自動操作が正常に継続されていないことを早期に検出し、自動試験を最後まで確実に実施することができると共に、試験時間を短縮することが可能である。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態１に係るソフトウェア自動試験装置の構成を示す概略図である。
【図２】本発明の実施の形態１に係るソフトウェア自動試験装置で試験されるアプリケーションプログラムの操作画面例を示す図である。
【図３】本発明の実施の形態１に係るソフトウェア自動試験装置で試験されるアプリケーションプログラムの操作画面例を示す図である。
【図４】本発明の実施の形態１に係るソフトウェア自動試験装置の自動操作プログラムの動作を示す図である。
【図５】本発明の実施の形態１に係るソフトウェア自動試験装置のスクリーンキャプチャプログラムの動作を示す図である。
【発明を実施するための形態】
【００１２】
実施の形態１．
以下に、本発明の実施の形態１に係るソフトウェア自動試験装置について、図面に基づいて説明する。図１は、本実施の形態１に係るソフトウェア自動試験装置の構成を示している。図１に示すように、ソフトウェア自動試験装置の計算機１は、処理装置２と、この処理装置２により起動されるアプリケーションプログラム３と自動操作プログラム４及びスクリーンキャプチャプログラム５、さらに記憶領域として操作手順データ保存部６と
スクリーンキャプチャデータ保存部７を有している。また、計算機１には、アプリケーションプログラム３の操作画面を表示する表示手段である表示装置８と、該操作画面に対してオペレータが操作入力するための入力手段であるキーボード９及びポインティングマウス１０が接続されている。
【００１３】
試験対象であるアプリケーションプログラム３は、マンマシンソフトウェアであり、実際の運用時とほぼ同じ状態で計算機１により起動される。アプリケーションプログラム３の操作画面におけるオペレータの操作手順は、操作手順データ保存部６に予め記録されている。自動操作手段である自動操作プログラム４は、操作手順データ保存部６に記録された操作手順に基づいて、任意の再生速度及び繰り返し回数でアプリケーションプログラム３を自動操作する（自動操作プログラム４の動作については、図４のフローチャートを用いて詳細に説明する）。
【００１４】
また、画像データ取得手段と画像データ比較手段を備えたスクリーンキャプチャプログラム５は、表示装置８に表示されたアプリケーションプログラム３の操作画面の画面イメージを画像データとして所定のタイミングで取得する。取得された画像データ（以下、スクリーンキャプチャと称す）は、画像データ保存部であるスクリーンキャプチャデータ保存部７に保存される。
【００１５】
また、スクリーンキャプチャプログラム５は、取得された最新のスクリーンキャプチャを、前回のタイミングで取得されたスクリーンキャプチャと比較し、アプリケーションプログラム３の操作画面の更新の有無を判定する。さらに、スクリーンキャプチャプログラム５は、自動操作プログラム４による自動操作の再生速度を調整する再生速度調整手段を備えている（スクリーンキャプチャプログラム５の動作については、図５のフローチャートを用いて詳細に説明する）。
【００１６】
アプリケーションプログラム３を実際に運用する際には、オペレータにより計算機１が起動され、処理装置２がアプリケーションプログラム３を読み出し、処理を開始する。この処理結果として、表示装置８に例えば図２及び図３に示すような操作画面が表示される。オペレータは、表示装置８に表示された操作画面の内容に従い、キーボード９またはポインティングマウス１０により操作入力する。
【００１７】
図２に示す例では、初期画面１１において、操作開始ボタン１２をタッチ（クリック）することにより操作画面が更新され、指示した処理が実行される。また、図３に示す例では、操作方式選択画面１３において、設備Ａの制御１ボタン１４を選択し、確認ボタン１５をタッチすることにより操作画面が更新され、指示した処理が実行される。このように、マンマシンソフトウェアにおいては、オペレータの操作入力により操作画面を更新しながら処理が実行されていく。
【００１８】
このため、オペレータの操作手順を自動操作により再現するソフトウェア自動試験装置においては、自動操作の再生速度を高速にした場合、システムの負荷状況により操作画面の更新が遅れ、自動操作入力が操作画面とずれてタイミングが合わなくなり、入力に失敗することがある。これについて、図２の初期画面１１において操作開始ボタン１２を押下後、図３の操作方法選択画面１３の制御１ボタン１４を押下し、さらに確認ボタン１５を押下する操作を例に挙げて説明する。
【００１９】
自動操作プログラム４による自動操作入力において、図２の初期画面１１から図３の操作方法選択画面１３へ操作画面が更新する前に、制御１ボタン１４の押下操作や確認ボタン１５の押下操作が入力された場合、この操作は正常に入力されず、意図した画面更新が行われない。このため、以降の入力は操作画面と対応が取れておらず失敗となる。本実施の形態１に係るソフトウェア自動試験装置は、上記のような自動操作の入力失敗を早期に検出することにより、自動試験を最後まで確実に実施し、且つ試験時間を短縮するものである。
【００２０】
以下に、本実施の形態１に係るソフトウェア自動試験装置を用いた試験方法について説明する。まず、第１のステップとして、アプリケーションプログラム３を起動すると共に、自動操作プログラム４は、アプリケーションプログラム３の操作画面におけるオペレータの操作手順を操作手順データ保存部６から読み出し、これに基づいて任意の再生速度及び繰り返し回数でアプリケーションプログラム３を自動操作する。
【００２１】
この第１のステップと並行して、第２のステップでは、表示装置８に表示されたアプリケーションプログラム３の操作画面の画面イメージを、スクリーンキャプチャとして所定のタイミングで取得し、スクリーンキャプチャデータ保存部７に保存する。続いて、第３のステップでは、第２のステップにおいて取得された最新のスクリーンキャプチャを、前回のタイミングで取得されたスクリーンキャプチャと比較し、アプリケーションプログラム３の操作画面の更新の有無を判定する。
【００２２】
さらに、第４のステップでは、第３のステップにおいてアプリケーションプログラム３の操作画面の更新が所定期間無いと判定された場合、アプリケーションプログラム３の自動操作を強制終了し、自動操作の再生速度を調整する。以上の第１のステップ乃至第４のステップを繰り返し行い、第１のステップにおける自動操作が任意の繰り返し回数完了した時点で試験終了とする。
【００２３】
第４のステップにおける自動操作の再生速度調整について説明する。自動操作プログラム４は、予め設定された任意の再生速度で自動操作を開始するが、その再生速度が低速であるほど自動操作を完了するまでに長い時間を要する。このため、試験時間を短縮するためには、自動操作の再生速度はより高速であることが望ましい。
【００２４】
そこで、第１のステップにおける初回の自動操作の再生速度を、実施可能な範囲内の最高速度に設定する。また、第４のステップにおいて自動操作の再生速度を調整する際には、前回の自動操作の再生速度よりも若干低下させる。このように、自動操作の再生速度を段階的に低減することにより、自動試験を完了することが可能な範囲内の最高速度で自動試験を実施することができる。
【００２５】
次に、自動操作プログラム４の動作について、図４のフローチャートを用いて説明する。なお、計算機１は起動後、表示装置８にアプリケーションプログラム３の初期画面を表示するものとし、この状態から自動操作プログラム４の起動を行なう。自動操作プログラム４は起動後、ステップ１（Ｓ１）において、設定値（動作パラメータ）として初回の再生速度を、続いてステップ２（Ｓ２）において繰り返し回数をファイルから読込む。
【００２６】
なお、Ｓ１、Ｓ２で読込まれた動作パラメータは、オペレータにより入力手段を介して（例えばキーボード９により）設定され、所定のファイルに保存されたものである。所定のファイルとは、自動操作プログラム４が読込むべきファイルとして予め決められたファイル名の保存フォルダである。
【００２７】
次に、ステップ３（Ｓ３）において、自動操作プログラム４は、操作手順データ保存部６から操作手順データを読込む。操作手順データには、時系列に行なうべき操作内容が記録されている。続いてステップ４（Ｓ４）において、自動操作タイマで再生速度を設定し、ステップ５（Ｓ５）において自動操作タイマが満了した場合（Ｙｅｓ）、ステップ６（Ｓ６）に進み、操作手順データに基づいて模擬的な操作入力、すなわち自動操作入力を実行する。またＳ５において自動操作タイマが満了していない場合（Ｎｏ）には、満了するまで入力を待つ。
【００２８】
Ｓ６の後、ステップ７（Ｓ７）において、操作手順データを全て入力済みでない場合（Ｎｏ）、Ｓ４に戻り、自動操作タイマで設定した再生速度で操作手順データの自動操作入力を続ける。一方、Ｓ７において、操作手順データを全て入力済みの場合（Ｙｅｓ）には、ステップ８（Ｓ８）に進み、Ｓ２で読込んだ繰り返し回数を全て完了したかを確認し、全て完了した場合（Ｙｅｓ）、自動操作プログラムは終了する。Ｓ８において繰り返し回数を全て完了していない場合（Ｎｏ）にはＳ４に戻る。
【００２９】
次に、スクリーンキャプチャプログラム５の動作について、図５のフローチャートを用いて説明する。スクリーンキャプチャプログラム５は、起動後、ステップ１１（Ｓ１１）においてキャプチャタイマの時間設定を行なう。キャプチャタイマは、表示装置８の操作画面をスクリーンキャプチャとして取得及び保存するタイミングを制御するタイマである。Ｓ１１においては、キャプチャタイマの時間設定を行い（例えば５秒）、キャプチャタイマを起動する。
【００３０】
続いて、ステップ１２（Ｓ１２）において、キャプチャタイマが満了した場合（Ｙｅｓ）、ステップ１３（Ｓ１３）に進み、表示装置８に表示されている操作画面のスクリーンキャプチャを取得する。次に、ステップ１４（Ｓ１４）において、今回取得した最新のスクリーンキャプチャと、前回のタイミングで取得したスクリーンキャプチャの比較を行う。
【００３１】
Ｓ１４において、今回取得した最新のスクリーンキャプチャと、前回のタイミングで取得したスクリーンキャプチャが同一である場合、ステップ１５（Ｓ１５）に進み、最新のスクリーンキャプチャを破棄し、画面非更新カウントを１プラスする。さらに、ステップ１６（Ｓ１６）において、画面非更新カウントが予め設定された数値（ここでは５）よりも大きくなった場合、自動操作プログラム４による自動操作が正常に継続されていない（操作入力に失敗している）と判断し、ステップ１７（Ｓ１７）においてリソース情報を取得、保存する。なお、リソース情報とは、ＣＰＵ使用率、メモリ使用量等を含む情報である。
【００３２】
続いて、ステップ１８（Ｓ１８）において、自動操作プログラム４を強制終了する。さらに、ステップ１９（Ｓ１９）で、再生速度調整手段により自動操作プログラム４の再生速度を前回よりも低下させた後、ステップ２０（Ｓ２０）で被テストプログラム（アプリケーションプログラム３）と自動操作プログラム４を再起動する。これにより、前回よりも再生速度を低下させた自動操作が新たに開始される。
【００３３】
一方、Ｓ１４において、今回取得した最新のスクリーンキャプチャと前回のタイミングで取得したスクリーンキャプチャが同一でない場合には、ステップ２１（Ｓ２１）に進み、最新のスクリーンキャプチャをスクリーンキャプチャデータ保存部７に保存する。なお、Ｓ２１では、画面非更新カウントはカウントされない。さらに、ステップ２２（Ｓ２２）に進み、キャプチャタイマを起動し、Ｓ１２、Ｓ１３・・の処理を繰り返す。また、Ｓ１６において、画面非更新カウントが予め設定された数値（ここでは５）以下であった場合もＳ２２に進み、キャプチャタイマを起動し、Ｓ１２、Ｓ１３・・の処理を繰り返す。
【００３４】
本実施の形態１に係るソフトウェア自動試験装置及び試験方法によれば、自動操作プログラム４によりアプリケーションプログラム３を自動操作しながら、これと並行して該アプリケーションプログラム３の操作画面の更新の有無をスクリーンキャプチャプログラム５により監視するようにしたので、自動操作の入力に失敗し、自動操作が正常に継続されていないことを早期に検出することが可能である。これにより、自動試験を最後まで確実に実施することができ、試験時間を短縮することが可能である。
【００３５】
また、初回の自動操作の再生速度を実施可能な最高速度に設定し、自動操作の入力失敗を検出した後は、自動操作の再生速度を前回の再生速度よりも若干低下させるように調整することにより、自動試験を完了することが可能な範囲内の最高速度、すなわち連続負荷試験として最適な条件で試験を実施することができる。
【００３６】
また、スクリーンキャプチャプログラム５は、自動操作プログラム４に対して、自動操作の入力失敗を検出した時に強制終了・再起動のＩ／Ｆを持つ以外には、処理タイミングを合わせる必要が無く、それぞれ独立して動作している。このため、例えばスクリーンキャプチャプログラム５におけるスクリーンキャプチャの比較処理に時間を要したとしても、自動操作の高速化を妨げることはない。
【００３７】
さらに、自動操作プログラム４及びスクリーンキャプチャプログラム５は、アプリケーションプログラム３との間に通信やデータ共有を行う必要がないため、アプリケーションプログラム３を試験用に改造する必要がなく、実際の運用に近い状態で信頼性の高い自動試験を実施することができる。
【産業上の利用可能性】
【００３８】
本発明は、マンマシンソフトウェアの試験を実施するソフトウェア自動試験装置として利用することができる。
【符号の説明】
【００３９】
１  計算機、２  処理装置、３  アプリケーションプログラム、４  自動操作プログラム、５  スクリーンキャプチャプログラム、６  操作手順データ保存部、７  スクリーンキャプチャデータ保存部、８  表示装置、９  キーボード、１０  ポインティングマウス、１１  初期画面、１２  操作開始ボタン、１３  操作方式選択画面、１４  制御１ボタン、１５  確認ボタン。
【図１】
0005591072.tif 000002
【図２】
0005591072.tif 000003
【図３】
0005591072.tif 000004
【図４】
0005591072.tif 000005
【図５】
0005591072.tif 000006