以下に、本願に係る判定装置、判定方法および判定プログラムを実施するための形態(以下、「実施形態」と記載する。)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る判定装置、判定方法および判定プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
[実施形態]
〔1-1.情報提供装置の一例について〕
まず、図1を用いて、実施形態に係る判定装置の一例である情報提供装置10の一例について説明する。図1は、実施形態に係る情報提供装置の一例を示す図である。なお、図1では、情報提供装置10が実行する機能の一例として、各種の端末装置にインストールされたアプリケーションのデバッグを行うためにアプリケーションの試験を行うための操作情報を生成する処理の一例について記載した。なお、情報提供装置10は、後述するように、図1に示すような処理と平行し、試験においてアプリケーションが端末装置に表示される画面が適切な画面であるかを判定する判定処理を実行する。
なお、以下の説明では、図1~図3を用いて、生成処理により生成された操作情報により実現される処理の流れについて説明し、その後、試験において操作情報により実現される試験と平行に行われる試験であって、アプリケーションが表示される画面が適切な画面であるかを判定する試験、すなわち、判定処理の内容について説明する。
図1に示す情報提供装置10は、生成処理を実行する情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。例えば、情報提供装置10は、端末装置201~203がインストールしたOS(Operating System)や、OS上で動作する各種アプリケーション等といった各種ソフトウェアの動作を自動的に試験するための操作情報を生成する。なお、操作情報については、後述する。
なお、情報提供装置10は、上述した生成処理に加え、生成された操作情報に従って、端末装置201~203にインストールされたアプリケーションのテストを行う機能を有する。なお、このような機能は、情報提供装置10自体が実行する必要はなく、例えば、サーバ装置やクラウドシステム等により実現される他の情報処理装置(例えば、適用装置)により実現されてもよい。例えば、情報提供装置10は、端末装置201~203にインストールされた各種ソフトウェアの動作を自動的に試験する。
端末装置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において実行されるソフトウェアの動作を同時に試験することも可能である。
操作者端末300は、端末装置200の試験を所望する利用者、若しくは、試験を所望する利用者からの依頼を受けた操作者が利用する端末装置であり、サーバ装置やクラウドシステム、PC等の情報処理装置により実現される。
〔1-2.試験の流れの一例について〕
ここで、情報提供装置10が実行する生成処理を説明する前に、情報提供装置10が実行する試験の流れについて説明する。例えば、各端末装置200の動作確認や、ソフトウェアのデバッグを行う場合、各端末装置200に対して様々な処理を様々な順番で繰り返し入力し、誤った動作が行われないかを操作の度に判定することとなる。しかしながら、このような試験を人手で行った場合、手間がかかる。また、人手での試験では、誤った操作が行われてしまい、適切な試験が実現できない恐れがある。
そこで、情報提供装置10は、所定の対象に対して行われる利用者の行動、換言すると、アプリケーション等の所定の対象が提供する機能を自然言語で示す操作情報を取得する。例えば、アプリケーションが利用者に対してログインの機能を提供した場合、利用者は、その機能を発揮させることでログインといった行動を行うこととなる。また、アプリケーションが各種の決済機能を発揮するアプリケーションである場合、利用者は、アプリケーションが提供する決済機能を発揮させることで、決済といった行動を行うこととなる。そして、情報提供装置10は、取得した操作情報から、操作情報が示す行動が行われた際に対象に対して行われる操作を対象に対して適用するための適用情報を生成する。
例えば、情報提供装置10は、あるソフトウェアのログインが適切に行えるか否かの試験を行う場合、「ログインをする」といった、ログイン時における利用者の動作を自然言語で示す指示を取得する。このような場合、情報提供装置10は、操作対象となるソフトウェアにおいてログインを行うための操作を特定し、特定した操作をソフトウェア上で実現するための適用情報を生成する。
例えば、情報提供装置10は、「ログイン」という行動を行うために、「ログインを行うためのログインコンテンツを表示する」操作を行った後で、「ユーザIDを入力する」操作と「パスワードを入力する」操作を行い、さらに「ログインを行うためのログインボタンをタップする」操作が必要となる場合は、これら各操作を特定する。なお、このような行動を行うために必要な各種の操作の特定は、操作対象となるアプリケーションごとに生成された辞書データであって、想定される行動と、その行動が行われる際に行われる操作とを対応付けた辞書データを用いて、ルールベースにより特定される。
そして、情報提供装置10は、特定した各操作を端末装置200に適用するための適用情報を生成する。例えば、情報提供装置10は、端末装置200に対し、各種のタップ操作やテキストの入力操作を端末装置200上で再現するための各種公知技術(例えば、Appiumといった各種のUI(User Interface)のテスト自動化フレームワークの技術)を用いて、特定した各操作を端末装置200に対して行うための適用情報を生成する。
〔1-3.生成処理について〕
上述したように、情報提供装置10は、試験対象の機能を上位概念化した指示、すなわち、アプリケーションに対して行われる利用者の行動や利用者が利用する機能を自然言語で示す指示に基づいて、アプリケーションの試験を行うことができる。このため、操作者は、試験対象としたい利用者の行動や機能を自然言語で表した情報のみで、試験を行うことができる。
しかしながら、係る処理のみでは適切な試験を行うことができるとは言えない。例えば、アプリケーションが提供するログインにおける試験では、ログインが適切に行えたか否かだけではなく、ログインが行われた際にどのような操作でログインができなかったかを知る必要がある。しかしながら、このような詳細な操作内容を人手で設定するのは手間がかかる。また、人手で各種操作内容を設定した場合、人的ミスにより、試行すべき操作内容が設定されず、バグが見逃される恐れがある。
そこで、情報提供装置10は、以下の生成処理を実行する。まず、情報提供装置10は、利用者の操作対象が発揮する機能を特定する。続いて、情報提供装置10は、特定された機能に応じて、操作対象に対して行われる利用者の操作の組合わせを決定する。そして、情報提供装置10は、決定された操作の組合わせを自然言語で表した操作情報を生成する。
例えば、情報提供装置10は、利用者の操作対象となるアプリケーションの解析を行い、アプリケーションの各種機能を特定する。例えば、情報提供装置10は、アプリケーションが提供する機能として、ログイン、QRコード(登録商標)の読み取りや送信といった決済に関する各種の機能、音楽コンテンツや地図コンテンツ等といった各種コンテンツを適用する機能など、アプリケーションが発揮する機能であって、利用者が利用可能な機能を特定する。なお、このような機能の特定については、アプリケーションが有する特徴と、そのアプリケーションが提供する機能との関係性を学習したモデルを用いることで、実現可能である。
続いて、情報提供装置10は、特定した機能ごとに、その機能を発揮する際にアプリケーションに対して行われる操作の組合わせを決定する。例えば、情報提供装置10は、特定した機能が「ログイン」である場合、アプリケーションに対して行われる操作として、「ユーザIDの入力」、「パスワードの入力」、「ログインボタンの選択」といった操作を特定する。すなわち、情報提供装置10は、特定した機能を発揮するための画面内において利用者から受け付け可能な操作(換言すると、利用者が実行可能な操作)を特定する。なお、このような特定処理は、例えば、アプリケーションの機能と、その機能を発揮するための操作とをあらかじめ対応付けたテーブル等を用いることで、実現可能である。
そして、情報提供装置10は、これら特定した操作を適宜組合わせた操作の組合わせを決定する。例えば、情報提供装置10は、「ユーザIDの入力」、「ユーザIDの入力」、「ログインボタンの選択」といった組合わせや、「ユーザIDの入力」、「パスワードの入力」、「ユーザIDの入力」といった組合わせ等、特定した操作をランダムな数だけランダムな順序で並べた組合わせを所定数生成する。また、情報提供装置10は、後述する処理により、生成した組合わせの中から、実際にアプリケーションに対して適用する操作の組合わせを決定する。
そして、情報提供装置10は、決定した操作の組合わせを自然言語で表した操作情報、すなわち、操作のシナリオ(換言すると、試験のシナリオ)を操作情報として生成する。例えば、情報提供装置10は、「ログイン」の機能について、「ユーザIDの入力」、「ユーザIDの入力」、「ログインボタンの選択」といった操作の組合わせを決定した場合、「ログイン画面において、ユーザIDを入力し、続いて、ユーザIDを入力し、その後、ログインボタンをタップする」といった操作情報を生成する。
〔1-4.生成処理および適用処理の一例について〕
以下、図1を用いて、情報提供装置10が実行する生成処理の流れ、および情報提供装置10が実行する適用処理の流れの一例について説明する。例えば、操作者は、各端末装置200に対して、操作対象となるアプリケーションをインストールする(ステップS1)。ここで、各端末装置200に対してインストールされるアプリケーションは、それぞれ異なるバージョンのアプリケーションであってもよい。また、各端末装置200に対してインストールされるアプリケーションは、それぞれ個別のOS上で動作するアプリケーションであってもよく、それぞれ異なるサービスを提供するためのアプリケーションであってもよい。また、各端末装置200は、それぞれ異なる種別のハードウェアであってもよい。すなわち、試験対象となる端末装置200とは、ハードウェアとソフトウェアとの組み合わせがそれぞれ異なるものであってもよい。
続いて、情報提供装置10は、操作者端末300から、試験対象となるアプリケーションを受け付ける(ステップS2)。すなわち、情報提供装置10は、AUT(Application Under Test)を受け付ける。例えば、情報提供装置10は、各端末装置200にインストールされたアプリケーションのデータを受け付ける。なお、図1に示す例では、情報提供装置10は、操作者が各端末装置200にインストールしたアプリケーションのデータを受け付けるが、実施形態は、これに限定されるものではない。例えば、情報提供装置10は、アプリケーションを受け付けると、各端末装置200に受け付けたアプリケーションを送信しインストールさせてもよい。また、情報提供装置10は、操作者端末300が各端末装置200にインストールさせたアプリケーションを受け付けてもよい。
続いて、情報提供装置10は、アプリケーションが提供するサービスをドメインとして特定する(ステップS3)。上述したように、情報提供装置10は、操作対象となるアプリケーションの機能に基づいて操作内容の組合わせを決定するが、このようなアプリケーションの機能は、アプリケーションが提供するサービスによって異なる。例えば、決済を行うアプリケーションは、ログインの機能が必須であると考えらえるが、フォトビュワー等のアプリケーションは、ログインの機能を提供しない場合が多いと考えられる。このように、操作対象が提供するサービスの種別に応じて、操作対象が発揮する機能は、変化すると考えられる。
そこで、情報提供装置10は、操作対象となるアプリケーションが提供するサービスをドメインとして特定する。例えば、アプリケーションが画面上に表示するテキストの内容は、アプリケーションが提供するサービスのドメインを精度よく示す指標となり得る。例えば、「再生」といったテキストを表示するアプリケーションは、音楽等の各種コンテンツを再生するサービスを提供するアプリケーションであると推定される。また、「支払」といったテキストを表示するアプリケーションは、各種支払サービスを提供するアプリケーションであると推定される。そこで、情報提供装置10は、コンテンツが画面上に表示するテキストに基づいて、操作対象が提供するサービスのドメインを特定する。
続いて、情報提供装置10は、ドメインに応じて、アプリケーションの各画面上で提供される機能を特定する(ステップS4)。例えば、情報提供装置10は、ログイン等、アプリケーションを介して提供されるサービスを構成する構成サービスを機能として特定する。なお、以下の説明では、このような構成サービスを、アプリケーションの「機能」と表現する場合がある。
例えば、情報提供装置10は、ドメインが「決済サービス」であるアプリケーションについて、ある画面上に、テキストボックスが2つ含まれている場合は、この画面上で提供される機能が「ログイン」であると判定する。また、情報提供装置10は、ドメインが「SNS(Social Networking Service)」であるアプリケーションについて、ある画面上に、テキストボックスが2つ含まれている場合は、この画面上で提供される機能が「投稿」であると判定する。
上述した処理の結果、情報提供装置10は、アプリケーションが表示する画面ごとに、その画面を介して提供される機能を特定することとなる。そこで、情報提供装置10は、特定した機能を発揮させるための操作の組合わせを決定する(ステップS5)。例えば、情報提供装置10は、特定した機能とあらかじめ対応付けられた操作を特定し、特定した操作をランダムな数だけ、ランダムな順番で組合わせた操作の組合わせの候補を生成する。そして、情報提供装置10は、生成した組合わせの候補の中から、試験の対象として適切であると推定される組合わせの候補を特定する。
続いて、情報提供装置10は、決定した操作の組合わせを自然言語で示した操作情報を生成する(ステップS6)。例えば、情報提供装置10は、各操作と、その操作を示す自然言語とを対応付けた辞書データを参照し、決定した操作内容を自然言語で示した操作情報を生成する。例えば、情報提供装置10は、操作の組合わせが「テキストボックスにユーザIDを入力」、「ボタンをクリック」である場合、「テキストボックスにユーザIDを入力した後にボタンをクリックする」というように、各操作内容と、各操作を実行する順序とを自然言語で示す操作内容を生成する。なお、このような操作情報は、例えば、テストケース、テストシナリオ、シナリオアウトライン、特徴ファイル、もしくはユーザフロー等と表現される場合がある。すなわち、情報提供装置10は、構成サービスが提供される際に利用者が入力しうる操作を自然言語で示す操作情報を生成する。
〔1-5.適用処理の一例について〕
続いて、情報提供装置10が実行する提供処理の一例を説明する。まず、情報提供装置10は、操作情報が示す操作を各端末装置200に提供させるための適用情報を生成する(ステップS7)。例えば、情報提供装置10は、各端末装置200において実行されているOSやログイン対象となるソフトウェアごとに、操作情報から操作内容を特定する。続いて、情報提供装置10は、特定した操作を各端末装置200に適用されるための適用情報を生成する。例えば、情報提供装置10は、端末装置200ごとに、特定した操作を実行させるためのテストコードを生成する。換言すると、情報提供装置10は、各端末装置200に対して、特定した操作を仮想的に入力させるための各種スクリプトを適用情報として生成する。
そして、情報提供装置10は、各端末装置200ごとに生成した適用情報を各端末装置200に対して出力する(ステップS8)。例えば、情報提供装置10は、操作情報が、ログインを行う画面上でのテストケースを示す場合、各テストケースにおける操作を端末装置201に対して適用するための適用情報を端末装置201に配信する。同様に、情報提供装置10は、各テストケースにおける操作を端末装置202、203に対して適用するための適用情報を端末装置202、203に配信する。
このような場合、各端末装置200は、情報提供装置10から受付けた適用情報に従った操作が行われたものとして、それぞれアプリケーションを動作させる(ステップS9)。ここで、情報提供装置10から出力される適用情報には、操作が適用された結果を各端末装置200に収集させるための情報が含まれている。この結果、端末装置200は、操作の適用結果を収集し、収集した適用結果を情報提供装置10へと送信する(ステップS10)。このような場合、情報提供装置10は、適用結果のレポートを生成し、生成したレポートを操作者端末300に提供する(ステップS11)。例えば、情報提供装置10は、各端末装置200において実行されているOSやアプリケーションの種別とともに、どの端末装置200においてログインが成功若しくは失敗したか、いくつの端末装置200でログインが成功若しくは失敗したかといったレポートを提供する。このような処理の結果、情報提供装置10は、デバッグ等の試験結果の容易な理解を促進することができる。
〔1-6.生成処理の実装例について〕
上述したように、情報提供装置10は、アプリケーションの解析結果に基づいて、アプリケーションを試験するためのテストケースを生成する。換言すると、情報提供装置10は、操作対象に対して行われる利用者の操作の組合わせを自然言語で示した操作情報を生成する。このような生成処理において、情報提供装置10は、IAGA(Improved Adaptive Genetic Algorithm)を改良した手法により、操作情報の生成を行う。
以下、図2を用いて、情報提供装置10が実行する生成処理の実装例について説明する。図2は、実施形態に係る情報提供装置が実行する生成処理の実装例を示す図である。図2においては、情報提供装置10が操作情報を生成する処理の流れの一例について記載したが、実施形態は、これに限定されるものではない。情報提供装置10は、図2に示す処理以外にも、アプリケーションの解析結果、例えば、アプリケーションが有する各種の特徴に基づいて操作情報を生成するのであれば、任意の処理により、操作情報の生成を行ってよい。
例えば、図2に示す例では、情報提供装置10は、操作データベースおよび組合わせデータベースに登録された情報を用いて、操作情報の生成を行う。操作データベースは、利用者が操作対象となるアプリケーションに対して行うことができるすべての操作内容(例えば、インスタラクション)、および、各操作内容を自然言語で示した情報が対応付けて登録されている。なお、操作データベースは、ユーザアクションデータベースと換言される場合がある。
組合わせデータベースは、アプリケーションに対して適用される利用者の操作の組合わせが登録される。ここで、組合わせデータベースには、例えば、アプリケーションが提供する機能を適切に発揮させるための操作の組合わせだけではなく、機能を適切に発揮させることができない操作の組合わせについても登録されることとなる。すなわち、組合わせデータベースには、アプリケーションの試験時に適用される操作の組合わせ、換言すると、テストシナリオを示す情報が登録される。なお、組合わせデータベースは、ポピュレーションデータベースと換言される場合がある。
なお、以下の説明では、利用者の操作の組合わせを組合わせ情報と総称する場合がある。また、組合わせデータベースには、初期状態において、組合わせ情報がすでに登録されていてもよく、登録されていなくともよい。
まず、情報提供装置10は、アプリケーションからテキストを抽出する。例えば、情報提供装置10は、試験対象となるアプリケーションのコードを解析し、アプリケーションが画面上に表示するすべてのテキストを抽出する。そして、情報提供装置10は、抽出したテキストに基づいてアプリケーションのドメインを特定する。例えば、情報提供装置10は、ドメインモデルを用いて、アプリケーションが表示するテキストから、アプリケーションが提供する機能のドメインを特定する。
続いて、情報提供装置10は、アプリケーションが表示する画面をすべて特定する。例えば、情報提供装置10は、アプリケーションのコードを解析し、アプリケーションが表示させるすべての画面をそれぞれ特定する。なお、情報提供装置10は、以下に説明する処理を、特定した画面ごとに実行することとなる。
続いて、情報提供装置10は、特定した画面を介して適用される機能を特定する。例えば、情報提供装置10は、特定した画面ごとに、その画面上に配置されたオブジェクトの種別や画面上において適用可能な操作の内容に基づいて、その画面で提供される機能の特定を行う。ここで、各画面で提供される機能の特定を行う場合、情報提供装置10は、スクリーンモデルを用いて、アプリケーションのドメインと、各画面の特徴とに基づいて、アプリケーションが提供する機能の特定を行う。
例えば、情報提供装置10は、アプリケーションのドメインと、そのアプリケーションが表示する画面のうちある画面の特徴(例えば、オブジェクトの種類、数、外観、その画面で実行可能な各種の操作等)とを示す情報を入力した際い、その画面で提供される機能を示す情報を出力するように学習が行われたモデルをスクリーンモデルとして保持する。そして、情報提供装置10は、スクリーンモデルに、試験対象となるアプリケーションのドメインと、アプリケーションが表示する画面の特徴とを示す情報を入力することで、その画面で提供される機能を特定(推定)する。
続いて、情報提供装置10は、操作データベースと組合わせデータベースとを参照し、特定した機能を発揮させるための操作を組合わせた組合わせ候補を生成・取得する。例えば、操作データベースには、アプリケーションが発揮する機能と、その機能を発揮させるために利用者が行う1つ又は複数の操作とが対応付けて登録されている。情報提供装置10は、操作データベースを参照し、特定した機能と対応付けられた操作を特定する。そして、情報提供装置10は、特定した操作をランダムな順序でランダムな数だけ組合わせた組合わせ候補を所定の数だけ生成する。
例えば、操作データベースには、「ログイン」という機能に対して、「ユーザIDの入力」、「パスワードの入力」、「ログインボタンをクリック」といった3つの操作が対応付けて操作データベースに登録されているものとする。このような場合、情報提供装置10は、「ログイン」に対応する組合わせ候補として、「ユーザIDの入力」、「ユーザIDの入力」、「ユーザIDの入力」というように同一の操作を所定の数だけ繰り返す組合わせ候補や、「ユーザIDの入力」、「ログインボタンをクリック」というように、一部の操作を行わない組合わせの候補、その他実行する順番を変更した組合わせの候補や、実行する操作の数が異なる複数の組合わせの候補等を生成する。なお、情報提供装置10は、例えば、ランダムに10個以内の操作を組合わせた組合わせの候補を生成してもよい。
また、組合わせデータベースには、後述する処理により生成された組合わせ情報が機能と対応付けて登録されている。情報提供装置10は、組合わせデータベースを参照し、試験対象となるアプリケーションが発揮する機能として特定した機能と対応付けられた組合わせ情報を組合わせ候補として取得する。
続いて、情報提供装置10は、組合わせ候補ごとに、機能が発揮されるまでのステップ数を計数する。例えば、情報提供装置10は、試験対象となる画面において、各組合わせ候補に含まれる操作を実行し、画面が他の画面に遷移するまでに機能が適切に発揮されたか否かを判定するとともに、画面が他の画面に遷移するまでに実行された操作の数をステップ数として係数する。なお、かかるステップ数の係数は、フィットネスカリキュレーションと換言される場合がある。
続いて、情報提供装置10は、所定の回数処理をループしたか否かを判定する。そして、情報提供装置10は、所定の回数処理をループしていない場合、機能が発揮されたと判定した組合わせ候補の中から親となる組合わせ候補の組を選択する。そして、情報提供装置10は、親として選択された組合わせ候補に含まれる操作をランダムに組合わせた新たな組合わせ候補を生成する。また、情報提供装置10は、新たに生成した組合わせ候補に対して、ランダムに操作を追加もしくは変更した新な組合わせ候補を生成する。そして、情報提供装置10は、組合わせ候補ごとに機能が適切に発揮されたか否か、機能が発揮されるまでのステップ数の係数を再度実行する。
すなわち、情報提供装置10は、組合わせ候補ごとに、機能が発揮されるまでのステップの係数、操作をクロスオーバーさせた新たな組合わせ候補の生成、および、操作をミューテーションさせた組合わせ候補の生成を繰り返し実行する。このような処理を行うことで、情報提供装置10は、試験対象となるアプリケーションの画面ごとに、様々な操作を組合わせた組合わせ候補を生成することができる。
また、情報提供装置10は、処理を所定の回数ループさせた場合、ステップ数が所定の条件を満たす組合わせ候補を組合わせ情報として組合わせデータベースに登録する。例えば、情報提供装置10は、各組合わせ候補に含まれる操作を実行した際に機能を発揮するまでのステップ数の分布を特定し、特定した分布に基づいて、ステップ数が所定の条件を満たす組合わせ候補を登録対象とする。この際、情報提供装置10は、ステップ数が少ない組合わせ候補を優先して選択するのではなく、ある程度ステップ数が多い組合わせ候補を選択するようにしてもよい。
そして、情報提供装置10は、組合わせデータベースに登録された組合わせ情報から、操作の内容を自然言語で示した操作情報を生成する。例えば、情報提供装置10は、組合わせ情報に含まれる各操作を特定し、特定した操作を示す自然言語を操作データベースから特定する。そして、情報提供装置10は、特定した自然言語に基づいて、操作情報が示す操作の組合わせを自然言語で示した操作情報を生成する。
〔1-8.適用処理の流れの一例について〕
続いて、図3を用いて、情報提供装置10が実行する適用処理の実装例について説明する。図3は、実施形態に係る情報提供装置が実行する適用処理の実装例を示す図である。ここで、情報提供装置10は、情報提供装置10が提供する操作情報以外にも、アプリケーションが発揮する機能のうち、試験対象となる機能を自然言語で示す情報から、適用情報を生成する機能を有する。そこで、図3に示す例では、試験対象となる機能を自然言語で示す情報から、適用情報を生成する機能の流れについて記載した。情報提供装置10は、このような機能の一部を用いて、操作情報から適用情報を生成し、試験を実行することとなる。
例えば、情報提供装置10は、操作情報となる自然言語を操作者端末300から取得する。例えば、情報提供装置10は、「ログインをしたらトップ画面が表示される」といった試験におけるアプリケーションの機能や、その機能が提供された際における結果を示す情報を取得する。
ここで、「ログイン」とは、例えば、SNS等、端末装置200や端末装置200が実行するあぷりケーションを介して提供されるサービスを構成するサービス、すなわち、構成サービスであって、利用者が所定の操作を行った際に提供されるサービスであるといえる。このような構成サービスには、例えば、「ログイン」のみならず、利用者が投稿する各種投稿情報の受付や、QRコードを用いた支払においてQRコードを撮影するための機能等が含まれることとなる。
このような場合、情報提供装置10は、抽出ユニットを用いて、自然言語に含まれる単語のうち、端末装置200において行われる行動や、その行動が行われた際に生じる結果を示す単語を抽出し、抽出した単語をまとめた特徴情報を生成する。すなわち、情報提供装置10は、操作情報から、利用者の行動を示す単語を行動ごとに抽出する。
例えば、情報提供装置10は、「ログインをしたらトップコンテンツが表示される」といった操作情報から「ログイン」といった利用者の行動(すなわち、操作対象となる行動)や、「トップコンテンツが表示」といった、行動が行われた際における端末装置200の状態(すなわち、行動が行われた結果)を示す単語を抽出する。そして、情報提供装置10は、抽出した単語を示す特徴情報を生成する。なお、このような処理は、例えば、CucumberやTurnipといったGherkinと呼ばれるテスト記述言語フォーマットに関する各種の技術が採用可能である。
続いて、情報提供装置10は、ドライバユニットを用いて、自然言語をデバイス用コマンドに変換するために使用されるステップ情報(ステップ関数)と、コマンドの送信前に対象をポーリングすることにより、ステップ関数をサポートするために使用されるアシスタント情報(アシスタント関数)とを生成する。
例えば、情報提供装置10は、ステップ情報を生成する場合、特徴情報から、端末装置200において生じる操作の内容や操作の順番、操作が行われた際の結果等を特定する。換言すると、情報提供装置10は、利用者の行動を、操作対象となる端末装置200等のハードウェアや、ハードウェアにおいて各種実行させているソフトウェアに対する操作へと翻訳する処理を実行する。
例えば、情報提供装置10は、特徴情報が「ログイン」という行動を示す場合、1番目に実行する「ログインコンテンツの表示」、2番目に実行する「ユーザIDの入力」、3番目に実行する「パスワードの入力」、および4番目に実行する「ログインボタンの押下」といった複数の操作と各操作の順番とを示すステップ情報(ステップ関数)を生成する。すなわち、情報提供装置10は、「ログイン」単語が示す行動が行われる場合に端末装置200に対して行われる各種操作や各操作が行われる順序を特定し、特定した操作や順序を示すステップ情報を生成する。
また、情報提供装置10は、特徴情報に「トップコンテンツが表示」といった行動の結果が含まれている場合、このような結果が生じたか否かを判定するためのアシスタント情報(アシスタント関数)を生成する。例えば、情報提供装置10は、「トップ画面が表示」といった行動の結果が含まれる場合、「トップコンテンツが表示されたか否かを判定する」といった処理を示すアシスタント情報を生成する。なお、情報提供装置10は、例えば、ステップ情報が示す各種操作が行われた際に生じる所定の結果が生じているか否かを判定するためのアシスタント情報を生成してもよい。例えば、情報提供装置10は、ステップ情報が「ログインコンテンツの表示」といった操作を含む場合は、「ログインコンテンツが表示されたか否かを判定する」といった処理を示すアシスタント情報を生成してもよい。
すなわち、情報提供装置10は、自然言語で記述された操作情報に基づいて、操作情報が示す行動を実現するための各種の操作や操作の順序を示すステップ情報を生成する。また、情報提供装置10は、各ステップ情報が示す操作が行われた際に生じる結果が実際に生じているか否かを判定するために行われる処理の内容を示すアシスタント情報を生成する。
なお、ステップ情報やアシスタント情報は、対象となる端末装置200が実行するOSの種別やアプリケーションの種別、若しくはこれらの組合わせごとに生成される。このため、ドライバユニットは、操作情報から生成された特徴情報が示すユーザアクション(行動)において生じる各種の入力を取得するとともに、ユーザアクションの対象となるデバイスやアプリケーション、操作対象となる要素の識別を行う。そして、ドライバユニットは、識別結果に基づいて、ステップ情報の生成を行う。
同様に、情報提供装置10は、ステップ情報が示す各操作が行われたことを確実にするために定期的な間隔で、対象の状態を収集する(ポーリングおよびクエリする)ためのアシスタント情報を生成する。より詳細には、情報提供装置10は、各対象ごとに、ステップ情報が示す操作が行われた際に生じる対象の状態を収集し、収集した状態が所定の条件を満たすか否かを判定するためのアシスタント情報を生成する。換言すると、アシスタント情報は、ステップ情報が示すある操作が行われた結果が適正であるかを判定し、適正であると判定された場合に、ステップ情報が示す次の操作を行わせるための条件情報と見做すことができる。
続いて、情報提供装置10は、生成ユニットを用いて、ステップ情報およびアシスタント情報が示す操作や各種の判定を対象に行わせるための適用情報を生成する。換言すると、情報提供装置10は、抽出ユニットにより抽出された単語が示す行動が行われる場合に端末装置200に対して行われる操作を適用するための適用情報を生成する。
このような生成ユニットは、例えば、アッピウム等、各種の端末装置200やアプリケーションの自動テストを行うための各種フレームワークにより実現可能である。より具体的には、情報提供装置10は、ステップ情報が示す各操作をステップ情報が示す順番で対象に適用するとともに、アシスタント情報が示す条件に従って各操作の結果が適切であるかを判定させるためのスクリプトを生成する。
このようにして生成されたスクリプトは、「ログイン」等の構成サービスを提供する際に行われうる利用者の行動、すなわち、構成サービスと対応する操作を端末装置200に適用させるためのスクリプトである。このように、情報提供装置10は、所定の対象が提供するサービスを構成する構成サービスであって、利用者が所定の操作を行った際に提供される構成サービスを自然言語で示す行動情報を取得すると、取得した行動情報から、行動情報が示す構成サービスと対応する所定の操作を前記対象に対して適用するための適用情報を生成することとなる。
そして、情報提供装置10は、適用情報を、対象となる端末装置200へと出力する。例えば、情報提供装置10は、所定の情報処理装置内で再現された仮想的な端末装置ETや、スマートフォン等の端末装置RT、クラウド上に存在する各種の端末装置CTに対して、各端末装置200ごとに生成された適用情報を送信する。この結果、情報提供装置10は、自然言語で記述された操作情報が示す行動が行われた場合の、端末装置200の動作を試験することができる。
なお、上述した例において、ドライバユニットは、抽出ユニットと生成ユニットとの組合わせごとにされればよい。例えば、ドライバユニットは、実装された抽出ユニットが採用するフォーマットのテスト記述言語から、生成ユニットが識別可能な形式のステップ情報やアシスタント情報を生成すればよい。このようなドライバユニットは、例えば、抽出ユニットにより生成されるテスト記述言語が示す行動と、その行動を実現するための操作内容や操作順序とを対応付けた辞書データや、各操作と、各操作が行われた結果が適正であるかを判定するための条件とを対応付けた辞書データにより、ルールベースで動作する任意のプログラムが採用可能である。
例えば、ドライバユニットは、特徴情報が「ログイン」を示す場合、辞書データを参照し、「ログイン」と対応付けられた各操作「ログインコンテンツの表示」、「ユーザIDの入力」、「パスワードの入力」、および「ログインボタンの押下」を特定する。そして、ドライバユニットは、特定した各処理を端末装置200に実行させるための適用情報を生成ユニットに生成させるためのステップ情報を生成すればよい。また、ドライバユニットは、辞書データを参照し、特定した各操作と対応付けられた条件を特定する。そして、ドライバユニットは、特定した条件を満たすか否かを端末装置200に実行させるための適用情報を生成ユニットに生成させるためのアシスタント情報を生成すればよい。このような処理を行うプログラムであれば、情報提供装置10は、任意のプログラムをドライバユニットとして採用可能である。
なお、情報提供装置10は、操作情報を受け付けた場合、ドライバユニットを用いて、操作情報が自然言語で示す各操作を示すステップ情報やアシスタント情報の生成を行う。そして、情報提供装置10は、生成したステップ情報やアシスタント情報から、生成ユニットを用いて、適用情報の生成を行う。このような処理の結果、情報提供装置10は、様々な操作内容をテストケースとして、各端末装置200に適用することができる。
〔2.判定処理について〕
上述したように、情報提供装置10は、各端末装置200にインストールさせるアプリケーションが適切に動作するかの試験を行う。一方で、アプリケーションが実現するサービスには、例えば、QRコードを用いた決済等、様々な種別の端末装置200を介して共通するサービスを提供するものが存在する。
しかしながら、同一のアプリケーションであっても、端末装置200ごとに見た目が異なる場合がある。例えば、端末装置201と端末装置202が同一のOSを実行する端末であったとしても、画面の解像度が異なる場合には、見た目が変化してしまう恐れがある。このようにアプリケーションが提供する画面(以下、「コンテンツ」と記載する場合がある。)の見た目が変化した場合、アプリケーションの利用時に不要な心配を与える必要がある。また、例えば、各種オブジェクトの配置が変化した場合、利用者が正しい操作を行うことができない場合がある。
より具体的な例を挙げる。例えば、あるアプリケーションがログインのために、ユーザIDを入力するためのテキストボックスと、そのテキストのテキストボックスにユーザIDを入力する旨を示すテキスト(例えば、「ユーザID」)、およびパスワードを入力するためのテキストボックスと、そのテキストのテキストボックスにパスワードを入力する旨を示すテキスト(例えば、「パスワード」)とを表示するものとする。
ここで、端末装置201が、ユーザIDを入力するためのテキストボックスと、「ユーザID」といったテキストとを横に並べて表示し、パスワードを入力するためのテキストボックスと、「パスワード」といったテキストとを横に並べて表示した場合、端末装置201の利用者は、正しくユーザIDとパスワードとをテキストボックスに入力することができると考えられる。しかしながら、例えば、端末装置202がテキストとテキストボックスとを横に並べる画面解像度を有していない場合、テキストやテキストボックスの配置が変化してしまい、テキストボックスにユーザIDを入力するのか、パスワードを入力するのかを正しくユーザに伝えることができなくなる恐れがある。
また、端末装置200が実行するOSや画面の設定、ハードウェアの特性によっては、アプリケーションが表示するサービスや企業のロゴの形状や色彩、アプリケーションが提供するコンテンツにおいて共通して利用される色彩(いわゆるテーマカラー)が想定していた外観と異なる外観で表示されてしまう恐れがある。
このようなアプリケーションが提供するコンテンツの外観的な同一性の問題は、アプリケーションの開発時のみならず、アプリケーションの更新時やアプリケーションが提供するサービスの変更時、追加時等にも生じうる。換言すると、アプリケーションが提供するコンテンツは、アプリケーションを実行する端末装置200のハードウェアもしくはソフトウェアといったプラットフォーム等、様々な理由により、アプリケーションが同じコードであっても外観的な同一性が担保できない恐れがある。
そこで、情報提供装置10は、上述したアプリケーションの試験において、コンテンツの外観的な同一性が担保されているかを判定する判定処理を実行する。すなわち、利用者が各コンテンツを閲覧した際に、同一アプリケーションによる同一構成サービスを実現するためのコンテンツであると判断するか否かの判定を行う。
例えば、情報提供装置10は、端末装置200とは別に準備された所定の端末装置を基準端末とし、端末装置200を判定装置とする。そして、情報提供装置10は、基準端末が所定のアプリケーションを実行した際に表示させた基準コンテンツと、比較対象となる比較端末が所定のアプリケーションを実行した際に表示させた比較コンテンツとを取得する。そして、情報提供装置10は、基準コンテンツが有する特徴と、比較コンテンツが有する特徴との類似性が所定の条件を満たすか否かを判定する。
例えば、情報提供装置10は、アプリケーションが各端末装置200に表示させるコンテンツの同一性を判定する場合、基準端末と比較端末とに同一のサービスを提供するアプリケーション(例えば、同一コードのアプリケーションのみならず、同一のサービスを提供するコードであって、それぞれ異なるOS上で実行されるアプリケーション)をインストールする。続いて、情報提供装置10は、アプリケーションが基準端末に表示させたコンテンツである基準コンテンツと、アプリケーションが比較端末に表示させたコンテンツである比較コンテンツとを取得する。
そして、情報提供装置10は、基準コンテンツと比較コンテンツとの類似性を判定し、類似性が所定の条件を満たす場合に、比較コンテンツとして表示されるコンテンツが正常なコンテンツ、すなわち、利用者に提供された際に基準コンテンツと同じサービスのコンテンツであると判断されうるコンテンツであると判定する。このような処理の結果、情報提供装置10は、例えば、マルチプラットフォームで提供されるサービスを提供するアプリケーションの開発時や、アプリケーションの更新時において、適切なコンテンツが提供されているかを自動的に判定することができ、試験の手間をさらに削減することができる。
〔2-1.判定処理の流れの一例について〕
以下、図4を用いて、情報提供装置10が実行する判定処理の流れの一例を説明する。図4は、実施形態に係る情報提供装置が実行する判定処理の流れの一例を示す図である。なお、図4に示す処理は、図1に示す試験と平行に行われており、各端末装置200には、試験対象となるアプリケーションがインストール済みであるものとする。また、図4に示す例では、操作者端末300がアプリケーションを情報提供装置10に提供する例について説明するが、例えば、操作者端末300は、実際に端末装置200にインストールされるアプリケーションに加えて、例えば、デザインチームが作成したフルスクリーンアプリのモックアップ、アイコン、デザインガイドラインに含むコンポーネントなど、基準コンテンツとして使用され得る画像ファイルを提供してもよい。
まず、操作者端末300は、基準端末BTに試験対象となるアプリケーションをインストールする(ステップS20)。このような場合、操作者は、基準端末BTにアプリケーションが表示させたコンテンツのスナップショットを基準端末BTで取得する。そして、操作者端末300は、スナップショットを基準コンテンツとして取得する(ステップS21)。
続いて、操作者端末300は、取得した基準コンテンツをベースラインとして、所定のクラウドサーバCSに登録する(ステップS22)。そして、操作者端末300は、試験対象となるアプリケーションを情報提供装置10へと提供する(ステップS23)。なお、ステップS23は、図1に示すステップS2と対応する。
このような場合、情報提供装置10は、図1に示す各処理(ステップS3~S11)と平行して、判定処理を実行する。例えば、情報提供装置10は、クラウドサーバCSからベースラインを取得する(ステップS24)。そして、情報提供装置10は、図1に示すステップS3~S7を実行し、図4に示すように、適用情報を出力する(ステップS25)。なお、ステップS25は、図1に示すステップS8に対応する。
ここで、情報提供装置10は、適用情報として、アプリケーションが画面上に表示させたコンテンツのスナップショットを比較コンテンツとして取得し、適用結果に含めるように端末装置200を動作させる適用情報を生成する。このような適用情報は、例えば、画面の表示時にスクリーンショットを取得するといった自然言語から、上述した適用処理により適用情報を生成することで実現可能である。例えば、情報提供装置10は、図1に示ステップS6において、試験対象となる端末装置200にスナップショットを取得し、出力させるための操作情報を生成し、ステップS7において、スナップショットを取得し、適用結果として出力させるための適用情報を生成すればよい。
そして、情報提供装置10は、適用結果として、各端末装置200が表示した比較コンテンツを取得する(ステップS26)。なお、ステップS26は、図1に示すステップS10に対応する。このように、情報提供装置10は、比較端末が基準端末と同じアプリケーションを実行した際に表示させた比較コンテンツを取得する。
続いて、情報提供装置10は、図1に示すステップS11に先駆けて、レポートの作成を行う。この際、情報提供装置10は、基準コンテンツと比較コンテンツとの類似性を判定する判定処理を実行する。例えば、情報提供装置10は、基準コンテンツの外観的及び/又は機能的な特徴と比較コンテンツの外観的及び/又は機能的な特徴とが類似するか否かを判定する(ステップS27)。
例えば、図5は、実施形態に係る情報提供装置が実行する判定処理の流れの一例を示すフローチャートである。例えば、情報提供装置10は、判定処理を開始した場合、比較コンテンツと対応するベースライン、すなわち、基準コンテンツが登録されているか否かを判定する(ステップS101)。例えば、情報提供装置10は、比較端末においてアプリケーションが比較コンテンツを表示させたタイミングと同じタイミングで、基準端末においてアプリケーションが表示させた基準コンテンツが登録されているか否かを判定する。ここで、表示させたタイミングとは、例えば、アプリケーションの起動時や、所定の操作を行った際等であり、実際の時刻とは異なるものである。すなわち、情報提供装置10は、同じ構成サービスを提供する際に表示された基準コンテンツと比較コンテンツとを比較対象とする。
続いて、情報提供装置10は、対応するベースラインが登録されている場合は(ステップS101:Yes)、ベースラインから各種の特徴やオブジェクトの情報を抽出する(ステップS102)。例えば、情報提供装置10は、ベースラインとなる基準コンテンツのスクリーンショット全体が有する外観的な特徴を抽出する。なお、かかる処理は、例えば、各種の特徴量抽出技術により採用可能である。また、情報提供装置10は、基準コンテンツに含まれる各オブジェクトの情報を抽出する。例えば、情報提供装置10は、OCR(Optical Character Recognition)技術等で、基準コンテンツに含まれる各テキストの内容、色彩、フォント種別、表示サイズ等を抽出する。
また、情報提供装置10は、各種の画像認識技術を用いて、基準コンテンツに含まれるボタンやテキストボックス等といった各種オブジェクトの情報を抽出する。例えば、情報提供装置10は、どのような外観(色彩や表示サイズ等)のオブジェクトが含まれているか、どのような機能のオブジェクトが含まれているかを抽出する。なお、情報提供装置10は、スナップショットではなく、例えば、アプリケーションに含まれるコードを解析することで、各オブジェクトが有する機能を特定してもよい。
さらに、情報提供装置10は、基準コンテンツにおける各オブジェクトの配置位置を取得してもよい。例えば、情報提供装置10は、基準コンテンツにおいてテキストボックスが表示された画面上の位置等を取得してもよい。このように、情報提供装置10は、基準コンテンツ全体としての特徴や、基準コンテンツに含まれる各種オブジェクトの外観的な特徴や機能的な特徴を抽出する。
続いて、情報提供装置10は、比較コンテンツを取得する(ステップS103)。そして、情報提供装置10は、基準コンテンツから各種オブジェクトの外観的な特徴や機能的な特徴を抽出した際と同様に、比較コンテンツから各種の特徴やオブジェクトの情報を抽出する(ステップS104)。そして、情報提供装置10は、各コンテンツから抽出した特徴やオブジェクトの類似性を判定する(ステップS105)。
情報提供装置10は、基準コンテンツの外観が有する特徴と、比較コンテンツが有する外観の特徴との類似性が所定の条件を満たすか否かを判定する。より具体的な例を挙げると、情報提供装置10は、基準コンテンツの特徴量と比較コンテンツの特徴量との類似度を算出してもよい。
また、情報提供装置10は、基準コンテンツおよび比較コンテンツ内に配置されたテキストやボタンなどといった各種オブジェクトの色彩、大きさ、配置位置を外観的な特徴として取得する。また、情報提供装置10は、テキストが示す文字情報の一致度や外観的な特徴量、各種コンテンツの外観的な特徴の類似度を算出する。また、情報提供装置10は、各種オブジェクトの機能が同一であるか否かに応じた類似度を算出してもよい。
そして、情報提供装置10は、類似性が所定の条件を満たすか否かを判定する(ステップS106)。例えば、情報提供装置10は、算出した類似度が所定の閾値を超えるか否かを判定する。そして、情報提供装置10は、類似性が所定の条件を満たす場合(ステップS106:Yes)、すなわち、利用者が各コンテンツを同一の構成サービスを提供するコンテンツであると認識可能であると推定されうる場合は、比較コンテンツが基準コンテンツである旨を登録する(ステップS107)。一方、情報提供装置10は、類似性が所定の条件を満たさない場合(ステップS106:No)、すなわち、利用者が各コンテンツを同一の構成サービスを提供するコンテンツであると認識できないと推定されうる場合は、比較コンテンツが基準コンテンツである旨を登録する(ステップS108)。
なお、情報提供装置10は、対応するベースラインが登録されていない場合は(ステップS101)、ベースラインの登録処理を行う(ステップS109)。例えば、情報提供装置10は、各端末装置200のうち、いずれかの端末装置200が取得した比較コンテンツをベースラインとし、他の端末装置200が取得した比較コンテンツとベースラインとの比較を実現してもよい。なお、情報提供装置10は、例えば、操作者にベースラインの登録を促してもよい。
ここで、図6を用いて、情報提供装置10が基準コンテンツと比較コンテンツとを比較する処理の一例について説明する。図6は、各コンテンツを比較する処理の一例を示す図である。なお、図6に示す例では、アプリケーションが表示させるコンテンツであって、サービスの提供を受けるために、ログインの構成サービスを提供するコンテンツの比較を行う例について示した。
例えば、図6に示す基準コンテンツBCには、サービスを示すロゴ、バナー、「携帯電話番号」「パスワード」といったテキストが配置されたテキストボックス、各種の利用規約、「上記に同意して新規登録」といった文字が配置されたボタン、「外部のアカウントで新規登録」といったテキスト、各外部アカウントを用いてログインを実現するためのボタン等が配置されている。また、図6に示す比較コンテンツCCには、基準コンテンツBCと同様のオブジェクトが配置されているものの、例えば、基準コンテンツBCに含まれるコンテンツのうち、携帯電話番号やパスワードを入力するテキストボックスの上部に配置されたバナーの表示がないものとする。
このような場合、情報提供装置10は、各種OCRの技術を用いて、基準コンテンツBCと比較コンテンツCCとから、テキストをそれぞれ抽出する。そして、情報提供装置10は、基準コンテンツBCから抽出したテキストと、比較コンテンツCCから抽出したテキストとの外観等が一致するか否かを判定する。また、情報提供装置10は、バナーやテキストボックス等といった各種コンテンツの有無や類似性を判定する。例えば、図6に示す例では、基準コンテンツBCに含まれる各種のオブジェクトのうち、携帯電話番号やパスワードを入力するテキストボックスの上部に配置されたバナーが比較コンテンツCCに含まれていない。このため、情報提供装置10は、携帯電話番号やパスワードを入力するテキストボックスの上部に配置されたバナーを差分DFとして抽出し、差分DFとなるバナーの有無や、その他テキストの同一性量等に基づいて、各コンテンツの類似性を判定する。
図4に戻り、説明を続ける。情報提供装置10は、判定結果に応じたレポートを提供する(ステップS28)。なお、ステップS28は、図1に示すステップS11に対応する。例えば、情報提供装置10は、各コンテンツの外観的な特徴が基準コンテンツと比較コンテンツとして類似したか否か、類似度が所定の閾値を超えたか否か、もしくは類似度そのものを示すレポート等を提供する。このような処理の結果、情報提供装置10は、試験対象となるアプリケーションが、各端末装置200において、想定通りの見え方をするコンテンツを提供しているか否か、換言すると、利用者が各端末装置200を利用した際に同一のサービスに係るコンテンツであると認識可能なコンテンツを提供するか否かを判定することができる。
〔2-2.比較内容について〕
上述したように、情報提供装置10は、基準コンテンツと比較コンテンツとの類似性を判定する。この際、情報提供装置10は、各コンテンツの外観的な特徴及び/又は、各コンテンツに配置されたオブジェクトの機能的な類似性を判定する。以下、情報提供装置10が類似性を判定する対象の一例について説明する。
例えば、情報提供装置10は、各コンテンツ内に配置された各種のマークや画像をオブジェクトとして抽出し、抽出したマークや画像の外観的な特徴の類似性に基づいて、スコアの算出を行ってもよい。例えば、情報提供装置10は、各マークや画像の色彩や表示サイズ等といった外観の類似性に基づいて、スコアの算出を行ってもよい。
また、情報提供装置10は、各コンテンツ内に表示させた文字をオブジェクトとして抽出してもよい。ここで、情報提供装置10は、スクリーンショットとなる各コンテンツからOCRの技術を用いて文字を抽出してもよく、アプリケーションのコードから、どのような文字が表示されたかを特定してもよい。そして、情報提供装置10は、各コンテンツにおける文字の文字色、表示サイズ、フォント等といった外観的な特徴の類似性に基づいて、スコアの算出を行ってもよい。また、情報提供装置10は、文字列の同一性に基づいたスコアの算出を行ってもよい。また、情報提供装置10は、基準コンテンツと比較コンテンツとで異なる言語が選択されている場合、文字列が示す意図の類似性に基づいたスコアを算出してもよい。
また、情報提供装置10は、各コンテンツ内に配置されたオブジェクトのうち、ボタンやテキストボックス等といった操作時において各種機能を発揮する機能オブジェクトの外観の類似性に基づいたスコアを算出してもよい。例えば、各コンテンツ内には、テキストや画像等といった利用者の操作が行われた際に機能を発揮しないオブジェクト(換言すると、操作に対して静的なオブジェクト)と、ボタンやテキストボックス等、利用者が選択した際に、他のコンテンツを表示したり、テキストの入力を受け付けたりといった所定の機能を発揮するオブジェクト(換言すると、操作に対して動的なオブジェクト)とが含まれる場合がある。そこで、情報提供装置10は、このような利用者が選択した際に各種機能を発揮するオブジェクトを機能オブジェクトとして特定し、特定した機能オブジェクトの有無、機能的な類似性、もしくは/および外観的な類似性に基づいて、各コンテンツの類似性を判定する。すなわち、情報提供装置10は、静的なオブジェクトについては、そのオブジェクトの外観やオブジェクトが示す情報(例えば文字列や画像が無い方する意味)の類似性を判定し、動的なオブジェクトについては、オブジェクトの外観のみならず、そのオブジェクトが発揮する機能の類似性等に基づいて、各コンテンツの類似性を判定する。
例えば、情報提供装置10は、外観やコード等から同一であると推定される機能オブジェクト同士を各コンテンツから特定し、機能オブジェクト同士について、ピクセル単位での比較を行ってもよく、外観の特徴量の類似性に応じたスコアを算出してもよい。すなわち、情報提供装置10は、テキスト等のオブジェクトのみならず、何かしらの機能を発揮する機能オブジェクトの外観的な類似性に基づくスコアを算出してもよい。
なお、情報提供装置10は、同一のオブジェクトの存非を確認し、各オブジェクトの機能の類似性を確認し、その後、ピクセル単位での比較を行うといった段階的な比較結果に応じたスコアを算出してもよい。このような処理を実行する場合、情報提供装置10は、例えば、同一のオブジェクト(機能オブジェクトのみならず、他のオブジェクトを含んでもよい)が存在しない場合は、ピクセル単位の比較等、後段の処理を行わずともよい。一方、情報提供装置10は、同一のオブジェクトが存在する場合、同一であると推定されたオブジェクト同士のみについて、ピクセル単位の比較の結果を行えばよい。すなわち、情報提供装置10は、画面全体についてピクセル単位の比較を行わずともよく、処理負荷を削減し、効率性の向上や処理時間の軽減を図ってもよい。
また、情報提供装置10は、基準コンテンツ内に配置された機能オブジェクトと、比較コンテンツ内に配置された機能オブジェクトとの類似性が所定の条件を満たすか否かを判定してもよい。すなわち、情報提供装置10は、各コンテンツの機能が有する特徴の類似性に基づくスコアを算出してもよい。例えば、情報提供装置10は、各コンテンツに含まれる機能コンテンツが発揮する機能の類似性に応じたスコアを算出してもよい。
例えば、情報提供装置10は、基準コンテンツ内に配置された機能オブジェクトの種別と、比較コンテンツ内に配置された機能オブジェクトの種別との類似性に応じたスコアを算出してもよい。より具体的には、情報提供装置10は、同一の機能を発揮する機能オブジェクトが各コンテンツに含まれる場合は、より高い類似性を示すスコアを算出してもよい。つまり、情報提供装置10は、各コンテンツにおける機能オブジェクトが発揮する機能が類似すればするほど、より高い値のスコアを算出してもよい。
また、情報提供装置10は、各オブジェクトが配置された位置の類似性に基づいたスコアを算出してもよい。例えば、情報提供装置10は、各テキストや機能オブジェクトの配置位置(例えば、コンテンツの原点となる左上のピクセルを基準とした座標)を特定し、特定した配置位置の類似性に基づくスコアを算出してもよい。
また、情報提供装置10は、基準コンテンツ内に配置された複数のオブジェクトの相対的な配置位置と、比較コンテンツ内に配置された複数のオブジェクトの相対的なオブジェクトの配置位置との類似性が所定の条件を満たすか否かを判定してもよい。例えば、情報提供装置10は、基準コンテンツ内におけるテキストとテキストボックスとの相対的な位置関係(例えば、縦方向に並んでいるか、横方向に並んでいるか等)、テキストボックス同士の相対的な位置関係、ボタンと他のオブジェクトとの位置関係等、各種オブジェクトが相対的にどのような位置関係にあるかを特定する。同様に、情報提供装置10は、比較コンテンツ内における各種オブジェクトの相対的な位置関係を特定する。
そして、情報提供装置10は、各コンテンツにおけるオブジェクト同士の相対的な位置関係の類似性に基づくスコアを算出する。例えば、情報提供装置10は、各コンテンツにおいて、所定のテキストと所定のテキストボックスとが縦方向に並んでいる場合は、より高い類似性を示すスコアを算出する。一方、情報提供装置10は、基準コンテンツにおいて、所定のテキストと所定のテキストボックスとが縦方向に並んでいるが、比較コンテンツにおいて、所定のテキストと所定のテキストボックスとが横方向に並んでいる場合は、より低い類似性を示すスコアを算出する。なお、情報提供装置10は、あらかじめ定められた任意のオブジェクトの組について、相対的な位置関係を特定し、特定した位置関係の類似性を判定すればよい。
また、情報提供装置10は、基準コンテンツ内に複数のオブジェクトが配置されている順序と、比較コンテンツ内に複数のオブジェクトが配置されている順序との類似性が所定の条件を満たすか否かを判定してもよい。例えば、情報提供装置10は、基準コンテンツ内に各オブジェクトが配置されている順序を特定するとともに、比較オブジェクト内に各オブジェクトが配置されている順序を特定する。例えば、情報提供装置10は、所定のテキスト、所定のテキストボックス、およびボタンがコンテンツの上部からどの順序で表示されたかを特定する。そして、情報提供装置10は、特定した順序の類似性が高い程、より高い値のスコアを算出してもよい。
また、情報提供装置10は、各オブジェクトの有無に基づく類似性を判定してもよい。例えば、情報提供装置10は、各コンテンツに共通するオブジェクト(例えば、外観が一致するもしくは類似性が所定の閾値を超えるオブジェクトや、同一のコードにより表示されていると推定されるオブジェクト、同一の機能を発揮すると推定されるオブジェクト)が含まれているかを判定する。そして、情報提供装置10は、各コンテンツに共通するオブジェクトが含まれている場合は、より高い類似性を示すスコアを算出し、含まれていない場合は、より低い類似性を示すスコアを算出してもよい。
また、情報提供装置10は、各コンテンツの属性が有する特徴の類似性に基づくスコアを算出してもよい。例えば、情報提供装置10は、各コンテンツに音声や動画像が含まれているか否か等を判定し、判定結果に応じたスコアを算出してもよい。
なお、情報提供装置10は、上述した各種スコアの算出基準のうち、一部もしくはすべての算出基準に基づいて、複数のスコアを算出し、算出したスコアの合計値を、最終的なスコアとしてもよい。また、情報提供装置10は、算出基準ごとに異なる重みを設定し、スコアの合計値を算出してもよい。そして、情報提供装置10は、スコアの合計値が所定の閾値を超えるか否かに基づいて、基準コンテンツと比較コンテンツとが類似するか否か、換言すると、各コンテンツの類似性が所定の条件を満たすか否かを判定する。
なお、情報提供装置10は、スコアの算出を行わず、一致点や相違点の数に基づいて、各コンテンツの類似性が所定の条件を満たすか否かを判定してもよい。また、情報提供装置10は、各種算出基準のうち、所定の条件を満たす基準の数を計数し、計数した数が所定の閾値を超えているかに応じて、類似性の判定を行ってもよい。
〔2-3.モデルの利用について〕
上述したように、情報提供装置10は、各コンテンツ同士の外観的な類似性や、オブジェクトの類似性等に応じて、各コンテンツの類似性を判定する。この際、情報提供装置10は、利用者が同一の構成サービスを提供するコンテンツであると判定するか否かを学習したモデルを用いて、各コンテンツの類似性を判定してもよい。
例えば、情報提供装置10は、基準コンテンツに含まれる各オブジェクトの外観や配置位置をランダムに変更した変更コンテンツを生成する。また、情報提供装置10は、変更コンテンツと基準コンテンツとを利用者に提供し、各コンテンツが同一もしくは類似するコンテンツであるか否かの問い合わせ、すなわち、コンテンツの組のラベルの問い合わせを行う。なお、かかるラベルの問い合わせは、例えば、クラウドソージング等により実現されてもよい。そして、情報提供装置10は、DNN(Deep Neural Netrowk)等のモデルに対し、基準コンテンツと変更コンテンツとのスクリーンショットやコードを入力した際に、類似するか否かといったラベルを出力するように、モデルの学習を行う。
そして、情報提供装置10は、試験時において、基準コンテンツと比較コンテンツを上述したモデルに入力し、類似するか否かの判定を実現してもよい。このように、情報提供装置10は、各コンテンツの外観や機能の類似性をルールベースで判定してもよく、モデルを用いて直接的に判定してもよい。
〔2-4.比較対象となるコンテンツの範囲について〕
ここで、情報提供装置10は、基準コンテンツおよび比較コンテンツとして、スクリーンショットの比較を行った。しかしながら、基準端末や比較端末の画面サイズによっては、コンテンツの全体が一度に表示されないといった恐れがある。この結果、単一のコンテンツ同士を比較した場合、基準コンテンツと比較コンテンツとが同じオブジェクトを含んでいるにも関わらず、類似性が低いと判定する恐れがある。
そこで、情報提供装置10は、任意の数の基準コンテンツと比較コンテンツとの類似性を比較してよい。例えば、情報提供装置10は、基準端末が基準コンテンツを表示させた際の複数スクリーンショットと、比較端末が前記比較コンテンツを表示させた際の複数のスクリーンショットとを取得し、それぞれの比較結果に基づいて、各コンテンツの類似性を判定してもよい。また、情報提供装置10は、基準端末におけるスクリーンショットと、比較端末におけるスクリーンショットであって、基準端末におけるスクリーンショットとは異なる数のスクリーンショットとを取得し、それぞれの比較結果に基づいて、各コンテンツの類似性を判定してもよい。
例えば、情報提供装置10は、基準端末BTにアプリケーションがコンテンツを表示させる際、表示対象となるコンテンツの一部のみが表示されている場合は、コンテンツの全体が撮影されるように、複数のスクリーンショットを撮影させ、これら複数のスクリーンショットを基準コンテンツとする。同様に、情報提供装置10は、端末装置200にアプリケーションがコンテンツを表示させる際、表示対象となるコンテンツの一部のみが表示されている場合は、コンテンツの全体が撮影されるように、複数のスクリーンショットを撮影させ、これら複数のスクリーンショットを比較コンテンツとする。
そして、情報提供装置10は、基準コンテンツと比較コンテンツとのそれぞれを比較することで、基準コンテンツ全体と比較コンテンツ全体との類似性を判定してもよい。ここで、情報提供装置10は、基準コンテンツとなる1つのスクリーンショットと、比較コンテンツとなるスクリーンショットのうちいずれか1つのスクリーンショットとの比較を行うというように、一対一対応で比較を行ってもよく、例えば、基準コンテンツとなる1つのスクリーンショットと、比較コンテンツとなる複数のスクリーンショットというように、一対多対応で、比較を行ってもよい。また、情報提供装置10は、各スクリーンショットの類似性を総当りで判定し、各判定結果に基づいて、基準コンテンツ全体と比較コンテンツ全体との類似性を判定してもよい。
また、情報提供装置10は、基準端末BTがコンテンツ全体を表示し、端末装置200がコンテンツの一部のみを表示させる場合、基準コンテンツとなる1つのスクリーンショットと、比較コンテンツとなる複数のスクリーンショットとを比較し、基準コンテンツ全体と比較コンテンツ全体との類似性を判定してもよい。また、情報提供装置10は、基準端末BTがコンテンツの一部を表示し、端末装置200がコンテンツの全体を表示させる場合、基準コンテンツとなる複数のスクリーンショットと、比較コンテンツとなる1つのスクリーンショットとを比較し、基準コンテンツ全体と比較コンテンツ全体との類似性を判定してもよい。
〔2-5.適用対象について〕
上述した例では、情報提供装置10は、同じサービスを提供するアプリケーションが、基準端末BTと端末装置200とに表示させた各コンテンツの類似性を判定した。ここで、情報提供装置10は、同一のコードにより構成されるアプリケーションが表示させる各コンテンツの類似性を判定してもよく、異なるコードにより構成されるアプリケーションが表示させる各コンテンツの類似性を判定してもよい。
例えば、基準端末BTと比較端末とが同じOSを実行する場合、情報提供装置10は、それぞれに同一のコードにより構成されるアプリケーションをインストールし、かかるアプリケーションが各端末装置に表示させたコンテンツの類似性を判定してもよい。一方、基準端末BTと比較端末とが異なるOSを実行する場合、情報提供装置10は、それぞれ異なるコードにより構成されるアプリケーションであって、同一のサービスをそれぞれ異なるOS上で提供するためのアプリケーションを対応する端末にインストールする。そして、情報提供装置10は、各端末が表示させたコンテンツの類似性を判定してもよい。
また、情報提供装置10は、判定結果に基づいて、基準端末が実行したアプリケーションと比較端末が実行したアプリケーションとの関係性を示す情報を利用者に通知してもよい。例えば、情報提供装置10は、基準端末が表示させたコンテンツと比較端末が表示させたコンテンツとの類似性が所定の条件を満たす場合は、各アプリケーションが同一のサービスを提供すると利用者が認識可能なアプリケーションであると判定してもよい。なお、このような処理を行う際、情報提供装置10は、アプリケーションが表示する各コンテンツごとに、上述した判定処理を実行し、類似性が所定の条件を満たすコンテンツの割合が所定の条件を満たす場合に、各アプリケーションが同一のサービスを提供すると利用者が認識可能なアプリケーションであると判定してもよい。
また、情報提供装置10は、類似性が所定の条件を満たさないと判定されたコンテンツについての情報を操作者に提供してもよい。このような情報を提供した場合、操作者は、アプリケーションの開発や更新においてどのコンテンツを修正しなければならないかを容易に認識することができる。
また、情報提供装置10は、あるアプリケーションが提供するサービスのロバスト性を判定してもよい。例えば、情報提供装置10は、アプリケーションが表示する各コンテンツごとに、上述した判定処理を実行し、類似性が所定の条件を満たすコンテンツの割合が所定の条件を満たす場合に、そのアプリケーションのロバスト性が所定の条件を満たすと判定し、類似性が所定の条件を満たすコンテンツの割合が所定の条件を満たさない場合に、そのアプリケーションのロバスト性が所定の条件を満たさないと判定してもよい。また、情報提供装置10は、このようなロバスト性の判定結果を操作者に通知してもよい。
また、情報提供装置10は、各コンテンツの類似性の判定結果を用いて、不正なアプリケーションの判定を行ってもよい。例えば、情報提供装置10は、同種の端末装置を基準端末および比較端末として準備し、正当なアプリケーションを基準端末に、判定対象となるアプリケーションを比較端末にインストールする。なお、判定対象となるアプリケーションは、ブラウザ上で動作するウェブアプリであってもよい。
そして、情報提供装置10は、基準端末に表示された基準コンテンツと、比較端末に表示された比較コンテンツとの類似性を判定し、判定結果に応じて、比較端末にインストールされたアプリケーションが不正なアプリケーションであるかを判定してもよい。例えば、情報提供装置10は、各コンテンツの類似性が高いが、完全に一致するものではない場合、比較端末にインストールされたアプリケーションが、正当なアプリケーションを模倣して個人情報を取得するような不正なアプリケーションであると判定してもよい。
ここで、情報提供装置10は、フィッシングサイトに誘導して、利用者のログイン用IDやパスワードを窃取する偽ウェブアプリの判定を行ってもよい。例えば、情報提供装置10は、ウェブを介して利用者に対して各種のサービスを提供する正式なウェブアプリが表示させたコンテンツ(すなわち、アプリケーションが独自で提供するコンテンツのみならず、アプリケーションがウェブAPIと連携して提供する各種のウェブコンテンツ)と、偽ウェブアプリが表示させた各種のコンテンツとの比較を行う。この際、情報提供装置10は、例えば、各コンテンツの外観的な特徴の類比や、各コンテンツのドメイン等といった属性の類似性に基づいて、比較対象となるウェブアプリが偽のウェブアプリであるかを判定してもよい。
〔2-6.複数サービスを提供するアプリケーションについて〕
ここで、スーパーアプリ等と呼ばれるアプリケーションは、単一のサービスのみならず、複数のサービスを提供する場合がある。しかしながら、このようなアプリケーションは、単一のアプリケーションプログラムによりサービスを提供するのではなく、主となるアプリケーションがミニアプリと呼ばれる複数のアプリケーションを呼び出して、各種サービスを提供する場合が多い。そこで、情報提供装置10は、スーパーアプリの動作確認を行う場合、スーパーアプリを構成するミニアプリごとに、基準コンテンツと比較コンテンツとの比較を行ってもよい。
〔2-7.言語について〕
ここで、情報提供装置10は、基準端末と比較端末とがそれぞれ異なる言語のコンテンツを表示する場合、同一内容のテキストを同一のオブジェクトとみなしてもよい。例えば、情報提供装置10は、基準コンテンツに「パスワード」といったテキストが含まれ、比較コンテンツに「Password」といったコンテンツが含まれる場合、これらのコンテンツを同一のコンテンツであると見做し、各コンテンツの類似性を判定してもよい。
〔2-8.端末について〕
ここで、情報提供装置10は、スマートフォン等の端末装置200以外にも、クラウド上の端末装置CTや所定の情報処理装置上でエミュレートされる端末装置ET以外にも、任意の端末を基準端末や比較端末としてもよい。例えば、情報提供装置10は、PCやサーバ装置、各種センサやデジタルサイネージといった実態を有する装置(所謂ハードウェア)を基準端末や比較端末として、各コンテンツの類似性を判定してもよい。また、情報提供装置10は、各種の仮想マシンやPC上で実行されるOSやアプリケーションごとに、基準コンテンツや比較コンテンツを生成し、各コンテンツの類似性に基づいて、アプリケーションのロバスト性等を判定してもよい。
〔2-9.実施形態の効果の一例について〕
上述したように、情報提供装置10は、基準端末に表示された基準コンテンツと比較端末に表示された比較コンテンツとの類似性を判定する。このため、情報提供装置10は、基準コンテンツや比較コンテンツを表示させた同一もしくは異なるアプリケーションの同一性やロバスト性を自動的に判定することができ、アプリケーションの試験等を容易にすることができる。
なお、このように端末装置ごとやOSごとに、基準コンテンツや比較コンテンツを生成しなければならないとしても、情報提供装置10は、自然言語で操作内容を示した操作情報を生成し、生成した操作情報に基づいて適用情報を自動的に生成する。このため、情報提供装置10は、試験対象となるアプリケーションにバージョンが複数存在する場合や、基準端末あるいは比較端末とすべき端末装置のバリエーションが複数存在する場合であっても、これら基準端末、比較端末およびアプリケーションの組合せを自動的に特定し、特定した組合せごとに、各コンテンツの類似性を自動的に判定することができる。このため、情報提供装置10は、人手でアプリケーションを操作し、画面を確認するといった手間を削減することができる。
〔3.情報提供装置の構成〕
以下、上記した情報提供装置10が有する機能構成の一例について説明する。図7は、実施形態に係る情報提供装置の構成例を示す図である。図7に示すように、情報提供装置10は、通信部20、記憶部30、および制御部40を有する。
通信部20は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部20は、ネットワークNと有線または無線で接続され、情報提供装置10、端末装置200、および操作者端末300との間で情報の送受信を行う。
記憶部30は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部30は、操作データベース31、組合わせデータベース32、およびコンテンツデータベース33を記憶する。
操作データベース31には、操作対象が発揮する各種の機能と、その機能を発揮させるために行われる利用者の操作とが対応付けて登録されている。例えば、図8は、実施形態に係る操作データベースに登録される情報の一例を示す図である。図8に示す例では、操作データベース31には、ドメイン、対応機能、操作内容、および自然言語表現といった項目を有する情報が登録されている。なお、図8に示す情報以外にも、操作データベース31には、操作対象に対して適用可能な利用者の操作に関する情報が登録されていてもよい。
例えば、ドメインとは、操作対象が利用者に対して提供するサービスの種別を示す情報である。また、対応機能とは、対応付けられたドメインに属する操作対象が提供する機能であって、所定の画面を介して提供される機能を示す情報である。また、操作内容とは、対応付けられた機能を発揮する画面において利用者が行うことができる操作の内容を示す情報である。また、自然言語表現とは、対応付けられた操作を自然言語で示す情報である。
例えば、図8に示す例では、ドメイン「決済」、対応機能「ログイン」、操作内容「操作#1-1」、および自然言語表現「クリック」が対応付けて登録されている。このような情報は、提供するサービスが「決済」である操作対象が、ある画面において「ログイン」の機能を発揮しており、かかる画面において利用者が行うことができる操作が「操作#1-1」であり、かかる操作の自然言語表現が「クリック」である旨を示す。なお、図8に示す例では、対応機能「ログイン」に対し、「操作#1-1」や「操作#1-2」といった複数の操作が対応付けられている。かかる情報は、「ログイン」を行う画面において、「操作#1-1」(例えば、クリック)や「操作#1-2」(例えば、ユーザID入力)といった複数の操作をおこなうことができる旨を示す。
なお、図8に示す例では「操作#1-1」といった概念的な値を記載したが、実際には、操作内容を示す各種の情報(例えば、インスタンス等)が登録されることとなる。また、操作データベース31には、例えば、スクロール量やクリックの回数、ユーザIDやパスワードを構成する文字列等がさらに登録されていてもよい。
組合わせデータベース32には、操作の組合わせを示す情報、すなわち操作情報が登録される。例えば、図9は、実施形態に係る組合わせデータベースに登録される情報の一例を示す図である。図9に示す例では、組合わせデータベース32には、対応ドメイン、対応機能および操作組合わせが対応付けて登録されている。なお、組合わせデータベース32には、図9に示す情報以外にも、操作の組合わせに関する各種の情報が登録されていてもよい。
ここで、操作組合わせとは、操作対象の機能に応じて決定された複数の操作を示す情報である。また、対応機能とは、操作組合わせが示す操作が、どの機能に対するテストケースであるかを示す情報である。また、対応ドメインとは、対応付けられた操作組合わせがどのドメインに属する操作対象のテストケースであるかを示す情報である。
例えば、図9に示す例では、対応ドメイン「決済」、対応機能「ログイン」および操作組合わせ「組合わせ#1」、「組合わせ#2」等が対応付けて登録されている。かかる情報は、「決済」に関するサービスを提供する操作対象の、「ログイン」の機能を提供する画面において行われるテストケースが「組合わせ#1」や「組合わせ#2」等が示す操作である旨を示す。なお、図9に示す例では、「組合わせ#1」といった概念的な値を記載したが、実際には、複数の操作や各操作を行う順序を示す情報(例えば、インスタンス等)が登録されることとなる。
コンテンツデータベース33には、基準コンテンツとなるデータと、比較コンテンツとなるデータが登録される。例えば、図10は、実施形態に係るコンテンツデータベースに登録される情報の一例を示す図である。図10に示す例では、コンテンツデータベース33には、コンテンツID、コンテンツ種別、取得元端末、スクリーンショット、オブジェクト情報といった項目を有する情報が登録されている。なお、図10に示す情報以外にも、コンテンツデータベース33には、例えば、アプリケーションのバージョン、コンテンツを取得した日時といったタイムスタンプ等、基準コンテンツや比較コンテンツに関する各種の情報が登録されていてもよい。
ここで、コンテンツIDとは、コンテンツの識別子である。また、コンテンツ種別とは、コンテンツが基準コンテンツであるか、比較コンテンツであるかを示す情報である。また、取得元端末は、コンテンツのスクリーンショットを取得した端末装置、すなわち、試験対象となるアプリケーションを実行する端末装置を示す情報である。また、スクリーンショットとは、各コンテンツとして取得されたスクリーンショットのデータである。また、オブジェクト情報とは、コンテンツに含まれる各種オブジェクトに関する情報である。
なお、図10に示す例では、「SSBC1」や「OOBC1」といった概念的な値を記載したが、実際には、スクリーンショットとして取得された各種の画像データや、オブジェクトの内容、種別、外観等を示す各種のデータがコンテンツデータベース33に登録されることとなる。
図7に戻り、説明を続ける。制御部40は、例えば、コントローラ(controller)であり、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報提供装置10内部の記憶装置に記憶されている各種プログラム(通知プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部40は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
図7に示すように、制御部40は、特定部41、決定部42、生成部43、適用部44、取得部45、判定部46、および通知部47を有する。
特定部41は、利用者の操作対象が発揮する機能を特定する。例えば、特定部41は、操作対象となるアプリケーションが所定の端末装置に対して表示させる画面に基づいて、その操作対象が発揮する機能を特定する。すなわち、特定部41は、画面を介して提供される機能を特定する。例えば、特定部41は、操作対象が提供するサービスの種別、すなわち、ドメインを特定する。そして、特定部41は、特定したドメインと、操作対象が提供する各画面上のオブジェクトに基づいて、操作対象が各画面上で提供する機能を画面ごとに特定する。
決定部42は、特定された機能に応じて、操作対象に対して行われる利用者の操作の組合わせを決定する。例えば、決定部42は、機能と、操作対象にその機能を発揮させる際に行われる利用者の操作とを対応付けた操作データベース31を参照し、特定部41により特定された機能と対応する操作に基づいて、組合わせを決定する。
生成部43は、決定された操作の組合わせを自然言語で表した操作情報を生成する。例えば、生成部43は、操作対象が提供する画面ごとに、操作情報を生成する。例えば、生成部43は、操作情報の生成対象となる画面において提供される機能と、操作対象のドメインとに対応付けられた操作組合わせを組合わせデータベース32から取得する。続いて、生成部43は、各操作組合わせに含まれる各操作を示す自然言語表現を操作データベース31から取得する。そして、生成部43は、取得した自然言語表現と、操作組合わせに含まれる操作の順序とに応じて、操作組合わせが示す操作内容を自然言語で示す操作情報を操作組合わせごとに生成する。このような処理の結果、情報提供装置10は、テストケースとなる操作情報を自動的に生成することができる。
適用部44は、生成部43によって生成された操作情報に従って、対象の試験を行う。例えば、適用部44は、操作情報を取得すると、図3に例示した処理を実行することで、操作情報と対象との組み合わせごとに適用情報を生成し、生成した適用情報を端末装置200に適用することで、試験を実現する。なお、適用部44が実行する適用処理については、上述した各種の処理が適用可能であるものとし、詳細な説明を省略する。
なお、適用部44は、上述した判定処理を実行する場合、各端末装置200を比較端末として、比較端末200にスナップショットを取得し、送信させるための適用情報を生成する。なお、このような処理は、例えば、生成部43により生成された操作情報に基づいて実現されてもよい。
取得部45は、基準端末が所定のアプリケーションを実行した際に表示させた基準コンテンツと、比較対象となる比較端末が所定のアプリケーションを実行した際に表示させた比較コンテンツとを取得する。例えば、取得部45は、基準端末BTに試験対象となるアプリケーションをインストールさせるとともに、アプリケーションが表示させるすべてのコンテンツ、あるいはあらかじめ定められた一部のコンテンツを表示させ、各コンテンツのスクリーンショットを取得させる。そして、取得部45は、基準端末BTからスクリーンショットを基準コンテンツとして取得する。
また、取得部45は、各端末装置200から、アプリケーションが表示させたコンテンツのスクリーンショットを比較コンテンツとして取得する。すなわち、取得部45は、比較端末が基準端末と同じ所定のアプリケーションを実行した際に表示させた比較コンテンツを取得する。なお、取得部45は、基準端末が基準コンテンツを表示させた際の複数スクリーンショットと、比較端末が比較コンテンツを表示させた際の複数のスクリーンショットとを取得してもよい。すなわち、取得部45は、1つのコンテンツの一部を表示させた際のスクリーンショットを基準コンテンツや比較コンテンツとして取得してもよい。また、取得部45は、同一のコンテンツについて、異なる数のスクリーンショットを基準コンテンツおよび比較コンテンツとして取得してもよい。
また、取得部45は、各コンテンツとなるスクリーンショットから、各種のオブジェクトを特定し特定したオブジェクトに関する情報をオブジェクトとして抽出し、スクリーンショットとオブジェクトとをコンテンツデータベース33に登録する。なお、取得部45は、各コンテンツの外観が有する特徴量を算出し、コンテンツデータベース33に登録してもよい。
判定部46は、基準コンテンツが有する特徴と、比較コンテンツが有する特徴との類似性が所定の条件を満たすか否かを判定する。ここで、判定部46は、利用者が、同一のサービスを提供するコンテンツであると認識することができる程度に、各コンテンツの類似性を判定するのであれば、任意の基準に基づいて、各コンテンツの類似性を判定してよい。以下に説明する判定基準は、あくまで一例であり、実施形態は、これに限定されるものではない。
例えば、判定部46は、基準コンテンツの外観が有する特徴と、比較コンテンツが有する外観の特徴との類似性が所定の条件を満たすか否かを判定する。例えば、判定部46は、各種の特徴量や、ピクセル単位での比較により、各コンテンツの外観の類似性を判定する。
また、判定部46は、基準コンテンツ内に配置されたオブジェクトの配置位置と、比較コンテンツ内に配置されたオブジェクトの配置位置との類似性が所定の条件を満たすか否かを判定してもよい。例えば、判定部46は、テキスト、画像、各種機能オブジェクト等が画面上に表示された位置を特定し、特定した位置の類似性に基づいて、各コンテンツの類似性を判定してもよい。
また、判定部46は、基準コンテンツ内に配置された複数のオブジェクトの相対的な配置位置と、比較コンテンツ内に配置された複数のオブジェクトの相対的なオブジェクトの配置位置との類似性が所定の条件を満たすか否かを判定してもよい。例えば、判定部46は、「パスワード」といった所定のテキストと、パスワードを入力するためのテキストボックスといった所定の機能オブジェクトとの相対的な位置関係(例えば、縦方向に並んでいる、横方向に並んでいる、離れている方向、離れている距離等)を各コンテンツごとに特定し、特定した位置関係が類似しているか否かに応じて、各コンテンツの類似性を判定してもよい。
また、判定部46は、基準コンテンツ内に複数のオブジェクトが配置されている順序と、比較コンテンツ内に複数のオブジェクトが配置されている順序との類似性が所定の条件を満たすか否かを判定してもよい。例えば、判定部46は、各コンテンツにおいて、所定のオブジェクトが所定の順序で並んでいるか否か、各オブジェトが配置されている順序の類似性等に応じて、各コンテンツの類似性を判定してもよい。
また、判定部46は、基準コンテンツに含まれる文字が有する外観の特徴と、比較コンテンツに含まれる文字が有する外観の特徴との類似性が所定の条件を満たすか否かを判定してもよい。例えば、判定部46は、各コンテンツにおけるテキストの内容、色彩、フォントサイズ、自体等の類似性に基づいて、各コンテンツの類似性を判定してもよい。
また、判定部46は、基準コンテンツ内に配置されたオブジェクトと類似するオブジェクトが比較コンテンツ内に配置されているか否かに基づいて、基準コンテンツが有する特徴と、比較コンテンツが有する特徴との類似性が所定の条件を満たすか否かを判定してもよい。例えば、判定部46は、各コンテンツ内に同一もしくは類似するオブジェクト(例えば、表示サイズが少し異なるが、同一のテキストが配置されたボタン等)が配置されているか否か、同一もしくは類似するオブジェクトが配置されている数に応じて、各コンテンツの類似性を判定してもよい。
また、判定部46は、基準コンテンツ内に配置されたオブジェクトのうち、利用者からの操作により所定の機能を発揮する機能オブジェクトと、比較コンテンツ内に配置された機能オブジェクトとの類似性が所定の条件を満たすか否かを判定してもよい。また、判定部46は、基準コンテンツ内に配置された機能オブジェクトが発揮する機能と、比較コンテンツ内に配置された機能オブジェクトが発揮する機能との類似性が所定の条件を満たすか否かを判定してもよい。例えば、判定部46は、共通する機能を発揮する機能オブジェクトが各コンテンツに共通して配置されている場合は、各コンテンツが類似すると判定してもよい。
また、判定部46は、基準コンテンツ内に配置された機能オブジェクトの外観と、比較コンテンツ内に配置された機能オブジェクトの外観との類似性が所定の条件を満たすか否かを判定してもよい。例えば、判定部46は、各コンテンツに含まれる機能オブジェクトの外観を、ピクセルごと或いは特徴量比較により、各コンテンツ内に配置されている機能オブジェクトの外観の類似性を判定し、判定結果に応じて、各コンテンツの類似性を判定してもよい。
また、判定部46は、基準コンテンツが有する属性の特徴と、比較コンテンツが有する属性の特徴との類似性が所定の条件を満たすか否かを判定してもよい。また、判定部46は、基準コンテンツが有する機能の特徴と、比較コンテンツが有する機能の特徴との類似性が所定の条件を満たすか否かを判定してもよい。
なお、判定部46は、上述した各種の基準に基づいて、類似性を示すスコアを算出する。しかしながら、実施形態はこれに限定されるものではない。判定部46は、基準コンテンツが有する特徴を示す基準特徴情報と比較コンテンツが有する特徴を示す比較特徴情報とが入力された場合に、利用者によって設定された情報であって、基準コンテンツと比較コンテンツとが類似するか否かを示す情報を出力するように学習が行われたモデルを用いて、基準コンテンツが有する特徴と、比較コンテンツが有する特徴との類似性が所定の条件を満たすか否かを判定してもよい。すなわち、判定部46は、共通する構成サービスを提供するコンテンツであると利用者が判断したコンテンツの特徴を学習したモデルを用いて、基準コンテンツと比較コンテンツとの共通性を判定してもよい。
なお、上述した処理は、コンテンツデータベース33に登録された情報を参照して実行することとなる。例えば、判定部46は、コンテンツデータベース33を参照し、基準コンテンツと、基準コンテンツに対する比較コンテンツとのスクリーンショットやオブジェクト情報を取得する。そして、判定部46は、取得した情報に基づき、基準コンテンツと比較コンテンツとの類似性を判定する。
通知部47は、判定結果に応じて、基準端末が実行したアプリケーションと比較端末が実行したアプリケーションとの関係性を示す情報を利用者に通知する。例えば、通知部47は、あるアプリケーションが比較端末に表示させた各比較コンテンツのうち、各比較コンテンツに対応する基準コンテンツと類似すると判定されたコンテンツの割合が所定の閾値を超える場合は、基準端末が実行したアプリケーションと比較端末が実行したアプリケーションとの同一性が担保されている旨を通知してもよい。また、通知部47は、比較した結果類似しないと判定された各コンテンツに関する情報を通知してもよい。
〔4.処理手順〕
次に、図11を用いて、実施形態に係る情報提供装置10による判定処理の手順について説明する。図11は、実施形態に係る判定処理の流れの一例を示すフローチャートである。
例えば、情報提供装置10は、判定対象となるアプリケーションを受付けたか否かを判定する(ステップS201)。そして、情報提供装置10は、アプリケーションを受付けていない場合は(ステップS201:No)、受付けるまで待機する(ステップS201)。一方、情報提供装置10は、アプリケーションを受付けた場合は(ステップS201:Yes)、基準端末にアプリケーションを実行させ、基準コンテンツを取得する(ステップS202)。なお、情報提供装置10は、基準コンテンツが所定のデータベースに登録済みである場合は、それを取得すればよい。
また、情報提供装置10は、比較端末にアプリケーションを実行させ、比較コンテンツを取得する(ステップS203)。なお、情報提供装置10は、任意の順序でステップS202、S203を実行してもよい。
そして、情報提供装置10は、基準コンテンツと比較コンテンツとの類似性が所定の条件を満たすか否かを判定し(ステップS204)、判定結果に応じた情報を提供して(ステップS205)、処理を終了する。
〔5.変形例〕
上述した情報提供装置10は、上記実施形態以外にも種々の異なる形態にて実施されてもよい。そこで、以下では、情報提供装置10の他の実施形態について説明する。
〔5-1.操作について〕
上述した例では、情報提供装置10は、アプリケーションが表示させたコンテンツの比較を行った。ここで、情報提供装置10は、生成処理や適用処理により生成された適用処理による試験において自動的に適用される操作の結果表示されるコンテンツの比較を行ってもよい。例えば、情報提供装置10は、利用者があるボタンをタップした場合や、QRコードの支払を行った場合、メニューを開く操作を行った場合において表示されるコンテンツを基準コンテンツや比較コンテンツとして取得し、取得した基準コンテンツや比較コンテンツの類似性を判定してもよい。
このように、情報提供装置10は、各種の操作により基準コンテンツや比較コンテンツの表示態様が変化する場合、変化前のコンテンツと変化後のコンテンツとをそれぞれ個別の基準コンテンツや比較コンテンツとして取得し、類似性を判定してもよい。なお、このような処理は、例えば、操作を行うたびにスクリーンショットを取得し、取得したスクリーンショットを基準コンテンツや比較コンテンツとして取得させる適用情報を生成することにより実現可能である。また、このような処理を行う場合、情報提供装置10は、例えば、基準コンテンツや比較コンテンツが、どのような操作が行われた際に表示されたものであるかに応じて、比較対象とする基準コンテンツや比較コンテンツを選択すればよい。すなわち、情報提供装置10は、基準端末や比較端末において、同じ操作が行われた際にアプリケーションが表示させるコンテンツの類似性を判定すればよい。
なお、情報提供装置10は、例えば、SNS等に対する所定の文字列や写真といったコンテンツの投稿や、ゲーム等に対する入力、動画の閲覧といった任意の行動が行われた際における操作が行われる度に、スクリーンショットを基準コンテンツや比較コンテンツとして取得させてもよい。また、情報提供装置10は、例えば、端末装置200の向きを変更する、端末装置200を振る、音量を変更する等、音声による各種操作の入力といったハードウェアに依存する各種の行動が行われる際の操作が行われる度に、スクリーンショットを基準コンテンツや比較コンテンツとして取得させてもよい。
また、情報提供装置10は、任意のアプリケーションについて上述した各種の処理を実行してよい。例えば、情報提供装置10は、端末装置200を用いた各種の決済サービスを提供するアプリケーションについて、操作情報の生成や、基準コンテンツや比較コンテンツの比較を行ってもよい。例えば、決済サービスには、店舗に設置されたQRコード(登録商標)を読み取るとともに、決済額の入力を受付け、QRコードと対応する店舗の口座に対し、受付けた決済額の電子マネーを利用者の口座から送金するといったサービスが存在する。また、決済サービスには、利用者の口座やクレジットカードを識別するバーコードを表示し、表示したバーコードを店舗の端末が読み取ることで、利用者に対する課金を実現するものが存在する。
情報提供装置10は、このような各種決済サービスに関するアプリケーションについて、操作情報の生成や基準コンテンツや比較コンテンツの比較を行ってもよい。この場合、情報提供装置10は、例えば、所定の送金額を入力した場合、QRコードを読み取った場合、利用者の口座を示すバーコードを表示させた場合等において、基準コンテンツや比較コンテンツの比較を行うことで、適切な額や情報の表示が行われているかを判定してもよい。
〔5-2.目的について〕
ここで、情報提供装置10は、対象のアプリケーションの試験以外にも、任意の目的で上述した判定処理を行ってよい。例えば、各種の提携作業をソフトウェア型のロボットやAI(Artificial Intelligence)が代行、自動化するRPA(Robotic Process Automation)の技術が知られている。情報提供装置10は、このようなRPAの技術において、上述した判定処理を適用してもよい。例えば、情報提供装置10は、基準端末となるロボットの動作結果(例えば、動作時の外観を撮影した動画像)を基準コンテンツとし、比較端末となるロボットの動作結果を比較コンテンツとする。そして、情報提供装置10は、各コンテンツの同一性に基づいて、比較端末となるロボットが適切に動作するかを判定してもよい。
また、情報提供装置10は、QAAS(Quality Assurance as a Service)を試験するために、各種ソフトウェアの比較処理を実行してもよい。例えば、情報提供装置10は、基準コンテンツと比較コンテンツとの類似性が所定の閾値を超える場合は、比較端末において実行されたアプリケーションのクオリティが所定の条件を満たすと判定してもよい。
このように、情報提供装置10は、表示される画像の類似性を判定する試験のみならず、アプリケーションが適切に動作するか、アプリケーションのクオリティが所定の閾値を超えているかに、判定結果を利用してもよい。また、情報提供装置10は、上述した目的以外にも、対象に対する操作を示す操作情報を生成するのであれば、任意の目的について、適用情報を生成してよい。
〔5-3.処理態様について〕
上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、逆に、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組合わせることが可能である。
〔5-4.プログラム〕
また、上述した実施形態に係る情報提供装置10は、例えば図12に示すような構成のコンピュータ1000によって実現される。図12は、ハードウェア構成の一例を示す図である。コンピュータ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の機能を実現する。
〔6.効果〕
上述したように、情報提供装置10は、基準端末が所定のアプリケーションを実行した際に表示させた基準コンテンツと、比較対象となる比較端末が所定のアプリケーションを実行した際に表示させた比較コンテンツとを取得する。そして、情報提供装置10は、基準コンテンツが有する特徴と、比較コンテンツが有する特徴との類似性が所定の条件を満たすか否かを判定する。
例えば、情報提供装置10は、比較端末が基準端末と同じ所定のアプリケーションを実行した際に表示させた比較コンテンツを取得する。このような処理の結果、情報提供装置10は、同一のアプリケーションが異なる端末装置に表示させるコンテンツの類似性を判定することができるので、アプリケーションの開発時や更新時において、適切な開発が行われているかを自動的に判定することができる。また、情報提供装置10は、異なるアプリケーションを比較端末と基準端末とに実行させた場合、比較端末で実行させたアプリケーションが、基準端末で実行させたアプリケーションと同一視できるかを自動的に判定することができる。このような判定を自動化する結果、情報提供装置10は、各種アプリケーションが提供するUIの試験を自動化し、手間を削減することができる。
また、情報提供装置10は、基準コンテンツの外観が有する特徴と、比較コンテンツが有する外観の特徴との類似性が所定の条件を満たすか否かを判定する。また、情報提供装置10は、基準コンテンツ内に配置されたオブジェクトの配置位置と、比較コンテンツ内に配置されたオブジェクトの配置位置との類似性が所定の条件を満たすか否かを判定する
このため、情報提供装置10は、利用者が同一のサービスを提供するコンテンツであると判断することができる程度に外観が類似しているかを自動的に判定することができる。
また、情報提供装置10は、基準コンテンツ内に配置された複数のオブジェクトの相対的な配置位置と、比較コンテンツ内に配置された複数のオブジェクトの相対的なオブジェクトの配置位置との類似性が所定の条件を満たすか否かを判定する。また、情報提供装置10は、基準コンテンツ内に複数のオブジェクトが配置されている順序と、比較コンテンツ内に複数のオブジェクトが配置されている順序との類似性が所定の条件を満たすか否かを判定する。このため、情報提供装置10は、オブジェクトの相対的な位置関係や順序が利用者に与える類似性に応じて、各コンテンツの類似性を判定することができる。
また、情報提供装置10は、基準コンテンツに含まれる文字が有する外観の特徴と、比較コンテンツに含まれる文字が有する外観の特徴との類似性が所定の条件を満たすか否かを判定する。このため、情報提供装置10は、字体等、文字の外観が利用者に与える類似性に応じて、各コンテンツの類似性を判定することができる。
また、情報提供装置10は、基準コンテンツ内に配置されたオブジェクトと類似するオブジェクトが比較コンテンツ内に配置されているか否かに基づいて、基準コンテンツが有する特徴と、比較コンテンツが有する特徴との類似性が所定の条件を満たすか否かを判定する。また、情報提供装置10は、基準コンテンツ内に配置されたオブジェクトのうち、利用者からの操作により所定の機能を発揮する機能オブジェクトと、比較コンテンツ内に配置された機能オブジェクトとの類似性が所定の条件を満たすか否かを判定する。このため、情報提供装置10は、各種のコンテンツの有無や類似性に応じて、各コンテンツの類似性を判定することができる。
また、情報提供装置10は、基準コンテンツ内に配置された機能オブジェクトが発揮する機能と、比較コンテンツ内に配置された機能オブジェクトが発揮する機能との類似性が所定の条件を満たすか否かを判定する。このため、情報提供装置10は、各コンテンツが提供する機能の類似性に基づいて、各コンテンツの類似性を判定することができる。
また、情報提供装置10は、基準コンテンツ内に配置された機能オブジェクトの外観と、比較コンテンツ内に配置された機能オブジェクトの外観との類似性が所定の条件を満たすか否かを判定する。このため、情報提供装置10は、外観が利用者に与える類似性に応じて、各コンテンツの類似性を判定することができる。
また、情報提供装置10は、基準コンテンツが有する属性の特徴と、比較コンテンツが有する属性の特徴との類似性が所定の条件を満たすか否かを判定する。また、情報提供装置10は、基準コンテンツが有する機能の特徴と、比較コンテンツが有する機能の特徴との類似性が所定の条件を満たすか否かを判定する。このため、情報提供装置10は、各コンテンツの類似性を適切に判定し、各コンテンツの類似性を判定することができる。
また、情報提供装置10は、基準コンテンツが有する特徴を示す基準特徴情報と比較コンテンツが有する特徴を示す比較特徴情報とが入力された場合に、利用者によって設定された情報であって、その基準コンテンツと比較コンテンツとが類似するか否かを示す情報を出力するように学習が行われたモデルを用いて、基準コンテンツが有する特徴と、比較コンテンツが有する特徴との類似性が所定の条件を満たすか否かを判定する。このため、情報提供装置10は、利用者が各コンテンツを同一の機能を提供するコンテンツと判断するか否かを自動的に判定することができる。
また、情報提供装置10は、基準端末が表示させた基準コンテンツのスクリーンショットと、比較端末が表示させた比較コンテンツのスクリーンショットとを取得する。また、情報提供装置10は、基準端末が基準コンテンツを表示させた際の複数スクリーンショットと、比較端末が比較コンテンツを表示させた際の複数のスクリーンショットとを取得する。また、情報提供装置10は、基準端末におけるスクリーンショットと、比較端末におけるスクリーンショットであって、基準端末におけるスクリーンショットとは異なる数のスクリーンショットとを取得する。このため、情報提供装置10は、単一のコンテンツの全体が基準端末あるいは比較端末に表示される場合や、一部のみが表示される場合であっても、適切にコンテンツの同一性を自動的に判定することができる。
また、情報提供装置10は、判定結果に応じて、基準端末が実行したアプリケーションと比較端末が実行したアプリケーションとの関係性を示す情報を利用者に通知する。このため、情報提供装置10は、例えば、アプリケーションの修正の要否や、アプリケーションが正当なアプリケーションであるか否かといった各種の情報を提供することができる。
以上、本願の実施形態を図面に基づいて詳細に説明したが、これは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。