JP6861880B1 - Generation device, generation method and generation program - Google Patents
Generation device, generation method and generation program Download PDFInfo
- Publication number
- JP6861880B1 JP6861880B1 JP2020163457A JP2020163457A JP6861880B1 JP 6861880 B1 JP6861880 B1 JP 6861880B1 JP 2020163457 A JP2020163457 A JP 2020163457A JP 2020163457 A JP2020163457 A JP 2020163457A JP 6861880 B1 JP6861880 B1 JP 6861880B1
- Authority
- JP
- Japan
- Prior art keywords
- information
- providing device
- information providing
- function
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 76
- 230000006870 function Effects 0.000 claims abstract description 229
- 238000012360 testing method Methods 0.000 claims abstract description 96
- 230000008569 process Effects 0.000 claims description 57
- 230000009471 action Effects 0.000 claims description 47
- 238000010586 diagram Methods 0.000 abstract description 18
- 238000012545 processing Methods 0.000 description 38
- 238000003860 storage Methods 0.000 description 17
- 230000006399 behavior Effects 0.000 description 11
- 230000010365 information processing Effects 0.000 description 7
- 238000000605 extraction Methods 0.000 description 5
- 238000013515 script Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 240000008067 Cucumis sativus Species 0.000 description 2
- 235000010799 Cucumis sativus var sativus Nutrition 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241000208306 Apium Species 0.000 description 1
- 235000011293 Brassica napus Nutrition 0.000 description 1
- 240000008100 Brassica rapa Species 0.000 description 1
- 235000000540 Brassica rapa subsp rapa Nutrition 0.000 description 1
- 235000009075 Cucumis anguria Nutrition 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000004801 process automation Methods 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】任意の対象に対する試験を容易にする。【解決手段】本願に係る生成装置は、利用者の操作対象が発揮する機能を特定する特定部と、特定された機能に応じて、操作対象に対して行われる利用者の操作の組合わせを決定する決定部と、決定された操作の組合わせを自然言語で表した操作情報を生成する生成部とを有することを特徴とする。【選択図】図1PROBLEM TO BE SOLVED: To facilitate a test for an arbitrary object. A generator according to the present application combines a specific unit that specifies a function exerted by a user's operation target and a user's operation performed on the operation target according to the specified function. It is characterized by having a determination unit for determining and a generation unit for generating operation information in which a combination of determined operations is expressed in natural language. [Selection diagram] Fig. 1
Description
本発明は、生成装置、生成方法および生成プログラムに関する。 The present invention relates to a generator, a generator and a generator.
従来、操作対象の試験に係る手間を削減するための手法が提案されている。このような手法の一例として、結果内容に応じてテストケースを分類し、分類結果に応じてソフトウェアに対する試験の内容を生成する技術が知られている。 Conventionally, a method for reducing the labor involved in the test of the operation target has been proposed. As an example of such a method, a technique is known in which test cases are classified according to the result contents and the test contents for software are generated according to the classification results.
しかしながら、上述した従来技術では、テストケースの内容に基づいて、試験内容を生成しているに過ぎない。このため、上述した従来技術では、操作対象ごとにテストケースを準備する手間がかかる。 However, in the above-mentioned conventional technique, the test content is only generated based on the content of the test case. Therefore, in the above-mentioned conventional technique, it takes time and effort to prepare a test case for each operation target.
また、上述した従来技術では、テスト対象となるアプリケーションごとに、どのような内容のテストを行えばよいかをあらかじめ利用者が準備する必要がある。しかしながら、このように、テストの内容を人手で準備した場合は、テストすべき内容の欠落等といったミスが生じる恐れがある。 Further, in the above-mentioned conventional technique, it is necessary for the user to prepare in advance what kind of test should be performed for each application to be tested. However, when the test contents are manually prepared in this way, mistakes such as lack of test contents may occur.
本願は、上記に鑑みてなされたものであって、任意の対象に対する試験を容易にすることを目的とする。 The present application has been made in view of the above and aims to facilitate testing on any subject.
本願に係る生成装置は、利用者の操作対象が発揮する機能を特定する特定部と、特定された機能に応じて、操作対象に対して行われる利用者の操作の組合わせを決定する決定部と、決定された操作の組合わせを自然言語で表した操作情報を生成する生成部とを有することを特徴とする。 The generator according to the present application is a determination unit that determines a combination of a specific unit that specifies a function that the user's operation target exerts and a user's operation that is performed on the operation target according to the specified function. It is characterized by having a generation unit that generates operation information in which a combination of determined operations is expressed in natural language.
実施形態の一態様によれば、任意の対象に対する試験を容易にすることができる。 According to one aspect of the embodiment, testing on any subject can be facilitated.
以下に、本願に係る生成装置、生成方法および生成プログラムを実施するための形態(以下、「実施形態」と記載する。)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成装置、生成方法および生成プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。 Hereinafter, a generator, a generation method, and a mode for carrying out the generation program according to the present application (hereinafter, referred to as “the embodiment”) will be described in detail with reference to the drawings. The generator, the generation method, and the generation program according to the present application are not limited by this embodiment. Further, in each of the following embodiments, the same parts will be designated by the same reference numerals, and duplicate description will be omitted.
[実施形態]
〔1−1.情報提供装置の一例について〕
まず、図1を用いて、実施形態に係る生成装置の一例である情報提供装置10の一例について説明する。図1は、実施形態に係る情報提供装置の一例を示す図である。なお、図1では、情報提供装置10が実行する機能の一例として、各種の端末装置にインストールされたアプリケーションのデバッグを行うためにアプリケーションの試験を行うための操作情報を生成する処理の一例について記載した。
[Embodiment]
[1-1. About an example of information providing device]
First, an example of the
図1に示す情報提供装置10は、生成処理を実行する情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。例えば、情報提供装置10は、端末装置201〜203がインストールしたOS(Operating System)や、OS上で動作する各種アプリケーション等といった各種ソフトウェアの動作を自動的に試験するための操作情報を生成する。なお、操作情報については、後述する。
The
また、情報提供装置10は、上述した生成処理に加え、生成された操作情報に従って、端末装置201〜203にインストールされたアプリケーションのテストを行う機能を有する。なお、このような機能は、情報提供装置10自体が実行する必要はなく、例えば、サーバ装置やクラウドシステム等により実現される他の情報処理装置(例えば、適用装置)により実現されてもよい。例えば、情報提供装置10は、端末装置201〜203にインストールされた各種ソフトウェアの動作を自動的に試験する。
Further, the
端末装置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等の情報処理装置により実現される。
The
〔1−2.適用処理の一例について〕
ここで、情報提供装置10が実行する生成処理を説明する前に、情報提供装置10が実行する適用処理について説明する。例えば、各端末装置200の動作確認や、ソフトウェアのデバッグを行う場合、各端末装置200に対して様々な処理を様々な順番で繰り返し入力し、誤った動作が行われないかを操作の度に判定することとなる。しかしながら、このような試験を人手で行った場合、手間がかかる。また、人手での試験では、誤った操作が行われてしまい、適切な試験が実現できない恐れがある。
[1-2. About an example of application processing]
Here, before explaining the generation process executed by the
そこで、情報提供装置10は、以下の適用処理を実行する。まず、情報提供装置10は、所定の対象に対して行われる利用者の行動、換言すると、アプリケーション等の所定の対象が提供する機能を自然言語で示す操作情報を取得する。例えば、アプリケーションが利用者に対してログインの機能を提供した場合、利用者は、その機能を発揮させることでログインといった行動を行うこととなる。また、アプリケーションが各種の決済機能を発揮するアプリケーションである場合、利用者は、アプリケーションが提供する決済機能を発揮させることで、決済といった行動を行うこととなる。そして、情報提供装置10は、取得した操作情報から、操作情報が示す行動が行われた際に対象に対して行われる操作を対象に対して適用するための適用情報を生成する。
Therefore, the
例えば、情報提供装置10は、あるソフトウェアのログインが適切に行えるか否かの試験を行う場合、「ログインをする」といった、ログイン時における利用者の動作を自然言語で示す指示を取得する。このような場合、情報提供装置10は、操作対象となるソフトウェアにおいてログインを行うための操作を特定し、特定した操作をソフトウェア上で実現するための適用情報を生成する。
For example, when the
例えば、情報提供装置10は、「ログイン」という行動を行うために、「ログインを行うためのログインコンテンツを表示する」操作を行った後で、「ユーザIDを入力する」操作と「パスワードを入力する」操作を行い、さらに「ログインを行うためのログインボタンをタップする」操作が必要となる場合は、これら各操作を特定する。なお、このような行動を行うために必要な各種の操作の特定は、操作対象となるアプリケーションごとに生成された辞書データであって、想定される行動と、その行動が行われる際に行われる操作とを対応付けた辞書データを用いて、ルールベースにより特定される。
For example, the
そして、情報提供装置10は、特定した各操作を端末装置200に適用するための適用情報を生成する。例えば、情報提供装置10は、端末装置200に対し、各種のタップ操作やテキストの入力操作を端末装置200上で再現するための各種公知技術(例えば、Appiumといった各種のUI(User Interface)のテスト自動化フレームワークの技術)を用いて、特定した各操作を端末装置200に対して行うための適用情報を生成する。
Then, the
このような処理を行った場合、情報提供装置10は、テスト自動化フレームワークを利用するための知識を操作者が有しない場合であっても、試験時における利用者の行動を自然言語で記述するだけで、端末装置200の操作を実現することができる。このため、情報提供装置10は、端末装置200の試験を容易にすることができる。
When such processing is performed, the
〔1−3.端末装置が複数存在する場合について〕
ここで、操作対象となる端末装置200が複数存在する場合、各端末装置200ごとに異なる適用情報が必要となる場合がある。例えば、操作対象となる複数の端末装置200が、同一種別のスマートフォンである場合だけでなく、スマートフォン、タブレット、およびPCといったそれぞれ異なる種別の複数の端末装置200である場合や、それぞれメーカ、OS、バージョン等が異なる端末装置200である場合も考えられる。また、一部複数の端末装置200の種別が同一であり、他の端末装置200が異なる種別である場合も考えられる。しかしながら、各端末装置200で実行されるOSやアプリケーションが異なる場合、OSごと、アプリケーションごと、若しくはOSやアプリケーションの組合わせごとに、異なる適用情報を生成する手間がかかる。
[1-3. When there are multiple terminal devices]
Here, when there are a plurality of terminal devices 200 to be operated, different application information may be required for each terminal device 200. For example, not only when the plurality of terminal devices 200 to be operated are smartphones of the same type, but also when there are multiple terminal devices 200 of different types such as smartphones, tablets, and PCs, and when the manufacturers, OSs, etc. It is also conceivable that the terminal devices 200 have different versions and the like. It is also possible that some of the plurality of terminal devices 200 have the same type, and the other terminal devices 200 have different types. However, when the OS or application executed by each terminal device 200 is different, it takes time and effort to generate different application information for each OS, each application, or each combination of OS and application.
しかしながら、情報提供装置10は、各端末装置200で実行させる操作の内容ではなく、各端末装置200に対して行われる利用者の行動、すなわち、アプリケーションが利用者に対して提供する機能のうち利用者が利用する機能(例えば、ログイン等)を自然言語で示す指示から、適用情報を生成する。より具体的には、情報提供装置10は、複数の対象に対して共通して行われる利用者の行動を自然言語で示す操作情報を取得し、取得した操作情報から、対象ごとに、操作情報が示す行動が行われた際に対象に対して行われる操作を対象に再現させるための再現情報を生成する。
However, the
換言すると、情報提供装置10は、それぞれバージョンなどが異なる複数のアプリケーションを試験対象とする場合に、各アプリケーションが共通して提供する機能を自然言語で示す指示、すなわち、各アプリケーションの機能を上位概念化した指示に基づいて、各アプリケーションごとにその機能を発揮させるための操作を特定し、特定した操作を再現させるための再現情報を生成する。
In other words, the
このため、情報提供装置10は、操作対象となる端末装置200がそれぞれ異なる種別である場合や、端末装置200上のアプリケーションやOSがそれぞれ異なる場合、端末装置の種別やアプリケーションの組合せが異なる場合であっても、各端末装置200に対して共通して行われる利用者の行動を示す単一の操作情報から、各端末装置ごとに、操作情報が示す行動が行われる際に端末装置200に対して行われる操作を行わせるための適用情報を生成することができる。換言すると、端末装置200は、単一の行動に対応する各端末装置200ごとに異なる操作を実現する単一のインタフェースとして動作することができる。
Therefore, the
〔1−4.生成処理について〕
上述したように、情報提供装置10は、試験対象の機能を上位概念化した指示、すなわち、アプリケーションに対して行われる利用者の行動や利用者が利用する機能を自然言語で示す指示に基づいて、アプリケーションの試験を行うことができる。このため、操作者は、試験対象としたい利用者の行動や機能を自然言語で表した情報のみで、試験を行うことができる。
[1-4. About generation processing]
As described above, the
しかしながら、係る処理のみでは適切な試験を行うことができるとは言えない。例えば、アプリケーションが提供するログインにおける試験では、ログインが適切に行えたか否かだけではなく、ログインが行われた際にどのような操作でログインができなかったかを知る必要がある。しかしながら、このような詳細な操作内容を人手で設定するのは手間がかかる。また、人手で各種操作内容を設定した場合、人的ミスにより、試行すべき操作内容が設定されず、バグが見逃される恐れがある。 However, it cannot be said that an appropriate test can be performed only by such a process. For example, in the login test provided by the application, it is necessary to know not only whether or not the login was performed properly, but also what kind of operation was not possible to log in when the login was performed. However, it is troublesome to manually set such detailed operation contents. In addition, when various operation contents are set manually, the operation contents to be tried are not set due to human error, and a bug may be overlooked.
そこで、情報提供装置10は、以下の生成処理を実行する。まず、情報提供装置10は、利用者の操作対象が発揮する機能を特定する。続いて、情報提供装置10は、特定された機能に応じて、操作対象に対して行われる利用者の操作の組合わせを決定する。そして、情報提供装置10は、決定された操作の組合わせを自然言語で表した操作情報を生成する。
Therefore, the
例えば、情報提供装置10は、利用者の操作対象となるアプリケーションの解析を行い、アプリケーションの各種機能を特定する。例えば、情報提供装置10は、アプリケーションが提供する機能として、ログイン、QRコード(登録商標)の読み取りや送信といった決済に関する各種の機能、音楽コンテンツや地図コンテンツ等といった各種コンテンツを適用する機能など、アプリケーションが発揮する機能であって、利用者が利用可能な機能を特定する。なお、このような機能の特定については、アプリケーションが有する特徴と、そのアプリケーションが提供する機能との関係性を学習したモデルを用いることで、実現可能である。このようなモデルの詳細については、後述する。
For example, the
続いて、情報提供装置10は、特定した機能ごとに、その機能を発揮する際にアプリケーションに対して行われる操作の組合わせを決定する。例えば、情報提供装置10は、特定した機能が「ログイン」である場合、アプリケーションに対して行われる操作として、「ユーザIDの入力」、「パスワードの入力」、「ログインボタンの選択」といった操作を特定する。すなわち、情報提供装置10は、特定した機能を発揮するための画面内において利用者から受け付け可能な操作(換言すると、利用者が実行可能な操作)を特定する。なお、このような特定処理は、例えば、アプリケーションの機能と、その機能を発揮するための操作とをあらかじめ対応付けたテーブル等を用いることで、実現可能である。
Subsequently, the
そして、情報提供装置10は、これら特定した操作を適宜組合わせた操作の組合わせを決定する。例えば、情報提供装置10は、「ユーザIDの入力」、「ユーザIDの入力」、「ログインボタンの選択」といった組合わせや、「ユーザIDの入力」、「パスワードの入力」、「ユーザIDの入力」といった組合わせ等、特定した操作をランダムな数だけランダムな順序で並べた組合わせを所定数生成する。また、情報提供装置10は、後述する処理により、生成した組合わせの中から、実際にアプリケーションに対して適用する操作の組合わせを決定する。
Then, the
そして、情報提供装置10は、決定した操作の組合わせを自然言語で表した操作情報、すなわち、操作のシナリオ(換言すると、試験のシナリオ)を操作情報として生成する。例えば、情報提供装置10は、「ログイン」の機能について、「ユーザIDの入力」、「ユーザIDの入力」、「ログインボタンの選択」といった操作の組合わせを決定した場合、「ログイン画面において、ユーザIDを入力し、続いて、ユーザIDを入力し、その後、ログインボタンをタップする」といった操作情報を生成する。
Then, the
このような処理の結果、情報提供装置10は、アプリケーションの動作を確認するために実行すべき各種の操作の組合わせを、自動的に決定し、決定した組合わせを自然言語で示す操作情報を提供することができる。換言すると、情報提供装置10は、動作確認の対象となる操作の組合わせ、すなわち、テストケースを自動的に決定することができる。この結果、情報提供装置10は、アプリケーションの動作確認に要する手間を削減することができる。
As a result of such processing, the
従来、テストケースの決定においては、動作確認を行うアプリケーション等といった操作対象の動作を熟知する操作者や経験を有する操作者により、テストケースの内容を示すフローやダイアグラムが作成され、このようなフローやダイアグラムに従って、適用情報の作成が行われていた。しかしながら、このような手法では、操作者が操作対象を熟知していない場合や、経験が浅い場合に、適切な動作確認を行うことができず、アプリケーションのバージョン等といった仕様ごとに、フローやダイアグラムを作成する手間がかかる。 Conventionally, in determining a test case, a flow or diagram showing the contents of the test case is created by an operator who is familiar with the operation of the operation target such as an application for checking the operation or an operator who has experience, and such a flow. The application information was created according to the above and the diagram. However, with such a method, if the operator is not familiar with the operation target or if he / she is inexperienced, it is not possible to confirm the appropriate operation, and the flow and diagram are used for each specification such as the application version. It takes time to create.
しかしながら、情報提供装置10は、動作確認を行う操作対象を分析することで、操作対象が発揮する機能を特定し、特定した機能に基づいて、自動的にテストケースを決定する。そして、情報提供装置10は、決定したテストケースを自然言語で示す操作情報、すなわち、バージョン等といった仕様によらず、操作対象に対する操作内容を示すことができる操作情報を生成する。このため、情報提供装置10は、テストケースの作成の手間を削減することができる。
However, the
〔1−5.生成処理の一例について〕
以下、図1を用いて、情報提供装置10が実行する生成処理の流れ、および情報提供装置10が実行する適用処理の流れの一例について説明する。例えば、操作者は、各端末装置200に対して、操作対象となるアプリケーションをインストールする(ステップS1)。ここで、各端末装置200に対してインストールされるアプリケーションは、それぞれ異なるバージョンのアプリケーションであってもよい。また、各端末装置200に対してインストールされるアプリケーションは、それぞれ個別のOS上で動作するアプリケーションであってもよく、それぞれ異なるサービスを提供するためのアプリケーションであってもよい。また、各端末装置200は、それぞれ異なる種別のハードウェアであってもよい。すなわち、試験対象となる端末装置200とは、ハードウェアとソフトウェアとの組み合わせがそれぞれ異なるものであってもよい。
[1-5. About an example of generation processing]
Hereinafter, an example of the flow of the generation process executed by the
続いて、情報提供装置10は、操作者端末300から、試験対象となるアプリケーションを受け付ける(ステップS2)。すなわち、情報提供装置10は、AUT(Application Under Test)を受け付ける。例えば、情報提供装置10は、各端末装置200にインストールされたアプリケーションのデータを受け付ける。なお、情報提供装置10は、各端末装置200にインストールされたアプリケーションのうちいずれかのアプリケーションのみを受け付けてもよい。以下の説明で明らかとなるように、情報提供装置10は、バージョンが異なる複数のアプリケーションであっても、同一のサービスを提供するアプリケーションであれば、任意のバージョンのアプリケーションから、各アプリケーションが提供する機能を試験するための適用情報を生成することができる。
Subsequently, the
続いて、情報提供装置10は、アプリケーションが提供するサービスをドメインとして特定する(ステップS3)。上述したように、情報提供装置10は、操作対象となるアプリケーションの機能に基づいて操作内容の組合わせを決定するが、このようなアプリケーションの機能は、アプリケーションが提供するサービスによって異なる。例えば、決済を行うアプリケーションは、ログインの機能が必須であると考えらえるが、フォトビュワー等のアプリケーションは、ログインの機能を提供しない場合が多いと考えられる。このように、操作対象が提供するサービスの種別に応じて、操作対象が発揮する機能は、変化すると考えられる。
Subsequently, the
そこで、情報提供装置10は、操作対象となるアプリケーションが提供するサービスをドメインとして特定する。例えば、アプリケーションが画面上に表示するテキストの内容は、アプリケーションが提供するサービスのドメインを精度よく示す指標となり得る。例えば、「再生」といったテキストを表示するアプリケーションは、音楽等の各種コンテンツを再生するサービスを提供するアプリケーションであると推定される。また、「支払」といったテキストを表示するアプリケーションは、各種支払サービスを提供するアプリケーションであると推定される。そこで、情報提供装置10は、コンテンツが画面上に表示するテキストに基づいて、操作対象が提供するサービスの種別を特定する。
Therefore, the
なお、情報提供装置10は、アプリケーションが画面上に表示するテキストの量に基づいて、アプリケーションが提供するサービスのドメインを推定してもよい。例えば、情報提供装置10は、「再生」といったテキストよりも、「支払」といったテキストを多く表示するアプリケーションについては、決済サービスを提供するアプリケーションであると特定してもよい。
The
なお、情報提供装置10は、アプリケーションが提供するテキストから、アプリケーションが提供するサービスのドメイン(以下、「アプリケーションのドメイン」と記載する場合がある。)をルールベースで特定してもよい。しかしながら、本実施形態において、情報提供装置10は、アプリケーションが提供するテキストと、そのアプリケーションが提供するサービスのドメインとの間の関係性を学習したドメインモデルを用いて、アプリケーションが提供するサービスのドメインを特定する。
The
例えば、情報提供装置10は、各種のアプリケーションが提供するテキストと、そのアプリケーションが提供するサービスのドメインとの組を学習データとして取得する。そして、情報提供装置10は、各テキストを入力した際に、そのテキストを提供するアプリケーションのドメインを示す情報を出力するようにドメインモデルの学習を行う。なお、このようなモデルの学習処理は、例えば、DNN(Deep Neural Network)等の各種ニューラルネットワーク等をバックプロパゲーション等による学習を行うことで、実現可能である。
For example, the
また、情報提供装置10は、自装置でドメインモデルの学習を行わずとも、任意の学習装置により学習が行われたドメインモデルを用いてもよい。そして、情報提供装置10は、学習済みのドメインモデルに対し、操作対象となるアプリケーションが提供するテキストを入力することで、アプリケーションが提供するサービスのドメインを推定する。このような処理の結果、情報提供装置10は、アプリケーションが提供するサービスのドメインを適切に推定することができる。
Further, the
続いて、情報提供装置10は、ドメインに応じて、アプリケーションの各画面上で提供される機能を特定する(ステップS4)。例えば、情報提供装置10は、ログイン等、アプリケーションを介して提供されるサービスを構成する構成サービスを機能として特定する。なお、以下の説明では、このような構成サービスを、アプリケーションの「機能」と表現する場合がある。上述したように、情報提供装置10は、操作対象となるアプリケーションの機能に基づいて操作内容の組合わせを決定するが、このようなアプリケーションの機能は、アプリケーションのドメイン、すなわち、アプリケーションが提供するサービスによって異なる。例えば、決済を行うアプリケーションは、ログインの機能が必須であると考えらえるが、フォトビュワー等のアプリケーションは、ログインの機能を提供しない場合が多いと考えられる。このように、操作対象が提供するサービスの種別に応じて、操作対象が発揮する機能は、変化すると考えられる。
Subsequently, the
そこで、情報提供装置10は、アプリケーションのドメインとあらかじめ対応付けられる機能の中から、アプリケーションの各画面上で提供される機能を特定する。例えば、アプリケーションは、ログインや決済等の機能を発揮する場合には、画面上に画像やテキスト、テキストを入力するためのテキストボックスや各種のボタン等といったオブジェクトを配置して表示させることとなる。また、画面上に表示されるオブジェクトは、アプリケーションが提供するサービスの内容に応じて、適宜変化する。例えば、決済サービスを提供するアプリケーションは、決済額を入力するためのオブジェクトやQRコード(登録商標)を撮影するためのオブジェクト等を表示する場合がある。一方、音楽コンテンツを提供するアプリケーションは、再生ボタンや一時停止ボタン等のオブジェクトを表示する場合がある。このように、各種のアプリケーションは、発揮する機能に応じて異なるオブジェクトを画面上に表示することとなる。
Therefore, the
このため、情報提供装置10は、操作対象が所定の端末装置に対して表示させる画面に含まれるオブジェクトに基づいて、その画面においてアプリケーションが提供する機能を特定する。例えば、情報提供装置10は、アプリケーションを解析し、各画面画面上に表示される各種のオブジェクトを特定する。そして、情報提供装置10は、オブジェクトの種別や量に応じて、アプリケーションが各画面を介して提供する機能を特定する。
Therefore, the
例えば、情報提供装置10は、ドメインが「決済サービス」であるアプリケーションについて、ある画面上に、テキストボックスが2つ含まれている場合は、この画面上で提供される機能が「ログイン」であると判定する。また、情報提供装置10は、ドメインが「SNS(Social Networking Service)」であるアプリケーションについて、ある画面上に、テキストボックスが2つ含まれている場合は、この画面上で提供される機能が「投稿」であると判定する。
For example, in the
なお、情報提供装置10は、画面上におけるオブジェクトの種類や内容のみならず、例えば、画面上でスクロールが可能か否かや、画面上で利用者が可能な各種の操作を特定し、特定結果に応じて、画面上で提供される機能を判定してもよい。すなわち、情報提供装置10は、画面上に配置された各種のオブジェクトや画面上で実行可能な各種操作等といったアプリケーションが提供する画面の特徴、すなわち、アプリケーションの特徴に基づいて、アプリケーションが提供する機能を判定することとなる。
The
なお、情報提供装置10は、画面上に配置されるオブジェクトの種別や数と、アプリケーションのドメインとの組合わせからその機能をルールベースで特定してもよい。しかしながら、本実施形態において、情報提供装置10は、アプリケーションが提供する画面上のオブジェクトと、その画面上で提供される機能との間の関係性を学習したスクリーンモデルを用いて、アプリケーションが提供する機能を特定する。
The
例えば、情報提供装置10は、あるドメインに属するアプリケーションの画面に含まれるオブジェクトの種別や数等を示す情報を入力した際に、その画面を介して提供される機能を示す情報を出力するようにスクリーンモデルの学習を行う。このような学習処理をドメインごとに実行することで、情報提供装置10は、所定のドメインに属するアプリケーションの画面に含まれるオブジェクトから、機能を推定するモデルをドメインごとに生成することができる。なお、情報提供装置10は、自装置でスクリーンモデルの学習を行わずとも、任意の学習装置により学習が行われたスクリーンモデルを用いてもよい。そして、情報提供装置10は、学習済みのスクリーンモデルに対し、操作対象となるアプリケーションが提供る画面内のオブジェクトの情報を入力することで、アプリケーションが提供する機能を推定する。このような処理の結果、情報提供装置10は、アプリケーションが提供する機能を適切に推定することができる。
For example, when the
上述した処理の結果、情報提供装置10は、アプリケーションが表示する画面ごとに、その画面を介して提供される機能を特定することとなる。そこで、情報提供装置10は、特定した機能を発揮させるための操作の組合わせを決定する(ステップS5)。例えば、情報提供装置10は、特定した機能とあらかじめ対応付けられた操作を特定し、特定した操作をランダムな数だけ、ランダムな順番で組合わせた操作の組合わせの候補を生成する。そして、情報提供装置10は、生成した組合わせの候補の中から、試験の対象として適切であると推定される組合わせの候補を特定する。なお、このような操作の組合わせを決定する処理の詳細については、後述する。
As a result of the above-mentioned processing, the
続いて、情報提供装置10は、決定した操作の組合わせを自然言語で示した操作情報を生成する(ステップS6)。例えば、情報提供装置10は、各操作と、その操作を示す自然言語とを対応付けた辞書データを参照し、決定した操作内容を自然言語で示した操作情報を生成する。例えば、情報提供装置10は、操作の組合わせが「テキストボックスにユーザIDを入力」、「ボタンをクリック」である場合、「テキストボックスにユーザIDを入力した後にボタンをクリックする」というように、各操作内容と、各操作を実行する順序とを自然言語で示す操作内容を生成する。なお、このような操作情報は、例えば、テストケース、テストシナリオ、シナリオアウトライン、特徴ファイル、もしくはユーザフロー等と表現される場合がある。すなわち、情報提供装置10は、構成サービスが提供される際に利用者が入力しうる操作を自然言語で示す操作情報を生成する。
Subsequently, the
〔1−6.適用処理の一例について〕
続いて、情報提供装置10が実行する提供処理の一例を説明する。まず、情報提供装置10は、操作情報が示す操作を各端末装置200に提供させるための適用情報を生成する(ステップS7)。例えば、情報提供装置10は、各端末装置200において実行されているOSやログイン対象となるソフトウェアごとに、操作情報から操作内容を特定する。続いて、情報提供装置10は、特定した操作を各端末装置200に適用されるための適用情報を生成する。例えば、情報提供装置10は、端末装置200ごとに、特定した操作を実行させるためのテストコードを生成する。換言すると、情報提供装置10は、各端末装置200に対して、特定した操作を仮想的に入力させるための各種スクリプトを適用情報として生成する。
[1-6. About an example of application processing]
Subsequently, an example of the providing process executed by the
そして、情報提供装置10は、各端末装置200ごとに生成した適用情報を各端末装置200に対して出力する(ステップS8)。例えば、情報提供装置10は、操作情報が、ログインを行う画面上でのテストケースを示す場合、各テストケースにおける操作を端末装置201に対して適用するための適用情報を端末装置201に配信する。同様に、情報提供装置10は、各テストケースにおける操作を端末装置202、203に対して適用するための適用情報を端末装置202、203に配信する。
Then, the
このような場合、各端末装置200は、情報提供装置10から受付けた適用情報に従った操作が行われたものとして、それぞれアプリケーションを動作させる(ステップS9)。例えば、各端末装置200には、適用情報に従って操作を仮想的に入力させるための各種のスクリプトが配信されている。そして、各端末装置200は、情報提供装置10から受付けた適用情報が示す操作が入力されたものとして、アプリケーションを動作させることで、それぞれ個別にアプリケーションのログインを行うこととなる。
In such a case, each terminal device 200 operates the application as if the operation was performed according to the application information received from the information providing device 10 (step S9). For example, various scripts for virtually inputting an operation according to application information are distributed to each terminal device 200. Then, each terminal device 200 individually logs in to the application by operating the application assuming that the operation indicated by the application information received from the
ここで、情報提供装置10から出力される適用情報には、操作が適用された結果を各端末装置200に収集させるための情報が含まれている。この結果、端末装置200は、操作の適用結果を収集し、収集した適用結果を情報提供装置10へと送信する(ステップS10)。このような場合、情報提供装置10は、適用結果のレポートを生成し、生成したレポートを操作者端末300に提供する(ステップS11)。例えば、情報提供装置10は、各端末装置200において実行されているOSやアプリケーションの種別とともに、どの端末装置200においてログインが成功若しくは失敗したか、いくつの端末装置200でログインが成功若しくは失敗したかといったレポートを提供する。このような処理の結果、情報提供装置10は、デバッグ等の試験結果の容易な理解を促進することができる。
Here, the application information output from the
〔1−7.生成処理の実装例について〕
上述したように、情報提供装置10は、アプリケーションの解析結果に基づいて、アプリケーションを試験するためのテストケースを生成する。換言すると、情報提供装置10は、操作対象に対して行われる利用者の操作の組合わせを自然言語で示した操作情報を生成する。このような生成処理において、情報提供装置10は、IAGA(Improved Adaptive Genetic Algorithm)を改良した手法により、操作情報の生成を行う。
[1-7. About implementation example of generation process]
As described above, the
以下、図2を用いて、情報提供装置10が実行する生成処理の実装例について説明する。図2は、実施形態に係る情報提供装置が実行する生成処理の実装例を示す図である。図2においては、情報提供装置10が操作情報を生成する処理の流れの一例について記載したが、実施形態は、これに限定されるものではない。情報提供装置10は、図2に示す処理以外にも、アプリケーションの解析結果、例えば、アプリケーションが有する各種の特徴に基づいて操作情報を生成するのであれば、任意の処理により、操作情報の生成を行ってよい。
Hereinafter, an implementation example of the generation process executed by the
例えば、図2に示す例では、情報提供装置10は、操作データベースおよび組合わせデータベースに登録された情報を用いて、操作情報の生成を行う。操作データベースは、利用者が操作対象となるアプリケーションに対して行うことができるすべての操作内容(例えば、インスタラクション)、および、各操作内容を自然言語で示した情報が対応付けて登録されている。なお、操作データベースは、ユーザアクションデータベースと換言される場合がある。
For example, in the example shown in FIG. 2, the
組合わせデータベースは、アプリケーションに対して適用される利用者の操作の組合わせが登録される。ここで、組合わせデータベースには、例えば、アプリケーションが提供する機能を適切に発揮させるための操作の組合わせだけではなく、機能を適切に発揮させることができない操作の組合わせについても登録されることとなる。すなわち、組合わせデータベースには、アプリケーションの試験時に適用される操作の組合わせ、換言すると、テストシナリオを示す情報が登録される。なお、組合わせデータベースは、ポピュレーションデータベースと換言される場合がある。 In the combination database, a combination of user operations applied to the application is registered. Here, for example, not only the combination of operations for appropriately exerting the function provided by the application but also the combination of operations that cannot properly exert the function is registered in the combination database. It becomes. That is, in the combination database, information indicating a combination of operations applied at the time of testing the application, in other words, a test scenario is registered. The combination database may be referred to as a population database.
なお、以下の説明では、利用者の操作の組合わせを組合わせ情報と総称する場合がある。また、組合わせデータベースには、初期状態において、組合わせ情報がすでに登録されていてもよく、登録されていなくともよい。 In the following description, the combination of user operations may be collectively referred to as combination information. Further, the combination information may or may not be registered in the combination database in the initial state.
まず、情報提供装置10は、アプリケーションからテキストを抽出する。例えば、情報提供装置10は、試験対象となるアプリケーションのコードを解析し、アプリケーションが画面上に表示するすべてのテキストを抽出する。そして、情報提供装置10は、抽出したテキストに基づいてアプリケーションのドメインを特定する。例えば、情報提供装置10は、ドメインモデルを用いて、アプリケーションが表示するテキストから、アプリケーションが提供する機能のドメインを特定する。
First, the
続いて、情報提供装置10は、アプリケーションが表示する画面をすべて特定する。例えば、情報提供装置10は、アプリケーションのコードを解析し、アプリケーションが表示させるすべての画面をそれぞれ特定する。なお、情報提供装置10は、以下に説明する処理を、特定した画面ごとに実行することとなる。
Subsequently, the
続いて、情報提供装置10は、特定した画面を介して適用される機能を特定する。例えば、情報提供装置10は、特定した画面ごとに、その画面上に配置されたオブジェクトの種別や画面上において適用可能な操作の内容に基づいて、その画面で提供される機能の特定を行う。ここで、各画面で提供される機能の特定を行う場合、情報提供装置10は、スクリーンモデルを用いて、アプリケーションのドメインと、各画面の特徴とに基づいて、アプリケーションが提供する機能の特定を行う。
Subsequently, the
例えば、情報提供装置10は、アプリケーションのドメインと、そのアプリケーションが表示する画面のうちある画面の特徴(例えば、オブジェクトの種類、数、外観、その画面で実行可能な各種の操作等)とを示す情報を入力した際い、その画面で提供される機能を示す情報を出力するように学習が行われたモデルをスクリーンモデルとして保持する。そして、情報提供装置10は、スクリーンモデルに、試験対象となるアプリケーションのドメインと、アプリケーションが表示する画面の特徴とを示す情報を入力することで、その画面で提供される機能を特定(推定)する。
For example, the
続いて、情報提供装置10は、操作データベースと組合わせデータベースとを参照し、特定した機能を発揮させるための操作を組合わせた組合わせ候補を生成・取得する。例えば、操作データベースには、アプリケーションが発揮する機能と、その機能を発揮させるために利用者が行う1つ又は複数の操作とが対応付けて登録されている。情報提供装置10は、操作データベースを参照し、特定した機能と対応付けられた操作を特定する。そして、情報提供装置10は、特定した操作をランダムな順序でランダムな数だけ組合わせた組合わせ候補を所定の数だけ生成する。
Subsequently, the
例えば、操作データベースには、「ログイン」という機能に対して、「ユーザIDの入力」、「パスワードの入力」、「ログインボタンをクリック」といった3つの操作が対応付けて操作データベースに登録されているものとする。このような場合、情報提供装置10は、「ログイン」に対応する組合わせ候補として、「ユーザIDの入力」、「ユーザIDの入力」、「ユーザIDの入力」というように同一の操作を所定の数だけ繰り返す組合わせ候補や、「ユーザIDの入力」、「ログインボタンをクリック」というように、一部の操作を行わない組合わせの候補、その他実行する順番を変更した組合わせの候補や、実行する操作の数が異なる複数の組合わせの候補等を生成する。なお、情報提供装置10は、例えば、ランダムに10個以内の操作を組合わせた組合わせの候補を生成してもよい。
For example, in the operation database, three operations such as "input user ID", "enter password", and "click the login button" are associated with the function "login" and registered in the operation database. It shall be. In such a case, the
また、組合わせデータベースには、後述する処理により生成された組合わせ情報が機能と対応付けて登録されている。情報提供装置10は、組合わせデータベースを参照し、試験対象となるアプリケーションが発揮する機能として特定した機能と対応付けられた組合わせ情報を組合わせ候補として取得する。
In addition, the combination information generated by the process described later is registered in the combination database in association with the function. The
続いて、情報提供装置10は、組合わせ候補ごとに、機能が発揮されるまでのステップ数を計数する。例えば、情報提供装置10は、試験対象となる画面において、各組合わせ候補に含まれる操作を実行し、画面が他の画面に遷移するまでに機能が適切に発揮されたか否かを判定するとともに、画面が他の画面に遷移するまでに実行された操作の数をステップ数として係数する。なお、かかるステップ数の係数は、フィットネスカリキュレーションと換言される場合がある。
Subsequently, the
続いて、情報提供装置10は、所定の回数処理をループしたか否かを判定する。そして、情報提供装置10は、所定の回数処理をループしていない場合、機能が発揮されたと判定した組合わせ候補の中から親となる組合わせ候補の組を選択する。そして、情報提供装置10は、親として選択された組合わせ候補に含まれる操作をランダムに組合わせた新たな組合わせ候補を生成する。また、情報提供装置10は、新たに生成した組合わせ候補に対して、ランダムに操作を追加もしくは変更した新な組合わせ候補を生成する。そして、情報提供装置10は、組合わせ候補ごとに機能が適切に発揮されたか否か、機能が発揮されるまでのステップ数の係数を再度実行する。
Subsequently, the
すなわち、情報提供装置10は、組合わせ候補ごとに、機能が発揮されるまでのステップの係数、操作をクロスオーバーさせた新たな組合わせ候補の生成、および、操作をミューテーションさせた組合わせ候補の生成を繰り返し実行する。このような処理を行うことで、情報提供装置10は、試験対象となるアプリケーションの画面ごとに、様々な操作を組合わせた組合わせ候補を生成することができる。
That is, the
また、情報提供装置10は、処理を所定の回数ループさせた場合、ステップ数が所定の条件を満たす組合わせ候補を組合わせ情報として組合わせデータベースに登録する。例えば、情報提供装置10は、各組合わせ候補に含まれる操作を実行した際に機能を発揮するまでのステップ数の分布を特定し、特定した分布に基づいて、ステップ数が所定の条件を満たす組合わせ候補を登録対象とする。この際、情報提供装置10は、ステップ数が少ない組合わせ候補を優先して選択するのではなく、ある程度ステップ数が多い組合わせ候補を選択するようにしてもよい。
Further, when the processing is looped a predetermined number of times, the
そして、情報提供装置10は、組合わせデータベースに登録された組合わせ情報から、操作の内容を自然言語で示した操作情報を生成する。例えば、情報提供装置10は、組合わせ情報に含まれる各操作を特定し、特定した操作を示す自然言語を操作データベースから特定する。そして、情報提供装置10は、特定した自然言語に基づいて、操作情報が示す操作の組合わせを自然言語で示した操作情報を生成する。
Then, the
〔1−8.適用処理の流れの一例について〕
続いて、図3を用いて、情報提供装置10が実行する適用処理の実装例について説明する。図3は、実施形態に係る情報提供装置が実行する適用処理の実装例を示す図である。ここで、情報提供装置10は、情報提供装置10が提供する操作情報以外にも、アプリケーションが発揮する機能のうち、試験対象となる機能を自然言語で示す情報から、適用情報を生成する機能を有する。そこで、図3に示す例では、試験対象となる機能を自然言語で示す情報から、適用情報を生成する機能の流れについて記載した。情報提供装置10は、このような機能の一部を用いて、操作情報から適用情報を生成し、試験を実行することとなる。
[1-8. About an example of the flow of application processing]
Subsequently, an implementation example of the application process executed by the
例えば、情報提供装置10は、操作情報となる自然言語を操作者端末300から取得する。例えば、情報提供装置10は、「ログインをしたらトップ画面が表示される」といった試験におけるアプリケーションの機能や、その機能が提供された際における結果を示す情報を取得する。
For example, the
ここで、「ログイン」とは、例えば、SNS等、端末装置200や端末装置200が実行するアプリケーションを介して提供されるサービスを構成するサービス、すなわち、構成サービスであって、利用者が所定の操作を行った際に提供されるサービスであるといえる。このような構成サービスには、例えば、「ログイン」のみならず、利用者が投稿する各種投稿情報の受付や、QRコードを用いた支払においてQRコードを撮影するための機能等が含まれることとなる。 Here, "login" is, for example, a service that constitutes a service provided through a terminal device 200 or an application executed by the terminal device 200, such as an SNS, that is, a configuration service, which is defined by a user. It can be said that it is a service provided when an operation is performed. Such a configuration service includes, for example, not only "login" but also a function for accepting various posted information posted by a user and for taking a QR code in payment using a QR code. Become.
このような場合、情報提供装置10は、抽出ユニットを用いて、自然言語に含まれる単語のうち、端末装置200において行われる行動や、その行動が行われた際に生じる結果を示す単語を抽出し、抽出した単語をまとめた特徴情報を生成する。すなわち、情報提供装置10は、操作情報から、利用者の行動を示す単語を行動ごとに抽出する。
In such a case, the
例えば、情報提供装置10は、「ログインをしたらトップコンテンツが表示される」といった操作情報から「ログイン」といった利用者の行動(すなわち、操作対象となる行動)や、「トップコンテンツが表示」といった、行動が行われた際における端末装置200の状態(すなわち、行動が行われた結果)を示す単語を抽出する。そして、情報提供装置10は、抽出した単語を示す特徴情報を生成する。なお、このような処理は、例えば、CucumberやTurnipといったGherkinと呼ばれるテスト記述言語フォーマットに関する各種の技術が採用可能である。
For example, the
続いて、情報提供装置10は、ドライバユニットを用いて、自然言語をデバイス用コマンドに変換するために使用されるステップ情報(ステップ関数)と、コマンドの送信前に対象をポーリングすることにより、ステップ関数をサポートするために使用されるアシスタント情報(アシスタント関数)とを生成する。
Subsequently, the
例えば、情報提供装置10は、ステップ情報を生成する場合、特徴情報から、端末装置200において生じる操作の内容や操作の順番、操作が行われた際の結果等を特定する。換言すると、情報提供装置10は、利用者の行動を、操作対象となる端末装置200等のハードウェアや、ハードウェアにおいて各種実行させているソフトウェアに対する操作へと翻訳する処理を実行する。
For example, when the
例えば、情報提供装置10は、特徴情報が「ログイン」という行動を示す場合、1番目に実行する「ログインコンテンツの表示」、2番目に実行する「ユーザIDの入力」、3番目に実行する「パスワードの入力」、および4番目に実行する「ログインボタンの押下」といった複数の操作と各操作の順番とを示すステップ情報(ステップ関数)を生成する。すなわち、情報提供装置10は、「ログイン」単語が示す行動が行われる場合に端末装置200に対して行われる各種操作や各操作が行われる順序を特定し、特定した操作や順序を示すステップ情報を生成する。
For example, when the feature information indicates the action of "login", the
また、情報提供装置10は、特徴情報に「トップコンテンツが表示」といった行動の結果が含まれている場合、このような結果が生じたか否かを判定するためのアシスタント情報(アシスタント関数)を生成する。例えば、情報提供装置10は、「トップ画面が表示」といった行動の結果が含まれる場合、「トップコンテンツが表示されたか否かを判定する」といった処理を示すアシスタント情報を生成する。なお、情報提供装置10は、例えば、ステップ情報が示す各種操作が行われた際に生じる所定の結果が生じているか否かを判定するためのアシスタント情報を生成してもよい。例えば、情報提供装置10は、ステップ情報が「ログインコンテンツの表示」といった操作を含む場合は、「ログインコンテンツが表示されたか否かを判定する」といった処理を示すアシスタント情報を生成してもよい。
Further, when the feature information includes the result of an action such as "displaying top content", the
すなわち、情報提供装置10は、自然言語で記述された操作情報に基づいて、操作情報が示す行動を実現するための各種の操作や操作の順序を示すステップ情報を生成する。また、情報提供装置10は、各ステップ情報が示す操作が行われた際に生じる結果が実際に生じているか否かを判定するために行われる処理の内容を示すアシスタント情報を生成する。
That is, the
なお、ステップ情報やアシスタント情報は、対象となる端末装置200が実行するOSの種別やアプリケーションの種別、若しくはこれらの組合わせごとに生成される。このため、ドライバユニットは、操作情報から生成された特徴情報が示すユーザアクション(行動)において生じる各種の入力を取得するとともに、ユーザアクションの対象となるデバイスやアプリケーション、操作対象となる要素の識別を行う。そして、ドライバユニットは、識別結果に基づいて、ステップ情報の生成を行う。 Note that step information and assistant information are generated for each type of OS or application executed by the target terminal device 200, or a combination thereof. Therefore, the driver unit acquires various inputs generated in the user action (behavior) indicated by the feature information generated from the operation information, and identifies the device or application to be the target of the user action and the element to be operated. Do. Then, the driver unit generates step information based on the identification result.
同様に、情報提供装置10は、ステップ情報が示す各操作が行われたことを確実にするために定期的な間隔で、対象の状態を収集する(ポーリングおよびクエリする)ためのアシスタント情報を生成する。より詳細には、情報提供装置10は、各対象ごとに、ステップ情報が示す操作が行われた際に生じる対象の状態を収集し、収集した状態が所定の条件を満たすか否かを判定するためのアシスタント情報を生成する。換言すると、アシスタント情報は、ステップ情報が示すある操作が行われた結果が適正であるかを判定し、適正であると判定された場合に、ステップ情報が示す次の操作を行わせるための条件情報と見做すことができる。
Similarly, the
続いて、情報提供装置10は、生成ユニットを用いて、ステップ情報およびアシスタント情報が示す操作や各種の判定を対象に行わせるための適用情報を生成する。換言すると、情報提供装置10は、抽出ユニットにより抽出された単語が示す行動が行われる場合に端末装置200に対して行われる操作を適用するための適用情報を生成する。
Subsequently, the
このような生成ユニットは、例えば、アッピウム等、各種の端末装置200やアプリケーションの自動テストを行うための各種フレームワークにより実現可能である。より具体的には、情報提供装置10は、ステップ情報が示す各操作をステップ情報が示す順番で対象に適用するとともに、アシスタント情報が示す条件に従って各操作の結果が適切であるかを判定させるためのスクリプトを生成する。
Such a generation unit can be realized by, for example, various terminal devices 200 such as Appium and various frameworks for performing automatic testing of applications. More specifically, the
このようにして生成されたスクリプトは、「ログイン」等の構成サービスを提供する際に行われうる利用者の行動、すなわち、構成サービスと対応する操作を端末装置200に適用させるためのスクリプトである。このように、情報提供装置10は、所定の対象が提供するサービスを構成する構成サービスであって、利用者が所定の操作を行った際に提供される構成サービスを自然言語で示す行動情報を取得すると、取得した行動情報から、行動情報が示す構成サービスと対応する所定の操作を前記対象に対して適用するための適用情報を生成することとなる。
The script generated in this way is a script for applying the user's action that can be performed when providing the configuration service such as "login", that is, the operation corresponding to the configuration service to the terminal device 200. .. As described above, the
そして、情報提供装置10は、適用情報を、対象となる端末装置200へと出力する。例えば、情報提供装置10は、所定の情報処理装置内で再現された仮想的な端末装置ETや、スマートフォン等の端末装置RT、クラウド上に存在する各種の端末装置CTに対して、各端末装置200ごとに生成された適用情報を送信する。この結果、情報提供装置10は、自然言語で記述された操作情報が示す行動が行われた場合の、端末装置200の動作を試験することができる。
Then, the
なお、上述した例において、ドライバユニットは、抽出ユニットと生成ユニットとの組合わせごとにされればよい。例えば、ドライバユニットは、実装された抽出ユニットが採用するフォーマットのテスト記述言語から、生成ユニットが識別可能な形式のステップ情報やアシスタント情報を生成すればよい。このようなドライバユニットは、例えば、抽出ユニットにより生成されるテスト記述言語が示す行動と、その行動を実現するための操作内容や操作順序とを対応付けた辞書データや、各操作と、各操作が行われた結果が適正であるかを判定するための条件とを対応付けた辞書データにより、ルールベースで動作する任意のプログラムが採用可能である。 In the above-mentioned example, the driver unit may be set for each combination of the extraction unit and the generation unit. For example, the driver unit may generate step information and assistant information in a format that can be identified by the generation unit from the test description language in the format adopted by the implemented extraction unit. Such a driver unit is, for example, dictionary data in which an action indicated by a test description language generated by an extraction unit is associated with an operation content or an operation order for realizing the action, each operation, and each operation. Any program that operates on a rule basis can be adopted by the dictionary data associated with the condition for determining whether the result of the above is appropriate.
例えば、ドライバユニットは、特徴情報が「ログイン」を示す場合、辞書データを参照し、「ログイン」と対応付けられた各操作「ログインコンテンツの表示」、「ユーザIDの入力」、「パスワードの入力」、および「ログインボタンの押下」を特定する。そして、ドライバユニットは、特定した各処理を端末装置200に実行させるための適用情報を生成ユニットに生成させるためのステップ情報を生成すればよい。また、ドライバユニットは、辞書データを参照し、特定した各操作と対応付けられた条件を特定する。そして、ドライバユニットは、特定した条件を満たすか否かを端末装置200に実行させるための適用情報を生成ユニットに生成させるためのアシスタント情報を生成すればよい。このような処理を行うプログラムであれば、情報提供装置10は、任意のプログラムをドライバユニットとして採用可能である。
For example, when the feature information indicates "login", the driver unit refers to the dictionary data and performs each operation "display login content", "enter user ID", and "enter password" associated with "login". , And "press login button". Then, the driver unit may generate step information for causing the generation unit to generate application information for causing the terminal device 200 to execute each specified process. In addition, the driver unit refers to the dictionary data and specifies the conditions associated with each specified operation. Then, the driver unit may generate assistant information for causing the generation unit to generate application information for causing the terminal device 200 to execute whether or not the specified condition is satisfied. As long as it is a program that performs such processing, the
なお、情報提供装置10は、操作情報を受け付けた場合、ドライバユニットを用いて、操作情報が自然言語で示す各操作を示すステップ情報やアシスタント情報の生成を行う。そして、情報提供装置10は、生成したステップ情報やアシスタント情報から、生成ユニットを用いて、適用情報の生成を行う。このような処理の結果、情報提供装置10は、様々な操作内容をテストケースとして、各端末装置200に適用することができる。
When the
〔1−9.生成処理のバリエーションについて〕
上述した説明では、情報提供装置10が実行する生成処理の一例について記載した。しかしながら、実施形態は、これに限定されるものではない。以下、情報提供装置10が実行する生成処理のバリエーションについて説明する。
[1-9. Variations on generation processing]
In the above description, an example of the generation process executed by the
〔1−9−1.スクリーンモデルのバリエーションについて〕
上述した例では、情報提供装置10は、ドメインモデルを用いてアプリケーションのドメインを特定し、特定したドメインと画面の特徴とに基づいて、その画面で提供される機能をスクリーンモデルにより特定した。しかしながら、実施形態は、これに限定されるものではない。
[1-9-1. About screen model variations]
In the above example, the
例えば、情報提供装置10は、ドメインの推定を行わずともよい。例えば、情報提供装置10は、画面上に表示される各種テキストの内容やアプリケーションが適用するすべてのテキストの内容、および、画面上に表示されるオブジェクトの各種特徴から、直接的に機能の特定を行ってもよい。また、情報提供装置10は、オブジェクトの位置や色彩といった表示時における外観の特徴に基づいて、アプリケーションがある画面上で提供する機能の特定を行ってもよい。なお、このような処理は、例えば、各種テキストやオブジェクトの外観を示す情報等を入力情報としてスクリーンモデルに特徴を学習させることで実現可能である。
For example, the
また、情報提供装置10は、例えば、画面そのもの(例えば、画面をキャプチャした各種の画像データ)や、画面を構成するコード等から、その画面で提供される機能を特定してもよい。このような処理は、例えば、画像データやコードを入力情報としてスクリーンモデルに特徴を学習させることで実現可能である。
Further, the
また、情報提供装置10は、画面上に表示されるテキストの内容や、画面として表示されるコンテンツのタイトル、コードに含まれる非表示のテキスト等に基づいて、その画面を介して提供される機能の特定を行ってもよい。
Further, the
また、情報提供装置10は、アプリケーションが各画面を表示させる順序に基づいて、アプリケーションが発揮する機能を特定してもよい。例えば、情報提供装置10は、ある画面がアプリケーションの起動時に表示される画面であり、かつ、アプリケーションのドメインが認証を要するサービスのドメインである場合、かかる画面で提供される機能がログインであると推定してもよい。このような処理を実行する場合、例えば、情報提供装置10は、画面が表示される順序を示す情報を入力情報としてスクリーンモデルに特徴を学習させることで実現可能である。
Further, the
〔1−9−2.ドメインモデルのバリエーションについて〕
上述した例では、情報提供装置10は、アプリケーションが表示させるテキストの内容に基づいて、アプリケーションのドメインを特定した。しかしながら、実施形態は、これに限定されるものではない。
[1-9-2. About domain model variations]
In the above example, the
例えば、決済サービスを提供するアプリケーションは、決済額を入力するためのコンテンツやQRコードを撮影するためのコンテンツ等を表示する場合がある。一方、音楽コンテンツを提供するアプリケーションは、再生ボタンや一時停止ボタン等のコンテンツを表示する場合がある。このように、各種のアプリケーションは、ドメインに応じて異なるコンテンツを画面上に表示することとなる。 For example, an application that provides a payment service may display content for inputting a payment amount, content for shooting a QR code, and the like. On the other hand, an application that provides music content may display content such as a play button and a pause button. In this way, various applications display different contents on the screen depending on the domain.
このため、情報提供装置10は、操作対象が所定の端末装置に対して表示させる画面に含まれるオブジェクトに基づいて、操作対象が提供するサービスの種別、すなわちドメインを特定してもよい。例えば、情報提供装置10は、アプリケーションを解析し、画面上に表示される各種のオブジェクトに基づいて、アプリケーションがどのドメインに属するアプリケーションであるかを特定してもよい。
Therefore, the
より具体的には、情報提供装置10は、各画像におけるテキストの内容、テキスト等の各種オブジェクトの量、オブジェクトの種類等に基づいて、操作対象が提供するサービスの種別を特定する。例えば、情報提供装置10は、あるアプリケーションが表示するコンテンツのうち、音楽再生に関するオブジェクトよりも、支払に関するオブジェクトの量の方が多い場合は、アプリケーションが決済サービスを提供するアプリケーションであると特定してもよい。
More specifically, the
すなわち、情報提供装置10は、アプリケーションが提供する各画面の各種特徴から、そのアプリケーションのドメインを特定するとともに、特定したドメインと所定の画面上における特徴とに基づいて、その画面上で提供される機能を特定するのであれば、任意の特徴に基づいて、ドメインの特定や機能の特定を行ってよい。
That is, the
〔1−9−3.複数サービスを提供するアプリケーションについて〕
ここで、スーパーアプリ等と呼ばれるアプリケーションは、単一のサービスのみならず、複数のサービスを提供する場合がある。しかしながら、このようなアプリケーションは、単一のアプリケーションプログラムによりサービスを提供するのではなく、主となるアプリケーションがミニアプリと呼ばれる複数のアプリケーションを呼び出して、各種サービスを提供する場合が多い。そこで、情報提供装置10は、スーパーアプリの動作確認を行う場合、スーパーアプリを構成するミニアプリごとに、アプリケーションが提供するサービスのドメインを特定することとなる。
[1-9-3. About applications that provide multiple services]
Here, an application called a super app or the like may provide not only a single service but also a plurality of services. However, in such an application, the service is not provided by a single application program, but the main application often calls a plurality of applications called mini-apps to provide various services. Therefore, when the
なお、情報提供装置10は、ドメインと対応するテキストやオブジェクトの量に基づいて、アプリケーションのドメインを特定した場合、どのアプリケーションが提供する複数のサービスのうち主となるサービスのドメインを特定することができる。
When the
〔1−9−4.操作内容について〕
上述した例では、ログインが行われた場合の操作内容の一例について記載した。しかしながら、実施形態は、これに限定されるものではない。例えば、情報提供装置10は、アプリケーションに対して適用可能な操作であれば、任意の操作を端末装置200に適用するための適用情報を生成してもよい。
[1-9-4. About operation contents]
In the above-mentioned example, an example of the operation contents when login is performed is described. However, the embodiment is not limited to this. For example, the
例えば、情報提供装置10は、ユーザIDの入力やパスワード等、各種のテキストを入力させるための適用情報を生成してもよい。このような入力は、例えば、「「ユーザID」というテキストが配置された入力フォームを選択」する操作、および「選択した入力フォームに「AAAAAA」を入力する」操作(「AAAAAA」は、予め設定された文字列)により実現される。ドライバユニットは、このような操作が予め登録された辞書データを用いることで、ユーザIDやパスワードといったテキストの入力を実現することができる。なお、このような入力する文字列は、情報提供装置10が設定してもよく、情報提供装置10が設定してもよい。例えば、情報提供装置10は、「AAAAAA」を入力する操作を含む操作情報を提供してもよい。
For example, the
なお、入力対象は、文字列に限定されるものではない。例えば、情報提供装置10は、文字列以外にも、音声や画像等、任意の種別の情報を入力させるための適用情報を生成してもよい。また、情報提供装置10も、音声や画像等、任意の種別の情報を入力させるための操作情報を生成してもよい。
The input target is not limited to the character string. For example, the
また、情報提供装置10は、情報の入力のみならず、任意の操作を適用するための操作情報を生成してもよい。例えば、情報提供装置10は、対象がスマートフォンである場合、タップ、ピンチイン、ピンチアウト、若しくはスライドといった各種の操作を適用するための操作情報を生成してもよい。例えば、情報提供装置10は、「画面を上方向にスライドさせる」といった操作内容を示す操作情報を生成してもよい。また、情報提供装置10は、対象がPCである場合、マウスのクリック、ダブルクリック、ドラッグ、ドロップ、キーボードの操作等を適用するための操作情報を生成してもよい。また、情報提供装置10は、端末装置200の傾きの変更や振動等といった端末装置200に関する各種物理的な操作を示す操作情報を生成してもよく、時刻や明るさを変化させる操作を示す操作情報を生成してもよい。
Further, the
また、情報提供装置10は、端末装置200が実行するソフトウェアにより表示される画面の中から、操作対象となるオブジェクトを特定し、特定したオブジェクトに対する操作を示す操作情報を生成してもよい。例えば、情報提供装置10は、端末装置200が表示したログインコンテンツに配置されたオブジェクトの中から、ユーザIDを入力するための入力フォームを特定する操作を行わせ、その後、特定した入力フォームに所定のユーザIDを入力させるための操作を示す操作情報を生成してもよい。
Further, the
上述した操作以外にも、情報提供装置10は、任意の操作を適用するための操作情報を生成してもよい。このような操作の具体的な内容は、操作内容が操作データベースに機能と対応付けられて登録されているのであれば、任意の内容の操作が可能である。
In addition to the above-mentioned operations, the
〔1−9−5.条件について〕
また、情報提供装置10は、ステップ情報が示す操作が行われたか否かを適切に判定することができるのであれば、任意の内容の条件が満たされたか否かを判定させるための適用情報を生成してよい。例えば、情報提供装置10は、コンテンツが変化したか否か、所定のウェブコンテンツが表示されたか否か、ウェブページのステータス、画面上に表示された内容、端末装置200が有するバイブレーションユニットが変化したか否か、音が出力されたか否か等、任意の内容の条件が満たされたか否かを判定されるための適用情報を生成してよい。
[1-9-5. About conditions]
Further, if the
〔1−9−6.操作情報の言語について〕
ここで、情報提供装置10は、情報提供装置10が識別可能であり、かつ、ドライバユニットが用いる辞書データに登録がなされている言語であれば、任意の自然言語により生成された操作情報の生成を行ってよい。例えば、情報提供装置10は、日本語、英語、ドイツ語、フランス語、中国語等、任意の言語で記述された操作情報を生成してもよい。
[1-9-6. About the language of operation information]
Here, the
なお、例えば、情報提供装置10は、端末装置200で用いられる言語とは異なる言語により記述された操作情報から、適用情報の生成を行ってもよい。例えば、情報提供装置10は、端末装置201が日本語のコンテンツを表示し、端末装置202が英語のコンテンツを表示し、端末装置203がドイツ語のコンテンツを表示する際に、日本語で「ログインする」といった内容の操作情報を受付けたものとする。このような場合、情報提供装置10は、「ログイン」という行動を実現するために必要な操作であって、各端末装置200が基準として用いる言語に対応する内容の操作を端末装置200ごとに特定し、特定した操作を適用するための適用情報を生成すればよい。
For example, the
例えば、情報提供装置10は、端末装置201に対しては、日本語で「ユーザID」と表示された入力フォームを選択してユーザIDを入力させる適用情報を生成し、端末装置202に対しては、英語で「ユーザID」と表示された入力フォームを選択してユーザIDを入力させる適用情報を生成し、端末装置203に対しては、ドイツ語で「ユーザID」と表示された入力フォームを選択してユーザIDを入力させる適用情報を生成すればよい。
For example, the
〔1−9−7.対象について〕
ここで、情報提供装置10は、スマートフォン等の端末装置200以外にも、クラウド上の端末装置CTや所定の情報処理装置上でエミュレートされる端末装置ET以外にも、任意の対象に対し、適用される操作の組合わせを示す操作情報を生成してよい。例えば、情報提供装置10は、PCやサーバ装置、各種センサやデジタルサイネージといった実態を有する装置(所謂ハードウェア)を対象とし、これら対象に対して利用者が所定の行動を行う際に入力される操作をしめす操作情報を生成してよい。また、情報提供装置10は、各種の仮想マシンやPC上で実行されるOSやアプリケーション等、各種のソフトウェアに対する操作を示す操作情報を生成してよい。また、情報提供装置10は、仮想的な端末装置ETが現実に存在していた場合に、その端末装置ETに対して利用者が行動を行う際に入力される操作を示す操作情報を生成してよい。
[1-9-7. About the target]
Here, the
また、対象となるアプリケーションは、同種のアプリケーションであってもよく、異なるアプリケーションであってもよい。例えば、端末装置201は、対象としてSNSのサービスを受けるための第1アプリケーションを実行し、端末装置202は、第1アプリケーションとは異なるサービスを受けるための第2アプリケーションを実行し、端末装置203は、端末装置203を介して各種の代金を決済するための第3アプリケーションを実行しているものとする。また、第1アプリケーション〜第3アプリケーションは、それぞれ表示態様や機能が異なるものの、「ログインを行う」という利用者の行動を受付けることができるものであるものとする。
Further, the target application may be the same type of application or may be a different application. For example, the
このように、各端末装置200が実行するアプリケーションの種別が異なるものであっても、操作情報が示す行動が、各アプリケーションにおいて実行可能な利用者の行動を示す場合、情報提供装置10は、自然言語で操作を示す操作情報を生成することで、同時に各端末装置200のアプリケーションをテストすることができる。また、情報提供装置10は、各端末装置200の種別がそれぞれ異なる場合であっても、各アプリケーションが提供する構成サービスの提供時に実行可能な利用者の行動を示す操作情報を生成する。このため、情報提供装置10は、端末装置200の種別や台数に依存せず、1以上の異なる種別の端末や、1以上の異なる種別のアプリケーションが任意に組み合わせられている場合であっても、同時に試験を実現することができる。
As described above, even if the type of application executed by each terminal device 200 is different, when the action indicated by the operation information indicates the action of the user that can be executed in each application, the
より詳細な例について説明する。例えば、情報提供装置10は、「ユーザIDとパスワードとを入力し、ログインボタンを押下する」という操作情報を生成する。ここで、第1アプリケーションにおいて利用者がログインする際に、異なる画面上でユーザIDとパスワードとを入力する場合、情報提供装置10は、第1アプリケーションにおいてログインを行うための操作として、「ログイン画面の表示」、「ユーザIDの入力」、「パスワード入力ボタンの押下」、「パスワードの入力」、「ログインボタンの押下」といった操作を特定する。一方、第2アプリケーションにおいて利用者がログインする際に、同一画面上でユーザIDとパスワードとを入力することができる場合、情報提供装置10は、第2アプリケーションにおいてログインを行うための操作として、「ログイン画面の表示」、「ユーザIDの入力」、「パスワードの入力」、「ログインボタンの押下」といった操作を特定する。また、第3アプリケーションにおいて利用者がログインする際に、FIDO(Fast Identity Online)等を用いたログインが可能である場合、情報提供装置10は、第3アプリケーションにおいてログインを行うための操作として、「ログインボタンの押下」といった操作を特定する。そして、情報提供装置10は、各操作を適用するための適用情報を各アプリケーションごとに生成し、生成した適用情報を出力すればよい。
A more detailed example will be described. For example, the
また、情報提供装置10は、各アプリケーションごとに異なる順序で操作を適用させる適用情報を生成してもよく、アプリケーションごとに異なるアシスタント情報を生成してもよい。すなわち、情報提供装置10は、それぞれ異なるアプリケーション等の対象について、利用者が共通してある行動を行った際に適用される操作の内容や順序、それら操作の結果を特定し、特定した内容の操作を特定した順番で適用するとともに、これらの操作が適切に行うかを判定させる適用情報を生成するのであれば、任意の内容の適用情報を生成してよい。
Further, the
なお、このようなアプリケーションの種別は、単に異なる機能を有するアプリケーションのみならず、バージョン違いのアプリケーションや、同一のサービスを提供するものの異なるOS上で動作するアプリケーション、言語が異なるアプリケーション等を含む概念である。すなわち、情報提供装置10は、対象ごとに異なる操作を適用するための提供情報を生成すればよい。また、情報提供装置10は、複数の対象に、同一種別のアプリケーションが含まれる場合は、これら同一種別のアプリケーションに対して同一の適用情報を出力してもよい。
Note that such application types include not only applications with different functions, but also applications with different versions, applications that provide the same service but run on different OSs, applications with different languages, and so on. is there. That is, the
〔1−10.実施形態の効果の一例について〕
上述したように、情報提供装置10は、各種のアプリケーション等、利用者の操作対象が発揮する機能を特定する。そして、情報提供装置10は、特定された機能に応じて、操作対象に対して行われる利用者の操作の組合わせを決定し、決定された操作の組合わせを自然言語で表した操作情報を生成する。このような処理の結果、情報提供装置10は、アプリケーションが発揮する機能に応じて、その機能の試験や確認を行う際の操作内容、すなわち、テストケースを自動的に生成することができる。このため、情報提供装置10は、操作対象の試験等を容易にすることができる。
[1-10. About an example of the effect of the embodiment]
As described above, the
また、情報提供装置10は、自然言語で操作内容を示した操作情報を生成するので、例えば、試験対象となるアプリケーションにバージョンが複数存在する場合であっても、これらアプリケーションに対して行うべき操作の組合わせを共通して示す操作情報を生成することができる。例えば、情報提供装置10は、アプリケーションのバージョンごとに操作情報を生成せずとも、バージョンが異なるが同一のサービスを提供するアプリケーションの試験内容を共通して示す単一の操作情報を生成することができる。また、情報提供装置10は、自然言語で操作内容を示す操作情報を生成するので、どのような操作においてアプリケーションが適切に機能を発揮できないかを容易に識別させることができる。
Further, since the
また、情報提供装置10は、アプリケーションのドメインや機能に応じて、操作情報を画面ごとに生成するので、アプリケーションが新規なアプリケーションである場合や、アプリケーションに新規な画面が追加される場合、アプリケーションの画面レイアウトに変更があった場合にも、適切なテストケースを示す操作情報を生成することができる。また、情報提供装置10は、自然言語でテストケースを自動的に生成するので、例えば、想定していなかった利用者の操作を容易に識別させることができ、このような操作に対する対応を実現させることができる。また、情報提供装置10は、人手を介さずに、操作情報を生成することができるので、人手により生じるミスを防ぐことができる。
Further, since the
〔2.情報提供装置の構成〕
以下、上記した情報提供装置10が有する機能構成の一例について説明する。図4は、実施形態に係る情報提供装置の構成例を示す図である。図4に示すように、情報提供装置10は、通信部20、記憶部30、および制御部40を有する。
[2. Configuration of information providing device]
Hereinafter, an example of the functional configuration of the
通信部20は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部20は、ネットワークNと有線または無線で接続され、情報提供装置10、端末装置200、および操作者端末300との間で情報の送受信を行う。
The communication unit 20 is realized by, for example, a NIC (Network Interface Card) or the like. Then, the communication unit 20 is connected to the network N by wire or wirelessly, and transmits / receives information to / from the
記憶部30は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部30は、操作データベース31および組合わせデータベース32を記憶する。
The
操作データベース31には、操作対象が発揮する各種の機能と、その機能を発揮させるために行われる利用者の操作とが対応付けて登録されている。例えば、図5は、実施形態に係る操作データベースに登録される情報の一例を示す図である。図5に示す例では、操作データベース31には、ドメイン、対応機能、操作内容、および自然言語表現といった項目を有する情報が登録されている。なお、図5に示す情報以外にも、操作データベース31には、操作対象に対して適用可能な利用者の操作に関する情報が登録されていてもよい。
In the
例えば、ドメインとは、操作対象が利用者に対して提供するサービスの種別を示す情報である。また、対応機能とは、対応付けられたドメインに属する操作対象が提供する機能であって、所定の画面を介して提供される機能を示す情報である。また、操作内容とは、対応付けられた機能を発揮する画面において利用者が行うことができる操作の内容を示す情報である。また、自然言語表現とは、対応付けられた操作を自然言語で示す情報である。 For example, the domain is information indicating the type of service provided by the operation target to the user. Further, the corresponding function is a function provided by an operation target belonging to the associated domain, and is information indicating a function provided via a predetermined screen. Further, the operation content is information indicating the content of the operation that can be performed by the user on the screen that exerts the associated function. The natural language expression is information indicating the associated operation in natural language.
例えば、図5に示す例では、ドメイン「決済」、対応機能「ログイン」、操作内容「操作#1−1」、および自然言語表現「クリック」が対応付けて登録されている。このような情報は、提供するサービスが「決済」である操作対象が、ある画面において「ログイン」の機能を発揮しており、かかる画面において利用者が行うことができる操作が「操作#1−1」であり、かかる操作の自然言語表現が「クリック」である旨を示す。なお、図5に示す例では、対応機能「ログイン」に対し、「操作#1−1」や「操作#1−2」といった複数の操作が対応付けられている。かかる情報は、「ログイン」を行う画面において、「操作#1−1」(例えば、クリック)や「操作#1−2」(例えば、ユーザID入力)といった複数の操作をおこなうことができる旨を示す。 For example, in the example shown in FIG. 5, the domain "payment", the corresponding function "login", the operation content "operation # 1-1", and the natural language expression "click" are registered in association with each other. For such information, the operation target whose service is "payment" exerts the function of "login" on a certain screen, and the operation that the user can perform on such a screen is "operation # 1-". 1 ”indicates that the natural language expression of such an operation is a“ click ”. In the example shown in FIG. 5, a plurality of operations such as "operation # 1-1" and "operation # 1-2" are associated with the corresponding function "login". Such information indicates that a plurality of operations such as "operation # 1-1" (for example, click) and "operation # 1-2" (for example, user ID input) can be performed on the "login" screen. Shown.
なお、図5に示す例では「操作#1−1」といった概念的な値を記載したが、実際には、操作内容を示す各種の情報(例えば、インスタンス等)が登録されることとなる。また、操作データベース31には、例えば、スクロール量やクリックの回数、ユーザIDやパスワードを構成する文字列等がさらに登録されていてもよい。
In the example shown in FIG. 5, a conceptual value such as "operation # 1-1" is described, but in reality, various information (for example, an instance or the like) indicating the operation content is registered. Further, for example, the scroll amount, the number of clicks, the character string constituting the user ID and the password, and the like may be further registered in the
組合わせデータベース32には、操作の組合わせを示す情報、すなわち操作情報が登録される。例えば、図6は、実施形態に係る組合わせデータベースに登録される情報の一例を示す図である。図6に示す例では、組合わせデータベース32には、対応ドメイン、対応機能および操作組合わせが対応付けて登録されている。なお、組合わせデータベース32には、図6に示す情報以外にも、操作の組合わせに関する各種の情報が登録されていてもよい。
Information indicating a combination of operations, that is, operation information is registered in the
ここで、操作組合わせとは、操作対象の機能に応じて決定された複数の操作を示す情報である。また、対応機能とは、操作組合わせが示す操作が、どの機能に対するテストケースであるかを示す情報である。また、対応ドメインとは、対応付けられた操作組合わせがどのドメインに属する操作対象のテストケースであるかを示す情報である。 Here, the operation combination is information indicating a plurality of operations determined according to the function of the operation target. Further, the corresponding function is information indicating which function the operation indicated by the operation combination is a test case for. The corresponding domain is information indicating which domain the associated operation combination belongs to as the test case of the operation target.
例えば、図6に示す例では、対応ドメイン「決済」、対応機能「ログイン」および操作組合わせ「組合わせ#1」、「組合わせ#2」等が対応付けて登録されている。かかる情報は、「決済」に関するサービスを提供する操作対象の、「ログイン」の機能を提供する画面において行われるテストケースが「組合わせ#1」や「組合わせ#2」等が示す操作である旨を示す。なお、図6に示す例では、「組合わせ#1」といった概念的な値を記載したが、実際には、複数の操作や各操作を行う順序を示す情報(例えば、インスタンス等)が登録されることとなる。
For example, in the example shown in FIG. 6, the corresponding domain "payment", the corresponding function "login", the operation combination "
図4に戻り、説明を続ける。制御部40は、例えば、コントローラ(controller)であり、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報提供装置10内部の記憶装置に記憶されている各種プログラム(通知プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部40は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
Returning to FIG. 4, the explanation will be continued. The control unit 40 is, for example, a controller, and is an example of various programs (notification programs) stored in a storage device inside the
図4に示すように、制御部40は、特定部41、決定部42、生成部43、および適用部44を有する。 As shown in FIG. 4, the control unit 40 includes a specific unit 41, a determination unit 42, a generation unit 43, and an application unit 44.
特定部41は、利用者の操作対象が発揮する機能を特定する。例えば、特定部41は、操作対象となるアプリケーションが所定の端末装置に対して表示させる画面に基づいて、その操作対象が発揮する機能を特定する。すなわち、特定部41は、画面を介して提供される機能を特定する。例えば、特定部41は、操作対象が提供するサービスの種別、すなわち、ドメインを特定する。そして、特定部41は、特定したドメインと、操作対象が提供する各画面上のオブジェクトに基づいて、操作対象が各画面上で提供する機能を画面ごとに特定する。 The specific unit 41 specifies a function exhibited by the user's operation target. For example, the specifying unit 41 identifies the function exhibited by the operation target based on the screen displayed on the predetermined terminal device by the operation target application. That is, the specific unit 41 specifies the function provided via the screen. For example, the specific unit 41 specifies the type of service provided by the operation target, that is, the domain. Then, the specific unit 41 specifies the function provided by the operation target on each screen for each screen based on the specified domain and the object on each screen provided by the operation target.
例えば、特定部41は、操作対象が提供する各画面を特定し、特定した各画面上に配置された各種のオブジェクトを特定する。より具体的な例を挙げると、特定部41は、操作対象が提供するテキストを特定する。そして、特定部41は、テキストに含まれる各種の文言や各文言の量に基づいて、操作対象のドメインを特定する。例えば、特定部41は、「決済」に関する文言の量が他のドメインに関する文言の量よりも多い場合は、操作対象が属するドメインを「決済」であると特定する。 For example, the identification unit 41 identifies each screen provided by the operation target, and identifies various objects arranged on each of the specified screens. To give a more specific example, the specific unit 41 specifies the text provided by the operation target. Then, the identification unit 41 specifies the domain to be operated based on various words included in the text and the amount of each word. For example, when the amount of words related to "settlement" is larger than the amount of words related to other domains, the specific unit 41 identifies the domain to which the operation target belongs as "settlement".
続いて、特定部41は、各画面ごとに、画面に含まれる各種のオブジェクトの種別や量等、画面の特徴を特定する。そして、特定部41は、画面の特徴と、特定したドメインとに基づいて、操作対象がその画面上で提供する機能を特定する。例えば、特定部41は、ユーザIDを入力するウインドウやパスワードを入力するウインドウが画面上に配置されている場合、かかる画面で提供される機能が「ログイン」であると特定する。なお、特定部41は、画面の特徴とドメインとの関係性を学習したドメインモデル、および、画面の特徴とその画面上で提供される機能との関係性を学習したスクリーンモデルを用いて、上述した各種の機能を発揮してもよい。また、特定部41は、各画面が表示される順番に基づいて、その画面上で提供される機能を特定してもよい。 Subsequently, the specific unit 41 specifies the characteristics of the screen, such as the type and amount of various objects included in the screen, for each screen. Then, the specific unit 41 specifies the function provided by the operation target on the screen based on the characteristics of the screen and the specified domain. For example, when the window for inputting the user ID and the window for inputting the password are arranged on the screen, the specific unit 41 identifies that the function provided on the screen is "login". The specific unit 41 uses a domain model that learns the relationship between screen features and domains, and a screen model that learns the relationship between screen features and the functions provided on the screen. You may exert various functions. Further, the specifying unit 41 may specify the functions provided on the screens based on the order in which the screens are displayed.
決定部42は、特定された機能に応じて、操作対象に対して行われる利用者の操作の組合わせを決定する。例えば、決定部42は、機能と、操作対象にその機能を発揮させる際に行われる利用者の操作とを対応付けた操作データベース31を参照し、特定部41により特定された機能と対応する操作に基づいて、組合わせを決定する。
The determination unit 42 determines a combination of user operations performed on the operation target according to the specified function. For example, the determination unit 42 refers to the
例えば、決定部42は、操作データベース31を参照し、特定部41により特定されたドメインおよび機能と対応付けられた操作内容を特定する。そして、決定部42は、特定した各操作をランダムに組合わせた複数の組合わせ候補を決定する。例えば、決定部42は、特定部41によりドメイン「決済」と機能「ログイン」とが特定された場合、ドメイン「決済」および機能「ログイン」と対応付けられた操作内容「操作#1−1」、「操作#1−2」等を特定する。そして、決定部42は、「操作#1−1」や「操作#1−2」をランダムな数だけランダムな順序で組合わせた組合わせ候補を決定する。
For example, the determination unit 42 refers to the
さらに、決定部42は、組合わせデータベース32を参照し、特定部41により特定されたドメイン「決済」と機能「ログイン」とに対応付けられた操作組合わせを組合わせ候補として取得する。そして、決定部42は、各組合わせ候補に基づいて、操作対象に対して行われる利用者の操作の組合わせを決定する。
Further, the determination unit 42 refers to the
例えば、決定部42は、組合わせ候補ごとに、特定部41により特定された機能を発揮するか否かを判定し、機能を発揮するまでのステップ数を計数する。続いて、決定部42は、例えば、計数してステップ数が所定の条件を満たす組合わせ候補(例えば、ステップ数が最も少ない候補等)を親となる組合わせ候補として選択し、選択した組合わせ候補に含まれる操作を入れ替えた組合わせ候補を新たに決定する。なお、決定部42は、ランダムに親となる組合わせ候補を選択してもよい。さらに、決定部42は、ランダムに選択された組合わせ候補に含まれる操作のうちランダムに選択された操作をランダムに他の操作へと変更した組合わせ候補を新たに生成する。なお、決定部42は、例えば、ステップ数が所定の条件を満たす組合わせ候補に含まれる操作のうちランダムに選択された操作をランダムに他の操作へと変更した組合わせ候補を新たに生成してもよい。 For example, the determination unit 42 determines whether or not the function specified by the specific unit 41 is exhibited for each combination candidate, and counts the number of steps until the function is exhibited. Subsequently, the determination unit 42 selects, for example, a combination candidate whose number of steps satisfies a predetermined condition (for example, a candidate having the smallest number of steps) as a parent combination candidate, and the selected combination. A new combination candidate with the operations included in the candidate replaced is determined. The determination unit 42 may randomly select a combination candidate to be a parent. Further, the determination unit 42 newly generates a combination candidate in which the randomly selected operation is randomly changed to another operation among the operations included in the randomly selected combination candidates. In addition, for example, the determination unit 42 newly generates a combination candidate in which a randomly selected operation is randomly changed to another operation among the operations included in the combination candidate whose number of steps satisfies a predetermined condition. You may.
そして、決定部42は、各組合わせ候補が特定部41により特定された機能を発揮するか否かを判定し、機能を発揮するまでのステップ数を計数する。このような一連の処理を所定の条件が満たされるまで(例えば、所定回数、もしくは、各組合わせ候補のステップ数の分布が所定の条件を満たす迄)繰り返し実行することで、決定部42は、テストケースとして適切な操作の組合わせ候補を自動的に生成することができる。そして、決定部42は、生成した組合わせ候補を組合わせデータベース32に登録する。
Then, the determination unit 42 determines whether or not each combination candidate exerts the function specified by the specific unit 41, and counts the number of steps until the function is exerted. By repeatedly executing such a series of processes until a predetermined condition is satisfied (for example, a predetermined number of times or until the distribution of the number of steps of each combination candidate satisfies a predetermined condition), the determination unit 42 determines. Combination candidates for appropriate operations can be automatically generated as test cases. Then, the determination unit 42 registers the generated combination candidates in the
生成部43は、決定された操作の組合わせを自然言語で表した操作情報を生成する。例えば、生成部43は、操作対象が提供する画面ごとに、操作情報を生成する。例えば、生成部43は、操作情報の生成対象となる画面において提供される機能と、操作対象のドメインとに対応付けられた操作組合わせを組合わせデータベース32から取得する。続いて、生成部43は、各操作組合わせに含まれる各操作を示す自然言語表現を操作データベース31から取得する。そして、生成部43は、取得した自然言語表現と、操作組合わせに含まれる操作の順序とに応じて、操作組合わせが示す操作内容を自然言語で示す操作情報を操作組合わせごとに生成する。このような処理の結果、情報提供装置10は、テストケースとなる操作情報を自動的に生成することができる。
The generation unit 43 generates operation information in which the determined combination of operations is expressed in natural language. For example, the generation unit 43 generates operation information for each screen provided by the operation target. For example, the generation unit 43 acquires the function provided on the screen on which the operation information is generated and the operation combination associated with the operation target domain from the
適用部44は、生成部43によって生成された操作情報に従って、対象の試験を行う。例えば、適用部44は、操作情報を取得すると、図3に例示した処理を実行することで、操作情報と対象との組み合わせごとに適用情報を生成し、生成した適用情報を端末装置200に適用することで、試験を実現する。なお、適用部44が実行する適用処理については、上述した各種の処理が適用可能であるものとし、詳細な説明を省略する。 The application unit 44 tests the target according to the operation information generated by the generation unit 43. For example, when the application unit 44 acquires the operation information, it executes the process illustrated in FIG. 3 to generate application information for each combination of the operation information and the target, and applies the generated application information to the terminal device 200. By doing so, the test is realized. It is assumed that the various processes described above can be applied to the application process executed by the application unit 44, and detailed description thereof will be omitted.
〔3.処理手順〕
次に、図7を用いて、実施形態に係る情報提供装置10による生成処理の手順について説明する。図7は、実施形態に係る生成処理の流れの一例を示すフローチャートである。
[3. Processing procedure]
Next, the procedure of the generation process by the
例えば、情報提供装置10は、操作対象となるアプリケーションを受付けたか否かを判定する(ステップS101)。そして、情報提供装置10は、アプリケーションを受付けていない場合は(ステップS101:No)、受付けるまで待機する(ステップS101)。一方、情報提供装置10は、アプリケーションを受付けた場合は(ステップS101:Yes)、アプリケーションが発揮する機能を特定する(ステップS102)。
For example, the
また、情報提供装置10は、特定した機能に基づいて、アプリケーションに対して行われる利用者の操作の組合わせを決定する(ステップS103)。そして、情報提供装置10は、決定した組合わせを自然言語で示す操作情報を生成し(ステップS104)、処理を終了する。
Further, the
〔4.変形例〕
上述した情報提供装置10は、上記実施形態以外にも種々の異なる形態にて実施されてもよい。そこで、以下では、情報提供装置10の他の実施形態について説明する。
[4. Modification example]
The
〔4−1.操作について〕
上述した例では、情報提供装置10は、ログインを受付けるアプリケーションの試験を行うための適用情報を生成した。しかしながら、実施形態は、これに限定されるものではない。
[4-1. About operation]
In the example described above, the
例えば、情報提供装置10は、対象となる端末装置200やソフトウェアと関連する利用者の行動であれば、任意の行動が行われる際に入力される操作を特定し、特定した操作を組合わせた操作情報を生成してよい。例えば、情報提供装置10は、SNS等に対する所定の文字列や写真といったコンテンツの投稿や、ゲーム等に対する入力、動画の閲覧といった任意の行動が行われた際における操作について、操作情報の生成を受付けてもよい。また、情報提供装置10は、例えば、端末装置200の向きを変更する、端末装置200を振る、音量を変更する等、音声による各種操作の入力といったハードウェアに依存する各種の行動が行われる際の操作を示す操作情報の生成を行ってもよい。
For example, the
また、情報提供装置10は、任意のアプリケーションについての操作情報を生成してよい。例えば、情報提供装置10は、端末装置200を用いた各種の決済サービスを提供するアプリケーションについて、操作情報の生成を行ってもよい。例えば、決済サービスには、店舗に設置されたQRコード(登録商標)を読み取るとともに、決済額の入力を受付け、QRコードと対応する店舗の口座に対し、受付けた決済額の電子マネーを利用者の口座から送金するといったサービスが存在する。また、決済サービスには、利用者の口座やクレジットカードを識別するバーコードを表示し、表示したバーコードを店舗の端末が読み取ることで、利用者に対する課金を実現するものが存在する。
In addition, the
情報提供装置10は、このような各種決済サービスに関するアプリケーションについて、操作情報の生成を行ってもよい。例えば、情報提供装置10は、「店舗#Aに対して100円支払う」といった操作情報を生成してもよい。また、情報提供装置10は、「店舗#AのQRコードを読み取る」操作、「決済額として100円」を入力する操作、および「支払ボタンを押下する操作」を組合わせた操作情報を生成してもよい。また、情報提供装置10は、決済額を様々な額に設定した操作情報を生成してもよい。すなわち、情報提供装置10は、操作そのものだけではなく、操作の内容を示すパラメータ(例えば、スクロール量や入力するテキストの内容、QRコードの内容や決済額等)を適宜変更した複数の操作情報を生成してもよい。
The
また、情報提供装置10は、各利用者に対して発光される各種請求書に対応する支払を行わせるための操作を示す操作情報を生成してもよい。例えば、端末装置200にインストールされたアプリケーションには、請求書等に印刷されたバーコードをカメラで読み取ると、バーコードが示す支払先および支払額を特定し、特定した支払先の口座へ、特定した支払額を利用者の口座から送金する機能を有する場合がある。このような場合、情報提供装置10は、所定のバーコードの画像を生成し、「バーコードの画像を撮影した画像として読み出す」、「読み出した画像に撮影されているバーコードを識別する(スキャンする)」、「識別したバーコードが示す情報に基づいて、送金を行う」といった操作を実行させるための操作情報を生成してもよい。
In addition, the
また、情報提供装置10は、「識別したバーコードから、送金金額と請求者とを検証する」といった操作を行わせるための操作情報を生成してもよい。例えば、情報提供装置10は、バーコードが示す支払先や額を示す文字列とバーコードとを配置した画像(すなわち、仮想的な請求書の画像)を生成し、「バーコードの画像を撮影した画像として読み出す」、「読み出した画像に撮影されているバーコードと、文字列と識別する」、「識別したバーコードが示す支払額と支払先とを識別する」、「識別した文字列が示す支払額と支払先とを識別する」、「バーコードが示す支払額および支払先と、文字列が示す支払額および支払先とが一致するか否かを判定する」、「各支払額および支払先が一致すると判定された場合に、送金を行う」といった一連の処理を実行させるための操作情報や、これらの操作をランダムに組合わせた操作情報を生成してもよい。
Further, the
また、情報提供装置10は、アプリケーションが、電子的な請求書に従った支払を実現することができる場合、このような機能を用いた支払の検証を行わせるための操作情報を生成してもよい。例えば、情報提供装置10は、「支払対象となる電子的な請求書のリストを表示させる」、「リストの中から支払対象となる請求書を選択する」、「選択した請求書に従って、送金を行う」といった操作を実行させるための操作情報等を生成してもよい。
Further, the
また、情報提供装置10は、各種権限の設定を行う操作や電話等の発信操作等を含む操作情報を生成してよい。このように、情報提供装置10は、対象において入力可能な操作であれば、任意の操作を行わせるための操作情報を生成してよい。さらに、情報提供装置10は、例えば、端末装置200とブルートゥース(登録商標)等で接続されたイヤホンや各種のウェアラブルデバイス等を制御するための操作を適用するための操作情報を生成してもよい。すなわち、情報提供装置10は、試験などの対象から操作可能な他の対象に対する操作を含む操作情報を生成してよい。
Further, the
〔4−2.目的について〕
ここで、情報提供装置10は、対象の試験以外にも、任意の目的で上述した操作情報の生成を行ってよい。例えば、各種の提携作業をソフトウェア型のロボットやAI(Artificial Intelligence)が代行、自動化するRPA(Robotic Process Automation)の技術が知られている。情報提供装置10は、このようなRPAの技術において、上述した生成処理を適用してもよい。また、情報提供装置10は、QAAS(Quality Assurance as a Service)を試験するために、各種ソフトウェアに対する操作情報を生成してもよい。より具体的には、情報提供装置10は、対象となるソフトウェアに対して行われる利用者の行動を示す操作情報を、各ソフトウェアが利用者に対して機能を提供するための画面や、機能を提供するフェーズごとに生成してもよい。すなわち、情報提供装置10は、ソフトウェアが機能を提供するフェーズごとに、提供される機能を特定し、特定した機能と対応する操作を組合わせた組合わせ情報を生成すればよい。
[4-2. About the purpose]
Here, the
例えば、情報提供装置10は、対象となる各ソフトウェアにおいて適用可能な操作(例えば、データ入力や関数入力、各種の操作等)を特定し、特定した操作を組合わせた操作情報を、対象となるソフトウェアごとに生成してもよい。また、情報提供装置10は、ある1つの行動を行わせるために複数のソフトウェアを強調させる必要がある場合、ソフトウェアごとに必要な操作を特定し、特定した操作を各ソフトウェアに対して適用させる操作情報を生成してもよい。
For example, the
例えば、情報提供装置10は、第1ソフトウェアに所定の操作を入力することで、第1データを作成させる操作情報を生成するとともに、第2ソフトウェアに対して第1データを読み込ませ、さらに第1データを用いた所定の処理を実行させるための操作を第2ソフトウェアに適用するための操作情報を生成してもよい。そして、情報提供装置10は、生成した操作情報を第1ソフトウェアや第2ソフトウェアに対して順に適用すればよい。
For example, the
このように、情報提供装置10は、対象における試験のみならず、対象に任意の処理を行わせるための操作を含む操作情報を生成してよい。また、情報提供装置10は、上述した目的以外にも、対象に対する操作をを示す操作情報を生成するのであれば、任意の目的について、適用情報を生成してよい。
As described above, the
〔4−3.処理態様について〕
上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、逆に、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
[4-3. About processing mode]
Of the processes described in the above embodiments, all or part of the processes described as being automatically performed can be performed manually, and conversely, all the processes described as being performed manually. Alternatively, a part thereof can be automatically performed by a known method. In addition, the processing procedure, specific name, and information including various data and parameters shown in the above document and drawings can be arbitrarily changed unless otherwise specified. For example, the various information shown in each figure is not limited to the illustrated information.
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。 Further, each component of each of the illustrated devices is a functional concept, and does not necessarily have to be physically configured as shown in the figure. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or part of the device is functionally or physically distributed / physically in arbitrary units according to various loads and usage conditions. Can be integrated and configured.
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組合わせることが可能である。 In addition, each of the above-described embodiments can be appropriately combined as long as the processing contents do not contradict each other.
〔4−4.プログラム〕
また、上述した実施形態に係る情報提供装置10は、例えば図8に示すような構成のコンピュータ1000によって実現される。図8は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力IF(Interface)1060、入力IF1070、ネットワークIF1080がバス1090により接続された形態を有する。
[4-4. program〕
Further, the
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置1040は、RAM等、演算装置1030が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等により実現される。
The arithmetic unit 1030 operates based on a program stored in the
出力IF1060は、モニタやプリンタといった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、USB(Universal Serial Bus)やDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力IF1070は、マウス、キーボード、およびスキャナ等といった各種の入力装置1020から情報を受信するためのインタフェースであり、例えば、USB等により実現される。
The output IF 1060 is an interface for transmitting information to be output to an output device 1010 that outputs various information such as a monitor and a printer. For example, USB (Universal Serial Bus), DVI (Digital Visual Interface), and the like. It is realized by a connector of a standard such as HDMI (registered trademark) (High Definition Multimedia Interface). Further, the input IF 1070 is an interface for receiving information from
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置1020は、USBメモリ等の外付け記憶媒体であってもよい。
The
ネットワークIF1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。 The network IF1080 receives data from another device via the network N and sends it to the arithmetic unit 1030, and also transmits the data generated by the arithmetic unit 1030 to the other device via the network N.
演算装置1030は、出力IF1060や入力IF1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
The arithmetic unit 1030 controls the output device 1010 and the
例えば、コンピュータ1000が情報提供装置10として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、制御部40の機能を実現する。
For example, when the computer 1000 functions as the
〔5.効果〕
上述したように、情報提供装置10は、利用者の操作対象が発揮する機能を特定する。そして、情報提供装置10は、特定された機能に応じて、操作対象に対して行われる利用者の操作の組合わせを決定し、決定された操作の組合わせを自然言語で表した操作情報を生成する。このような処理の結果、情報提供装置10は、操作対象のテストケースを自動的に生成することができるので、任意の対象に対する試験を容易にすることができる。
[5. effect〕
As described above, the
また、情報提供装置10は、操作対象となるアプリケーションが所定の端末装置に対して表示させる画面に基づいて、その操作対象が発揮する機能を特定する。すなわち、情報提供装置10は、画面を介して提供される機能を特定する。このため、情報提供装置10は、各画面ごとに提供される機能を試験するためのテストケースを自動的に生成することができる。
Further, the
例えば、情報提供装置10は、アプリケーションが各画面を表示させる順序に基づいて、そのアプリケーションが発揮する機能を特定する。また、情報提供装置10は、操作対象が提供するサービスの種別を特定し、特定されたサービスの種別に基づいて、その操作対象が発揮する機能を特定する。また、情報提供装置10は、特定されたサービスの種別とあらかじめ紐づけられた機能のうち、操作対象が発揮する機能を特定する。
For example, the
例えば、情報提供装置10は、操作対象が所定の端末装置に対して表示させる画面に含まれるオブジェクトに基づいて、操作対象が提供するサービスの種別を特定する。また、情報提供装置10は、操作対象が所定の端末装置に対して表示させる画面に含まれるオブジェクトの量に基づいて、操作対象が提供するサービスの種別を特定する。また、情報提供装置10は、オブジェクトとして、画面に含まれるテキストに基づいて、操作対象が提供するサービスの種別を特定する。このような処理の結果、情報提供装置10は、適切に操作対象が提供するサービスを特定するとともに、特定したサービスに基づいて、操作対象が発揮する機能を特定することができるので、適切にテストケースを生成することができる。
For example, the
また、情報提供装置10は、操作対象が有する特徴と、その操作対象が発揮する機能との関係性を学習したモデルを用いて、操作対象が発揮する機能を特定する。このため、情報提供装置10は、操作対象が新規なアプリケーション等であっても、その操作対象の機能を適切に特定することができる。
Further, the
また、情報提供装置10は、機能と、操作対象にその機能を発揮させる際に行われる利用者の操作とを対応付けたデータベースを参照し、特定された機能と対応する操作に基づいて、組合わせを決定する。例えば、情報提供装置10は、特定された機能と対応する操作と、その操作を行う順序とをランダムに組合わせることで、複数の組合わせ候補を決定し、決定した組合わせ候補に基づいて、操作対象に対して行われる利用者の操作の組合わせを決定する。また、情報提供装置10は、組合わせ候補ごとに、特定された機能を発揮するか否かを判定し、その機能を発揮すると判定された組合わせ候補に基づいて、組合わせを決定する。また、情報提供装置10は、特定された機能を発揮すると判定された組合わせ候補に含まれる操作に基づいて、新たな組合わせ候補を生成し、生成した組合わせ候補に基づいて、組合わせを決定する。また、情報提供装置10は、特定された機能を発揮すると判定された組合わせ候補に含まれる操作と、ランダムに選択された操作とに基づいて、新たな組合わせ候補を生成する。また、情報提供装置10は、組合わせ候補ごとに、特定部により特定された機能を発揮するか否かを判定する処理と、機能を発揮すると判定された組合わせ候補に含まれる操作に基づいて、新たな組合わせ候補を生成する処理と、その新たな組合わせ候補が特定部により特定された機能を発揮するか否かを判定する処理とを、所定の条件が満たされるまで繰り返し実行することで、組合わせを決定する。このような処理の結果、情報提供装置10は、様々な内容のテストケースを自動的に生成することができる。
Further, the
また、情報提供装置10は、組合わせ候補ごとに、特定部により特定された機能が発揮されるまでに実行された操作の数を計数し、組合わせ候補のうち、計数した行動の数が所定の条件を満たす組合わせ候補を、操作対象に対して行われる利用者の操作の組合わせとする。このため、情報提供装置10は、試験対象として最適な内容の操作の組わせをテストケースとすることができる。
Further, the
また、情報提供装置10は、操作の組合わせを特定部により特定された機能と対応付けて所定のデータベースに登録する。また、情報提供装置10は、特定された機能と対応付けられた操作の組合わせを組合わせ候補として所定のデータベースから読み出す。このような処理の結果、情報提供装置10は、類似する操作対象のテストケースが生成済みである場合、かかるテストケースを流用することができる。
Further, the
以上、本願の実施形態を図面に基づいて詳細に説明したが、これは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。 The embodiments of the present application have been described in detail with reference to the drawings, but this is an example, and various modifications and improvements are made based on the knowledge of those skilled in the art, including the embodiments described in the disclosure column of the invention. It is possible to carry out the present invention in other forms described above.
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。 Further, the above-mentioned "section, module, unit" can be read as "means" or "circuit". For example, the acquisition unit can be read as an acquisition means or an acquisition circuit.
10 情報提供装置
20 通信部
30 記憶部
31 操作データベース
32 組合わせデータベース
40 制御部
41 特定部
42 決定部
43 生成部
44 適用部
200 端末装置
300 操作者端末
10 Information providing device 20
Claims (20)
特定された機能に応じて、操作対象に対して行われる利用者の操作の組合わせを決定する決定部と、
決定された操作の組合わせを自然言語で表した操作情報を生成する生成部と
を有することを特徴とする生成装置。 A specific unit that specifies the type of service provided by the user's operation target, and identifies the function that the operation target exerts based on the specified service type.
A decision unit that determines the combination of user operations performed on the operation target according to the specified function, and
A generator characterized by having a generator that generates operation information in which a combination of determined operations is expressed in natural language.
ことを特徴とする請求項1に記載の生成装置。 The generation according to claim 1, wherein the specific unit specifies a type of service provided by the operation target based on a screen displayed on a predetermined terminal device by the operation target application. apparatus.
ことを特徴とする請求項2に記載の生成装置。 The generator according to claim 2, wherein the specific unit specifies a function provided via the screen.
ことを特徴とする請求項3に記載の生成装置。 The specifying unit, the claims and the object on the screen by the application is displayed, the application is based on the order in which to display the respective screens, and identifies the functionality provided through the screen The generator according to 3.
ことを特徴とする請求項1〜4のうちいずれか1つに記載の生成装置。 The specific unit is described in any one of claims 1 to 4, characterized in that the function to be exhibited by the operation target is specified among the functions associated with the specified service type in advance. Generator.
ことを特徴とする請求項1〜5のうちいずれか1つに記載の生成装置。 The specific unit according to claim 1 to 5, wherein the specific unit specifies a type of service provided by the operation target based on an object included in a screen displayed by the operation target on a predetermined terminal device. The generator according to any one of them.
ことを特徴とする請求項6に記載の生成装置。 The specifying unit, based on the amount of objects which the operation target is included in the screen to be displayed for a predetermined terminal apparatus, to claim 6, wherein the operation target specifying a type of service provided The generator described.
ことを特徴とする請求項6または7に記載の生成装置。 The generator according to claim 6 or 7 , wherein the specific unit specifies the type of service provided by the operation target based on the text included in the screen as the object.
ことを特徴とする請求項1〜8のうちいずれか1つに記載の生成装置。 Claim 1 is characterized in that the specific unit specifies a function exerted by the operation target by using a model that learns the relationship between the feature possessed by the operation target and the function exerted by the operation target. The generator according to any one of 8 to 8.
ことを特徴とする請求項1〜9のうちいずれか1つに記載の生成装置。 The determination unit refers to a database in which the function is associated with the user's operation performed when the operation target exerts the function, and is based on the operation corresponding to the function specified by the specific unit. The generator according to any one of claims 1 to 9 , wherein the combination is determined.
ことを特徴とする請求項10に記載の生成装置。 The determination unit determines a plurality of combination candidates by randomly combining the operation corresponding to the function specified by the specific unit and the order in which the operation is performed, and based on the determined combination candidate. , generating apparatus according to claim 1 0, characterized in that to determine the combination of the user's operation performed on the operation target.
ことを特徴とする請求項11に記載の生成装置。 The determination unit determines whether or not the function specified by the specific unit is exerted for each combination candidate, and determines the combination based on the combination candidate determined to exert the function. generator according to claim 1 1, characterized by.
ことを特徴とする請求項12に記載の生成装置。 The determination unit generates a new combination candidate based on the operation included in the combination candidate determined to exert the function specified by the specific unit, and the combination is based on the generated combination candidate. generating apparatus according to claim 1 2, characterized in that determining the total.
ことを特徴とする請求項13に記載の生成装置。 The determination unit generates the new combination candidate based on the operation included in the combination candidate determined to exert the function specified by the specific unit and the operation selected at random. generating apparatus according to claim 1, wherein.
ことを特徴とする請求項12〜14のうちいずれか1つに記載の生成装置。 The determination unit is based on a process of determining whether or not the function specified by the specific unit is exerted for each combination candidate, and an operation included in the combination candidate determined to exert the function. , The process of generating a new combination candidate and the process of determining whether or not the new combination candidate exerts the function specified by the specific unit are repeatedly executed until a predetermined condition is satisfied. it is, generating device according to any one of claims 1 2 to 1 4, characterized in that to determine the combination.
ことを特徴とする請求項11〜14のうちいずれか1つに記載の生成装置。 The determination unit counts the number of operations performed until the function specified by the specific unit is exerted for each combination candidate, and the number of counted actions among the combination candidates is predetermined. the condition is satisfied combination candidate generating apparatus according to any one of claims 1 1 to 1 4, characterized in that the combination of the user's operation performed on the operation target.
ことを特徴とする請求項12〜16のうちいずれか1つに記載の生成装置。 The determination unit according to any one of claims 12 to 16 , wherein the determination unit registers the combination of the operations in a predetermined database in association with the function specified by the specific unit. Generator.
ことを特徴とする請求項17に記載の生成装置。 The generator according to claim 17 , wherein the determination unit reads a combination of operations associated with the function specified by the specific unit from the predetermined database as a combination candidate.
試験の対象である操作対象が提供するサービスの種別を特定し、特定されたサービスの種別に基づいて、当該操作対象が発揮する機能を特定する特定工程と、
特定された機能に応じて、実行する試験の内容を決定する決定工程と、
決定された内容を自然言語で表した試験情報を生成する生成工程と
を含むことを特徴とする生成方法。 It is a generation method executed by the generation device.
A specific process that identifies the type of service provided by the operation target that is the subject of the test, and identifies the function that the operation target exerts based on the specified service type.
A decision process that determines the content of the test to be performed according to the identified function,
A generation method including a generation step of generating test information in which the determined contents are expressed in natural language.
特定された機能に応じて、実行する試験の内容を決定する決定手順と、
決定された内容を自然言語で表した試験情報を生成する生成手順と
をコンピュータに実行させるための生成プログラム。 A specific procedure for identifying the type of service provided by the operation target that is the subject of the test, and identifying the function that the operation target exerts based on the specified service type, and
A decision procedure that determines the content of the test to be performed according to the identified function, and
A generation program that allows a computer to execute a generation procedure that generates test information that expresses the determined content in natural language.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020163457A JP6861880B1 (en) | 2020-09-29 | 2020-09-29 | Generation device, generation method and generation program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020163457A JP6861880B1 (en) | 2020-09-29 | 2020-09-29 | Generation device, generation method and generation program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6861880B1 true JP6861880B1 (en) | 2021-04-21 |
JP2022055811A JP2022055811A (en) | 2022-04-08 |
Family
ID=75520903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020163457A Active JP6861880B1 (en) | 2020-09-29 | 2020-09-29 | Generation device, generation method and generation program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6861880B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2022249328A1 (en) * | 2021-05-26 | 2022-12-01 | ||
JP7204834B1 (en) | 2021-06-30 | 2023-01-16 | PayPay株式会社 | Proposed device, proposed method and proposed program |
WO2025115177A1 (en) * | 2023-11-30 | 2025-06-05 | 三菱電機株式会社 | Verification support device, verification support system, and verification support method |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7712980B2 (en) * | 2023-06-14 | 2025-07-24 | 株式会社オービック | Test scenario creation support system, test scenario creation support method, and test scenario creation support program |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5067057B2 (en) * | 2007-07-20 | 2012-11-07 | 富士ゼロックス株式会社 | Image processing apparatus and image processing program |
US20120016862A1 (en) * | 2010-07-14 | 2012-01-19 | Rajan Sreeranga P | Methods and Systems for Extensive Crawling of Web Applications |
JP2015228086A (en) * | 2014-05-30 | 2015-12-17 | 株式会社リコー | Information processing system, information processing device, information processing method, and program |
JP7053017B2 (en) * | 2018-04-19 | 2022-04-12 | Heroz株式会社 | Web inspection program and web inspection equipment |
US10740221B2 (en) * | 2018-10-15 | 2020-08-11 | Sap Se | Scalable AI framework for test automation |
-
2020
- 2020-09-29 JP JP2020163457A patent/JP6861880B1/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2022249328A1 (en) * | 2021-05-26 | 2022-12-01 | ||
WO2022249328A1 (en) * | 2021-05-26 | 2022-12-01 | 株式会社ソニー・インタラクティブエンタテインメント | Information processing device, information processing method, and program |
JP7204834B1 (en) | 2021-06-30 | 2023-01-16 | PayPay株式会社 | Proposed device, proposed method and proposed program |
WO2025115177A1 (en) * | 2023-11-30 | 2025-06-05 | 三菱電機株式会社 | Verification support device, verification support system, and verification support method |
Also Published As
Publication number | Publication date |
---|---|
JP2022055811A (en) | 2022-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6861880B1 (en) | Generation device, generation method and generation program | |
US11934301B2 (en) | System and method for automated software testing | |
US10705942B1 (en) | Simulated testing of API | |
US20240037020A1 (en) | System and Method for Automated Software Testing | |
US11074165B2 (en) | Generating testing infrastructure on a cloud for testing software applications | |
CN107402880B (en) | Test method and electronic equipment | |
US20220107882A1 (en) | Rendering engine component abstraction system | |
US10438502B2 (en) | Assessment item generation and scoring | |
JP5954752B2 (en) | Apparatus, method, and program for testing system | |
US9996381B1 (en) | Live application management workflow using metadata capture | |
US20210081309A1 (en) | Mapping interactive elements in an application user interface | |
WO2013075612A1 (en) | Auto login method and device | |
CN110858172A (en) | A kind of automatic test code generation method and device | |
JP7280388B2 (en) | Apparatus and method, equipment and medium for implementing a customized artificial intelligence production line | |
CN103984626A (en) | Method and device for generating test-case script | |
JP2018045372A (en) | Information processing device and information processing program | |
WO2021129335A1 (en) | Operation monitoring method and apparatus, operation analysis method and apparatus | |
JP7029557B1 (en) | Judgment device, judgment method and judgment program | |
Ceballos Delgado et al. | FADE: A forensic image generator for Android device education | |
CN104471530A (en) | Executable Software Specification Generation | |
US20190385472A1 (en) | Assessment item generation and scoring | |
JP6798050B1 (en) | Generator, generation method and generation program | |
US20190347078A1 (en) | Generating Application Mock-Ups Based on Captured User Sessions | |
US20090066984A1 (en) | Device setting apparatus, device setting method, information acquiring apparatus, information acquiring method, storage medium, and program | |
CN113742240A (en) | User interface testing method and device, storage medium and electronic equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200929 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20200929 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20201020 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201201 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210129 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210302 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210330 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6861880 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |