説明

GUIテスト支援システム及びテスト支援用アプリケーションプログラム

【課題】ウインドウズGUI及びウエブGUIの操作記録再生機能の2系統を実装し、操作対象により両機能の記録再生状態を切替えて利便性を十分に発揮させるGUIテスト支援システムを提供する。
【解決手段】このGUIテスト支援システムは、OS1、テスト対象のウインドウズGUI及びウエブGUIを有するアプリケーションプログラム2、アプリケーションプログラムのテストをオブジェクト記述方式で実行するテスト実行ツール3、テスト実行ツール3で得られたテストスクリプトを格納する記憶装置4を備え、テスト実行ツール3は、ウインドウズGUI及びウエブGUI操作経緯をそれぞれスクリプトとして個別に格納するGUI操作記録部10a、11aと、個別のスクリプトを合体して格納するスクリプトマージ処理部12bと、合体して格納したスクリプトを用いてウインドウズGUI及びウエブ操作経緯をそれぞれ再現するGUI操作再生部10b、11bとを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、GUI(グラフィカル ユーザ インタフェース)テスト支援システム及び当該システムに用いるテスト支援用アプリケーションプログラムに係り、特に、スクリプトのメンテナンス性を損なわない状態でウインドウズ(登録商標)系GUI及びウエブ系GUIの混在しているスクリプト記録再生を実現するGUIテスト支援システム及びテスト支援用アプリケーションプログラムに関する。
【背景技術】
【0002】
最近のコンピュータ技術の長足の進歩に伴って、コンピュータを用いたシステム開発規模が巨大化しており、それにより、アプリケーションの開発についても、複雑化が進んでいる。このため、使用するアプリケーションの品質を高く保持するためには、必要とするテスト工程の工数も多くなり、かつ、煩雑なものになり、その上、そのテストの重要性は留まることなく増大する傾向にある。
【0003】
アプリケーションの置かれているこのような背景の中で、アプリケーションのテストを自動化することは、人為的なミスが少なくなり、その結果、高い信頼性を有するものとなり、かつ、手動により行う場合に比べてテスト工程の工数を大幅に低減できることから、GUIを有するアプリケーションのテスト時においても、自動化テストによる実行ツールを適用することは極めて有効な手段である。特に、GUIを有するアプリケーションのテスト時には、以前に行われたユーザによるテスト操作経緯を、一旦記録部に記録し、その記録内容をテスト用スクリプトの形でファイル化しておけば、以後、当該アプリケーションを改造する場合においても、過去にファイル化したテスト用スクリプトを適宜自動再生することにより、改造を行っても既存部分に不具合が発生していないことを、テスト工程の工数を増やすことなく確認できる点において利点を有するものである。
【0004】
最近になって、GUIを有するアプリケーションのテスト時にテスト自動実行ツールを適用する手段として、特開2000−112784号公報に開示されたプログラムテスト支援装置が提案されている。
【0005】
この特開2000−112784号公報に開示のプログラムテスト支援装置は、被テストプログラムに対するユーザの入力操作を操作手順データとして記録する操作記録部20と、操作記録部20に記録された操作手順データから入力操作の入力項目を抽出し、入力項目毎に一つ以上の入力値を設定するテストデータ編集部30と、設定された入力値を組み合わせて複数のテストケースを自動生成するテストケース生成部40と、操作記録部20に記録された操作手順データの入力項目の入力値を各テストケースの入力値に置換して各テストケース毎の新たな操作手順データを生成し、生成した新たな操作手順データに基づいて被テストプログラムをテストする操作再生部60と、被テストプログラムのテスト後に各テストケース毎の入力値の評価を行うテスト結果分析評価部70とを有し、入力項目毎に一つ以上の入力値をスクリプト編集により適宜変化させることにより、種々のテストパターンが容易に生成され、それによりこれらのテストパターンを用いて被テストプログラムのテストを自動実行できるようにしたものである。
【0006】
一般に、GUIテスト自動実行プログラムにおいては、テストを自動実行させる操作が記されるスクリプトとして、大きく分けると、オブジェクト記述方式及び座標軸記述方式の2種類に分類できることが知られている。この場合、オブジェクト記述方式は、例えば、中心座標が(100、200)に位置するボタンAをクリック操作を表す際に、「ボタンAをクリック」というオブジェクトを主体とした表現が用いられており、座標軸記述方式は、中心座標が(100、200)に位置するボタンAをクリック操作を表す際に、「(100、200)をクリック」という座標を主体とした表現が用いられている。
【0007】
ところで、GUIテストを行うテスト自動実行ツールとしては、対象となるアプリケーションのコントロール配置座標変更の影響を受けず、また、ユーザがスクリプトを目にした際、どのような操作を行ったかが容易に理解できるオブジェクト記述方式を用いることが好ましい。この場合、オブジェクト記述方式は、ウインドウズ系統、ウエブ系統の2種類に分類される。その理由は、ウインドウズ系統とウエブ系統のそれぞれにおいてオブジェクト認識の概念が根本的に異なっているためで、GUIテストを行う自動実行ツールも、一般に、ウインドウズ系統を対象としたものまたはウエブ系統を対象としたものがそれぞれ専用的に使用されている。
【特許文献1】特開2000−112784号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
ウインドウズ系統及びウエブ系統の2種類に分類されるオブジェクト記述方式においては、特開2000−112784号公報に開示のプログラムテスト支援装置のように、ウインドウズ系統またはウエブ系統のいづれかの系統を対象とした専用のGUIテスト自動実行ツールが存在しているが、実際には、ウエブアプリケーションにおいてもダイアログやウインドウズアプリケーションを併用しているものが多く、一連の操作が行われた際に、ウインドウズ系統とウエブ系統とが混在しているものの操作に対応することができないものである。
【0009】
すなわち、オブジェクト記述方式を用いれば、スクリプトの可読性、メンテナンス性が高いことから、オブジェクト記述方式によるテスト自動実行スクリプトの実現を試みようとしても、ウインドウズGUI操作に専用の動作部分と、ウエブGUI操作に専用の動作部分とが混在し、それらの動作は互いに他の系統の動作によって制限を受けることから、GUIテスト自動実行ツールの利便性を十分に発揮できるものではない。
【0010】
本発明は、このような技術的背景に鑑みてなされたもので、その目的は、ウインドウズGUIに対する操作記録再生機能とウエブGUIに対する操作記録再生機能の2系統を実装し、操作対象がどちらの系統のGUIであるかを監視しながら両機能の記録再生状態を切替えることにより、利便性を十分に発揮できるようにしたGUIテスト支援システムを提供することにある。
【課題を解決するための手段】
【0011】
前記目的を達成するために、本発明によるGUIテスト支援システムは、OSと、OSによってそれぞれ制御される入力操作部及びテスト対象となるOS系GUI及びウエブGUIを有するアプリケーションプログラム及びそのアプリケーションプログラムのテストをオブジェクト記述方式に従って実行するテスト実行ツールと、テスト実行ツールで得られたテストスクリプトを格納するテストスクリプトファイルを有する記憶装置とを備え、テスト実行ツールは、入力操作部によるOS系GUI操作経緯をテストスクリプトファイルにスクリプトとして格納するOS系GUI操作記録部及びテストスクリプトファイルに格納したOS系GUI操作経緯を再現するOS系GUI操作再生部を有するOS系GUI操作記録再生機能と、入力操作部によるウエブGUI操作経緯をテストスクリプトファイルにスクリプトとして格納するウエブ操作記録部及びテストスクリプトファイルに格納したウエブGUI操作経緯を再現するウエブGUI操作再生部を有するウエブGUI操作記録再生機能と、OS系GUI操作記録再生機能及びウエブGUI操作再生機能を管理するテスト管理部及びテストスクリプトファイルに格納したOS系GUI操作経緯及びウエブGUI操作経緯をマージしてテストスクリプトファイルに格納するスクリプトマージ処理部を有するテスト自動実行マネージャ機能とを備えているものである。
【0012】
また、前記目的を達成するためのGUIテスト支援システムをオブジェクト記述方式に従って実行動作するOS系GUI及びウエブGUIを有するテスト支援用アプリケーションプログラムであって、入力操作部に基づくOS系GUI操作経緯をスクリプトとしてテストスクリプトファイルに格納する第1手段と、入力操作部に基づくウエブGUI操作経緯をスクリプトとしてテストスクリプトファイルに格納する第2手段と、テスト管理部の制御によってOS系GUI操作記録部に記録したOS系GUI操作経緯を再現させる第3手段と、テスト管理処理部の制御によってウエブGUI操作記録部に記録したウエブGUI操作経緯を再現させる第4手段と、スクリプトマージ処理部の制御の基にテストスクリプトファイルにそれぞれ格納されたOS系GUI操作経緯及びウエブGUI操作経緯とをマージしてテストスクリプトファイルに格納する第5手段とを選択的に実行されるものである。
【発明の効果】
【0013】
以上のように、本発明のGUIテスト支援システム及びこのGUIテスト支援システムをオブジェクト記述方式に従って実行動作させるウインドウズ(OS系)GUI及びウエブGUIを有するテスト支援用アプリケーションプログラムによれば、ウインドウズGUI、ウエブGUIの種別に係わりなく、オブジェクト記述方式によるスクリプトのテスト自動実行が可能となるもので、オブジェクト記述方式を用いたことにより、座標軸記述方式を用いた場合に比べ、テスト対象GUIにレイアウト変更が生じる度に以前に記録したスクリプトの再編集を行ったり、GUI操作手順の再記録を行ったりする必要がなく、ウインドウズ系統及びウエブ系統の双方に対応させることが可能であるので、メンテナンス性に優れたテスト自動化の対象を拡大させることができ、アプリケーションの開発における生産性の向上やアプリケーションの品質を向上させることができるという効果がある。
【発明を実施するための最良の形態】
【0014】
以下、本発明の実施の形態を図面を参照して説明する。
【0015】
図1は、本発明によるGUIテスト支援システムの実施の形態に係るもので、その要部構成を示すブロック図であり、このGUIテスト支援システムは、コンピュータシステムにおけるハードウエア資源を利用することによって実現されるものである。
【0016】
図1に示すように、このGUIテスト支援システムは、ウインドウズOS(オペレーティングシステム)1と、テストの対象となるGUIアプリケーションプログラムが格納されたテスト対象GUI群2と、テストの対象となるGUIアプリケーションプログラムのテストを実行するGUIテスト自動実行ツール3と、テストスクリプトファイルを内包する記憶装置4と、入力操作機器であるキーボード5及びマウス6と、表示機器であるディスプレイ7とからなっている。ここで、ウインドウズOS1は、テスト対象GUI群2、GUIテスト自動実行ツール3、キーボード5、マウス6、ディスプレイ7にそれぞれ結合され、GUIテスト自動実行ツール3は、記憶装置4に結合されている。
【0017】
そして、テスト対象GUI群2は、ウインドウズGUI8aを内包するウインドウズフォーム8とウエブGUI9aを内包するウエブブラウザ9とによって構成される。また、GUIテスト自動実行ツール3は、ウインドウズGUI操作記録部10aとウインドウズGUI操作再生部10bとを有するウインドウズGUI操作記録再生機能10と、ウエブGUI操作記録部11aとウエブGUI操作再生部11bとを有するウエブGUI操作記録再生機能11と、テスト管理部12aとスクリプトマージ処理部12bとを有するテスト自動実行マネージャ機能12とによって構成される。さらに、記憶装置4は、ウインドウズGUI用テストスクリプトファイル13aとウエブGUI用テストスクリプトファイル13bとテストスクリプトファイル13cとによって構成される。
【0018】
この場合、GUIテスト自動実行ツール3及び記憶装置4で実行されるテスト動作の概要について述べると、ウインドウズGUI操作記録部10aは、ウインドウズGUIに対する入力操作が行われたとき、その入力操作内容を記録し、記録した入力操作内容をテストスクリプトとしてウインドウズGUI用テストスクリプトファイル13aに操作された順序に従って一時的に記憶するように動作する。また、ウインドウズGUI操作再生部10bは、ウインドウズGUIに対する再生操作が指示されたとき、ウインドウズGUI用テストスクリプトファイル13aに記録したウインドウズGUIに対する入力操作を再現するように動作する。
【0019】
また、ウエブGUI操作記録部11aは、ウエブGUIに対する入力操作が行われたとき、その入力操作内容を記録し、記録した入力操作内容をテストスクリプトとしてウエブGUI用テストスクリプトファイル13bに操作された順序に従って一時的に記憶するように動作する。また、ウエブGUI操作再生部11bは、ウインドウズGUIに対する再生操作が指示されたとき、ウインドウズGUI用テストスクリプトファイル13bに記録したウインドウズGUIに対する入力操作を再現するように動作する。
【0020】
さらに、テスト管理部12aは、ウエブGUI操作再生部10bとウエブGUI操作再生部11bとで行われる入力操作の再現処理を管理するものであり、スクリプトマージ処理部12bは、ウインドウズGUI用テストスクリプトファイル13aとウエブGUI用テストスクリプトファイル13bとを結合するとともに、結合したスクリプトをテストスクリプトファイル13cに格納するように動作する。
【0021】
前記構成によるGUIテスト支援システムの動作は、次のとおりである。
【0022】
まず、ユーザがテスト対象GUI群2に格納されているGUIアプリケーションプログラムの起動処理を行うと、ウインドウズOS1の制御によって、GUIアプリケーションプログラムが起動し、ディスプレイ7に入力操作画面が表示される。
【0023】
図2は、このときディスプレイ7に表示される入力操作画面と操作された際にOS内部で発生するイベント動作を示した一例である。
【0024】
このような入力操作画面が表示されたとき、ユーザがその入力操作画面の操作指示に従ってボタンAをクリック操作すると、ウインドウズOS1はユーザが行った操作に対応したイベントメッセージ(a)をOS内部で発生する。この時点に、GUIテスト自動実行ツール3は、ウインドウズGUI操作記録部10aがこの操作時のイベントメッセージ(a)を読み込み、スクリプトという形でウインドウズGUI用テストスクリプトファイル13aに一時記憶する。
【0025】
図3は、記録されたスクリプトファイルを用いてGUIテスト自動実行ツール3がGUIアプリケーションプログラムを自動実行する動作概念を示した一例である。
【0026】
GUIテスト自動実行ツール3は、保存されたスクリプトファイルを読み込み、対応するイベントメッセージ(b)を発生させることによりボタンAがクリックされた操作を再現する。
【0027】
図4は、この後、GUIテスト自動実行ツール3において、入力操作画面の指示によりユーザがウエブGUI9a→ウインドウズGUI8a→ウエブGUI9aの順に操作が行われた場合の処理手順を示すフローチャートである。
【0028】
以下、このフローチャートに従ってGUIテスト自動実行ツール3で行われる操作記録動作について説明する。
【0029】
まず、ステップS1において、テスト自動実行マネージャ機能12は、ユーザからの記録開始操作を受けると、テスト管理部12aを通して、ウインドウズGUI操作記録再生機能10及びウエブGUI操作記録再生機能11を起動する。
【0030】
次に、ステップS2において、テスト自動実行マネージャ機能12は、ユーザによるテスト対象GUI群2に格納されているGUIアプリケーションプログラムの操作が行われると、起動したウインドウズGUI操作記録再生機能10のウインドウズGUI操作記録部10a及び起動したウエブGUI操作記録再生機能11のウエブGUI操作記録処理部11aがそれぞれ当該ユーザの操作経緯をスクリプトの形で対応するウインドウズGUI用テストスクリプトファイル13aまたはウエブGUI用テストスクリプトファイル13bに格納する。
【0031】
次いで、ステップS3において、ユーザによるGUIアプリケーションプログラムに対する一通りの操作が終了してユーザが操作記録を停止するためのホットキーを押圧したか否かが判断される。そして、ホットキーを押圧したと判断した(Y)ときは次のステップS4に移行する。一方、ホットキーを押圧していないと判断した(N)ときは記録停止命令待ちループ内でステップS2及びステップS3の処理を繰り返し実行する。
【0032】
続いて、ステップS4において、テスト自動実行マネージャ機能12は、ウインドウズGUI操作記録再生機能10及びウエブGUI操作記録再生機能11の動作を停止する。
【0033】
その後、ステップS5において、テスト自動実行マネージャ機能12は、ウインドウズGUI用テストスクリプトファイル13aに格納したスクリプトとウエブGUI用テストスクリプトファイル13bに格納したスクリプトとをマージしてそのマージしたスクリプトをテストスクリプトファイル13cに格納する。そして、この処理が終了すると、この一連の操作記録処理が終了する。
【0034】
次に、図5は、操作経緯記録時におけるウインドウズGUI操作記録再生機能10のウインドウズGUI操作記録部10aで実行される動作の詳細を示すフローチャートであって、図4に図示のステップS2に相当するものである。
【0035】
始めに、ステップS10において、ユーザによるGUIアプリケーションプログラムに対する操作が開始されたとき、ウインドウズGUI操作記録部10aは、操作によって内部に発生されたウインドウズメッセージの発信元がウエブGUI9aであるか否かを判断する。ウインドウズメッセージの発信元がウエブGUI9aでなく、ウインドウズGUI8aであると判断した(N)ときは次のステップS11に移行し、一方、ウインドウズメッセージの発信元がウエブGUI9aであると判断した(Y)ときは他のステップS13に移行する。
【0036】
次に、ステップS11において、ウインドウズメッセージの発信元がウインドウズGUI8aであるので、得られたウインドウズメッセージを図示しない一時的なワークエリアであるメモリバッファに蓄積する。なお、この処理は、ウインドウズGUIの操作経緯の記録に相当するものである。
【0037】
次いで、ステップS12において、ウインドウズGUI操作記録部10aは、テスト自動実行マネージャ機能12からユーザの操作終了を表す終了命令を受けたか否かを判断する。そして、受信終了命令を受けていないと判断した(N)ときはウインドウズメッセージの到来を監視するステップS10乃至ステップS12の処理を繰り返し実行する。一方、受信終了命令を受けたと判断した(Y)ときは他のステップS18に移行する。
【0038】
一方、ステップS13において、ウインドウズメッセージの発信元がウエブGUI9aであるので、メモリバッファにウインドウズGUI→ウエブGUI切替命令を蓄積する。
【0039】
次に、ステップS14において、ウインドウズGUI操作記録部10aは、テスト自動実行マネージャ機能12からユーザの操作終了を表す終了命令を受けたか否かを判断する。そして、受信終了命令を受けていないと判断した(N)ときには次のステップS15へ移行し、一方、受信終了命令を受けていると判断した(Y)ときには他のステップS18に移行する。
【0040】
次いで、ステップS15において、ウインドウズGUI操作記録部10aは、ウインドウズメッセージの発信元がウエブGUI9aであるか否かを判断する。ウインドウズメッセージの発信元がウエブGUI9aでなく、ウインドウズGUI8aであると判断した(N)ときは、ステップS16において、ウエブGUI操作記録再生機能11に対してウエブGUI→ウインドウズGUI切替命令を発信する。一方、ウインドウズメッセージの発信元がウエブGUI9aであると判断した(Y)ときは、ウインドウズメッセージ受信ループ内でステップS14乃至ステップS15の処理を繰り返し実行する。
【0041】
続く、ステップS17において、ウインドウズGUI操作記録部10aは、ウインドウズメッセージの発信元がウインドウズGUI8aであるので、メモリバッファにウエブGUI→ウインドウズGUI切替命令を蓄積し、ステップS10の処理へ移行する。
【0042】
最後に、ステップS18において、ウインドウズGUI操作記録部10aは、テスト自動実行マネージャ機能12から終了命令を受信したので、これまでメモリバッファに蓄積してきた操作情報をスクリプトの形でウインドウズGUI用テストスクリプトファイル13aに格納し、この処理が終了すると、この一連の処理が終了する。
【0043】
図6は、操作経緯記録時におけるウエブGUI操作記録再生機能11のウエブGUI操作記録部11aで実行される動作の詳細を示すフローチャートであって、同じく図4に図示のステップS2に相当するものである。そして、この動作は、図5に図示した動作と並行して実行される。
【0044】
始めに、ステップS20において、ユーザによるGUIアプリケーションプログラムに対する操作が開始されたとき、ウエブGUI操作記録部11aは、内部に発生したウエブブラウザイベントをメモリバッファに蓄積する。なお、この処理は、ウエブGUIの操作経緯の記録に該当するものである。
【0045】
次に、ステップS21において、ウエブGUI操作記録部11aは、テスト自動実行マネージャ機能12からユーザの操作終了を表す終了命令を受けたか否かを判断する。そして、終了命令を受けていないと判断した(N)ときは次のステップS22に移行し、一方、終了命令を受けたと判断した(Y)ときには他のステップS24に移行する。
【0046】
次いで、ステップS22において、ウエブGUI操作記録部11aは、ウインドウズGUI操作記録再生機能10からのウエブGUI→ウインドウズGUI切替命令を受信した否かを判断する。そして、ウエブGUI→ウインドウズGUI切替命令を受信したと判断した(Y)ときは次のステップS23に移行し、一方、ウエブGUI→ウインドウズGUI切替命令を受信していないと判断した(N)ときは終了命令またはウエブGUI→ウインドウズGUI切替命令の受信を監視するステップS20乃至ステップS22の処理を繰り返し実行する。
【0047】
続いて、ステップS23において、ウエブGUI操作記録部11aは、ウエブGUIからウインドウズGUIへの移行切替命令をメモリバッファに蓄積し、その蓄積を行うと、ウエブGUIからウインドウズGUIへの移行切替命令の受信を監視するステップS20乃至ステップS22の処理を繰り返し実行する。
【0048】
最後に、ステップS24において、ウエブGUI操作記録部11aは、テスト自動実行マネージャ機能12から終了命令を受信しことにより、これまでメモリバッファに蓄積してきた操作情報をスクリプトの形でウエブGUI用テストスクリプトファイル13bに格納する。そして、この格納処理が終了すると、この一連の処理が終了する。
【0049】
次に、図5、図6に図示したフローチャートにおいて説明したウインドウズGUI操作記録部10a及びウエブGUI操作記録部11aから出力され、それぞれ、ウインドウズGUI用テストスクリプトファイル13a及びウエブGUI用テストスクリプトファイル13bに格納されたテストスクリプトファイルに基づいてスクリプトマージ処理部12bが実行するマージ処理について説明する。
【0050】
図7は、図5に図示したフローチャートのステップS18においてウインドウズGUI用テストスクリプトファイル13aに格納されたテストスクリプトファイルのイメージの一例を示すもので、このイメージは、ウエブGUI9a→ウインドウズGUI8a→ウエブGUI9aへの各切替を、ユーザ操作によって行われた際の例を示すものである。
【0051】
このユーザ操作によってテストスクリプトファイルが出力されたときのウインドウズGUI操作記録部10aで実行される主たる動作フローは、図5に図示したフローチャートのステップS10→ステップS13(スクリプトデータ13a01を形成する)→ステップS14→ステップS15→ステップS16→ステップS17(スクリプトデータ13a02を形成する)→ステップS10→ステップS11(スクリプトデータ13a03を形成する)→ステップS12→ステップS10→ステップS13(スクリプトデータ13a04を形成する)→ステップS14→ステップS18となり、このときの操作経緯がウインドウズGUI用テストスクリプトファイル13aに記述される。
【0052】
また、図8は、図6に図示したフローチャートのステップS24においてウエブGUI用テストスクリプトファイル13bに格納されたテストスクリプトファイルのイメージの一例を示すもので、このイメージは、ウエブGUI9a→ウインドウズGUI8a→ウエブGUI9aへの各切替を、ユーザ操作によって行われた際の例を示すものである。
【0053】
このユーザ操作によってテストスクリプトファイルが出力されたときのウエブGUI操作記録部11aで実行される主たる動作フローは、図6に図示したフローチャートのステップS20(スクリプトデータ13b01を形成する)→ステップS21→ステップS22→ステップS23(スクリプトデータ13b02を形成する)→ステップS20(スクリプトデータ13b03を形成する)→ステップS21→ステップS24となり、このときの操作経緯がウエブGUI用テストスクリプトファイル13bに記述される。
【0054】
次に、図9は、操作記録時におけるテスト自動実行マネージャ機能12に含まれるスクリプトマージ処理部12bの動作経緯を示すフローチャートであって、図4に示したステップS5の処理に該当するものである。そして、これらの動作はスクリプトマージ処理部12bが実行するものである。
【0055】
まず、ステップS30において、スクリプトマージ処理部12bは、ウインドウズGUI用テストスクリプトファイル13a及びウエブGUI用テストスクリプトファイル13bを開く。
【0056】
次に、ステップS31において、スクリプトマージ処理部12bは、ウインドウズGUI用テストスクリプトファイル13aのスクリプトファイルを1行だけ読み込む。
【0057】
次いで、ステップS32において、スクリプトマージ処理部12bは、読み込んだスクリプトファイルがファイルの終端であるか否かを判断する。そして、ファイルの終端でないと判断した(N)ときは次のステップS33に移行し、一方、ファイルの終端であると判断した(Y)ときは他のステップS39に移行する。
【0058】
続いて、ステップS33において、スクリプトマージ処理部12bは、読み込んだファイルの内容をメモリバッファに追加する。
【0059】
続く、ステップS34において、スクリプトマージ処理部12bは、読み込んだ1行がウインドウズGUI→ウエブGUI切替命令であるか否かを判断する。そして、ウインドウズGUI→ウエブGUI切替命令であると判断した(Y)ときはウエブGUI用テストスクリプトファイル12bの読み込みループに移行し、一方、ウインドウズGUI→ウエブGUI切替命令でないと判断した(N)ときはステップS31乃至ステップS34の処理を繰り返し実行する。
【0060】
また、ステップS35において、スクリプトマージ処理部12bは、操作対象がウエブGUI9aに移ったことにより、今度は、ウエブGUI用テストスクリプトファイル13bのスクリプトファイルを1行だけ読み込む。
【0061】
次に、ステップS36において、スクリプトマージ処理部12bは、読み込んだスクリプトファイルがファイルの終端であるか否かを判断する。そして、ファイルの終端でないと判断した(N)ときは次のステップS37に移行し、一方、ファイルの終端であると判断した(Y)ときはウインドウズGUIテストスクリプトファイル12aの読み込みループに移行する。
【0062】
次いで、ステップS37において、スクリプトマージ処理部12bは、読み込んだ1行がウエブGUI→ウインドウズGUI切替命令であるか否かを判断する。そして、ウエブGUI→ウインドウズGUI切替命令であると判断した(Y)ときはウインドウズGUI用テストスクリプトファイル12aの読み込みループに移行し、一方、ウエブGUI→ウインドウズGUI切替命令でないと判断した(N)ときは次のステップS38に移行する。
【0063】
続いて、ステップS38において、スクリプトマージ処理部12bは、読み込んだファイルの内容をメモリバッファに追加する。この処理が終了すると、ステップS35乃至ステップS37の処理を繰り返し実行する。
【0064】
最後に、ステップS39において、スクリプトマージ処理部12bは、ウインドウズGUI用テストスクリプトファイル12a及びGUI用テストスクリプトファイル12bのスクリプトファイルを一通り読み終え、それぞれスクリプトファイルの終端であることを検知したことから、メモリバッファの内容をテストスクリプトファイル13cに出力して格納させ、この処理が行われると、この一連の処理が終了する。
【0065】
図10は、図9に図示したフローチャートに従ってスクリプトマージ処理部12bにおいて形成されたテストスクリプトファイル13cに格納されたテストスクリプトファイルのイメージの一例を示すもので、このイメージは、ウエブGUI9a→ウインドウズGUI8a→ウエブGUI9aへの各切替を、ユーザ操作によって行われた際の例を示すものである。
【0066】
このテストスクリプトファイル13cが出力されたときのスクリプトマージ処理部12bで実行される主たる動作フローは、図9に図示したフローチャートのステップS30→ステップS31→ステップS32→ステップS33(スクリプトデータ13c01を形成する)→ステップS34→ステップS35→ステップS36→ステップS37→ステップS38(スクリプトデータ13c02を形成する)→ステップS35→ステップS36→ステップS37→ステップS31→ステップS32→ステップS33(スクリプトデータ13c03を形成する)→ステップS34→ステップS31→ステップS32→ステップS33(スクリプトデータ13c04を形成する)→ステップS34→ステップS31→ステップS32→ステップS33(スクリプトデータ13c05を形成する)→ステップS34→ステップS35→ステップS36→ステップS37→ステップS38(スクリプトデータ13c06を形成する)ステップS35→ステップS36→ステップS31→ステップS32→ステップS39となり、このときの操作経緯がテストスクリプトファイル13cに記述される。
【0067】
次いで、GUI操作再生時におけるテスト自動実行マネージャ機能12、ウインドウズGUI操作記録再生機能10、ウエブGUI操作記録再生機能11におけるそれぞれの動作経緯をフローチャートを用いて説明する。
【0068】
図11は、テスト自動実行マネージャ機能12におけるテスト管理部12aの操作再生時の動作経緯を示すフローチャートである。このフローチャートを用いてテスト管理部12aの操作再生時の動作について説明する。
【0069】
まず、GUIテスト自動実行ツール3がユーザからの再生開始操作の指示を受けると、その制御によってテスト自動実行マネージャ機能12は、ステップS40において、ウインドウズGUI操作記録再生機能10及びウエブGUI操作記録再生機能11をそれぞれ起動させる。
【0070】
次に、ステップS41において、テスト自動実行マネージャ機能12は、それぞれ起動したウインドウズGUI操作再生部10b及びウエブGUI操作再生部11bがテストスクリプトファイル13cに格納されているユーザによるGUI操作経緯に基づいてそのGUI操作経緯を再現する。
【0071】
次いで、ステップS42において、テスト自動実行マネージャ機能12は、ウインドウズGUI操作再生部10b及びウエブGUI操作再生部11bによる一連のGUI操作経緯の再現が終了したか否かを判断する。そして、一連のGUI操作経緯の再現が終了していないと判断した(N)ときは一連のGUI操作経緯の再現が終了するまで同じGUI操作経緯の再現を実行し、一方、一連のGUI操作経緯の再現が終了したと判断した(Y)ときはこのGUI操作経緯の再現を終了する。
【0072】
続く、図12は、ウインドウズGUI操作記録再生機能10におけるウインドウズGUI操作再生部10bの操作再生時の動作経緯を示すフローチャートであり、このフローチャートに従ってウインドウズGUI操作再生部10bの操作再生時の動作経緯について説明する。
【0073】
なお、このフローチャートは、テストスクリプトファイル13cのスクリプトファイルの内容がウエブGUI9a→ウインドウズGUI8a→ウエブGUI9aの順にユーザ操作の切替が行われた際の例を示すもので、テスト自動実行マネージャ機能12の制御に基づいてウインドウズGUI操作再生部10bで実行されるものである。
【0074】
まず、ステップS50において、ウインドウズGUI操作再生部10bは、テストスクリプトファイル13cから読み込んだスクリプトファイルの内容の1行目がウインドウズGUI→ウエブGUI切替命令であるか否かを判断する。そして、ウインドウズGUI→ウエブGUI切替命令でないと判断した(N)ときはウインドウズGUI操作再生ループにおけるステップS51に移行し、一方、ウインドウズGUI→ウエブGUI切替命令であると判断した(Y)ときは他のステップS54に移行する。
【0075】
次に、ステップS51において、ウインドウズGUI操作再生部10bは、テストスクリプトファイル13cにおけるスクリプトファイルの内容にしたがってウインドウズGUI8aに対する操作の再生を実行する。
【0076】
次いで、ステップS52において、ウインドウズGUI操作再生部10bは、スクリプトファイルの内容の中にウインドウズGUI→ウエブGUI切替命令が存在するか否かを判断する。そして、ウインドウズGUI→ウエブGUI切替命令が存在すると判断した(Y)ときは次のステップS54に移行し、一方、ウインドウズGUI→ウエブGUI切替命令が存在しないと判断した(N)ときは他のステップS53に移行する。
【0077】
続いて、ステップS53において、ウインドウズGUI操作再生部10bは、テストスクリプトファイル13cにおけるスクリプトファイルの内容が終端に到達したか否かを判断する。そして、終端に到達していないと判断した(N)ときはステップS51の処理に戻り、一方、終端に到達したと判断した(Y)ときはこの一連の操作再生動作を終了させる。
【0078】
また、ステップS54において、ウインドウズGUI操作再生部10bは、ウインドウズGUI→ウエブGUI切替命令を読み取るまで、テストスクリプトファイル13cのスクリプトファイルの内容を読み飛ばして行く。
【0079】
次に、ステップS55において、ウインドウズGUI操作再生部10bは、ウエブGUI操作記録再生機能11にウインドウズGUI→ウエブGUI切替命令を発信する。
【0080】
次いで、ステップS56において、ウインドウズGUI操作再生部10bは、テストスクリプトファイル13cにおけるスクリプトファイルの内容が終端に到達したか否かを判断する。そして、終端に到達していないと判断した(N)ときはウエブGUI→ウインドウズGUI切替命令受信ループに移行し、一方、終端に到達したと判断した(Y)ときはこの一連の操作再生動作を終了させる。
【0081】
この後、ステップS57において、ウインドウズGUI操作再生部10bは、ウエブGUI操作記録再生機能11からウエブGUI→ウインドウズGUI切替命令を受信したか否かを判断する。そして、ウエブGUI→ウインドウズGUI切替命令を受信したと判断した(Y)ときはウインドウズGUI操作再生ループに移行し、一方、ウエブGUI→ウインドウズGUI切替命令を受信していないと判断した(N)ときはウエブGUI→ウインドウズGUI切替命令を受信するまで同じ動作を繰り返し実行する。
【0082】
さらに、図13は、ウエブGUI操作記録再生機能11におけるウエブGUI操作再生部11bの操作再生時の動作経緯を示すフローチャートであり、このフローチャートに従ってウエブGUI操作再生部10bの操作再生時の動作経緯について説明する。
【0083】
なお、このフローチャートは、テストスクリプトファイル13cのスクリプトファイルの内容がウエブGUI9a→ウインドウズGUI8a→ウエブGUI9aの順にユーザ操作の切替が行われた際の例を示すもので、テスト自動実行マネージャ機能12の制御に基づいてウエブGUI操作再生部11bにおいてウインドウズGUI操作再生部10bの動作に並行して実行されるものである。
【0084】
まず、ステップS60において、ウエブGUI操作再生部11bは、ウインドウズGUI→ウエブGUI切替命令を読み取るまで、テストスクリプトファイル13cのスクリプトファイルの内容を読み飛ばして行く。
【0085】
次に、ステップS61において、ウエブGUI操作再生部11bは、テストスクリプトファイル13cにおけるスクリプトファイルの内容が終端に到達したか否かを判断する。そして、終端に到達していないと判断した(N)ときはウインドウズGUI→ウエブGUI切替命令受信ループに移行し、一方、終端に到達したと判断した(Y)ときはこの一連の操作再生動作を終了させる。
【0086】
この後、ステップS62において、ウエブGUI操作再生部11bは、ウインドウズGUI操作記録再生機能10からウインドウズGUI→ウエブGUI切替命令を受信したか否かを判断する。そして、ウインドウズGUI→ウエブGUI切替命令を受信したと判断した(Y)ときはウエブGUI操作再生ループに移行し、一方、ウインドウズGUI→ウエブGUI切替命令を受信していないと判断した(N)ときはウインドウズGUI→ウエブGUI切替命令を受信するまで同じ動作を繰り返し実行する。
【0087】
また、ステップS63において、ウエブGUI操作再生部11bは、テストスクリプトファイル13cにおけるスクリプトファイルの内容にしたがってウエブGUI9aに対する操作の再生を実行する。
【0088】
次に、ステップS64において、ウエブGUI操作再生部11bは、スクリプトファイルの内容の中にウエブGUI→ウインドウズGUI切替命令が存在するか否かを判断する。そして、ウエブGUI→ウインドウズGUI切替命令が存在しないと判断した(N)ときは次のステップS65に移行し、一方、ウエブGUI→ウインドウズGUI切替命令が存在すると判断した(Y)ときは他のステップS66に移行する。
【0089】
次いで、ステップS65において、ウエブGUI操作再生部11bは、テストスクリプトファイル13cにおけるスクリプトファイルの内容が終端に到達したか否かを判断する。そして、終端に到達していないと判断した(N)ときはステップS63に戻りウエブGUI操作再生ループを繰り返し実行し、一方、終端に到達したと判断した(Y)ときはこの一連の操作再生動作を終了させる。
【0090】
続く、ステップS66において、ウエブGUI操作再生部11bは、ウエブGUI→ウインドウズGUI切替命令を見い出したので、ウインドウズGUI操作記録再生機能10に向けてウエブGUI→ウインドウズGUI切替命令を発信する。この処理が行われた後、ステップS60に戻り、再びステップS60以降の動作が実行される。
【0091】
以上詳細に説明したように、本発明によるGUIテスト支援システムは、ウインドウズGUI8a、ウエブGUI9aに対してそれらの処理を専門とする2系統のGUI操作記録再生機能10、11を実装し、互いに制御メッセージを送信し合うことによって、ウインドウズGUI8a、ウエブGUI9aは、オブジェクト記述方式スクリプトによる実用レベルのGUIテスト操作記録再生処理を実現することができるものである。
【0092】
なお、本発明による実施の形態は、図1〜13に図示した構成手段に基づいて説明しているが、本発明によるGUIテスト支援システムは、その実施の形態に表現されたものに限定されるものではなく、他の同等の構成手段、例えば何れかのGUI操作記録再生機能がテスト自動実行マネージャ機能の役目を兼ねさせた構成手段のものであってもよい。
【図面の簡単な説明】
【0093】
【図1】本発明によるGUIテスト支援システムの実施の形態に係るもので、その要部構成を示すブロック図である。
【図2】ディスプレイに表示される入力操作画面と操作された際にOS内部で発生するイベント動作を示した一例である。
【図3】記録されたスクリプトファイルを用いてGUIテスト実行ツールがGUIアプリケーションプログラムを自動実行する動作概念を示した一例である。
【図4】GUIテスト自動実行ツールにおいて入力操作画面の指示でウエブGUI→ウインドウズGUI→ウエブGUIの順に操作を行ったときの処理手順を示すフローチャートである。
【図5】操作経緯記録時におけるウインドウズGUI操作記録再生機能のウインドウズGUI操作記録部で実行される動作の詳細を示すフローチャートである。
【図6】操作経緯記録時におけるウエブGUI操作記録再生機能のウエブGUI操作記録部で実行される動作の詳細を示すフローチャートである。
【図7】ウインドウズGUI用テストスクリプトファイルに格納されたテストスクリプトファイルのイメージの一例を示すものである。
【図8】ウエブGUI用テストスクリプトファイルに格納されたテストスクリプトファイルのイメージの一例を示すものである。
【図9】操作記録時におけるテスト自動実行マネージャ機能に含まれるスクリプトマージ処理部の動作経緯を示すフローチャートである。
【図10】スクリプトマージ処理部において形成されたテストスクリプトファイルに格納されたテストスクリプトファイルのイメージの一例を示す。
【図11】テスト自動実行マネージャ機能におけるテスト管理部の操作再生時の動作経緯を示すフローチャートである。
【図12】ウインドウズGUI操作記録再生機能におけるウインドウズGUI操作再生部の操作再生時の動作経緯を示すフローチャートである。
【図13】ウエブGUI操作記録再生機能におけるウエブGUI操作再生部の操作再生時の動作経緯を示すフローチャートである。
【符号の説明】
【0094】
1 ウインドウズOS
2 テスト対象GUI群
3 GUIテスト自動実行ツール
4 記憶装置
5 キーボード
6 マウス
7 ディスプレイ
8 ウインドウズフォーム
8a ウインドウズGUI
9 ウエブブラウザ
9a ウエブGUI
10 ウインドウズGUI操作記録再生機能
10a ウインドウズGUI操作記録部
10b ウインドウズGUI操作再生部
11 ウエブGUI操作記録再生機能
11a ウエブGUI操作記録部
11b ウエブGUI操作再生部
12 テスト自動実行マネージャ機能
12a テスト管理部
12b スクリプトマージ処理部
13a ウインドウズGUI用テストスクリプトファイル
13b ウエブGUI用テストスクリプトファイル
13c テストスクリプトファイル

【特許請求の範囲】
【請求項1】
OSと、前記OSによってそれぞれ制御される入力操作部及びテスト対象となるOS系GUI及びウエブGUIを有するアプリケーションプログラム及び前記アプリケーションプログラムのテストをオブジェクト記述方式に従って実行するテスト実行ツールと、前記テスト実行ツールで得られたテストスクリプトを格納するテストスクリプトファイルを有する記憶装置とを備え、前記テスト実行ツールは、前記入力操作部によるOS系GUI操作経緯を前記テストスクリプトファイルにスクリプトとして格納するOS系GUI操作記録部及び前記テストスクリプトファイルに格納したOS系GUI操作経緯を再現するOS系GUI操作再生部を有するOS系GUI操作記録再生機能と、前記入力操作部によるウエブGUI操作経緯を前記テストスクリプトファイルにスクリプトとして格納するウエブ操作記録部及び前記テストスクリプトファイルに格納したウエブGUI操作経緯を再現するウエブGUI操作再生部を有するウエブGUI操作記録再生機能と、前記OS系GUI操作記録再生機能及び前記ウエブGUI操作再生機能を管理するテスト管理部及び前記テストスクリプトファイルに格納したOS系GUI操作経緯及びウエブGUI操作経緯をマージして前記テストスクリプトファイルに格納するスクリプトマージ処理部を有するテスト自動実行マネージャ機能とを備えることを特徴とするOS系GUI及びウエブGUIを有するアプリケーションプログラムの自動テストを行うGUIテスト支援システム。
【請求項2】
請求項1に記載のGUIテスト支援システムをオブジェクト記述方式に従って実行動作するOS系GUI及びウエブGUIを有するテスト支援用アプリケーションプログラムであって、入力操作部に基づくOS系GUI操作経緯をスクリプトとしてテストスクリプトファイルに格納する第1手段と、入力操作部に基づくウエブGUI操作経緯をスクリプトとして前記テストスクリプトファイルに格納する第2手段と、テスト管理部の制御によってOS系GUI操作記録部に記録したOS系GUI操作経緯を再現させる第3手段と、前記テスト管理処理部の制御によってウエブGUI操作記録部に記録したウエブGUI操作経緯を再現させる第4手段と、前記スクリプトマージ処理部の制御の基に前記テストスクリプトファイルにそれぞれ格納されたOS系GUI操作経緯及び前記ウエブGUI操作経緯とをマージして前記テストスクリプトファイルに格納する第5手段とを選択的に実行されるものであることを特徴とするテスト支援用アプリケーションプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2008−40537(P2008−40537A)
【公開日】平成20年2月21日(2008.2.21)
【国際特許分類】
【出願番号】特願2006−209904(P2006−209904)
【出願日】平成18年8月1日(2006.8.1)
【出願人】(000152985)株式会社日立情報システムズ (409)
【Fターム(参考)】