(57)【特許請求の範囲】
【請求項１】
操作対象ソフトウェアのＧＵＩへの操作を自動化するためのシナリオであって、シナリオ作成のために入力装置から入力された例示操作の操作順を表す操作順番と、当該例示操作が入力されたときの表示画面におけるウインドウとその配下の部品をノードとして当該ウインドウと部品の包含関係を親子関係で示す部品木の情報および前記ウインドウと部品の属性情報を少なくとも１つの情報リソースを用いて表した表示画面の情報と、前記例示操作された部品に対応する前記部品木におけるノードの位置情報とを記録してなるシナリオと、当該シナリオ中の表示画面の情報を限定するためのフィルタリング条件の集合とに基づいて、操作対象ソフトウェアの表示画面を構成する部品のうちの自動操作する部品を、コンピュータを用いて特定する方法であって、
当該コンピュータが、
前記シナリオに記録された各操作順番に対する例示操作が入力されたときの表示画面の部品木の情報および各ウインドウと部品の属性情報と、前記例示操作された部品に対応する前記部品木におけるノードの位置情報とを取り出すステップと、
シナリオ再生時の操作対象ソフトウェアの表示画面における前記部品木の情報および属性情報を取得するステップと、
入力されたフィルタリング条件により、例示操作時の表示画面における部品木の情報および属性情報、並びに再生時の表示画面における部品木の情報および属性情報を更新するステップと、
更新された例示操作時の表示画面における部品木のノードと、再生時の表示画面における部品木のノードとの対応関係を求めるステップと、
例示操作時の表示画面における部品木から、前記例示操作された部品のノードの位置情報に該当するノードを取り出すステップと、
前記求めた対応関係から、前記取り出したノードに対応する再生時の表示画面における部品木のノードを取り出すステップとを具備する
ことを特徴とする自動操作部品の特定方法。
【請求項２】
入力されたフィルタリング条件により、例示操作時の表示画面における部品木の情報および属性情報、並びに再生時の表示画面における部品木の情報および属性情報を更新するステップにあっては、
フィルタリング条件に該当する情報リソース、ノード、属性情報、属性の値を「Don't Care」というデータに置き換える
ことを特徴とする請求項１に記載の自動操作部品の特定方法。
【請求項３】
更新された例示操作時の表示画面における部品木のノードと、再生時の表示画面における部品木のノードとの対応関係を求めるステップにあっては、
それぞれの部品木におけるルートノードのウインドウと対応する属性情報が等しく、さらにルートノードの「Don't Care」で置き換えられていない子ノードと対応する部品の属性情報の多重集合が等しいとき、ルートノード同士が対応すると判定する
ことを特徴とする請求項２に記載の自動操作部品の特定方法。
【請求項４】
更新された例示操作時の表示画面における部品木のノードと、再生時の表示画面における部品木のノードとの対応関係を求めるステップにあっては、
それぞれの親ノード同士が対応し、かつそれぞれのノードと対応する部品の属性情報が等しく、かつ「Don't Care」で置き換えられていない子ノードと対応する部品の属性情報の多重集合が等しいとき、それぞれのノード同士が対応すると判定する
ことを特徴とする請求項２に記載の自動操作部品の特定方法。
【請求項５】
例示操作時と再生時の表示画面に対するウインドウおよび／または部品の属性情報の等しさの判定にあっては、
どちらかの属性情報が「Don't Care」である、もしくは属性情報に含まれる属性の値がそれぞれの等しいときに、属性情報が等しいと判定する
ことを特徴とする請求項３または４に記載の自動操作部品の特定方法。
【請求項６】
例示操作時と再生時の表示画面に対するウインドウおよび／または部品の属性情報に含まれる同一属性の値の等しさの判定にあっては、
どちらかの属性の値が「Don't Care」である、もしくは属性の値同士が同一であるとき、属性の値が等しいと判定する
ことを特徴とする請求項５に記載の自動操作部品の特定方法。
【請求項７】
操作対象ソフトウェアのＧＵＩへの操作を自動化するためのシナリオに従って当該操作対象ソフトウェアの表示画面を構成する部品を特定して自動操作する装置であって、
入力装置から入力された操作対象ソフトウェアに対する例示操作を検知し、例示操作の操作順を表す操作順番と、当該例示操作が入力されたときの表示画面におけるウインドウとその配下の部品をノードとして当該ウインドウと部品の包含関係を親子関係で示す部品木の情報および前記ウインドウと部品の属性情報を少なくとも１つの情報リソースを用いて表した表示画面の情報と、前記例示操作された部品に対応する前記部品木におけるノードの位置情報とを記録してなるシナリオを自動生成する例示操作記録装置と、
例示操作記録装置が自動生成したシナリオを記録する記憶装置と、
記憶装置に記録されているシナリオと、入力装置より入力された前記シナリオ中の表示画面の情報を限定するためのフィルタリング条件の集合とに基づいて、当該シナリオに記録された各操作順番に対する例示操作が入力されたときの表示画面の部品木の情報および各ウインドウと部品の属性情報と、前記例示操作された部品に対応する前記部品木におけるノードの位置情報を取り出し、シナリオ再生時の操作対象ソフトウェアの表示画面における前記部品木の情報および属性情報を取得し、入力されたフィルタリング条件により、例示操作時の表示画面における部品木の情報および属性情報、並びに再生時の表示画面における部品木の情報および属性情報を更新し、更新された例示操作時の表示画面における部品木のノードと、再生時の表示画面における部品木のノードとの対応関係を求め、例示操作時の表示画面における部品木から、前記例示操作された部品のノードの位置情報に該当するノードを取り出し、前記求めた対応関係から、前記取り出したノードに対応する再生時の表示画面における部品木のノードを取り出す自動操作部品特定装置と、
自動操作部品特定装置から渡された再生時の表示画面に対する部品木のノードと対応する再生時の表示画面の部品を自動操作する自動操作装置とを少なくとも備えた
ことを特徴とする自動操作部品の特定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアのグラフィカルユーザインタフェースへの操作を自動化する技術に関する。
【背景技術】
【０００２】
近年の、コンピュータ上で動作するソフトウェアプログラムによって実現される業務システムの多くは、当該システムを利用する作業者のユーザビリティ向上のため、ユーザインタフェースとして、グラフィカルユーザインタフェース（以下、ＧＵＩと呼ぶ。）を採用している。これに伴い、ＧＵＩへの操作を自動化する技術の重要性が高まってきている。例えば、システムに対する頻度の高い操作を自動化することで業務の効率化を達成したり、システム開発時のテストにおける操作を自動化することで当該テストにかかるコストを削減するといった取り組みが行われている。
【０００３】
このようなＧＵＩへの操作を自動化する技術を利用するためには、まず、操作対象ソフトウェアの表示画面を構成する部品（ラベル、ボタン、テキストボックス、コンボボックスなど）の中から自動操作する部品を特定するための情報と、その操作順を表す操作順番とを記述したシナリオを作成する。そして、シナリオを自動操作装置に入力することで、シナリオの内容を再生する。即ち、自動操作装置は、再生時の表示画面の部品から自動操作する部品を選択し、順次、操作順番に従ってそれらを自動操作する。シナリオの作成は、基本的には人手で行う。ＧＵＩへの入力データに応じて自動操作する部品を変更するといった条件分岐や、特定の操作手順を繰り返すループなどに対応するため、特有のスクリプト言語やＪａｖａ（登録商標）などのプログラミング言語で、シナリオを記述するのが一般的である。
【０００４】
このように、ＧＵＩ操作の自動化技術においては、シナリオを作成するために、プログラミングの知識が必要であったり、条件分岐やループを含む複雑な操作の流れを実現するシナリオの作成に、多くの工数が必要になるという問題があった。
【０００５】
この問題に対して、公知のＧＵＩ操作の自動化技術は、ソフトウェアに対してユーザが行った一連の操作を記録し、再生可能なシナリオを自動生成する機能を具備している。また、自動生成したシナリオを修正したり、組み合わせることによって、より複雑なシナリオを作成することが可能になる。シナリオの自動生成機能を利用することで、白紙の状態から人手で複雑なシナリオを作成するより、少ない工数で作成することが可能になる。このように、ＧＵＩ操作の自動化技術にとって、シナリオ作成のために入力された操作（以下、「例示された操作」と呼ぶ。また、シナリオ作成のための操作そのものを「例示操作」と呼ぶ。）からシナリオを自動生成する機能は、シナリオ作成の工数を削減するための重要な機能となっている。
【０００６】
例示された操作からシナリオを自動生成し、自動操作装置によってその操作を再生するとき、信頼性および汎用性という品質が要求される。ここでの信頼性とは、自動生成シナリオを操作対象ソフトウェアに対して再生するときに、例示された操作を忠実に再現できることである。一方、汎用性とは、操作対象ソフトウェアがバージョンアップなどの影響によってＧＵＩが変更されたとき、バージョンアップ前に自動生成したシナリオを使って、バージョンアップ後も同様に再生できることである。但し、ここでのバージョンアップによるＧＵＩの変更は、例示操作した部品の削除は対象外とする。
【０００７】
この際、例えば、信頼性が低いと、自動生成したシナリオで正しく再生することができないため、そのシナリオを適宜人手で修正する工数が発生してしまう。また、汎用性が低いと、操作対象ソフトウェアのバージョンアップのたびに、自動生成シナリオを人手で適宜修正する工数や、バージョンアップしたソフトウェアのもとで、例示操作とシナリオの自動生成をやり直す工数が発生することになる。
【０００８】
前述のようにシナリオには、自動操作する部品を特定するための情報と、その部品の操作順番の情報とを記録する。信頼性や汎用性が低いということは、自動生成したシナリオに記録された自動操作する部品を特定する情報を使って、再生時の表示画面から、自動操作装置が自動操作する部品を正しく選択できないということである。従って、高い信頼性および汎用性を実現するために、自動操作する部品の特定方法を確立することが、ＧＵＩ操作の自動化技術には必要になる。以降では、自動操作する部品を特定するための情報を、単に特定情報と呼ぶことにする。
【０００９】
［従来技術］
特許文献１や非特許文献１に代表される従来技術では、例示操作を実施した画面に基づいて特定情報を算出する。
【００１０】
例えば、特許文献１の場合は、シナリオをＸＭＬ形式で記述し、ティーチングと呼ばれる例示操作によって、functionタグに囲まれたブロックのfuncタグにおけるtargetＩＤ属性に特定情報を記録する。図１に特許文献１でシナリオに記録される特定情報の一例を示す。targetＩＤ属性の値、即ち特定情報は、操作対象ソフトウェアにおける自動操作する部品のインスタンスＩＤであり、再生時には、そのときの表示画面に対して、このインスタンスＩＤを使って自動操作する部品を特定する。
【００１１】
また、非特許文献１では、例示操作したときに、その表示画面から自動操作する部品の画像データを抽出し、特定情報としてシナリオに記録する。再生時には、そのときの表示画面の中から、シナリオに記録された特定情報である画像データと同じ画像データを有する部品を選択して自動操作する。
【００１２】
このように、従来技術では、例示操作を行ったときの表示画面から特定情報を算出し、シナリオに記録されたその情報を元に、再生時の表示画面に対して自動操作する部品を特定している。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
特許文献１、非特許文献１に代表される従来技術では、自動生成シナリオに記録する特定情報は、例示操作を実施したときの表示画面を元に算出する。従って、自動生成シナリオを再生するときの表示画面が、例示操作を実施したときの表示画面と同一であれば、特定情報を用いて、再生時の表示画面を構成する部品の中から、例示操作した部品と対応する部品を正しく選択することが可能である。しかし、例示操作を実施した表示画面と、再生時の表示画面が同一であるとは限らない。
【００１４】
例えば、再生時には、例示操作した部品が所属するウインドウだけでなく、別のウインドウとその配下の部品が表示されている場合もあるし、操作対象ソフトウェアのバージョンアップによって、表示画面に部品が追加されている場合がある。よって、従来技術において、シナリオに記録した特定情報で、これら再生時の表示画面の部品の中から、自動操作する部品を正しく選択できるという保証はない。
【００１５】
この点を図２乃至図４を用いて説明する。図２は例示操作したときの操作対象ソフトウェアの表示画面およびシナリオに記録される例示操作した部品の特定情報の一例を示すもので、表示画面には、「ウインドウ１」というタイトルのウインドウが１つ表示されており、そのウインドウ配下の部品として、ラベル１、ラベル２およびラベル３と、テキストボックス１、テキストボックス２およびテキストボックス３とが配置されている。
【００１６】
例えば、「入力２」と表示されているラベル２の右のテキストボックス２を例示操作する場合におけるシナリオの自動生成を考える。ここでは、特定情報の算出方法として、ウインドウ名と、操作部品の表示画面上の相対的な位置とを採用する。結果として「ウインドウ１のテキストボックスの上から２番目」という値（特定情報）が自動生成シナリオに記録されることになる。
【００１７】
しかし、この自動生成シナリオを再生するときの操作対象ソフトウェアの表示画面が、図３に示すような表示画面だった場合、ウインドウ配下の部品の構成は一切考慮せず、シナリオに記録してある特定情報の表示位置の情報からテキストボックス５に対して自動操作してしまう可能性がある。また、操作対象ソフトウェアがバージョンアップして、ウインドウのＧＵＩが図４のように変更された場合を考える。図４では、図２の表示画面と比べて、「入力１」というラベル１と、その右のテキストボックス１が削除されている。図２で自動生成したシナリオを図４の表示画面に対して再生すると、本来は、テキストボックス２を自動操作したいのにも拘わらず、特定情報である表示位置の情報からテキストボックス３を誤って自動操作する可能性がある。
【００１８】
この例では表示位置を用いた算出方法を示したが、特許文献１のインスタンスＩＤや、非特許文献１の画像データを用いても、再生時の表示画面において、自動操作する部品を正しく選択できないケースは発生する（例えば、同一画像データを有する部品が複数存在する場合など）。
【００１９】
本来であれば、いかなる画面に対しても自動操作する部品を正しく特定できる情報を、例示操作を行った画面から算出する方法が必要である。しかし、そのような算出方法は現在のところ確立されておらず、結果的に、自動生成したシナリオで再生時の表示画面に対して正しく自動操作できないケースが発生する。そのような場合は、自動生成シナリオを人手で修正したり、あるいは、算出方法を変更して例示操作をやり直すことで、シナリオを再度、自動生成する工数が必要になる。
【００２０】
このように自動生成シナリオ再生時における表示画面を構成する部品の中から、例示された部品を正しく特定するために必要となる特定情報とその算出方法は、再生時の表示画面によって変わる。それにも拘わらず、従来技術では、再生時の表示画面を考慮せず、例示操作を実施した表示画面のみから特定情報を算出し、その算出結果を自動生成シナリオに記録している。自動操作装置も同様に、再生時の表示画面を考慮せず、入力されたシナリオの特定情報に従って、自動操作する部品を選択するだけである。このように従来技術では、再生時の表示画面に応じて、適切な算出方法を選択し、特定情報を求めて、例示された操作を再生するということができなかった。
【００２１】
本発明では、自動生成シナリオを再生するときの信頼性や汎用性を向上させるために、再生時に、その表示画面に応じて、特定情報の適切な算出方法を選択できるようにするという課題を解決する。
【課題を解決するための手段】
【００２２】
本発明では、再生時の表示画面に応じて、特定情報の算出方法を選択できるようにするという課題を解決するために、下記特徴を有する。
【００２３】
本願発明の第一の発明として、自動操作部品の特定方法は、操作対象ソフトウェアのＧＵＩへの操作を自動化するためのシナリオであって、シナリオ作成のために入力装置から入力された例示操作の操作順を表す操作順番と、当該例示操作が入力されたときの表示画面におけるウインドウとその配下の部品をノードとして当該ウインドウと部品の包含関係を親子関係で示す部品木の情報および前記ウインドウと部品の属性情報を少なくとも１つの情報リソースを用いて表した表示画面の情報と、前記例示操作された部品に対応する前記部品木におけるノードの位置情報とを記録してなるシナリオと、当該シナリオ中の表示画面の情報を限定するためのフィルタリング条件の集合とに基づいて、操作対象ソフトウェアの表示画面を構成する部品のうちの自動操作する部品を、コンピュータを用いて特定する方法であって、当該コンピュータが、前記シナリオに記録された各操作順番に対する例示操作が入力されたときの表示画面の部品木の情報および各ウインドウと部品の属性情報と、前記例示操作された部品に対応する前記部品木におけるノードの位置情報とを取り出すステップと、シナリオ再生時の操作対象ソフトウェアの表示画面における前記部品木の情報および属性情報を取得するステップと、入力されたフィルタリング条件により、例示操作時の表示画面における部品木の情報および属性情報、並びに再生時の表示画面における部品木の情報および属性情報を更新するステップと、更新された例示操作時の表示画面における部品木のノードと、再生時の表示画面における部品木のノードとの対応関係を求めるステップと、例示操作時の表示画面における部品木から、前記例示操作された部品のノードの位置情報に該当するノードを取り出すステップと、前記求めた対応関係から、前記取り出したノードに対応する再生時の表示画面における部品木のノードを取り出すステップとを具備することを特徴とする。
【００２４】
第二の発明として、自動操作部品の特定方法は、前記第一の発明に記載の、入力されたフィルタリング条件により、例示操作時の表示画面における部品木の情報および属性情報、並びに再生時の表示画面における部品木の情報および属性情報を更新するステップにあっては、フィルタリング条件に該当する情報リソース、ノード、属性情報、属性の値を「Don't Care」というデータに置き換えることを特徴とする。
【００２５】
第三の発明として、自動操作部品の特定方法は、前記第二の発明に記載の、更新された例示操作時の表示画面における部品木のノードと、再生時の表示画面における部品木のノードとの対応関係を求めるステップにあっては、それぞれの部品木におけるルートノードのウインドウと対応する属性情報が等しく、さらにルートノードの「Don't Care」で置き換えられていない子ノードと対応する部品の属性情報の多重集合が等しいとき、ルートノード同士が対応すると判定することを特徴とする。
【００２６】
第四の発明として、自動操作部品の特定方法は、前記第二の発明に記載の、更新された例示操作時の表示画面における部品木のノードと、再生時の表示画面における部品木のノードとの対応関係を求めるステップにあっては、それぞれの親ノード同士が対応し、かつそれぞれのノードと対応する部品の属性情報が等しく、かつ「Don't Care」で置き換えられていない子ノードと対応する部品の属性情報の多重集合が等しいとき、それぞれのノード同士が対応すると判定することを特徴とする。
【００２７】
第五の発明として、自動操作部品の特定方法は、前記第三または第四の発明に記載の、例示操作時と再生時の表示画面に対するウインドウおよび／または部品の属性情報の等しさの判定にあっては、どちらかの属性情報が「Don't Care」である、もしくは属性情報に含まれる属性の値がそれぞれの等しいときに、属性情報が等しいと判定することを特徴とする。
【００２８】
第六の発明として、自動操作部品の特定方法は、前記第五の発明に記載の、例示操作時と再生時の表示画面に対するウインドウおよび／または部品の属性情報に含まれる同一属性の値の等しさの判定にあっては、どちらかの属性の値が「Don't Care」である、もしくは属性の値同士が同一であるとき、属性の値が等しいと判定することを特徴とする。
【００２９】
第七の発明として、自動操作部品の特定装置は、操作対象ソフトウェアのＧＵＩへの操作を自動化するためのシナリオに従って当該操作対象ソフトウェアの表示画面を構成する部品を特定して自動操作する装置であって、入力装置から入力された操作対象ソフトウェアに対する例示操作を検知し、例示操作の操作順を表す操作順番と、当該例示操作が入力されたときの表示画面におけるウインドウとその配下の部品をノードとして当該ウインドウと部品の包含関係を親子関係で示す部品木の情報および前記ウインドウと部品の属性情報を少なくとも１つの情報リソースを用いて表した表示画面の情報と、前記例示操作された部品に対応する前記部品木におけるノードの位置情報とを記録してなるシナリオを自動生成する例示操作記録装置と、例示操作記録装置が自動生成したシナリオを記録する記憶装置と、記憶装置に記録されているシナリオと、入力装置より入力された前記シナリオ中の表示画面の情報を限定するためのフィルタリング条件の集合とに基づいて、当該シナリオに記録された各操作順番に対する例示操作が入力されたときの表示画面の部品木の情報および各ウインドウと部品の属性情報と、前記例示操作された部品に対応する前記部品木におけるノードの位置情報を取り出し、シナリオ再生時の操作対象ソフトウェアの表示画面における前記部品木の情報および属性情報を取得し、入力されたフィルタリング条件により、例示操作時の表示画面における部品木の情報および属性情報、並びに再生時の表示画面における部品木の情報および属性情報を更新し、更新された例示操作時の表示画面における部品木のノードと、再生時の表示画面における部品木のノードとの対応関係を求め、例示操作時の表示画面における部品木から、前記例示操作された部品のノードの位置情報に該当するノードを取り出し、前記求めた対応関係から、前記取り出したノードに対応する再生時の表示画面における部品木のノードを取り出す自動操作部品特定装置と、自動操作部品特定装置から渡された再生時の表示画面に対する部品木のノードと対応する再生時の表示画面の部品を自動操作する自動操作装置とを少なくとも備えたことを特徴とする。
【発明の効果】
【００３０】
本発明によれば、自動生成シナリオの再生時において、例示操作した部品と対応する再生時の表示画面上の部品を正しく特定できなかった場合、シナリオの自動生成をやり直す必要はなく、入力するフィルタリング条件を適切に変更することで、再生時の表示画面における自動操作すべき正しい部品を特定することができる。これによって、自動生成シナリオを人手で修正したり、再度シナリオの自動生成をやり直すことに伴うコストを削減できる。
【図面の簡単な説明】
【００３１】
【図１】特許文献１でシナリオに記録される特定情報の一例である。
【図２】例示操作したときの操作対象ソフトウェアの表示画面および特定情報の一例である。
【図３】自動生成シナリオを再生したときの操作対象ソフトウェアの表示画面の一例である。
【図４】自動生成シナリオを再生したときの操作対象ソフトウェアの表示画面の一例である。
【図５】本発明の自動操作部品の特定方法を実施する装置の実施の形態の一例を示す構成図である。
【図６】本発明における例示操作記録手続きの処理フローである。
【図７】本発明における自動操作部品特定手続きの処理フローである。
【図８】図２の表示画面のＨＴＭＬファイルの一例である。
【図９】本発明において自動生成するシナリオに記録する情報の一例である。
【図１０】図９の表示画面の情報に対してフィルタリング条件を適用した後の情報の一例である。
【図１１】図９の表示画面の情報に対してフィルタリング条件を適用した後の情報の一例である。
【図１２】図９の表示画面の情報に対してフィルタリング条件を適用した後の情報の一例である。
【図１３】図９の表示画面の情報に対してフィルタリング条件を適用した後の情報の一例である。
【図１４】オブジェクト１の対応関係を求める際に判定対象とする部品木のノードの説明図である。
【図１５】オブジェクト１の対応関係を求める際に判定対象とする部品木のノードの説明図である。
【図１６】オブジェクト１の対応関係を求める際に判定対象とする部品木のノードの説明図である。
【図１７】図２の表示画面に対して自動生成シナリオに記録される表示画面の情報の一例である。
【図１８】自動生成シナリオを再生するときの図４の表示画面から取得できる表示画面の情報の一例である。
【図１９】図１７の表示画面の情報を「nameの以外の属性」というフィルタリング条件によって更新したときの表示画面の情報である。
【図２０】図１８の表示画面の情報を「nameの以外の属性」というフィルタリング条件によって更新したときの表示画面の情報である。
【図２１】図１７の表示画面の情報を「属性情報が“入力１”の部品木のノードと属性情報」と「例示操作の表示画面の情報におけるオブジェクト５のノードと属性情報」というフィルタリング条件によって更新したときの表示画面の情報である。
【図２２】図１８の表示画面の情報を「属性情報が“入力１”の部品木のノードと属性情報」と「例示操作の表示画面の情報におけるオブジェクト５のノードと属性情報」というフィルタリング条件によって更新したときの表示画面の情報である。
【図２３】図２１と図２２の表示画面の情報に対して求めた部品木のノード間の対応関係である。
【図２４】実施例における例示操作に対して本発明が自動生成するシナリオの一例である。
【発明を実施するための形態】
【００３２】
図５は本発明の自動操作部品の特定方法を実施する装置の実施の形態の一例、ここでは周知のコンピュータ上に実現した例を示すもので、図中、１は入力装置、２は記憶装置、３は表示装置、４はコンピュータである。
【００３３】
入力装置１は、キーボード、マウス等からなり、ユーザがコンピュータ４に所定の情報、ここではコンピュータ４が実施する図６に示す例示操作記録手続きにおける取得対象とする情報リソース取得プログラム（名）の集合を入力し、また、操作対象ソフトウェアに対する例示操作を入力し、さらにまた、コンピュータ４が実施する図７に示す自動操作部品特定手続きにおけるフィルタリング条件の集合を入力するためのものである。
【００３４】
記憶装置２は、コンピュータ４が実施する図６の手続きによって自動作成されたシナリオをファイルとして保存するためのものである。表示装置３は、液晶ディスプレイ、ＣＲＴ等からなり、操作対象ソフトウェアの画面を表示するとともに、コンピュータ４が実施する図６、図７の手続き中の画面を表示するためのものである。
【００３５】
コンピュータ４は、入力装置１から入力された、取得対象とする情報リソース取得プログラム（名）の集合および操作対象ソフトウェアに対する例示操作を元に、図６の手続きを実施してシナリオを自動生成し、これを記憶装置２に保存し、また、記憶装置２に保存されている自動生成シナリオおよび入力装置１から入力されたフィルタリング条件の集合を元に、図７の手続きを実施して自動生成シナリオの再生を行う。その際、コンピュータ内部に、例示操作記録部（例示操作記録装置）５、自動操作部品特定部（自動操作部品特定装置）６、自動操作部（自動操作装置）７を構成する。
【００３６】
例示操作記録部５は、入力装置１から入力された操作対象ソフトウェアに対する例示操作を検知すると、その都度、図６の手続きを実施してシナリオを自動生成し、ファイルとして記憶装置２に出力・保存する。
【００３７】
即ち、まずｓ１のステップでは、初期情報として入力装置１から入力された、複数の情報リソース（後述する）それぞれに対応する取得プログラムのうちの取得対象とする情報リソースに対応する取得プログラム（名）の集合において、その要素が０（空集合）かどうかを調べる。
【００３８】
この際、０（空集合）であれば処理を終了し、また、０（空集合）でなければｓ２のステップに進み、前記集合から要素、即ち情報リソース取得プログラム（名）を１つ取り出してｓ３のステップに進む。
【００３９】
ｓ３のステップでは、前記取り出した情報リソース取得プログラムを使用して情報リソースを取得し、表示装置３に表示されている操作対象ソフトウェアの表示画面の情報（ウインドウとその配下の部品をノードとして当該ウインドウと部品の包含関係を親子関係で示す部品木の情報と、前記ウインドウと部品についての識別子や表示位置、活性／非活性などの動的な表示状態を表す属性情報）をシナリオに記録し、また、ｓ４のステップでは、例示操作された部品の表示画面の情報における位置情報（例示操作された部品に対応する前記部品木におけるノードの位置情報）をシナリオに記録し、さらにこれらに併せて当該例示操作の操作順を表す操作順番をシナリオに記録する。
【００４０】
そしてｓ１のステップに戻り、前記集合中の要素が０（空集合）となるまでこれを繰り返す。
【００４１】
ここで、シナリオに記録する情報としては、従来技術のように特定情報と操作順番ではなく、例示された操作ごとに、例示操作時の表示画面の情報、表示画面の情報内での例示操作した部品に関するデータの位置を示す情報（以下、位置情報とする。）、並びに操作順番を記録する。実際に例示操作を再生するためには、この他にも操作の種別（クリック、文字列入力）や、文字列入力操作における入力した文字列の情報も記録しなければならない。しかし、自動操作する部品を正しく特定するという本発明の目的には必要ないので、説明上省略する。
【００４２】
例示操作時の表示画面の情報とは、例示操作した部品の情報だけでなく、操作対象ソフトウェア全体（場合によっては、コンピュータ全体でも良い。）の表示画面の情報を意味する。表示画面の情報は、具体的には、ウインドウとその配下の部品の包含関係を親子関係で示す木（これ以降では部品木と呼ぶ。）と、ウインドウと部品についての識別子や表示位置、活性／非活性などの動的な表示状態を表す属性情報のことである。
【００４３】
例としては、操作対象ソフトウェアがＷｅｂアプリケーションなら、表示画面のＨＴＭＬファイルを構文解析した構文木などから部品木と属性情報を取得することができる。また、表示画面全体の画像データからであれば、画像認識技術によって、部品木と部品の色や表示位置を表す属性情報が取得できる。オペレーティングシステムがＷｉｎｄｏｗｓ（登録商標）プラットフォームであるならば、ＵＩオートメーション（詳細は非特許文献２参照）を利用して、部品木と部品の識別子や表示位置、活性非活性の状態などを表す属性情報などが取得できる。
【００４４】
このような情報リソース（ＨＴＭＬファイル、画像データ、ＵＩオートメーションなど）の中から１つ選択して、単独でシナリオに記録しても良いし、複数を例示操作時の表示画面の情報としてシナリオに記録しても良い。
【００４５】
ＨＴＭＬファイルや画像データ、ＵＩオートメーションなどの情報リソースによって取得できる表示画面の情報は、それぞれで取得できる内容が異なる。
【００４６】
例えば、ＨＴＭＬファイルでは、ラベルなのかテキストボックスなのかといった部品の型の情報を属性情報として取得することはできるが、キーボードフォーカスが当たっているかという部品の動的な表示状態は記録されていない。その一方で画像データには、部品の動的な表示状態の情報は記録されているが、部品の型を厳密に判別する情報は記録されていない（形状からある程度推定することはできる。）。各情報リソースから取得できる情報は相補的であるため、可能な限り様々な情報リソースを用いて表示画面の情報をシナリオに記録しておくことが望ましい。
【００４７】
例示操作した部品の位置情報は、前述の例示操作時の表示画面の情報における部品木に対して、例示操作した部品と対応するノードを指し示す情報である。例えば、部品木のノードに一意に付与された識別子を記録する。
【００４８】
図２の表示画面を表示するソフトウェアがＷｅｂアプリケーションである場合のその表示画面のＨＴＭＬファイルを図８に示す。さらに図２の表示画面においてテキストボックス２を操作したとき、本発明においてシナリオに記録される情報の例を図９に示す。ここでは、操作順番を１とし、表示画面の情報として、ＨＴＭＬファイル、画像データ、ＵＩオートメーションの情報リソースから取得できる部品木と部品の属性情報を記録している。
【００４９】
自動操作部品特定部６は、記憶装置２に保存されている例示操作記録部５が自動生成したシナリオと、入力装置１から入力されたフィルタリング条件の集合とに基づいて、図７の手続きを実施する。ここで図７の手続きについて説明する。
【００５０】
まず、自動生成シナリオおよびフィルタリング条件の集合を自動操作部品特定部６に入力する。自動生成シナリオの操作手順は、ここでは１番からＭ番まで存在するものとし、ｓ１１のステップにおいて処理の繰り返し回数を表す変数ｉに「１」を代入する。自動操作部品特定部６では、以下のｓ１２からｓ２５のステップの処理をＭ回繰り返す。
【００５１】
まず、ｓ１２のステップでは自動生成シナリオに記録された操作順番ｉの表示画面の情報および操作部品の位置情報を取得し、それぞれ変数ｄおよび変数ｐｏｓに代入する。
【００５２】
次に、ｓ１３のステップで、シナリオ再生時の表示画面の情報として、現在の表示画面の情報を取得し、変数ｄ’に代入する。ここで取得する表示画面の情報は、例示操作記録部５が例示操作に対して表示画面の情報を取得したときと同様の処理によって取得する。さらにｓ１４のステップでは、入力されたフィルタリング条件の集合を変数ｆに代入し、ｓ１５からｓ１６のステップの処理をフィルタリング条件の要素数分繰り返す。
【００５３】
即ち、まずｓ１５のステップで変数ｆが空集合であるか判定する。もし空集合でなければｓ１６の処理を実施し、変数ｆからフィルタリング条件を取り出す。そして、その条件を用いて、変数ｄおよび変数ｄ’に代入されている例示操作時の表示画面の情報と現在の表示画面の情報を更新する。そして、ｓ１５のステップに戻る。
【００５４】
ここでフィルタリング条件とは、自動生成シナリオ中の表示画面の情報を限定するための、表示画面の情報の一部分を指し示す条件のことである。例えば、フィルタリング条件としては、
・情報リソースの指定
・表示画面の情報における部品木のノードとその属性情報の指定
・表示画面の情報における属性値の条件を満たす部品木のノードとその属性情報の指定
・表示画面の情報における属性情報における属性の指定
などが挙げられる。
【００５５】
表示画面において、複数のウインドウが表示されている場合、表示画面の情報として取得する部品木は、それらウインドウごとに取得できる。その場合、部品木全体とその配下のノードの属性情報をフィルタリング条件として入力しても良い。ｓ１６のステップでは、変数ｄや変数ｄ’に代入されている表示画面の情報において、これらフィルタリング条件に合致する部分を「Don't Care」というデータに置き換える。但し、フィルタリング条件として、部品木のルートノードを指定する条件と、例示操作した部品を示すノードを指定する条件は対象外とする。
【００５６】
フィルタリング条件として、「情報リソースがＨＴＭＬファイル」が与えられたときにｓ１５のステップを実施し、図９の表示画面の情報を更新した結果を図１０に示す。また、フィルタリング条件として、「ＨＴＭＬファイルの表示画面の情報における属性情報が“入力１”である部品木のノードと属性情報」が与えられたときにｓ１５のステップを実施し、図９の表示画面を更新した結果を図１１に示す。また、フィルタリング条件として、「画像データの表示画面の情報における表示座標属性」が与えられたときにｓ１５のステップを実施し、図９の表示画面を更新した結果を図１２に示す。また、フィルタリング条件として、「ＵＩオートメーションの表示画面の情報におけるControl Type属性が“ｔｅｘｔ”である部品木中のノードと属性情報」が与えられたときにｓ１５のステップを実施し、図９の表示画面を更新した結果を図１３に示す。
【００５７】
図７の手続きにおけるｓ１５のステップにおいて、変数ｆのフィルタリング条件の集合が空集合であれば、フィルタリング条件による表示画面の情報の更新が完了しているので、ｓ１７のステップに進む。ｓ１７のステップでは、変数ｄおよび変数ｄ’に代入されている表示画面の情報を比較し、表示画面の情報における部品木間のノード同士の対応関係Ｐを求める。但し、「Don't Care」であるノードは除外する。ここで求める対応関係Ｐとは、変数ｄのノードと変数ｄ’のノードの対の集合のことである。「Don't Care」でない変数ｄ，ｄ’のノードをそれぞれｎ，ｎ’としたとき、対は（ｎ，ｎ’）と表現できる。
【００５８】
このような対の集合である対応関係Ｐは、以下の再帰的なルールに基づいて決定される。
【００５９】
・（ノードｎとｎ’がともにルートノードの場合）以下の２つの条件をともに満たすとき、対（ｎ，ｎ’）∈Ｐである。
【００６０】
−ノードｎとノードｎ’の属性情報が等しい
−ノードｎとノードｎ’の子ノードが存在するならば、ノードｎの子ノードの属性情報の多重集合（集合内要素の重複を許す集合）とノードｎ’の子ノードの属性情報の多重集合が等しい。但し、子ノードが「Don't Care」である場合には、子ノード配下で「Don't Care」ではないノードが存在する下位階層のノードの属性情報の多重集合も判定に含める。例えば、図１４に示すルートノードであるオブジェクト１のノードの対が対応関係Ｐに含まれるか決定する場合には、オブジェクト２、オブジェクト４、オブジェクト６の属性情報が判定対象となる。もし、子ノードが「Don't Care」であって、子ノード配下のノードが存在しない、もしくは配下のいかなるノードも「Don't Care」である場合は、そのような子ノードの属性情報を判定対象には含めない。例えば、図１５では、オブジェクト１の「Don't Care」である子ノードの配下のノードは、全て「Don't Care」であるため、この場合のオブジェクト１に関する対が対応関係Ｐに含まれるか決定する際には、オブジェクト２とオブジェクト４の属性情報を判定対象とする。また、図１６では、オブジェクト１の「Don't Care」である子ノードの配下のノードは存在しないため、図１５の例と同様に、オブジェクト１に関する対が対応関係Ｐに含まれるか決定する際には、オブジェクト２とオブジェクト４の属性情報が判定対象となる。
【００６１】
・（ノードｎとｎ’のそれぞれの親ノードの対が対応関係Ｐに含まれる場合、但し、親ノードが「Don't Care」の場合には、先祖となるいずれかのノードとの対が対応関係Ｐに含まれる場合）以下の２つの条件をともに満たすとき、対（ｎ，ｎ’）∈Ｐである。
【００６２】
−ノードｎとノードｎ’の属性情報が等しい
−ノードｎとノードｎ’にそれぞれ子ノードが存在するならば、ノードｎの子ノードの属性情報の多重集合とノードｎ’の子ノードの属性情報の多重集合が等しい。但し、子ノードが「Don't Care」である場合には、子ノード配下で「Don't Care」ではないノードが存在する下位階層のノードの属性情報の多重集合も判定に含める。もし、子ノードが「Don't Care」であって、その子ノード配下のノードが存在しない、もしくは配下のいかなるノードも「Don't Care」である場合は、そのような子ノードの属性情報は判定対象には含めない。
【００６３】
なお、「Don't Care」ではないノードｎとノードｎ’の属性情報が等しいとは、以下の条件、即ち
・ノードｎもしくはノードｎ’の属性情報が「Don't Care」である、
・ノードｎ，ｎ’の属性情報がともに「Don't Care」ではなく、かつノードｎ，ｎ’のそれぞれの属性情報における同一属性の値が等しい、
のいずれかを満たす場合のことである。
【００６４】
なお、ここでの同一属性の値が等しいとは、以下の条件、即ち
・ノードｎもしくはノードｎ’の属性情報における同一属性の値のいずれかが「Don't Care」である、
・ノードｎおよびノードｎ’の属性情報における同一属性の値が同一である、
の両方を満たす場合のことである。
【００６５】
このようなルールに従って、部品木のノード同士の対応関係を求める問題は、部品木の同型判定や組み合わせ最適化問題の一種であり、例えば制約充足問題（非特許文献３参照）などの公知の技術に帰着すれば解くことができる。
【００６６】
対応関係Ｐを求めた後は、ｓ１８のステップにおいて、対応関係Ｐのノードの対において、「Don't Care」ノード以外の全てのノードが含まれていることを調べる。その結果、含まれていないノードが存在すれば、入力されたフィルタリング条件では、自動操作する部品を現在の画面の中で一意に特定できないことなるため、ｓ２４のステップでその旨を表示装置３などに表示し、手続きを終了する。一方、ノードが全て含まれている場合は、続くｓ１９のステップで、変数ｐｏｓが示す例示操作した部品の位置情報を元に、変数ｄに代入されている表示画面の情報における部品木のノード、即ち例示操作したときの操作部品を示すノードを取り出す。そのノードＮと表現する。
【００６７】
さらにｓ２０のステップにおいて、対応関係Ｐの中にノードＮが出現する対が複数存在するか調べる。存在すれば、入力されたフィルタリング条件では、自動操作する部品を現在の画面の中で一意に特定できないことなるため、ｓ２４のステップでその旨を表示装置３などに表示し、手続きを終了する。もし、ノードＮが出現する対が１つであれば、ｓ２１において、その対における変数ｄ’側のノードを取り出し、Ｎ’とする。続くｓ２２のステップでは、ノードＮ’を自動操作部７に渡す。自動操作部７は、ノードＮ’と対応する表示画面上の部品を自動操作する。
【００６８】
例えば、今、図２を例示操作時の表示画面とみなし、変数ｄに図１７の表示画面の情報が代入されていると仮定する。同様に図４を再生時の画面とみなし、表示画面の情報として変数ｄ’に図１８の情報が代入されているものとする。但し、説明を容易にするために、ここでは情報リソースはＨＴＭＬファイルのみに限定する。
【００６９】
例示操作においては、テキストボックス２を操作しており、この部品は、図１７におけるオブジェクト６のノードに対応する。よって変数ｐｏｓはオブジェクト６となる。また、図４の再生時の表示画面においても同様に、テキストボックス２を自動操作させる場合を考える。この部品は、図１８におけるオブジェクト４のノードに対応する。
【００７０】
ここで、フィルタリング条件として、「nameの以外の属性」が入力されているものとする。このとき、ｓ１５とｓ１６のステップによって最終的に更新される変数ｄおよび変数ｄ’の情報は、それぞれ図１９および図２０になる。
【００７１】
続くｓ１７のステップによって、変数ｄおよび変数ｄ’の部品木間のノードの対応関係Ｐを求める。この場合、ルートノードの属性情報同士は等しいが、変数ｄの部品木のルートノードの子ノードであるオブジェクト２からオブジェクト７の属性情報の多重集合と、変数ｄ’の部品木のルートノードの子ノードであるオブジェクト２からオブジェクト５の属性情報の多重集合が異なることになる。結果として、変数ｄと変数ｄ’のルートノード同士の対は、対応関係Ｐに含まれない。
【００７２】
ルートノードの子ノードに関する対は、その親ノードであるルートノード同士の対が、対応関係Ｐに含まれないため、やはり対応関係Ｐに含まれない。よって、この場合の対応関係Ｐは空集合になる。対応関係Ｐが空集合の場合、続くｓ１８のステップで、対応関係Ｐに、「Don't Care」ノード以外の全てのノードに関する対が存在するか調べる。ここでは対応関係Ｐが空集合でそのような対が存在しないため、ｓ２４のステップに進み、表示装置３などにエラーメッセージを表示し、手続きを終了する。
【００７３】
さらに、フィルタリングの条件を「属性情報が“入力１”の部品木のノードと属性情報」と「例示操作の表示画面の情報におけるオブジェクト５のノードと属性情報」に変更した場合を考える。変数ｄおよび変数ｄ’の表示画面の情報である図１７および図１８に、ｓ１５、ｓ１６のステップにて、これらフィルタリング条件を適用し更新した結果を図２１および図２２に示す。
【００７４】
ｓ１７のステップで更新した、変数ｄと変数ｄ’の表示画面の情報における部品木のノード間の対応関係を求めると、対応関係Ｐは、図２３のような表になる。表における行は、変数ｄと変数ｄ’のノード間の対に対応する。この対応関係には、「Don't Care」ノード以外の全てのノードが出現するので、ｓ１８のステップからｓ１９のステップに進み、変数ｐｏｓの示すオブジェクト６がとり出される。さらにｓ２０のステップにおいて、対応関係Ｐの中の対に変数ｄ側がオブジェクト６であるものが複数ないか調べる。
【００７５】
図２３に示すように、ここでは、変数ｄ側がオブジェクト６で変数ｄ’側がオブジェクト４である対が１つあるだけなので、ｓ２１のステップに進み、その対から変数ｄ’側のノードであるオブジェクト４を取り出す。そして、ｓ２２のステップでオブジェクト４のノードを自動操作部７に渡すことで、現在の表示画面においてオブジェクト４のノード対応する図４のテキストボックス２を自動操作する。
【００７６】
このように、本発明では、再生時の表示画面に合わせて、適切なフィルタリング条件を入力することで、その表示画面の自動操作する部品を正しく特定することができる。
【００７７】
従来技術の場合は、シナリオ自動生成時に、本発明のフィルタリング条件に相当する算出方法によって、特定情報を求めシナリオに記録していた。これは、シナリオに記録される表示画面の情報が非常に限定されたものになり、例示操作した部品の情報の一部、あるいは例示操作した部品と他の部品との関係の情報が欠落することを意味する。
【００７８】
例えば、算出方法として、ＨＴＭＬファイルのname属性の値を採用すると、図２の表示画面でテキストボックス２を例示操作した場合、シナリオには、図８のＨＴＭＬファイルに示すように、特定情報としてその部品のname属性である“ｂ”が記録される。つまり、同部品のtype属性の値や、ラベルとの位置関係の情報など、表示画面の情報が元々保持していた情報をシナリオに記録しないことになる。再生時の図４の表示画面に対して、シナリオに記録されたname属性が“ｂ”であるという特定情報を使って、自動操作する部品を特定しようとすると、テキストボックス３もname属性が“ｂ”なので、正しく特定できない。
【００７９】
ここで、本発明と同様に、算出方法を変えて、別の特定情報を得ようにも、自動生成シナリオにはname属性が“ｂ”であるという情報しか記録されていない。従って、例示した操作が「入力２」というラベルの右側のテキストボックスであるというような別の観点の特定情報を自動生成シナリオからは算出することができない。このような情報を算出するためには、特定情報の算出方法を変更し、再度、例示操作を行ってシナリオを自動生成する必要がある。
【００８０】
本発明の場合、シナリオには、表示画面全体に含まれる部品の情報がそのまま記録されており、例示操作した部品の情報や他の部品の関係を保持したままとなっている。よって、入力したフィルタリング条件で操作する部品を正しく特定できない場合でも、フィルタリング条件を適宜変更することで、自動生成シナリオ自体は変更することなく、例示操作した表示画面の部品と、現在の表示画面の部品との正しい対応関係を算出することができる。結果として、その対応関係を元に、例示操作した部品と対応する現在の表示画面の部品を自動操作することができる。
【００８１】
表示画面の部品を自動操作した後は、図７のｓ２３のステップにおいて、繰り返し回数を表す変数ｉが自動生成シナリオの操作順番の最大値であるＭと等しいか調べ、等しければシナリオに記録された操作順番全ての自動操作が完了したことになるため、手続きを終了する。もし変数ｉとＭが異なれば、ｓ２５のステップで変数ｉに１を加算し、ｓ１２のステップに戻り、処理を繰り返す。
【００８２】
自動操作部７は、自動操作部品特定部６から渡される部品木におけるノードが示す表示装置３の表示画面の部品を自動操作する。
【００８３】
なお、前述した実施の形態では、例示操作記録部５、自動操作部品特定部６、自動操作部７をコンピュータ上で実現した例を示したが、ハードウェアで実現しても良い。またこれら各装置が、適切な通信路で相互に接続された複数のハードウェア上に分散して存在し、相互に通信し合いながら実行することもできる。
【００８４】
本発明の装置が操作対象とするソフトウェアは、コンピュータ４において動作しても良いし、適切な通信路で相互に接続された別のハードウェア上で動作していても良い。
【実施例１】
【００８５】
ここでは、本発明の自動操作部品の特定装置が図５の構成をとった場合において、図２の画面に対して例示操作を行い、図４の画面に対して、自動生成シナリオを再生する実施例を示す。
【００８６】
まず、操作対象であるソフトウェアを入力装置１から例示操作を行う。ここでは図２におけるテキストボックス２を操作したとする。このときコンピュータ４上に構成される例示操作記録部５は、その操作を検知すると、入力装置１から入力される取得対象とする情報リソース取得プログラム（名）の集合の情報を入力として図６の手続きを実施し、表示装置３に表示されている図２の表示画面の情報や操作した部品の位置を示す情報、操作順番の情報を記録し、図２４のようなシナリオを自動生成する。さらにこの自動生成シナリオを記憶装置２にファイルとして保存する。ここでは説明をわかり易くするために、情報リソースはＨＴＭＬファイルのみを対象としているものとする。
【００８７】
表示装置３に表示されている図４の表示画面に対して再生を行う場合、自動操作部品特定部６は、記憶装置２に保存されている自動生成シナリオを読み込み、さらに入力装置１から入力されるフィルタリング条件の集合の情報を入力として、図７の手続きを実施する。
【００８８】
まず、ｓ１１のステップにて変数ｉに最初に自動操作する操作順番である１を設定する。次いで、ｓ１２のステップで、自動生成シナリオにおける操作順番が１の表示画面の情報および例示操作した部品の位置の情報を、それぞれ変数ｄおよび変数ｐｏｓに代入する。即ち、変数ｄは図９における表示画面の情報であり、図１７となる。変数ｐｏｓは図９における例示した部品の位置となる。さらにｓ１３のステップで、表示装置３に表示されている図４の画面に対して、表示画面の情報を取得し、変数ｄ’に代入する。変数ｄ’は、図１８になる。
【００８９】
今、入力されているフィルタリング条件の集合の要素が、「属性情報が“入力１”の部品木のノードと属性情報」および「例示操作の表示画面の情報におけるオブジェクト５のノードと属性情報」であるとすれば、続くｓ１４，ｓ１５，ｓ１６のステップによって、各フィルタリング条件に合致する変数ｄおよび変数ｄ’のノードや属性情報を「Don't Care」で置き換える。置き換えた結果の変数ｄおよび変数ｄ’はそれぞれ、図２１、図２２になる。このように更新した変数ｄおよび変数ｄ’の部品木のノード間の対応関係をｓ１７のステップで求める。
【００９０】
まず、それぞれのルートノードであるオブジェクト１は、それぞれ「Don't Care」でなく、かつオブジェクト１の属性情報同士が等しい。さらに変数ｄのオブジェクト１の「Don't Care」に置き換えられていない子ノードであるオブジェクト３、オブジェクト４、オブジェクト６、オブジェクト７の属性情報の多重集合と、変数ｄ’のオブジェクト１の「Don't Care」に置き換えられていない子ノードであるオブジェクト２、オブジェクト３、オブジェクト４、オブジェクト５の属性情報の多重集合とは等しい。よって対応関係Ｐに対（オブジェクト１，オブジェクト１）が登録される。但し、対の左側は変数ｄのノード、右側は変数ｄ’のノードである。
【００９１】
さらに、変数ｄのノードであるオブジェクト３の対応関係を求めると、オブジェクト３と対応する変数ｄ’側のノードは、ともに親ノード同士が対応関係Ｐに含まれる対である必要がある。今、対応関係Ｐには対（オブジェクト１，オブジェクト１）が存在するため、この条件に合致する変数ｄ’側のノードは、オブジェクト１の子ノードであるオブジェクト２、オブジェクト３、オブジェクト４、オブジェクト５となる。さらに変数ｄのオブジェクト３の属性情報“入力２”と等しいのは、変数ｄ’側のオブジェクト２のみである。よって対応関係Ｐに対（オブジェクト３，オブジェクト２）が登録される。このように「Don't Care」で置き換えられていない他のノードの対応関係を求めると、対応関係は図２３となる。
【００９２】
ここでは、「Don't Care」で置き換えられていないノードの全てが対として対応関係に含まれており、かつ変数ｐｏｓの示す変数ｄのノードであるオブジェクト６に関する対が複数存在しないため、例示した操作と対応する図４における自動操作する部品が一意に特定できたことになる。よって、図７の手続きのｓ１８，ｓ１９，ｓ２０，ｓ２１のステップに進む。ｓ２１のステップでは、変数ｄ側のノードが変数ｐｏｓの示すオブジェクト６である対を特定し、その対の変数ｄ’側のノードを取り出す。ここでは、図２３の対応関係の表の対（オブジェクト６，オブジェクト４）に特定され、オブジェクト４がとり出される。そして、ｓ２２のステップにおいて、オブジェクト４の情報を自動操作部７に渡し、自動操作部７は、操作対象ソフトウェアの図４の表示画面におけるオブジェクト４と対応するテキストボックス２を自動操作する。
【００９３】
ｓ２３のステップでは、変数ｉが自動生成シナリオにおける操作順番の最大値であれば、シナリオに記録されている全ての操作を実施したことになるので、処理を終了する。変数ｉが最大値でなければ、ｓ２５のステップで変数ｉに１加算し、ｓ１２のステップに戻る。
【００９４】
このように、再生時の表示画面に対して適切なフィルタリング条件の集合を入力することで、例示操作した部品と対応する表示画面における部品を正しく特定し、シナリオを再生することができる。
【符号の説明】
【００９５】
１：入力装置、２：記憶装置、３：表示装置、４：コンピュータ、５：例示操作記録部、６：自動操作部品特定部、７：自動操作部。
【先行技術文献】
【特許文献】
【００９６】
【特許文献１】特開２０１０−２０４８４０号公報（「ユーザインターフェース操作統合システムのカスタマイズ方法及び端末装置並びにコンピュータプログラム及び情報記録媒体」）
【非特許文献】
【００９７】
【非特許文献１】平井、関根、川野、「ソフトウェアのテスト効率と精度を向上させるＧＵＩ画面の自動操作技術」、東芝レビュー、Vol.63、No.6、June、2008
【非特許文献２】“ＵＩオートメーションの概要”、［ｏｎｌｉｎｅ］、Microsoft Corporation、［平成２３年７月５日検索］、インターネット＜ＵＲＬ：http://msdn.microsoft.com/ja-jp/library/ms747327(v=vs.80).aspx＞
【非特許文献３】西田、「人工知能の基礎」、丸善株式会社、pp.41-64、1999
【図１】
0005327908.tif 000002
【図２】
0005327908.tif 000003
【図３】
0005327908.tif 000004
【図４】
0005327908.tif 000005
【図５】
0005327908.tif 000006
【図６】
0005327908.tif 000007
【図７】
0005327908.tif 000008
【図８】
0005327908.tif 000009
【図９】
0005327908.tif 000010
【図１０】
0005327908.tif 000011
【図１１】
0005327908.tif 000012
【図１２】
0005327908.tif 000013
【図１３】
0005327908.tif 000014
【図１４】
0005327908.tif 000015
【図１５】
0005327908.tif 000016
【図１６】
0005327908.tif 000017
【図１７】
0005327908.tif 000018
【図１８】
0005327908.tif 000019
【図１９】
0005327908.tif 000020
【図２０】
0005327908.tif 000021
【図２１】
0005327908.tif 000022
【図２２】
0005327908.tif 000023
【図２３】
0005327908.tif 000024
【図２４】
0005327908.tif 000025