(57)【特許請求の範囲】
【請求項１】
所定の対象が提供するサービスを構成する構成サービスであって、利用者が所定の操作を行った際に提供される構成サービスを自然言語で示す行動情報を取得する取得部と、
前記取得部が取得した行動情報から、当該行動情報が示す構成サービスと対応する前記所定の操作を前記対象に対して適用するための適用情報を生成する生成部と
を有することを特徴とする生成装置。  
【請求項２】
前記取得部は、前記対象となる端末装置が利用者に対して提供する構成サービスを示す行動情報を取得し、
前記生成部は、前記行動情報が示す構成サービスが提供される際に前記利用者が前記端末装置に対して行う前記所定の操作を前記対象に対して適用するための適用情報を生成する
ことを特徴とする請求項１に記載の生成装置。
【請求項３】
前記取得部は、前記対象となる複数の端末装置が利用者に対して共通して提供する構成サービスを示す行動情報を取得し、
前記生成部は、前記行動情報が示す構成サービスが提供される場合に前記利用者が前記端末装置に対して行う前記所定の操作を前記対象に対して適用するための適用情報を、各端末装置ごとに生成する
ことを特徴とする請求項２に記載の生成装置。  
【請求項４】
前記生成部は、前記端末装置が実行するオペレーティングシステムと、当該端末装置が実行するソフトウェアとの組合せごとに、前記適用情報を生成する
ことを特徴とする請求項３に記載の生成装置。  
【請求項５】
前記取得部は、前記端末装置が実行するソフトウェアの試験を行う際に、当該ソフトウェアが利用者に対して提供する構成サービスを示す行動情報を取得し、
前記生成部は、前記行動情報が示す構成サービスが提供される際に前記利用者が前記ソフトウェアに対して行う前記所定の操作を当該ソフトウェアに対して適用するための適用情報を生成する
ことを特徴とする請求項２〜４のうちいずれか１つに記載の生成装置。  
【請求項６】
前記生成部は、前記ソフトウェアが前記利用者に提供する当該利用者から操作を受け付けるためのコンテンツに対して行われる操作を適用するための適用情報を生成する
ことを特徴とする請求項５に記載の生成装置。  
【請求項７】
前記生成部は、前記ソフトウェアに対して前記利用者から入力される情報を入力するための適用情報を生成する
ことを特徴とする請求項５に記載の生成装置。  
【請求項８】
前記取得部により取得された行動情報から、所定の対象が前記利用者に対して提供する構成サービスを示す単語を機能ごとに抽出する抽出部
を有し、
前記生成部は、前記抽出部により抽出された単語が示す構成サービスが提供される場合に前記端末装置に対して行われる操作を適用するための適用情報を生成する
ことを特徴とする請求項２〜７のうちいずれか１つに記載の生成装置。
【請求項９】
前記抽出部により抽出された単語が示す構成サービスが提供される場合に前記端末装置に対して行われる複数の操作と、各操作が行われる順番とを特定する特定部
を有し、
前記生成部は、前記特定部により特定された複数の操作を特定された順番で適用するための適用情報を生成する
ことを特徴とする請求項８に記載の生成装置。
【請求項１０】
前記生成部は、前記抽出部により抽出された単語が示す構成サービスが提供される場合に前記端末装置に対して行われる操作を適用させるとともに、当該操作が適用された後に、当該操作と対応する所定の結果が生じているか否かを判定するための適用情報を生成する
ことを特徴とする請求項８または９に記載の生成装置。  
【請求項１１】
前記生成部は、所定のタイミングで、前記所定の結果が生じているか否かを判定するための適用情報を生成する
ことを特徴とする請求項１０に記載の生成装置。
【請求項１２】
前記生成部は、前記抽出部により抽出された単語が示す構成サービスが提供される場合に前記端末装置に対して行われる操作の内容と操作対象とを特定し、特定した操作対象に対する特定した内容の操作を適用するための適用情報を生成する
ことを特徴とする請求項８〜１１のうちいずれか１つに記載の生成装置。  
【請求項１３】
前記取得部は、前記対象となるソフトウェアが前記利用者に提供する構成サービスを示す行動情報を取得し、
前記生成部は、前記行動情報が示す構成サービスが提供される場合に前記ソフトウェアに対して行われる操作を適用するための適用情報を生成する
ことを特徴とする請求項１に記載の生成装置。  
【請求項１４】
前記生成部により生成された適用情報を前記対象に対して出力する出力部
を有することを特徴とする請求項１〜１３のうちいずれか１つに記載の生成装置。  
【請求項１５】
前記対象において前記適用情報が示す操作が適用された結果を取集する収集部と、
前記収集部により収集された結果を示すレポートを提供する提供部と
を有することを特徴とする請求項１４に記載の生成装置。
【請求項１６】
生成装置が実行する生成方法であって、
所定の対象が提供するサービスを構成する構成サービスであって、利用者が所定の操作を行った際に提供される構成サービスを自然言語で示す行動情報を取得する取得工程と、
前記取得工程で取得された行動情報から、当該行動情報が示す構成サービスと対応する前記所定の操作を前記対象に対して適用するための適用情報を生成する生成工程と
を含むことを特徴とする生成方法。  
【請求項１７】
所定の対象が提供するサービスを構成する構成サービスであって、利用者が所定の操作を行った際に提供される構成サービスを自然言語で示す行動情報を取得する取得手順と、
前記取得手順で取得された行動情報から、当該行動情報が示す構成サービスと対応する前記所定の操作を前記対象に対して適用するための適用情報を生成する生成手順と
をコンピュータに実行させるための生成プログラム。
【請求項１８】
複数の対象が利用者に対して提供するサービスを構成する構成サービスであって、利用者が所定の操作を行った際に提供される構成サービスのうち、各対象が共通して提供する構成サービスを自然言語で示す行動情報を取得する取得部と、
前記取得部が取得した行動情報から、前記対象ごとに、前記行動情報が示す構成サービスと対応する前記所定の操作を当該対象に再現させるための再現情報を生成する生成部と
を有することを特徴とする生成装置。  
【請求項１９】
生成装置が実行する生成方法であって、
複数の対象が利用者に対して提供するサービスを構成する構成サービスであって、利用者が所定の操作を行った際に提供される構成サービスのうち、各対象が共通して提供する構成サービスを自然言語で示す行動情報を取得する取得工程と、
前記取得工程で取得された行動情報から、前記対象ごとに、前記行動情報が示す構成サービスと対応する前記所定の操作を当該対象に再現させるための再現情報を生成する生成工程と
を含むことを特徴とする生成方法。  
【請求項２０】
複数の対象が利用者に対して提供するサービスを構成する構成サービスであって、利用者が所定の操作を行った際に提供される構成サービスのうち、各対象が共通して提供する構成サービスを自然言語で示す行動情報を取得する取得手順と、
前記取得手順で取得された行動情報から、前記対象ごとに、前記行動情報が示す構成サービスと対応する前記所定の操作を当該対象に再現させるための再現情報を生成する生成手順と
をコンピュータに実行させるための生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生成装置、生成方法および生成プログラムに関する。
【背景技術】
【０００２】
従来、試験対象の試験に係る手間を削減するための手法が提案されている。このような手法の一例として、結果内容に応じてテストケースを分類し、分類結果に応じてソフトウェアに対する試験の内容を生成する技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第９０３８０２６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、テストケースの内容に基づいて、試験内容を生成しているに過ぎない。このため、上述した従来技術では、試験対象ごとにテストケースを準備する手間がかかる。また、対象の試験以外にも、対象ごとに各種の処理を実行させるような場合に、対象ごとに処理を実現するための操作を人手で入力するのは、手間がかかる。
【０００５】
本願は、上記に鑑みてなされたものであって、任意の対象に対する操作の入力を容易にすることを目的とする。
【課題を解決するための手段】
【０００６】
本願に係る生成装置は、所定の対象に対して行われる利用者の行動を自然言語で示す行動情報を取得する取得部と、前記取得部が取得した行動情報から、当該行動情報が示す行動が行われた際に前記対象に対して行われる操作を前記対象に対して適用するための適用情報を生成する生成部とを有することを特徴とする。
【発明の効果】
【０００７】
実施形態の一態様によれば、任意の対象に対する操作の入力を容易にすることができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係る情報提供装置の一例を示す図である。
【図２】図２は、実施形態に係る情報提供装置が実行する生成処理の実装例を示す図である。
【図３】図３は、実施形態に係る情報提供装置が実行する生成処理の実装例を示す図である。
【図４】図４は、実施形態に係る生成処理の流れの一例を示すフローチャートである。
【図５】図５は、ハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本願に係る生成装置、生成方法および生成プログラムを実施するための形態（以下、「実施形態」と記載する。）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成装置、生成方法および生成プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
【００１０】
[実施形態]
〔１−１．情報提供装置の一例について〕
まず、図１を用いて、実施形態に係る生成装置の一例である情報提供装置１０の一例について説明する。図１は、実施形態に係る情報提供装置の一例を示す図である。なお、図１では、情報提供装置１０が実行する処理の一例として、複数の端末装置１０１〜１０３ずに試験を行わせるための処理の一例について説明する。
【００１１】
図１に示す情報提供装置１０は、生成処理を行う情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。例えば、情報提供装置１０は、端末装置１０１〜１０３がインストールしたＯＳ（Operating  System）や、ＯＳ上で動作する各種アプリケーション等といった各種ソフトウェアの動作を自動的に試験する。
【００１２】
端末装置１０１〜１０３（以下、「端末装置１００」と総称する場合がある。）は、利用者Ｕ１〜Ｕ３が利用する端末装置であり、例えば、スマートフォン等の情報処理端末である。例えば、端末装置１００は、インターネット等のネットワークＮを介して、情報提供装置１０と通信可能である。なお、端末装置１００は、ＰＣ（Personal  Computer）等の情報処理装置であってもよい。また、図１に示す例では、３つの端末装置１０１〜１０３を図示したが、実施形態は、これに限定されるものではない。後述する説明で明らかとなるように、情報提供装置１０は、任意の数の端末装置１００の試験を同時並列的に行ってよい。
【００１３】
操作者端末２００は、端末装置１００の試験を所望する利用者、若しくは、試験を所望する利用者からの依頼を受けた操作者が利用する端末装置であり、サーバ装置やクラウドシステム、ＰＣ等の情報処理装置により実現される。例えば、操作者端末２００には、各端末装置１００に対する試験の内容を入力するための各種入力機能を有しているものとする。なお、図１に示すように、情報提供装置１０は、それぞれ異なる操作者が使用する複数の操作者端末２００のそれぞれから各種の入力を受付け、受付けた情報ごとに、後述する生成処理を実行することとなる。
【００１４】
〔１−２．生成処理の一例について〕
ここで、各端末装置１００の動作確認や、ソフトウェアのデバッグを行う場合、各端末装置１００に対して所定の操作を繰り返し入力し、誤った動作が行われないかを操作の度に判定することとなる。しかしながら、このような試験を人手で行った場合、手間がかかる。また、人手での試験では、誤った操作が行われてしまい、適切な試験が実現できない恐れがある。
【００１５】
そこで、情報提供装置１０は、以下の生成処理を実行する。まず、情報提供装置１０は、所定の対象に対して行われる利用者の行動を自然言語で示す行動情報を取得する。そして、情報提供装置１０は、取得した行動情報から、行動情報が示す行動が行われた際に対象に対して行われる操作を対象に対して適用するための適用情報を生成する。
【００１６】
例えば、情報提供装置１０は、あるソフトウェアのログインが適切に行えるか否かの試験を行う場合、「ログインをする」といった、ログイン時における利用者の動作を自然言語で示す行動情報を取得する。このような場合、情報提供装置１０は、試験対象となるソフトウェアにおいてログインを行うための操作を特定し、特定した操作をソフトウェア上で実現するための適用情報を生成する。
【００１７】
例えば、情報提供装置１０は、「ログイン」という行動を行うために、「ログインを行うためのログインコンテンツを表示する」操作を行った後で、「ユーザＩＤを入力する」操作と「パスワードを入力する」操作を行い、さらに「ログインを行うためのログインボタンをタップする」操作が必要となる場合は、これら各操作を特定する。なお、このような行動を行うために必要な各種の操作の特定は、試験対象となるアプリケーションごとに生成された辞書データであって、想定される行動と、その行動が行われる際に行われる操作とを対応付けた辞書データを用いて、ルールベースにより特定される。
【００１８】
そして、情報提供装置１０は、特定した各操作を端末装置１００に適用するための適用情報を生成する。例えば、情報提供装置１０は、端末装置１００に対し、各種のタップ操作やテキストの入力操作を端末装置１００上で再現するための各種公知技術（例えば、Ａｐｐｉｕｍといった各種のＵＩ（User  Interface）のテスト自動化フレームワークの技術）を用いて、特定した各操作を端末装置１００に対して行うための適用情報を生成する。
【００１９】
このような処理を行った場合、情報提供装置１０は、テスト自動化フレームワークを利用するための知識を操作者が有しない場合であっても、試験時における利用者の行動を自然言語で記述するだけで、端末装置１００の操作を実現することができる。このため、情報提供装置１０は、端末装置１００の試験を容易にすることができる。
【００２０】
〔１−３．端末装置が複数存在する場合について〕
ここで、試験対象となる端末装置１００が複数存在する場合、各端末装置１００ごとに異なる適用情報が必要となる場合がある。例えば、各端末装置１００で実行されるＯＳやアプリケーションが異なる場合、ＯＳごと、アプリケーションごと、若しくはＯＳやアプリケーションの組み合わせごとに、異なる適用情報を生成する手間がかかる。
【００２１】
しかしながら、情報提供装置１０は、各端末装置１００で実行させる操作の内容ではなく、各端末装置１００に対して行われる利用者の行動（例えば、ログイン等）を示す行動情報から、適用情報を生成する。より具体的には、情報提供装置１０は、複数の対象に対して共通して行われる利用者の行動を自然言語で示す行動情報を取得し、取得した行動情報から、対象ごとに、行動情報が示す行動が行われた際に対象に対して行われる操作を対象に再現させるための再現情報を生成する。
【００２２】
このため、情報提供装置１０は、試験対象となる端末装置１００上のアプリケーションやＯＳがそれぞれ異なる場合であっても、各端末装置１００に対して共通して行われる利用者の行動を示す単一の行動情報から、各端末装置ごとに、行動情報が示す行動が行われる際に端末装置１００に対して行われる操作を行わせるための適用情報を生成することができる。換言すると、端末装置１００は、単一の行動に対応する各端末装置１００ごとに異なる操作を実現する単一のインタフェースとして動作することができる。
【００２３】
〔１−４．生成処理の一例について〕
以下、図１を用いて、情報提供装置１０が実行する生成処理の流れの一例について説明する。例えば、情報提供装置１０は、操作者端末２００から、各端末装置１０１〜１０３に対する利用者の行動を示す行動情報を取得する（ステップＳ１）。例えば、情報提供装置１０は、各端末装置１０１〜１０３の試験において、利用者が行うであろう行動を自然言語で表した文章を行動情報として取得する。なお、このような文章は、端末装置１００において表示されるように設定がなされた言語とは異なる言語で記述されていてもよく、任意の言語が採用可能である。
【００２４】
ここで、情報提供装置１０は、各端末装置１００において共通して行われる利用者の行動を示す行動情報を取得する。例えば、情報提供装置１０は、「アプリケーションのログインを行ったら、トップ画面が表示される。」といった試験内容や試験における利用者の行動を示す自然言語を取得する。換言すると、情報提供装置１０は、端末装置１００が実行するソフトウェアの試験を行う際に、ソフトウェア上で行われる利用者の行動を示す行動情報を取得する。
【００２５】
このような場合、情報提供装置１０は、行動情報が示す行動が行われる際に、端末装置１００に対して行われる操作の内容を特定する（ステップＳ２）。例えば、行動情報は、端末装置１００の試験における利用者の行動を示すものの、各端末装置１００において利用者がその行動を行う際にどのような内容の操作が行われるかは、規定されていない。そこで、情報提供装置１０は、行動情報が示す行動を再現する場合に、端末装置１００において生じるであろう操作内容を行動情報に基づいて特定する。
【００２６】
例えば、情報提供装置１０は、「ログイン」といった行動に対し、「ログインコンテンツを表示する」操作、「ユーザＩＤを入力する」操作、「パスワードを入力する」操作、および「ログインボタンを押下する」操作を特定する。すなわち、情報提供装置１０は、行動情報が示す行動が行われた際にソフトウェアに対して行われる操作をソフトウェアに対して適用するための適用情報を生成する。すなわち、情報提供装置１０は、行動情報が、「ログイン」といったソフトウェアに対して行われる利用者の行動を示す場合は、「ログイン」といった行動が行われる際に操作されるコンテンツを操作するための適用情報を生成する。なお、このような特定を行うための詳細な説明については、後述する。
【００２７】
ここで、各端末装置１００において実行されるＯＳは、それぞれ異なるとも考えられる。また、試験対象となるアプリケーションのバージョンや種別が異なる場合も考えられる。そこで、情報提供装置１０は、各端末装置１００において実行されているＯＳやログイン対象となるソフトウェアごとに、行動情報から操作内容を特定する。
【００２８】
続いて、情報提供装置１０は、特定した操作を各端末装置１００に適用されるための適用情報を生成する（ステップＳ３）。例えば、情報提供装置１０は、端末装置１００ごとに、特定した操作を実行させるためのテストコードを生成する。換言すると、情報提供装置１０は、各端末装置１００に対して、特定した操作を仮想的に入力させるための各種スクリプトを適用情報として生成する。
【００２９】
そして、情報提供装置１０は、各端末装置１００ごとに生成した適用情報を各端末装置１００に対して出力する（ステップＳ４）。例えば、情報提供装置１０は、端末装置１０１において実行させているアプリケーションにログインするための操作を端末装置１０１に対して適用するための適用情報を端末装置１０１に配信する。同様に、情報提供装置１０は、端末装置１０２において実行させているアプリケーションにログインするための操作を端末装置１０２に対して適用するための適用情報を端末装置１０２に配信する。また、情報提供装置１０は、端末装置１０３において実行させているアプリケーションにログインするための操作を端末装置１０３に対して適用するための適用情報を端末装置１０３に配信する。
【００３０】
このような場合、各端末装置１００は、情報提供装置１０から受付けた適用情報に従った操作が行われたものとして、それぞれアプリケーションを動作させる（ステップＳ５）。例えば、各端末装置１００には、適用情報に従って操作を仮想的に入力させるための各種のスクリプトが配信されている。そして、各端末装置１００は、情報提供装置１０から受付けた適用情報が示す操作が入力されたものとして、アプリケーションを動作させることで、それぞれ個別にアプリケーションのログインを行うこととなる。
【００３１】
ここで、情報提供装置１０から出力される適用情報には、操作が適用された結果を各端末装置１００に収集させるための情報が含まれている。この結果、端末装置１００は、操作の適用結果を収集し、収集した適用結果を情報提供装置１０へと送信する（ステップＳ６）。このような場合、情報提供装置１０は、適用結果のレポートを生成し、生成したレポートを操作者端末２００に提供する（ステップＳ７）。例えば、情報提供装置１０は、各端末装置１００において実行されているＯＳやアプリケーションの種別とともに、どの端末装置１００においてログインが成功若しくは失敗したか、いくつの端末装置１００でログインが成功若しくは失敗したかといったレポートを提供する。このような処理の結果、情報提供装置１０は、デバッグ等の試験結果の容易な理解を促進することができる。
【００３２】
このように、情報提供装置１０は、自然言語で記述された行動情報から、その行動情報が示す行動が行われた際に端末装置１００等の対象に対して行われる操作を対象に適用させるための適用情報を生成する。この結果、情報提供装置１０は、例えば、対象において行われる各種試験の手間を削減することができる。
【００３３】
また、情報提供装置１０は、複数の対象に対して共通して行われる利用者の行動を示す行動情報から、対象ごとに、行動情報が示す行動が対象に行われた際にその対象において生じる操作を再現させるための適用情報を生成する。この結果、情報提供装置１０は、例えば、試験の対象が複数存在する場合であっても、単一の行動情報から各対象の試験を自動的に行うことができる。換言すると、情報提供装置１０は、ある行動が行われた際における各対象の挙動を試験するための統一されたインタフェースとして動作することができる。この結果、情報提供装置１０は、対象において行われる各種試験の手間を削減することができる。
【００３４】
〔１−５．生成処理の実装例について〕
続いて、図２を用いて、情報提供装置１０が実行する生成処理の実装例について説明する。図２は、実施形態に係る情報提供装置が実行する生成処理の実装例を示す図である。図２に示すように、情報提供装置１０は、行動情報となる自然言語を取得する。例えば、情報提供装置１０は、「ログインをしたらトップ画面が表示される」といった試験における利用者の行動や、その行動が行われた際における結果を示す情報を取得する。
【００３５】
このような場合、情報提供装置１０は、抽出ユニットを用いて、自然言語に含まれる単語のうち、端末装置１００において行われる行動や、その行動が行われた際に生じる結果を示す単語を抽出し、抽出した単語をまとめた特徴情報を生成する。すなわち、情報提供装置１０は、行動情報から、利用者の行動を示す単語を行動ごとに抽出する。
【００３６】
例えば、情報提供装置１０は、「ログインをしたらトップコンテンツが表示される」といった行動情報から「ログイン」といった利用者の行動（すなわち、試験対象となる行動）や、「トップコンテンツが表示」といった、行動が行われた際における端末装置１００の状態（すなわち、行動が行われた結果）を示す単語を抽出する。そして、情報提供装置１０は、抽出した単語を示す特徴情報を生成する。なお、このような処理は、例えば、ＣｕｃｕｍｂｅｒやＴｕｒｎｉｐといったＧｈｅｒｋｉｎと呼ばれるテスト記述言語フォーマットに関する各種の技術が採用可能である。
【００３７】
続いて、情報提供装置１０は、ドライバユニットを用いて、自然言語をデバイス用コマンドに変換するために使用されるステップ情報（ステップ関数）と、コマンドの送信前に対象をポーリングすることにより、ステップ関数をサポートするために使用されるアシスタント情報（アシスタント関数）とを生成する。
【００３８】
例えば、情報提供装置１０は、ステップ情報を生成する場合、特徴情報から、端末装置１００において生じる操作の内容や操作の順番、操作が行われた際の結果等を特定する。換言すると、情報提供装置１０は、利用者の行動を、試験対象となる端末装置１００等のハードウェアや、ハードウェアにおいて各種実行させているソフトウェアに対する操作へと翻訳する処理を実行する。
【００３９】
例えば、情報提供装置１０は、特徴情報が「ログイン」という行動を示す場合、１番目に実行する「ログインコンテンツの表示」、２番目に実行する「ユーザＩＤの入力」、３番目に実行する「パスワードの入力」、および４番目に実行する「ログインボタンの押下」といった複数の操作と各操作の順番とを示すステップ情報（ステップ関数）を生成する。すなわち、情報提供装置１０は、「ログイン」単語が示す行動が行われる場合に端末装置１００に対して行われる各種操作や各操作が行われる順序を特定し、特定した操作や順序を示すステップ情報を生成する。
【００４０】
また、情報提供装置１０は、特徴情報に「トップコンテンツが表示」といった行動の結果が含まれている場合、このような結果が生じたか否かを判定するためのアシスタント情報（アシスタント関数）を生成する。例えば、情報提供装置１０は、「トップ画面が表示」といった行動の結果が含まれる場合、「トップコンテンツが表示されたか否かを判定する」といった処理を示すアシスタント情報を生成する。なお、情報提供装置１０は、例えば、ステップ情報が示す各種操作が行われた際に生じる所定の結果が生じているか否かを判定するためのアシスタント情報を生成してもよい。例えば、情報提供装置１０は、ステップ情報が「ログインコンテンツの表示」といった操作を含む場合は、「ログインコンテンツが表示されたか否かを判定する」といった処理を示すアシスタント情報を生成してもよい。
【００４１】
すなわち、情報提供装置１０は、自然言語で記述された行動情報に基づいて、行動情報が示す行動を実現するための各種の操作や操作の順序を示すステップ情報を生成する。また、情報提供装置１０は、各ステップ情報が示す操作が行われた際に生じる結果が実際に生じているか否かを判定するために行われる処理の内容を示すアシスタント情報を生成する。
【００４２】
なお、ステップ情報やアシスタント情報は、対象となる端末装置１００が実行するＯＳの種別やアプリケーションの種別、若しくはこれらの組み合わせごとに生成される。このため、ドライバユニットは、行動情報から生成された特徴情報が示すユーザアクション（行動）において生じる各種の入力を取得するとともに、ユーザアクションの対象となるデバイスやアプリケーション、操作対象となる要素の識別を行う。そして、ドライバユニットは、識別結果に基づいて、ステップ情報の生成を行う。
【００４３】
同様に、情報提供装置１０は、ステップ情報が示す各操作が行われたことを確実にするために定期的な間隔で、対象の状態を収集する（ポーリングおよびクエリする）ためのアシスタント情報を生成する。より詳細には、情報提供装置１０は、各対象ごとに、ステップ情報が示す操作が行われた際に生じる対象の状態を収集し、収集した状態が所定の条件を満たすか否かを判定するためのアシスタント情報を生成する。換言すると、アシスタント情報は、ステップ情報が示すある操作が行われた結果が適正であるかを判定し、適正であると判定された場合に、ステップ情報が示す次の操作を行わせるための条件情報と見做すことができる。
【００４４】
続いて、情報提供装置１０は、生成ユニットを用いて、ステップ情報およびアシスタント情報が示す操作や各種の判定を対象に行わせるための適用情報を生成する。換言すると、情報提供装置１０は、抽出ユニットにより抽出された単語が示す行動が行われる場合に端末装置１００に対して行われる操作を適用するための適用情報を生成する。
【００４５】
このような生成ユニットは、例えば、アッピウム等、各種の端末装置１００やアプリケーションの自動テストを行うための各種フレームワークにより実現可能である。より具体的には、情報提供装置１０は、ステップ情報が示す各操作をステップ情報が示す順番で対象に適用するとともに、アシスタント情報が示す条件に従って各操作の結果が適切であるかを判定させるためのスクリプトを生成する。
【００４６】
そして、情報提供装置１０は、適用情報を、対象となる端末装置１００へと出力する。例えば、情報提供装置１０は、所定の情報処理装置内で再現された仮想的な端末装置ＥＴや、スマートフォン等の端末装置ＲＴ、クラウド上に存在する各種の端末装置ＣＴに対して、各端末装置１００ごとに生成された適用情報を送信する。この結果、情報提供装置１０は、自然言語で記述された行動情報が示す行動が行われた場合の、端末装置１００の動作を試験することができる。
【００４７】
なお、上述した例において、ドライバユニットは、抽出ユニットと生成ユニットとの組合せごとにされればよい。例えば、ドライバユニットは、実装された抽出ユニットが採用するフォーマットのテスト記述言語から、生成ユニットが識別可能な形式のステップ情報やアシスタント情報を生成すればよい。このようなドライバユニットは、例えば、抽出ユニットにより生成されるテスト記述言語が示す行動と、その行動を実現するための操作内容や操作順序とを対応付けた辞書データや、各操作と、各操作が行われた結果が適正であるかを判定するための条件とを対応付けた辞書データにより、ルールベースで動作する任意のプログラムが採用可能である。
【００４８】
例えば、ドライバユニットは、特徴情報が「ログイン」を示す場合、辞書データを参照し、「ログイン」と対応付けられた各操作「ログインコンテンツの表示」、「ユーザＩＤの入力」、「パスワードの入力」、および「ログインボタンの押下」を特定する。そして、ドライバユニットは、特定した各処理を端末装置１００に実行させるための適用情報を生成ユニットに生成させるためのステップ情報を生成すればよい。また、ドライバユニットは、辞書データを参照し、特定した各操作と対応付けられた条件を特定する。そして、ドライバユニットは、特定した条件を満たすか否かを端末装置１００に実行させるための適用情報を生成ユニットに生成させるためのアシスタント情報を生成すればよい。このような処理を行うプログラムであれば、情報提供装置１０は、任意のプログラムをドライバユニットとして採用可能である。
【００４９】
〔１−６．操作内容について〕
上述した例では、ログインが行われた場合の操作内容の一例について記載した。しかしながら、実施形態は、これに限定されるものではない。例えば、情報提供装置１０は、行動情報が示す行動が行われた際に生じる操作であれば、任意の操作を端末装置１００に適用するための適用情報を生成してもよい。
【００５０】
例えば、情報提供装置１０は、ユーザＩＤの入力やパスワード等、各種のテキストを入力させるための適用情報を生成してもよい。このような入力は、例えば、「「ユーザＩＤ」というテキストが配置された入力フォームを選択」する操作、および「選択した入力フォームに「ＡＡＡＡＡＡ」を入力する」操作（「ＡＡＡＡＡＡ」は、予め設定された文字列）により実現される。ドライバユニットは、このような操作が予め登録された辞書データを用いることで、ユーザＩＤやパスワードといったテキストの入力を実現することができる。
【００５１】
なお、入力対象は、文字列に限定されるものではない。例えば、情報提供装置１０は、文字列以外にも、音声や画像等、任意の種別の情報を入力させるための適用情報を生成してもよい。
【００５２】
また、情報提供装置１０は、このような情報の入力のみならず、任意の操作を適用するための適用情報を生成してもよい。例えば、情報提供装置１０は、対象がスマートフォンである場合、タップ、ピンチイン、ピンチアウト、若しくはスライドといった各種の操作を適用するための適用情報を生成してもよい。また、情報提供装置１０は、対象がＰＣである場合、マウスのクリック、ダブルクリック、ドラッグ、ドロップ、キーボードの操作等を適用するための適用情報を生成してもよい。また、情報提供装置１０は、端末装置１００の傾きの変更や振動等といった端末装置１００に関する各種物理的な操作を適用するための適用情報を生成してもよく、時刻や明るさを変化させる操作を適用するための適用情報を生成してもよい。
【００５３】
また、情報提供装置１０は、端末装置１００が実行するソフトウェアにより表示されたコンテンツの中から、操作対象となるコンテンツを特定し、特定したコンテンツに対する操作を適用するための適用情報を生成してもよい。例えば、情報提供装置１０は、端末装置１００が表示したログインコンテンツに配置されたコンテンツの中から、ユーザＩＤを入力するための入力フォームを特定する操作を行わせ、その後、特定した入力フォームに所定のユーザＩＤを入力させるための操作を行わせるための適用情報を生成してもよい。
【００５４】
上述した操作以外にも、情報提供装置１０は、行動情報が示す行動が行われた際に生じるであろう操作であれば、任意の操作を適用するための適用情報を生成してもよい。このような操作の具体的な内容は、ドライバユニットが用いる辞書データに予め対応する行動と紐付けて登録しているのであれば、任意の内容の操作が可能である。より具体的には、情報提供装置１０は、生成ユニットが識別可能な内容の操作であれば、任意の操作を示すステップ情報やアシスタント情報を生成すればよい。
【００５５】
〔１−７．条件について〕
また、情報提供装置１０は、ステップ情報が示す操作が行われたか否かを適切に判定することができるのであれば、任意の内容の条件が満たされたか否かを判定させるための適用情報を生成してよい。例えば、情報提供装置１０は、コンテンツが変化したか否か、所定のウェブコンテンツが表示されたか否か、ウェブページのステータス、画面上に表示された内容、端末装置１００が有するバイブレーションユニットが変化したか否か、音が出力されたか否か等、任意の内容の条件が満たされたか否かを判定されるための適用情報を生成してよい。
【００５６】
〔１−８．行動情報の言語について〕
ここで、情報提供装置１０は、抽出ユニットが識別可能であり、かつ、ドライバユニットが用いる辞書データに登録がなされている言語であれば、任意の自然言語により生成された行動情報から適用情報の生成を行ってよい。例えば、情報提供装置１０は、日本語、英語、ドイツ語、フランス語、中国語等、任意の言語で記述された行動情報から、適用情報を生成してもよい。
【００５７】
また、例えば、情報提供装置１０は、端末装置１００で用いられる言語とは異なる言語により記述された行動情報から、適用情報の生成を行ってもよい。例えば、情報提供装置１０は、端末装置１０１が日本語のコンテンツを表示し、端末装置１０２が英語のコンテンツを表示し、端末装置１０３がドイツ語のコンテンツを表示する際に、日本語で「ログインする」といった内容の行動情報を受付けたものとする。このような場合、情報提供装置１０は、「ログイン」という行動を実現するために必要な操作であって、各端末装置１００が基準として用いる言語に対応する内容の操作を端末装置１００ごとに特定し、特定した操作を適用するための適用情報を生成すればよい。
【００５８】
例えば、情報提供装置１０は、端末装置１０１に対しては、日本語で「ユーザＩＤ」と表示された入力フォームを選択してユーザＩＤを入力させる適用情報を生成し、端末装置１０２に対しては、英語で「ユーザＩＤ」と表示された入力フォームを選択してユーザＩＤを入力させる適用情報を生成し、端末装置１０３に対しては、ドイツ語で「ユーザＩＤ」と表示された入力フォームを選択してユーザＩＤを入力させる適用情報を生成すればよい。
【００５９】
〔１−９．対象について〕
ここで、情報提供装置１０は、スマートフォン等の端末装置１００以外にも、クラウド上の端末装置ＣＴや所定の情報処理装置上でエミュレートされる端末装置ＥＴ以外にも、任意の対象に対し、操作を適用するための適用情報を生成してよい。例えば、情報提供装置１０は、ＰＣやサーバ装置、各種センサやデジタルサイネージといった実態を有する装置（所謂ハードウェア）を対象とし、これら対象に対して利用者が所定の行動を行う際に入力される操作を、各対象に対して適用するための適用情報を生成してよい。また、情報提供装置１０は、各種の仮想マシンやＰＣ上で実行されるＯＳやアプリケーション等、各種のソフトウェアに対して操作を適用するための適用情報を生成してよい。また、情報提供装置１０は、仮想的な端末装置ＥＴが現実に存在していた場合に、その端末装置ＥＴに対して利用者が行動を行う際に入力される操作を特定し、特定した操作を仮想的な端末装置ＥＴに対して適用するような適用情報を生成してよい。
【００６０】
また、対象となるアプリケーションは、同種のアプリケーションであってもよく、異なるアプリケーションであってもよい。例えば、端末装置１０１は、対象としてＳＮＳ（Social  Networking  Service）のサービスを受けるための第１アプリケーションを実行し、端末装置１０２は、第１アプリケーションとは異なるサービスを受けるための第２アプリケーションを実行し、端末装置１０３は、端末装置１０３を介して各種の代金を決済するための第３アプリケーションを実行しているものとする。また、第１アプリケーション〜第３アプリケーションは、それぞれ表示態様や機能が異なるものの、「ログインを行う」という利用者の行動を受付けることができるものであるものとする。
【００６１】
このように、各端末装置１００が実行するアプリケーションの種別が異なるものであっても、行動情報が示す行動が、各アプリケーションにおいて実行可能な利用者の行動を示す場合、情報提供装置１０は、各アプリケーションごとに異なる適用情報を生成することで、同時に各端末装置１００のアプリケーションをテストすることができる。
【００６２】
より詳細な例について説明する。例えば、第１アプリケーションにおいて利用者がログインする際に、異なる画面上でユーザＩＤとパスワードとを入力する場合、情報提供装置１０は、第１アプリケーションにおいてログインを行うための操作として、「ログイン画面の表示」、「ユーザＩＤの入力」、「パスワード入力ボタンの押下」、「パスワードの入力」、「ログインボタンの押下」といった操作を特定する。一方、第２アプリケーションにおいて利用者がログインする際に、同一画面上でユーザＩＤとパスワードとを入力することができる場合、情報提供装置１０は、第２アプリケーションにおいてログインを行うための操作として、「ログイン画面の表示」、「ユーザＩＤの入力」、「パスワードの入力」、「ログインボタンの押下」といった操作を特定する。また、第３アプリケーションにおいて利用者がログインする際に、ＦＩＤＯ（Fast  Identity  Online）等を用いたログインが可能である場合、情報提供装置１０は、第３アプリケーションにおいてログインを行うための操作として、「ログインボタンの押下」といった操作を特定する。そして、情報提供装置１０は、各操作を適用するための適用情報を各アプリケーションごとに生成し、生成した適用情報を出力すればよい。
【００６３】
また、情報提供装置１０は、各アプリケーションごとに異なる順序で操作を適用させる適用情報を生成してもよく、アプリケーションごとに異なるアシスタント情報を生成してもよい。すなわち、情報提供装置１０は、それぞれ異なるアプリケーション等の対象について、利用者が共通してある行動を行った際に適用される操作の内容や順序、それら操作の結果を特定し、特定した内容の操作を特定した順番で適用するとともに、これらの操作が適切に行うかを判定させる適用情報を生成するのであれば、任意の内容の適用情報を生成してよい。
【００６４】
なお、このようなアプリケーションの種別は、単に異なる機能を有するアプリケーションのみならず、バージョン違いのアプリケーションや、同一のサービスを提供するものの異なるＯＳ上で動作するアプリケーション、言語が異なるアプリケーション等を含む概念である。すなわち、情報提供装置１０は、対象ごとに異なる操作を適用するための提供情報を生成すればよい。また、情報提供装置１０は、複数の対象に、同一種別のアプリケーションが含まれる場合は、これら同一種別のアプリケーションに対して同一の適用情報を出力してもよい。
【００６５】
〔２．情報提供装置の構成〕
以下、上記した情報提供装置１０が有する機能構成の一例について説明する。図３は、実施形態に係る情報提供装置の構成例を示す図である。図３に示すように、情報提供装置１０は、通信部２０、記憶部３０、および制御部４０を有する。
【００６６】
通信部２０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。そして、通信部２０は、ネットワークＮと有線または無線で接続され、端末装置１００や操作者端末２００との間で情報の送受信を行う。
【００６７】
記憶部３０は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部３０は、ルールデータベース３１を記憶する。
【００６８】
ルールデータベース３１には、図２に示すドライバユニットが特徴情報からステップ情報やアシスタント情報を生成するための辞書データが登録されている。例えば、ルールデータベース３１には、対象となる端末装置１００の種別ごと、端末装置１００のＯＳごと、端末装置１００が実行するアプリケーションごと、若しくはこれらの組み合わせごとに、特徴情報が示す利用者の行動と、その行動が行われる際に入力される各種の操作の内容やその順序が対応付けて登録されている。なお、このような辞書データは、任意の構成が採用可能である。
【００６９】
制御部４０は、例えば、コントローラ（controller）であり、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、情報提供装置１０内部の記憶装置に記憶されている各種プログラム（通知プログラムの一例に相当）がＲＡＭを作業領域として実行されることにより実現される。また、制御部４０は、コントローラであり、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。
【００７０】
図３に示すように、制御部４０は、抽出ユニット４１、ドライバユニット４２、および生成ユニット４３を有する。抽出ユニット４１は、自然言語で利用者の行動が記述された行動情報から、利用者の行動やその結果を示す単語を抽出し、抽出した単語を示す特徴情報を生成する。また、ドライバユニット４２は、特徴情報から、各対象に対して適用する操作の内容や順番を示すステップ情報や、操作が適切に行われたか否かの判定における条件やタイミングを示すアシスタント情報を生成する。生成ユニット４３は、ステップ情報やアシスタント情報に基づいて、適用情報の生成を行う。なお、制御部４０は、図２に示すように、キューカンバといった各種の抽出ユニット、ドライバユニット、アッピウムといった生成ユニットと対応するプログラムをそれぞれ実行することにより、抽出ユニット４１、ドライバユニット４２および生成ユニット４３の機能を有することとなる。
【００７１】
また、制御部４０は、収集部４４、提供部４５を有する。なお、制御部４０は、所定のプログラムを実行することにより、収集部４４および提供部４５の機能を有していてもよい。
【００７２】
例えば、抽出ユニット４１は、取得部４１１、抽出部４１２を有する。また、ドライバユニット４２は、特定部４２１を有する。また、生成ユニット４３は、生成部４３１、出力部４３２を有する。
【００７３】
取得部４１１は、所定の対象に対して行われる利用者の行動を自然言語で示す行動情報を取得する。例えば、取得部４１１は、端末装置１００の試験を行う場合等、操作の適用対象が端末装置１００となる場合、端末装置１００に対して行われる利用者の行動を示す行動情報を取得する。例えば、取得部４１１は、「ログインする」等といった利用者の行動を自然言語で示すテキストを行動情報として取得する。
【００７４】
なお、取得部４１１は、複数の対象に対して共通して行われる利用者の行動を示す行動情報を取得してもよい。また、取得部４１１は、ハードウェアに対して行われる行動のみならず、対象となる端末装置１００が実行するソフトウェア上で行われる利用者の行動を示す行動情報を取得してもよい。
【００７５】
抽出部４１２は、行動情報から、利用者の行動を示す単語を行動ごとに抽出する。例えば、抽出部４１２は、各種の形態素解析等の技術により、行動情報として取得したテキストから、「ログイン」等といった利用者の行動を示す単語や、「トップ画面を表示」といった行動の結果を示す単語を抽出する。そして、抽出部４１２は、抽出した単語を示す特徴情報を生成する。
【００７６】
特定部４２１は、抽出された単語が示す行動が行われる場合に対象に対して行われる複数の操作と、各操作が行われる順番とを特定する。例えば、特定部４２１は、特徴情報から、利用者の行動を示す単語「ログイン」等を取得する。また、特定部４２１は、操作者端末２００等から、試験対象等、適用情報の出力先となる対象に関する情報を取得する。例えば、特定部４２１は、各端末装置１００の種別、ＯＳ、試験を行うアプリケーションの情報等を取得する。
【００７７】
このような場合、特定部４２１は、対象となる端末装置１００の種別、ＯＳ、試験を行うアプリケーション若しくはこれらの組み合わせを特定する。そして、特定部４２１は、ルールデータベース３１を参照し、特定された組み合わせごとに、特徴情報から取得した単語と対応付けられた操作の内容やその順序を特定する。また、特定部４２１は、特定した操作が適切に行われたか否かを判定するための条件や、判定を行うタイミングをさらに特定する。なお、特定部４２１は、特徴情報が示す条件を満たすか否かを判定するための条件をさらに特定してもよい。
【００７８】
また、特定部４２１は、抽出された単語が示す行動が行われる場合に端末装置に対して行われる操作の内容と操作対象とを特定してもよい。例えば、特定部４２１は、「ユーザＩＤの入力」といった操作を特定した場合、「ユーザＩＤの入力」を行うためのテキストボックスを選択する操作をさらに特定してもよい。そして、特定部４２１は、特定した操作の内容や順序を示すステップ情報を生成するとともに、操作が適切に行われたか否かを判定するための条件や、判定を行うタイミングを示すアシスタント情報を生成する。
【００７９】
生成部４３１は、行動情報から、その行動情報が示す行動が行われた際に対象に対して行われる操作を対象に対して適用するための適用情報を生成する。例えば、生成部４３１は、行動情報から抽出された単語が示す行動が行われる場合に端末装置１００に対して行われる操作を適用するための適用情報を生成する。また、生成部４３１は、行動情報が示す行動が行われた場合に端末装置１００に対して行われる操作を対象に対して適用するための適用情報を、端末装置１００ごとに生成する。
【００８０】
また、生成部４３１は、端末装置１００が実行するオペレーティングシステムと、その端末装置が実行するソフトウェアとの組合せごとに、適用情報を生成する。また、生成部４３１は、行動情報が示す行動が行われた際にソフトウェアに対して行われる操作をそのソフトウェアに対して適用するための適用情報を生成する。
【００８１】
例えば、生成部４３１は、対象となる端末装置１００の種別、ＯＳ、試験を行うアプリケーション若しくはこれらの組み合わせごとに生成されたステップ情報とアシスタント情報とを取得する。そして、生成部４３１は、ステップ情報とアシスタント情報とに基づいて、ステップ情報が示す操作を、ステップ情報が示す順序で端末装置１００に入力させるとともに、アシスタント情報が示すタイミングで、アシスタント情報が示す条件を端末装置１００が満たしているか否かを判定させる適用情報を生成する。すなわち、生成部４３１は、特定部４２１により特定された複数の操作を、特定された順番で適用するための適用情報を生成することとなる。また、生成部４３１は、単語が示す行動が行われる場合に端末装置１００に対して行われる操作を適用させるとともに、その操作が適用された後に、その操作と対応する所定の結果が生じているか否かを判定するための適用情報を生成する。
【００８２】
なお、生成部４３１は、行動情報が、ソフトウェアに対して行われる利用者の行動を示す場合は、その行動が行われる際に操作されるコンテンツを操作するための適用情報や、その行動が行われる際にその利用者から入力される情報を入力するための適用情報を生成することとなる。また、生成部４３１は、例えば、ステップ情報が「ユーザＩＤの入力」を行うためのテキストボックスを選択する操作を示す場合、「ユーザＩＤの入力」を行うためのテキストボックス（すなわち、操作の対象となるコンテンツ）を検索し、検索したコンテンツを選択する処理を実行させるための適用情報を生成することとなる。
【００８３】
出力部４３２は、生成された適用情報を各対象に対して出力する。例えば、出力部４３２は、適用情報に従って対象上における操作を発生させたり、各種の判定を行わせるためのＪａｖａ  Ｓｃｒｉｐｔ（登録商標）を予め各端末装置１００に実行させる。そして、出力部４３２は、各端末装置１００に対して対応する適用情報を出力することで、適用情報が示す操作を各端末装置１００に適用させる。
【００８４】
収集部４４は、対象において適用情報が示す操作が適用された結果を取集する。例えば、収集部４４は、アシスタント情報が示す条件に基づいて各対象が実行した判定の結果を収集する。例えば、収集部４４は、ログインに成功したか否か、操作と対応する画面表示が行われたか否か、操作と対応するコンテンツが表示されたか否か、各操作が完了するまでに要した時間等を判定結果として収集する。
【００８５】
提供部４５は、収集された結果を示すレポートを提供する。例えば、提供部４５は、行動情報が示す各行動ごとに、各行動と対応する操作が全て適切に実行されたか否か（すなわち、行動が成功したか否か）、行動が成功した端末装置の台数や割合、適切に適用されなかった操作の内容、各操作が完了するまでに要した時間の平均値等をまとめたレポートを生成する。そして、提供部４５は、操作者端末２００に対し、生成したレポートを出力する。
【００８６】
〔３．処理手順〕
次に、図４を用いて、実施形態に係る情報提供装置１０による生成処理の手順について説明する。図４は、実施形態に係る生成処理の流れの一例を示すフローチャートである。
【００８７】
例えば、情報提供装置１０は、行動情報を受付けたか否かを判定する（ステップＳ１０１）。そして、情報提供装置１０は、行動情報を受付けていない場合は（ステップＳ１０１：Ｎｏ）、受付けるまで待機する（ステップＳ１０１）。一方、情報提供装置１０は、行動情報を受付けた場合は（ステップＳ１０１：Ｙｅｓ）、行動情報が示す利用者の各行動を抽出し、抽出した行動を示す特徴情報を生成する（ステップＳ１０２）。
【００８８】
また、情報提供装置１０は、特徴情報から、各行動が行われた際に行われる操作内容と操作の順序とを特定する（ステップＳ１０３）。そして、情報提供装置１０は、特定した操作を特定した順番で端末装置１００に適用するための適用情報を生成し（ステップＳ１０４）、生成した適用情報を端末装置１００に提供して（ステップＳ１０５）、処理を終了する。
【００８９】
〔４．変形例〕
上述した情報提供装置１０は、上記実施形態以外にも種々の異なる形態にて実施されてもよい。そこで、以下では、情報提供装置１０の他の実施形態について説明する。
【００９０】
〔４−１．適用対象について〕
上述した例では、情報提供装置１０は、共通する利用者の行動として、ログインを受付けるアプリケーションの試験を行うための適用情報を生成した。しかしながら、実施形態は、これに限定されるものではない。
【００９１】
例えば、情報提供装置１０は、対象となる端末装置１００やソフトウェアと関連する利用者の行動であれば、任意の行動が行われる際に入力される操作を特定し、特定した操作を適用するための適用情報を生成してよい。例えば、情報提供装置１０は、ＳＮＳ等に対する所定の文字列や写真といったコンテンツの投稿や、ゲーム等に対する入力、動画の閲覧といった任意の行動が行われた際における操作について、適用情報の生成を受付けてもよい。また、情報提供装置１０は、例えば、端末装置１００の向きを変更する、端末装置１００を振る、音量を変更する等、音声による各種操作の入力といったハードウェアに依存する各種の行動が行われる際の操作について、適用情報の生成を行ってもよい。
【００９２】
また、情報提供装置１０は、任意のアプリケーションについての適用情報を生成してよい。例えば、情報提供装置１０は、端末装置１００を用いた各種の決済サービスを提供するアプリケーションについて、適用情報の生成を行ってもよい。例えば、決済サービスには、店舗に設置されたＱＲコード（登録商標）を読み取るとともに、決済額の入力を受付け、ＱＲコードと対応する店舗の口座に対し、受付けた決済額の電子マネーを利用者の口座から送金するといったサービスが存在する。また、決済サービスには、利用者の口座やクレジットカードを識別するバーコードを表示し、表示したバーコードを店舗の端末が読み取ることで、利用者に対する課金を実現するものが存在する。
【００９３】
情報提供装置１０は、このような各種決済サービスに関するアプリケーションについて、適用情報の生成を行ってもよい。例えば、情報提供装置１０は、「店舗＃Ａに対して１００円支払う」といった行動情報に基づいて、「店舗＃ＡのＱＲコードを読み取る」操作、「決済額として１００円」を入力する操作、および「支払ボタンを押下する操作」を適用するための適用情報を生成してもよい。ここで、情報提供装置１０は、実際にはＱＲコードを読み取らずとも、端末装置１００が所定のＱＲコードを読み取った状態にするための適用情報を生成してもよく、実際にカメラ等を起動させて、予め端末装置１００の近傍に配置しておいたＱＲコードを読み取らせる処理を行わせてもよい。
【００９４】
また、情報提供装置１０は、各利用者に対して発光される各種請求書に対応する支払を行わせるための適用情報を生成してもよい。例えば、端末装置１００にインストールされたアプリケーションには、請求書等に印刷されたバーコードをカメラで読み取ると、バーコードが示す支払先および支払額を特定し、特定した支払先の口座へ、特定した支払額を利用者の口座から送金する機能を有する場合がある。このような場合、情報提供装置１０は、例えば、「印刷した請求書の支払い」といった行動情報を受付けた場合、所定のバーコードの画像を生成して端末装置１００に送信するとともに、「バーコードの画像を撮影した画像として読み出す」、「読み出した画像に撮影されているバーコードを識別する（スキャンする）」、「識別したバーコードが示す情報に基づいて、送金を行う」といった操作を実行させるための適用情報を生成してもよい。
【００９５】
また、情報提供装置１０は、「識別したバーコードから、送金金額と請求者とを検証する」といった操作を行わせるための適用情報を生成してもよい。例えば、情報提供装置１０は、バーコードが示す支払先や額を示す文字列とバーコードとを配置した画像（すなわち、仮想的な請求書の画像）を生成し、端末装置１００に送信する。そして、情報提供装置１０は、「バーコードの画像を撮影した画像として読み出す」、「読み出した画像に撮影されているバーコードと、文字列と識別する」、「識別したバーコードが示す支払額と支払先とを識別する」、「識別した文字列が示す支払額と支払先とを識別する」、「バーコードが示す支払額および支払先と、文字列が示す支払額および支払先とが一致するか否かを判定する」、「各支払額および支払先が一致すると判定された場合に、送金を行う」といった一連の処理を実行させるための適用情報を生成してもよい。
【００９６】
また、情報提供装置１０は、アプリケーションが、電子的な請求書に従った支払を実現することができる場合、このような機能を用いた支払の検証を行わせるための適用情報を生成してもよい。例えば、情報提供装置１０は、端末装置１００に対して電子的な請求書のデータを送信するとともに、「支払対象となる電子的な請求書のリストを表示させる」、「リストの中から支払対象となる請求書を選択する」、「選択した請求書に従って、送金を行う」といった操作を実行させるための適用情報を生成してもよい。
【００９７】
また、情報提供装置１０は、各種権限の設定を行う操作や電話等の発信操作等を適用するための適用情報を生成してよい。このように、情報提供装置１０は、対象において入力可能な操作であれば、任意の操作を行わせるための適用情報を生成してよい。さらに、情報提供装置１０は、例えば、端末装置１００とブルートゥース（登録商標）等で接続されたイヤホンや各種のウェアラブルデバイス等を制御するための操作を適用するための適用情報を精鋭してもよい。すなわち、情報提供装置１０は、試験などの対象から操作可能な他の対象に対する操作を、試験等の対象に対して適用するための適用情報を生成してよい。
【００９８】
〔４−２．目的について〕
ここで、情報提供装置１０は、対象の試験以外にも、任意の目的で上述した適用情報の生成を行ってよい。例えば、各種の提携作業をソフトウェア型のロボットやＡＩ（Artificial  Intelligence）が代行、自動化するＲＰＡ（Robotic  Process  Automation）の技術が知られている。情報提供装置１０は、このようなＲＰＡの技術において、上述した生成処理を適用してもよい。より具体的には、情報提供装置１０は、対象となるソフトウェアに対して行われる利用者の行動を示す行動情報を取得し、行動情報が示す行動が行われた場合にソフトウェアに対して行われる操作を適用するための適用情報を生成してもよい。
【００９９】
例えば、情報提供装置１０は、所定のデータを作成する内容の行動情報から、対象となる各ソフトウェアにおいて適用させる操作（例えば、データ入力や関数入力、各種の操作等）を特定し、特定した操作を適用するための適用情報を、対象となるソフトウェアごとに生成してもよい。また、情報提供装置１０は、ある１つの行動を行わせるために複数のソフトウェアを強調させる必要がある場合、ソフトウェアごとに必要な操作を特定し、特定した操作を各ソフトウェアに対して適用させる適用情報を生成してもよい。
【０１００】
例えば、情報提供装置１０は、第１ソフトウェアに所定の操作を入力することで、第１データを作成させる適用情報を生成するとともに、第２ソフトウェアに対して第１データを読み込ませ、さらに第１データを用いた所定の処理を実行させるための操作を第２ソフトウェアに適用するための適用情報を生成してもよい。そして、情報提供装置１０は、生成した適用情報を第１ソフトウェアや第２ソフトウェアに対して順に適用させてもよい。
【０１０１】
このように、情報提供装置１０は、対象における試験のみならず、対象に任意の処理を行わせるための操作を適用する提供情報を生成してよい。また、情報提供装置１０は、上述した目的以外にも、対象に対する操作を適用するための適用情報を生成するのであれば、任意の目的について、適用情報を生成してよい。
【０１０２】
〔４−３．処理態様について〕
上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、逆に、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【０１０３】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１０４】
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【０１０５】
〔４−４．プログラム〕
また、上述した実施形態に係る情報提供装置１０は、例えば図５に示すような構成のコンピュータ１０００によって実現される。図５は、ハードウェア構成の一例を示す図である。コンピュータ１０００は、出力装置１０１０、入力装置１０２０と接続され、演算装置１０３０、一次記憶装置１０４０、二次記憶装置１０５０、出力ＩＦ（Interface）１０６０、入力ＩＦ１０７０、ネットワークＩＦ１０８０がバス１０９０により接続された形態を有する。
【０１０６】
演算装置１０３０は、一次記憶装置１０４０や二次記憶装置１０５０に格納されたプログラムや入力装置１０２０から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置１０４０は、ＲＡＭ等、演算装置１０３０が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置１０５０は、演算装置１０３０が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ＲＯＭ(Read  Only  Memory)、ＨＤＤ（Hard  Disk  Drive）、フラッシュメモリ等により実現される。
【０１０７】
出力ＩＦ１０６０は、モニタやプリンタといった各種の情報を出力する出力装置１０１０に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、ＵＳＢ（Universal  Serial  Bus）やＤＶＩ（Digital  Visual  Interface）、ＨＤＭＩ（登録商標）（High  Definition  Multimedia  Interface）といった規格のコネクタにより実現される。また、入力ＩＦ１０７０は、マウス、キーボード、およびスキャナ等といった各種の入力装置１０２０から情報を受信するためのインタフェースであり、例えば、ＵＳＢ等により実現される。
【０１０８】
なお、入力装置１０２０は、例えば、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置１０２０は、ＵＳＢメモリ等の外付け記憶媒体であってもよい。
【０１０９】
ネットワークＩＦ１０８０は、ネットワークＮを介して他の機器からデータを受信して演算装置１０３０へ送り、また、ネットワークＮを介して演算装置１０３０が生成したデータを他の機器へ送信する。
【０１１０】
演算装置１０３０は、出力ＩＦ１０６０や入力ＩＦ１０７０を介して、出力装置１０１０や入力装置１０２０の制御を行う。例えば、演算装置１０３０は、入力装置１０２０や二次記憶装置１０５０からプログラムを一次記憶装置１０４０上にロードし、ロードしたプログラムを実行する。
【０１１１】
例えば、コンピュータ１０００が情報提供装置１０として機能する場合、コンピュータ１０００の演算装置１０３０は、一次記憶装置１０４０上にロードされたプログラムを実行することにより、制御部４０の機能を実現する。
【０１１２】
〔５．効果〕
上述してきたように、情報提供装置１０は、所定の対象に対して行われる利用者の行動を自然言語で示す行動情報を取得する。そして、情報提供装置１０は、取得した行動情報から、その行動情報が示す行動が行われた際に対象に対して行われる操作を対象に対して適用するための適用情報を生成する。このような処理の結果、情報提供装置１０は、試験の際等、各種任意の対象に対する操作の入力を容易にすることができる。例えば、情報提供装置１０は、各対象の試験等において人手で実行される操作、すなわち、各種ユーザアクションを自動化することができるので、対象の試験などにおける手間を削減することができる。
【０１１３】
また、情報提供装置１０は、対象となる端末装置１００に対して行われる利用者の行動を示す行動情報を取得し、行動情報が示す行動が行われた場合に端末装置１００に対して行われる操作を対象に対して適用するための適用情報を生成する。このため、情報提供装置１０は、端末装置１００の試験や端末装置１００の操作の手間を省くことができる。例えば、情報提供装置１０は、図１に示すように、情報提供装置１０と対象となる端末装置１００間の全ての処理を、人手が介在しない完全自動化された処理とすることができるので、人手による操作の手間や、人手により生じる誤りを排除することができる。
【０１１４】
また、情報提供装置１０は、対象となる複数の端末装置１００に対して共通して行われる利用者の行動を示す行動情報を取得し、行動情報が示す行動が行われた場合に端末装置１００に対して行われる操作を対象に対して適用するための適用情報を、各端末装置１００ごとに生成する。このため、情報提供装置１０は、対象が複数種別存在する場合であっても、共通する１つの行動情報を受付けるだけで、各対象の操作を実現することができるので、各対象を操作するための単一のインタフェースとして動作することができる。また、情報提供装置１０は、行動から操作を適用する適用情報を生成するための共通したコードを用いて、それぞれ異なる対象に対する適用情報を生成することができるので、コードの再利用化を実現する結果、各対象毎にコードを生成する手間を削減するとともに、コードそのものの大幅な削減を実現することができる。
【０１１５】
また、情報提供装置１０は、端末装置１００が実行するオペレーティングシステムと、その端末装置１００が実行するソフトウェアとの組合せごとに、適用情報を生成する。このため、情報提供装置１０は、各対象を適切に自動操作することができる。
【０１１６】
また、情報提供装置１０は、端末装置１００が実行するソフトウェアの試験を行う際に、そのソフトウェア上で行われる利用者の行動を示す行動情報を取得し、行動情報が示す行動が行われた際にソフトウェアに対して行われる操作をそのソフトウェアに対して適用するための適用情報を生成する。例えば、情報提供装置１０は、行動情報が、ソフトウェアに対して行われる利用者の行動を示す場合は、その行動が行われる際に操作されるコンテンツを操作するための適用情報を生成する。また、情報提供装置１０は、行動情報が、ソフトウェアに対して行われる利用者の行動を示す場合は、その行動が行われる際にその利用者から入力される情報を入力するための適用情報を生成する。このため、情報提供装置１０は、ソフトウェアの試験に要する反復的な操作を削減するとともに、操作を入力する手間を省くとともに、試験を人手で行う際に生じる誤りを削減し、適切な試験を実現することができる。
【０１１７】
また、情報提供装置１０は、取得された行動情報から、利用者の行動を示す単語を行動ごとに抽出し、抽出された単語が示す行動が行われる場合に端末装置１００に対して行われる操作を適用するための適用情報を生成する。また、情報提供装置１０は、抽出された単語が示す行動が行われる場合に端末装置１００に対して行われる複数の操作と、各操作が行われる順番とを特定し、特定された複数の操作を特定された順番で適用するための適用情報を生成する。このため、情報提供装置１０は、対象に対して適切な操作を適用させることができる。
【０１１８】
また、情報提供装置１０は、抽出された単語が示す行動が行われる場合に端末装置１００に対して行われる操作を適用させるとともに、その操作が適用された後に、その操作と対応する所定の結果が生じているか否かを判定するための適用情報を生成する。また、情報提供装置１０は、所定のタイミングで、抽出された単語が示す結果が生じているか否かを判定するための適用情報を生成する。また、情報提供装置１０は、抽出された単語が示す行動が行われる場合に端末装置１００に対して行われる操作の内容と操作対象とを特定し、特定した操作対象に対する特定した内容の操作を適用するための適用情報を生成する。このため、情報提供装置１０は、対象に対して適切な操作が行われたか否かを確認しながら、操作の適用を行うことができる。
【０１１９】
また、情報提供装置１０は、対象となるソフトウェアに対して行われる利用者の行動を示す行動情報を取得し、行動情報が示す行動が行われた場合にソフトウェアに対して行われる操作を適用するための適用情報を生成する。このため、情報提供装置１０は、例えば、ＲＰＡ等の技術において各対象に対して独自の操作を適用するための適用情報を生成することができる。
【０１２０】
また、情報提供装置１０は、生成された適用情報を対象に対して出力する。このため、情報提供装置１０は、対象に適用情報が示す操作を適用することができる。
【０１２１】
また、情報提供装置１０は、対象において適用情報が示す操作が適用された結果を取集し、収集された結果を示すレポートを提供する。このため、情報提供装置１０は、各対象において操作を行った結果を容易に識別可能な情報を提供することができる。
【０１２２】
以上、本願の実施形態を図面に基づいて詳細に説明したが、これは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０１２３】
また、上述してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。
【符号の説明】
【０１２４】
１０  情報提供装置
２０  通信部
３０  記憶部
３１  ルールデータベース
４０  制御部
４１  抽出ユニット
４１１  取得部
４１２  抽出部
４２  ドライバユニット
４２１  特定部
４３  生成ユニット
４３１  生成部
４３２  出力部
４４  収集部
４５  提供部
１００  端末装置
２００  操作者端末
【要約】
【課題】任意の対象に対する操作の入力を容易にする。
【解決手段】本願に係る生成装置は、所定の対象に対して行われる利用者の行動を自然言語で示す行動情報を取得する取得部と、前記取得部が取得した行動情報から、当該行動情報が示す行動が行われた際に前記対象に対して行われる操作を前記対象に対して適用するための適用情報を生成する生成部とを有することを特徴とする。
【選択図】図１【図１】
0006798050.tif 000002
【図２】
0006798050.tif 000003
【図３】
0006798050.tif 000004
【図４】
0006798050.tif 000005
【図５】
0006798050.tif 000006