(58)【調査した分野】(Int.Cl.,DB名)
前記決定部は、前記機能と、前記操作対象に当該機能を発揮させる際に行われる利用者の操作とを対応付けたデータベースを参照し、前記特定部により特定された機能と対応する操作に基づいて、前記組合わせを決定する
ことを特徴とする請求項1〜9のうちいずれか1つに記載の生成装置。
前記決定部は、前記特定部により特定された機能と対応する操作と、当該操作を行う順序とをランダムに組合わせることで、複数の組合わせ候補を決定し、決定した組合わせ候補に基づいて、前記操作対象に対して行われる利用者の操作の組合わせを決定する
ことを特徴とする請求項10に記載の生成装置。
前記決定部は、前記組合わせ候補ごとに、前記特定部により特定された機能を発揮するか否かを判定し、当該機能を発揮すると判定された組合わせ候補に基づいて、前記組合わせを決定する
ことを特徴とする請求項11に記載の生成装置。
前記決定部は、前記特定部により特定された機能を発揮すると判定された組合わせ候補に含まれる操作に基づいて、新たな組合わせ候補を生成し、生成した組合わせ候補に基づいて、前記組合わせを決定する
ことを特徴とする請求項12に記載の生成装置。
前記決定部は、前記特定部により特定された機能を発揮すると判定された組合わせ候補に含まれる操作と、ランダムに選択された操作とに基づいて、前記新たな組合わせ候補を生成する
ことを特徴とする請求項13に記載の生成装置。
前記決定部は、前記組合わせ候補ごとに、前記特定部により特定された機能を発揮するか否かを判定する処理と、前記機能を発揮すると判定された組合わせ候補に含まれる操作に基づいて、新たな組合わせ候補を生成する処理と、当該新たな組合わせ候補が前記特定部により特定された機能を発揮するか否かを判定する処理とを、所定の条件が満たされるまで繰り返し実行することで、前記組合わせを決定する
ことを特徴とする請求項12〜14のうちいずれか1つに記載の生成装置。
前記決定部は、前記組合わせ候補ごとに、前記特定部により特定された機能が発揮されるまでに実行された操作の数を計数し、前記組合わせ候補のうち、計数した行動の数が所定の条件を満たす組合わせ候補を、前記操作対象に対して行われる利用者の操作の組合わせとする
ことを特徴とする請求項11〜14のうちいずれか1つに記載の生成装置。
【発明を実施するための形態】
【0010】
以下に、本願に係る生成装置、生成方法および生成プログラムを実施するための形態(以下、「実施形態」と記載する。)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成装置、生成方法および生成プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
【0011】
[実施形態]
〔1−1.情報提供装置の一例について〕
まず、
図1を用いて、実施形態に係る生成装置の一例である情報提供装置10の一例について説明する。
図1は、実施形態に係る情報提供装置の一例を示す図である。なお、
図1では、情報提供装置10が実行する機能の一例として、各種の端末装置にインストールされたアプリケーションのデバッグを行うためにアプリケーションの試験を行うための操作情報を生成する処理の一例について記載した。
【0012】
図1に示す情報提供装置10は、生成処理を実行する情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。例えば、情報提供装置10は、端末装置201〜203がインストールしたOS(Operating System)や、OS上で動作する各種アプリケーション等といった各種ソフトウェアの動作を自動的に試験するための操作情報を生成する。なお、操作情報については、後述する。
【0013】
また、情報提供装置10は、上述した生成処理に加え、生成された操作情報に従って、端末装置201〜203にインストールされたアプリケーションのテストを行う機能を有する。なお、このような機能は、情報提供装置10自体が実行する必要はなく、例えば、サーバ装置やクラウドシステム等により実現される他の情報処理装置(例えば、適用装置)により実現されてもよい。例えば、情報提供装置10は、端末装置201〜203にインストールされた各種ソフトウェアの動作を自動的に試験する。
【0014】
端末装置201〜203(以下、「端末装置200」と総称する場合がある。)は、利用者U1〜U3が利用する端末装置であり、例えば、スマートフォン等の情報処理端末である。例えば、端末装置200は、インターネット等のネットワークNを介して、情報提供装置10と通信可能である。なお、端末装置200は、PC(Personal Computer)等の情報処理装置であってもよい。また、
図1に示す例では、3つの端末装置201〜203を図示したが、実施形態は、これに限定されるものではない。後述する説明で明らかとなるように、情報提供装置10は、任意の数の端末装置200の試験を同時並列的に行ってよい。なお、
図1に示す例では、端末装置201は、スマートフォンであり、端末装置202は、タブレットであり、端末装置203は、PCである。情報提供装置10は、このような様々な種別の端末装置200において実行されるソフトウェアの動作を同時に試験することも可能である。
【0015】
操作者端末300は、端末装置200の試験を所望する利用者、若しくは、試験を所望する利用者からの依頼を受けた操作者が利用する端末装置であり、サーバ装置やクラウドシステム、PC等の情報処理装置により実現される。
【0016】
〔1−2.適用処理の一例について〕
ここで、情報提供装置10が実行する生成処理を説明する前に、情報提供装置10が実行する適用処理について説明する。例えば、各端末装置200の動作確認や、ソフトウェアのデバッグを行う場合、各端末装置200に対して様々な処理を様々な順番で繰り返し入力し、誤った動作が行われないかを操作の度に判定することとなる。しかしながら、このような試験を人手で行った場合、手間がかかる。また、人手での試験では、誤った操作が行われてしまい、適切な試験が実現できない恐れがある。
【0017】
そこで、情報提供装置10は、以下の適用処理を実行する。まず、情報提供装置10は、所定の対象に対して行われる利用者の行動、換言すると、アプリケーション等の所定の対象が提供する機能を自然言語で示す操作情報を取得する。例えば、アプリケーションが利用者に対してログインの機能を提供した場合、利用者は、その機能を発揮させることでログインといった行動を行うこととなる。また、アプリケーションが各種の決済機能を発揮するアプリケーションである場合、利用者は、アプリケーションが提供する決済機能を発揮させることで、決済といった行動を行うこととなる。そして、情報提供装置10は、取得した操作情報から、操作情報が示す行動が行われた際に対象に対して行われる操作を対象に対して適用するための適用情報を生成する。
【0018】
例えば、情報提供装置10は、あるソフトウェアのログインが適切に行えるか否かの試験を行う場合、「ログインをする」といった、ログイン時における利用者の動作を自然言語で示す指示を取得する。このような場合、情報提供装置10は、操作対象となるソフトウェアにおいてログインを行うための操作を特定し、特定した操作をソフトウェア上で実現するための適用情報を生成する。
【0019】
例えば、情報提供装置10は、「ログイン」という行動を行うために、「ログインを行うためのログインコンテンツを表示する」操作を行った後で、「ユーザIDを入力する」操作と「パスワードを入力する」操作を行い、さらに「ログインを行うためのログインボタンをタップする」操作が必要となる場合は、これら各操作を特定する。なお、このような行動を行うために必要な各種の操作の特定は、操作対象となるアプリケーションごとに生成された辞書データであって、想定される行動と、その行動が行われる際に行われる操作とを対応付けた辞書データを用いて、ルールベースにより特定される。
【0020】
そして、情報提供装置10は、特定した各操作を端末装置200に適用するための適用情報を生成する。例えば、情報提供装置10は、端末装置200に対し、各種のタップ操作やテキストの入力操作を端末装置200上で再現するための各種公知技術(例えば、Appiumといった各種のUI(User Interface)のテスト自動化フレームワークの技術)を用いて、特定した各操作を端末装置200に対して行うための適用情報を生成する。
【0021】
このような処理を行った場合、情報提供装置10は、テスト自動化フレームワークを利用するための知識を操作者が有しない場合であっても、試験時における利用者の行動を自然言語で記述するだけで、端末装置200の操作を実現することができる。このため、情報提供装置10は、端末装置200の試験を容易にすることができる。
【0022】
〔1−3.端末装置が複数存在する場合について〕
ここで、操作対象となる端末装置200が複数存在する場合、各端末装置200ごとに異なる適用情報が必要となる場合がある。例えば、操作対象となる複数の端末装置200が、同一種別のスマートフォンである場合だけでなく、スマートフォン、タブレット、およびPCといったそれぞれ異なる種別の複数の端末装置200である場合や、それぞれメーカ、OS、バージョン等が異なる端末装置200である場合も考えられる。また、一部複数の端末装置200の種別が同一であり、他の端末装置200が異なる種別である場合も考えられる。しかしながら、各端末装置200で実行されるOSやアプリケーションが異なる場合、OSごと、アプリケーションごと、若しくはOSやアプリケーションの組合わせごとに、異なる適用情報を生成する手間がかかる。
【0023】
しかしながら、情報提供装置10は、各端末装置200で実行させる操作の内容ではなく、各端末装置200に対して行われる利用者の行動、すなわち、アプリケーションが利用者に対して提供する機能のうち利用者が利用する機能(例えば、ログイン等)を自然言語で示す指示から、適用情報を生成する。より具体的には、情報提供装置10は、複数の対象に対して共通して行われる利用者の行動を自然言語で示す操作情報を取得し、取得した操作情報から、対象ごとに、操作情報が示す行動が行われた際に対象に対して行われる操作を対象に再現させるための再現情報を生成する。
【0024】
換言すると、情報提供装置10は、それぞれバージョンなどが異なる複数のアプリケーションを試験対象とする場合に、各アプリケーションが共通して提供する機能を自然言語で示す指示、すなわち、各アプリケーションの機能を上位概念化した指示に基づいて、各アプリケーションごとにその機能を発揮させるための操作を特定し、特定した操作を再現させるための再現情報を生成する。
【0025】
このため、情報提供装置10は、操作対象となる端末装置200がそれぞれ異なる種別である場合や、端末装置200上のアプリケーションやOSがそれぞれ異なる場合、端末装置の種別やアプリケーションの組合せが異なる場合であっても、各端末装置200に対して共通して行われる利用者の行動を示す単一の操作情報から、各端末装置ごとに、操作情報が示す行動が行われる際に端末装置200に対して行われる操作を行わせるための適用情報を生成することができる。換言すると、端末装置200は、単一の行動に対応する各端末装置200ごとに異なる操作を実現する単一のインタフェースとして動作することができる。
【0026】
〔1−4.生成処理について〕
上述したように、情報提供装置10は、試験対象の機能を上位概念化した指示、すなわち、アプリケーションに対して行われる利用者の行動や利用者が利用する機能を自然言語で示す指示に基づいて、アプリケーションの試験を行うことができる。このため、操作者は、試験対象としたい利用者の行動や機能を自然言語で表した情報のみで、試験を行うことができる。
【0027】
しかしながら、係る処理のみでは適切な試験を行うことができるとは言えない。例えば、アプリケーションが提供するログインにおける試験では、ログインが適切に行えたか否かだけではなく、ログインが行われた際にどのような操作でログインができなかったかを知る必要がある。しかしながら、このような詳細な操作内容を人手で設定するのは手間がかかる。また、人手で各種操作内容を設定した場合、人的ミスにより、試行すべき操作内容が設定されず、バグが見逃される恐れがある。
【0028】
そこで、情報提供装置10は、以下の生成処理を実行する。まず、情報提供装置10は、利用者の操作対象が発揮する機能を特定する。続いて、情報提供装置10は、特定された機能に応じて、操作対象に対して行われる利用者の操作の組合わせを決定する。そして、情報提供装置10は、決定された操作の組合わせを自然言語で表した操作情報を生成する。
【0029】
例えば、情報提供装置10は、利用者の操作対象となるアプリケーションの解析を行い、アプリケーションの各種機能を特定する。例えば、情報提供装置10は、アプリケーションが提供する機能として、ログイン、QRコード(登録商標)の読み取りや送信といった決済に関する各種の機能、音楽コンテンツや地図コンテンツ等といった各種コンテンツを適用する機能など、アプリケーションが発揮する機能であって、利用者が利用可能な機能を特定する。なお、このような機能の特定については、アプリケーションが有する特徴と、そのアプリケーションが提供する機能との関係性を学習したモデルを用いることで、実現可能である。このようなモデルの詳細については、後述する。
【0030】
続いて、情報提供装置10は、特定した機能ごとに、その機能を発揮する際にアプリケーションに対して行われる操作の組合わせを決定する。例えば、情報提供装置10は、特定した機能が「ログイン」である場合、アプリケーションに対して行われる操作として、「ユーザIDの入力」、「パスワードの入力」、「ログインボタンの選択」といった操作を特定する。すなわち、情報提供装置10は、特定した機能を発揮するための画面内において利用者から受け付け可能な操作(換言すると、利用者が実行可能な操作)を特定する。なお、このような特定処理は、例えば、アプリケーションの機能と、その機能を発揮するための操作とをあらかじめ対応付けたテーブル等を用いることで、実現可能である。
【0031】
そして、情報提供装置10は、これら特定した操作を適宜組合わせた操作の組合わせを決定する。例えば、情報提供装置10は、「ユーザIDの入力」、「ユーザIDの入力」、「ログインボタンの選択」といった組合わせや、「ユーザIDの入力」、「パスワードの入力」、「ユーザIDの入力」といった組合わせ等、特定した操作をランダムな数だけランダムな順序で並べた組合わせを所定数生成する。また、情報提供装置10は、後述する処理により、生成した組合わせの中から、実際にアプリケーションに対して適用する操作の組合わせを決定する。
【0032】
そして、情報提供装置10は、決定した操作の組合わせを自然言語で表した操作情報、すなわち、操作のシナリオ(換言すると、試験のシナリオ)を操作情報として生成する。例えば、情報提供装置10は、「ログイン」の機能について、「ユーザIDの入力」、「ユーザIDの入力」、「ログインボタンの選択」といった操作の組合わせを決定した場合、「ログイン画面において、ユーザIDを入力し、続いて、ユーザIDを入力し、その後、ログインボタンをタップする」といった操作情報を生成する。
【0033】
このような処理の結果、情報提供装置10は、アプリケーションの動作を確認するために実行すべき各種の操作の組合わせを、自動的に決定し、決定した組合わせを自然言語で示す操作情報を提供することができる。換言すると、情報提供装置10は、動作確認の対象となる操作の組合わせ、すなわち、テストケースを自動的に決定することができる。この結果、情報提供装置10は、アプリケーションの動作確認に要する手間を削減することができる。
【0034】
従来、テストケースの決定においては、動作確認を行うアプリケーション等といった操作対象の動作を熟知する操作者や経験を有する操作者により、テストケースの内容を示すフローやダイアグラムが作成され、このようなフローやダイアグラムに従って、適用情報の作成が行われていた。しかしながら、このような手法では、操作者が操作対象を熟知していない場合や、経験が浅い場合に、適切な動作確認を行うことができず、アプリケーションのバージョン等といった仕様ごとに、フローやダイアグラムを作成する手間がかかる。
【0035】
しかしながら、情報提供装置10は、動作確認を行う操作対象を分析することで、操作対象が発揮する機能を特定し、特定した機能に基づいて、自動的にテストケースを決定する。そして、情報提供装置10は、決定したテストケースを自然言語で示す操作情報、すなわち、バージョン等といった仕様によらず、操作対象に対する操作内容を示すことができる操作情報を生成する。このため、情報提供装置10は、テストケースの作成の手間を削減することができる。
【0036】
〔1−5.生成処理の一例について〕
以下、
図1を用いて、情報提供装置10が実行する生成処理の流れ、および情報提供装置10が実行する適用処理の流れの一例について説明する。例えば、操作者は、各端末装置200に対して、操作対象となるアプリケーションをインストールする(ステップS1)。ここで、各端末装置200に対してインストールされるアプリケーションは、それぞれ異なるバージョンのアプリケーションであってもよい。また、各端末装置200に対してインストールされるアプリケーションは、それぞれ個別のOS上で動作するアプリケーションであってもよく、それぞれ異なるサービスを提供するためのアプリケーションであってもよい。また、各端末装置200は、それぞれ異なる種別のハードウェアであってもよい。すなわち、試験対象となる端末装置200とは、ハードウェアとソフトウェアとの組み合わせがそれぞれ異なるものであってもよい。
【0037】
続いて、情報提供装置10は、操作者端末300から、試験対象となるアプリケーションを受け付ける(ステップS2)。すなわち、情報提供装置10は、AUT(Application Under Test)を受け付ける。例えば、情報提供装置10は、各端末装置200にインストールされたアプリケーションのデータを受け付ける。なお、情報提供装置10は、各端末装置200にインストールされたアプリケーションのうちいずれかのアプリケーションのみを受け付けてもよい。以下の説明で明らかとなるように、情報提供装置10は、バージョンが異なる複数のアプリケーションであっても、同一のサービスを提供するアプリケーションであれば、任意のバージョンのアプリケーションから、各アプリケーションが提供する機能を試験するための適用情報を生成することができる。
【0038】
続いて、情報提供装置10は、アプリケーションが提供するサービスをドメインとして特定する(ステップS3)。上述したように、情報提供装置10は、操作対象となるアプリケーションの機能に基づいて操作内容の組合わせを決定するが、このようなアプリケーションの機能は、アプリケーションが提供するサービスによって異なる。例えば、決済を行うアプリケーションは、ログインの機能が必須であると考えらえるが、フォトビュワー等のアプリケーションは、ログインの機能を提供しない場合が多いと考えられる。このように、操作対象が提供するサービスの種別に応じて、操作対象が発揮する機能は、変化すると考えられる。
【0039】
そこで、情報提供装置10は、操作対象となるアプリケーションが提供するサービスをドメインとして特定する。例えば、アプリケーションが画面上に表示するテキストの内容は、アプリケーションが提供するサービスのドメインを精度よく示す指標となり得る。例えば、「再生」といったテキストを表示するアプリケーションは、音楽等の各種コンテンツを再生するサービスを提供するアプリケーションであると推定される。また、「支払」といったテキストを表示するアプリケーションは、各種支払サービスを提供するアプリケーションであると推定される。そこで、情報提供装置10は、コンテンツが画面上に表示するテキストに基づいて、操作対象が提供するサービスの種別を特定する。
【0040】
なお、情報提供装置10は、アプリケーションが画面上に表示するテキストの量に基づいて、アプリケーションが提供するサービスのドメインを推定してもよい。例えば、情報提供装置10は、「再生」といったテキストよりも、「支払」といったテキストを多く表示するアプリケーションについては、決済サービスを提供するアプリケーションであると特定してもよい。
【0041】
なお、情報提供装置10は、アプリケーションが提供するテキストから、アプリケーションが提供するサービスのドメイン(以下、「アプリケーションのドメイン」と記載する場合がある。)をルールベースで特定してもよい。しかしながら、本実施形態において、情報提供装置10は、アプリケーションが提供するテキストと、そのアプリケーションが提供するサービスのドメインとの間の関係性を学習したドメインモデルを用いて、アプリケーションが提供するサービスのドメインを特定する。
【0042】
例えば、情報提供装置10は、各種のアプリケーションが提供するテキストと、そのアプリケーションが提供するサービスのドメインとの組を学習データとして取得する。そして、情報提供装置10は、各テキストを入力した際に、そのテキストを提供するアプリケーションのドメインを示す情報を出力するようにドメインモデルの学習を行う。なお、このようなモデルの学習処理は、例えば、DNN(Deep Neural Network)等の各種ニューラルネットワーク等をバックプロパゲーション等による学習を行うことで、実現可能である。
【0043】
また、情報提供装置10は、自装置でドメインモデルの学習を行わずとも、任意の学習装置により学習が行われたドメインモデルを用いてもよい。そして、情報提供装置10は、学習済みのドメインモデルに対し、操作対象となるアプリケーションが提供するテキストを入力することで、アプリケーションが提供するサービスのドメインを推定する。このような処理の結果、情報提供装置10は、アプリケーションが提供するサービスのドメインを適切に推定することができる。
【0044】
続いて、情報提供装置10は、ドメインに応じて、アプリケーションの各画面上で提供される機能を特定する(ステップS4)。例えば、情報提供装置10は、ログイン等、アプリケーションを介して提供されるサービスを構成する構成サービスを機能として特定する。なお、以下の説明では、このような構成サービスを、アプリケーションの「機能」と表現する場合がある。上述したように、情報提供装置10は、操作対象となるアプリケーションの機能に基づいて操作内容の組合わせを決定するが、このようなアプリケーションの機能は、アプリケーションのドメイン、すなわち、アプリケーションが提供するサービスによって異なる。例えば、決済を行うアプリケーションは、ログインの機能が必須であると考えらえるが、フォトビュワー等のアプリケーションは、ログインの機能を提供しない場合が多いと考えられる。このように、操作対象が提供するサービスの種別に応じて、操作対象が発揮する機能は、変化すると考えられる。
【0045】
そこで、情報提供装置10は、アプリケーションのドメインとあらかじめ対応付けられる機能の中から、アプリケーションの各画面上で提供される機能を特定する。例えば、アプリケーションは、ログインや決済等の機能を発揮する場合には、画面上に画像やテキスト、テキストを入力するためのテキストボックスや各種のボタン等といったオブジェクトを配置して表示させることとなる。また、画面上に表示されるオブジェクトは、アプリケーションが提供するサービスの内容に応じて、適宜変化する。例えば、決済サービスを提供するアプリケーションは、決済額を入力するためのオブジェクトやQRコード(登録商標)を撮影するためのオブジェクト等を表示する場合がある。一方、音楽コンテンツを提供するアプリケーションは、再生ボタンや一時停止ボタン等のオブジェクトを表示する場合がある。このように、各種のアプリケーションは、発揮する機能に応じて異なるオブジェクトを画面上に表示することとなる。
【0046】
このため、情報提供装置10は、操作対象が所定の端末装置に対して表示させる画面に含まれるオブジェクトに基づいて、その画面においてアプリケーションが提供する機能を特定する。例えば、情報提供装置10は、アプリケーションを解析し、各画面画面上に表示される各種のオブジェクトを特定する。そして、情報提供装置10は、オブジェクトの種別や量に応じて、アプリケーションが各画面を介して提供する機能を特定する。
【0047】
例えば、情報提供装置10は、ドメインが「決済サービス」であるアプリケーションについて、ある画面上に、テキストボックスが2つ含まれている場合は、この画面上で提供される機能が「ログイン」であると判定する。また、情報提供装置10は、ドメインが「SNS(Social Networking Service)」であるアプリケーションについて、ある画面上に、テキストボックスが2つ含まれている場合は、この画面上で提供される機能が「投稿」であると判定する。
【0048】
なお、情報提供装置10は、画面上におけるオブジェクトの種類や内容のみならず、例えば、画面上でスクロールが可能か否かや、画面上で利用者が可能な各種の操作を特定し、特定結果に応じて、画面上で提供される機能を判定してもよい。すなわち、情報提供装置10は、画面上に配置された各種のオブジェクトや画面上で実行可能な各種操作等といったアプリケーションが提供する画面の特徴、すなわち、アプリケーションの特徴に基づいて、アプリケーションが提供する機能を判定することとなる。
【0049】
なお、情報提供装置10は、画面上に配置されるオブジェクトの種別や数と、アプリケーションのドメインとの組合わせからその機能をルールベースで特定してもよい。しかしながら、本実施形態において、情報提供装置10は、アプリケーションが提供する画面上のオブジェクトと、その画面上で提供される機能との間の関係性を学習したスクリーンモデルを用いて、アプリケーションが提供する機能を特定する。
【0050】
例えば、情報提供装置10は、あるドメインに属するアプリケーションの画面に含まれるオブジェクトの種別や数等を示す情報を入力した際に、その画面を介して提供される機能を示す情報を出力するようにスクリーンモデルの学習を行う。このような学習処理をドメインごとに実行することで、情報提供装置10は、所定のドメインに属するアプリケーションの画面に含まれるオブジェクトから、機能を推定するモデルをドメインごとに生成することができる。なお、情報提供装置10は、自装置でスクリーンモデルの学習を行わずとも、任意の学習装置により学習が行われたスクリーンモデルを用いてもよい。そして、情報提供装置10は、学習済みのスクリーンモデルに対し、操作対象となるアプリケーションが提供る画面内のオブジェクトの情報を入力することで、アプリケーションが提供する機能を推定する。このような処理の結果、情報提供装置10は、アプリケーションが提供する機能を適切に推定することができる。
【0051】
上述した処理の結果、情報提供装置10は、アプリケーションが表示する画面ごとに、その画面を介して提供される機能を特定することとなる。そこで、情報提供装置10は、特定した機能を発揮させるための操作の組合わせを決定する(ステップS5)。例えば、情報提供装置10は、特定した機能とあらかじめ対応付けられた操作を特定し、特定した操作をランダムな数だけ、ランダムな順番で組合わせた操作の組合わせの候補を生成する。そして、情報提供装置10は、生成した組合わせの候補の中から、試験の対象として適切であると推定される組合わせの候補を特定する。なお、このような操作の組合わせを決定する処理の詳細については、後述する。
【0052】
続いて、情報提供装置10は、決定した操作の組合わせを自然言語で示した操作情報を生成する(ステップS6)。例えば、情報提供装置10は、各操作と、その操作を示す自然言語とを対応付けた辞書データを参照し、決定した操作内容を自然言語で示した操作情報を生成する。例えば、情報提供装置10は、操作の組合わせが「テキストボックスにユーザIDを入力」、「ボタンをクリック」である場合、「テキストボックスにユーザIDを入力した後にボタンをクリックする」というように、各操作内容と、各操作を実行する順序とを自然言語で示す操作内容を生成する。なお、このような操作情報は、例えば、テストケース、テストシナリオ、シナリオアウトライン、特徴ファイル、もしくはユーザフロー等と表現される場合がある。すなわち、情報提供装置10は、構成サービスが提供される際に利用者が入力しうる操作を自然言語で示す操作情報を生成する。
【0053】
〔1−6.適用処理の一例について〕
続いて、情報提供装置10が実行する提供処理の一例を説明する。まず、情報提供装置10は、操作情報が示す操作を各端末装置200に提供させるための適用情報を生成する(ステップS7)。例えば、情報提供装置10は、各端末装置200において実行されているOSやログイン対象となるソフトウェアごとに、操作情報から操作内容を特定する。続いて、情報提供装置10は、特定した操作を各端末装置200に適用されるための適用情報を生成する。例えば、情報提供装置10は、端末装置200ごとに、特定した操作を実行させるためのテストコードを生成する。換言すると、情報提供装置10は、各端末装置200に対して、特定した操作を仮想的に入力させるための各種スクリプトを適用情報として生成する。
【0054】
そして、情報提供装置10は、各端末装置200ごとに生成した適用情報を各端末装置200に対して出力する(ステップS8)。例えば、情報提供装置10は、操作情報が、ログインを行う画面上でのテストケースを示す場合、各テストケースにおける操作を端末装置201に対して適用するための適用情報を端末装置201に配信する。同様に、情報提供装置10は、各テストケースにおける操作を端末装置202、203に対して適用するための適用情報を端末装置202、203に配信する。
【0055】
このような場合、各端末装置200は、情報提供装置10から受付けた適用情報に従った操作が行われたものとして、それぞれアプリケーションを動作させる(ステップS9)。例えば、各端末装置200には、適用情報に従って操作を仮想的に入力させるための各種のスクリプトが配信されている。そして、各端末装置200は、情報提供装置10から受付けた適用情報が示す操作が入力されたものとして、アプリケーションを動作させることで、それぞれ個別にアプリケーションのログインを行うこととなる。
【0056】
ここで、情報提供装置10から出力される適用情報には、操作が適用された結果を各端末装置200に収集させるための情報が含まれている。この結果、端末装置200は、操作の適用結果を収集し、収集した適用結果を情報提供装置10へと送信する(ステップS10)。このような場合、情報提供装置10は、適用結果のレポートを生成し、生成したレポートを操作者端末300に提供する(ステップS11)。例えば、情報提供装置10は、各端末装置200において実行されているOSやアプリケーションの種別とともに、どの端末装置200においてログインが成功若しくは失敗したか、いくつの端末装置200でログインが成功若しくは失敗したかといったレポートを提供する。このような処理の結果、情報提供装置10は、デバッグ等の試験結果の容易な理解を促進することができる。
【0057】
〔1−7.生成処理の実装例について〕
上述したように、情報提供装置10は、アプリケーションの解析結果に基づいて、アプリケーションを試験するためのテストケースを生成する。換言すると、情報提供装置10は、操作対象に対して行われる利用者の操作の組合わせを自然言語で示した操作情報を生成する。このような生成処理において、情報提供装置10は、IAGA(Improved Adaptive Genetic Algorithm)を改良した手法により、操作情報の生成を行う。
【0058】
以下、
図2を用いて、情報提供装置10が実行する生成処理の実装例について説明する。
図2は、実施形態に係る情報提供装置が実行する生成処理の実装例を示す図である。
図2においては、情報提供装置10が操作情報を生成する処理の流れの一例について記載したが、実施形態は、これに限定されるものではない。情報提供装置10は、
図2に示す処理以外にも、アプリケーションの解析結果、例えば、アプリケーションが有する各種の特徴に基づいて操作情報を生成するのであれば、任意の処理により、操作情報の生成を行ってよい。
【0059】
例えば、
図2に示す例では、情報提供装置10は、操作データベースおよび組合わせデータベースに登録された情報を用いて、操作情報の生成を行う。操作データベースは、利用者が操作対象となるアプリケーションに対して行うことができるすべての操作内容(例えば、インスタラクション)、および、各操作内容を自然言語で示した情報が対応付けて登録されている。なお、操作データベースは、ユーザアクションデータベースと換言される場合がある。
【0060】
組合わせデータベースは、アプリケーションに対して適用される利用者の操作の組合わせが登録される。ここで、組合わせデータベースには、例えば、アプリケーションが提供する機能を適切に発揮させるための操作の組合わせだけではなく、機能を適切に発揮させることができない操作の組合わせについても登録されることとなる。すなわち、組合わせデータベースには、アプリケーションの試験時に適用される操作の組合わせ、換言すると、テストシナリオを示す情報が登録される。なお、組合わせデータベースは、ポピュレーションデータベースと換言される場合がある。
【0061】
なお、以下の説明では、利用者の操作の組合わせを組合わせ情報と総称する場合がある。また、組合わせデータベースには、初期状態において、組合わせ情報がすでに登録されていてもよく、登録されていなくともよい。
【0062】
まず、情報提供装置10は、アプリケーションからテキストを抽出する。例えば、情報提供装置10は、試験対象となるアプリケーションのコードを解析し、アプリケーションが画面上に表示するすべてのテキストを抽出する。そして、情報提供装置10は、抽出したテキストに基づいてアプリケーションのドメインを特定する。例えば、情報提供装置10は、ドメインモデルを用いて、アプリケーションが表示するテキストから、アプリケーションが提供する機能のドメインを特定する。
【0063】
続いて、情報提供装置10は、アプリケーションが表示する画面をすべて特定する。例えば、情報提供装置10は、アプリケーションのコードを解析し、アプリケーションが表示させるすべての画面をそれぞれ特定する。なお、情報提供装置10は、以下に説明する処理を、特定した画面ごとに実行することとなる。
【0064】
続いて、情報提供装置10は、特定した画面を介して適用される機能を特定する。例えば、情報提供装置10は、特定した画面ごとに、その画面上に配置されたオブジェクトの種別や画面上において適用可能な操作の内容に基づいて、その画面で提供される機能の特定を行う。ここで、各画面で提供される機能の特定を行う場合、情報提供装置10は、スクリーンモデルを用いて、アプリケーションのドメインと、各画面の特徴とに基づいて、アプリケーションが提供する機能の特定を行う。
【0065】
例えば、情報提供装置10は、アプリケーションのドメインと、そのアプリケーションが表示する画面のうちある画面の特徴(例えば、オブジェクトの種類、数、外観、その画面で実行可能な各種の操作等)とを示す情報を入力した際い、その画面で提供される機能を示す情報を出力するように学習が行われたモデルをスクリーンモデルとして保持する。そして、情報提供装置10は、スクリーンモデルに、試験対象となるアプリケーションのドメインと、アプリケーションが表示する画面の特徴とを示す情報を入力することで、その画面で提供される機能を特定(推定)する。
【0066】
続いて、情報提供装置10は、操作データベースと組合わせデータベースとを参照し、特定した機能を発揮させるための操作を組合わせた組合わせ候補を生成・取得する。例えば、操作データベースには、アプリケーションが発揮する機能と、その機能を発揮させるために利用者が行う1つ又は複数の操作とが対応付けて登録されている。情報提供装置10は、操作データベースを参照し、特定した機能と対応付けられた操作を特定する。そして、情報提供装置10は、特定した操作をランダムな順序でランダムな数だけ組合わせた組合わせ候補を所定の数だけ生成する。
【0067】
例えば、操作データベースには、「ログイン」という機能に対して、「ユーザIDの入力」、「パスワードの入力」、「ログインボタンをクリック」といった3つの操作が対応付けて操作データベースに登録されているものとする。このような場合、情報提供装置10は、「ログイン」に対応する組合わせ候補として、「ユーザIDの入力」、「ユーザIDの入力」、「ユーザIDの入力」というように同一の操作を所定の数だけ繰り返す組合わせ候補や、「ユーザIDの入力」、「ログインボタンをクリック」というように、一部の操作を行わない組合わせの候補、その他実行する順番を変更した組合わせの候補や、実行する操作の数が異なる複数の組合わせの候補等を生成する。なお、情報提供装置10は、例えば、ランダムに10個以内の操作を組合わせた組合わせの候補を生成してもよい。
【0068】
また、組合わせデータベースには、後述する処理により生成された組合わせ情報が機能と対応付けて登録されている。情報提供装置10は、組合わせデータベースを参照し、試験対象となるアプリケーションが発揮する機能として特定した機能と対応付けられた組合わせ情報を組合わせ候補として取得する。
【0069】
続いて、情報提供装置10は、組合わせ候補ごとに、機能が発揮されるまでのステップ数を計数する。例えば、情報提供装置10は、試験対象となる画面において、各組合わせ候補に含まれる操作を実行し、画面が他の画面に遷移するまでに機能が適切に発揮されたか否かを判定するとともに、画面が他の画面に遷移するまでに実行された操作の数をステップ数として係数する。なお、かかるステップ数の係数は、フィットネスカリキュレーションと換言される場合がある。
【0070】
続いて、情報提供装置10は、所定の回数処理をループしたか否かを判定する。そして、情報提供装置10は、所定の回数処理をループしていない場合、機能が発揮されたと判定した組合わせ候補の中から親となる組合わせ候補の組を選択する。そして、情報提供装置10は、親として選択された組合わせ候補に含まれる操作をランダムに組合わせた新たな組合わせ候補を生成する。また、情報提供装置10は、新たに生成した組合わせ候補に対して、ランダムに操作を追加もしくは変更した新な組合わせ候補を生成する。そして、情報提供装置10は、組合わせ候補ごとに機能が適切に発揮されたか否か、機能が発揮されるまでのステップ数の係数を再度実行する。
【0071】
すなわち、情報提供装置10は、組合わせ候補ごとに、機能が発揮されるまでのステップの係数、操作をクロスオーバーさせた新たな組合わせ候補の生成、および、操作をミューテーションさせた組合わせ候補の生成を繰り返し実行する。このような処理を行うことで、情報提供装置10は、試験対象となるアプリケーションの画面ごとに、様々な操作を組合わせた組合わせ候補を生成することができる。
【0072】
また、情報提供装置10は、処理を所定の回数ループさせた場合、ステップ数が所定の条件を満たす組合わせ候補を組合わせ情報として組合わせデータベースに登録する。例えば、情報提供装置10は、各組合わせ候補に含まれる操作を実行した際に機能を発揮するまでのステップ数の分布を特定し、特定した分布に基づいて、ステップ数が所定の条件を満たす組合わせ候補を登録対象とする。この際、情報提供装置10は、ステップ数が少ない組合わせ候補を優先して選択するのではなく、ある程度ステップ数が多い組合わせ候補を選択するようにしてもよい。
【0073】
そして、情報提供装置10は、組合わせデータベースに登録された組合わせ情報から、操作の内容を自然言語で示した操作情報を生成する。例えば、情報提供装置10は、組合わせ情報に含まれる各操作を特定し、特定した操作を示す自然言語を操作データベースから特定する。そして、情報提供装置10は、特定した自然言語に基づいて、操作情報が示す操作の組合わせを自然言語で示した操作情報を生成する。
【0074】
〔1−8.適用処理の流れの一例について〕
続いて、
図3を用いて、情報提供装置10が実行する適用処理の実装例について説明する。
図3は、実施形態に係る情報提供装置が実行する適用処理の実装例を示す図である。ここで、情報提供装置10は、情報提供装置10が提供する操作情報以外にも、アプリケーションが発揮する機能のうち、試験対象となる機能を自然言語で示す情報から、適用情報を生成する機能を有する。そこで、
図3に示す例では、試験対象となる機能を自然言語で示す情報から、適用情報を生成する機能の流れについて記載した。情報提供装置10は、このような機能の一部を用いて、操作情報から適用情報を生成し、試験を実行することとなる。
【0075】
例えば、情報提供装置10は、操作情報となる自然言語を操作者端末300から取得する。例えば、情報提供装置10は、「ログインをしたらトップ画面が表示される」といった試験におけるアプリケーションの機能や、その機能が提供された際における結果を示す情報を取得する。
【0076】
ここで、「ログイン」とは、例えば、SNS等、端末装置200や端末装置200が実行するアプリケーションを介して提供されるサービスを構成するサービス、すなわち、構成サービスであって、利用者が所定の操作を行った際に提供されるサービスであるといえる。このような構成サービスには、例えば、「ログイン」のみならず、利用者が投稿する各種投稿情報の受付や、QRコードを用いた支払においてQRコードを撮影するための機能等が含まれることとなる。
【0077】
このような場合、情報提供装置10は、抽出ユニットを用いて、自然言語に含まれる単語のうち、端末装置200において行われる行動や、その行動が行われた際に生じる結果を示す単語を抽出し、抽出した単語をまとめた特徴情報を生成する。すなわち、情報提供装置10は、操作情報から、利用者の行動を示す単語を行動ごとに抽出する。
【0078】
例えば、情報提供装置10は、「ログインをしたらトップコンテンツが表示される」といった操作情報から「ログイン」といった利用者の行動(すなわち、操作対象となる行動)や、「トップコンテンツが表示」といった、行動が行われた際における端末装置200の状態(すなわち、行動が行われた結果)を示す単語を抽出する。そして、情報提供装置10は、抽出した単語を示す特徴情報を生成する。なお、このような処理は、例えば、CucumberやTurnipといったGherkinと呼ばれるテスト記述言語フォーマットに関する各種の技術が採用可能である。
【0079】
続いて、情報提供装置10は、ドライバユニットを用いて、自然言語をデバイス用コマンドに変換するために使用されるステップ情報(ステップ関数)と、コマンドの送信前に対象をポーリングすることにより、ステップ関数をサポートするために使用されるアシスタント情報(アシスタント関数)とを生成する。
【0080】
例えば、情報提供装置10は、ステップ情報を生成する場合、特徴情報から、端末装置200において生じる操作の内容や操作の順番、操作が行われた際の結果等を特定する。換言すると、情報提供装置10は、利用者の行動を、操作対象となる端末装置200等のハードウェアや、ハードウェアにおいて各種実行させているソフトウェアに対する操作へと翻訳する処理を実行する。
【0081】
例えば、情報提供装置10は、特徴情報が「ログイン」という行動を示す場合、1番目に実行する「ログインコンテンツの表示」、2番目に実行する「ユーザIDの入力」、3番目に実行する「パスワードの入力」、および4番目に実行する「ログインボタンの押下」といった複数の操作と各操作の順番とを示すステップ情報(ステップ関数)を生成する。すなわち、情報提供装置10は、「ログイン」単語が示す行動が行われる場合に端末装置200に対して行われる各種操作や各操作が行われる順序を特定し、特定した操作や順序を示すステップ情報を生成する。
【0082】
また、情報提供装置10は、特徴情報に「トップコンテンツが表示」といった行動の結果が含まれている場合、このような結果が生じたか否かを判定するためのアシスタント情報(アシスタント関数)を生成する。例えば、情報提供装置10は、「トップ画面が表示」といった行動の結果が含まれる場合、「トップコンテンツが表示されたか否かを判定する」といった処理を示すアシスタント情報を生成する。なお、情報提供装置10は、例えば、ステップ情報が示す各種操作が行われた際に生じる所定の結果が生じているか否かを判定するためのアシスタント情報を生成してもよい。例えば、情報提供装置10は、ステップ情報が「ログインコンテンツの表示」といった操作を含む場合は、「ログインコンテンツが表示されたか否かを判定する」といった処理を示すアシスタント情報を生成してもよい。
【0083】
すなわち、情報提供装置10は、自然言語で記述された操作情報に基づいて、操作情報が示す行動を実現するための各種の操作や操作の順序を示すステップ情報を生成する。また、情報提供装置10は、各ステップ情報が示す操作が行われた際に生じる結果が実際に生じているか否かを判定するために行われる処理の内容を示すアシスタント情報を生成する。
【0084】
なお、ステップ情報やアシスタント情報は、対象となる端末装置200が実行するOSの種別やアプリケーションの種別、若しくはこれらの組合わせごとに生成される。このため、ドライバユニットは、操作情報から生成された特徴情報が示すユーザアクション(行動)において生じる各種の入力を取得するとともに、ユーザアクションの対象となるデバイスやアプリケーション、操作対象となる要素の識別を行う。そして、ドライバユニットは、識別結果に基づいて、ステップ情報の生成を行う。
【0085】
同様に、情報提供装置10は、ステップ情報が示す各操作が行われたことを確実にするために定期的な間隔で、対象の状態を収集する(ポーリングおよびクエリする)ためのアシスタント情報を生成する。より詳細には、情報提供装置10は、各対象ごとに、ステップ情報が示す操作が行われた際に生じる対象の状態を収集し、収集した状態が所定の条件を満たすか否かを判定するためのアシスタント情報を生成する。換言すると、アシスタント情報は、ステップ情報が示すある操作が行われた結果が適正であるかを判定し、適正であると判定された場合に、ステップ情報が示す次の操作を行わせるための条件情報と見做すことができる。
【0086】
続いて、情報提供装置10は、生成ユニットを用いて、ステップ情報およびアシスタント情報が示す操作や各種の判定を対象に行わせるための適用情報を生成する。換言すると、情報提供装置10は、抽出ユニットにより抽出された単語が示す行動が行われる場合に端末装置200に対して行われる操作を適用するための適用情報を生成する。
【0087】
このような生成ユニットは、例えば、アッピウム等、各種の端末装置200やアプリケーションの自動テストを行うための各種フレームワークにより実現可能である。より具体的には、情報提供装置10は、ステップ情報が示す各操作をステップ情報が示す順番で対象に適用するとともに、アシスタント情報が示す条件に従って各操作の結果が適切であるかを判定させるためのスクリプトを生成する。
【0088】
このようにして生成されたスクリプトは、「ログイン」等の構成サービスを提供する際に行われうる利用者の行動、すなわち、構成サービスと対応する操作を端末装置200に適用させるためのスクリプトである。このように、情報提供装置10は、所定の対象が提供するサービスを構成する構成サービスであって、利用者が所定の操作を行った際に提供される構成サービスを自然言語で示す行動情報を取得すると、取得した行動情報から、行動情報が示す構成サービスと対応する所定の操作を前記対象に対して適用するための適用情報を生成することとなる。
【0089】
そして、情報提供装置10は、適用情報を、対象となる端末装置200へと出力する。例えば、情報提供装置10は、所定の情報処理装置内で再現された仮想的な端末装置ETや、スマートフォン等の端末装置RT、クラウド上に存在する各種の端末装置CTに対して、各端末装置200ごとに生成された適用情報を送信する。この結果、情報提供装置10は、自然言語で記述された操作情報が示す行動が行われた場合の、端末装置200の動作を試験することができる。
【0090】
なお、上述した例において、ドライバユニットは、抽出ユニットと生成ユニットとの組合わせごとにされればよい。例えば、ドライバユニットは、実装された抽出ユニットが採用するフォーマットのテスト記述言語から、生成ユニットが識別可能な形式のステップ情報やアシスタント情報を生成すればよい。このようなドライバユニットは、例えば、抽出ユニットにより生成されるテスト記述言語が示す行動と、その行動を実現するための操作内容や操作順序とを対応付けた辞書データや、各操作と、各操作が行われた結果が適正であるかを判定するための条件とを対応付けた辞書データにより、ルールベースで動作する任意のプログラムが採用可能である。
【0091】
例えば、ドライバユニットは、特徴情報が「ログイン」を示す場合、辞書データを参照し、「ログイン」と対応付けられた各操作「ログインコンテンツの表示」、「ユーザIDの入力」、「パスワードの入力」、および「ログインボタンの押下」を特定する。そして、ドライバユニットは、特定した各処理を端末装置200に実行させるための適用情報を生成ユニットに生成させるためのステップ情報を生成すればよい。また、ドライバユニットは、辞書データを参照し、特定した各操作と対応付けられた条件を特定する。そして、ドライバユニットは、特定した条件を満たすか否かを端末装置200に実行させるための適用情報を生成ユニットに生成させるためのアシスタント情報を生成すればよい。このような処理を行うプログラムであれば、情報提供装置10は、任意のプログラムをドライバユニットとして採用可能である。
【0092】
なお、情報提供装置10は、操作情報を受け付けた場合、ドライバユニットを用いて、操作情報が自然言語で示す各操作を示すステップ情報やアシスタント情報の生成を行う。そして、情報提供装置10は、生成したステップ情報やアシスタント情報から、生成ユニットを用いて、適用情報の生成を行う。このような処理の結果、情報提供装置10は、様々な操作内容をテストケースとして、各端末装置200に適用することができる。
【0093】
〔1−9.生成処理のバリエーションについて〕
上述した説明では、情報提供装置10が実行する生成処理の一例について記載した。しかしながら、実施形態は、これに限定されるものではない。以下、情報提供装置10が実行する生成処理のバリエーションについて説明する。
【0094】
〔1−9−1.スクリーンモデルのバリエーションについて〕
上述した例では、情報提供装置10は、ドメインモデルを用いてアプリケーションのドメインを特定し、特定したドメインと画面の特徴とに基づいて、その画面で提供される機能をスクリーンモデルにより特定した。しかしながら、実施形態は、これに限定されるものではない。
【0095】
例えば、情報提供装置10は、ドメインの推定を行わずともよい。例えば、情報提供装置10は、画面上に表示される各種テキストの内容やアプリケーションが適用するすべてのテキストの内容、および、画面上に表示されるオブジェクトの各種特徴から、直接的に機能の特定を行ってもよい。また、情報提供装置10は、オブジェクトの位置や色彩といった表示時における外観の特徴に基づいて、アプリケーションがある画面上で提供する機能の特定を行ってもよい。なお、このような処理は、例えば、各種テキストやオブジェクトの外観を示す情報等を入力情報としてスクリーンモデルに特徴を学習させることで実現可能である。
【0096】
また、情報提供装置10は、例えば、画面そのもの(例えば、画面をキャプチャした各種の画像データ)や、画面を構成するコード等から、その画面で提供される機能を特定してもよい。このような処理は、例えば、画像データやコードを入力情報としてスクリーンモデルに特徴を学習させることで実現可能である。
【0097】
また、情報提供装置10は、画面上に表示されるテキストの内容や、画面として表示されるコンテンツのタイトル、コードに含まれる非表示のテキスト等に基づいて、その画面を介して提供される機能の特定を行ってもよい。
【0098】
また、情報提供装置10は、アプリケーションが各画面を表示させる順序に基づいて、アプリケーションが発揮する機能を特定してもよい。例えば、情報提供装置10は、ある画面がアプリケーションの起動時に表示される画面であり、かつ、アプリケーションのドメインが認証を要するサービスのドメインである場合、かかる画面で提供される機能がログインであると推定してもよい。このような処理を実行する場合、例えば、情報提供装置10は、画面が表示される順序を示す情報を入力情報としてスクリーンモデルに特徴を学習させることで実現可能である。
【0099】
〔1−9−2.ドメインモデルのバリエーションについて〕
上述した例では、情報提供装置10は、アプリケーションが表示させるテキストの内容に基づいて、アプリケーションのドメインを特定した。しかしながら、実施形態は、これに限定されるものではない。
【0100】
例えば、決済サービスを提供するアプリケーションは、決済額を入力するためのコンテンツやQRコードを撮影するためのコンテンツ等を表示する場合がある。一方、音楽コンテンツを提供するアプリケーションは、再生ボタンや一時停止ボタン等のコンテンツを表示する場合がある。このように、各種のアプリケーションは、ドメインに応じて異なるコンテンツを画面上に表示することとなる。
【0101】
このため、情報提供装置10は、操作対象が所定の端末装置に対して表示させる画面に含まれるオブジェクトに基づいて、操作対象が提供するサービスの種別、すなわちドメインを特定してもよい。例えば、情報提供装置10は、アプリケーションを解析し、画面上に表示される各種のオブジェクトに基づいて、アプリケーションがどのドメインに属するアプリケーションであるかを特定してもよい。
【0102】
より具体的には、情報提供装置10は、各画像におけるテキストの内容、テキスト等の各種オブジェクトの量、オブジェクトの種類等に基づいて、操作対象が提供するサービスの種別を特定する。例えば、情報提供装置10は、あるアプリケーションが表示するコンテンツのうち、音楽再生に関するオブジェクトよりも、支払に関するオブジェクトの量の方が多い場合は、アプリケーションが決済サービスを提供するアプリケーションであると特定してもよい。
【0103】
すなわち、情報提供装置10は、アプリケーションが提供する各画面の各種特徴から、そのアプリケーションのドメインを特定するとともに、特定したドメインと所定の画面上における特徴とに基づいて、その画面上で提供される機能を特定するのであれば、任意の特徴に基づいて、ドメインの特定や機能の特定を行ってよい。
【0104】
〔1−9−3.複数サービスを提供するアプリケーションについて〕
ここで、スーパーアプリ等と呼ばれるアプリケーションは、単一のサービスのみならず、複数のサービスを提供する場合がある。しかしながら、このようなアプリケーションは、単一のアプリケーションプログラムによりサービスを提供するのではなく、主となるアプリケーションがミニアプリと呼ばれる複数のアプリケーションを呼び出して、各種サービスを提供する場合が多い。そこで、情報提供装置10は、スーパーアプリの動作確認を行う場合、スーパーアプリを構成するミニアプリごとに、アプリケーションが提供するサービスのドメインを特定することとなる。
【0105】
なお、情報提供装置10は、ドメインと対応するテキストやオブジェクトの量に基づいて、アプリケーションのドメインを特定した場合、どのアプリケーションが提供する複数のサービスのうち主となるサービスのドメインを特定することができる。
【0106】
〔1−9−4.操作内容について〕
上述した例では、ログインが行われた場合の操作内容の一例について記載した。しかしながら、実施形態は、これに限定されるものではない。例えば、情報提供装置10は、アプリケーションに対して適用可能な操作であれば、任意の操作を端末装置200に適用するための適用情報を生成してもよい。
【0107】
例えば、情報提供装置10は、ユーザIDの入力やパスワード等、各種のテキストを入力させるための適用情報を生成してもよい。このような入力は、例えば、「「ユーザID」というテキストが配置された入力フォームを選択」する操作、および「選択した入力フォームに「AAAAAA」を入力する」操作(「AAAAAA」は、予め設定された文字列)により実現される。ドライバユニットは、このような操作が予め登録された辞書データを用いることで、ユーザIDやパスワードといったテキストの入力を実現することができる。なお、このような入力する文字列は、情報提供装置10が設定してもよく、情報提供装置10が設定してもよい。例えば、情報提供装置10は、「AAAAAA」を入力する操作を含む操作情報を提供してもよい。
【0108】
なお、入力対象は、文字列に限定されるものではない。例えば、情報提供装置10は、文字列以外にも、音声や画像等、任意の種別の情報を入力させるための適用情報を生成してもよい。また、情報提供装置10も、音声や画像等、任意の種別の情報を入力させるための操作情報を生成してもよい。
【0109】
また、情報提供装置10は、情報の入力のみならず、任意の操作を適用するための操作情報を生成してもよい。例えば、情報提供装置10は、対象がスマートフォンである場合、タップ、ピンチイン、ピンチアウト、若しくはスライドといった各種の操作を適用するための操作情報を生成してもよい。例えば、情報提供装置10は、「画面を上方向にスライドさせる」といった操作内容を示す操作情報を生成してもよい。また、情報提供装置10は、対象がPCである場合、マウスのクリック、ダブルクリック、ドラッグ、ドロップ、キーボードの操作等を適用するための操作情報を生成してもよい。また、情報提供装置10は、端末装置200の傾きの変更や振動等といった端末装置200に関する各種物理的な操作を示す操作情報を生成してもよく、時刻や明るさを変化させる操作を示す操作情報を生成してもよい。
【0110】
また、情報提供装置10は、端末装置200が実行するソフトウェアにより表示される画面の中から、操作対象となるオブジェクトを特定し、特定したオブジェクトに対する操作を示す操作情報を生成してもよい。例えば、情報提供装置10は、端末装置200が表示したログインコンテンツに配置されたオブジェクトの中から、ユーザIDを入力するための入力フォームを特定する操作を行わせ、その後、特定した入力フォームに所定のユーザIDを入力させるための操作を示す操作情報を生成してもよい。
【0111】
上述した操作以外にも、情報提供装置10は、任意の操作を適用するための操作情報を生成してもよい。このような操作の具体的な内容は、操作内容が操作データベースに機能と対応付けられて登録されているのであれば、任意の内容の操作が可能である。
【0112】
〔1−9−5.条件について〕
また、情報提供装置10は、ステップ情報が示す操作が行われたか否かを適切に判定することができるのであれば、任意の内容の条件が満たされたか否かを判定させるための適用情報を生成してよい。例えば、情報提供装置10は、コンテンツが変化したか否か、所定のウェブコンテンツが表示されたか否か、ウェブページのステータス、画面上に表示された内容、端末装置200が有するバイブレーションユニットが変化したか否か、音が出力されたか否か等、任意の内容の条件が満たされたか否かを判定されるための適用情報を生成してよい。
【0113】
〔1−9−6.操作情報の言語について〕
ここで、情報提供装置10は、情報提供装置10が識別可能であり、かつ、ドライバユニットが用いる辞書データに登録がなされている言語であれば、任意の自然言語により生成された操作情報の生成を行ってよい。例えば、情報提供装置10は、日本語、英語、ドイツ語、フランス語、中国語等、任意の言語で記述された操作情報を生成してもよい。
【0114】
なお、例えば、情報提供装置10は、端末装置200で用いられる言語とは異なる言語により記述された操作情報から、適用情報の生成を行ってもよい。例えば、情報提供装置10は、端末装置201が日本語のコンテンツを表示し、端末装置202が英語のコンテンツを表示し、端末装置203がドイツ語のコンテンツを表示する際に、日本語で「ログインする」といった内容の操作情報を受付けたものとする。このような場合、情報提供装置10は、「ログイン」という行動を実現するために必要な操作であって、各端末装置200が基準として用いる言語に対応する内容の操作を端末装置200ごとに特定し、特定した操作を適用するための適用情報を生成すればよい。
【0115】
例えば、情報提供装置10は、端末装置201に対しては、日本語で「ユーザID」と表示された入力フォームを選択してユーザIDを入力させる適用情報を生成し、端末装置202に対しては、英語で「ユーザID」と表示された入力フォームを選択してユーザIDを入力させる適用情報を生成し、端末装置203に対しては、ドイツ語で「ユーザID」と表示された入力フォームを選択してユーザIDを入力させる適用情報を生成すればよい。
【0116】
〔1−9−7.対象について〕
ここで、情報提供装置10は、スマートフォン等の端末装置200以外にも、クラウド上の端末装置CTや所定の情報処理装置上でエミュレートされる端末装置ET以外にも、任意の対象に対し、適用される操作の組合わせを示す操作情報を生成してよい。例えば、情報提供装置10は、PCやサーバ装置、各種センサやデジタルサイネージといった実態を有する装置(所謂ハードウェア)を対象とし、これら対象に対して利用者が所定の行動を行う際に入力される操作をしめす操作情報を生成してよい。また、情報提供装置10は、各種の仮想マシンやPC上で実行されるOSやアプリケーション等、各種のソフトウェアに対する操作を示す操作情報を生成してよい。また、情報提供装置10は、仮想的な端末装置ETが現実に存在していた場合に、その端末装置ETに対して利用者が行動を行う際に入力される操作を示す操作情報を生成してよい。
【0117】
また、対象となるアプリケーションは、同種のアプリケーションであってもよく、異なるアプリケーションであってもよい。例えば、端末装置201は、対象としてSNSのサービスを受けるための第1アプリケーションを実行し、端末装置202は、第1アプリケーションとは異なるサービスを受けるための第2アプリケーションを実行し、端末装置203は、端末装置203を介して各種の代金を決済するための第3アプリケーションを実行しているものとする。また、第1アプリケーション〜第3アプリケーションは、それぞれ表示態様や機能が異なるものの、「ログインを行う」という利用者の行動を受付けることができるものであるものとする。
【0118】
このように、各端末装置200が実行するアプリケーションの種別が異なるものであっても、操作情報が示す行動が、各アプリケーションにおいて実行可能な利用者の行動を示す場合、情報提供装置10は、自然言語で操作を示す操作情報を生成することで、同時に各端末装置200のアプリケーションをテストすることができる。また、情報提供装置10は、各端末装置200の種別がそれぞれ異なる場合であっても、各アプリケーションが提供する構成サービスの提供時に実行可能な利用者の行動を示す操作情報を生成する。このため、情報提供装置10は、端末装置200の種別や台数に依存せず、1以上の異なる種別の端末や、1以上の異なる種別のアプリケーションが任意に組み合わせられている場合であっても、同時に試験を実現することができる。
【0119】
より詳細な例について説明する。例えば、情報提供装置10は、「ユーザIDとパスワードとを入力し、ログインボタンを押下する」という操作情報を生成する。ここで、第1アプリケーションにおいて利用者がログインする際に、異なる画面上でユーザIDとパスワードとを入力する場合、情報提供装置10は、第1アプリケーションにおいてログインを行うための操作として、「ログイン画面の表示」、「ユーザIDの入力」、「パスワード入力ボタンの押下」、「パスワードの入力」、「ログインボタンの押下」といった操作を特定する。一方、第2アプリケーションにおいて利用者がログインする際に、同一画面上でユーザIDとパスワードとを入力することができる場合、情報提供装置10は、第2アプリケーションにおいてログインを行うための操作として、「ログイン画面の表示」、「ユーザIDの入力」、「パスワードの入力」、「ログインボタンの押下」といった操作を特定する。また、第3アプリケーションにおいて利用者がログインする際に、FIDO(Fast Identity Online)等を用いたログインが可能である場合、情報提供装置10は、第3アプリケーションにおいてログインを行うための操作として、「ログインボタンの押下」といった操作を特定する。そして、情報提供装置10は、各操作を適用するための適用情報を各アプリケーションごとに生成し、生成した適用情報を出力すればよい。
【0120】
また、情報提供装置10は、各アプリケーションごとに異なる順序で操作を適用させる適用情報を生成してもよく、アプリケーションごとに異なるアシスタント情報を生成してもよい。すなわち、情報提供装置10は、それぞれ異なるアプリケーション等の対象について、利用者が共通してある行動を行った際に適用される操作の内容や順序、それら操作の結果を特定し、特定した内容の操作を特定した順番で適用するとともに、これらの操作が適切に行うかを判定させる適用情報を生成するのであれば、任意の内容の適用情報を生成してよい。
【0121】
なお、このようなアプリケーションの種別は、単に異なる機能を有するアプリケーションのみならず、バージョン違いのアプリケーションや、同一のサービスを提供するものの異なるOS上で動作するアプリケーション、言語が異なるアプリケーション等を含む概念である。すなわち、情報提供装置10は、対象ごとに異なる操作を適用するための提供情報を生成すればよい。また、情報提供装置10は、複数の対象に、同一種別のアプリケーションが含まれる場合は、これら同一種別のアプリケーションに対して同一の適用情報を出力してもよい。
【0122】
〔1−10.実施形態の効果の一例について〕
上述したように、情報提供装置10は、各種のアプリケーション等、利用者の操作対象が発揮する機能を特定する。そして、情報提供装置10は、特定された機能に応じて、操作対象に対して行われる利用者の操作の組合わせを決定し、決定された操作の組合わせを自然言語で表した操作情報を生成する。このような処理の結果、情報提供装置10は、アプリケーションが発揮する機能に応じて、その機能の試験や確認を行う際の操作内容、すなわち、テストケースを自動的に生成することができる。このため、情報提供装置10は、操作対象の試験等を容易にすることができる。
【0123】
また、情報提供装置10は、自然言語で操作内容を示した操作情報を生成するので、例えば、試験対象となるアプリケーションにバージョンが複数存在する場合であっても、これらアプリケーションに対して行うべき操作の組合わせを共通して示す操作情報を生成することができる。例えば、情報提供装置10は、アプリケーションのバージョンごとに操作情報を生成せずとも、バージョンが異なるが同一のサービスを提供するアプリケーションの試験内容を共通して示す単一の操作情報を生成することができる。また、情報提供装置10は、自然言語で操作内容を示す操作情報を生成するので、どのような操作においてアプリケーションが適切に機能を発揮できないかを容易に識別させることができる。
【0124】
また、情報提供装置10は、アプリケーションのドメインや機能に応じて、操作情報を画面ごとに生成するので、アプリケーションが新規なアプリケーションである場合や、アプリケーションに新規な画面が追加される場合、アプリケーションの画面レイアウトに変更があった場合にも、適切なテストケースを示す操作情報を生成することができる。また、情報提供装置10は、自然言語でテストケースを自動的に生成するので、例えば、想定していなかった利用者の操作を容易に識別させることができ、このような操作に対する対応を実現させることができる。また、情報提供装置10は、人手を介さずに、操作情報を生成することができるので、人手により生じるミスを防ぐことができる。
【0125】
〔2.情報提供装置の構成〕
以下、上記した情報提供装置10が有する機能構成の一例について説明する。
図4は、実施形態に係る情報提供装置の構成例を示す図である。
図4に示すように、情報提供装置10は、通信部20、記憶部30、および制御部40を有する。
【0126】
通信部20は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部20は、ネットワークNと有線または無線で接続され、情報提供装置10、端末装置200、および操作者端末300との間で情報の送受信を行う。
【0127】
記憶部30は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部30は、操作データベース31および組合わせデータベース32を記憶する。
【0128】
操作データベース31には、操作対象が発揮する各種の機能と、その機能を発揮させるために行われる利用者の操作とが対応付けて登録されている。例えば、
図5は、実施形態に係る操作データベースに登録される情報の一例を示す図である。
図5に示す例では、操作データベース31には、ドメイン、対応機能、操作内容、および自然言語表現といった項目を有する情報が登録されている。なお、
図5に示す情報以外にも、操作データベース31には、操作対象に対して適用可能な利用者の操作に関する情報が登録されていてもよい。
【0129】
例えば、ドメインとは、操作対象が利用者に対して提供するサービスの種別を示す情報である。また、対応機能とは、対応付けられたドメインに属する操作対象が提供する機能であって、所定の画面を介して提供される機能を示す情報である。また、操作内容とは、対応付けられた機能を発揮する画面において利用者が行うことができる操作の内容を示す情報である。また、自然言語表現とは、対応付けられた操作を自然言語で示す情報である。
【0130】
例えば、
図5に示す例では、ドメイン「決済」、対応機能「ログイン」、操作内容「操作#1−1」、および自然言語表現「クリック」が対応付けて登録されている。このような情報は、提供するサービスが「決済」である操作対象が、ある画面において「ログイン」の機能を発揮しており、かかる画面において利用者が行うことができる操作が「操作#1−1」であり、かかる操作の自然言語表現が「クリック」である旨を示す。なお、
図5に示す例では、対応機能「ログイン」に対し、「操作#1−1」や「操作#1−2」といった複数の操作が対応付けられている。かかる情報は、「ログイン」を行う画面において、「操作#1−1」(例えば、クリック)や「操作#1−2」(例えば、ユーザID入力)といった複数の操作をおこなうことができる旨を示す。
【0131】
なお、
図5に示す例では「操作#1−1」といった概念的な値を記載したが、実際には、操作内容を示す各種の情報(例えば、インスタンス等)が登録されることとなる。また、操作データベース31には、例えば、スクロール量やクリックの回数、ユーザIDやパスワードを構成する文字列等がさらに登録されていてもよい。
【0132】
組合わせデータベース32には、操作の組合わせを示す情報、すなわち操作情報が登録される。例えば、
図6は、実施形態に係る組合わせデータベースに登録される情報の一例を示す図である。
図6に示す例では、組合わせデータベース32には、対応ドメイン、対応機能および操作組合わせが対応付けて登録されている。なお、組合わせデータベース32には、
図6に示す情報以外にも、操作の組合わせに関する各種の情報が登録されていてもよい。
【0133】
ここで、操作組合わせとは、操作対象の機能に応じて決定された複数の操作を示す情報である。また、対応機能とは、操作組合わせが示す操作が、どの機能に対するテストケースであるかを示す情報である。また、対応ドメインとは、対応付けられた操作組合わせがどのドメインに属する操作対象のテストケースであるかを示す情報である。
【0134】
例えば、
図6に示す例では、対応ドメイン「決済」、対応機能「ログイン」および操作組合わせ「組合わせ#1」、「組合わせ#2」等が対応付けて登録されている。かかる情報は、「決済」に関するサービスを提供する操作対象の、「ログイン」の機能を提供する画面において行われるテストケースが「組合わせ#1」や「組合わせ#2」等が示す操作である旨を示す。なお、
図6に示す例では、「組合わせ#1」といった概念的な値を記載したが、実際には、複数の操作や各操作を行う順序を示す情報(例えば、インスタンス等)が登録されることとなる。
【0135】
図4に戻り、説明を続ける。制御部40は、例えば、コントローラ(controller)であり、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報提供装置10内部の記憶装置に記憶されている各種プログラム(通知プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部40は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
【0136】
図4に示すように、制御部40は、特定部41、決定部42、生成部43、および適用部44を有する。
【0137】
特定部41は、利用者の操作対象が発揮する機能を特定する。例えば、特定部41は、操作対象となるアプリケーションが所定の端末装置に対して表示させる画面に基づいて、その操作対象が発揮する機能を特定する。すなわち、特定部41は、画面を介して提供される機能を特定する。例えば、特定部41は、操作対象が提供するサービスの種別、すなわち、ドメインを特定する。そして、特定部41は、特定したドメインと、操作対象が提供する各画面上のオブジェクトに基づいて、操作対象が各画面上で提供する機能を画面ごとに特定する。
【0138】
例えば、特定部41は、操作対象が提供する各画面を特定し、特定した各画面上に配置された各種のオブジェクトを特定する。より具体的な例を挙げると、特定部41は、操作対象が提供するテキストを特定する。そして、特定部41は、テキストに含まれる各種の文言や各文言の量に基づいて、操作対象のドメインを特定する。例えば、特定部41は、「決済」に関する文言の量が他のドメインに関する文言の量よりも多い場合は、操作対象が属するドメインを「決済」であると特定する。
【0139】
続いて、特定部41は、各画面ごとに、画面に含まれる各種のオブジェクトの種別や量等、画面の特徴を特定する。そして、特定部41は、画面の特徴と、特定したドメインとに基づいて、操作対象がその画面上で提供する機能を特定する。例えば、特定部41は、ユーザIDを入力するウインドウやパスワードを入力するウインドウが画面上に配置されている場合、かかる画面で提供される機能が「ログイン」であると特定する。なお、特定部41は、画面の特徴とドメインとの関係性を学習したドメインモデル、および、画面の特徴とその画面上で提供される機能との関係性を学習したスクリーンモデルを用いて、上述した各種の機能を発揮してもよい。また、特定部41は、各画面が表示される順番に基づいて、その画面上で提供される機能を特定してもよい。
【0140】
決定部42は、特定された機能に応じて、操作対象に対して行われる利用者の操作の組合わせを決定する。例えば、決定部42は、機能と、操作対象にその機能を発揮させる際に行われる利用者の操作とを対応付けた操作データベース31を参照し、特定部41により特定された機能と対応する操作に基づいて、組合わせを決定する。
【0141】
例えば、決定部42は、操作データベース31を参照し、特定部41により特定されたドメインおよび機能と対応付けられた操作内容を特定する。そして、決定部42は、特定した各操作をランダムに組合わせた複数の組合わせ候補を決定する。例えば、決定部42は、特定部41によりドメイン「決済」と機能「ログイン」とが特定された場合、ドメイン「決済」および機能「ログイン」と対応付けられた操作内容「操作#1−1」、「操作#1−2」等を特定する。そして、決定部42は、「操作#1−1」や「操作#1−2」をランダムな数だけランダムな順序で組合わせた組合わせ候補を決定する。
【0142】
さらに、決定部42は、組合わせデータベース32を参照し、特定部41により特定されたドメイン「決済」と機能「ログイン」とに対応付けられた操作組合わせを組合わせ候補として取得する。そして、決定部42は、各組合わせ候補に基づいて、操作対象に対して行われる利用者の操作の組合わせを決定する。
【0143】
例えば、決定部42は、組合わせ候補ごとに、特定部41により特定された機能を発揮するか否かを判定し、機能を発揮するまでのステップ数を計数する。続いて、決定部42は、例えば、計数してステップ数が所定の条件を満たす組合わせ候補(例えば、ステップ数が最も少ない候補等)を親となる組合わせ候補として選択し、選択した組合わせ候補に含まれる操作を入れ替えた組合わせ候補を新たに決定する。なお、決定部42は、ランダムに親となる組合わせ候補を選択してもよい。さらに、決定部42は、ランダムに選択された組合わせ候補に含まれる操作のうちランダムに選択された操作をランダムに他の操作へと変更した組合わせ候補を新たに生成する。なお、決定部42は、例えば、ステップ数が所定の条件を満たす組合わせ候補に含まれる操作のうちランダムに選択された操作をランダムに他の操作へと変更した組合わせ候補を新たに生成してもよい。
【0144】
そして、決定部42は、各組合わせ候補が特定部41により特定された機能を発揮するか否かを判定し、機能を発揮するまでのステップ数を計数する。このような一連の処理を所定の条件が満たされるまで(例えば、所定回数、もしくは、各組合わせ候補のステップ数の分布が所定の条件を満たす迄)繰り返し実行することで、決定部42は、テストケースとして適切な操作の組合わせ候補を自動的に生成することができる。そして、決定部42は、生成した組合わせ候補を組合わせデータベース32に登録する。
【0145】
生成部43は、決定された操作の組合わせを自然言語で表した操作情報を生成する。例えば、生成部43は、操作対象が提供する画面ごとに、操作情報を生成する。例えば、生成部43は、操作情報の生成対象となる画面において提供される機能と、操作対象のドメインとに対応付けられた操作組合わせを組合わせデータベース32から取得する。続いて、生成部43は、各操作組合わせに含まれる各操作を示す自然言語表現を操作データベース31から取得する。そして、生成部43は、取得した自然言語表現と、操作組合わせに含まれる操作の順序とに応じて、操作組合わせが示す操作内容を自然言語で示す操作情報を操作組合わせごとに生成する。このような処理の結果、情報提供装置10は、テストケースとなる操作情報を自動的に生成することができる。
【0146】
適用部44は、生成部43によって生成された操作情報に従って、対象の試験を行う。例えば、適用部44は、操作情報を取得すると、
図3に例示した処理を実行することで、操作情報と対象との組み合わせごとに適用情報を生成し、生成した適用情報を端末装置200に適用することで、試験を実現する。なお、適用部44が実行する適用処理については、上述した各種の処理が適用可能であるものとし、詳細な説明を省略する。
【0147】
〔3.処理手順〕
次に、
図7を用いて、実施形態に係る情報提供装置10による生成処理の手順について説明する。
図7は、実施形態に係る生成処理の流れの一例を示すフローチャートである。
【0148】
例えば、情報提供装置10は、操作対象となるアプリケーションを受付けたか否かを判定する(ステップS101)。そして、情報提供装置10は、アプリケーションを受付けていない場合は(ステップS101:No)、受付けるまで待機する(ステップS101)。一方、情報提供装置10は、アプリケーションを受付けた場合は(ステップS101:Yes)、アプリケーションが発揮する機能を特定する(ステップS102)。
【0149】
また、情報提供装置10は、特定した機能に基づいて、アプリケーションに対して行われる利用者の操作の組合わせを決定する(ステップS103)。そして、情報提供装置10は、決定した組合わせを自然言語で示す操作情報を生成し(ステップS104)、処理を終了する。
【0150】
〔4.変形例〕
上述した情報提供装置10は、上記実施形態以外にも種々の異なる形態にて実施されてもよい。そこで、以下では、情報提供装置10の他の実施形態について説明する。
【0151】
〔4−1.操作について〕
上述した例では、情報提供装置10は、ログインを受付けるアプリケーションの試験を行うための適用情報を生成した。しかしながら、実施形態は、これに限定されるものではない。
【0152】
例えば、情報提供装置10は、対象となる端末装置200やソフトウェアと関連する利用者の行動であれば、任意の行動が行われる際に入力される操作を特定し、特定した操作を組合わせた操作情報を生成してよい。例えば、情報提供装置10は、SNS等に対する所定の文字列や写真といったコンテンツの投稿や、ゲーム等に対する入力、動画の閲覧といった任意の行動が行われた際における操作について、操作情報の生成を受付けてもよい。また、情報提供装置10は、例えば、端末装置200の向きを変更する、端末装置200を振る、音量を変更する等、音声による各種操作の入力といったハードウェアに依存する各種の行動が行われる際の操作を示す操作情報の生成を行ってもよい。
【0153】
また、情報提供装置10は、任意のアプリケーションについての操作情報を生成してよい。例えば、情報提供装置10は、端末装置200を用いた各種の決済サービスを提供するアプリケーションについて、操作情報の生成を行ってもよい。例えば、決済サービスには、店舗に設置されたQRコード(登録商標)を読み取るとともに、決済額の入力を受付け、QRコードと対応する店舗の口座に対し、受付けた決済額の電子マネーを利用者の口座から送金するといったサービスが存在する。また、決済サービスには、利用者の口座やクレジットカードを識別するバーコードを表示し、表示したバーコードを店舗の端末が読み取ることで、利用者に対する課金を実現するものが存在する。
【0154】
情報提供装置10は、このような各種決済サービスに関するアプリケーションについて、操作情報の生成を行ってもよい。例えば、情報提供装置10は、「店舗#Aに対して100円支払う」といった操作情報を生成してもよい。また、情報提供装置10は、「店舗#AのQRコードを読み取る」操作、「決済額として100円」を入力する操作、および「支払ボタンを押下する操作」を組合わせた操作情報を生成してもよい。また、情報提供装置10は、決済額を様々な額に設定した操作情報を生成してもよい。すなわち、情報提供装置10は、操作そのものだけではなく、操作の内容を示すパラメータ(例えば、スクロール量や入力するテキストの内容、QRコードの内容や決済額等)を適宜変更した複数の操作情報を生成してもよい。
【0155】
また、情報提供装置10は、各利用者に対して発光される各種請求書に対応する支払を行わせるための操作を示す操作情報を生成してもよい。例えば、端末装置200にインストールされたアプリケーションには、請求書等に印刷されたバーコードをカメラで読み取ると、バーコードが示す支払先および支払額を特定し、特定した支払先の口座へ、特定した支払額を利用者の口座から送金する機能を有する場合がある。このような場合、情報提供装置10は、所定のバーコードの画像を生成し、「バーコードの画像を撮影した画像として読み出す」、「読み出した画像に撮影されているバーコードを識別する(スキャンする)」、「識別したバーコードが示す情報に基づいて、送金を行う」といった操作を実行させるための操作情報を生成してもよい。
【0156】
また、情報提供装置10は、「識別したバーコードから、送金金額と請求者とを検証する」といった操作を行わせるための操作情報を生成してもよい。例えば、情報提供装置10は、バーコードが示す支払先や額を示す文字列とバーコードとを配置した画像(すなわち、仮想的な請求書の画像)を生成し、「バーコードの画像を撮影した画像として読み出す」、「読み出した画像に撮影されているバーコードと、文字列と識別する」、「識別したバーコードが示す支払額と支払先とを識別する」、「識別した文字列が示す支払額と支払先とを識別する」、「バーコードが示す支払額および支払先と、文字列が示す支払額および支払先とが一致するか否かを判定する」、「各支払額および支払先が一致すると判定された場合に、送金を行う」といった一連の処理を実行させるための操作情報や、これらの操作をランダムに組合わせた操作情報を生成してもよい。
【0157】
また、情報提供装置10は、アプリケーションが、電子的な請求書に従った支払を実現することができる場合、このような機能を用いた支払の検証を行わせるための操作情報を生成してもよい。例えば、情報提供装置10は、「支払対象となる電子的な請求書のリストを表示させる」、「リストの中から支払対象となる請求書を選択する」、「選択した請求書に従って、送金を行う」といった操作を実行させるための操作情報等を生成してもよい。
【0158】
また、情報提供装置10は、各種権限の設定を行う操作や電話等の発信操作等を含む操作情報を生成してよい。このように、情報提供装置10は、対象において入力可能な操作であれば、任意の操作を行わせるための操作情報を生成してよい。さらに、情報提供装置10は、例えば、端末装置200とブルートゥース(登録商標)等で接続されたイヤホンや各種のウェアラブルデバイス等を制御するための操作を適用するための操作情報を生成してもよい。すなわち、情報提供装置10は、試験などの対象から操作可能な他の対象に対する操作を含む操作情報を生成してよい。
【0159】
〔4−2.目的について〕
ここで、情報提供装置10は、対象の試験以外にも、任意の目的で上述した操作情報の生成を行ってよい。例えば、各種の提携作業をソフトウェア型のロボットやAI(Artificial Intelligence)が代行、自動化するRPA(Robotic Process Automation)の技術が知られている。情報提供装置10は、このようなRPAの技術において、上述した生成処理を適用してもよい。また、情報提供装置10は、QAAS(Quality Assurance as a Service)を試験するために、各種ソフトウェアに対する操作情報を生成してもよい。より具体的には、情報提供装置10は、対象となるソフトウェアに対して行われる利用者の行動を示す操作情報を、各ソフトウェアが利用者に対して機能を提供するための画面や、機能を提供するフェーズごとに生成してもよい。すなわち、情報提供装置10は、ソフトウェアが機能を提供するフェーズごとに、提供される機能を特定し、特定した機能と対応する操作を組合わせた組合わせ情報を生成すればよい。
【0160】
例えば、情報提供装置10は、対象となる各ソフトウェアにおいて適用可能な操作(例えば、データ入力や関数入力、各種の操作等)を特定し、特定した操作を組合わせた操作情報を、対象となるソフトウェアごとに生成してもよい。また、情報提供装置10は、ある1つの行動を行わせるために複数のソフトウェアを強調させる必要がある場合、ソフトウェアごとに必要な操作を特定し、特定した操作を各ソフトウェアに対して適用させる操作情報を生成してもよい。
【0161】
例えば、情報提供装置10は、第1ソフトウェアに所定の操作を入力することで、第1データを作成させる操作情報を生成するとともに、第2ソフトウェアに対して第1データを読み込ませ、さらに第1データを用いた所定の処理を実行させるための操作を第2ソフトウェアに適用するための操作情報を生成してもよい。そして、情報提供装置10は、生成した操作情報を第1ソフトウェアや第2ソフトウェアに対して順に適用すればよい。
【0162】
このように、情報提供装置10は、対象における試験のみならず、対象に任意の処理を行わせるための操作を含む操作情報を生成してよい。また、情報提供装置10は、上述した目的以外にも、対象に対する操作をを示す操作情報を生成するのであれば、任意の目的について、適用情報を生成してよい。
【0163】
〔4−3.処理態様について〕
上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、逆に、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0164】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0165】
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組合わせることが可能である。
【0166】
〔4−4.プログラム〕
また、上述した実施形態に係る情報提供装置10は、例えば
図8に示すような構成のコンピュータ1000によって実現される。
図8は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力IF(Interface)1060、入力IF1070、ネットワークIF1080がバス1090により接続された形態を有する。
【0167】
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置1040は、RAM等、演算装置1030が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等により実現される。
【0168】
出力IF1060は、モニタやプリンタといった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、USB(Universal Serial Bus)やDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力IF1070は、マウス、キーボード、およびスキャナ等といった各種の入力装置1020から情報を受信するためのインタフェースであり、例えば、USB等により実現される。
【0169】
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置1020は、USBメモリ等の外付け記憶媒体であってもよい。
【0170】
ネットワークIF1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。
【0171】
演算装置1030は、出力IF1060や入力IF1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
【0172】
例えば、コンピュータ1000が情報提供装置10として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、制御部40の機能を実現する。
【0173】
〔5.効果〕
上述したように、情報提供装置10は、利用者の操作対象が発揮する機能を特定する。そして、情報提供装置10は、特定された機能に応じて、操作対象に対して行われる利用者の操作の組合わせを決定し、決定された操作の組合わせを自然言語で表した操作情報を生成する。このような処理の結果、情報提供装置10は、操作対象のテストケースを自動的に生成することができるので、任意の対象に対する試験を容易にすることができる。
【0174】
また、情報提供装置10は、操作対象となるアプリケーションが所定の端末装置に対して表示させる画面に基づいて、その操作対象が発揮する機能を特定する。すなわち、情報提供装置10は、画面を介して提供される機能を特定する。このため、情報提供装置10は、各画面ごとに提供される機能を試験するためのテストケースを自動的に生成することができる。
【0175】
例えば、情報提供装置10は、アプリケーションが各画面を表示させる順序に基づいて、そのアプリケーションが発揮する機能を特定する。また、情報提供装置10は、操作対象が提供するサービスの種別を特定し、特定されたサービスの種別に基づいて、その操作対象が発揮する機能を特定する。また、情報提供装置10は、特定されたサービスの種別とあらかじめ紐づけられた機能のうち、操作対象が発揮する機能を特定する。
【0176】
例えば、情報提供装置10は、操作対象が所定の端末装置に対して表示させる画面に含まれるオブジェクトに基づいて、操作対象が提供するサービスの種別を特定する。また、情報提供装置10は、操作対象が所定の端末装置に対して表示させる画面に含まれるオブジェクトの量に基づいて、操作対象が提供するサービスの種別を特定する。また、情報提供装置10は、オブジェクトとして、画面に含まれるテキストに基づいて、操作対象が提供するサービスの種別を特定する。このような処理の結果、情報提供装置10は、適切に操作対象が提供するサービスを特定するとともに、特定したサービスに基づいて、操作対象が発揮する機能を特定することができるので、適切にテストケースを生成することができる。
【0177】
また、情報提供装置10は、操作対象が有する特徴と、その操作対象が発揮する機能との関係性を学習したモデルを用いて、操作対象が発揮する機能を特定する。このため、情報提供装置10は、操作対象が新規なアプリケーション等であっても、その操作対象の機能を適切に特定することができる。
【0178】
また、情報提供装置10は、機能と、操作対象にその機能を発揮させる際に行われる利用者の操作とを対応付けたデータベースを参照し、特定された機能と対応する操作に基づいて、組合わせを決定する。例えば、情報提供装置10は、特定された機能と対応する操作と、その操作を行う順序とをランダムに組合わせることで、複数の組合わせ候補を決定し、決定した組合わせ候補に基づいて、操作対象に対して行われる利用者の操作の組合わせを決定する。また、情報提供装置10は、組合わせ候補ごとに、特定された機能を発揮するか否かを判定し、その機能を発揮すると判定された組合わせ候補に基づいて、組合わせを決定する。また、情報提供装置10は、特定された機能を発揮すると判定された組合わせ候補に含まれる操作に基づいて、新たな組合わせ候補を生成し、生成した組合わせ候補に基づいて、組合わせを決定する。また、情報提供装置10は、特定された機能を発揮すると判定された組合わせ候補に含まれる操作と、ランダムに選択された操作とに基づいて、新たな組合わせ候補を生成する。また、情報提供装置10は、組合わせ候補ごとに、特定部により特定された機能を発揮するか否かを判定する処理と、機能を発揮すると判定された組合わせ候補に含まれる操作に基づいて、新たな組合わせ候補を生成する処理と、その新たな組合わせ候補が特定部により特定された機能を発揮するか否かを判定する処理とを、所定の条件が満たされるまで繰り返し実行することで、組合わせを決定する。このような処理の結果、情報提供装置10は、様々な内容のテストケースを自動的に生成することができる。
【0179】
また、情報提供装置10は、組合わせ候補ごとに、特定部により特定された機能が発揮されるまでに実行された操作の数を計数し、組合わせ候補のうち、計数した行動の数が所定の条件を満たす組合わせ候補を、操作対象に対して行われる利用者の操作の組合わせとする。このため、情報提供装置10は、試験対象として最適な内容の操作の組わせをテストケースとすることができる。
【0180】
また、情報提供装置10は、操作の組合わせを特定部により特定された機能と対応付けて所定のデータベースに登録する。また、情報提供装置10は、特定された機能と対応付けられた操作の組合わせを組合わせ候補として所定のデータベースから読み出す。このような処理の結果、情報提供装置10は、類似する操作対象のテストケースが生成済みである場合、かかるテストケースを流用することができる。
【0181】
以上、本願の実施形態を図面に基づいて詳細に説明したが、これは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0182】
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。
【解決手段】本願に係る生成装置は、利用者の操作対象が発揮する機能を特定する特定部と、特定された機能に応じて、操作対象に対して行われる利用者の操作の組合わせを決定する決定部と、決定された操作の組合わせを自然言語で表した操作情報を生成する生成部とを有することを特徴とする。