JP2015005245A - 画像認識による自動操作装置、その方法及びプログラム - Google Patents
画像認識による自動操作装置、その方法及びプログラム Download PDFInfo
- Publication number
- JP2015005245A JP2015005245A JP2013131466A JP2013131466A JP2015005245A JP 2015005245 A JP2015005245 A JP 2015005245A JP 2013131466 A JP2013131466 A JP 2013131466A JP 2013131466 A JP2013131466 A JP 2013131466A JP 2015005245 A JP2015005245 A JP 2015005245A
- Authority
- JP
- Japan
- Prior art keywords
- scenario
- user
- image
- gui
- window
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 263
- 230000009471 action Effects 0.000 claims abstract description 99
- 230000008569 process Effects 0.000 claims abstract description 95
- 238000012545 processing Methods 0.000 claims abstract description 92
- 238000012360 testing method Methods 0.000 claims description 47
- 238000005516 engineering process Methods 0.000 claims description 14
- 238000004088 simulation Methods 0.000 claims description 2
- 238000013515 script Methods 0.000 abstract description 49
- 230000000694 effects Effects 0.000 abstract description 40
- 230000008859 change Effects 0.000 abstract description 38
- 230000001360 synchronised effect Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 122
- 239000003795 chemical substances by application Substances 0.000 description 120
- 230000000875 corresponding effect Effects 0.000 description 42
- 238000012546 transfer Methods 0.000 description 16
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000012937 correction Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 238000006243 chemical reaction Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 238000007796 conventional method Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 230000011218 segmentation Effects 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000003709 image segmentation Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 230000002441 reversible effect Effects 0.000 description 4
- 230000009291 secondary effect Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000007257 malfunction Effects 0.000 description 3
- 238000003909 pattern recognition Methods 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- HMUNWXXNJPVALC-UHFFFAOYSA-N 1-[4-[2-(2,3-dihydro-1H-inden-2-ylamino)pyrimidin-5-yl]piperazin-1-yl]-2-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)ethanone Chemical compound C1C(CC2=CC=CC=C12)NC1=NC=C(C=N1)N1CCN(CC1)C(CN1CC2=C(CC1)NN=N2)=O HMUNWXXNJPVALC-UHFFFAOYSA-N 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000011835 investigation Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000011282 treatment Methods 0.000 description 2
- LDXJRKWFNNFDSA-UHFFFAOYSA-N 2-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)-1-[4-[2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidin-5-yl]piperazin-1-yl]ethanone Chemical compound C1CN(CC2=NNN=C21)CC(=O)N3CCN(CC3)C4=CN=C(N=C4)NCC5=CC(=CC=C5)OC(F)(F)F LDXJRKWFNNFDSA-UHFFFAOYSA-N 0.000 description 1
- SXAMGRAIZSSWIH-UHFFFAOYSA-N 2-[3-[2-(2,3-dihydro-1H-inden-2-ylamino)pyrimidin-5-yl]-1,2,4-oxadiazol-5-yl]-1-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)ethanone Chemical compound C1C(CC2=CC=CC=C12)NC1=NC=C(C=N1)C1=NOC(=N1)CC(=O)N1CC2=C(CC1)NN=N2 SXAMGRAIZSSWIH-UHFFFAOYSA-N 0.000 description 1
- YLZOPXRUQYQQID-UHFFFAOYSA-N 3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)-1-[4-[2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidin-5-yl]piperazin-1-yl]propan-1-one Chemical compound N1N=NC=2CN(CCC=21)CCC(=O)N1CCN(CC1)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F YLZOPXRUQYQQID-UHFFFAOYSA-N 0.000 description 1
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
【解決手段】画像領域分割エンジン122を用いて画像領域特定処理を行う画像認識部107によるユーザ操作のアクション単位の処理結果を、オブジェクト特定処理を行うコントロール制御部101によるユーザ操作のアクション単位の処理結果とともに、スクリプト同期部111によりユーザ操作のアクション単位で記録し、当該記録に従って画像認識部108及びコントロール制御部102を動作させてユーザの操作を再演させ、操作対象を特定結果照会部112によりユーザ操作のアクション単位で突き合わせて相互チェックすることで、操作対象APや適用対象PCの変化による影響を検出する。
【選択図】図20
Description
<オペレータエミュレーション方式の説明>
自動操作エージェントのシナリオ記録・再演の方式として、オペレータエミュレーション方式とオブジェクトアクセス方式との2つに分けられる。
従来技術では、PCのOSやウィンドウマネージャなどの入出力デバイスサービスが提供するAPIを介して、ユーザのマウス操作やキーボード操作の入力イベントをフック(受信)及びポスト(送信)することにより、ユーザの操作内容の取得やそれと同じ内容の操作の実行を行っている。これを従来型のオペレータエミュレーション方式と呼ぶこととする。
上記方式では、ユーザ操作のマウス座標がデータ値として内部的に流通するが、これはスクリーン上の位置を示しているにすぎず、マウスポインタが指しているGUI要素をエージェントが知るためには、GUIプラットフォームが提供するAPIを介して、座標値からオブジェクト参照を得る必要がある。
ウィンドウのサイズを変更しない前提であれば、ウィンドウ左上からの相対座標をマウスクリック位置として記録・再演することにより、GUI要素に操作しているのとほぼ同じエミュレーション操作を実行できる。しかしこれでは、GUI要素のウィンドウ内配置が記録時と再演時で異なる状態が発生してしまうと、破たんしてしまう。すなわち、本来、ユーザが意図したGUI操作対象とは関係ない位置や要素をクリックするなど、実行時の状況によっては、本来のGUI要素に対する自動操作ではなく、意味のない対象に対して動作を実行することがある。
(オブジェクトアクセス方式の定義)
オブジェクトアクセス方式は、上記オペレータエミュレーション方式の課題を回避する観点で有用な技術である。
上記方式では、GUI要素をハンドル番号やオブジェクト参照(ポインタ)などのプログラム内部で流通するデータで表し、API引数に使用することで対象にアクセスするが、これらの値は当該プロセスが終了して新たに起動した場合、すなわち他のプロセス実行時には同じ値にならない。つまり当該プロセス実行中以外ではユニーク性が保証されないため、自動操作エージェントが利用するには、そのままではシナリオに記録して後で再生に使用することができない。
(特定フィーチャーの定義)
このため、一般に自動操作エージェントは、不特定多数のアプリケーションを対象に連携する方法として、ある限定的な条件のもとにおいて異なる実行期間でもユニーク性が保証されるようなデータ(単数又は複数のデータ値の組み合わせ)を生成(適用対象アプリケーション内の操作対象GUI要素の属性から取得、あるいは周囲との関係から取得)し、シナリオに記録している。ここでは、これを「GUI要素の特定を目的としたデータ」と位置づけ、特定フィーチャーと呼ぶことにする。特定フィーチャーの概念は、オブジェクトアクセス方式か、オペレータエミュレーション方式かに関係なく、上位の概念を表すものとする。
特定フィーチャーをもとに操作対象を特定する処理としては、一般に複数種類の手法が考えられる。以降では、オブジェクトアクセス方式のための当該処理をオブジェクト特定処理と呼び、詳細に説明する。一方、オペレータエミュレーション方式のための当該処理を画像領域特定処理と呼び、詳細は別途説明する。ここでは、これらを総称して特定処理と呼ぶこととする。
オブジェクト特定処理においては、特定フィーチャーに相当する従来の技術として一般的に2つの方法が用いられている。
1つはGUIオブジェクトの「キャプション」属性の文字列値で識別する方法である。キャプションとは、ボタンのタイトルやウィンドウのタイトルなど、GUI要素がスクリーン上に表示されるときにそこに含まれる文字列で、ユーザが他のGUI要素との区別をスクリーン上の表示をもとに行う場合の手がかりとなる情報である。このため、キャプションを用いることで、ユーザには分かり易い特定フィーチャーが得られるが、そのユニーク性は基本的に保証されず、特定のアプリケーションやウィンドウにおける特定のGUIオブジェクトに対して使用される。理由は後述する。ここではこれをキャプション特定法と呼ぶ。
特定フィーチャーに相当するもう1つの方法は、GUIオブジェクトのコレクション、例えば所定の方法でオブジェクトを列挙したリストをもとに、その中の何番目に位置するか、により識別する方法である。ここでのリストは、GUIプラットフォームに依存したオブジェクト間関係を参照して得られるもので、例えばWindows(登録商標)のGUIの場合、GetAllControls()によって得られるオブジェクトリストのことである。前記同様、このユニーク性も基本的に保証されず、限定された条件下で使用される。ここではこれをコレクション特定法と呼ぶ。
以降では、従来技術において、特定フィーチャーがどのように限定的に用いられるか、具体例をもとに説明する。
キャプション特定法についてユニーク性が破たんする例としては、複数のウィンドウのそれぞれに「OK」というボタンが存在する場合が考えられる。この場合、特定のウィンドウ種類に限定して見ればユニークに特定できることが多いため、ウィンドウを他の特定フィーチャーで指定した上で、その内部のGUI要素に対しての識別に用いることが行われる。注意すべきなのは、指定したウィンドウ配下であっても特定のキャプション以外はユニーク性が保証されない点である。ここでは「OK」以外のキャプション、例えば「設定」「参照」などは、ファイル名を入力するテキストフィールドの横にそれらが配置されるUIデザインのパターンとして、1つのウィンドウ内で複数個所で現れることで、同じキャプションの要素が複数存在する場合がある、ということである。
(ユーザ操作に関係した限定条件の例と実行時依存性の定義)
コレクション特定法についてユニーク性が破たんする例としては、ウィンドウを開くことによってそのタイミングではじめてウィンドウ上に存在するGUI要素(GUIオブジェクト)の生成が行われる場合がある。なぜならば、ユーザがウィンドウを開いた順序によって、内部的なGUIオブジェクトのリスト上での位置が異なってくるからである。これは、実行時のユーザ操作の内容の違いによって特定フィーチャーの不変性が破たんする場合といえる。同様のことは、タブパネルを選択したことによってはじめてその内部に存在するGUI要素の生成が行われるなどでも発生し、GUIツリーの任意の階層に現れる。また、ある動作ボタンを押すことによってそのタイミングでアプリケーションの内部処理により、ウィンドウやGUI要素などのGUIオブジェクトの生成・移動・消滅が動的に行われる場合がある。
これとは別の例としては、アプリケーションをWindowsXP(登録商標)上で実行していたときと、Windows7(登録商標)上で実行していたときとで、GUIプラットフォームの仕様が異なるために、内部的なGUIオブジェクトの生成順序や生成個数が異なる場合がある。これはアプリケーションが同じ実行ファイルであっても、GUIプラットフォーム内での初期化処理の仕様やGUIツリーの詳細な構造が異なることにより発生する。
コレクション特定法は、GetAllControls()のように、特定のGUIオブジェクト配下のツリーノードを集めるため、特定のウィンドウ上のGUI要素を識別するために用いられるのが一般的である。
(キャプション特定法の課題)
キャプション特定法の前記のような使用方法において、識別対象から除外せざるを得ないケースは実用を考えると意外と多い。具体的には、まず、もともと固定的なキャプションを持たないテキストフィールドやコンボボックスなどを識別することができない。また、先に述べたように、同じキャプションの要素が複数存在する場合や、キャプション文字列値が動的に変化する場合や、アプリケーションのバージョン違い等で仕様が変化した場合など、限定条件から外れる場合は、識別することができない。
コレクション特定法の前記のような使用方法において、限定条件から外れているか(違反していないか)どうかがユーザからは分かり難い。具体的には、UIの見た目からGUIオブジェクトのツリーを正確に把握することはできず、また特定処理の内部の動きがユーザには分かり易くイメージできないため、シナリオに記録された特定フィーチャーが意図したGUI要素を特定できるかどうか、実際に処理を動かしてみないと分からない。
以上をふまえると、オブジェクト特定処理に共通の課題として次のことが考えられる。一般にユーザはスクリーン上に出力された画像内容を視覚的にとらえ、GUI要素の画面上の幾何的な配置関係によって複数の要素を識別している側面がある。そこでは、実行時依存、実装内容依存で、GUI要素の生成順序や、内部的なオブジェクト参照リスト、キャプションの重複状況などが変化しても、視覚的に位置関係が変わらなければ、同じ要素と識別されると考えられる。GUIレイアウトがこのようなユーザ側の傾向を前提としてデザインされる点は、どんなアプリケーション、どんなGUIプラットフォームでも共通していると考えられ、普遍的な性質である。キャプション特定法・コレクション特定法をはじめとする一般的なオブジェクト特定処理では、このようなGUI要素の配置関係についての普遍的な性質を利用したフィードバックは存在しなかった。
従来の技術では、ユニーク性が保証される範囲で限定的にオブジェクトアクセス方式を用い、これが使えない操作部分については、オペレータエミュレーション方式を用いるのが一般的である。2つの方式が混合したシナリオの記録・再演が可能なエージェントフレームワークを提供することで、適用対象の汎用性と操作内容の実用性が高くなる。しかしながら、要求される汎用性や実用性のレベルが高くなると、オペレータエミュレーション方式であっても、各種限定条件や実行時依存性、実装内容依存性の制限は、相対的に重要な課題となってくる。
もともと従来型オペレータエミュレーション方式では、ユーザからPCへの入力だけが扱われており、PCからユーザへの出力が利用されていない。すなわち、オペレータエミュレーション方式における、特定フィーチャーの実現方法は従来技術としては存在していないことを意味する。一般に、ユーザにとってPCからの出力として、スクリーンに表示される画像内容が最も重要である。ユーザと同じように、画像内容から、そこに現れているGUI要素を識別したり、逆にシナリオに保持されている情報から画面上のGUI要素を特定したりすることができれば、実行時依存性だけではなく実装内容依存性の観点でも有用である。
従来技術では、PCスクリーン上に描画されたGUI要素を画像テンプレートマッチングなどの画像処理技術によって、その存在や位置を特定する方法が用いられている。これによると、適用する場面や状況が好ましい場合(限定条件の範囲内)であれば、基本的に実装依存性に影響されずに、スクリーン上のGUIの見た目に基づいて複数のGUI要素を見分け、それが描画される矩形領域上でのマウス操作を通してGUI操作が可能である。限定条件の詳細については、後述するものとして、まずは具体的な処理方法について説明する。
このように画像内における座標値により、GUI要素の識別・特定を行う処理は、実際にはGUIプラットフォーム実装に依存するために、適用箇所ごとに対応が必要となる。ここでは上記処理を一般化した方式を画像領域特定処理と呼ぶ。画像領域特定処理は、ユーザが目でスクリーン上の描画内容を認識し、操作対象のGUI要素が描画されている領域にマウスポインタを移動する操作に相当する。当該のマウスポインタ位置、すなわち画像上の領域を対象として、クリックする操作をエミュレーション実行することで、当該の領域を占めるGUI要素に関連づいた操作(例えば、ボタンであればボタンプッシュアクションなど)を行うのと同じ過程を、ソフトウェア的に実行可能とする。
従来型のオペレータエミュレーション方式は、操作ログとして得られたマウス入力の位置をそのまま、あるいはウィンドウ内相対位置に変換して実行する。これに対して、操作位置を画像内容に適応させるために、画像領域特定処理により得られた領域を操作対象として扱い、マウスのエミュレーション操作における位置座標を操作対象を表すデータとして実行する方式が考えられる。ここではこれを、適応型オペレータエミュレーション方式と呼ぶ。
オブジェクトアクセス方式のオブジェクト特定処理と、適応型オペレータエミュレーション方式の画像領域特定処理は、対応関係にある。2つの違いは、
(1)オブジェクト特定処理
GUI要素に対応する情報:GUI要素のAP内部のオブジェクト
GUI要素を指定するデータ:GUI要素のAP内部のオブジェクト参照
GUI要素の特定フィーチャー:キャプチャ文字列またはコレクション情報
(2)画像領域特定処理
GUI要素に対応する情報:GUI要素のスクリーン上の矩形領域
GUI要素を指定するデータ:GUI要素のスクリーン上の矩形座標値
GUI要素の特定フィーチャー:画像テンプレートマッチアルゴリズムの引数データ
と整理できる。
この方式の1つめの長所として、GUIプラットフォームの実装に対して独立である点が挙げられる。これは、GUI要素に対応する情報やそれを指定するデータが、スクリーン上で扱われるものであり、ユーザに対する視覚的な出力を行う全てのソフトウェアは、これらを共通的に持つためである。オブジェクトアクセス方式では、このような扱いができない場合があり、例えば、Flashなど内部アクセスが不可能なGUI実装や、RemoteDesktopなど実体が遠隔に存在するGUI構成など、がこれに相当する。
以上では、GUI要素の特定を行う観点から画像を扱う考え方を説明し、優位性を示した。以下では、処理目的を幅広くとらえ、画像を利用した自動操作に関する従来技術の観点から、改めて考え方を説明し、適用要件を示す。
ビットマップデータなどの画像からの認識過程は、一般にパターン認識や確率計算の過程が含まれ、結果の確実性については、当該アルゴリズム以外にも、画像内容や要求精度に大きく依存する。ここでは、ブラックボックス(学習ベース)型アルゴリズムとホワイトボックス(ルールベース)型アルゴリズムに分類する。そして、自動操作エージェントに適用する場合の実用性の観点から、前者は除外し、後者を採用する。これは画像認識の技術領域を応用する際の要件である。
「画像領域分割エンジン」に相当する従来技術としては、先に挙げたとおり、画像テンプレートマッチなどの画像認識技術をアドホックに応用した自動操作エージェント実装がある。画像テンプレートマッチではなく、画像領域特定処理に用いることにより解消される課題の多くは、先願の明細書に記載されているところである。ここではそれ以外に、画像テンプレートマッチに代えて「画像領域分割エンジン」を導入しても、別途対応が必要となる2つの要件を説明する。この両方を実用性の高い方法で実現することが、エージェント内で画像認識の技術領域を利用する際の要件である。
(GUI要素の外観変化への対応)
一般に、画像認識処理をルールに基づいて実現する場合、様々なルール形式が考えられる。特に、画像領域を特定する形式でルールが指定される処理が画像領域特定処理であり、「画像領域分割エンジン」はそれらの中の1つの方式であるが、この方式を使用する利点は、GUI要素の画像上の見た目(外観)が変化しても、テンプレート画像を差し替えるだけで対応できる点である。これは、GUI要素の間の幾何制約的な位置関係が変わらなければ画像領域分割ルールの制約条件を変える必要はないことを意味する。これに対して、テンプレート画像は幾何制約中にあらわれる基準位置を適用対象画像によって特定する働きをし、GUI要素の外観に依存する。
「画像領域分割エンジン」のメリットとして、適用対象のルックアンドフィールが変化しても分割パターンが変化しなければ、テンプレート画像の差し替えのみでルールの変更なしに対応できることを説明した。しかし、テンプレート画像を差し替える対応自体は別の観点(ツール全体としての運用性)では問題を生じる。
自動操作によるバッチ実行の場合のトラブルに対しては、誤った処理の影響範囲を追跡し、必要な場合は外部データの修正をしなければならないなど、運用上の課題がある。これに対してエージェント自身が出力するプログラム動作ログは、プログラム内部の状態を開発者向けに記録したものであり、エンドユーザがそれをもとに原因究明するのは実際的に不可能である。エンドユーザが見ても、そこから自動実行の内容を理解したり、操作全体の状況を把握したりが容易に、例えば視覚的表現や直感的操作を通して、行える情報を提供することが課題である。
(GUI要素の分類)
一般に、GUI要素は大きく2種類に分類される。1つはボタン、コンボボックス、テキストフィールドなどであり、ここでは「コントロール」と呼ぶ。もう1つは、タイトルバーを有し、ムーブ・リサイズ(スタイル指定により可否)が可能なトップレベルウィンドウ(フレームウィンドウやダイアログボックス)であり、ここでは単に「ウィンドウ」と呼ぶ。以上の呼び方は、GUIプラットフォームの種類によって定義されている用語と概念の対応が異なるので注意が必要である。例えば、swing(Java(登録商標))においては、コントロールをコンポーネントと呼んでいる。また、MFCや.netにおいては、ウィンドウは画面上に矩形領域を占める広範なオブジェクトに対応し、コントロールもその一種に相当する。
これまでの説明では、GUI要素として、コントロールとウィンドウを特に区別せずに記述してきたが、自動操作の従来技術においては、これら2つの扱いは明確に分かれているのが一般的である。すなわち、エージェントが操作対象の座標位置を知る場合に、ウィンドウはその種別によらず当該PC上のウィンドウマネージャのAPIを共通で使用できるのに対し、コントロールはウィンドウマネージャではなくGUIプラットフォームごとにAPIが異なり、プラットフォーム種別によっては非公開のものもある。
ウィンドウの特定には、オブジェクトアクセス方式のキャプション特定法が用いられることが多い。具体的には、ウィンドウタイトルの文字列を正規表現で文字列マッチングをとる方法が使われる。キャプション特定法の限定条件で説明したとおり、タイトルが特定の命名規則の場合だけ適用可能という制限がある。特定したい対象が予めどのような命名規則に従うか定められない場合や、同じ正規表現で本来、区別すべき複数のウィンドウタイトルがマッチしてしまう場合は、従来のウィンドウの特定処理で対応できない。これに対しては、コントロールの場合と同様、画像からウィンドウを特定できることが望ましい。しかしながらウィンドウの存在有無や座標位置を、画像内容から認識することは技術的に困難である。
従来技術の中で画像認識技術を自動操作エージェントに利用するアプローチは優れた面が多いが、前章で説明した要素技術の具体例と個々の課題から、エージェントへの適用にあたって次の課題があることがわかる。
(課題1−1:GUIの相互位置関係の変化による、画像領域特定の失敗の可能性)
エージェントに入力される画像内容によっては、画像認識アルゴリズムが誤った結果を返す可能性が常にある。これは、画像領域特定処理のように、画像内容について人の認識過程を模倣したパターン処理を行うアプローチにおいて不可避である。ここではこれを「画像認識の不確実性」と呼ぶ。
同様にAPの実行時状況としてユーザ操作内容や外部データ内容など環境が変わると、オブジェクト特定を失敗する場合がある。これらはオブジェクト特定処理の限定条件から、対象や環境が逸脱することにより発生する事象として一般化できる。つまり当初想定した場合から外れた、想定外の場合にある状態を意味する。これは、オブジェクト特定処理のように、実行時依存性や実装内容依存性を考慮した上で、アルゴリズムやルールが適正に動作する状況を前提としたアプローチにおいて不可避である。ここではこれを「限定条件の不確実性」と呼ぶ。
(課題2−1:GUIのルックアンドフィールの変更による、テンプレート画像の無効化)
GUIプラットフォームのバージョンアップや起動オプションの切り替えにより、ルックアンドフィールが一部あるいは全部について変化してしまう場合がある。また、WindowsOSのカスタマイズ機能(例えば、Windows7の「ウィンドウの色とデザイン」、WindowsXPの「画面のプロパティ/テーマ」など)によりユーザが変更を行うことによってもルックアンドフィールが変化してしまう場合がある。多くの場合、GUI要素間の相互の位置関係が一定のパターンを維持しているが、画像認識対象となるGUIの見た目が変わってしまう。パターンとのマッチングを行うルールはそのまま使えても、個々の見た目と結びついたデータ、特に画像マッチング処理のテンプレート画像については、変化に応じて変える必要がある。そのままの特定フィーチャーでは、変動後に対しては使えないことになる。
先に説明したように、ユーザ操作の順序により実行状況が変わったり、適用対象APのバージョンアップやGUIプラットフォームのバージョンアップなど実装内容が変わると、GUIコレクション内の順序が変わる可能性がある。当該順序上、何番目に存在するかでオブジェクトを特定するコレクション方式については、そのままの特定フィーチャーでは、変動があった場合に使えないことになる。
RemoteDesktopや仮想マシンなどのバーチャル環境のデスクトップ領域は、ホストOS上のウィンドウマネージャにおいては、1つの大きなウィンドウとして存在し、その内部は1つの画像データが全面に表示された状態となっている。つまりユーザからは視覚的に存在するが、その内部実装は当該ウィンドウマネージャ内に存在せず、別の場所あるいは別の形態で存在する。従って、オブジェクトアクセスの対象となるGUI要素オブジェクトは、当該ウィンドウマネージャからAPIを介してアクセスすることはできず、GUIコレクションそのものが取得できない。この場合も、コレクション方式の特定フィーチャーが使えないことを意味する。
上記で挙げたような変動が仮に発生した場合、変動後の新しい特定フィーチャーを用意して、もとのシナリオ上で差し替える必要がある。例えば、GUIのルックアンドフィールが変わった場合、対象のAPを起動して、もとのシナリオと同じ操作内容を手動で実行し、ウィンドウ画像をキャプチャし直す必要がある。一方、実行状況や実装内容が変わった場合、キャプション方式かコレクション方式の特定フィーチャーを取り直す必要がある。両者とも、操作の記録モードで共通シナリオと個別シナリオを同時に記録するにしてもシナリオに条件分岐やループが存在すると、その部分については編集操作が必要である。これらの手作業は手数が多いだけではなく、内容が煩雑で間違い易く、多くの時間と労力、十分な習熟と技能を要する。
オブジェクト特定処理または画像領域特定処理の誤った結果をもとにして、意図しない自動実行が継続される可能性は常に存在し、これを防ぐ完全な対策は一般に存在しない。重要なのは、特定処理の誤りや意図しない自動実行の発生そのものではなく、その発生をユーザが気付かない場合が常に起こり得る点である。これは、特定結果の誤りはそれ自体では判断できず、その特定結果をもとに自動操作することにより発生したエラーから間接的にしか判断できないからである。
特定フィーチャーの作成には、実際にその状況の画面キャプチャ画像を取得する必要があるため、外部環境との関係により稀にしか再現しない状況や、再現に手数がかかる状況については、例え少量であっても、ユーザにとってその作成は著しく困難となる。
実際に問題を起こした画像領域特定フィーチャーの修正方法を検討したり、修正後の動作を確認したりするには、それに似た状況を条件を変えて再現する必要があり、多くの手間と時間がかかる。
(課題7:ルール修正の稼働が大きいことによる技術的な取扱いの困難性)
画像認識ルールの適用対象となる画像内容(UI配置)のパターンが、実際の適用・運用の過程で変化することは十分想定されるため、ルールを実運用しながら適合度を精緻化する必要があるが、通常はその作業稼働が大きく現実的に困難であり、エンドユーザにとってはルール変更の影響を類推できず、技術的に取扱いが困難である。
操作対象特定のために画像認識を利用する場合も、その処理箇所は操作の記録・再演の中では統一的に扱う必要があるが、通常は他の操作アクションとは異なる扱いをアドホックに行うためシナリオの保守性が低下してしまう。
(個別課題1:エンドユーザが自動実行の履歴を容易に把握する手段の必要性)
(個別課題2:ルックアンドフィール変更(見た目の変化が全体に及ぶ)への対応の必要性)
(個別課題3:ウィンドウの存在有無や座標位置を画像内容から認識することの困難性)
がある。それぞれ詳細は≪従来の技術≫の章を参照。
本発明は大きく3つの特徴からなる。第1に、適用対象の変動に対する補償を目的とした、画像領域特定処理とオブジェクト特定処理の併用である。第2に、画像領域特定のルールの定義・修正・試験を目的とした、画面キャプチャ画像とマウス操作イベントからなる操作ログの蓄積である。第3に、複数の方式、複数の操作記録の間での対応アクションの比較・変更を目的とした、対応関係情報の保持とアクションエディタ(編集設定手段)の提供である。以下ではそれぞれについて概要を説明し、具体的機能を挙げる。
画像認識技術を用いてPCスクリーン上に描画されたGUI要素を操作対象として認識する方法(画像領域特定処理)と、GUIプラットフォームのAPIを介してGUIオブジェクトにアクセスする従来の方法(オブジェクト特定処理)と、を両方組み合わせた機能を提供する。
両方を組み合わせた機能とは、以下に示す各々の長所を補完的に用い、一方が変動しても他方で補償する考え方に基づく。
ここでは、オブジェクトアクセス方式の特定処理(オブジェクト特定処理)と操作処理だけで構成されたシナリオを個別シナリオと呼び、オペレータエミュレーション方式の特定処理(画像領域特定処理)と操作処理だけで構成されたシナリオを共通シナリオと呼ぶものとする。
提供機能1:図1に示すように、操作の記録時に前述した個別シナリオ及び共通シナリオの2種類のシナリオを並行して記録する。それにより、操作の再演時に2種類のシナリオの処理結果を突き合わせることで相互チェックを行い、適用対象の変動(ルックアンドフィールやGUIレイアウトルール、実装内容)などによりシナリオが意図した動作を再演できていない可能性を検出する手段を提供する。
画像領域特定処理は、画面出力とマウス入力を受け付ける全てのAPに共通的に適用できる点で、オブジェクト特定処理に対して汎用性が高い。また、特定処理の入力と出力が、画像と座標という実装独立の形式であるためにGUIプラットフォーム種別に関係なく統一化が可能であり、比較的処理が軽いためにバックグラウンドでログを取得し、履歴として蓄積することも可能である。これを利用して、画像領域特定のルール(画像領域分割ルール)の定義・修正・試験を、過去に遡って実施できるだけではなく、蓄積したログを移動することで、実際には当該環境で起動できない適用対象やその場での再現が困難な適用状況など、大規模運用におけるメンテナンス効率化に活用できる。
提供機能4:図5に示すように、操作の記録時、操作の実行時、いずれにおいてもユーザの指示もしくはエージェントの自動的判断により、実行中の操作を操作ログリポジトリに記録する。そして、過去に遡って任意の操作箇所とその前後を閲覧したり、操作対象が同じAPやGUI要素に対する操作ログを閲覧する手段を提供する。
(提供機能の具体的内容(編集設定手段))
提供機能7:実行中シナリオもしくは閲覧中の操作ログの再演時シナリオの参照位置ノードを特定し、それに対応する2方式のアクションについて、それぞれの特定フィーチャーを個別に編集する所定のエディタ画面を表示する。
<ハードウェア構成(装置構成)>
従来技術から想定される自動操作エージェントのハードウェア構成を図8に示す。
〈全体〉
従来技術から想定される自動操作エージェント10の機能構成を図9に示す。エージェントはオペレーティングシステム対向IFを介して、操作対象APの状態やユーザ操作のイベントを取得する。状態やイベントの取得方法は、その対象の種類によって異なるAPIや異なる手順となる。このため、GUIプラットフォーム種別等に応じて、異なるコントロール制御部(コントロール特定処理を実行)11が複数存在する。これらのモジュールは、エージェントが対応するGUIプラットフォームを拡張するためにアダプタとしてプラグイン可能な構成となっている。
従来技術における画像認識部14は基本的なテンプレートマッチ機能を提供する従来技術の構成を示している。複雑なルール設定などは存在せず、単純にクリックしたい位置の画像断片や、識別させたいウィンドウが含む画像断片を適用する。
(自動操作スクリプトの役割)
自動操作スクリプトファイル40は、エージェント10が記録モードで生成し、編集モードで変更し、再生モードで参照するファイルである。エージェント10は記録モードで、操作対象に対するユーザの操作内容をもとに、スクリプトを生成し、ファイル形式で保存する。編集モードで、ユーザに対して、スクリプトの内容を手動で編集し、ループや条件分岐などの制御構造を定義する手段を提供する。再生モードで、指定されたスクリプトの内容を解釈し、自動操作を実行する。
スクリプトファイル40は、操作シナリオ情報と対象プロファイル情報の部分からなる。
操作シナリオ情報は、複数のアクションを保持し、自動実行の制御構造のなかにこれらのアクションを関連付けている。アクションは操作実行の最小単位であり、操作対象の識別子(対象識別子)、作用種別の識別子(作用識別子)、作用パラメータからなる。
対象プロファイル情報は、外部環境から操作対象やその関連対象、すなわち実体要素を特定・識別する手がかりとなるデータ、つまりフィーチャーを定義している部分である。特定された操作対象は、エージェント内部で流通する対象識別子によって操作シナリオ情報の部分から参照される。
従来技術におけるプロファイル情報は、操作対象のコントロールを特定するためにコントロール制御部11が参照する情報としてコントロールフィーチャーを保持する。ウィンドウを特定する場合も同様である。これらはシナリオ情報の補足的な扱いなので、シナリオエディタ16の内部に閲覧・編集の機能が限定的に提供される。すなわち、シナリオエディタ16がスクリプト全体の編集をカバーしている。具体的な画面事例は後述する。
従来の自動操作エージェント10の動作フローの全体を図10に示す。自動操作エージェント10は記録モード、編集モード、再演モードのいずれかで実行される。エージェント10を制御するためのGUI画面が提供され、ユーザは3つのモードを任意に切り替えることができる。
(全体制御UIと再演モード画面)
エージェントによる自動操作を行っている状況の画面を図14に示す。左側の2つのウィンドウは、操作対象アプリケーションのGUIを表している。右側の1つのウィンドウは、再演モードにおけるエージェントの制御画面である。当該ウィンドウには、操作シナリオの内容がフローチャートの形式で表示され、現在の自動実行のインストラクションポインタ位置をハイライトで強調するなど、ユーザの利便性を向上する工夫が行われている。これは、別途のユーザ指示やオプション設定やエージェントビルド時指定によって省略されていても良い。当該ウィンドウの上部にはユーザによって読み込まれたシナリオファイル名が表示されており、左のボタンにより別のファイルを読み込むことができる。また、その下の停止ボタン(「■」のアイコン)によって、シナリオの実行を停止し、編集モードに移行することができる。また、実行ボタン(「→」のアイコン)によって再演モードに入りシナリオ最初からもしくは前回中断の継続位置から実行する。
エージェントによる操作記録もしくはシナリオ編集を行っている状況の画面を図15に示す。ユーザは、ワークフロー図1501において、ワークフローエディタの図形操作によって、制御構造を閲覧編集できる。また、予め用意されたアクションや特殊な機能は、ワークフロー図1501の左のパレットからノードアイコンをドラッグして、図中に配置することにより、当該の要素をシナリオに組み込むことができる。後に述べる画像認識機能など、ユーザの操作の例示ではシナリオ作成ができない機能は、これらパレットから作成する。
編集ボタン1504を押下することによって、当該ノードに相当する操作内容について閲覧・変更することができる。操作パラメータ編集パネルを図16に示す。この画面は様々な操作種別に対して共通の画面設計を採用している。具体的には、例えばボタン押下アクションの場合は、特にパラメータは指定しない。また、チェックボックス操作の場合は、チェックをオンにするかオフにするかのブール値を指定する。また、テキストフィールド入力の場合は、入力する文字列値を指定する。さらに、GUIコントロールに対する操作だけではなく、低レベル入出力についてもこの画面で閲覧・変更する。マウスクリックアクションの場合は、右マウスボタンか左マウスボタンかの違いや、シングルクリックかダブルクリックかの違いなどをパラメータで指定する。操作種別に応じて当該画面の「<パラメータ1>」等のラベルを適切なパラメータ名称で表示したり、指定の必要がないパラメータはテキスト入力をディスエイブルとしたり、といった工夫は考えられる。
なお、この従来技術の実施例においては、本発明の内容を説明し易くするため、マウスのクリック座標を、当該画面ではなく前記の操作対象についての編集画面で扱う。すなわち、クリック座標については、マウスの操作内容としてではなく、疑似的に操作対象として表す点に注意する。但し、このような実施例としても、マウス入力の操作記録に関する構成や動作は、一般に知られている仕様(クリック座標値をマウスの操作内容として扱う画面設計)と本質的に同等である。
前記マウスクリック座標値の扱いを踏まえ、操作対象の閲覧・編集には2種類の対象パラメータ編集ウィンドウを提供する。
〈シナリオの記録と再演の動作〉
(操作シナリオにおける記録モード動作)
自動操作エージェント10は記録モードにおいて、操作イベントを検知するたびにそれがどの操作対象に関するものなのかを特定する処理を実行する。WindowsOSにおける操作イベント検知手段(Windows Message)やそのほか一般的なイベントの仕様として、イベントデータの中に操作対象オブジェクトのアドレスやハンドル(オブジェクト参照)が含まれる。エージェントはオブジェクト参照をもとに、操作対象の特定に必要な情報(特定フィーチャー)を、OSのAPIを介してオブジェクト実体に問い合わせ、取得する。
自動操作エージェント10は再演モードにおいて、現在実行アクションの操作の操作対象の特定フィーチャーを、適切な制御部に送信する。当該制御部配下の特定処理が、コントロール要素のオブジェクト参照をOSから取得する。それらフィジカルデータを、スクリプト制御部15は記録・実行制御部17と連携して、現在実行アクションの作用種別識別子に応じて、関連付けられたパラメータを適切な作用処理を配下に有する制御部に送信する。記録・実行制御部17は、関連付けられたパラメータに実行後の状態を取得・反映し、スクリプト制御部15と記録・実行制御部17に実行完了を通知する。
図18でも触れたように、アクションのうち、マウスクリックなどの入力操作をそのままアクション化したものは、オペレータエミュレーション方式に相当する。ウィンドウ移動などによる影響を考慮し、当該方式を単独で用いるのではなく、ウィンドウに関してはオブジェクトアクセス方式で取得し、その内部のコントロールに関してはウィンドウ内部の相対座標で位置を決定する。
・もともと従来の方法では存在しない
・既存の画像マッチ機能はアドホックな埋め込み方で一貫性がない
・仮に画像マッチを取り入れてもウィンドウ内のコントロール特定のみで一般性がない
というように、フレームワークとしての対応ができていないことがわかる。
<ハードウェア構成(装置構成)>
本発明による自動操作エージェントのハードウェア構成を図19に示す。従来技術に対する差異として、本発明による自動操作エージェント100及び自動操作スクリプトファイル400が用いられる他、操作ログファイル50及び試験結果ファイル60が外部記憶装置7に配置される。
〈全体〉
また本発明による自動操作エージェント100の機能構成を図20に示す。従来技術に対する差異として、以下が挙げられる。
従来のコントロール制御部、ウィンドウ制御部、マウス・キーボード制御部及び画像認識部の基本機能群が、記録モード用及び再演モード用の別々のインスタンスとして、即ちコントロール制御部101,102、ウィンドウ制御部103,104、マウス・キーボード制御部105,106及び画像認識部107,108として配置される。
スクリプト同期部111は、記録モードで、アクション記録ごとに個別シナリオと共通シナリオの対応するノードに対しシナリオノード識別子を発行・通知する。
特定結果照会部112は、再演モードで、アクション実行ごとにオブジェクト特定処理と画像領域特定処理の結果を突き合わせる。異なる操作対象を示している場合は、再演スクリプト制御部110に通知し、再演スクリプト制御部110はシナリオの再演を停止させる。
特定結果変換部113は、オブジェクト参照を画像領域に変換することにより、オブジェクトアクセス方式の特定処理をオペレータエミュレーション方式の特定処理の代わりとして使用できる。また、個別GUIプラットフォームの制御アダプタに所定のAPIが存在すれば、逆の方向への代替使用も可能となる。
操作内容変換部114は、オブジェクトAPI呼び出しをマウスクリックエミュレーションに変換することにより、オペレータエミュレーション方式の操作処理をオブジェクトアクセス方式の操作処理の代わりとして使用できる。また、個別GUIプラットフォームの制御アダプタに所定のAPIが存在すれば、逆の方向への代替使用も可能となる。
記録モードのオペレータエミュレーション方式に関わるアダプタ、すなわちマウス・キーボード制御部105及び画像認識部107とオペレーティングシステム対向IFとの間には、操作ログ取得IF115が配置され、再演モードのオペレータエミュレーション方式に関わるアダプタ、すなわちマウス・キーボード制御部106及び画像認識部108とオペレーティングシステム対向IFとの間には操作ログ再生IF116が配置される。
操作ログリポジトリ117には、複数の操作ログセッションが含まれる。操作ログセッションは、当該操作ログを取得したセッションの状況を表すデータをヘッダとして保持する。ヘッダには、ログ取得環境とログ取得状況の情報が格納される。ログ取得情報には、アーキテクチャ種別(実端末か仮想端末か)、端末構成(OS設定、入力機器構成)、ディスプレイ構成(単数または複数について、サイズ、境界の絶対座標値、色数など)、OS種別、ウィンドウマネージャ種別、ルックアンドフィール種別を含む。ログ取得状況には、取得開始日時、取得終了日時、ユーザ名を含む。
操作ログ上の情報をもとに画像領域特定処理のシミュレーションテストを行う画像認識試験部119を有する。ユーザは試験設定を行った後、当該画像認識試験部119に処理を依頼することで、試験のバッチ処理を行う。バッチ処理では、画像認識部107,108と同様な画像認識部120を用いて、複数のキャプチャ画像に対して画像領域分割ルールを適用し、その結果を試験結果格納部121に蓄積していく。試験結果格納部121には、前記試験で得られた、各アクションについて当該の画像領域特定フィーチャーに対する特定結果が保持される。本機能は、動作フローの試験再演モードに相当する。詳細な説明は省略する。
画像認識部107,108,120は、画像領域特定処理を呼び出し、画像領域特定処理は、画像領域分割エンジン122,123,124を呼び出すよう機能配置される。従来技術の画像認識部は、通常のユーザ操作に対応するアクションではなく、予めエージェントに具備された特別なアクション(記録モードではなく、編集画面のパレットから生成される)として提供されていた。本発明では、エンジンに入力されるデータ(ルールとラベル)をもとに画像領域を特定する処理として扱われる。すなわち、シナリオ上のアクションとして他と同じく特定フィーチャーをもとに処理される。エンジンとの接続、特定フィーチャーの形式、ルールエディタの詳細は後述する。
従来技術のプロファイル情報に加えて、端末や環境に関するプロファイル情報が追加される。具体的には、プロセス、ウィンドウ、コントロールのハンドルIDごとに、ライブラリ種別、ルックアンドフィール種別を含む。そのほか、フォント種別、ポイント数、描画色、背景色、などを含んでも良い。これらは、エージェント内部で流通する識別子と後述の特定フィーチャーに関連付けられる。これらプロファイル情報は、操作ログのプロファイル情報と比較するために保持される。2つを比較することによって、画像領域特定フィーチャーが適用対象と適合しているかどうかの、参考情報を得ることができる。比較は自動で行うのではなくユーザの指示により目視で行う利用形態も考慮している。
本発明の自動操作エージェントの動作フローの全体を図21に示す。記録モード、編集モード、再演モードがそれぞれ個別のスレッドを有し、独立に動作状態を有する。また、後述の操作ログ及び画像認識試験の関連機能についても、それぞれ個別のスレッドを有し、独立の動作状態を有する。すなわち、操作ログは取得、閲覧、再生を、画像認識試験は試験結果閲覧、試験実行を、それぞれ別々に機能させることができる。
従来の構成に加えて、ルール分割エディタ、操作ログブラウザ、試験結果ブラウザを有する。
ルール定義エディタのGUI(メイン)画面の具体例を図22に示す。このパネル上では、画像イメージが背景となっており、その上でユーザは図形エディタと同様のマウス操作により矩形を生成配置・移動・リサイズ・削除することができる。この操作によって分割矩形をルール定義の一部として入力する。分割矩形をダブルクリックで選択すると、図23に示すような分割矩形のパラメータ編集ウィンドウが開く。分割矩形をシングルクリックで選択すると、既に上記ウィンドウが開いている場合は、その内容が選択しているものについての情報に更新される。
ユーザに対して、操作ログリポジトリ117の内容を任意の検索機能等を使って閲覧する手段を提供する機能及び画面である。ログ閲覧モードに相当する。詳細な説明は省略する。
ユーザに対して、画像認識試験結果を閲覧する手段を提供する機能及び画面である。試験結果閲覧モードに相当する。詳細な説明は省略する。
〈画像領域特定処理の詳細〉
(画像領域分割エンジンの適用)
本発明では、ウィンドウ画像の内容をパターン認識することで、操作対象GUI要素をマウスにより選択可能とするために、画像領域分割エンジンを使用する。画像領域分割エンジンの詳細については先願に示されている。当該エンジンに対しては、予め定められたルールと適用対象の画像領域を入力し、画像内容に応じて相互の関係制約を満たしながら移動可能な複数の区画に分割した結果が出力される。当該GUI要素が占める矩形を含む区画を、ウィンドウサイズや内部レイアウトの動的な変動に追随させることで、汎用的なエンジンを画像上の所定の領域の特定に使用している。
取得した矩形領域の内部にマウスポインタを移動することで、オブジェクトアクセス方式と同様に操作対象を実行時に特定し、これに対してオペレータエミュレーション方式によるクリック操作を実行する。すなわち、当該の矩形領域の座標と大きさは、特定すべき対象を画像領域上で指示するデータである。よって、エンジンに入力されるルールは、特定フィーチャー(画像領域特定フィーチャー)の一種であるといえる。
分割された矩形にはルール定義内でラベルが付与される。特定したい領域に特別な予約ラベル(例えば「target」など)をつける方法もあるが、1つのルールで得られる複数の分割領域に任意のラベルをつけ、指定したいコントロールに相当するルール定義内のラベルを同時に指定する方法もある。後者は、ルールとラベルのセットによって、特定フィーチャーとなる。後者のほうが、1つのルールで複数のコントロールの特定フィーチャーをつくりだせるため、実用的である。
ウィンドウ内部のUI配置が大きく変化してしまった場合に、画像領域分割が指定されたルール定義のものでは解を得られず、特定に失敗する状況は原理的に常に起こりうる。これは、ルールから対象を特定するに際して、定義作成の当初に想定した範囲の変化ではない場合に相当する。しかし、この状況になったからといって、同じタイトルで同じインスタンスにも拘わらずGUIの見た目が大きく変わってしまった、とは結論できない。全く異なるインスタンスがたまたま同時に存在し一方を他方に取り違えた、という状況も考えなければならない。これは、ウィンドウに適用するルールを選択する時点で、通常はタイトルによって区別しているにも拘わらず、異なるGUIを持つ2つのインスタンスが不幸にも同じタイトルであったなどのケースである。
さらに、自動操作の実行時にデスクトップ上に存在する複数のウィンドウから操作対象ウィンドウを検索する場合、ウィンドウタイトルとウィンドウクラスとプロセス情報をもとにするが、同じウィンドウタイトルの画面が複数発生するなど、これらウィンドウ特定情報がうまく機能しない場合がある。このとき、ウィンドウ内部の画像領域分割のルール定義をウィンドウ特定情報の1つとして利用できる。すなわち、複数の画像領域分割ルール定義をウィンドウ識別子と組にして自動実行シナリオファイルもしくは操作対象特定ルールファイルに保持しておき、特定結果がわからない新たなウィンドウが出現したらば、そのウィンドウ画像に対して保持しているルールを優先度順に適用し、最初に分割処理を成功したもの(領域分割の解が得られたもの)の識別子を採用することが考えられる。また、単に優先度順とするのではなく、ソルバーで得られた解の目的変数の重み付き総和(目的関数)が最も小さいものを採用したり、他の特定情報(ウィンドウやコントロールのタイトル(キャプション)やクラス名(ロール属性)など)を組み合わせたり、と段階的な範囲の絞りこみに基づく識別処理を行うことでユーザの意図に近い判定内容とすることが考えられる。
(ノード識別子)
スクリプト同期部111を介して、ノード識別子を流通することにより、異なるスクリプト(シナリオ)の対応位置をとりながら、複数の機能を連携させることができる。具体的には以下を行う。
以下では、上記構成によって得られる効果の事例を説明する。
再演モードや記録モードの実行中に、同時に操作ログを取得する場合、当該実行時点のシナリオ上のノードとの対応を操作ログ中に記録していく。具体的には、再演もしくは記録の対象となっているシナリオのシナリオ識別子と実行中のノードのノード識別子を、現在実行アクションの切り替わりを契機に、当該操作ログに出力する。これはスクリプト同期部を介して行われる。
ルールエディタでは、2種類のルール定義の手段をユーザに提供する。これらはアクションに関する次の2つのカテゴリに対応している。
(実施例1)(提供機能1に対応)
提供機能1により、オブジェクトベースと画像ベースの特定結果を突き合わせながらシナリオを実行し、異なる場合は異常停止させる。
提供機能2により、マイナーバージョンアップが頻繁なGUIに追随できるよう画像ベースで使用する。
提供機能2により、ルックアンドフィールが異なるGUIに追随できるようオブジェクトベースで使用する。
提供機能2により、ネイティブ環境で作成したスクリプトをバーチャル環境に適用できるよう画像ベースで使用する。
提供機能3により、実施例2−1で使用していた画像ベースシナリオ(共通シナリオ)からオブジェクトベースシナリオ(個別シナリオ)を作成する。
提供機能3により、実施例2−2で使用していたオブジェクトベースシナリオ(個別シナリオ)から画像ベースシナリオ(共通シナリオ)を作成する。
実施例1(提供機能1)で異常停止ではなくエラー出力後に処理を継続するようなシナリオを準備し、それにより大量オーダーをバッチ処理する。後に、提供機能4の操作ログリポジトリにおいて、特定エラーが無いか確認し、有れば当該操作箇所を含む前後の履歴を閲覧し、影響や原因を特定する。
実施例4で、シナリオ作成時には想定外だった警告ウィンドウが表示される等で失敗している場合、当該ウィンドウの承認ボタンを押すなどの復帰動作を追加で自動化するため、提供機能5により履歴として残っている画像データをもとに共通シナリオを追加修正する。
実施例5で、画像領域特定ルールを修正・改善した場合、提供機能6により、過去の当該シナリオ実行の履歴と同じ特定動作をするかどうかを確認する自動試験(回帰試験)を行う。試験結果に問題がある場合は、実施例4により当該操作箇所を含む前後の履歴を閲覧し、過去との互換性を維持するようルールを修正し、再度試験を行う。
実施例1において、シナリオ実行中に異常停止した場合、手動で修正できるよう特定フィーチャーのエディタを起動する。このとき、両方の特定フィーチャーの情報を参照することで、実際の環境で手動で同じ内容の操作を記録し直したり、直接エディタ上でアクションを作成編集することができる。
実施例2(2−1〜2−3)において、シナリオ実行中に、必要な特定方式のアクション定義が存在しない場合、手動で定義できるよう特定フィーチャーのエディタを起動する。このとき、他方の特定フィーチャーの情報を参照することで、実施例7−1と同様の作業ができる。
実施例1〜3において、当該シナリオの過去の実行時の操作ログを参照することで、当該実行時の操作ログ上の画像とイベントを参照することができる。
実施例4〜6において、操作ログ上の所定の箇所でシナリオ編集が必要な場合、当該箇所に対応するノードの特定フィーチャーについてエディタを起動する。このとき、特定フィーチャーの情報や、当該ノード及び当該操作ログの両方の画像とイベントを参照することで、実施例7(7−1〜7−3)と同様の作業ができる。
実施例7−1〜7−4において、シナリオ中の異常停止箇所に対して、特定フィーチャーのエディタを起動する場合に、当該ノードのオブジェクト特定フィーチャーと画像領域特定フィーチャーについてそれぞれ所定の編集画面を開くことで、比較・修正することができる。
実施例7−1〜7−4において、同様に当該ノードのオブジェクト特定フィーチャーと画像領域特定フィーチャーについてそれぞれ所定の編集画面を開き、未定義のフィーチャーについては当該画面上で新規作成することができる。
実施例7−1〜7−6において、当該ノードのアクションが第1のカテゴリ(エミュレーション操作処理によって直接的に置き換え可能なアクション)の場合、操作処理はオブジェクトのAPIを呼ぶ処理から、それに等価なエミュレーション操作処理に変換される。また、第2のカテゴリ(部分的に置き換え可能なアクション)の場合、操作処理はオブジェクトAPIを呼ぶ処理のまま残され、再演時には画像領域特定の結果がオブジェクト参照に変換され実行される。以上はオブジェクトアクセス方式からオペレータエミュレーション方式に変換する場合であるが、逆の変換についても同様の処理が行われる。
(実施例9)
実施例5のあと、共通シナリオをネイティブ環境で実行し、実施例3−1と同じ方法で、共通シナリオに対応する個別シナリオも自動生成する。復帰動作が長い場合、操作ログの履歴から自動的にシナリオが得られ、手間が省ける。
実施例9がバーチャル環境上の場合、ネイティブ環境の端末に移動して個別シナリオの自動生成を行う。すなわち、仮想PCやRemoteDesktopであっても、操作ログをもとにして自動生成をして、共通シナリオをまず作成し、それをネイティブ環境に持ち込んで、実施例3−1で個別シナリオも自動生成する。操作ログをバーチャル環境からネイティブ環境に持ち込むよりも、簡単に作業ができる。
<実施例上の効果>
提供機能1〜3による作業実施例1〜3に示されているように課題1〜3が解決される。すなわち、次の効果がある。
(実用上の観点1)
従来の自動操作エージェントの運用においては、適用対象や実行状況によって稀に意図しない動作が行われる場合があった。さらにエージェント動作に画像認識技術を応用する場合は、パターン認識の不確実性の状況から、想定できない画像内容に対して意図しない認識結果が導出される可能性があった。画像認識技術を応用した自動操作エージェントを業務端末の自動実行等の用途に使う場合、仮に上記の不具合が生じても業務に致命的な影響を与えないようなフォロー手段が提供されることが重要である。このような観点で、本発明の構成を用いることにより、以下の実用上の効果が得られる。
画像認識の不確実性やルール定義の適宜改善を前提とし、誤動作の疑いがある場合に即時かつ確実に検知し、ログ記録もしくは異常停止によりユーザに通知することができる(提供機能1)。さらに、その状況や要因をその場で分析、もしくは事後及び別のPC上にてオフラインで分析(提供機能4)、することができる。また、仮に不具合が生じた場合に、ルール定義を再検討・試行・試験できる使用環境が利用できる(提供機能6)。
自動操作エージェントを大規模な組織で運用すると、有用なシナリオを複数の部署で利用したい場合が考えられる。適用されるPCの環境や部署単位・個人単位の環境設定の違いにより、ルックアンドフィールの差異などが発生する場合が考えられる。これらの条件を自動操作エージェントのためだけに全て統一するのは現実的ではなく、また他のAPへの影響等を考えると技術的にも困難である。当該のシナリオを使用する場合だけ、このような差異を検知し、必要な環境設定に対してだけシナリオを適合させることが求められる。このような観点で本発明の構成を用いることにより、以下の実用上の効果が得られる。
適用対象APのルックアンドフィールの変更があった場合に、エージェント動作への影響(特定結果の不一致)を常に監視し、影響が現れた場合はそれを確実に検知できる(提供機能1)。また、仮にルックアンドフィールの変更の影響が生じた場合に、ユーザ自身がテンプレート画像を差し替えた同じ内容のシナリオの再作成を効率よく行え(提供機能3)、さらにその修正後シナリオの回帰テストを省稼働、短時間で完了し、テスト結果の記録・整理により高信頼・高効率な品質管理ができる(提供機能6)。
自動操作エージェントを長期間にわたって運用すると、有用なシナリオを継続的に利用したい場合が考えられる。適用対象APのバージョンアップにより、内部仕様が部分的に変化したものの、GUI要素の構成やシナリオ上の操作順序に大きな変化がない場合、シナリオをこれに対応させるために、全ての箇所の修正要否を調査し、実際に修正作業を行うのは大きな稼働がかかる。マイナーバージョンアップなどのように小さな変化であれば、それに見合った稼働におさえることが求められる。このような観点で本発明の構成を用いることにより、以下の実用上の効果が得られる。
適用対象APのマイナーバージョンアップがあった場合に、「実用上の効果2」と同様に、特定結果の不一致を常に監視し、影響が現れた場合はそれを検知する(提供機能1)。また、仮にマイナーバージョンアップの影響が生じた場合に、ユーザ自身が新たな特定フィーチャーによる同じシナリオの再作成を効率よく行うことができる(提供機能3)。
適用対象APを通常の端末上でシナリオ記録し、画像ベースでもオブジェクトベースでもいずれでも実行可能であったとする。当該シナリオをバーチャル環境内の同じAPに適用する必要が生じた場合、シナリオを修正することなく画像ベースで実行することが求められる。さらに、バーチャル環境内での画像ベースでの実行中に、シナリオ作成当初は想定していなかった警告ダイアログが出現した場合、当該ダイアログの確認ボタンを押下し、必要な対処操作を行う内容のシナリオの追加を、画像ベースで行うことができれば有用である。さらに、このように作成した追加部分はオブジェクトベースのアクションが未定義なため、通常の端末上での実行機会を得た際に、当該オブジェクトベースのアクションを作成することができれば有用である。このような観点で本発明の構成を用いることにより、以下の実用上の効果が得られる。
通常の端末で記録したシナリオをバーチャル環境の中のAPに外から適用する場合、自動操作エージェントに画像ベースでの動作を指定して、自動操作を実行する(提供機能2)。また、実行中もしくは操作ログ履歴において画像領域特定結果が意図した対象になっていない場合、シナリオ上の当該ノードに対応するアクションの特定フィーチャー(画像領域分割ルール)をエディタで編集し(提供機能7)、新しいルールの回帰テストを操作ログ履歴上で行うことで機能の互換性を確認し品質を担保する。
自動操作エージェントの特徴として、自動化が必要な作業に対して、それに従事しているユーザ自身がシナリオを作成し、利用・改良を行うことで、ボトムアップな業務効率化に役立つ点が挙げられる。また、熟練ユーザのシナリオや改善効果の高いシナリオを複数のユーザに展開・共有し、それに対する改良を組織的に行うことで、業務の標準化に役立つ点が挙げられる。この特徴を活用するためには、エージェントの利用に不慣れなユーザでもシナリオや特定ルールを、実際の操作ログや画面キャプチャをもとに作成できること、修正が必要な個所の調査や当該箇所の修正手段が直接的に提供されることが求められる。このような観点で本発明の構成を用いることにより、以下の実用上の効果が得られる。
企業内の業務において、人数が少なく多拠点に分散している業務に熟練したユーザの知見をシナリオの策定に反映し、組織的にシナリオを作成・管理するために、過去の他端末の操作ログを活用して、共通シナリオを作成することができる(提供機能5)。また、複数の端末での使用で、ルックアンドフィールが異なる設定となっている端末環境があった場合や、組織間や長期間の運用で、部分的に異なる内部実装のマイナーバージョンが存在する対象APがあった場合、共通シナリオの試用や改善を短期サイクルで実施するために、当該シナリオの一部が展開先環境で実行できないときは、当該環境上でのユーザが適宜にアクション単位での再作成・再修正ができる(提供機能8)。
101,102:コントロール制御部、103,104:ウィンドウ制御部、105,106:マウス・キーボード制御部、107,108,120:画像認識部、
109:記録スクリプト制御部、110:再演スクリプト制御部、111:スクリプト同期部、112:特定結果照会部、113:特定結果変換部、114:操作内容変換部、115:操作ログ取得IF、116:操作ログ再生IF、117:操作ログリポジトリ、118:操作ログブラウザ、119:画像認識試験部、121:試験結果格納部、122,123,124:画像領域分割エンジン、125:試験結果ブラウザ、
130:スクリプトエディタ、131:シナリオエディタ、132:プロファイルエディタ、133:分割ルールエディタ。
Claims (10)
- コンピュータ上で動作する操作対象アプリケーションのGUIに対するユーザの操作をシナリオとして記録するとともに、当該シナリオを再生することで前記操作対象アプリケーションのGUIに対するユーザの操作をコンピュータ上で再演する装置であって、
GUIプラットフォームのAPIを介して操作画面上のGUIオブジェクトにアクセスするオブジェクト特定処理を行う第1の手段と、
画像認識技術を用いて操作画面上のGUI要素を操作対象として認識する画像領域特定処理を行う第2の手段と、
ユーザ操作のアクション単位を示す識別子を発行する第3の手段と、
第1の手段によるユーザ操作のアクション単位の処理結果を個別シナリオとして前記識別子とともに記録し、且つ第2の手段によるユーザ操作のアクション単位の処理結果を共通シナリオとして前記識別子とともに記録する第4の手段と、
第1の手段を前記個別シナリオに従って動作させるとともに第2の手段を前記共通シナリオに従って動作させてユーザの操作を再演させ、第1の手段及び第2の手段による操作対象をユーザ操作のアクション単位で突き合わせて相互チェックする第5の手段と、
を備えた
ことを特徴とする画像認識による自動操作装置。 - 前記に加え、
ユーザの指定に従い、個別シナリオ又は共通シナリオのいずれか一方のみにより、第1又は第2の手段によってユーザの操作の再演を実行させる第6の手段、を備えた
ことを特徴とする請求項1に記載の画像認識による自動操作装置。 - 前記に加え、
記録モード並びに再演モードにそれぞれ対応させた前記第1及び第2の手段を設けるとともに、
ユーザの指定に従い、個別シナリオ又は共通シナリオのいずれか一方のみにより、再演モードに対応する第1又は第2の手段によってユーザの操作の再演を実行させると同時に、記録モードに対応する第1の手段によるユーザ操作のアクション単位の処理結果を新たな個別シナリオとして前記識別子とともに記録し、且つ記録モードに対応する第2の手段によるユーザ操作のアクション単位の処理結果を新たな共通シナリオとして前記識別子とともに記録する第7の手段、を備えた
ことを特徴とする請求項2に記載の画像認識による自動操作装置。 - 前記に加え、
記録モード並びに再演モードにおけるマウス操作時の画面キャプチャ画像及びマウス操作イベントを少なくとも含む操作ログを蓄積する第8の手段、を備えた
ことを特徴とする請求項1乃至3のいずれかに記載の画像認識による自動操作装置。 - 前記に加え、
前記蓄積した操作ログから過去の画面キャプチャ画像及びマウス操作を参照し、共通シナリオを自動生成する第9の手段、を備えた
ことを特徴とする請求項4に記載の画像認識による自動操作装置。 - 前記に加え、
前記蓄積した操作ログをもとに画像領域特定処理のシミュレーションテストを行う第10の手段、を備えた
ことを特徴とする請求項5に記載の画像認識による自動操作装置。 - 前記に加え、
オブジェクト参照を画像領域に変換する第11の手段、を備えた
ことを特徴とする請求項4に記載の画像認識による自動操作装置。 - 前記に加え、
オブジェクトAPI呼び出しをマウスクリックエミュレーションに変換する第12の手段、を備えた
ことを特徴とする請求項7に記載の画像認識による自動操作装置。 - コンピュータ上で動作する操作対象アプリケーションのGUIに対するユーザの操作をシナリオとして記録するとともに、当該シナリオを再生することで前記操作対象アプリケーションのGUIに対するユーザの操作をコンピュータ上で再演する方法であって、
前記コンピュータ又は前記コンピュータにネットワークを介して接続された他のコンピュータが、
GUIプラットフォームのAPIを介して操作画面上のGUIオブジェクトにアクセスするオブジェクト特定処理手段と、画像認識技術を用いて操作画面上のGUI要素を操作対象として認識する画像領域特定処理手段とを用いて、
オブジェクト特定処理手段によるユーザ操作のアクション単位の処理結果を個別シナリオとしてユーザ操作のアクション単位を示す識別子とともに記録し、且つ画像領域特定処理手段によるユーザ操作のアクション単位の処理結果を共通シナリオとして前記識別子とともに記録する工程と、
オブジェクト特定処理手段を前記個別シナリオに従って動作させるとともに画像領域特定処理手段を前記共通シナリオに従って動作させてユーザの操作を再演させる工程と、
オブジェクト特定処理手段及び画像領域特定処理手段による操作対象をユーザ操作のアクション単位で突き合わせて相互チェックする工程とを備えた
ことを特徴とする画像認識による自動操作方法。 - コンピュータを、請求項1乃至8のいずれかに記載の装置の各手段として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013131466A JP5931806B2 (ja) | 2013-06-24 | 2013-06-24 | 画像認識による自動操作装置、その方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013131466A JP5931806B2 (ja) | 2013-06-24 | 2013-06-24 | 画像認識による自動操作装置、その方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015005245A true JP2015005245A (ja) | 2015-01-08 |
JP5931806B2 JP5931806B2 (ja) | 2016-06-08 |
Family
ID=52301051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013131466A Expired - Fee Related JP5931806B2 (ja) | 2013-06-24 | 2013-06-24 | 画像認識による自動操作装置、その方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5931806B2 (ja) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017194851A (ja) * | 2016-04-21 | 2017-10-26 | 東芝三菱電機産業システム株式会社 | 操作支援システムおよび操作支援プログラム |
CN107666987A (zh) * | 2015-07-02 | 2018-02-06 | 埃森哲环球服务有限公司 | 机器人过程自动化 |
JP2018515845A (ja) * | 2015-05-05 | 2018-06-14 | アリババ グループ ホウルディング リミテッド | ウェブページでのクリック位置を記録及び復元する方法並びに装置 |
JP2018165878A (ja) * | 2017-03-28 | 2018-10-25 | 富士通株式会社 | 制御プログラム、操作連携方法及び情報処理装置 |
JP2018206288A (ja) * | 2017-06-09 | 2018-12-27 | 富士ゼロックス株式会社 | 情報処理装置及びプログラム |
WO2021084904A1 (ja) * | 2019-10-30 | 2021-05-06 | エヌ・ティ・ティ・アドバンステクノロジ株式会社 | 画像処理装置、画像処理方法及びプログラム |
JPWO2021084763A1 (ja) * | 2019-11-01 | 2021-05-06 | ||
CN113254333A (zh) * | 2021-05-14 | 2021-08-13 | 成都安恒信息技术有限公司 | 基于机器学习识别第三方应用结果自动化测试方法 |
JP2021163123A (ja) * | 2020-03-31 | 2021-10-11 | 株式会社 ディー・エヌ・エー | 情報処理プログラム、情報処理装置及び情報処理方法 |
WO2022259561A1 (ja) * | 2021-06-11 | 2022-12-15 | 日本電信電話株式会社 | 識別装置、識別方法および識別プログラム |
WO2023249019A1 (ja) * | 2022-06-20 | 2023-12-28 | 株式会社エネサイバー | コンピュータ保有データの安全な転送方法 |
JP7517481B2 (ja) | 2021-02-08 | 2024-07-17 | 日本電信電話株式会社 | 操作ログ生成装置および操作ログ生成方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10275093A (ja) * | 1997-03-31 | 1998-10-13 | Hitachi Software Eng Co Ltd | プログラムテスト支援装置 |
JP2009032099A (ja) * | 2007-07-27 | 2009-02-12 | Toshiba Corp | シナリオ生成装置およびシナリオ生成プログラム |
JP2009223568A (ja) * | 2008-03-14 | 2009-10-01 | Toshiba Corp | シナリオ生成装置及びプログラム |
JP2010152429A (ja) * | 2008-12-24 | 2010-07-08 | Hitachi Ltd | Guiアプリケーションテスト支援装置及びテスト支援方法 |
JP2010198456A (ja) * | 2009-02-26 | 2010-09-09 | Nippon Telegr & Teleph Corp <Ntt> | シナリオ編集方法、その装置及びプログラム |
JP2010204840A (ja) * | 2009-03-02 | 2010-09-16 | Nippon Telegr & Teleph Corp <Ntt> | ユーザインターフェース操作統合システムのカスタマイズ方法及び端末装置並びにコンピュータプログラム及び情報記録媒体 |
JP2011181007A (ja) * | 2010-03-03 | 2011-09-15 | Nippon Telegr & Teleph Corp <Ntt> | アプリケーション状態認識方法、装置及びプログラム |
JP2012221318A (ja) * | 2011-04-11 | 2012-11-12 | Toshiba Corp | シナリオ生成装置およびシナリオ生成プログラム |
JP2013033377A (ja) * | 2011-08-02 | 2013-02-14 | Nippon Telegr & Teleph Corp <Ntt> | 自動操作部品の特定方法およびその装置 |
-
2013
- 2013-06-24 JP JP2013131466A patent/JP5931806B2/ja not_active Expired - Fee Related
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10275093A (ja) * | 1997-03-31 | 1998-10-13 | Hitachi Software Eng Co Ltd | プログラムテスト支援装置 |
JP2009032099A (ja) * | 2007-07-27 | 2009-02-12 | Toshiba Corp | シナリオ生成装置およびシナリオ生成プログラム |
JP2009223568A (ja) * | 2008-03-14 | 2009-10-01 | Toshiba Corp | シナリオ生成装置及びプログラム |
JP2010152429A (ja) * | 2008-12-24 | 2010-07-08 | Hitachi Ltd | Guiアプリケーションテスト支援装置及びテスト支援方法 |
JP2010198456A (ja) * | 2009-02-26 | 2010-09-09 | Nippon Telegr & Teleph Corp <Ntt> | シナリオ編集方法、その装置及びプログラム |
JP2010204840A (ja) * | 2009-03-02 | 2010-09-16 | Nippon Telegr & Teleph Corp <Ntt> | ユーザインターフェース操作統合システムのカスタマイズ方法及び端末装置並びにコンピュータプログラム及び情報記録媒体 |
JP2011181007A (ja) * | 2010-03-03 | 2011-09-15 | Nippon Telegr & Teleph Corp <Ntt> | アプリケーション状態認識方法、装置及びプログラム |
JP2012221318A (ja) * | 2011-04-11 | 2012-11-12 | Toshiba Corp | シナリオ生成装置およびシナリオ生成プログラム |
JP2013033377A (ja) * | 2011-08-02 | 2013-02-14 | Nippon Telegr & Teleph Corp <Ntt> | 自動操作部品の特定方法およびその装置 |
Non-Patent Citations (1)
Title |
---|
JPN6016015108; 平井 潤: 'ソフトウェアのテスト効率と精度を向上させるGUI画面の自動操作技術' 東芝レビュー 第63巻 第6号, 200806, pp.36-39, 株式会社東芝 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018515845A (ja) * | 2015-05-05 | 2018-06-14 | アリババ グループ ホウルディング リミテッド | ウェブページでのクリック位置を記録及び復元する方法並びに装置 |
CN107666987A (zh) * | 2015-07-02 | 2018-02-06 | 埃森哲环球服务有限公司 | 机器人过程自动化 |
JP2017194851A (ja) * | 2016-04-21 | 2017-10-26 | 東芝三菱電機産業システム株式会社 | 操作支援システムおよび操作支援プログラム |
JP2018165878A (ja) * | 2017-03-28 | 2018-10-25 | 富士通株式会社 | 制御プログラム、操作連携方法及び情報処理装置 |
JP2022183351A (ja) * | 2017-06-09 | 2022-12-08 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置及びプログラム |
JP7248067B2 (ja) | 2017-06-09 | 2023-03-29 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置及びプログラム |
JP7384260B2 (ja) | 2017-06-09 | 2023-11-21 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置及びプログラム |
JP2018206288A (ja) * | 2017-06-09 | 2018-12-27 | 富士ゼロックス株式会社 | 情報処理装置及びプログラム |
JP2022002105A (ja) * | 2017-06-09 | 2022-01-06 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置及びプログラム |
CN113287150A (zh) * | 2019-10-30 | 2021-08-20 | Ntt尖端技术株式会社 | 图像处理装置、图像处理方法和程序 |
WO2021084904A1 (ja) * | 2019-10-30 | 2021-05-06 | エヌ・ティ・ティ・アドバンステクノロジ株式会社 | 画像処理装置、画像処理方法及びプログラム |
JP2021071844A (ja) * | 2019-10-30 | 2021-05-06 | エヌ・ティ・ティ・アドバンステクノロジ株式会社 | 画像処理装置、画像処理方法及びプログラム |
JPWO2021084763A1 (ja) * | 2019-11-01 | 2021-05-06 | ||
JP7359218B2 (ja) | 2019-11-01 | 2023-10-11 | 日本電信電話株式会社 | 管理装置、管理方法及び管理プログラム |
JP2021163123A (ja) * | 2020-03-31 | 2021-10-11 | 株式会社 ディー・エヌ・エー | 情報処理プログラム、情報処理装置及び情報処理方法 |
JP7517481B2 (ja) | 2021-02-08 | 2024-07-17 | 日本電信電話株式会社 | 操作ログ生成装置および操作ログ生成方法 |
CN113254333A (zh) * | 2021-05-14 | 2021-08-13 | 成都安恒信息技术有限公司 | 基于机器学习识别第三方应用结果自动化测试方法 |
WO2022259561A1 (ja) * | 2021-06-11 | 2022-12-15 | 日本電信電話株式会社 | 識別装置、識別方法および識別プログラム |
WO2023249019A1 (ja) * | 2022-06-20 | 2023-12-28 | 株式会社エネサイバー | コンピュータ保有データの安全な転送方法 |
Also Published As
Publication number | Publication date |
---|---|
JP5931806B2 (ja) | 2016-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5931806B2 (ja) | 画像認識による自動操作装置、その方法及びプログラム | |
CN108363587B (zh) | 应用程序运行监控方法、装置、计算机设备和存储介质 | |
US5157779A (en) | User extensible testing system | |
US9600519B2 (en) | Method and system to detect changes to graphical user interface screenshots used in documentation | |
US20230081074A1 (en) | Enhanced Target Selection for Robotic Process Automation | |
US8875103B2 (en) | Method of testing multiple language versions of a software system using one test script | |
Stroulia et al. | From legacy to web through interaction modeling | |
Maciel et al. | From Requirements to Automated Acceptance Tests of Interactive Apps: An Integrated Model-based Testing Approach. | |
Dumas et al. | Robotic Process Mining. | |
US20230236712A1 (en) | Browser-Based Robotic Process Automation (RPA) Robot Design Interface | |
US12101373B2 (en) | Systems and methods for using a browser to design robotic process automation (RPA) robots | |
CN115658529A (zh) | 用户页面的自动化测试方法以及相关设备 | |
US10884711B2 (en) | Code management system and code management method using a visual programming tool | |
WO2007118271A1 (en) | A method and system and product for conditioning software | |
US8739146B2 (en) | Systems and methods for generating and distributing executable procedures for technical desk-side support | |
JP4846029B2 (ja) | 動作検証装置、動作検証方法および動作検証プログラム | |
JP2009223568A (ja) | シナリオ生成装置及びプログラム | |
CN113419494B (zh) | 核电dcs数字化程序的验证装置及方法 | |
CN114297055A (zh) | 一种基于智能学习的WebUI自动化测试方法 | |
Koehler et al. | Combining quality assurance and model transformations in business-driven development | |
Desjardins | Visual Studio Condensed: For Visual Studio 2013 Express, Professional, Premium and Ultimate Editions | |
Ziegenhagen et al. | Expanding tracing capabilities using dynamic tracing data | |
CN118377726B (zh) | web应用自动化测试方法、计算机装置 | |
CN112199097B (zh) | 安装包生成方法、装置、计算机设备和存储介质 | |
Campbell et al. | Code Tools |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150710 |
|
TRDD | Decision of grant or rejection written | ||
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160420 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160427 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160427 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5931806 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |