以下に、本願に係る生成装置、生成方法および生成プログラムを実施するための形態(以下、「実施形態」と記載する。)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成装置、生成方法および生成プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
[実施形態]
〔1−1.情報提供装置の一例について〕
まず、図1を用いて、実施形態に係る生成装置の一例である情報提供装置10の一例について説明する。図1は、実施形態に係る情報提供装置の一例を示す図である。なお、図1では、情報提供装置10が実行する処理の一例として、複数の端末装置101〜103ずに試験を行わせるための処理の一例について説明する。
図1に示す情報提供装置10は、生成処理を行う情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。例えば、情報提供装置10は、端末装置101〜103がインストールしたOS(Operating System)や、OS上で動作する各種アプリケーション等といった各種ソフトウェアの動作を自動的に試験する。
端末装置101〜103(以下、「端末装置100」と総称する場合がある。)は、利用者U1〜U3が利用する端末装置であり、例えば、スマートフォン等の情報処理端末である。例えば、端末装置100は、インターネット等のネットワークNを介して、情報提供装置10と通信可能である。なお、端末装置100は、PC(Personal Computer)等の情報処理装置であってもよい。また、図1に示す例では、3つの端末装置101〜103を図示したが、実施形態は、これに限定されるものではない。後述する説明で明らかとなるように、情報提供装置10は、任意の数の端末装置100の試験を同時並列的に行ってよい。
操作者端末200は、端末装置100の試験を所望する利用者、若しくは、試験を所望する利用者からの依頼を受けた操作者が利用する端末装置であり、サーバ装置やクラウドシステム、PC等の情報処理装置により実現される。例えば、操作者端末200には、各端末装置100に対する試験の内容を入力するための各種入力機能を有しているものとする。なお、図1に示すように、情報提供装置10は、それぞれ異なる操作者が使用する複数の操作者端末200のそれぞれから各種の入力を受付け、受付けた情報ごとに、後述する生成処理を実行することとなる。
〔1−2.生成処理の一例について〕
ここで、各端末装置100の動作確認や、ソフトウェアのデバッグを行う場合、各端末装置100に対して所定の操作を繰り返し入力し、誤った動作が行われないかを操作の度に判定することとなる。しかしながら、このような試験を人手で行った場合、手間がかかる。また、人手での試験では、誤った操作が行われてしまい、適切な試験が実現できない恐れがある。
そこで、情報提供装置10は、以下の生成処理を実行する。まず、情報提供装置10は、所定の対象に対して行われる利用者の行動を自然言語で示す行動情報を取得する。そして、情報提供装置10は、取得した行動情報から、行動情報が示す行動が行われた際に対象に対して行われる操作を対象に対して適用するための適用情報を生成する。
例えば、情報提供装置10は、あるソフトウェアのログインが適切に行えるか否かの試験を行う場合、「ログインをする」といった、ログイン時における利用者の動作を自然言語で示す行動情報を取得する。このような場合、情報提供装置10は、試験対象となるソフトウェアにおいてログインを行うための操作を特定し、特定した操作をソフトウェア上で実現するための適用情報を生成する。
例えば、情報提供装置10は、「ログイン」という行動を行うために、「ログインを行うためのログインコンテンツを表示する」操作を行った後で、「ユーザIDを入力する」操作と「パスワードを入力する」操作を行い、さらに「ログインを行うためのログインボタンをタップする」操作が必要となる場合は、これら各操作を特定する。なお、このような行動を行うために必要な各種の操作の特定は、試験対象となるアプリケーションごとに生成された辞書データであって、想定される行動と、その行動が行われる際に行われる操作とを対応付けた辞書データを用いて、ルールベースにより特定される。
そして、情報提供装置10は、特定した各操作を端末装置100に適用するための適用情報を生成する。例えば、情報提供装置10は、端末装置100に対し、各種のタップ操作やテキストの入力操作を端末装置100上で再現するための各種公知技術(例えば、Appiumといった各種のUI(User Interface)のテスト自動化フレームワークの技術)を用いて、特定した各操作を端末装置100に対して行うための適用情報を生成する。
このような処理を行った場合、情報提供装置10は、テスト自動化フレームワークを利用するための知識を操作者が有しない場合であっても、試験時における利用者の行動を自然言語で記述するだけで、端末装置100の操作を実現することができる。このため、情報提供装置10は、端末装置100の試験を容易にすることができる。
〔1−3.端末装置が複数存在する場合について〕
ここで、試験対象となる端末装置100が複数存在する場合、各端末装置100ごとに異なる適用情報が必要となる場合がある。例えば、各端末装置100で実行されるOSやアプリケーションが異なる場合、OSごと、アプリケーションごと、若しくはOSやアプリケーションの組み合わせごとに、異なる適用情報を生成する手間がかかる。
しかしながら、情報提供装置10は、各端末装置100で実行させる操作の内容ではなく、各端末装置100に対して行われる利用者の行動(例えば、ログイン等)を示す行動情報から、適用情報を生成する。より具体的には、情報提供装置10は、複数の対象に対して共通して行われる利用者の行動を自然言語で示す行動情報を取得し、取得した行動情報から、対象ごとに、行動情報が示す行動が行われた際に対象に対して行われる操作を対象に再現させるための再現情報を生成する。
このため、情報提供装置10は、試験対象となる端末装置100上のアプリケーションやOSがそれぞれ異なる場合であっても、各端末装置100に対して共通して行われる利用者の行動を示す単一の行動情報から、各端末装置ごとに、行動情報が示す行動が行われる際に端末装置100に対して行われる操作を行わせるための適用情報を生成することができる。換言すると、端末装置100は、単一の行動に対応する各端末装置100ごとに異なる操作を実現する単一のインタフェースとして動作することができる。
〔1−4.生成処理の一例について〕
以下、図1を用いて、情報提供装置10が実行する生成処理の流れの一例について説明する。例えば、情報提供装置10は、操作者端末200から、各端末装置101〜103に対する利用者の行動を示す行動情報を取得する(ステップS1)。例えば、情報提供装置10は、各端末装置101〜103の試験において、利用者が行うであろう行動を自然言語で表した文章を行動情報として取得する。なお、このような文章は、端末装置100において表示されるように設定がなされた言語とは異なる言語で記述されていてもよく、任意の言語が採用可能である。
ここで、情報提供装置10は、各端末装置100において共通して行われる利用者の行動を示す行動情報を取得する。例えば、情報提供装置10は、「アプリケーションのログインを行ったら、トップ画面が表示される。」といった試験内容や試験における利用者の行動を示す自然言語を取得する。換言すると、情報提供装置10は、端末装置100が実行するソフトウェアの試験を行う際に、ソフトウェア上で行われる利用者の行動を示す行動情報を取得する。
このような場合、情報提供装置10は、行動情報が示す行動が行われる際に、端末装置100に対して行われる操作の内容を特定する(ステップS2)。例えば、行動情報は、端末装置100の試験における利用者の行動を示すものの、各端末装置100において利用者がその行動を行う際にどのような内容の操作が行われるかは、規定されていない。そこで、情報提供装置10は、行動情報が示す行動を再現する場合に、端末装置100において生じるであろう操作内容を行動情報に基づいて特定する。
例えば、情報提供装置10は、「ログイン」といった行動に対し、「ログインコンテンツを表示する」操作、「ユーザIDを入力する」操作、「パスワードを入力する」操作、および「ログインボタンを押下する」操作を特定する。すなわち、情報提供装置10は、行動情報が示す行動が行われた際にソフトウェアに対して行われる操作をソフトウェアに対して適用するための適用情報を生成する。すなわち、情報提供装置10は、行動情報が、「ログイン」といったソフトウェアに対して行われる利用者の行動を示す場合は、「ログイン」といった行動が行われる際に操作されるコンテンツを操作するための適用情報を生成する。なお、このような特定を行うための詳細な説明については、後述する。
ここで、各端末装置100において実行されるOSは、それぞれ異なるとも考えられる。また、試験対象となるアプリケーションのバージョンや種別が異なる場合も考えられる。そこで、情報提供装置10は、各端末装置100において実行されているOSやログイン対象となるソフトウェアごとに、行動情報から操作内容を特定する。
続いて、情報提供装置10は、特定した操作を各端末装置100に適用されるための適用情報を生成する(ステップS3)。例えば、情報提供装置10は、端末装置100ごとに、特定した操作を実行させるためのテストコードを生成する。換言すると、情報提供装置10は、各端末装置100に対して、特定した操作を仮想的に入力させるための各種スクリプトを適用情報として生成する。
そして、情報提供装置10は、各端末装置100ごとに生成した適用情報を各端末装置100に対して出力する(ステップS4)。例えば、情報提供装置10は、端末装置101において実行させているアプリケーションにログインするための操作を端末装置101に対して適用するための適用情報を端末装置101に配信する。同様に、情報提供装置10は、端末装置102において実行させているアプリケーションにログインするための操作を端末装置102に対して適用するための適用情報を端末装置102に配信する。また、情報提供装置10は、端末装置103において実行させているアプリケーションにログインするための操作を端末装置103に対して適用するための適用情報を端末装置103に配信する。
このような場合、各端末装置100は、情報提供装置10から受付けた適用情報に従った操作が行われたものとして、それぞれアプリケーションを動作させる(ステップS5)。例えば、各端末装置100には、適用情報に従って操作を仮想的に入力させるための各種のスクリプトが配信されている。そして、各端末装置100は、情報提供装置10から受付けた適用情報が示す操作が入力されたものとして、アプリケーションを動作させることで、それぞれ個別にアプリケーションのログインを行うこととなる。
ここで、情報提供装置10から出力される適用情報には、操作が適用された結果を各端末装置100に収集させるための情報が含まれている。この結果、端末装置100は、操作の適用結果を収集し、収集した適用結果を情報提供装置10へと送信する(ステップS6)。このような場合、情報提供装置10は、適用結果のレポートを生成し、生成したレポートを操作者端末200に提供する(ステップS7)。例えば、情報提供装置10は、各端末装置100において実行されているOSやアプリケーションの種別とともに、どの端末装置100においてログインが成功若しくは失敗したか、いくつの端末装置100でログインが成功若しくは失敗したかといったレポートを提供する。このような処理の結果、情報提供装置10は、デバッグ等の試験結果の容易な理解を促進することができる。
このように、情報提供装置10は、自然言語で記述された行動情報から、その行動情報が示す行動が行われた際に端末装置100等の対象に対して行われる操作を対象に適用させるための適用情報を生成する。この結果、情報提供装置10は、例えば、対象において行われる各種試験の手間を削減することができる。
また、情報提供装置10は、複数の対象に対して共通して行われる利用者の行動を示す行動情報から、対象ごとに、行動情報が示す行動が対象に行われた際にその対象において生じる操作を再現させるための適用情報を生成する。この結果、情報提供装置10は、例えば、試験の対象が複数存在する場合であっても、単一の行動情報から各対象の試験を自動的に行うことができる。換言すると、情報提供装置10は、ある行動が行われた際における各対象の挙動を試験するための統一されたインタフェースとして動作することができる。この結果、情報提供装置10は、対象において行われる各種試験の手間を削減することができる。
〔1−5.生成処理の実装例について〕
続いて、図2を用いて、情報提供装置10が実行する生成処理の実装例について説明する。図2は、実施形態に係る情報提供装置が実行する生成処理の実装例を示す図である。図2に示すように、情報提供装置10は、行動情報となる自然言語を取得する。例えば、情報提供装置10は、「ログインをしたらトップ画面が表示される」といった試験における利用者の行動や、その行動が行われた際における結果を示す情報を取得する。
このような場合、情報提供装置10は、抽出ユニットを用いて、自然言語に含まれる単語のうち、端末装置100において行われる行動や、その行動が行われた際に生じる結果を示す単語を抽出し、抽出した単語をまとめた特徴情報を生成する。すなわち、情報提供装置10は、行動情報から、利用者の行動を示す単語を行動ごとに抽出する。
例えば、情報提供装置10は、「ログインをしたらトップコンテンツが表示される」といった行動情報から「ログイン」といった利用者の行動(すなわち、試験対象となる行動)や、「トップコンテンツが表示」といった、行動が行われた際における端末装置100の状態(すなわち、行動が行われた結果)を示す単語を抽出する。そして、情報提供装置10は、抽出した単語を示す特徴情報を生成する。なお、このような処理は、例えば、CucumberやTurnipといったGherkinと呼ばれるテスト記述言語フォーマットに関する各種の技術が採用可能である。
続いて、情報提供装置10は、ドライバユニットを用いて、自然言語をデバイス用コマンドに変換するために使用されるステップ情報(ステップ関数)と、コマンドの送信前に対象をポーリングすることにより、ステップ関数をサポートするために使用されるアシスタント情報(アシスタント関数)とを生成する。
例えば、情報提供装置10は、ステップ情報を生成する場合、特徴情報から、端末装置100において生じる操作の内容や操作の順番、操作が行われた際の結果等を特定する。換言すると、情報提供装置10は、利用者の行動を、試験対象となる端末装置100等のハードウェアや、ハードウェアにおいて各種実行させているソフトウェアに対する操作へと翻訳する処理を実行する。
例えば、情報提供装置10は、特徴情報が「ログイン」という行動を示す場合、1番目に実行する「ログインコンテンツの表示」、2番目に実行する「ユーザIDの入力」、3番目に実行する「パスワードの入力」、および4番目に実行する「ログインボタンの押下」といった複数の操作と各操作の順番とを示すステップ情報(ステップ関数)を生成する。すなわち、情報提供装置10は、「ログイン」単語が示す行動が行われる場合に端末装置100に対して行われる各種操作や各操作が行われる順序を特定し、特定した操作や順序を示すステップ情報を生成する。
また、情報提供装置10は、特徴情報に「トップコンテンツが表示」といった行動の結果が含まれている場合、このような結果が生じたか否かを判定するためのアシスタント情報(アシスタント関数)を生成する。例えば、情報提供装置10は、「トップ画面が表示」といった行動の結果が含まれる場合、「トップコンテンツが表示されたか否かを判定する」といった処理を示すアシスタント情報を生成する。なお、情報提供装置10は、例えば、ステップ情報が示す各種操作が行われた際に生じる所定の結果が生じているか否かを判定するためのアシスタント情報を生成してもよい。例えば、情報提供装置10は、ステップ情報が「ログインコンテンツの表示」といった操作を含む場合は、「ログインコンテンツが表示されたか否かを判定する」といった処理を示すアシスタント情報を生成してもよい。
すなわち、情報提供装置10は、自然言語で記述された行動情報に基づいて、行動情報が示す行動を実現するための各種の操作や操作の順序を示すステップ情報を生成する。また、情報提供装置10は、各ステップ情報が示す操作が行われた際に生じる結果が実際に生じているか否かを判定するために行われる処理の内容を示すアシスタント情報を生成する。
なお、ステップ情報やアシスタント情報は、対象となる端末装置100が実行するOSの種別やアプリケーションの種別、若しくはこれらの組み合わせごとに生成される。このため、ドライバユニットは、行動情報から生成された特徴情報が示すユーザアクション(行動)において生じる各種の入力を取得するとともに、ユーザアクションの対象となるデバイスやアプリケーション、操作対象となる要素の識別を行う。そして、ドライバユニットは、識別結果に基づいて、ステップ情報の生成を行う。
同様に、情報提供装置10は、ステップ情報が示す各操作が行われたことを確実にするために定期的な間隔で、対象の状態を収集する(ポーリングおよびクエリする)ためのアシスタント情報を生成する。より詳細には、情報提供装置10は、各対象ごとに、ステップ情報が示す操作が行われた際に生じる対象の状態を収集し、収集した状態が所定の条件を満たすか否かを判定するためのアシスタント情報を生成する。換言すると、アシスタント情報は、ステップ情報が示すある操作が行われた結果が適正であるかを判定し、適正であると判定された場合に、ステップ情報が示す次の操作を行わせるための条件情報と見做すことができる。
続いて、情報提供装置10は、生成ユニットを用いて、ステップ情報およびアシスタント情報が示す操作や各種の判定を対象に行わせるための適用情報を生成する。換言すると、情報提供装置10は、抽出ユニットにより抽出された単語が示す行動が行われる場合に端末装置100に対して行われる操作を適用するための適用情報を生成する。
このような生成ユニットは、例えば、アッピウム等、各種の端末装置100やアプリケーションの自動テストを行うための各種フレームワークにより実現可能である。より具体的には、情報提供装置10は、ステップ情報が示す各操作をステップ情報が示す順番で対象に適用するとともに、アシスタント情報が示す条件に従って各操作の結果が適切であるかを判定させるためのスクリプトを生成する。
そして、情報提供装置10は、適用情報を、対象となる端末装置100へと出力する。例えば、情報提供装置10は、所定の情報処理装置内で再現された仮想的な端末装置ETや、スマートフォン等の端末装置RT、クラウド上に存在する各種の端末装置CTに対して、各端末装置100ごとに生成された適用情報を送信する。この結果、情報提供装置10は、自然言語で記述された行動情報が示す行動が行われた場合の、端末装置100の動作を試験することができる。
なお、上述した例において、ドライバユニットは、抽出ユニットと生成ユニットとの組合せごとにされればよい。例えば、ドライバユニットは、実装された抽出ユニットが採用するフォーマットのテスト記述言語から、生成ユニットが識別可能な形式のステップ情報やアシスタント情報を生成すればよい。このようなドライバユニットは、例えば、抽出ユニットにより生成されるテスト記述言語が示す行動と、その行動を実現するための操作内容や操作順序とを対応付けた辞書データや、各操作と、各操作が行われた結果が適正であるかを判定するための条件とを対応付けた辞書データにより、ルールベースで動作する任意のプログラムが採用可能である。
例えば、ドライバユニットは、特徴情報が「ログイン」を示す場合、辞書データを参照し、「ログイン」と対応付けられた各操作「ログインコンテンツの表示」、「ユーザIDの入力」、「パスワードの入力」、および「ログインボタンの押下」を特定する。そして、ドライバユニットは、特定した各処理を端末装置100に実行させるための適用情報を生成ユニットに生成させるためのステップ情報を生成すればよい。また、ドライバユニットは、辞書データを参照し、特定した各操作と対応付けられた条件を特定する。そして、ドライバユニットは、特定した条件を満たすか否かを端末装置100に実行させるための適用情報を生成ユニットに生成させるためのアシスタント情報を生成すればよい。このような処理を行うプログラムであれば、情報提供装置10は、任意のプログラムをドライバユニットとして採用可能である。
〔1−6.操作内容について〕
上述した例では、ログインが行われた場合の操作内容の一例について記載した。しかしながら、実施形態は、これに限定されるものではない。例えば、情報提供装置10は、行動情報が示す行動が行われた際に生じる操作であれば、任意の操作を端末装置100に適用するための適用情報を生成してもよい。
例えば、情報提供装置10は、ユーザIDの入力やパスワード等、各種のテキストを入力させるための適用情報を生成してもよい。このような入力は、例えば、「「ユーザID」というテキストが配置された入力フォームを選択」する操作、および「選択した入力フォームに「AAAAAA」を入力する」操作(「AAAAAA」は、予め設定された文字列)により実現される。ドライバユニットは、このような操作が予め登録された辞書データを用いることで、ユーザIDやパスワードといったテキストの入力を実現することができる。
なお、入力対象は、文字列に限定されるものではない。例えば、情報提供装置10は、文字列以外にも、音声や画像等、任意の種別の情報を入力させるための適用情報を生成してもよい。
また、情報提供装置10は、このような情報の入力のみならず、任意の操作を適用するための適用情報を生成してもよい。例えば、情報提供装置10は、対象がスマートフォンである場合、タップ、ピンチイン、ピンチアウト、若しくはスライドといった各種の操作を適用するための適用情報を生成してもよい。また、情報提供装置10は、対象がPCである場合、マウスのクリック、ダブルクリック、ドラッグ、ドロップ、キーボードの操作等を適用するための適用情報を生成してもよい。また、情報提供装置10は、端末装置100の傾きの変更や振動等といった端末装置100に関する各種物理的な操作を適用するための適用情報を生成してもよく、時刻や明るさを変化させる操作を適用するための適用情報を生成してもよい。
また、情報提供装置10は、端末装置100が実行するソフトウェアにより表示されたコンテンツの中から、操作対象となるコンテンツを特定し、特定したコンテンツに対する操作を適用するための適用情報を生成してもよい。例えば、情報提供装置10は、端末装置100が表示したログインコンテンツに配置されたコンテンツの中から、ユーザIDを入力するための入力フォームを特定する操作を行わせ、その後、特定した入力フォームに所定のユーザIDを入力させるための操作を行わせるための適用情報を生成してもよい。
上述した操作以外にも、情報提供装置10は、行動情報が示す行動が行われた際に生じるであろう操作であれば、任意の操作を適用するための適用情報を生成してもよい。このような操作の具体的な内容は、ドライバユニットが用いる辞書データに予め対応する行動と紐付けて登録しているのであれば、任意の内容の操作が可能である。より具体的には、情報提供装置10は、生成ユニットが識別可能な内容の操作であれば、任意の操作を示すステップ情報やアシスタント情報を生成すればよい。
〔1−7.条件について〕
また、情報提供装置10は、ステップ情報が示す操作が行われたか否かを適切に判定することができるのであれば、任意の内容の条件が満たされたか否かを判定させるための適用情報を生成してよい。例えば、情報提供装置10は、コンテンツが変化したか否か、所定のウェブコンテンツが表示されたか否か、ウェブページのステータス、画面上に表示された内容、端末装置100が有するバイブレーションユニットが変化したか否か、音が出力されたか否か等、任意の内容の条件が満たされたか否かを判定されるための適用情報を生成してよい。
〔1−8.行動情報の言語について〕
ここで、情報提供装置10は、抽出ユニットが識別可能であり、かつ、ドライバユニットが用いる辞書データに登録がなされている言語であれば、任意の自然言語により生成された行動情報から適用情報の生成を行ってよい。例えば、情報提供装置10は、日本語、英語、ドイツ語、フランス語、中国語等、任意の言語で記述された行動情報から、適用情報を生成してもよい。
また、例えば、情報提供装置10は、端末装置100で用いられる言語とは異なる言語により記述された行動情報から、適用情報の生成を行ってもよい。例えば、情報提供装置10は、端末装置101が日本語のコンテンツを表示し、端末装置102が英語のコンテンツを表示し、端末装置103がドイツ語のコンテンツを表示する際に、日本語で「ログインする」といった内容の行動情報を受付けたものとする。このような場合、情報提供装置10は、「ログイン」という行動を実現するために必要な操作であって、各端末装置100が基準として用いる言語に対応する内容の操作を端末装置100ごとに特定し、特定した操作を適用するための適用情報を生成すればよい。
例えば、情報提供装置10は、端末装置101に対しては、日本語で「ユーザID」と表示された入力フォームを選択してユーザIDを入力させる適用情報を生成し、端末装置102に対しては、英語で「ユーザID」と表示された入力フォームを選択してユーザIDを入力させる適用情報を生成し、端末装置103に対しては、ドイツ語で「ユーザID」と表示された入力フォームを選択してユーザIDを入力させる適用情報を生成すればよい。
〔1−9.対象について〕
ここで、情報提供装置10は、スマートフォン等の端末装置100以外にも、クラウド上の端末装置CTや所定の情報処理装置上でエミュレートされる端末装置ET以外にも、任意の対象に対し、操作を適用するための適用情報を生成してよい。例えば、情報提供装置10は、PCやサーバ装置、各種センサやデジタルサイネージといった実態を有する装置(所謂ハードウェア)を対象とし、これら対象に対して利用者が所定の行動を行う際に入力される操作を、各対象に対して適用するための適用情報を生成してよい。また、情報提供装置10は、各種の仮想マシンやPC上で実行されるOSやアプリケーション等、各種のソフトウェアに対して操作を適用するための適用情報を生成してよい。また、情報提供装置10は、仮想的な端末装置ETが現実に存在していた場合に、その端末装置ETに対して利用者が行動を行う際に入力される操作を特定し、特定した操作を仮想的な端末装置ETに対して適用するような適用情報を生成してよい。
また、対象となるアプリケーションは、同種のアプリケーションであってもよく、異なるアプリケーションであってもよい。例えば、端末装置101は、対象としてSNS(Social Networking Service)のサービスを受けるための第1アプリケーションを実行し、端末装置102は、第1アプリケーションとは異なるサービスを受けるための第2アプリケーションを実行し、端末装置103は、端末装置103を介して各種の代金を決済するための第3アプリケーションを実行しているものとする。また、第1アプリケーション〜第3アプリケーションは、それぞれ表示態様や機能が異なるものの、「ログインを行う」という利用者の行動を受付けることができるものであるものとする。
このように、各端末装置100が実行するアプリケーションの種別が異なるものであっても、行動情報が示す行動が、各アプリケーションにおいて実行可能な利用者の行動を示す場合、情報提供装置10は、各アプリケーションごとに異なる適用情報を生成することで、同時に各端末装置100のアプリケーションをテストすることができる。
より詳細な例について説明する。例えば、第1アプリケーションにおいて利用者がログインする際に、異なる画面上でユーザIDとパスワードとを入力する場合、情報提供装置10は、第1アプリケーションにおいてログインを行うための操作として、「ログイン画面の表示」、「ユーザIDの入力」、「パスワード入力ボタンの押下」、「パスワードの入力」、「ログインボタンの押下」といった操作を特定する。一方、第2アプリケーションにおいて利用者がログインする際に、同一画面上でユーザIDとパスワードとを入力することができる場合、情報提供装置10は、第2アプリケーションにおいてログインを行うための操作として、「ログイン画面の表示」、「ユーザIDの入力」、「パスワードの入力」、「ログインボタンの押下」といった操作を特定する。また、第3アプリケーションにおいて利用者がログインする際に、FIDO(Fast Identity Online)等を用いたログインが可能である場合、情報提供装置10は、第3アプリケーションにおいてログインを行うための操作として、「ログインボタンの押下」といった操作を特定する。そして、情報提供装置10は、各操作を適用するための適用情報を各アプリケーションごとに生成し、生成した適用情報を出力すればよい。
また、情報提供装置10は、各アプリケーションごとに異なる順序で操作を適用させる適用情報を生成してもよく、アプリケーションごとに異なるアシスタント情報を生成してもよい。すなわち、情報提供装置10は、それぞれ異なるアプリケーション等の対象について、利用者が共通してある行動を行った際に適用される操作の内容や順序、それら操作の結果を特定し、特定した内容の操作を特定した順番で適用するとともに、これらの操作が適切に行うかを判定させる適用情報を生成するのであれば、任意の内容の適用情報を生成してよい。
なお、このようなアプリケーションの種別は、単に異なる機能を有するアプリケーションのみならず、バージョン違いのアプリケーションや、同一のサービスを提供するものの異なるOS上で動作するアプリケーション、言語が異なるアプリケーション等を含む概念である。すなわち、情報提供装置10は、対象ごとに異なる操作を適用するための提供情報を生成すればよい。また、情報提供装置10は、複数の対象に、同一種別のアプリケーションが含まれる場合は、これら同一種別のアプリケーションに対して同一の適用情報を出力してもよい。
〔2.情報提供装置の構成〕
以下、上記した情報提供装置10が有する機能構成の一例について説明する。図3は、実施形態に係る情報提供装置の構成例を示す図である。図3に示すように、情報提供装置10は、通信部20、記憶部30、および制御部40を有する。
通信部20は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部20は、ネットワークNと有線または無線で接続され、端末装置100や操作者端末200との間で情報の送受信を行う。
記憶部30は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部30は、ルールデータベース31を記憶する。
ルールデータベース31には、図2に示すドライバユニットが特徴情報からステップ情報やアシスタント情報を生成するための辞書データが登録されている。例えば、ルールデータベース31には、対象となる端末装置100の種別ごと、端末装置100のOSごと、端末装置100が実行するアプリケーションごと、若しくはこれらの組み合わせごとに、特徴情報が示す利用者の行動と、その行動が行われる際に入力される各種の操作の内容やその順序が対応付けて登録されている。なお、このような辞書データは、任意の構成が採用可能である。
制御部40は、例えば、コントローラ(controller)であり、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報提供装置10内部の記憶装置に記憶されている各種プログラム(通知プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部40は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
図3に示すように、制御部40は、抽出ユニット41、ドライバユニット42、および生成ユニット43を有する。抽出ユニット41は、自然言語で利用者の行動が記述された行動情報から、利用者の行動やその結果を示す単語を抽出し、抽出した単語を示す特徴情報を生成する。また、ドライバユニット42は、特徴情報から、各対象に対して適用する操作の内容や順番を示すステップ情報や、操作が適切に行われたか否かの判定における条件やタイミングを示すアシスタント情報を生成する。生成ユニット43は、ステップ情報やアシスタント情報に基づいて、適用情報の生成を行う。なお、制御部40は、図2に示すように、キューカンバといった各種の抽出ユニット、ドライバユニット、アッピウムといった生成ユニットと対応するプログラムをそれぞれ実行することにより、抽出ユニット41、ドライバユニット42および生成ユニット43の機能を有することとなる。
また、制御部40は、収集部44、提供部45を有する。なお、制御部40は、所定のプログラムを実行することにより、収集部44および提供部45の機能を有していてもよい。
例えば、抽出ユニット41は、取得部411、抽出部412を有する。また、ドライバユニット42は、特定部421を有する。また、生成ユニット43は、生成部431、出力部432を有する。
取得部411は、所定の対象に対して行われる利用者の行動を自然言語で示す行動情報を取得する。例えば、取得部411は、端末装置100の試験を行う場合等、操作の適用対象が端末装置100となる場合、端末装置100に対して行われる利用者の行動を示す行動情報を取得する。例えば、取得部411は、「ログインする」等といった利用者の行動を自然言語で示すテキストを行動情報として取得する。
なお、取得部411は、複数の対象に対して共通して行われる利用者の行動を示す行動情報を取得してもよい。また、取得部411は、ハードウェアに対して行われる行動のみならず、対象となる端末装置100が実行するソフトウェア上で行われる利用者の行動を示す行動情報を取得してもよい。
抽出部412は、行動情報から、利用者の行動を示す単語を行動ごとに抽出する。例えば、抽出部412は、各種の形態素解析等の技術により、行動情報として取得したテキストから、「ログイン」等といった利用者の行動を示す単語や、「トップ画面を表示」といった行動の結果を示す単語を抽出する。そして、抽出部412は、抽出した単語を示す特徴情報を生成する。
特定部421は、抽出された単語が示す行動が行われる場合に対象に対して行われる複数の操作と、各操作が行われる順番とを特定する。例えば、特定部421は、特徴情報から、利用者の行動を示す単語「ログイン」等を取得する。また、特定部421は、操作者端末200等から、試験対象等、適用情報の出力先となる対象に関する情報を取得する。例えば、特定部421は、各端末装置100の種別、OS、試験を行うアプリケーションの情報等を取得する。
このような場合、特定部421は、対象となる端末装置100の種別、OS、試験を行うアプリケーション若しくはこれらの組み合わせを特定する。そして、特定部421は、ルールデータベース31を参照し、特定された組み合わせごとに、特徴情報から取得した単語と対応付けられた操作の内容やその順序を特定する。また、特定部421は、特定した操作が適切に行われたか否かを判定するための条件や、判定を行うタイミングをさらに特定する。なお、特定部421は、特徴情報が示す条件を満たすか否かを判定するための条件をさらに特定してもよい。
また、特定部421は、抽出された単語が示す行動が行われる場合に端末装置に対して行われる操作の内容と操作対象とを特定してもよい。例えば、特定部421は、「ユーザIDの入力」といった操作を特定した場合、「ユーザIDの入力」を行うためのテキストボックスを選択する操作をさらに特定してもよい。そして、特定部421は、特定した操作の内容や順序を示すステップ情報を生成するとともに、操作が適切に行われたか否かを判定するための条件や、判定を行うタイミングを示すアシスタント情報を生成する。
生成部431は、行動情報から、その行動情報が示す行動が行われた際に対象に対して行われる操作を対象に対して適用するための適用情報を生成する。例えば、生成部431は、行動情報から抽出された単語が示す行動が行われる場合に端末装置100に対して行われる操作を適用するための適用情報を生成する。また、生成部431は、行動情報が示す行動が行われた場合に端末装置100に対して行われる操作を対象に対して適用するための適用情報を、端末装置100ごとに生成する。
また、生成部431は、端末装置100が実行するオペレーティングシステムと、その端末装置が実行するソフトウェアとの組合せごとに、適用情報を生成する。また、生成部431は、行動情報が示す行動が行われた際にソフトウェアに対して行われる操作をそのソフトウェアに対して適用するための適用情報を生成する。
例えば、生成部431は、対象となる端末装置100の種別、OS、試験を行うアプリケーション若しくはこれらの組み合わせごとに生成されたステップ情報とアシスタント情報とを取得する。そして、生成部431は、ステップ情報とアシスタント情報とに基づいて、ステップ情報が示す操作を、ステップ情報が示す順序で端末装置100に入力させるとともに、アシスタント情報が示すタイミングで、アシスタント情報が示す条件を端末装置100が満たしているか否かを判定させる適用情報を生成する。すなわち、生成部431は、特定部421により特定された複数の操作を、特定された順番で適用するための適用情報を生成することとなる。また、生成部431は、単語が示す行動が行われる場合に端末装置100に対して行われる操作を適用させるとともに、その操作が適用された後に、その操作と対応する所定の結果が生じているか否かを判定するための適用情報を生成する。
なお、生成部431は、行動情報が、ソフトウェアに対して行われる利用者の行動を示す場合は、その行動が行われる際に操作されるコンテンツを操作するための適用情報や、その行動が行われる際にその利用者から入力される情報を入力するための適用情報を生成することとなる。また、生成部431は、例えば、ステップ情報が「ユーザIDの入力」を行うためのテキストボックスを選択する操作を示す場合、「ユーザIDの入力」を行うためのテキストボックス(すなわち、操作の対象となるコンテンツ)を検索し、検索したコンテンツを選択する処理を実行させるための適用情報を生成することとなる。
出力部432は、生成された適用情報を各対象に対して出力する。例えば、出力部432は、適用情報に従って対象上における操作を発生させたり、各種の判定を行わせるためのJava Script(登録商標)を予め各端末装置100に実行させる。そして、出力部432は、各端末装置100に対して対応する適用情報を出力することで、適用情報が示す操作を各端末装置100に適用させる。
収集部44は、対象において適用情報が示す操作が適用された結果を取集する。例えば、収集部44は、アシスタント情報が示す条件に基づいて各対象が実行した判定の結果を収集する。例えば、収集部44は、ログインに成功したか否か、操作と対応する画面表示が行われたか否か、操作と対応するコンテンツが表示されたか否か、各操作が完了するまでに要した時間等を判定結果として収集する。
提供部45は、収集された結果を示すレポートを提供する。例えば、提供部45は、行動情報が示す各行動ごとに、各行動と対応する操作が全て適切に実行されたか否か(すなわち、行動が成功したか否か)、行動が成功した端末装置の台数や割合、適切に適用されなかった操作の内容、各操作が完了するまでに要した時間の平均値等をまとめたレポートを生成する。そして、提供部45は、操作者端末200に対し、生成したレポートを出力する。
〔3.処理手順〕
次に、図4を用いて、実施形態に係る情報提供装置10による生成処理の手順について説明する。図4は、実施形態に係る生成処理の流れの一例を示すフローチャートである。
例えば、情報提供装置10は、行動情報を受付けたか否かを判定する(ステップS101)。そして、情報提供装置10は、行動情報を受付けていない場合は(ステップS101:No)、受付けるまで待機する(ステップS101)。一方、情報提供装置10は、行動情報を受付けた場合は(ステップS101:Yes)、行動情報が示す利用者の各行動を抽出し、抽出した行動を示す特徴情報を生成する(ステップS102)。
また、情報提供装置10は、特徴情報から、各行動が行われた際に行われる操作内容と操作の順序とを特定する(ステップS103)。そして、情報提供装置10は、特定した操作を特定した順番で端末装置100に適用するための適用情報を生成し(ステップS104)、生成した適用情報を端末装置100に提供して(ステップS105)、処理を終了する。
〔4.変形例〕
上述した情報提供装置10は、上記実施形態以外にも種々の異なる形態にて実施されてもよい。そこで、以下では、情報提供装置10の他の実施形態について説明する。
〔4−1.適用対象について〕
上述した例では、情報提供装置10は、共通する利用者の行動として、ログインを受付けるアプリケーションの試験を行うための適用情報を生成した。しかしながら、実施形態は、これに限定されるものではない。
例えば、情報提供装置10は、対象となる端末装置100やソフトウェアと関連する利用者の行動であれば、任意の行動が行われる際に入力される操作を特定し、特定した操作を適用するための適用情報を生成してよい。例えば、情報提供装置10は、SNS等に対する所定の文字列や写真といったコンテンツの投稿や、ゲーム等に対する入力、動画の閲覧といった任意の行動が行われた際における操作について、適用情報の生成を受付けてもよい。また、情報提供装置10は、例えば、端末装置100の向きを変更する、端末装置100を振る、音量を変更する等、音声による各種操作の入力といったハードウェアに依存する各種の行動が行われる際の操作について、適用情報の生成を行ってもよい。
また、情報提供装置10は、任意のアプリケーションについての適用情報を生成してよい。例えば、情報提供装置10は、端末装置100を用いた各種の決済サービスを提供するアプリケーションについて、適用情報の生成を行ってもよい。例えば、決済サービスには、店舗に設置されたQRコード(登録商標)を読み取るとともに、決済額の入力を受付け、QRコードと対応する店舗の口座に対し、受付けた決済額の電子マネーを利用者の口座から送金するといったサービスが存在する。また、決済サービスには、利用者の口座やクレジットカードを識別するバーコードを表示し、表示したバーコードを店舗の端末が読み取ることで、利用者に対する課金を実現するものが存在する。
情報提供装置10は、このような各種決済サービスに関するアプリケーションについて、適用情報の生成を行ってもよい。例えば、情報提供装置10は、「店舗#Aに対して100円支払う」といった行動情報に基づいて、「店舗#AのQRコードを読み取る」操作、「決済額として100円」を入力する操作、および「支払ボタンを押下する操作」を適用するための適用情報を生成してもよい。ここで、情報提供装置10は、実際にはQRコードを読み取らずとも、端末装置100が所定のQRコードを読み取った状態にするための適用情報を生成してもよく、実際にカメラ等を起動させて、予め端末装置100の近傍に配置しておいたQRコードを読み取らせる処理を行わせてもよい。
また、情報提供装置10は、各利用者に対して発光される各種請求書に対応する支払を行わせるための適用情報を生成してもよい。例えば、端末装置100にインストールされたアプリケーションには、請求書等に印刷されたバーコードをカメラで読み取ると、バーコードが示す支払先および支払額を特定し、特定した支払先の口座へ、特定した支払額を利用者の口座から送金する機能を有する場合がある。このような場合、情報提供装置10は、例えば、「印刷した請求書の支払い」といった行動情報を受付けた場合、所定のバーコードの画像を生成して端末装置100に送信するとともに、「バーコードの画像を撮影した画像として読み出す」、「読み出した画像に撮影されているバーコードを識別する(スキャンする)」、「識別したバーコードが示す情報に基づいて、送金を行う」といった操作を実行させるための適用情報を生成してもよい。
また、情報提供装置10は、「識別したバーコードから、送金金額と請求者とを検証する」といった操作を行わせるための適用情報を生成してもよい。例えば、情報提供装置10は、バーコードが示す支払先や額を示す文字列とバーコードとを配置した画像(すなわち、仮想的な請求書の画像)を生成し、端末装置100に送信する。そして、情報提供装置10は、「バーコードの画像を撮影した画像として読み出す」、「読み出した画像に撮影されているバーコードと、文字列と識別する」、「識別したバーコードが示す支払額と支払先とを識別する」、「識別した文字列が示す支払額と支払先とを識別する」、「バーコードが示す支払額および支払先と、文字列が示す支払額および支払先とが一致するか否かを判定する」、「各支払額および支払先が一致すると判定された場合に、送金を行う」といった一連の処理を実行させるための適用情報を生成してもよい。
また、情報提供装置10は、アプリケーションが、電子的な請求書に従った支払を実現することができる場合、このような機能を用いた支払の検証を行わせるための適用情報を生成してもよい。例えば、情報提供装置10は、端末装置100に対して電子的な請求書のデータを送信するとともに、「支払対象となる電子的な請求書のリストを表示させる」、「リストの中から支払対象となる請求書を選択する」、「選択した請求書に従って、送金を行う」といった操作を実行させるための適用情報を生成してもよい。
また、情報提供装置10は、各種権限の設定を行う操作や電話等の発信操作等を適用するための適用情報を生成してよい。このように、情報提供装置10は、対象において入力可能な操作であれば、任意の操作を行わせるための適用情報を生成してよい。さらに、情報提供装置10は、例えば、端末装置100とブルートゥース(登録商標)等で接続されたイヤホンや各種のウェアラブルデバイス等を制御するための操作を適用するための適用情報を精鋭してもよい。すなわち、情報提供装置10は、試験などの対象から操作可能な他の対象に対する操作を、試験等の対象に対して適用するための適用情報を生成してよい。
〔4−2.目的について〕
ここで、情報提供装置10は、対象の試験以外にも、任意の目的で上述した適用情報の生成を行ってよい。例えば、各種の提携作業をソフトウェア型のロボットやAI(Artificial Intelligence)が代行、自動化するRPA(Robotic Process Automation)の技術が知られている。情報提供装置10は、このようなRPAの技術において、上述した生成処理を適用してもよい。より具体的には、情報提供装置10は、対象となるソフトウェアに対して行われる利用者の行動を示す行動情報を取得し、行動情報が示す行動が行われた場合にソフトウェアに対して行われる操作を適用するための適用情報を生成してもよい。
例えば、情報提供装置10は、所定のデータを作成する内容の行動情報から、対象となる各ソフトウェアにおいて適用させる操作(例えば、データ入力や関数入力、各種の操作等)を特定し、特定した操作を適用するための適用情報を、対象となるソフトウェアごとに生成してもよい。また、情報提供装置10は、ある1つの行動を行わせるために複数のソフトウェアを強調させる必要がある場合、ソフトウェアごとに必要な操作を特定し、特定した操作を各ソフトウェアに対して適用させる適用情報を生成してもよい。
例えば、情報提供装置10は、第1ソフトウェアに所定の操作を入力することで、第1データを作成させる適用情報を生成するとともに、第2ソフトウェアに対して第1データを読み込ませ、さらに第1データを用いた所定の処理を実行させるための操作を第2ソフトウェアに適用するための適用情報を生成してもよい。そして、情報提供装置10は、生成した適用情報を第1ソフトウェアや第2ソフトウェアに対して順に適用させてもよい。
このように、情報提供装置10は、対象における試験のみならず、対象に任意の処理を行わせるための操作を適用する提供情報を生成してよい。また、情報提供装置10は、上述した目的以外にも、対象に対する操作を適用するための適用情報を生成するのであれば、任意の目的について、適用情報を生成してよい。
〔4−3.処理態様について〕
上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、逆に、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔4−4.プログラム〕
また、上述した実施形態に係る情報提供装置10は、例えば図5に示すような構成のコンピュータ1000によって実現される。図5は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力IF(Interface)1060、入力IF1070、ネットワークIF1080がバス1090により接続された形態を有する。
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置1040は、RAM等、演算装置1030が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等により実現される。
出力IF1060は、モニタやプリンタといった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、USB(Universal Serial Bus)やDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力IF1070は、マウス、キーボード、およびスキャナ等といった各種の入力装置1020から情報を受信するためのインタフェースであり、例えば、USB等により実現される。
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置1020は、USBメモリ等の外付け記憶媒体であってもよい。
ネットワークIF1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。
演算装置1030は、出力IF1060や入力IF1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
例えば、コンピュータ1000が情報提供装置10として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、制御部40の機能を実現する。
〔5.効果〕
上述してきたように、情報提供装置10は、所定の対象に対して行われる利用者の行動を自然言語で示す行動情報を取得する。そして、情報提供装置10は、取得した行動情報から、その行動情報が示す行動が行われた際に対象に対して行われる操作を対象に対して適用するための適用情報を生成する。このような処理の結果、情報提供装置10は、試験の際等、各種任意の対象に対する操作の入力を容易にすることができる。例えば、情報提供装置10は、各対象の試験等において人手で実行される操作、すなわち、各種ユーザアクションを自動化することができるので、対象の試験などにおける手間を削減することができる。
また、情報提供装置10は、対象となる端末装置100に対して行われる利用者の行動を示す行動情報を取得し、行動情報が示す行動が行われた場合に端末装置100に対して行われる操作を対象に対して適用するための適用情報を生成する。このため、情報提供装置10は、端末装置100の試験や端末装置100の操作の手間を省くことができる。例えば、情報提供装置10は、図1に示すように、情報提供装置10と対象となる端末装置100間の全ての処理を、人手が介在しない完全自動化された処理とすることができるので、人手による操作の手間や、人手により生じる誤りを排除することができる。
また、情報提供装置10は、対象となる複数の端末装置100に対して共通して行われる利用者の行動を示す行動情報を取得し、行動情報が示す行動が行われた場合に端末装置100に対して行われる操作を対象に対して適用するための適用情報を、各端末装置100ごとに生成する。このため、情報提供装置10は、対象が複数種別存在する場合であっても、共通する1つの行動情報を受付けるだけで、各対象の操作を実現することができるので、各対象を操作するための単一のインタフェースとして動作することができる。また、情報提供装置10は、行動から操作を適用する適用情報を生成するための共通したコードを用いて、それぞれ異なる対象に対する適用情報を生成することができるので、コードの再利用化を実現する結果、各対象毎にコードを生成する手間を削減するとともに、コードそのものの大幅な削減を実現することができる。
また、情報提供装置10は、端末装置100が実行するオペレーティングシステムと、その端末装置100が実行するソフトウェアとの組合せごとに、適用情報を生成する。このため、情報提供装置10は、各対象を適切に自動操作することができる。
また、情報提供装置10は、端末装置100が実行するソフトウェアの試験を行う際に、そのソフトウェア上で行われる利用者の行動を示す行動情報を取得し、行動情報が示す行動が行われた際にソフトウェアに対して行われる操作をそのソフトウェアに対して適用するための適用情報を生成する。例えば、情報提供装置10は、行動情報が、ソフトウェアに対して行われる利用者の行動を示す場合は、その行動が行われる際に操作されるコンテンツを操作するための適用情報を生成する。また、情報提供装置10は、行動情報が、ソフトウェアに対して行われる利用者の行動を示す場合は、その行動が行われる際にその利用者から入力される情報を入力するための適用情報を生成する。このため、情報提供装置10は、ソフトウェアの試験に要する反復的な操作を削減するとともに、操作を入力する手間を省くとともに、試験を人手で行う際に生じる誤りを削減し、適切な試験を実現することができる。
また、情報提供装置10は、取得された行動情報から、利用者の行動を示す単語を行動ごとに抽出し、抽出された単語が示す行動が行われる場合に端末装置100に対して行われる操作を適用するための適用情報を生成する。また、情報提供装置10は、抽出された単語が示す行動が行われる場合に端末装置100に対して行われる複数の操作と、各操作が行われる順番とを特定し、特定された複数の操作を特定された順番で適用するための適用情報を生成する。このため、情報提供装置10は、対象に対して適切な操作を適用させることができる。
また、情報提供装置10は、抽出された単語が示す行動が行われる場合に端末装置100に対して行われる操作を適用させるとともに、その操作が適用された後に、その操作と対応する所定の結果が生じているか否かを判定するための適用情報を生成する。また、情報提供装置10は、所定のタイミングで、抽出された単語が示す結果が生じているか否かを判定するための適用情報を生成する。また、情報提供装置10は、抽出された単語が示す行動が行われる場合に端末装置100に対して行われる操作の内容と操作対象とを特定し、特定した操作対象に対する特定した内容の操作を適用するための適用情報を生成する。このため、情報提供装置10は、対象に対して適切な操作が行われたか否かを確認しながら、操作の適用を行うことができる。
また、情報提供装置10は、対象となるソフトウェアに対して行われる利用者の行動を示す行動情報を取得し、行動情報が示す行動が行われた場合にソフトウェアに対して行われる操作を適用するための適用情報を生成する。このため、情報提供装置10は、例えば、RPA等の技術において各対象に対して独自の操作を適用するための適用情報を生成することができる。
また、情報提供装置10は、生成された適用情報を対象に対して出力する。このため、情報提供装置10は、対象に適用情報が示す操作を適用することができる。
また、情報提供装置10は、対象において適用情報が示す操作が適用された結果を取集し、収集された結果を示すレポートを提供する。このため、情報提供装置10は、各対象において操作を行った結果を容易に識別可能な情報を提供することができる。
以上、本願の実施形態を図面に基づいて詳細に説明したが、これは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。