説明

自動操作部品の特定方法およびその装置

【課題】シナリオに従って操作対象ソフトウェアの表示画面を構成する部品を自動操作するに当たって、再生時の表示画面に応じて自動操作する部品を特定可能とすること。
【解決手段】シナリオから取り出した例示操作時の表示画面における部品木の情報およびウインドウと部品の属性情報、並びに再生時の操作対象ソフトウェアの表示画面における部品木の情報および属性情報を、入力されたフィルタリング条件により更新し(s16)、部品木間のノード同士の対応関係を求め(s17,s18)、さらに例示操作された部品のノードの位置情報に該当するノードが前記対応関係の中で1つのみ存在するかを調べる(s19,s20)ことで、自動操作する部品が再生時の表示画面の中で一意に特定できるか否かを確認し、特定できなければフィルタリング条件を変更して繰り返すことで自動操作すべき正しい部品の特定を可能とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアのグラフィカルユーザインタフェースへの操作を自動化する技術に関する。
【背景技術】
【0002】
近年の、コンピュータ上で動作するソフトウェアプログラムによって実現される業務システムの多くは、当該システムを利用する作業者のユーザビリティ向上のため、ユーザインタフェースとして、グラフィカルユーザインタフェース(以下、GUIと呼ぶ。)を採用している。これに伴い、GUIへの操作を自動化する技術の重要性が高まってきている。例えば、システムに対する頻度の高い操作を自動化することで業務の効率化を達成したり、システム開発時のテストにおける操作を自動化することで当該テストにかかるコストを削減するといった取り組みが行われている。
【0003】
このようなGUIへの操作を自動化する技術を利用するためには、まず、操作対象ソフトウェアの表示画面を構成する部品(ラベル、ボタン、テキストボックス、コンボボックスなど)の中から自動操作する部品を特定するための情報と、その操作順を表す操作順番とを記述したシナリオを作成する。そして、シナリオを自動操作装置に入力することで、シナリオの内容を再生する。即ち、自動操作装置は、再生時の表示画面の部品から自動操作する部品を選択し、順次、操作順番に従ってそれらを自動操作する。シナリオの作成は、基本的には人手で行う。GUIへの入力データに応じて自動操作する部品を変更するといった条件分岐や、特定の操作手順を繰り返すループなどに対応するため、特有のスクリプト言語やJava(登録商標)などのプログラミング言語で、シナリオを記述するのが一般的である。
【0004】
このように、GUI操作の自動化技術においては、シナリオを作成するために、プログラミングの知識が必要であったり、条件分岐やループを含む複雑な操作の流れを実現するシナリオの作成に、多くの工数が必要になるという問題があった。
【0005】
この問題に対して、公知のGUI操作の自動化技術は、ソフトウェアに対してユーザが行った一連の操作を記録し、再生可能なシナリオを自動生成する機能を具備している。また、自動生成したシナリオを修正したり、組み合わせることによって、より複雑なシナリオを作成することが可能になる。シナリオの自動生成機能を利用することで、白紙の状態から人手で複雑なシナリオを作成するより、少ない工数で作成することが可能になる。このように、GUI操作の自動化技術にとって、シナリオ作成のために入力された操作(以下、「例示された操作」と呼ぶ。また、シナリオ作成のための操作そのものを「例示操作」と呼ぶ。)からシナリオを自動生成する機能は、シナリオ作成の工数を削減するための重要な機能となっている。
【0006】
例示された操作からシナリオを自動生成し、自動操作装置によってその操作を再生するとき、信頼性および汎用性という品質が要求される。ここでの信頼性とは、自動生成シナリオを操作対象ソフトウェアに対して再生するときに、例示された操作を忠実に再現できることである。一方、汎用性とは、操作対象ソフトウェアがバージョンアップなどの影響によってGUIが変更されたとき、バージョンアップ前に自動生成したシナリオを使って、バージョンアップ後も同様に再生できることである。但し、ここでのバージョンアップによるGUIの変更は、例示操作した部品の削除は対象外とする。
【0007】
この際、例えば、信頼性が低いと、自動生成したシナリオで正しく再生することができないため、そのシナリオを適宜人手で修正する工数が発生してしまう。また、汎用性が低いと、操作対象ソフトウェアのバージョンアップのたびに、自動生成シナリオを人手で適宜修正する工数や、バージョンアップしたソフトウェアのもとで、例示操作とシナリオの自動生成をやり直す工数が発生することになる。
【0008】
前述のようにシナリオには、自動操作する部品を特定するための情報と、その部品の操作順番の情報とを記録する。信頼性や汎用性が低いということは、自動生成したシナリオに記録された自動操作する部品を特定する情報を使って、再生時の表示画面から、自動操作装置が自動操作する部品を正しく選択できないということである。従って、高い信頼性および汎用性を実現するために、自動操作する部品の特定方法を確立することが、GUI操作の自動化技術には必要になる。以降では、自動操作する部品を特定するための情報を、単に特定情報と呼ぶことにする。
【0009】
[従来技術]
特許文献1や非特許文献1に代表される従来技術では、例示操作を実施した画面に基づいて特定情報を算出する。
【0010】
例えば、特許文献1の場合は、シナリオをXML形式で記述し、ティーチングと呼ばれる例示操作によって、functionタグに囲まれたブロックのfuncタグにおけるtargetID属性に特定情報を記録する。図1に特許文献1でシナリオに記録される特定情報の一例を示す。targetID属性の値、即ち特定情報は、操作対象ソフトウェアにおける自動操作する部品のインスタンスIDであり、再生時には、そのときの表示画面に対して、このインスタンスIDを使って自動操作する部品を特定する。
【0011】
また、非特許文献1では、例示操作したときに、その表示画面から自動操作する部品の画像データを抽出し、特定情報としてシナリオに記録する。再生時には、そのときの表示画面の中から、シナリオに記録された特定情報である画像データと同じ画像データを有する部品を選択して自動操作する。
【0012】
このように、従来技術では、例示操作を行ったときの表示画面から特定情報を算出し、シナリオに記録されたその情報を元に、再生時の表示画面に対して自動操作する部品を特定している。
【発明の概要】
【発明が解決しようとする課題】
【0013】
特許文献1、非特許文献1に代表される従来技術では、自動生成シナリオに記録する特定情報は、例示操作を実施したときの表示画面を元に算出する。従って、自動生成シナリオを再生するときの表示画面が、例示操作を実施したときの表示画面と同一であれば、特定情報を用いて、再生時の表示画面を構成する部品の中から、例示操作した部品と対応する部品を正しく選択することが可能である。しかし、例示操作を実施した表示画面と、再生時の表示画面が同一であるとは限らない。
【0014】
例えば、再生時には、例示操作した部品が所属するウインドウだけでなく、別のウインドウとその配下の部品が表示されている場合もあるし、操作対象ソフトウェアのバージョンアップによって、表示画面に部品が追加されている場合がある。よって、従来技術において、シナリオに記録した特定情報で、これら再生時の表示画面の部品の中から、自動操作する部品を正しく選択できるという保証はない。
【0015】
この点を図2乃至図4を用いて説明する。図2は例示操作したときの操作対象ソフトウェアの表示画面およびシナリオに記録される例示操作した部品の特定情報の一例を示すもので、表示画面には、「ウインドウ1」というタイトルのウインドウが1つ表示されており、そのウインドウ配下の部品として、ラベル1、ラベル2およびラベル3と、テキストボックス1、テキストボックス2およびテキストボックス3とが配置されている。
【0016】
例えば、「入力2」と表示されているラベル2の右のテキストボックス2を例示操作する場合におけるシナリオの自動生成を考える。ここでは、特定情報の算出方法として、ウインドウ名と、操作部品の表示画面上の相対的な位置とを採用する。結果として「ウインドウ1のテキストボックスの上から2番目」という値(特定情報)が自動生成シナリオに記録されることになる。
【0017】
しかし、この自動生成シナリオを再生するときの操作対象ソフトウェアの表示画面が、図3に示すような表示画面だった場合、ウインドウ配下の部品の構成は一切考慮せず、シナリオに記録してある特定情報の表示位置の情報からテキストボックス5に対して自動操作してしまう可能性がある。また、操作対象ソフトウェアがバージョンアップして、ウインドウのGUIが図4のように変更された場合を考える。図4では、図2の表示画面と比べて、「入力1」というラベル1と、その右のテキストボックス1が削除されている。図2で自動生成したシナリオを図4の表示画面に対して再生すると、本来は、テキストボックス2を自動操作したいのにも拘わらず、特定情報である表示位置の情報からテキストボックス3を誤って自動操作する可能性がある。
【0018】
この例では表示位置を用いた算出方法を示したが、特許文献1のインスタンスIDや、非特許文献1の画像データを用いても、再生時の表示画面において、自動操作する部品を正しく選択できないケースは発生する(例えば、同一画像データを有する部品が複数存在する場合など)。
【0019】
本来であれば、いかなる画面に対しても自動操作する部品を正しく特定できる情報を、例示操作を行った画面から算出する方法が必要である。しかし、そのような算出方法は現在のところ確立されておらず、結果的に、自動生成したシナリオで再生時の表示画面に対して正しく自動操作できないケースが発生する。そのような場合は、自動生成シナリオを人手で修正したり、あるいは、算出方法を変更して例示操作をやり直すことで、シナリオを再度、自動生成する工数が必要になる。
【0020】
このように自動生成シナリオ再生時における表示画面を構成する部品の中から、例示された部品を正しく特定するために必要となる特定情報とその算出方法は、再生時の表示画面によって変わる。それにも拘わらず、従来技術では、再生時の表示画面を考慮せず、例示操作を実施した表示画面のみから特定情報を算出し、その算出結果を自動生成シナリオに記録している。自動操作装置も同様に、再生時の表示画面を考慮せず、入力されたシナリオの特定情報に従って、自動操作する部品を選択するだけである。このように従来技術では、再生時の表示画面に応じて、適切な算出方法を選択し、特定情報を求めて、例示された操作を再生するということができなかった。
【0021】
本発明では、自動生成シナリオを再生するときの信頼性や汎用性を向上させるために、再生時に、その表示画面に応じて、特定情報の適切な算出方法を選択できるようにするという課題を解決する。
【課題を解決するための手段】
【0022】
本発明では、再生時の表示画面に応じて、特定情報の算出方法を選択できるようにするという課題を解決するために、下記特徴を有する。
【0023】
本願発明の第一の発明として、自動操作部品の特定方法は、操作対象ソフトウェアのGUIへの操作を自動化するためのシナリオであって、シナリオ作成のために入力装置から入力された例示操作の操作順を表す操作順番と、当該例示操作が入力されたときの表示画面におけるウインドウとその配下の部品をノードとして当該ウインドウと部品の包含関係を親子関係で示す部品木の情報および前記ウインドウと部品の属性情報を少なくとも1つの情報リソースを用いて表した表示画面の情報と、前記例示操作された部品に対応する前記部品木におけるノードの位置情報とを記録してなるシナリオと、当該シナリオ中の表示画面の情報を限定するためのフィルタリング条件の集合とに基づいて、操作対象ソフトウェアの表示画面を構成する部品のうちの自動操作する部品を、コンピュータを用いて特定する方法であって、当該コンピュータが、前記シナリオに記録された各操作順番に対する例示操作が入力されたときの表示画面の部品木の情報および各ウインドウと部品の属性情報と、前記例示操作された部品に対応する前記部品木におけるノードの位置情報とを取り出すステップと、シナリオ再生時の操作対象ソフトウェアの表示画面における前記部品木の情報および属性情報を取得するステップと、入力されたフィルタリング条件により、例示操作時の表示画面における部品木の情報および属性情報、並びに再生時の表示画面における部品木の情報および属性情報を更新するステップと、更新された例示操作時の表示画面における部品木のノードと、再生時の表示画面における部品木のノードとの対応関係を求めるステップと、例示操作時の表示画面における部品木から、前記例示操作された部品のノードの位置情報に該当するノードを取り出すステップと、前記求めた対応関係から、前記取り出したノードに対応する再生時の表示画面における部品木のノードを取り出すステップとを具備することを特徴とする。
【0024】
第二の発明として、自動操作部品の特定方法は、前記第一の発明に記載の、入力されたフィルタリング条件により、例示操作時の表示画面における部品木の情報および属性情報、並びに再生時の表示画面における部品木の情報および属性情報を更新するステップにあっては、フィルタリング条件に該当する情報リソース、ノード、属性情報、属性の値を「Don't Care」というデータに置き換えることを特徴とする。
【0025】
第三の発明として、自動操作部品の特定方法は、前記第二の発明に記載の、更新された例示操作時の表示画面における部品木のノードと、再生時の表示画面における部品木のノードとの対応関係を求めるステップにあっては、それぞれの部品木におけるルートノードのウインドウと対応する属性情報が等しく、さらにルートノードの「Don't Care」で置き換えられていない子ノードと対応する部品の属性情報の多重集合が等しいとき、ルートノード同士が対応すると判定することを特徴とする。
【0026】
第四の発明として、自動操作部品の特定方法は、前記第二の発明に記載の、更新された例示操作時の表示画面における部品木のノードと、再生時の表示画面における部品木のノードとの対応関係を求めるステップにあっては、それぞれの親ノード同士が対応し、かつそれぞれのノードと対応する部品の属性情報が等しく、かつ「Don't Care」で置き換えられていない子ノードと対応する部品の属性情報の多重集合が等しいとき、それぞれのノード同士が対応すると判定することを特徴とする。
【0027】
第五の発明として、自動操作部品の特定方法は、前記第三または第四の発明に記載の、例示操作時と再生時の表示画面に対するウインドウおよび/または部品の属性情報の等しさの判定にあっては、どちらかの属性情報が「Don't Care」である、もしくは属性情報に含まれる属性の値がそれぞれの等しいときに、属性情報が等しいと判定することを特徴とする。
【0028】
第六の発明として、自動操作部品の特定方法は、前記第五の発明に記載の、例示操作時と再生時の表示画面に対するウインドウおよび/または部品の属性情報に含まれる同一属性の値の等しさの判定にあっては、どちらかの属性の値が「Don't Care」である、もしくは属性の値同士が同一であるとき、属性の値が等しいと判定することを特徴とする。
【0029】
第七の発明として、自動操作部品の特定装置は、操作対象ソフトウェアのGUIへの操作を自動化するためのシナリオに従って当該操作対象ソフトウェアの表示画面を構成する部品を特定して自動操作する装置であって、入力装置から入力された操作対象ソフトウェアに対する例示操作を検知し、例示操作の操作順を表す操作順番と、当該例示操作が入力されたときの表示画面におけるウインドウとその配下の部品をノードとして当該ウインドウと部品の包含関係を親子関係で示す部品木の情報および前記ウインドウと部品の属性情報を少なくとも1つの情報リソースを用いて表した表示画面の情報と、前記例示操作された部品に対応する前記部品木におけるノードの位置情報とを記録してなるシナリオを自動生成する例示操作記録装置と、例示操作記録装置が自動生成したシナリオを記録する記憶装置と、記憶装置に記録されているシナリオと、入力装置より入力された前記シナリオ中の表示画面の情報を限定するためのフィルタリング条件の集合とに基づいて、当該シナリオに記録された各操作順番に対する例示操作が入力されたときの表示画面の部品木の情報および各ウインドウと部品の属性情報と、前記例示操作された部品に対応する前記部品木におけるノードの位置情報を取り出し、シナリオ再生時の操作対象ソフトウェアの表示画面における前記部品木の情報および属性情報を取得し、入力されたフィルタリング条件により、例示操作時の表示画面における部品木の情報および属性情報、並びに再生時の表示画面における部品木の情報および属性情報を更新し、更新された例示操作時の表示画面における部品木のノードと、再生時の表示画面における部品木のノードとの対応関係を求め、例示操作時の表示画面における部品木から、前記例示操作された部品のノードの位置情報に該当するノードを取り出し、前記求めた対応関係から、前記取り出したノードに対応する再生時の表示画面における部品木のノードを取り出す自動操作部品特定装置と、自動操作部品特定装置から渡された再生時の表示画面に対する部品木のノードと対応する再生時の表示画面の部品を自動操作する自動操作装置とを少なくとも備えたことを特徴とする。
【発明の効果】
【0030】
本発明によれば、自動生成シナリオの再生時において、例示操作した部品と対応する再生時の表示画面上の部品を正しく特定できなかった場合、シナリオの自動生成をやり直す必要はなく、入力するフィルタリング条件を適切に変更することで、再生時の表示画面における自動操作すべき正しい部品を特定することができる。これによって、自動生成シナリオを人手で修正したり、再度シナリオの自動生成をやり直すことに伴うコストを削減できる。
【図面の簡単な説明】
【0031】
【図1】特許文献1でシナリオに記録される特定情報の一例である。
【図2】例示操作したときの操作対象ソフトウェアの表示画面および特定情報の一例である。
【図3】自動生成シナリオを再生したときの操作対象ソフトウェアの表示画面の一例である。
【図4】自動生成シナリオを再生したときの操作対象ソフトウェアの表示画面の一例である。
【図5】本発明の自動操作部品の特定方法を実施する装置の実施の形態の一例を示す構成図である。
【図6】本発明における例示操作記録手続きの処理フローである。
【図7】本発明における自動操作部品特定手続きの処理フローである。
【図8】図2の表示画面のHTMLファイルの一例である。
【図9】本発明において自動生成するシナリオに記録する情報の一例である。
【図10】図9の表示画面の情報に対してフィルタリング条件を適用した後の情報の一例である。
【図11】図9の表示画面の情報に対してフィルタリング条件を適用した後の情報の一例である。
【図12】図9の表示画面の情報に対してフィルタリング条件を適用した後の情報の一例である。
【図13】図9の表示画面の情報に対してフィルタリング条件を適用した後の情報の一例である。
【図14】オブジェクト1の対応関係を求める際に判定対象とする部品木のノードの説明図である。
【図15】オブジェクト1の対応関係を求める際に判定対象とする部品木のノードの説明図である。
【図16】オブジェクト1の対応関係を求める際に判定対象とする部品木のノードの説明図である。
【図17】図2の表示画面に対して自動生成シナリオに記録される表示画面の情報の一例である。
【図18】自動生成シナリオを再生するときの図4の表示画面から取得できる表示画面の情報の一例である。
【図19】図17の表示画面の情報を「nameの以外の属性」というフィルタリング条件によって更新したときの表示画面の情報である。
【図20】図18の表示画面の情報を「nameの以外の属性」というフィルタリング条件によって更新したときの表示画面の情報である。
【図21】図17の表示画面の情報を「属性情報が“入力1”の部品木のノードと属性情報」と「例示操作の表示画面の情報におけるオブジェクト5のノードと属性情報」というフィルタリング条件によって更新したときの表示画面の情報である。
【図22】図18の表示画面の情報を「属性情報が“入力1”の部品木のノードと属性情報」と「例示操作の表示画面の情報におけるオブジェクト5のノードと属性情報」というフィルタリング条件によって更新したときの表示画面の情報である。
【図23】図21と図22の表示画面の情報に対して求めた部品木のノード間の対応関係である。
【図24】実施例における例示操作に対して本発明が自動生成するシナリオの一例である。
【発明を実施するための形態】
【0032】
図5は本発明の自動操作部品の特定方法を実施する装置の実施の形態の一例、ここでは周知のコンピュータ上に実現した例を示すもので、図中、1は入力装置、2は記憶装置、3は表示装置、4はコンピュータである。
【0033】
入力装置1は、キーボード、マウス等からなり、ユーザがコンピュータ4に所定の情報、ここではコンピュータ4が実施する図6に示す例示操作記録手続きにおける取得対象とする情報リソース取得プログラム(名)の集合を入力し、また、操作対象ソフトウェアに対する例示操作を入力し、さらにまた、コンピュータ4が実施する図7に示す自動操作部品特定手続きにおけるフィルタリング条件の集合を入力するためのものである。
【0034】
記憶装置2は、コンピュータ4が実施する図6の手続きによって自動作成されたシナリオをファイルとして保存するためのものである。表示装置3は、液晶ディスプレイ、CRT等からなり、操作対象ソフトウェアの画面を表示するとともに、コンピュータ4が実施する図6、図7の手続き中の画面を表示するためのものである。
【0035】
コンピュータ4は、入力装置1から入力された、取得対象とする情報リソース取得プログラム(名)の集合および操作対象ソフトウェアに対する例示操作を元に、図6の手続きを実施してシナリオを自動生成し、これを記憶装置2に保存し、また、記憶装置2に保存されている自動生成シナリオおよび入力装置1から入力されたフィルタリング条件の集合を元に、図7の手続きを実施して自動生成シナリオの再生を行う。その際、コンピュータ内部に、例示操作記録部(例示操作記録装置)5、自動操作部品特定部(自動操作部品特定装置)6、自動操作部(自動操作装置)7を構成する。
【0036】
例示操作記録部5は、入力装置1から入力された操作対象ソフトウェアに対する例示操作を検知すると、その都度、図6の手続きを実施してシナリオを自動生成し、ファイルとして記憶装置2に出力・保存する。
【0037】
即ち、まずs1のステップでは、初期情報として入力装置1から入力された、複数の情報リソース(後述する)それぞれに対応する取得プログラムのうちの取得対象とする情報リソースに対応する取得プログラム(名)の集合において、その要素が0(空集合)かどうかを調べる。
【0038】
この際、0(空集合)であれば処理を終了し、また、0(空集合)でなければs2のステップに進み、前記集合から要素、即ち情報リソース取得プログラム(名)を1つ取り出してs3のステップに進む。
【0039】
s3のステップでは、前記取り出した情報リソース取得プログラムを使用して情報リソースを取得し、表示装置3に表示されている操作対象ソフトウェアの表示画面の情報(ウインドウとその配下の部品をノードとして当該ウインドウと部品の包含関係を親子関係で示す部品木の情報と、前記ウインドウと部品についての識別子や表示位置、活性/非活性などの動的な表示状態を表す属性情報)をシナリオに記録し、また、s4のステップでは、例示操作された部品の表示画面の情報における位置情報(例示操作された部品に対応する前記部品木におけるノードの位置情報)をシナリオに記録し、さらにこれらに併せて当該例示操作の操作順を表す操作順番をシナリオに記録する。
【0040】
そしてs1のステップに戻り、前記集合中の要素が0(空集合)となるまでこれを繰り返す。
【0041】
ここで、シナリオに記録する情報としては、従来技術のように特定情報と操作順番ではなく、例示された操作ごとに、例示操作時の表示画面の情報、表示画面の情報内での例示操作した部品に関するデータの位置を示す情報(以下、位置情報とする。)、並びに操作順番を記録する。実際に例示操作を再生するためには、この他にも操作の種別(クリック、文字列入力)や、文字列入力操作における入力した文字列の情報も記録しなければならない。しかし、自動操作する部品を正しく特定するという本発明の目的には必要ないので、説明上省略する。
【0042】
例示操作時の表示画面の情報とは、例示操作した部品の情報だけでなく、操作対象ソフトウェア全体(場合によっては、コンピュータ全体でも良い。)の表示画面の情報を意味する。表示画面の情報は、具体的には、ウインドウとその配下の部品の包含関係を親子関係で示す木(これ以降では部品木と呼ぶ。)と、ウインドウと部品についての識別子や表示位置、活性/非活性などの動的な表示状態を表す属性情報のことである。
【0043】
例としては、操作対象ソフトウェアがWebアプリケーションなら、表示画面のHTMLファイルを構文解析した構文木などから部品木と属性情報を取得することができる。また、表示画面全体の画像データからであれば、画像認識技術によって、部品木と部品の色や表示位置を表す属性情報が取得できる。オペレーティングシステムがWindows(登録商標)プラットフォームであるならば、UIオートメーション(詳細は非特許文献2参照)を利用して、部品木と部品の識別子や表示位置、活性非活性の状態などを表す属性情報などが取得できる。
【0044】
このような情報リソース(HTMLファイル、画像データ、UIオートメーションなど)の中から1つ選択して、単独でシナリオに記録しても良いし、複数を例示操作時の表示画面の情報としてシナリオに記録しても良い。
【0045】
HTMLファイルや画像データ、UIオートメーションなどの情報リソースによって取得できる表示画面の情報は、それぞれで取得できる内容が異なる。
【0046】
例えば、HTMLファイルでは、ラベルなのかテキストボックスなのかといった部品の型の情報を属性情報として取得することはできるが、キーボードフォーカスが当たっているかという部品の動的な表示状態は記録されていない。その一方で画像データには、部品の動的な表示状態の情報は記録されているが、部品の型を厳密に判別する情報は記録されていない(形状からある程度推定することはできる。)。各情報リソースから取得できる情報は相補的であるため、可能な限り様々な情報リソースを用いて表示画面の情報をシナリオに記録しておくことが望ましい。
【0047】
例示操作した部品の位置情報は、前述の例示操作時の表示画面の情報における部品木に対して、例示操作した部品と対応するノードを指し示す情報である。例えば、部品木のノードに一意に付与された識別子を記録する。
【0048】
図2の表示画面を表示するソフトウェアがWebアプリケーションである場合のその表示画面のHTMLファイルを図8に示す。さらに図2の表示画面においてテキストボックス2を操作したとき、本発明においてシナリオに記録される情報の例を図9に示す。ここでは、操作順番を1とし、表示画面の情報として、HTMLファイル、画像データ、UIオートメーションの情報リソースから取得できる部品木と部品の属性情報を記録している。
【0049】
自動操作部品特定部6は、記憶装置2に保存されている例示操作記録部5が自動生成したシナリオと、入力装置1から入力されたフィルタリング条件の集合とに基づいて、図7の手続きを実施する。ここで図7の手続きについて説明する。
【0050】
まず、自動生成シナリオおよびフィルタリング条件の集合を自動操作部品特定部6に入力する。自動生成シナリオの操作手順は、ここでは1番からM番まで存在するものとし、s11のステップにおいて処理の繰り返し回数を表す変数iに「1」を代入する。自動操作部品特定部6では、以下のs12からs25のステップの処理をM回繰り返す。
【0051】
まず、s12のステップでは自動生成シナリオに記録された操作順番iの表示画面の情報および操作部品の位置情報を取得し、それぞれ変数dおよび変数posに代入する。
【0052】
次に、s13のステップで、シナリオ再生時の表示画面の情報として、現在の表示画面の情報を取得し、変数d’に代入する。ここで取得する表示画面の情報は、例示操作記録部5が例示操作に対して表示画面の情報を取得したときと同様の処理によって取得する。さらにs14のステップでは、入力されたフィルタリング条件の集合を変数fに代入し、s15からs16のステップの処理をフィルタリング条件の要素数分繰り返す。
【0053】
即ち、まずs15のステップで変数fが空集合であるか判定する。もし空集合でなければs16の処理を実施し、変数fからフィルタリング条件を取り出す。そして、その条件を用いて、変数dおよび変数d’に代入されている例示操作時の表示画面の情報と現在の表示画面の情報を更新する。そして、s15のステップに戻る。
【0054】
ここでフィルタリング条件とは、自動生成シナリオ中の表示画面の情報を限定するための、表示画面の情報の一部分を指し示す条件のことである。例えば、フィルタリング条件としては、
・情報リソースの指定
・表示画面の情報における部品木のノードとその属性情報の指定
・表示画面の情報における属性値の条件を満たす部品木のノードとその属性情報の指定
・表示画面の情報における属性情報における属性の指定
などが挙げられる。
【0055】
表示画面において、複数のウインドウが表示されている場合、表示画面の情報として取得する部品木は、それらウインドウごとに取得できる。その場合、部品木全体とその配下のノードの属性情報をフィルタリング条件として入力しても良い。s16のステップでは、変数dや変数d’に代入されている表示画面の情報において、これらフィルタリング条件に合致する部分を「Don't Care」というデータに置き換える。但し、フィルタリング条件として、部品木のルートノードを指定する条件と、例示操作した部品を示すノードを指定する条件は対象外とする。
【0056】
フィルタリング条件として、「情報リソースがHTMLファイル」が与えられたときにs15のステップを実施し、図9の表示画面の情報を更新した結果を図10に示す。また、フィルタリング条件として、「HTMLファイルの表示画面の情報における属性情報が“入力1”である部品木のノードと属性情報」が与えられたときにs15のステップを実施し、図9の表示画面を更新した結果を図11に示す。また、フィルタリング条件として、「画像データの表示画面の情報における表示座標属性」が与えられたときにs15のステップを実施し、図9の表示画面を更新した結果を図12に示す。また、フィルタリング条件として、「UIオートメーションの表示画面の情報におけるControl Type属性が“text”である部品木中のノードと属性情報」が与えられたときにs15のステップを実施し、図9の表示画面を更新した結果を図13に示す。
【0057】
図7の手続きにおけるs15のステップにおいて、変数fのフィルタリング条件の集合が空集合であれば、フィルタリング条件による表示画面の情報の更新が完了しているので、s17のステップに進む。s17のステップでは、変数dおよび変数d’に代入されている表示画面の情報を比較し、表示画面の情報における部品木間のノード同士の対応関係Pを求める。但し、「Don't Care」であるノードは除外する。ここで求める対応関係Pとは、変数dのノードと変数d’のノードの対の集合のことである。「Don't Care」でない変数d,d’のノードをそれぞれn,n’としたとき、対は(n,n’)と表現できる。
【0058】
このような対の集合である対応関係Pは、以下の再帰的なルールに基づいて決定される。
【0059】
・(ノードnとn’がともにルートノードの場合)以下の2つの条件をともに満たすとき、対(n,n’)∈Pである。
【0060】
−ノードnとノードn’の属性情報が等しい
−ノードnとノードn’の子ノードが存在するならば、ノードnの子ノードの属性情報の多重集合(集合内要素の重複を許す集合)とノードn’の子ノードの属性情報の多重集合が等しい。但し、子ノードが「Don't Care」である場合には、子ノード配下で「Don't Care」ではないノードが存在する下位階層のノードの属性情報の多重集合も判定に含める。例えば、図14に示すルートノードであるオブジェクト1のノードの対が対応関係Pに含まれるか決定する場合には、オブジェクト2、オブジェクト4、オブジェクト6の属性情報が判定対象となる。もし、子ノードが「Don't Care」であって、子ノード配下のノードが存在しない、もしくは配下のいかなるノードも「Don't Care」である場合は、そのような子ノードの属性情報を判定対象には含めない。例えば、図15では、オブジェクト1の「Don't Care」である子ノードの配下のノードは、全て「Don't Care」であるため、この場合のオブジェクト1に関する対が対応関係Pに含まれるか決定する際には、オブジェクト2とオブジェクト4の属性情報を判定対象とする。また、図16では、オブジェクト1の「Don't Care」である子ノードの配下のノードは存在しないため、図15の例と同様に、オブジェクト1に関する対が対応関係Pに含まれるか決定する際には、オブジェクト2とオブジェクト4の属性情報が判定対象となる。
【0061】
・(ノードnとn’のそれぞれの親ノードの対が対応関係Pに含まれる場合、但し、親ノードが「Don't Care」の場合には、先祖となるいずれかのノードとの対が対応関係Pに含まれる場合)以下の2つの条件をともに満たすとき、対(n,n’)∈Pである。
【0062】
−ノードnとノードn’の属性情報が等しい
−ノードnとノードn’にそれぞれ子ノードが存在するならば、ノードnの子ノードの属性情報の多重集合とノードn’の子ノードの属性情報の多重集合が等しい。但し、子ノードが「Don't Care」である場合には、子ノード配下で「Don't Care」ではないノードが存在する下位階層のノードの属性情報の多重集合も判定に含める。もし、子ノードが「Don't Care」であって、その子ノード配下のノードが存在しない、もしくは配下のいかなるノードも「Don't Care」である場合は、そのような子ノードの属性情報は判定対象には含めない。
【0063】
なお、「Don't Care」ではないノードnとノードn’の属性情報が等しいとは、以下の条件、即ち
・ノードnもしくはノードn’の属性情報が「Don't Care」である、
・ノードn,n’の属性情報がともに「Don't Care」ではなく、かつノードn,n’のそれぞれの属性情報における同一属性の値が等しい、
のいずれかを満たす場合のことである。
【0064】
なお、ここでの同一属性の値が等しいとは、以下の条件、即ち
・ノードnもしくはノードn’の属性情報における同一属性の値のいずれかが「Don't Care」である、
・ノードnおよびノードn’の属性情報における同一属性の値が同一である、
の両方を満たす場合のことである。
【0065】
このようなルールに従って、部品木のノード同士の対応関係を求める問題は、部品木の同型判定や組み合わせ最適化問題の一種であり、例えば制約充足問題(非特許文献3参照)などの公知の技術に帰着すれば解くことができる。
【0066】
対応関係Pを求めた後は、s18のステップにおいて、対応関係Pのノードの対において、「Don't Care」ノード以外の全てのノードが含まれていることを調べる。その結果、含まれていないノードが存在すれば、入力されたフィルタリング条件では、自動操作する部品を現在の画面の中で一意に特定できないことなるため、s24のステップでその旨を表示装置3などに表示し、手続きを終了する。一方、ノードが全て含まれている場合は、続くs19のステップで、変数posが示す例示操作した部品の位置情報を元に、変数dに代入されている表示画面の情報における部品木のノード、即ち例示操作したときの操作部品を示すノードを取り出す。そのノードNと表現する。
【0067】
さらにs20のステップにおいて、対応関係Pの中にノードNが出現する対が複数存在するか調べる。存在すれば、入力されたフィルタリング条件では、自動操作する部品を現在の画面の中で一意に特定できないことなるため、s24のステップでその旨を表示装置3などに表示し、手続きを終了する。もし、ノードNが出現する対が1つであれば、s21において、その対における変数d’側のノードを取り出し、N’とする。続くs22のステップでは、ノードN’を自動操作部7に渡す。自動操作部7は、ノードN’と対応する表示画面上の部品を自動操作する。
【0068】
例えば、今、図2を例示操作時の表示画面とみなし、変数dに図17の表示画面の情報が代入されていると仮定する。同様に図4を再生時の画面とみなし、表示画面の情報として変数d’に図18の情報が代入されているものとする。但し、説明を容易にするために、ここでは情報リソースはHTMLファイルのみに限定する。
【0069】
例示操作においては、テキストボックス2を操作しており、この部品は、図17におけるオブジェクト6のノードに対応する。よって変数posはオブジェクト6となる。また、図4の再生時の表示画面においても同様に、テキストボックス2を自動操作させる場合を考える。この部品は、図18におけるオブジェクト4のノードに対応する。
【0070】
ここで、フィルタリング条件として、「nameの以外の属性」が入力されているものとする。このとき、s15とs16のステップによって最終的に更新される変数dおよび変数d’の情報は、それぞれ図19および図20になる。
【0071】
続くs17のステップによって、変数dおよび変数d’の部品木間のノードの対応関係Pを求める。この場合、ルートノードの属性情報同士は等しいが、変数dの部品木のルートノードの子ノードであるオブジェクト2からオブジェクト7の属性情報の多重集合と、変数d’の部品木のルートノードの子ノードであるオブジェクト2からオブジェクト5の属性情報の多重集合が異なることになる。結果として、変数dと変数d’のルートノード同士の対は、対応関係Pに含まれない。
【0072】
ルートノードの子ノードに関する対は、その親ノードであるルートノード同士の対が、対応関係Pに含まれないため、やはり対応関係Pに含まれない。よって、この場合の対応関係Pは空集合になる。対応関係Pが空集合の場合、続くs18のステップで、対応関係Pに、「Don't Care」ノード以外の全てのノードに関する対が存在するか調べる。ここでは対応関係Pが空集合でそのような対が存在しないため、s24のステップに進み、表示装置3などにエラーメッセージを表示し、手続きを終了する。
【0073】
さらに、フィルタリングの条件を「属性情報が“入力1”の部品木のノードと属性情報」と「例示操作の表示画面の情報におけるオブジェクト5のノードと属性情報」に変更した場合を考える。変数dおよび変数d’の表示画面の情報である図17および図18に、s15、s16のステップにて、これらフィルタリング条件を適用し更新した結果を図21および図22に示す。
【0074】
s17のステップで更新した、変数dと変数d’の表示画面の情報における部品木のノード間の対応関係を求めると、対応関係Pは、図23のような表になる。表における行は、変数dと変数d’のノード間の対に対応する。この対応関係には、「Don't Care」ノード以外の全てのノードが出現するので、s18のステップからs19のステップに進み、変数posの示すオブジェクト6がとり出される。さらにs20のステップにおいて、対応関係Pの中の対に変数d側がオブジェクト6であるものが複数ないか調べる。
【0075】
図23に示すように、ここでは、変数d側がオブジェクト6で変数d’側がオブジェクト4である対が1つあるだけなので、s21のステップに進み、その対から変数d’側のノードであるオブジェクト4を取り出す。そして、s22のステップでオブジェクト4のノードを自動操作部7に渡すことで、現在の表示画面においてオブジェクト4のノード対応する図4のテキストボックス2を自動操作する。
【0076】
このように、本発明では、再生時の表示画面に合わせて、適切なフィルタリング条件を入力することで、その表示画面の自動操作する部品を正しく特定することができる。
【0077】
従来技術の場合は、シナリオ自動生成時に、本発明のフィルタリング条件に相当する算出方法によって、特定情報を求めシナリオに記録していた。これは、シナリオに記録される表示画面の情報が非常に限定されたものになり、例示操作した部品の情報の一部、あるいは例示操作した部品と他の部品との関係の情報が欠落することを意味する。
【0078】
例えば、算出方法として、HTMLファイルのname属性の値を採用すると、図2の表示画面でテキストボックス2を例示操作した場合、シナリオには、図8のHTMLファイルに示すように、特定情報としてその部品のname属性である“b”が記録される。つまり、同部品のtype属性の値や、ラベルとの位置関係の情報など、表示画面の情報が元々保持していた情報をシナリオに記録しないことになる。再生時の図4の表示画面に対して、シナリオに記録されたname属性が“b”であるという特定情報を使って、自動操作する部品を特定しようとすると、テキストボックス3もname属性が“b”なので、正しく特定できない。
【0079】
ここで、本発明と同様に、算出方法を変えて、別の特定情報を得ようにも、自動生成シナリオにはname属性が“b”であるという情報しか記録されていない。従って、例示した操作が「入力2」というラベルの右側のテキストボックスであるというような別の観点の特定情報を自動生成シナリオからは算出することができない。このような情報を算出するためには、特定情報の算出方法を変更し、再度、例示操作を行ってシナリオを自動生成する必要がある。
【0080】
本発明の場合、シナリオには、表示画面全体に含まれる部品の情報がそのまま記録されており、例示操作した部品の情報や他の部品の関係を保持したままとなっている。よって、入力したフィルタリング条件で操作する部品を正しく特定できない場合でも、フィルタリング条件を適宜変更することで、自動生成シナリオ自体は変更することなく、例示操作した表示画面の部品と、現在の表示画面の部品との正しい対応関係を算出することができる。結果として、その対応関係を元に、例示操作した部品と対応する現在の表示画面の部品を自動操作することができる。
【0081】
表示画面の部品を自動操作した後は、図7のs23のステップにおいて、繰り返し回数を表す変数iが自動生成シナリオの操作順番の最大値であるMと等しいか調べ、等しければシナリオに記録された操作順番全ての自動操作が完了したことになるため、手続きを終了する。もし変数iとMが異なれば、s25のステップで変数iに1を加算し、s12のステップに戻り、処理を繰り返す。
【0082】
自動操作部7は、自動操作部品特定部6から渡される部品木におけるノードが示す表示装置3の表示画面の部品を自動操作する。
【0083】
なお、前述した実施の形態では、例示操作記録部5、自動操作部品特定部6、自動操作部7をコンピュータ上で実現した例を示したが、ハードウェアで実現しても良い。またこれら各装置が、適切な通信路で相互に接続された複数のハードウェア上に分散して存在し、相互に通信し合いながら実行することもできる。
【0084】
本発明の装置が操作対象とするソフトウェアは、コンピュータ4において動作しても良いし、適切な通信路で相互に接続された別のハードウェア上で動作していても良い。
【実施例1】
【0085】
ここでは、本発明の自動操作部品の特定装置が図5の構成をとった場合において、図2の画面に対して例示操作を行い、図4の画面に対して、自動生成シナリオを再生する実施例を示す。
【0086】
まず、操作対象であるソフトウェアを入力装置1から例示操作を行う。ここでは図2におけるテキストボックス2を操作したとする。このときコンピュータ4上に構成される例示操作記録部5は、その操作を検知すると、入力装置1から入力される取得対象とする情報リソース取得プログラム(名)の集合の情報を入力として図6の手続きを実施し、表示装置3に表示されている図2の表示画面の情報や操作した部品の位置を示す情報、操作順番の情報を記録し、図24のようなシナリオを自動生成する。さらにこの自動生成シナリオを記憶装置2にファイルとして保存する。ここでは説明をわかり易くするために、情報リソースはHTMLファイルのみを対象としているものとする。
【0087】
表示装置3に表示されている図4の表示画面に対して再生を行う場合、自動操作部品特定部6は、記憶装置2に保存されている自動生成シナリオを読み込み、さらに入力装置1から入力されるフィルタリング条件の集合の情報を入力として、図7の手続きを実施する。
【0088】
まず、s11のステップにて変数iに最初に自動操作する操作順番である1を設定する。次いで、s12のステップで、自動生成シナリオにおける操作順番が1の表示画面の情報および例示操作した部品の位置の情報を、それぞれ変数dおよび変数posに代入する。即ち、変数dは図9における表示画面の情報であり、図17となる。変数posは図9における例示した部品の位置となる。さらにs13のステップで、表示装置3に表示されている図4の画面に対して、表示画面の情報を取得し、変数d’に代入する。変数d’は、図18になる。
【0089】
今、入力されているフィルタリング条件の集合の要素が、「属性情報が“入力1”の部品木のノードと属性情報」および「例示操作の表示画面の情報におけるオブジェクト5のノードと属性情報」であるとすれば、続くs14,s15,s16のステップによって、各フィルタリング条件に合致する変数dおよび変数d’のノードや属性情報を「Don't Care」で置き換える。置き換えた結果の変数dおよび変数d’はそれぞれ、図21、図22になる。このように更新した変数dおよび変数d’の部品木のノード間の対応関係をs17のステップで求める。
【0090】
まず、それぞれのルートノードであるオブジェクト1は、それぞれ「Don't Care」でなく、かつオブジェクト1の属性情報同士が等しい。さらに変数dのオブジェクト1の「Don't Care」に置き換えられていない子ノードであるオブジェクト3、オブジェクト4、オブジェクト6、オブジェクト7の属性情報の多重集合と、変数d’のオブジェクト1の「Don't Care」に置き換えられていない子ノードであるオブジェクト2、オブジェクト3、オブジェクト4、オブジェクト5の属性情報の多重集合とは等しい。よって対応関係Pに対(オブジェクト1,オブジェクト1)が登録される。但し、対の左側は変数dのノード、右側は変数d’のノードである。
【0091】
さらに、変数dのノードであるオブジェクト3の対応関係を求めると、オブジェクト3と対応する変数d’側のノードは、ともに親ノード同士が対応関係Pに含まれる対である必要がある。今、対応関係Pには対(オブジェクト1,オブジェクト1)が存在するため、この条件に合致する変数d’側のノードは、オブジェクト1の子ノードであるオブジェクト2、オブジェクト3、オブジェクト4、オブジェクト5となる。さらに変数dのオブジェクト3の属性情報“入力2”と等しいのは、変数d’側のオブジェクト2のみである。よって対応関係Pに対(オブジェクト3,オブジェクト2)が登録される。このように「Don't Care」で置き換えられていない他のノードの対応関係を求めると、対応関係は図23となる。
【0092】
ここでは、「Don't Care」で置き換えられていないノードの全てが対として対応関係に含まれており、かつ変数posの示す変数dのノードであるオブジェクト6に関する対が複数存在しないため、例示した操作と対応する図4における自動操作する部品が一意に特定できたことになる。よって、図7の手続きのs18,s19,s20,s21のステップに進む。s21のステップでは、変数d側のノードが変数posの示すオブジェクト6である対を特定し、その対の変数d’側のノードを取り出す。ここでは、図23の対応関係の表の対(オブジェクト6,オブジェクト4)に特定され、オブジェクト4がとり出される。そして、s22のステップにおいて、オブジェクト4の情報を自動操作部7に渡し、自動操作部7は、操作対象ソフトウェアの図4の表示画面におけるオブジェクト4と対応するテキストボックス2を自動操作する。
【0093】
s23のステップでは、変数iが自動生成シナリオにおける操作順番の最大値であれば、シナリオに記録されている全ての操作を実施したことになるので、処理を終了する。変数iが最大値でなければ、s25のステップで変数iに1加算し、s12のステップに戻る。
【0094】
このように、再生時の表示画面に対して適切なフィルタリング条件の集合を入力することで、例示操作した部品と対応する表示画面における部品を正しく特定し、シナリオを再生することができる。
【符号の説明】
【0095】
1:入力装置、2:記憶装置、3:表示装置、4:コンピュータ、5:例示操作記録部、6:自動操作部品特定部、7:自動操作部。
【先行技術文献】
【特許文献】
【0096】
【特許文献1】特開2010−204840号公報(「ユーザインターフェース操作統合システムのカスタマイズ方法及び端末装置並びにコンピュータプログラム及び情報記録媒体」)
【非特許文献】
【0097】
【非特許文献1】平井、関根、川野、「ソフトウェアのテスト効率と精度を向上させるGUI画面の自動操作技術」、東芝レビュー、Vol.63、No.6、June、2008
【非特許文献2】“UIオートメーションの概要”、[online]、Microsoft Corporation、[平成23年7月5日検索]、インターネット<URL:http://msdn.microsoft.com/ja-jp/library/ms747327(v=vs.80).aspx>
【非特許文献3】西田、「人工知能の基礎」、丸善株式会社、pp.41-64、1999

【特許請求の範囲】
【請求項1】
操作対象ソフトウェアのGUIへの操作を自動化するためのシナリオであって、シナリオ作成のために入力装置から入力された例示操作の操作順を表す操作順番と、当該例示操作が入力されたときの表示画面におけるウインドウとその配下の部品をノードとして当該ウインドウと部品の包含関係を親子関係で示す部品木の情報および前記ウインドウと部品の属性情報を少なくとも1つの情報リソースを用いて表した表示画面の情報と、前記例示操作された部品に対応する前記部品木におけるノードの位置情報とを記録してなるシナリオと、当該シナリオ中の表示画面の情報を限定するためのフィルタリング条件の集合とに基づいて、操作対象ソフトウェアの表示画面を構成する部品のうちの自動操作する部品を、コンピュータを用いて特定する方法であって、
当該コンピュータが、
前記シナリオに記録された各操作順番に対する例示操作が入力されたときの表示画面の部品木の情報および各ウインドウと部品の属性情報と、前記例示操作された部品に対応する前記部品木におけるノードの位置情報とを取り出すステップと、
シナリオ再生時の操作対象ソフトウェアの表示画面における前記部品木の情報および属性情報を取得するステップと、
入力されたフィルタリング条件により、例示操作時の表示画面における部品木の情報および属性情報、並びに再生時の表示画面における部品木の情報および属性情報を更新するステップと、
更新された例示操作時の表示画面における部品木のノードと、再生時の表示画面における部品木のノードとの対応関係を求めるステップと、
例示操作時の表示画面における部品木から、前記例示操作された部品のノードの位置情報に該当するノードを取り出すステップと、
前記求めた対応関係から、前記取り出したノードに対応する再生時の表示画面における部品木のノードを取り出すステップとを具備する
ことを特徴とする自動操作部品の特定方法。
【請求項2】
入力されたフィルタリング条件により、例示操作時の表示画面における部品木の情報および属性情報、並びに再生時の表示画面における部品木の情報および属性情報を更新するステップにあっては、
フィルタリング条件に該当する情報リソース、ノード、属性情報、属性の値を「Don't Care」というデータに置き換える
ことを特徴とする請求項1に記載の自動操作部品の特定方法。
【請求項3】
更新された例示操作時の表示画面における部品木のノードと、再生時の表示画面における部品木のノードとの対応関係を求めるステップにあっては、
それぞれの部品木におけるルートノードのウインドウと対応する属性情報が等しく、さらにルートノードの「Don't Care」で置き換えられていない子ノードと対応する部品の属性情報の多重集合が等しいとき、ルートノード同士が対応すると判定する
ことを特徴とする請求項2に記載の自動操作部品の特定方法。
【請求項4】
更新された例示操作時の表示画面における部品木のノードと、再生時の表示画面における部品木のノードとの対応関係を求めるステップにあっては、
それぞれの親ノード同士が対応し、かつそれぞれのノードと対応する部品の属性情報が等しく、かつ「Don't Care」で置き換えられていない子ノードと対応する部品の属性情報の多重集合が等しいとき、それぞれのノード同士が対応すると判定する
ことを特徴とする請求項2に記載の自動操作部品の特定方法。
【請求項5】
例示操作時と再生時の表示画面に対するウインドウおよび/または部品の属性情報の等しさの判定にあっては、
どちらかの属性情報が「Don't Care」である、もしくは属性情報に含まれる属性の値がそれぞれの等しいときに、属性情報が等しいと判定する
ことを特徴とする請求項3または4に記載の自動操作部品の特定方法。
【請求項6】
例示操作時と再生時の表示画面に対するウインドウおよび/または部品の属性情報に含まれる同一属性の値の等しさの判定にあっては、
どちらかの属性の値が「Don't Care」である、もしくは属性の値同士が同一であるとき、属性の値が等しいと判定する
ことを特徴とする請求項5に記載の自動操作部品の特定方法。
【請求項7】
操作対象ソフトウェアのGUIへの操作を自動化するためのシナリオに従って当該操作対象ソフトウェアの表示画面を構成する部品を特定して自動操作する装置であって、
入力装置から入力された操作対象ソフトウェアに対する例示操作を検知し、例示操作の操作順を表す操作順番と、当該例示操作が入力されたときの表示画面におけるウインドウとその配下の部品をノードとして当該ウインドウと部品の包含関係を親子関係で示す部品木の情報および前記ウインドウと部品の属性情報を少なくとも1つの情報リソースを用いて表した表示画面の情報と、前記例示操作された部品に対応する前記部品木におけるノードの位置情報とを記録してなるシナリオを自動生成する例示操作記録装置と、
例示操作記録装置が自動生成したシナリオを記録する記憶装置と、
記憶装置に記録されているシナリオと、入力装置より入力された前記シナリオ中の表示画面の情報を限定するためのフィルタリング条件の集合とに基づいて、当該シナリオに記録された各操作順番に対する例示操作が入力されたときの表示画面の部品木の情報および各ウインドウと部品の属性情報と、前記例示操作された部品に対応する前記部品木におけるノードの位置情報を取り出し、シナリオ再生時の操作対象ソフトウェアの表示画面における前記部品木の情報および属性情報を取得し、入力されたフィルタリング条件により、例示操作時の表示画面における部品木の情報および属性情報、並びに再生時の表示画面における部品木の情報および属性情報を更新し、更新された例示操作時の表示画面における部品木のノードと、再生時の表示画面における部品木のノードとの対応関係を求め、例示操作時の表示画面における部品木から、前記例示操作された部品のノードの位置情報に該当するノードを取り出し、前記求めた対応関係から、前記取り出したノードに対応する再生時の表示画面における部品木のノードを取り出す自動操作部品特定装置と、
自動操作部品特定装置から渡された再生時の表示画面に対する部品木のノードと対応する再生時の表示画面の部品を自動操作する自動操作装置とを少なくとも備えた
ことを特徴とする自動操作部品の特定装置。

【図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

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate