JP2014085762A - Analysis system, analysis device, analysis method and analysis program - Google Patents

Analysis system, analysis device, analysis method and analysis program Download PDF

Info

Publication number
JP2014085762A
JP2014085762A JP2012233042A JP2012233042A JP2014085762A JP 2014085762 A JP2014085762 A JP 2014085762A JP 2012233042 A JP2012233042 A JP 2012233042A JP 2012233042 A JP2012233042 A JP 2012233042A JP 2014085762 A JP2014085762 A JP 2014085762A
Authority
JP
Japan
Prior art keywords
screen
unit
execution
user event
transition model
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.)
Granted
Application number
JP2012233042A
Other languages
Japanese (ja)
Other versions
JP5918102B2 (en
Inventor
Eitaro Shioji
榮太朗 塩治
Mitsuaki Akiyama
満昭 秋山
Makoto Iwamura
誠 岩村
Takeo Hario
剛男 針生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012233042A priority Critical patent/JP5918102B2/en
Publication of JP2014085762A publication Critical patent/JP2014085762A/en
Application granted granted Critical
Publication of JP5918102B2 publication Critical patent/JP5918102B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To efficiently increase code coverage in the dynamic analysis of a program accompanied by a GUI (Graphical User Interface) operation.SOLUTION: An analysis device according to one embodiment includes: a transition model storage part; a transition model updating part; an event execution control part; and a log acquisition part. A transition model storage part is configured to store the transition model of a screen in an application in which a screen transits in accordance with a user event. The transition model updating part is configured to, on the basis of structure information related to the currently displayed current screen, determine similarity between a known screen and the current screen, and to update the transition model such that the current screen which is not similar to the known screen is added. An event execution control part is configured to execute an unexecuted user event on the screen corresponding to the current screen in the transition model.

Description

本発明は、解析システム、解析装置、解析方法及び解析プログラムに関する。   The present invention relates to an analysis system, an analysis apparatus, an analysis method, and an analysis program.

近年、悪性な挙動を行うソフトウェア(以下、「マルウェア」と表記する場合がある)が増加している。未知のマルウェアを検知する手法として、ソフトウェアのプログラムコードを解析することも考えられるが、世の中に出回っているソフトウェアの数が膨大であることや、難読化されているプログラムコードが多いことなどの事情を踏まえると、実際にソフトウェアを実行させて挙動を監視する動的解析が有効であると考えられる。   In recent years, software that performs malicious behavior (hereinafter may be referred to as “malware”) is increasing. Analyzing the program code of software as a method to detect unknown malware can be considered, but there are a lot of software on the world, and there are many obfuscated program codes Based on the above, it is considered effective to perform dynamic analysis that monitors the behavior by actually executing the software.

D.Amalfitano, A.Fasolino, and P.Tramontana, ”A GUI Crawling-based technique for Android Mobile Application Testing,” In IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops (ICSTW),2011.D. Amalfitano, A. Fasolino, and P. Tramontana, “A GUI Crawling-based technique for Android Mobile Application Testing,” In IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops (ICSTW), 2011.

しかしながら、従来の動的解析では、GUI(Graphical User Interface)操作を伴うソフトウェアにおけるプログラムコードの実行率(以下、「コードカバレッジ」と表記する場合がある)を効率的に高めることが困難であった。   However, in the conventional dynamic analysis, it has been difficult to efficiently increase the execution rate of program code (hereinafter sometimes referred to as “code coverage”) in software that involves GUI (Graphical User Interface) operations. .

具体的には、ソフトウェアのプログラムコードは、特定の入力を与えないと一部が実行されないものが多い。このため、高いコードカバレッジを得るためには、そのような特定の入力をプログラムコードに与えることを要する。特に、近年普及が進むスマートフォン(smartphone)上で動作するソフトウェアは、GUIを前提としたものが多いため、タップ操作やテキスト入力などのユーザイベントを模擬した入力を与えることを要する。しかし、ソフトウェア開発におけるテスト工程などとは異なり、不特定多数のソフトウェアを自動解析する状況においては解析対象ソフトウェアの仕様が明らかではないので、プログラムコードが網羅的に実行されるような適切なユーザイベントを事前に用意することは困難であった。このようなことから、従来の動的解析では、コードカバレッジを効率的に高めることが困難であった。   Specifically, many software program codes are not executed unless a specific input is given. For this reason, in order to obtain high code coverage, it is necessary to give such specific input to the program code. In particular, since software that operates on smartphones that have become popular in recent years is predicated on a GUI, it is necessary to provide input that simulates a user event such as a tap operation or text input. However, unlike the testing process in software development, the specification of the software to be analyzed is not clear in the situation where an unspecified number of software is automatically analyzed. It was difficult to prepare in advance. For this reason, it has been difficult to increase the code coverage efficiently in the conventional dynamic analysis.

なお、ユーザイベントを無作為に発生させることも考えられるが、このような手法においても、コードカバレッジを高めることは困難であり、さらに効率的な動的解析であるとは言えなかった。   Although it is conceivable to generate user events at random, it is difficult to increase the code coverage even with such a method, and it cannot be said that the dynamic analysis is more efficient.

本願の開示する技術は、上記に鑑みてなされたものであって、GUI操作を伴うプログラムの動的解析においてコードカバレッジを効率的に高めることができる解析システム、解析装置、解析方法及び解析プログラムを提供することを目的とする。   The technology disclosed in the present application has been made in view of the above, and an analysis system, an analysis device, an analysis method, and an analysis program that can efficiently increase code coverage in a dynamic analysis of a program that involves a GUI operation. The purpose is to provide.

実施形態に係る解析システムは、実行装置と解析装置とを含む解析システムであって、前記実行装置は、ユーザ操作であるユーザイベントに応じて画面が遷移するアプリケーションを実行する実行部と、前記アプリケーションにより表示される画面毎に、当該画面の構造を示す構造情報を前記解析装置に提供する提供部とを備え、前記解析装置は、前記アプリケーションにおける画面遷移を示す遷移モデルを記憶する記憶部と、前記実行部により前記ユーザイベントが実行されるたびに、前記アプリケーションにより現に表示される現画面に関する構造情報を前記提供部から取得する構造情報取得部と、前記構造情報取得部により取得された構造情報に基づいて、構造情報が取得済みである既知の画面と前記現画面との類似性を判定し、当該既知の画面と類似していない現画面が追加されるように前記遷移モデルを更新する更新部と、前記遷移モデルのうち前記現画面に対応する画面において未実行のユーザイベントを前記実行部に実行させる実行制御部と、前記実行部により前記ユーザイベントが実行されるたびに、前記実行装置からログ情報を取得するログ取得部とを備えたことを特徴とする。   An analysis system according to an embodiment is an analysis system including an execution device and an analysis device, and the execution device executes an application whose screen changes in response to a user event that is a user operation, and the application For each screen displayed by the providing unit providing structural information indicating the structure of the screen to the analysis device, the analysis device stores a transition model indicating the screen transition in the application, Each time the user event is executed by the execution unit, a structure information acquisition unit that acquires structure information about the current screen that is currently displayed by the application from the providing unit, and structure information acquired by the structure information acquisition unit Based on the above, the similarity between the known screen whose structure information has been acquired and the current screen is determined, and An update unit that updates the transition model so that a current screen that is not similar to a known screen is added, and an unexecuted user event is executed on the execution unit on the screen corresponding to the current screen in the transition model And an execution control unit for executing log information acquisition from the execution device each time the user event is executed by the execution unit.

実施形態に係る解析システム、解析装置、解析方法及び解析プログラムは、GUI操作を伴うプログラムの動的解析においてコードカバレッジを効率的に高めることができるという効果を奏する。   The analysis system, the analysis device, the analysis method, and the analysis program according to the embodiment have an effect that the code coverage can be efficiently increased in the dynamic analysis of the program accompanied with the GUI operation.

図1は、第1の実施形態に係る解析システムの構成例を示す図である。FIG. 1 is a diagram illustrating a configuration example of an analysis system according to the first embodiment. 図2は、第1の実施形態に係る解析装置による解析処理の一例を示す図である。FIG. 2 is a diagram illustrating an example of analysis processing performed by the analysis apparatus according to the first embodiment. 図3は、アプリケーションにより表示される画面の一例を示す図である。FIG. 3 is a diagram illustrating an example of a screen displayed by the application. 図4は、第1の実施形態に係る構造情報を説明するための図である。FIG. 4 is a diagram for explaining the structure information according to the first embodiment. 図5は、第1の実施形態に係る遷移モデル記憶部の一例を示す図である。FIG. 5 is a diagram illustrating an example of the transition model storage unit according to the first embodiment. 図6は、第1の実施形態に係る画面状態情報の一例を示す図である。FIG. 6 is a diagram illustrating an example of screen state information according to the first embodiment. 図7は、第1の実施形態に係る解析装置による解析処理手順を示すフローチャートである。FIG. 7 is a flowchart illustrating an analysis processing procedure performed by the analysis apparatus according to the first embodiment. 図8Aは、第1の実施形態に係る解析処理の具体例を説明するための図である。FIG. 8A is a diagram for explaining a specific example of the analysis processing according to the first embodiment. 図8Bは、第1の実施形態に係る解析処理の具体例を説明するための図である。FIG. 8B is a diagram for explaining a specific example of the analysis processing according to the first embodiment. 図8Cは、第1の実施形態に係る解析処理の具体例を説明するための図である。FIG. 8C is a diagram for explaining a specific example of the analysis processing according to the first embodiment. 図9は、解析プログラムを実行するコンピュータを示す図である。FIG. 9 is a diagram illustrating a computer that executes an analysis program.

以下に、本願に係る解析システム、解析装置、解析方法及び解析プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る解析システム、解析装置、解析方法及び解析プログラムが限定されるものではない。   Hereinafter, embodiments of an analysis system, an analysis device, an analysis method, and an analysis program according to the present application will be described in detail with reference to the drawings. In addition, the analysis system, the analysis apparatus, the analysis method, and the analysis program according to the present application are not limited by this embodiment.

(第1の実施形態)
[解析システムの構成]
最初に、図1を用いて、第1の実施形態に係る解析システムについて説明する。図1は、第1の実施形態に係る解析システム1の構成例を示す図である。図1に例示した解析システム1には、実行装置10と、解析装置100とが含まれる。実行装置10と解析装置100とは、互いに通信可能に接続される。なお、実行装置10と解析装置100とは、図示しないネットワークを介して通信可能に接続されてもよい。
(First embodiment)
[Configuration of analysis system]
First, the analysis system according to the first embodiment will be described with reference to FIG. FIG. 1 is a diagram illustrating a configuration example of an analysis system 1 according to the first embodiment. The analysis system 1 illustrated in FIG. 1 includes an execution device 10 and an analysis device 100. The execution device 10 and the analysis device 100 are connected to be communicable with each other. Note that the execution device 10 and the analysis device 100 may be communicably connected via a network (not shown).

実行装置10は、解析装置100によって解析されるアプリケーションソフトウェア(以下、単に「アプリケーション」と表記する)の実行環境を提供するエミュレータである。かかる実行装置10は、例えば、PC(Personal Computer)や携帯電話機やPDA(Personal Digital Assistant)等の物理マシンによって実現されてもよいし、仮想マシンによって実現されてもよい。   The execution device 10 is an emulator that provides an execution environment for application software (hereinafter simply referred to as “application”) analyzed by the analysis device 100. The execution device 10 may be realized by a physical machine such as a PC (Personal Computer), a mobile phone, or a PDA (Personal Digital Assistant), or may be realized by a virtual machine.

なお、実行装置10は、解析装置100によって解析されるアプリケーションとして、図1に示す解析対象アプリケーション11を実行するものとする。解析対象アプリケーション11は、解析装置100によって解析されるアプリケーションであり、例えば、所定のサイト(サーバ装置)からダウンロード可能である。このような解析対象アプリケーション11は、解析装置100を利用する解析者が開発したものではなく、解析者にとって仕様が明らかでないものとする。   The execution device 10 executes the analysis target application 11 shown in FIG. 1 as an application analyzed by the analysis device 100. The analysis target application 11 is an application analyzed by the analysis apparatus 100, and can be downloaded from a predetermined site (server apparatus), for example. Such an analysis target application 11 is not developed by an analyst using the analysis apparatus 100, and the specification is not clear to the analyst.

以下では、解析対象アプリケーション11は、一例として、スマートフォンやタブレットPC等において、Android OS(Operating System)上で動作するアプリケーションであるものとする。このような解析対象アプリケーション11は、GUIを前提としたものが多く、ユーザ操作に応じて画面が遷移する。例えば、解析対象アプリケーション11は、指や専用器具(例えば、タッチペン)等によって、タッチパネル式の表示画面が押下されることで各種ユーザ操作を受け付ける。ユーザ操作の一例としては、表示画面を指で押下して短時間で離すタップ操作や、表示画面を2回押下するダブルタップ操作や、表示画面を押下した状態で指をスライドさせるドラッグ操作や、表示画面を2本の指で押下した状態で双方の指を近づけたり遠ざけたりするピンチ操作等が挙げられる。また、解析対象アプリケーション11は、表示画面が押下されるユーザ操作に限らず、スマートフォン等の実機に備えられているハードキーが押下されるユーザ操作も受け付ける。以下、解析対象アプリケーション11が受け付けることが可能なユーザ操作を「ユーザイベント」と表記する場合がある。   In the following, it is assumed that the analysis target application 11 is an application that operates on an Android OS (Operating System) in a smartphone, a tablet PC, or the like as an example. Many of the analysis target applications 11 are based on a GUI, and the screen changes according to a user operation. For example, the analysis target application 11 receives various user operations by pressing a touch-panel display screen with a finger or a dedicated instrument (for example, a touch pen). Examples of user operations include a tap operation that presses the display screen with a finger and releases it in a short time, a double tap operation that presses the display screen twice, a drag operation that slides the finger while the display screen is pressed, For example, a pinch operation in which both fingers are brought closer to or away from each other while the display screen is pressed with two fingers. Further, the analysis target application 11 accepts not only a user operation for pressing a display screen but also a user operation for pressing a hard key provided in a real machine such as a smartphone. Hereinafter, user operations that can be accepted by the analysis target application 11 may be referred to as “user events”.

解析装置100は、実行装置10に対して解析対象アプリケーション11を実行させることにより、解析対象アプリケーション11の動作を解析する。かかる解析装置100は、例えば、PC(Personal Computer)等の物理マシンによって実現されてもよいし、仮想マシンによって実現されてもよい。   The analysis apparatus 100 analyzes the operation of the analysis target application 11 by causing the execution apparatus 10 to execute the analysis target application 11. Such an analysis apparatus 100 may be realized by a physical machine such as a PC (Personal Computer), or may be realized by a virtual machine.

ここで、図2を用いて、解析装置100による解析処理について簡単に説明する。図2は、第1の実施形態に係る解析装置100による解析処理の一例を示す図である。第1の実施形態に係る解析装置100は、図2に例示するように、画面の遷移モデルを生成しながら、生成した遷移モデルを巡回するようにユーザイベントを実行装置10に対して模擬的に実行させる。このとき、解析装置100は、解析対象アプリケーション11の実行中に実際に表示され得る各画面をそれぞれ異なる画面として扱うのではなく、類似している画面群を同一の画面として扱う。   Here, analysis processing by the analysis apparatus 100 will be briefly described with reference to FIG. FIG. 2 is a diagram illustrating an example of analysis processing performed by the analysis apparatus 100 according to the first embodiment. As illustrated in FIG. 2, the analysis apparatus 100 according to the first embodiment simulates a user event to the execution apparatus 10 so as to circulate through the generated transition model while generating a screen transition model. Let it run. At this time, the analysis apparatus 100 does not treat each screen that can be actually displayed during the execution of the analysis target application 11 as a different screen, but treats similar screen groups as the same screen.

具体的には、解析装置100は、実行装置10にユーザイベントを模擬的に実行させた後に、解析対象アプリケーション11により表示される画面の構造を解析することにより画面状態を取得する。ここでいう「画面状態」とは、画面構造の特徴的な部品(コンポーネント)等によって表される抽象的な画面構造を示す。すなわち、画面構造の特徴的な部品が同一である画面群は、画面状態も同一となる。   Specifically, the analysis apparatus 100 acquires the screen state by analyzing the structure of the screen displayed by the analysis target application 11 after causing the execution apparatus 10 to execute the user event in a simulated manner. Here, the “screen state” indicates an abstract screen structure represented by characteristic parts of the screen structure. In other words, screen groups having the same characteristic parts of the screen structure have the same screen state.

そして、解析装置100は、図2に示すように、画面状態をノード(「接点」や「頂点」等とも呼ばれる)とし、かつ、ユーザイベントをエッジ(「枝」や「辺」等とも呼ばれる)としたグラフを遷移モデルとして生成する。このようにして、解析装置100は、画面状態をノードとするグラフを生成し、生成したグラフに含まれる各画面状態において未実行のユーザイベント(エッジ)を実行装置10に順次実行させる。   As shown in FIG. 2, the analysis apparatus 100 sets the screen state as a node (also referred to as “contact” or “vertex”) and the user event as an edge (also referred to as “branch” or “side”). Is generated as a transition model. In this way, the analysis device 100 generates a graph having the screen state as a node, and causes the execution device 10 to sequentially execute an unexecuted user event (edge) in each screen state included in the generated graph.

例えば、図2では、画面状態v11においてユーザイベント「ボタンAをタップ」が実行された場合には、画面状態v11から遷移しないことを示している。ここで、実際には、ユーザイベント「ボタンAをタップ」が実行されることで、異なる画面に遷移している可能性もある。しかし、第1の実施形態に係る解析装置100は、抽象的な画面構造を示す「画面状態」により画面の遷移を判定するので、画面状態v11においてユーザイベント「ボタンAをタップ」が実行された場合であっても、画面状態が同一である限り新たな画面状態をグラフに追加しない。   For example, FIG. 2 shows that when the user event “tap button A” is executed in the screen state v11, no transition is made from the screen state v11. Here, in practice, the user event “tap button A” may be executed to change to a different screen. However, since the analysis apparatus 100 according to the first embodiment determines the screen transition based on the “screen state” indicating the abstract screen structure, the user event “tap button A” is executed in the screen state v11. Even in such a case, a new screen state is not added to the graph as long as the screen state is the same.

ここで、図3を用いて、類似している画面群を同一の画面として扱う理由について説明する。図3は、アプリケーションにより表示される画面の一例を示す図である。図3は、電卓のアプリケーションにおいて表示される画面例を示す。具体的には、図3(a)は、数値や演算子等を入力するための画面例を示す。また、図3(b)は、図3(a)の状態において数値「1」が入力された状態の画面例を示す。また、図3(c)は、図3(a)の状態において数値「2」が入力された状態の画面例を示す。また、図3(d)は、図3(a)〜(c)と異なる演算子を入力するための画面例を示す。   Here, the reason for treating similar screen groups as the same screen will be described with reference to FIG. FIG. 3 is a diagram illustrating an example of a screen displayed by the application. FIG. 3 shows an example of a screen displayed in the calculator application. Specifically, FIG. 3A shows an example of a screen for inputting numerical values, operators, and the like. FIG. 3B shows an example of a screen in which the numerical value “1” is input in the state of FIG. FIG. 3C shows an example of a screen in a state where a numerical value “2” is input in the state of FIG. FIG. 3D shows an example of a screen for inputting an operator different from those shown in FIGS.

このような各種画面のうち、図3(a)〜(d)の全てを異なる画面として扱った上で動的解析を行う場合、図3(a)〜(c)のそれぞれにおいて、数値「0」〜「9」や小数点や各種演算子が入力される各種ユーザイベントを実行することとなる。しかし、図3(a)〜(c)のそれぞれにおいて、同様のユーザイベントを発生させることは冗長であり、効率的なアプリケーションの動的解析であるとは言えない。   Among these various screens, when dynamic analysis is performed after treating all of FIGS. 3A to 3D as different screens, the numerical value “0” in each of FIGS. 3A to 3C. ”To“ 9 ”, various user events to which a decimal point and various operators are input are executed. However, in each of FIGS. 3A to 3C, generating a similar user event is redundant, and cannot be said to be an efficient dynamic analysis of an application.

例えば、図3(b)において演算子「+」が入力された際の電卓アプリケーションの挙動と、図3(c)において演算子「+」が入力された際の電卓アプリケーションの挙動とは、同一である可能性が高い。また、図3(b)及び(c)では、数値「1」又は「2」が入力されている状態について示したが、これらの数値以外(例えば、「0.1」や「3」や「10」や「100」等)が入力されている各状態において、演算子「+」が入力された際の電卓アプリケーションの挙動についても同一である可能性が高い。仮に、入力されている数値が異なる複数の画面をそれぞれ異なる画面として扱った上で動的解析を行う場合、ユーザイベントを過剰に実行させることとなり、動的解析にかかるコストを増大させることとなる。   For example, the behavior of the calculator application when the operator “+” is input in FIG. 3B is the same as the behavior of the calculator application when the operator “+” is input in FIG. Is likely. FIGS. 3B and 3C show the state where the numerical value “1” or “2” is input, but other than these numerical values (for example, “0.1”, “3”, “ In each state where “10”, “100”, etc.) are input, the behavior of the calculator application when the operator “+” is input is also likely to be the same. If dynamic analysis is performed after handling multiple screens with different input numerical values as different screens, user events will be executed excessively, increasing the cost of dynamic analysis. .

そこで、第1の実施形態に係る解析装置100は、類似している画面群を同一の画面として扱う。例えば、解析装置100は、図3(a)〜(c)に例示されている各画面については同一画面として扱い、図3(d)の画面については図3(a)〜(c)の各画面と異なる画面として扱う。この場合、解析装置100は、図3(a)の状態で演算子「+」を入力するユーザイベントを実行させた後には、図3(b)や(c)の状態で演算子「+」を入力するユーザイベントを実行させない。なお、この例に限られず、解析装置100は、図3(b)及び(c)を同一画面として扱い、図3(a)については、図3(b)及び(c)と異なる画面として扱ってもよい。   Therefore, the analysis apparatus 100 according to the first embodiment treats similar screen groups as the same screen. For example, the analysis apparatus 100 treats the screens illustrated in FIGS. 3A to 3C as the same screen, and the screen of FIG. 3D to each of FIGS. 3A to 3C. Treat as a different screen. In this case, after executing the user event for inputting the operator “+” in the state of FIG. 3A, the analysis apparatus 100 performs the operator “+” in the state of FIGS. 3B and 3C. Do not execute user event to input. The analysis apparatus 100 treats FIGS. 3B and 3C as the same screen, and treats FIG. 3A as different screens from FIGS. 3B and 3C. May be.

このように、第1の実施形態に係る解析装置100は、抽象的な画面構造である画面状態をノードとするグラフ(遷移モデル)を生成しながら、各画面状態において未実行のユーザイベントを実行装置10に実行させる。すなわち、解析装置100は、類似する各画面を同一の画面状態として扱うことで、実質的に同一である複数の画面において同じようなユーザイベントが実行されることを防止できるので、効率的に解析対象アプリケーション11を実行することができる。さらに、解析装置100は、グラフのノードである各画面状態において未実行のユーザイベントを順次実行させるので、解析対象アプリケーション11を網羅的に実行することができる。このようなことから、第1の実施形態に係る解析装置100は、GUI操作を伴うアプリケーションの動的解析においてコードカバレッジを効率的に高めることができる。以下、このような解析処理を実現する実行装置10及び解析装置100について、詳細に説明する。   As described above, the analysis apparatus 100 according to the first embodiment executes an unexecuted user event in each screen state while generating a graph (transition model) having a screen state having an abstract screen structure as a node. The apparatus 10 is made to execute. In other words, the analysis device 100 can prevent similar user events from being executed on a plurality of substantially identical screens by treating similar screens as the same screen state, so that analysis can be performed efficiently. The target application 11 can be executed. Furthermore, since the analysis apparatus 100 sequentially executes unexecuted user events in each screen state that is a node of the graph, the analysis target application 11 can be comprehensively executed. For this reason, the analysis apparatus 100 according to the first embodiment can efficiently increase code coverage in the dynamic analysis of an application that involves a GUI operation. Hereinafter, the execution device 10 and the analysis device 100 that realize such analysis processing will be described in detail.

[実行装置の構成]
まず、図1を用いて、上述した実行装置10の構成について説明する。図1に例示するように、実行装置10は、解析対象アプリケーション11と、構造情報提供部12と、実行部13とを有する。解析対象アプリケーション11については既に説明したのでここでは説明を省略する。
[Execution device configuration]
First, the configuration of the execution device 10 described above will be described with reference to FIG. As illustrated in FIG. 1, the execution apparatus 10 includes an analysis target application 11, a structure information providing unit 12, and an execution unit 13. Since the analysis target application 11 has already been described, the description thereof is omitted here.

構造情報提供部12は、解析対象アプリケーション11により表示される画面毎に、かかる画面の構造を示す構造情報を解析装置100に提供する。なお、構造情報提供部12は、例えば「Window Manager」等によって実現される。ここで、図4を用いて、構造情報について説明する。図4は、第1の実施形態に係る構造情報を説明するための図である。   The structure information providing unit 12 provides the analysis apparatus 100 with structure information indicating the structure of the screen for each screen displayed by the analysis target application 11. The structure information providing unit 12 is realized by, for example, “Window Manager”. Here, the structure information will be described with reference to FIG. FIG. 4 is a diagram for explaining the structure information according to the first embodiment.

図4に示したGUI画面G10は、メールアドレスを入力するための画面である。かかるGUI画面G10は、最上位のレイアウトC11の中に、レイアウトC21及びC22が含まれる。また、レイアウトC21には、ユーザとのインタラクションが行われるボタンC31(OKボタン)やボタンC32(Cancelボタン)が含まれる。また、レイアウトC22には、「Enter e−mail:」といったテキストC33や、ユーザとのインタラクションが行われるテキストボックスC34が含まれる。   The GUI screen G10 shown in FIG. 4 is a screen for inputting a mail address. The GUI screen G10 includes layouts C21 and C22 in the top layout C11. Further, the layout C21 includes a button C31 (OK button) and a button C32 (Cancel button) for interacting with the user. The layout C22 includes a text C33 such as “Enter e-mail:” and a text box C34 in which an interaction with the user is performed.

このようなGUI画面G10を表すためのデータ構造として、一般的に、図4に右側に示すような木構造が用いられる。かかる木構造のうち、葉ノード(leaf node)には、実際にユーザとのインタラクションが行われるコンポーネント(ボタンC31、ボタンC32、テキストC33、テキストボックスC34等)が配置される。また、かかる木構造のうち、葉ノード以外の根ノード(root node)や内部ノード(internal node)には、レイアウト等に関するコンポーネント(レイアウトC11、C21、C22等)が配置される。   As a data structure for representing such a GUI screen G10, a tree structure as shown on the right side in FIG. 4 is generally used. Among such tree structures, components (button C31, button C32, text C33, text box C34, etc.) that actually interact with the user are arranged in a leaf node. Also, in such a tree structure, components (layouts C11, C21, C22, etc.) relating to the layout and the like are arranged in root nodes other than leaf nodes and internal nodes.

構造情報提供部12は、図4の右側に示されるような木構造により表される構造情報を解析装置100に提供することとなる。なお、このような木構造により表される構造情報は、Androidアプリケーションにおける「View Hierarchy」や、Web画面におけるHTML(HyperText Markup Language)等に該当する。   The structure information providing unit 12 provides structure information represented by a tree structure as shown on the right side of FIG. Note that the structural information represented by such a tree structure corresponds to “View Hierarchy” in the Android application, HTML (HyperText Markup Language) in the Web screen, and the like.

図1の説明に戻って、実行部13は、解析対象アプリケーション11を実行する。具体的には、実行部13は、後述する解析装置100のイベント実行制御部132による指示に従って、解析対象アプリケーション11に対してユーザイベントを模擬的に実行する。ここでいう「模擬的に実行」とは、例えばユーザイベントがタップ操作である場合に、実行装置10の表示画面に対して実際にタップ操作を行うのではなく、タップ操作が行われた際の処理を実行するよう解析対象アプリケーション11に指示することを示す。なお、実行部13は、例えば、Android OSにおける「adbd(adbデーモン)」等によって実現される。   Returning to the description of FIG. 1, the execution unit 13 executes the analysis target application 11. Specifically, the execution unit 13 executes a user event on the analysis target application 11 in a simulated manner in accordance with an instruction from an event execution control unit 132 of the analysis apparatus 100 described later. Here, “simulated execution” means that when the user event is a tap operation, for example, when the tap operation is not performed on the display screen of the execution apparatus 10 but actually performed. This indicates that the analysis target application 11 is instructed to execute processing. The execution unit 13 is realized by, for example, “addb (adb daemon)” in the Android OS.

[解析装置の構成]
次に、上述した解析装置100の構成について説明する。図1に示すように、解析装置100は、遷移モデル記憶部110と、遷移モデル生成部120と、端末制御部130とを有する。
[Configuration of analyzer]
Next, the configuration of the analysis apparatus 100 described above will be described. As illustrated in FIG. 1, the analysis apparatus 100 includes a transition model storage unit 110, a transition model generation unit 120, and a terminal control unit 130.

遷移モデル記憶部110は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等によって実現される。かかる遷移モデル記憶部110は、解析対象アプリケーション11における画面遷移を示す遷移モデルを記憶する。具体的には、第1の実施形態に係る遷移モデル記憶部110は、遷移モデルとして、図2に例示したようなグラフを記憶する。   The transition model storage unit 110 is realized by, for example, a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory, a hard disk, an optical disk, or the like. The transition model storage unit 110 stores a transition model indicating screen transition in the analysis target application 11. Specifically, the transition model storage unit 110 according to the first embodiment stores a graph as illustrated in FIG. 2 as a transition model.

ここで、図5に、第1の実施形態に係る遷移モデル記憶部110の一例を示す。図5に示した例では、遷移モデル記憶部110は、「ノード」、「エッジ」、「遷移先ノード」、「画面状態情報」、「ログ情報」といった項目を有する。なお、図5では、図2に例示したグラフに対応する各種情報が記憶されている例を示す。   Here, FIG. 5 illustrates an example of the transition model storage unit 110 according to the first embodiment. In the example illustrated in FIG. 5, the transition model storage unit 110 includes items such as “node”, “edge”, “transition destination node”, “screen state information”, and “log information”. 5 shows an example in which various information corresponding to the graph illustrated in FIG. 2 is stored.

「ノード」は、遷移モデルにおける画面状態を示す。「エッジ」は、遷移モデルにおけるユーザイベントを示す。「遷移先ノード」は、「ノード」によって示される画面状態において「エッジ」によって示されるユーザイベントが実行された場合における遷移先の画面状態を示す。「画面状態情報」は、画面状態を識別するための情報であって、「ノード」によって示される画面状態における画面構造の特徴的な部品(コンポーネント)によって表される抽象的な画面構造の情報を示す。「ログ情報」は、「ノード」によって示される画面状態において「エッジ」によって示されるユーザイベントが実行された際に、後述するログ取得部133によって取得されたログを示す。なお、画面状態情報や、ログ取得部133によって取得されるログについては後述する。   “Node” indicates a screen state in the transition model. “Edge” indicates a user event in the transition model. “Transition destination node” indicates the screen state of the transition destination when the user event indicated by “edge” is executed in the screen state indicated by “node”. “Screen state information” is information for identifying a screen state, and is information on an abstract screen structure represented by a characteristic component (component) of the screen structure in the screen state indicated by “node”. Show. “Log information” indicates a log acquired by the log acquisition unit 133 described later when a user event indicated by “edge” is executed in the screen state indicated by “node”. The screen status information and the log acquired by the log acquisition unit 133 will be described later.

例えば、図5は、画面状態v11では、ユーザイベント「ボタンAのタップ」、「ハードキーXの押下」、「テキスト入力」が実行可能であることを示している。また、図5は、画面状態v11においてユーザイベント「ボタンAのタップ」が実行された場合には、画面状態v11に遷移し、その際にログ取得部133によって取得されたログ情報が「ログL11」であることを示している。また、図5は、画面状態v11を識別するための画面状態情報が「I11」であることを示している。   For example, FIG. 5 shows that in the screen state v11, user events “tap on button A”, “pressing hard key X”, and “text input” can be executed. FIG. 5 shows that when the user event “tap button A” is executed in the screen state v11, the screen information v11 is changed to the screen state v11, and the log information acquired by the log acquisition unit 133 at that time is “log L11”. ". FIG. 5 shows that the screen state information for identifying the screen state v11 is “I11”.

図1の説明に戻って、遷移モデル生成部120は、構造情報提供部12によって提供される構造情報を解析することにより、遷移モデルを生成する。かかる遷移モデル生成部120は、構造情報取得部121と、遷移モデル更新部122とを有する。   Returning to the description of FIG. 1, the transition model generation unit 120 generates a transition model by analyzing the structure information provided by the structure information providing unit 12. The transition model generation unit 120 includes a structure information acquisition unit 121 and a transition model update unit 122.

構造情報取得部121は、実行装置10に対して構造情報を要求することにより、かかる要求に応答して構造情報提供部12により提供される構造情報を取得する。具体的には、構造情報取得部121は、実行装置10の実行部13によりユーザイベントが実行されるたびに、端末制御部130による指示に従って解析対象アプリケーション11により現に表示される画面(以下、「現画面」と表記する場合がある)に関する構造情報を構造情報提供部12から取得する。例えば、構造情報取得部121は、「Window Manager」等によって実現される構造情報提供部12から、「View Hierarchy」のダンプを構造情報として取得する。   The structure information acquisition unit 121 requests the structure information from the execution apparatus 10 and acquires the structure information provided by the structure information providing unit 12 in response to the request. Specifically, the structure information acquisition unit 121 displays a screen (hereinafter referred to as “hereinafter,“ The structure information is acquired from the structure information providing unit 12 in some cases. For example, the structure information acquisition unit 121 acquires a dump of “View Hierarchy” as structure information from the structure information providing unit 12 realized by “Window Manager” or the like.

遷移モデル更新部122は、構造情報取得部121によって取得された構造情報に基づいて遷移モデルを生成し、遷移モデル記憶部110に記憶されている遷移モデルを更新する。具体的には、遷移モデル更新部122は、構造情報取得部121によって取得された構造情報から画面状態情報を生成する。そして、遷移モデル更新部122は、生成した画面状態情報が、遷移モデル記憶部110に記憶されているか否かを判定する。これにより、遷移モデル更新部122は、構造情報が取得済みである既知の画面と現画面との類似性を判定することとなる。   The transition model update unit 122 generates a transition model based on the structure information acquired by the structure information acquisition unit 121 and updates the transition model stored in the transition model storage unit 110. Specifically, the transition model update unit 122 generates screen state information from the structure information acquired by the structure information acquisition unit 121. Then, the transition model update unit 122 determines whether the generated screen state information is stored in the transition model storage unit 110. As a result, the transition model update unit 122 determines the similarity between a known screen for which structure information has been acquired and the current screen.

そして、遷移モデル更新部122は、既知の画面と類似していない現画面が遷移モデルに追加されるように遷移モデル記憶部110を更新する。具体的には、遷移モデル更新部122は、現画面の画面状態情報を遷移モデル記憶部110の「ノード」や「遷移先ノード」に登録する。   Then, the transition model update unit 122 updates the transition model storage unit 110 so that a current screen that is not similar to a known screen is added to the transition model. Specifically, the transition model update unit 122 registers the screen state information of the current screen in the “node” and “transition destination node” of the transition model storage unit 110.

ここで、図6を用いて、遷移モデル更新部122によって生成される画面状態情報について説明する。図6は、第1の実施形態に係る画面状態情報の一例を示す図である。上記の通り、実行装置10の構造情報提供部12によって提供される各画面の構造情報は、木構造により表される。例えば、構造情報提供部12は、図6の左側に示すように、構造情報をダンプした木構造データT11を提供する。かかる木構造データT11のうち、各行の左に示した数値は、木構造における深さ(根ノードから内部ノードや葉ノードまでのエッジ数)を示す。また、木構造データT11のうち、ユーザイベントの対象となるノードには、数値の右側に「*」(アスタリスク)が付加されている。なお、図6では図示することを省略したが、構造情報提供部12によって提供される木構造データT11には、ノード毎に、かかるノード配置位置や、かかるノードが表示されるか否かといった属性情報も含まれる。   Here, the screen state information generated by the transition model update unit 122 will be described with reference to FIG. FIG. 6 is a diagram illustrating an example of screen state information according to the first embodiment. As described above, the structure information of each screen provided by the structure information providing unit 12 of the execution apparatus 10 is represented by a tree structure. For example, as shown on the left side of FIG. 6, the structure information providing unit 12 provides tree structure data T11 in which structure information is dumped. In the tree structure data T11, the numerical value shown on the left of each row indicates the depth in the tree structure (the number of edges from the root node to the internal nodes and leaf nodes). Further, in the tree structure data T11, “*” (asterisk) is added to the right side of the numerical value of the node that is the target of the user event. Although not shown in FIG. 6, the tree structure data T11 provided by the structure information providing unit 12 has attributes such as the node arrangement position and whether or not such a node is displayed for each node. Information is also included.

遷移モデル更新部122は、このような木構造データT11が構造情報取得部121により取得された場合に、かかる木構造データT11に含まれるノードの中から、木構造データT11に含まれる各ノードの属性情報や、木構造におけるノードの位置に基づいて、ユーザイベントの対象となるノードを決定する。   When the tree structure data T11 is acquired by the structure information acquisition unit 121, the transition model update unit 122 selects each node included in the tree structure data T11 from the nodes included in the tree structure data T11. Based on the attribute information and the position of the node in the tree structure, the node that is the target of the user event is determined.

具体的には、遷移モデル更新部122は、下記の条件(1)〜(4)を満たすノードをユーザイベントの対象ノードとして決定する。なお、遷移モデル更新部122は、各ノードの属性情報に基づいて、下記の条件(1)〜(3)を満たすか否かを判定できる。   Specifically, the transition model update unit 122 determines a node that satisfies the following conditions (1) to (4) as a target node of the user event. The transition model update unit 122 can determine whether the following conditions (1) to (3) are satisfied based on the attribute information of each node.

条件(1):画面外に配置されていないノード
条件(2):画面において非表示に指定されていないノード
条件(3):ユーザイベントに対応するノード
(すなわち、深さを示す数値の右側に「*」が付加されているノード)
条件(4):木構造において葉ノードとなっているノード
Condition (1): Node that is not arranged outside the screen Condition (2): Node that is not specified to be hidden on the screen Condition (3): Node that corresponds to the user event
(That is, a node with “*” added to the right of the depth value)
Condition (4): a node that is a leaf node in the tree structure

遷移モデル更新部122は、このようにして決定した対象ノードから根ノードまでの経路に存在しない他の全てのノード及びエッジを取り除くことにより、画面状態情報を生成する。   The transition model update unit 122 generates screen state information by removing all other nodes and edges that do not exist in the path from the target node thus determined to the root node.

図6に示した例を用いて説明すると、遷移モデル更新部122は、木構造データT11に含まれる各ノードのうち、2個の葉ノード「6:[*]android.widget.Button」をユーザイベントの対象ノードとして決定したものとする。かかる場合に、遷移モデル更新部122は、2個の葉ノード「6:[*]android.widget.Button」から、根ノード「0:com.android.internal.policy.impl.…」までの経路に存在しない他の全てのノード及びエッジを取り除くことにより、図6の右側に示した木構造データT12を生成する。そして、遷移モデル更新部122は、木構造データT12から、木構造に関する情報のみを抽出して文字列化したデータ(例えば、「0、1、2、3、4、5、6*、6*」)をハッシュ化することにより、画面状態情報を生成する。   To explain using the example shown in FIG. 6, the transition model updating unit 122 uses two leaf nodes “6: [*] android.widget.Button” among the nodes included in the tree structure data T11 as a user. Assume that the event has been determined as a target node. In such a case, the transition model update unit 122 routes from the two leaf nodes “6: [*] android.widget.Button” to the root node “0: com.android.internal.policy.impl.... The tree structure data T12 shown on the right side of FIG. 6 is generated by removing all other nodes and edges that do not exist in FIG. Then, the transition model update unit 122 extracts only information related to the tree structure from the tree structure data T12 and converts it into a character string (for example, “0, 1, 2, 3, 4, 5, 6 *, 6 * ]) Is hashed to generate screen state information.

このように、遷移モデル更新部122は、上記の条件(1)〜(4)を満たすノードをユーザイベントの対象ノードとして画面状態情報を生成することで、各画面における類似性の判定を高精度に行うことができる。すなわち、遷移モデル更新部122は、実質的に異なる画面を同一の画面として扱うことを防止できるので、ユーザイベントの実行漏れを防止することができる。また、遷移モデル更新部122は、ユーザイベントの対象ノードから根ノードまでの経路に存在しない他の全てのノード及びエッジを取り除くことにより、実質的には同一であるような画面を同一の画面状態として扱うことが可能になる。すなわち、遷移モデル更新部122は、実質的に同一である画面を遷移モデルに重複登録することを防止できるので、過剰なユーザイベントの実行を減らすことができる。   As described above, the transition model update unit 122 generates the screen state information with the node satisfying the above conditions (1) to (4) as the target node of the user event, so that the similarity in each screen can be determined with high accuracy. Can be done. That is, since the transition model update unit 122 can prevent substantially different screens from being handled as the same screen, it is possible to prevent omission of execution of user events. In addition, the transition model update unit 122 removes all other nodes and edges that do not exist in the route from the target node of the user event to the root node, so that substantially the same screen is displayed in the same screen state. Can be handled as That is, since the transition model update unit 122 can prevent the registration of substantially the same screen in the transition model, execution of excessive user events can be reduced.

なお、遷移モデル更新部122は、木構造に関する情報のみを抽出して文字列化したデータ(例えば、「0、1、2、3、4、5、6*、6*」)に、パッケージ名、アクティビティ名、テキストボックスの入力状態(例えば、全てのテキストボックスに情報が入力されているか否かの2値)等を連結した後にハッシュ化したデータを画面状態情報として生成してもよい。ここでいう「パッケージ名」とは、例えば、アプリケーションを識別するための名称を示す。また、「アクティビティ名」とは、例えば、アプリケーション開発者等が、画面操作を行うモジュールに付与する名称である。なお、異なる画面であっても同一のモジュールによって制御される場合があるので、同一のアクティビティ名が異なる画面に対応する場合もある。例えば、図3(a)〜(d)に示した全ての画面には、同一のアクティビティ名が対応する場合もある。この例に限られず、図3(a)〜(c)に示した画面には同一のアクティビティ名が対応し、図3(d)に示した画面には、図3(a)〜(c)の画面と異なるアクティビティ名が対応する場合もある。   The transition model update unit 122 extracts only the information about the tree structure and converts it into a character string (for example, “0, 1, 2, 3, 4, 5, 6 *, 6 *”), and the package name. Further, hashed data may be generated as the screen state information after concatenating the activity name, the input state of the text box (for example, binary indicating whether information is input to all the text boxes), or the like. Here, the “package name” indicates, for example, a name for identifying an application. The “activity name” is, for example, a name given to a module that performs screen operations by an application developer or the like. Since different screens may be controlled by the same module, the same activity name may correspond to different screens. For example, the same activity name may correspond to all the screens shown in FIGS. Without being limited to this example, the same activity names correspond to the screens shown in FIGS. 3A to 3C, and the screens shown in FIG. In some cases, different activity names may correspond to the screen.

また、例えば、画面状態情報に、テキストボックスの入力状態(全てのテキストボックスに情報が入力されているか否かの2値)が含まれる場合、図3(a)の画面状態は、図3(b)及び(c)の画面状態と異なることとなる。一方、画面状態情報に、テキストボックスの入力状態が含まれない場合、図3(a)〜(d)の画面状態は、全て異なることとなる。このような画面状態情報に、パッケージ名、アクティビティ名、テキストボックスの入力状態を含めるか否かは、解析装置100を利用する解析者によって設定可能である。   For example, when the screen state information includes the input state of the text box (the binary value indicating whether or not information is input to all the text boxes), the screen state of FIG. This is different from the screen states of b) and (c). On the other hand, when the text box input state is not included in the screen state information, the screen states in FIGS. 3A to 3D are all different. Whether or not to include the package name, activity name, and input state of the text box in such screen state information can be set by an analyst using the analysis apparatus 100.

図1の説明に戻って、端末制御部130は、実行装置10に対して解析対象アプリケーション11を実行させるとともに、実行装置10からログを取得する。かかる端末制御部130は、イベント特定部131と、イベント実行制御部132と、ログ取得部133とを有する。   Returning to the description of FIG. 1, the terminal control unit 130 causes the execution device 10 to execute the analysis target application 11 and acquires a log from the execution device 10. The terminal control unit 130 includes an event specifying unit 131, an event execution control unit 132, and a log acquisition unit 133.

イベント特定部131は、遷移モデル記憶部110に記憶されている遷移モデルのうち、現画面に対応する画面状態において未実行のユーザイベントを特定する。また、イベント特定部131は、現画面に対応する画面状態において未実行のユーザイベントが存在しない場合には、他の画面状態において未実行のユーザイベントを探索する処理を行う。かかるイベント特定部131による処理については、図7及び図8A〜図8Cを用いて後述する。   The event identification unit 131 identifies an unexecuted user event in the screen state corresponding to the current screen among the transition models stored in the transition model storage unit 110. In addition, when there is no unexecuted user event in the screen state corresponding to the current screen, the event specifying unit 131 searches for an unexecuted user event in another screen state. The processing by the event specifying unit 131 will be described later with reference to FIGS. 7 and 8A to 8C.

イベント実行制御部132は、イベント特定部131によって特定されたユーザイベントを実行装置10の実行部13に模擬的に実行させる。かかるイベント実行制御部132による処理については、図7及び図8A〜図8Cを用いて後述する。   The event execution control unit 132 causes the execution unit 13 of the execution device 10 to execute the user event specified by the event specifying unit 131 in a simulated manner. The processing by the event execution control unit 132 will be described later with reference to FIGS. 7 and 8A to 8C.

ログ取得部133は、イベント実行制御部132による制御に応じて実行部13によりユーザイベントが実行されるたびに、実行装置10からログ情報を取得する。例えば、ログ取得部133は、実行装置10から、実行環境に関する情報(アプリケーションの実行ログ、システムログ、通信ログなど)や、実行装置10の表示画面におけるスクリーンショット等をログとして取得する。かかるログ取得部133による処理については、図7及び図8A〜図8Cを用いて後述する。   The log acquisition unit 133 acquires log information from the execution device 10 every time a user event is executed by the execution unit 13 according to control by the event execution control unit 132. For example, the log acquisition unit 133 acquires from the execution device 10 information related to the execution environment (application execution log, system log, communication log, etc.), a screen shot on the display screen of the execution device 10, and the like as a log. The processing by the log acquisition unit 133 will be described later with reference to FIGS. 7 and 8A to 8C.

なお、上述してきた遷移モデル生成部120及び端末制御部130は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、図示しない記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、例えば、遷移モデル生成部120及び端末制御部130は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。   Note that the transition model generation unit 120 and the terminal control unit 130 described above, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or the like, causes a program stored in a storage device (not shown) to store the RAM in a work area. This is realized by being executed as Further, for example, the transition model generation unit 120 and the terminal control unit 130 are realized by an integrated circuit such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA).

[解析処理手順]
次に、解析装置100による解析処理の手順について説明する。なお、以下では、最初に、図7を用いて解析処理の流れを説明し、次に、図8A〜図8Cを用いて解析処理の具体例について説明する。図7は、第1の実施形態に係る解析装置100による解析処理手順を示すフローチャートである。
[Analysis processing procedure]
Next, an analysis process procedure performed by the analysis apparatus 100 will be described. In the following, the flow of analysis processing will be described first with reference to FIG. 7, and then a specific example of analysis processing will be described with reference to FIGS. 8A to 8C. FIG. 7 is a flowchart illustrating an analysis processing procedure performed by the analysis apparatus 100 according to the first embodiment.

図7に示すように、解析装置100の構造情報取得部121は、解析対象アプリケーション11により現に表示されている現画面の構造情報を構造情報提供部12から取得する(ステップS101)。   As shown in FIG. 7, the structure information acquisition unit 121 of the analysis apparatus 100 acquires the structure information of the current screen currently displayed by the analysis target application 11 from the structure information providing unit 12 (step S101).

続いて、遷移モデル更新部122は、構造情報取得部121によって取得された構造情報から画面状態情報を生成する(ステップS102)。具体的には、遷移モデル更新部122は、図6を用いて説明したように、ユーザイベントの対象となるノードから根ノードまでの経路に存在しない他の全てのノード及びエッジを取り除くなどして、画面状態情報を生成する。   Subsequently, the transition model update unit 122 generates screen state information from the structure information acquired by the structure information acquisition unit 121 (step S102). Specifically, as described with reference to FIG. 6, the transition model update unit 122 removes all other nodes and edges that do not exist in the route from the node that is the target of the user event to the root node. , Generate screen state information.

続いて、遷移モデル更新部122は、ステップS102において生成した画面状態情報が遷移モデル記憶部110に記憶されているか否かを判定することにより、現画面の画面状態が未知の画面状態であるか否かを判定する(ステップS103)。   Subsequently, the transition model update unit 122 determines whether the screen state information generated in step S102 is stored in the transition model storage unit 110, thereby determining whether the screen state of the current screen is an unknown screen state. It is determined whether or not (step S103).

そして、遷移モデル更新部122は、現画面の画面状態が未知の画面状態である場合には(ステップS103肯定)、遷移モデル記憶部110に記憶されている遷移モデルに、現画面の画面状態をノードとして追加する(ステップS104)。具体的には、遷移モデル更新部122は、遷移モデル記憶部110の「ノード」に、現画面の画面状態を識別するための情報を格納するとともに、遷移モデル記憶部110の「画面状態情報」に、ステップS102において生成した画面状態情報を格納する。さらに、遷移モデル更新部122は、遷移モデル記憶部110の「エッジ」に、画面状態情報から得られるユーザイベントを格納する。   Then, when the screen state of the current screen is an unknown screen state (Yes at Step S103), the transition model update unit 122 adds the screen state of the current screen to the transition model stored in the transition model storage unit 110. It adds as a node (step S104). Specifically, the transition model update unit 122 stores information for identifying the screen state of the current screen in the “node” of the transition model storage unit 110 and the “screen state information” of the transition model storage unit 110. The screen state information generated in step S102 is stored. Furthermore, the transition model update unit 122 stores the user event obtained from the screen state information in the “edge” of the transition model storage unit 110.

すなわち、遷移モデル記憶部110の「ノード」に新たな画面状態が格納される場合には、「エッジ」及び「画面状態情報」も格納されることとなる。これにより、後述するイベント特定部131は、「遷移先ノード」に情報が格納されていない「エッジ」が未実行のユーザイベントであると判定することができる。   That is, when a new screen state is stored in the “node” of the transition model storage unit 110, “edge” and “screen state information” are also stored. Thereby, the event specifying unit 131 described later can determine that an “edge” in which no information is stored in the “transition destination node” is an unexecuted user event.

続いて、遷移モデル更新部122は、現画面の画面状態が未知の画面状態でない場合や(ステップS103否定)、ステップS104における処理の後に、前回実行したユーザイベントが存在するか否かを判定する(ステップS105)。すなわち、遷移モデル更新部122は、実行部13によってユーザイベントが実行された後に、ステップS101〜S104における処理が行われたか否かを判定する。   Subsequently, the transition model update unit 122 determines whether or not there is a user event executed last time after the processing in step S104 when the screen state of the current screen is not an unknown screen state (No in step S103). (Step S105). That is, the transition model update unit 122 determines whether or not the processing in steps S101 to S104 has been performed after the execution unit 13 executes the user event.

そして、遷移モデル更新部122は、前回実行したユーザイベントが存在する場合には(ステップS105肯定)、遷移モデル記憶部110に記憶されている遷移モデルに、前回の画面状態から現画面の画面状態に対するエッジを追加する(ステップS106)。具体的には、遷移モデル更新部122は、遷移モデル記憶部110に記憶されている各レコードのうち、前回の画面状態を識別するための情報が「ノード」に格納されているレコードの「遷移先ノード」に現画面の画面状態を識別するための情報を格納する。   Then, when there is a user event executed last time (Yes at Step S105), the transition model update unit 122 changes the screen state of the current screen from the previous screen state to the transition model stored in the transition model storage unit 110. An edge for is added (step S106). Specifically, the transition model updating unit 122 selects “transition” of the record in which information for identifying the previous screen state is stored in “node” among the records stored in the transition model storage unit 110. Information for identifying the screen state of the current screen is stored in the “destination node”.

続いて、イベント特定部131は、現画面の画面状態において未実行のユーザイベントが存在するか否かを判定する(ステップS107)。具体的には、イベント特定部131は、上記の通り、現画面の画面状態に対応付けて遷移モデル記憶部110に記憶されている「エッジ」のうち、「遷移先ノード」に情報が格納されていない「エッジ」が存在する場合には、未実行のユーザイベントが存在すると判定する。   Subsequently, the event specifying unit 131 determines whether there is an unexecuted user event in the screen state of the current screen (step S107). Specifically, as described above, the event specifying unit 131 stores information in the “transition destination node” among the “edges” stored in the transition model storage unit 110 in association with the screen state of the current screen. If there is an “edge” that is not present, it is determined that an unexecuted user event exists.

そして、イベント特定部131は、未実行のユーザイベントが存在する場合には(ステップS107肯定)、かかる未実行のユーザイベントを実行装置10に実行させるユーザイベントとして特定する。ここで、イベント特定部131は、未実行のユーザイベントが複数存在する場合には、任意のユーザイベントを実行装置10に実行させるユーザイベントとして特定する。   Then, when there is an unexecuted user event (Yes at Step S107), the event identifying unit 131 identifies the unexecuted user event as a user event that causes the execution apparatus 10 to execute. Here, when there are a plurality of unexecuted user events, the event specifying unit 131 specifies an arbitrary user event as a user event that causes the execution apparatus 10 to execute.

続いて、イベント実行制御部132は、イベント特定部131によって特定されたユーザイベントを実行装置10の実行部13に実行させる(ステップS108)。また、ログ取得部133は、実行部13によってユーザイベントが実行された後に、実行装置10からログを取得して遷移モデル記憶部110に格納する(ステップS108)。このとき、ログ取得部133は、遷移モデル記憶部110に記憶されている各レコードのうち、実行部13によってユーザイベントが実行される前の画面状態が「ノード」に格納されており、かつ、実行部13によって実行されたユーザイベントが「エッジ」に格納されているレコードの「ログ情報」に、実行装置10から取得したログを格納する。   Subsequently, the event execution control unit 132 causes the execution unit 13 of the execution device 10 to execute the user event specified by the event specifying unit 131 (step S108). In addition, after the user event is executed by the execution unit 13, the log acquisition unit 133 acquires a log from the execution device 10 and stores it in the transition model storage unit 110 (step S108). At this time, the log acquisition unit 133 stores the screen state before the user event is executed by the execution unit 13 among the records stored in the transition model storage unit 110 in the “node”, and The log acquired from the execution apparatus 10 is stored in “log information” of the record in which the user event executed by the execution unit 13 is stored in “edge”.

そして、解析装置100は、現画面の画面状態において未実行のユーザイベントが存在する限り(ステップS107肯定)、ステップS101〜S108における処理手順を繰り返し行う。   Then, as long as an unexecuted user event exists in the screen state of the current screen (Yes at Step S107), the analysis apparatus 100 repeatedly performs the processing procedure at Steps S101 to S108.

一方、イベント特定部131は、現画面の画面状態において未実行のユーザイベントが存在しない場合には(ステップS107否定)、所定の変数「i」に「1」を設定する(ステップS109)。   On the other hand, when there is no unexecuted user event in the screen state of the current screen (No at Step S107), the event specifying unit 131 sets “1” to the predetermined variable “i” (Step S109).

続いて、イベント特定部131は、遷移モデル記憶部110に記憶されている遷移モデルを参照することにより、現画面において実行可能なユーザイベント毎に、かかるユーザイベントが実行されることで遷移可能となる画面状態であり、かつ、現画面の画面状態から遷移可能な深さ「i」(ここの例では、i=1)までの画面状態において未実行のユーザイベントの総数(スコア)を算出する(ステップS110)。言い換えれば、イベント特定部131は、現画面において実行可能なユーザイベント毎に、現画面の画面状態からの画面遷移数が「i」までの画面状態において未実行のユーザイベントの総数(スコア)を算出する。   Subsequently, the event specifying unit 131 refers to the transition model stored in the transition model storage unit 110, so that the transition can be performed by executing the user event for each user event that can be executed on the current screen. And the total number (score) of unexecuted user events in the screen state up to a depth “i” (i = 1 in this example) that can be transitioned from the screen state of the current screen. (Step S110). In other words, for each user event that can be executed on the current screen, the event specifying unit 131 calculates the total number (score) of user events that have not been executed in the screen state where the number of screen transitions from the screen state of the current screen is “i”. calculate.

続いて、イベント特定部131は、ステップS110において算出したスコアが「0」でないユーザイベントが存在するか否かを判定する(ステップS111)。   Subsequently, the event identification unit 131 determines whether there is a user event whose score calculated in step S110 is not “0” (step S111).

そして、イベント特定部131は、スコアが「0」でないユーザイベントが存在する場合には(ステップS111肯定)、スコアが最大であるユーザイベントを実行装置10に実行させるユーザイベントとして特定する。   Then, when there is a user event whose score is not “0” (Yes at Step S111), the event specifying unit 131 specifies the user event having the maximum score as a user event that causes the execution apparatus 10 to execute.

続いて、イベント実行制御部132は、実行装置10の実行部13に対して、イベント特定部131によって特定されたユーザイベントを実行させる(ステップS112)。   Subsequently, the event execution control unit 132 causes the execution unit 13 of the execution device 10 to execute the user event specified by the event specifying unit 131 (step S112).

一方、イベント特定部131は、スコアが「0」でないユーザイベントが存在しない場合には(ステップS111否定)、現画面の画面状態から遷移可能な画面状態までのホップ数(画面の遷移数)の最大値「Dmax」を求め、求めた「Dmax」が「i」よりも大きいか否かを判定する(ステップS113)。   On the other hand, when there is no user event whose score is not “0” (No at Step S111), the event specifying unit 131 determines the number of hops (the number of screen transitions) from the current screen state to the transitionable screen state. The maximum value “Dmax” is obtained, and it is determined whether or not the obtained “Dmax” is larger than “i” (step S113).

そして、イベント特定部131は、「Dmax」が「i」よりも大きい場合には(ステップS113肯定)、「i」をインクリメントし(ステップS114)、ステップS110の処理に戻る。   If “Dmax” is larger than “i” (Yes at Step S113), the event specifying unit 131 increments “i” (Step S114), and returns to the process of Step S110.

一方、イベント特定部131は、「Dmax」が「i」よりも大きくない場合には(ステップS113否定)、現画面の画面状態と、解析対象アプリケーション11の実行開始時における画面状態とが同一であるか否かを判定する(ステップS115)。   On the other hand, when “Dmax” is not larger than “i” (No at Step S113), the event specifying unit 131 has the same screen state as the current screen and the screen state at the start of execution of the analysis target application 11. It is determined whether or not there is (step S115).

そして、イベント特定部131は、現画面の画面状態と開始時の画面状態とが同一である場合には(ステップS115肯定)、解析処理を終了する。一方、現画面の画面状態と開始時の画面状態とが同一でない場合には(ステップS115否定)、イベント実行制御部132は、現画面から1個前の画面に戻るユーザイベントを実行部13に実行させる(ステップS116)。ここでいう「1個前の画面に戻るユーザイベント」とは、解析対象アプリケーション11によって提供されるユーザイベントではなく、例えば、OS等によって提供されるユーザイベントや、解析対象アプリケーション11を動作させるアプリケーション(ブラウザ等)によって提供されるユーザイベントに該当する。   Then, when the screen state of the current screen and the screen state at the start are the same (Yes at Step S115), the event specifying unit 131 ends the analysis process. On the other hand, if the screen state of the current screen and the screen state at the start are not the same (No in step S115), the event execution control unit 132 sends a user event for returning to the previous screen from the current screen to the execution unit 13. This is executed (step S116). Here, the “user event returning to the previous screen” is not a user event provided by the analysis target application 11 but, for example, a user event provided by the OS or the like, or an application for operating the analysis target application 11 Corresponds to a user event provided by (browser etc.).

なお、ログ取得部133は、1個前の画面に戻るユーザイベントが実行された後にも、実行装置10からログを取得して遷移モデル記憶部110に格納してもよい。この場合、ログ取得部133は、遷移モデル記憶部110のエッジに「BACK」といったユーザイベントを格納するとともに、遷移モデル記憶部110のログ情報に実行装置10から取得したログを格納する。   Note that the log acquisition unit 133 may acquire the log from the execution device 10 and store it in the transition model storage unit 110 even after the user event for returning to the previous screen is executed. In this case, the log acquisition unit 133 stores a user event such as “BACK” at the edge of the transition model storage unit 110 and stores the log acquired from the execution device 10 in the log information of the transition model storage unit 110.

また、上記図7の説明では、現画面の画面状態と開始時の画面状態とが同一でない場合に、現画面から1個前の画面に戻るユーザイベントを実行部13に実行させた。しかし、解析装置100は、現画面の画面状態と開始時の画面状態とが同一でない場合であっても、1個前の画面に戻るユーザイベントを実行させることなく、処理を終了してもよい。   In the description of FIG. 7 described above, the execution unit 13 is caused to execute a user event for returning from the current screen to the previous screen when the screen state of the current screen and the screen state at the start are not the same. However, even if the screen state of the current screen and the screen state at the start are not the same, the analysis apparatus 100 may end the process without executing the user event for returning to the previous screen. .

[具体例]
次に、図8A〜図8Cを用いて、解析装置100による解析処理の具体例について説明する。図8A〜図8Cは、第1の実施形態に係る解析処理の具体例を説明するための図である。以下では、図7に示したステップ番号と対応付けながら解析処理の具体例について説明する。また、図8A〜図8Cにおいて、円形は、画面状態を示すノードであり、点線矢印は、未実行のユーザイベントを示すエッジであり、実線矢印は、実行済みのユーザイベントを示すエッジである。
[Concrete example]
Next, a specific example of analysis processing by the analysis apparatus 100 will be described with reference to FIGS. 8A to 8C. 8A to 8C are diagrams for explaining a specific example of the analysis processing according to the first embodiment. Hereinafter, a specific example of the analysis process will be described in association with the step number shown in FIG. 8A to 8C, a circle is a node indicating a screen state, a dotted arrow is an edge indicating an unexecuted user event, and a solid arrow is an edge indicating an executed user event.

なお、以下の説明において、初期状態は、実行装置10において解析対象アプリケーション11が起動されて、解析対象アプリケーション11により初期画面が表示されている状態であるものとする。また、解析装置100による解析処理の開始時には、遷移モデル記憶部110には各種情報が記憶されていないものとする。   In the following description, the initial state is a state in which the analysis target application 11 is activated in the execution apparatus 10 and the initial screen is displayed by the analysis target application 11. In addition, it is assumed that various information is not stored in the transition model storage unit 110 at the start of analysis processing by the analysis apparatus 100.

まず、構造情報取得部121は、構造情報提供部12から現画面(初期画面)の構造情報を取得する(ステップS101)。そして、遷移モデル更新部122は、構造情報取得部121によって取得された構造情報に基づいて、現画面の画面状態情報を生成する(ステップS102)。   First, the structure information acquisition unit 121 acquires the structure information of the current screen (initial screen) from the structure information providing unit 12 (step S101). And the transition model update part 122 produces | generates the screen state information of the present screen based on the structure information acquired by the structure information acquisition part 121 (step S102).

ここでは、遷移モデル記憶部110には各種情報が記憶されていないので、遷移モデル更新部122は、生成した画面状態情報が遷移モデル記憶部110に記憶されていないと判定する。すなわち、遷移モデル更新部122は、現画面の画面状態(画面状態v0とする)が未知の画面状態であると判定し(ステップS103肯定)、遷移モデル記憶部110の「ノード」に、現画面の画面状態v0を識別するための情報(「v0」とする)を格納するとともに、遷移モデル記憶部110の「画面状態情報」に、現画面の画面状態情報を格納する(ステップS104)。また、遷移モデル更新部122は、現画面の画面状態情報に基づいて、現画面の画面状態v0において実行可能な全てのユーザイベントを遷移モデル記憶部110の「エッジ」に格納する(ステップS104)。   Here, since various information is not stored in the transition model storage unit 110, the transition model update unit 122 determines that the generated screen state information is not stored in the transition model storage unit 110. That is, the transition model update unit 122 determines that the screen state of the current screen (referred to as screen state v0) is an unknown screen state (Yes in step S103), and stores the current screen in the “node” of the transition model storage unit 110. Information for identifying the current screen state v0 (referred to as “v0”) is stored, and the screen state information of the current screen is stored in “screen state information” of the transition model storage unit 110 (step S104). Also, the transition model update unit 122 stores all user events that can be executed in the screen state v0 of the current screen in the “edge” of the transition model storage unit 110 based on the screen state information of the current screen (step S104). .

これにより、遷移モデル記憶部110に記憶されている遷移モデルをグラフで表すと、図8A(a)に示す状態となる。図8A(a)は、画面状態v0において未実行のユーザイベントe11及びe12が存在していることを示している。すなわち、遷移モデル記憶部110には、ノード「v0」と、エッジ「e11」と、画面状態v0の画面状態情報とが対応付けて記憶されているとともに、ノード「v0」と、エッジ「e12」と、画面状態v0の画面状態情報とが対応付けて記憶されていることとなる。   Accordingly, when the transition model stored in the transition model storage unit 110 is represented by a graph, the state illustrated in FIG. 8A (a) is obtained. FIG. 8A (a) shows that there are unexecuted user events e11 and e12 in the screen state v0. That is, the transition model storage unit 110 stores the node “v0”, the edge “e11”, and the screen state information of the screen state v0 in association with each other, and stores the node “v0” and the edge “e12”. And the screen state information of the screen state v0 are stored in association with each other.

続いて、イベント特定部131は、図8A(a)の遷移モデルを参照することにより、未実行のユーザイベントe11及びe12のいずれか一方を実行装置10に実行させるユーザイベントとして特定する。ここでは、イベント特定部131は、ユーザイベントe11を特定したものとする。したがって、イベント実行制御部132は、ユーザイベントe11を実行部13に実行させる(ステップS108)。また、ログ取得部133は、実行部13によりユーザイベントe11が実行された後に、実行装置10からログを取得し、取得したログを、ノード「v0」及びエッジ「e11」に対応する遷移モデル記憶部110のログ情報に格納する(ステップS108)。   Subsequently, the event specifying unit 131 specifies one of the unexecuted user events e11 and e12 as a user event to be executed by the execution device 10 by referring to the transition model in FIG. 8A (a). Here, it is assumed that the event specifying unit 131 specifies the user event e11. Therefore, the event execution control unit 132 causes the execution unit 13 to execute the user event e11 (step S108). In addition, the log acquisition unit 133 acquires a log from the execution device 10 after the execution unit 13 executes the user event e11, and stores the acquired log in the transition model storage corresponding to the node “v0” and the edge “e11”. The log information is stored in the log information of the unit 110 (step S108).

その後に、端末制御部130は、構造情報取得部121に対して、構造情報を取得するように依頼する。これにより、構造情報取得部121は、構造情報提供部12から現画面の構造情報を取得する(ステップS101)。そして、遷移モデル更新部122は、取得された構造情報に基づいて、現画面の画面状態情報を生成する(ステップS102)。   Thereafter, the terminal control unit 130 requests the structure information acquisition unit 121 to acquire the structure information. Thereby, the structure information acquisition unit 121 acquires the structure information of the current screen from the structure information providing unit 12 (step S101). And the transition model update part 122 produces | generates the screen state information of a present screen based on the acquired structure information (step S102).

ここでは、現画面の画面状態は、ユーザイベントe11を実行する前の画面状態v0と異なるものとする。すなわち、遷移モデル更新部122は、現画面の画面状態(画面状態v1とする)が未知の画面状態であると判定し(ステップS103肯定)、遷移モデル記憶部110の「ノード」に「v1」を格納し、「画面状態情報」に現画面の画面状態情報を格納し、「エッジ」に画面状態v1において実行可能なユーザイベントe13、e14及びe15を格納する(ステップS104)。   Here, it is assumed that the screen state of the current screen is different from the screen state v0 before the user event e11 is executed. That is, the transition model update unit 122 determines that the screen state of the current screen (screen state v1) is an unknown screen state (Yes in step S103), and sets “v1” in the “node” of the transition model storage unit 110. , The screen state information of the current screen is stored in “screen state information”, and user events e13, e14, and e15 that can be executed in the screen state v1 are stored in “edge” (step S104).

また、遷移モデル更新部122は、前回実行したユーザイベントe11が存在するので(ステップS105肯定)、前回の画面状態v0から現画面の画面状態v1に対するエッジ「e11」を追加する(ステップS106)。具体的には、遷移モデル更新部122は、ノード「v0」及びエッジ「e11」に対応する遷移モデル記憶部110の「遷移先ノード」に「v1」を格納する。   Moreover, since the user event e11 executed last time exists (Yes at Step S105), the transition model update unit 122 adds an edge “e11” from the previous screen state v0 to the screen state v1 of the current screen (Step S106). Specifically, the transition model update unit 122 stores “v1” in “transition destination node” of the transition model storage unit 110 corresponding to the node “v0” and the edge “e11”.

これにより、遷移モデル記憶部110に記憶されている遷移モデルをグラフで表すと、図8A(b)の状態となる。図8A(b)は、画面状態v0においてユーザイベントe11が実行済みであることを示している。また、図8A(b)は、ユーザイベントe11が実行されることで、画面状態v0から画面状態v1に遷移することを示している。また、図8A(b)は、画面状態v1において未実行のユーザイベントe13、e14及びe15が存在していることを示している。   Thus, when the transition model stored in the transition model storage unit 110 is represented by a graph, the state shown in FIG. 8A (b) is obtained. FIG. 8A (b) shows that the user event e11 has been executed in the screen state v0. Further, FIG. 8A (b) shows that the screen state v0 is changed to the screen state v1 when the user event e11 is executed. FIG. 8A (b) shows that there are unexecuted user events e13, e14, and e15 in the screen state v1.

続いて、イベント特定部131は、図8A(b)の遷移モデルを参照することにより、実行装置10に実行させるユーザイベントを特定する。ここでは、イベント特定部131は、未実行のユーザイベントe13、e14及びe15のうち、ユーザイベントe13を特定したものとする。したがって、イベント実行制御部132は、ユーザイベントe13を実行部13に実行させる(ステップS108)。なお、以下では、ログ取得部133によるログ取得処理については説明を省略するが、ログ取得部133は、実行部13によりユーザイベントが実行されるたびに、実行装置10からログを取得して遷移モデル記憶部110のログ情報に格納する(ステップS108)。   Subsequently, the event specifying unit 131 specifies a user event to be executed by the execution apparatus 10 by referring to the transition model in FIG. 8A (b). Here, it is assumed that the event specifying unit 131 specifies the user event e13 among the unexecuted user events e13, e14, and e15. Therefore, the event execution control unit 132 causes the execution unit 13 to execute the user event e13 (step S108). In the following, the description of the log acquisition process by the log acquisition unit 133 is omitted, but the log acquisition unit 133 acquires a log from the execution device 10 and makes a transition every time a user event is executed by the execution unit 13. The log information is stored in the model storage unit 110 (step S108).

その後に、構造情報取得部121は、構造情報提供部12から現画面の構造情報を取得し(ステップS101)、遷移モデル更新部122は、取得された構造情報に基づいて、現画面の画面状態情報を生成する(ステップS102)。   Thereafter, the structure information acquisition unit 121 acquires the structure information of the current screen from the structure information providing unit 12 (step S101), and the transition model update unit 122 determines the screen state of the current screen based on the acquired structure information. Information is generated (step S102).

ここでは、現画面の画面状態は、ユーザイベントe13を実行する前の画面状態v1と同一であるものとする。すなわち、遷移モデル更新部122は、現画面の画面状態v1が未知の画面状態でないと判定するので(ステップS103否定)、遷移モデル記憶部110の「ノード」に「v1」を追加しない。   Here, it is assumed that the screen state of the current screen is the same as the screen state v1 before the user event e13 is executed. That is, since the transition model update unit 122 determines that the screen state v1 of the current screen is not an unknown screen state (No at Step S103), “v1” is not added to the “node” of the transition model storage unit 110.

ただし、遷移モデル更新部122は、前回実行したユーザイベントe13が存在するので(ステップS105肯定)、前回の画面状態v1から現画面の画面状態v1に対するエッジ「e13」を追加する(ステップS106)。具体的には、遷移モデル更新部122は、ノード「v1」及びエッジ「e13」に対応する遷移モデル記憶部110の「遷移先ノード」に「v1」を格納する。   However, since there is the user event e13 executed last time (Yes at Step S105), the transition model update unit 122 adds the edge “e13” from the previous screen state v1 to the screen state v1 of the current screen (Step S106). Specifically, the transition model update unit 122 stores “v1” in the “transition destination node” of the transition model storage unit 110 corresponding to the node “v1” and the edge “e13”.

続いて、イベント特定部131は、現画面の画面状態v1において未実行のユーザイベントe14及びe15のうち、ユーザイベントe14を実行装置10に実行させるユーザイベントとして特定するものとする。したがって、イベント実行制御部132は、ユーザイベントe14を実行部13に実行させる(ステップS108)。   Subsequently, the event specifying unit 131 specifies the user event e14 that is to be executed by the execution device 10 among the unexecuted user events e14 and e15 in the screen state v1 of the current screen. Therefore, the event execution control unit 132 causes the execution unit 13 to execute the user event e14 (step S108).

その後に、構造情報取得部121は、構造情報提供部12から現画面の構造情報を取得し(ステップS101)、遷移モデル更新部122は、取得された構造情報に基づいて、現画面の画面状態情報を生成する(ステップS102)。   Thereafter, the structure information acquisition unit 121 acquires the structure information of the current screen from the structure information providing unit 12 (step S101), and the transition model update unit 122 determines the screen state of the current screen based on the acquired structure information. Information is generated (step S102).

ここでは、現画面の画面状態は、ユーザイベントe14を実行する前の画面状態v1と異なるものとする。すなわち、遷移モデル更新部122は、現画面の画面状態(画面状態v2とする)が未知の画面状態であると判定し(ステップS103肯定)、遷移モデル記憶部110の「ノード」に「v2」を格納し、「画面状態情報」に現画面の画面状態情報を格納し、さらに、「エッジ」に、画面状態v2において実行可能なユーザイベントe16、e17及びe18を格納する(ステップS104)。   Here, the screen state of the current screen is different from the screen state v1 before the user event e14 is executed. That is, the transition model update unit 122 determines that the screen state of the current screen (referred to as screen state v2) is an unknown screen state (Yes in step S103), and sets “v2” in the “node” of the transition model storage unit 110. Is stored in “screen state information”, and user events e16, e17, and e18 that can be executed in the screen state v2 are stored in “edge” (step S104).

また、遷移モデル更新部122は、前回実行したユーザイベントe14が存在するので(ステップS105肯定)、ノード「v1」及びエッジ「e14」に対応する遷移モデル記憶部110の「遷移先ノード」に「v2」を格納する(ステップS106)。これにより、遷移モデル記憶部110に記憶されている遷移モデルをグラフで表すと、図8A(c)の状態となる。   In addition, since there is the user event e14 executed last time (Yes at Step S105), the transition model update unit 122 sets “transition destination node” in the transition model storage unit 110 corresponding to the node “v1” and the edge “e14” to “ v2 "is stored (step S106). Thus, when the transition model stored in the transition model storage unit 110 is represented by a graph, the state shown in FIG. 8A (c) is obtained.

上述してきた処理を繰り返し行うことにより、イベント実行制御部132は、図8B(d)に示すように、画面状態v2においてユーザイベントe16を実行させたものとする。これにより、画面状態v2から画面状態v1に遷移する。さらに、イベント実行制御部132は、画面状態v1において未実行のユーザイベントe15を実行させたものとする。これにより、画面状態v1から画面状態v3に遷移したものとする。その後に、イベント実行制御部132は、画面状態v3において未実行のユーザイベントe19を実行させたものとする。これにより、画面状態v3から画面状態v1に遷移したものとする。   By repeatedly performing the above-described processing, the event execution control unit 132 executes the user event e16 in the screen state v2, as shown in FIG. 8B (d). As a result, the screen state v2 changes to the screen state v1. Further, it is assumed that the event execution control unit 132 has executed an unexecuted user event e15 in the screen state v1. As a result, it is assumed that the screen state v1 transits to the screen state v3. Thereafter, it is assumed that the event execution control unit 132 has executed an unexecuted user event e19 in the screen state v3. As a result, it is assumed that the screen state v3 has transitioned to the screen state v1.

このような順に各ユーザイベントが実行された場合、現画面の画面状態v1において未実行のユーザイベントは存在しないこととなる(ステップS107否定)。したがって、イベント特定部131は、変数「i」に「1」を設定し(ステップS109)、現画面の画面状態v1において実行可能なユーザイベントe14及びe15のそれぞれについて、かかるユーザイベントが実行されることで遷移可能な画面状態であり、かつ、現画面の画面状態v1からの画面遷移数が「1」までの画面状態において未実行のユーザイベントの総数(スコア)を算出する(ステップS110)。   When the user events are executed in this order, there is no unexecuted user event in the screen state v1 of the current screen (No at Step S107). Therefore, the event specifying unit 131 sets “1” to the variable “i” (step S109), and the user event is executed for each of the user events e14 and e15 that can be executed in the screen state v1 of the current screen. The total number (score) of unexecuted user events is calculated in the screen state in which the screen state is transitionable and the number of screen transitions from the current screen state v1 to “1” (step S110).

ここでは、図8B(d)に示すように、画面状態v2ではユーザイベントe17及びe18が未実行であり、画面状態v3ではユーザイベントe20、e21及びe22が未実行である。したがって、イベント特定部131は、ユーザイベントe14のスコアとして「2」(画面状態v2における未実行のユーザイベントの総数)を算出し、ユーザイベントe15のスコアとして「3」(画面状態v3における未実行のユーザイベントの総数)を算出することとなる。   Here, as shown in FIG. 8B (d), the user events e17 and e18 are not executed in the screen state v2, and the user events e20, e21, and e22 are not executed in the screen state v3. Therefore, the event specifying unit 131 calculates “2” (total number of unexecuted user events in the screen state v2) as the score of the user event e14, and “3” (unexecuted in the screen state v3) as the score of the user event e15. Total number of user events).

なお、ここの例において、イベント特定部131は、現画面の画面状態へのユーザイベント(図8B(e)の例では、ユーザイベントe13)については、スコアを算出しない。これは、各ユーザイベントの遷移先の画面状態からの探索において現画面の画面状態を経由することにより、各ユーザイベントのスコアが類似してしまうことを防止するためである。   In this example, the event specifying unit 131 does not calculate a score for the user event (the user event e13 in the example of FIG. 8B (e)) for the screen state of the current screen. This is to prevent the scores of the user events from being similar by going through the screen state of the current screen in the search from the screen state of the transition destination of each user event.

続いて、イベント特定部131は、スコアが「0」でないユーザイベントが存在するので(ステップS111肯定)、ユーザイベントe14及びe15のうち、スコアが最大であるユーザイベントe15を特定する。そして、イベント実行制御部132は、イベント特定部131によって特定されたユーザイベントe15を実行部13に実行させる(ステップS112)。   Subsequently, since there is a user event whose score is not “0” (Yes at Step S111), the event specifying unit 131 specifies the user event e15 having the maximum score among the user events e14 and e15. Then, the event execution control unit 132 causes the execution unit 13 to execute the user event e15 specified by the event specifying unit 131 (step S112).

これにより、画面状態v1から画面状態v3に遷移することとなる。そして、現画面の画面状態v3において未実行のユーザイベントe20〜e22が存在するので(ステップS107肯定)、イベント特定部131がいずれかのユーザイベントを特定し、イベント実行制御部132が、イベント特定部131によって特定されたユーザイベントを実行部13に実行させることとなる(ステップS112)。ここでは、イベント実行制御部132が、ユーザイベントe20を実行させたものとする。   As a result, the screen state v1 transits to the screen state v3. Since there are unexecuted user events e20 to e22 in the screen state v3 of the current screen (Yes in step S107), the event specifying unit 131 specifies any user event, and the event execution control unit 132 specifies the event The execution unit 13 is caused to execute the user event specified by the unit 131 (step S112). Here, it is assumed that the event execution control unit 132 has executed the user event e20.

これにより、図8B(e)に示すように、画面状態v3から画面状態v4に遷移するものとする。ここで、画面状態v4においては、未実行のユーザイベントが存在せず(ステップS107否定)、かつ、画面状態v4から遷移可能な画面状態も存在しないものとする(ステップS111否定、かつ、ステップS113否定)。   As a result, as shown in FIG. 8B (e), the screen state v3 is transited to the screen state v4. Here, in the screen state v4, there is no unexecuted user event (No in step S107), and there is no screen state that can be transitioned from the screen state v4 (No in step S111, and step S113). denial).

この場合、現画面の画面状態v4と開始時の画面状態v0とが同一でないので(ステップS115否定)、イベント実行制御部132は、現画面から1個前の画面に戻るユーザイベントを実行部13に実行させる(ステップS116)。なお、図8B(e)において、画面状態v4から画面状態v3への一点鎖線矢印は、画面を戻るユーザイベントを示すものとする。   In this case, since the screen state v4 of the current screen is not the same as the screen state v0 at the start (No at Step S115), the event execution control unit 132 executes the user event for returning from the current screen to the previous screen. (Step S116). In FIG. 8B (e), a one-dot chain arrow from the screen state v4 to the screen state v3 indicates a user event that returns the screen.

上述してきた処理を繰り返し行うことにより、イベント実行制御部132は、図8C(f)に示すように、画面状態v3においてユーザイベントe21を実行させ、遷移先の画面状態v5においてユーザイベントe23を実行させたものとする。これにより、現画面の画面状態は、画面状態v3となる。その後に、イベント実行制御部132は、画面状態v3においてユーザイベントe22を実行させ、遷移先の画面状態v6においてユーザイベントe29を実行させたものとする。これにより、現画面の画面状態は、画面状態v1となる。   By repeatedly performing the processing described above, the event execution control unit 132 causes the user event e21 to be executed in the screen state v3 and the user event e23 to be executed in the transition destination screen state v5 as shown in FIG. 8C (f). Suppose that As a result, the screen state of the current screen becomes the screen state v3. Thereafter, it is assumed that the event execution control unit 132 executes the user event e22 in the screen state v3 and executes the user event e29 in the transition destination screen state v6. As a result, the screen state of the current screen becomes the screen state v1.

そして、ステップS109〜S112における処理により、イベント実行制御部132は、図8C(g)に示すように、画面状態v1から画面状態v2に遷移させた後に、画面状態v2においてユーザイベントe17を実行させ、遷移先の画面状態v7においてユーザイベントe30を実行させたものとする。これにより、現画面の画面状態は、画面状態v2となる。その後に、イベント実行制御部132は、画面状態v2においてユーザイベントe18を実行させ、遷移先の画面状態v8においてユーザイベントe32を実行させたものとする。これにより、現画面の画面状態は、画面状態v1となる。   Then, through the processing in steps S109 to S112, the event execution control unit 132 causes the user event e17 to be executed in the screen state v2 after transitioning from the screen state v1 to the screen state v2, as shown in FIG. 8C (g). It is assumed that the user event e30 is executed in the transition destination screen state v7. As a result, the screen state of the current screen becomes the screen state v2. Thereafter, the event execution control unit 132 executes the user event e18 in the screen state v2, and executes the user event e32 in the transition destination screen state v8. As a result, the screen state of the current screen becomes the screen state v1.

このような順に各ユーザイベントが実行された場合、現画面の画面状態v1において未実行のユーザイベントは存在しないこととなる(ステップS107否定)。したがって、イベント特定部131は、変数「i」に「1」を設定し(ステップS109)、現画面の画面状態v1において実行可能なユーザイベントe14及びe15のそれぞれについて、かかるユーザイベントが実行されることで遷移可能な画面状態であり、かつ、現画面の画面状態v1からの画面遷移数が「1」までの画面状態において未実行のユーザイベントの総数(スコア)を算出する(ステップS110)。   When the user events are executed in this order, there is no unexecuted user event in the screen state v1 of the current screen (No at Step S107). Therefore, the event specifying unit 131 sets “1” to the variable “i” (step S109), and the user event is executed for each of the user events e14 and e15 that can be executed in the screen state v1 of the current screen. The total number (score) of unexecuted user events is calculated in the screen state in which the screen state is transitionable and the number of screen transitions from the current screen state v1 to “1” (step S110).

ここでは、図8C(g)に示すように、画面状態v2及びv3において未実行のユーザイベントが存在しない。したがって、イベント特定部131は、ユーザイベントe14及びe15のスコアとして、「0」を算出することとなる。   Here, as shown in FIG. 8C (g), there are no unexecuted user events in the screen states v2 and v3. Therefore, the event specifying unit 131 calculates “0” as the scores of the user events e14 and e15.

続いて、イベント特定部131は、スコアが「0」でないユーザイベントが存在しないので(ステップS111否定)、変数「i」に「1」を加算することで、「i」=「2」にする(ステップS114)。   Subsequently, since there is no user event whose score is not “0” (No in step S111), the event specifying unit 131 sets “i” = “2” by adding “1” to the variable “i”. (Step S114).

そして、イベント特定部131は、現画面の画面状態v1において実行可能なユーザイベントe14及びe15のそれぞれについて、かかるユーザイベントが実行されることで遷移可能な画面状態であり、かつ、現画面の画面状態v1からの画面遷移数が「2」までの画面状態において未実行のユーザイベントの総数(スコア)を算出する(ステップS110)。ここでは、イベント特定部131は、ユーザイベントe14のスコアとして「3」(画面状態v7における未実行のユーザイベントの総数「1」と、画面状態v8における未実行のユーザイベントの総数「2」との和)を算出する。また、イベント特定部131は、ユーザイベントe15のスコアとして「5」(画面状態v5における未実行のユーザイベントの総数「3」と、画面状態v6における未実行のユーザイベントの総数「2」との和)を算出する。   The event specifying unit 131 is a screen state that can be transitioned by executing the user event for each of the user events e14 and e15 that can be executed in the screen state v1 of the current screen, and the screen of the current screen The total number (score) of unexecuted user events in the screen state where the number of screen transitions from state v1 is “2” is calculated (step S110). Here, the event specifying unit 131 sets “3” as the score of the user event e14 (the total number “1” of unexecuted user events in the screen state v7 and the total number “2” of unexecuted user events in the screen state v8). Is calculated. Further, the event specifying unit 131 sets “5” (the total number of unexecuted user events in the screen state v5 “3”) and the total number “2” of unexecuted user events in the screen state v6 as the score of the user event e15. Sum).

続いて、イベント特定部131は、スコアが「0」でないユーザイベントが存在するので(ステップS111肯定)、スコアが最大であるユーザイベントe15を実行装置10に実行させるユーザイベントとして特定する。これにより、イベント実行制御部132は、ユーザイベントe15を実行部13に実行させる(ステップS112)。この結果、現画面の画面状態は、画面状態v3となる。   Subsequently, since there is a user event whose score is not “0” (Yes in step S111), the event specifying unit 131 specifies the user event e15 having the maximum score as a user event that causes the execution apparatus 10 to execute. Thereby, the event execution control unit 132 causes the execution unit 13 to execute the user event e15 (step S112). As a result, the screen state of the current screen is the screen state v3.

そして、図8C(g)に示すように、画面状態v3においても未実行のユーザイベントが存在しないので(ステップS107否定)、イベント特定部131は、変数「i」に「1」を設定し(ステップS109)、現画面の画面状態v3において実行可能なユーザイベントe20〜e22のそれぞれについてスコアを算出する(ステップS110)。この結果、イベント特定部131は、スコアが最大であるユーザイベントe21を特定し、イベント実行制御部132は、ユーザイベントe21を実行させることとなる。この後に、イベント特定部131は、画面状態v5において未実行のユーザイベントe24〜e26のいずれかを特定し、イベント実行制御部132は、イベント特定部131によって特定されたユーザイベントを実行部13に実行させることとなる。   Then, as shown in FIG. 8C (g), since there is no unexecuted user event even in the screen state v3 (No at Step S107), the event specifying unit 131 sets “1” to the variable “i” ( In step S109, a score is calculated for each of the user events e20 to e22 that can be executed in the screen state v3 of the current screen (step S110). As a result, the event specifying unit 131 specifies the user event e21 having the maximum score, and the event execution control unit 132 executes the user event e21. Thereafter, the event specifying unit 131 specifies any of the user events e24 to e26 that have not been executed in the screen state v5, and the event execution control unit 132 sends the user event specified by the event specifying unit 131 to the executing unit 13. Will be executed.

このようにして、解析装置100は、画面状態をノードとするグラフ(遷移モデル)を生成しながら、かかるグラフ(遷移モデル)を巡回するように、未実行のユーザイベントを実行装置10に実行させる。   In this way, the analysis apparatus 100 causes the execution apparatus 10 to execute an unexecuted user event so as to cycle through the graph (transition model) while generating a graph (transition model) having the screen state as a node. .

[第1の実施形態の効果]
上述してきたように、第1の実施形態に係る解析システム1は、実行装置10と、解析装置100とを含む。実行装置10は、構造情報提供部12と、実行部13とを有する。そして、実行部13は、ユーザ操作であるユーザイベントに応じて画面が遷移するアプリケーションを実行する。また、構造情報提供部12は、アプリケーションにより表示される画面毎に、かかる画面の構造を示す構造情報を解析装置100に提供する。解析装置100は、遷移モデル記憶部110と、構造情報取得部121と、遷移モデル更新部122と、イベント実行制御部132と、ログ取得部133とを有する。そして、遷移モデル記憶部110は、アプリケーションにおける画面遷移を示す遷移モデルを記憶する。構造情報取得部121は、実行部13によりユーザイベントが実行されるたびに、アプリケーションにより現に表示される現画面に関する構造情報を構造情報提供部12から取得する。遷移モデル更新部122は、構造情報取得部121により取得された構造情報に基づいて、構造情報が取得済みである既知の画面と現画面との類似性を判定し、既知の画面と類似していない現画面が追加されるように遷移モデルを更新する。イベント実行制御部132は、遷移モデルのうち現画面に対応する画面において未実行のユーザイベントを実行部13に実行させる。ログ取得部133は、実行部13によりユーザイベントが実行されるたびに、実行装置10からログ情報を取得する。
[Effect of the first embodiment]
As described above, the analysis system 1 according to the first embodiment includes the execution device 10 and the analysis device 100. The execution device 10 includes a structure information providing unit 12 and an execution unit 13. And the execution part 13 performs the application from which a screen changes according to the user event which is user operation. Further, the structure information providing unit 12 provides structure information indicating the structure of the screen to the analysis apparatus 100 for each screen displayed by the application. The analysis apparatus 100 includes a transition model storage unit 110, a structure information acquisition unit 121, a transition model update unit 122, an event execution control unit 132, and a log acquisition unit 133. And the transition model memory | storage part 110 memorize | stores the transition model which shows the screen transition in an application. The structure information acquisition unit 121 acquires, from the structure information providing unit 12, structure information regarding the current screen that is currently displayed by the application every time a user event is executed by the execution unit 13. Based on the structure information acquired by the structure information acquisition unit 121, the transition model update unit 122 determines the similarity between the known screen from which the structure information has been acquired and the current screen, and is similar to the known screen. Update the transition model so that no current screen is added. The event execution control unit 132 causes the execution unit 13 to execute an unexecuted user event on the screen corresponding to the current screen in the transition model. The log acquisition unit 133 acquires log information from the execution device 10 every time a user event is executed by the execution unit 13.

すなわち、第1の実施形態に係る解析システム1は、類似する各画面を同一の画面状態として扱った上で画面の遷移モデルを生成しながら、かかる遷移モデルを参照して未実行のユーザイベントを実行装置10に実行させる。これにより、第1の実施形態に係る解析システム1は、実質的に同一である複数の画面において同じようなユーザイベントが実行されることを防止できるので、効率的に解析対象アプリケーション11を実行することができる。さらに、解析システム1は、未実行のユーザイベントを順次実行させるので、解析対象アプリケーション11を網羅的に実行することができる。このようなことから、第1の実施形態に係る解析システム1は、GUI操作を伴うアプリケーションの動的解析においてコードカバレッジを効率的に高めることができる。   That is, the analysis system 1 according to the first embodiment generates a screen transition model after treating each similar screen as the same screen state, and refers to the transition model to generate an unexecuted user event. The execution apparatus 10 is made to execute. Accordingly, the analysis system 1 according to the first embodiment can prevent the same user event from being executed on a plurality of substantially identical screens, and thus efficiently executes the analysis target application 11. be able to. Furthermore, since the analysis system 1 sequentially executes unexecuted user events, the analysis target application 11 can be comprehensively executed. For this reason, the analysis system 1 according to the first embodiment can efficiently increase the code coverage in the dynamic analysis of the application accompanied by the GUI operation.

例えば、第1の実施形態に係る解析システム1を用いた場合、高いコードカバレッジを実現できるので、解析装置100を利用する解析者は、遷移モデル記憶部110に記憶されているログを参照することにより、解析対象アプリケーション11がマルウェアであるか否かを高精度に解析することができる。   For example, when the analysis system 1 according to the first embodiment is used, high code coverage can be realized. Therefore, an analyst using the analysis apparatus 100 refers to a log stored in the transition model storage unit 110. Thus, it is possible to analyze with high accuracy whether or not the analysis target application 11 is malware.

また、第1の実施形態に係る解析システム1において、構造情報提供部12は、画面のレイアウトに関するコンポーネント、及び、画面においてユーザイベントに対応するコンポーネントをノードとする木構造により表される構造情報を提供する。また、遷移モデル更新部122は、構造情報を表す木構造のうち、根ノードから、ユーザイベントに対応するコンポーネントに対応するノードまでの経路に含まれるノード群が同一であるか否かに基づいて、既知の画面と現画面との類似性を判定する。   In the analysis system 1 according to the first embodiment, the structural information providing unit 12 displays structural information represented by a tree structure having nodes related to components related to screen layout and components corresponding to user events on the screen. provide. Further, the transition model update unit 122 is based on whether the node groups included in the route from the root node to the node corresponding to the component corresponding to the user event are the same among the tree structure representing the structure information. The similarity between the known screen and the current screen is determined.

これにより、第1の実施形態に係る解析システム1は、各画面における類似性の判定を高精度に行うことができるので、実質的に異なる画面を同一の画面として扱うことを防止できる。この結果、解析システム1は、ユーザイベントの実行漏れを防止することができる。また、解析システム1は、実質的に同一である画面を遷移モデルに重複登録することを防止できるので、過剰なユーザイベントの実行を減らすことができる。   As a result, the analysis system 1 according to the first embodiment can perform the determination of similarity on each screen with high accuracy, and thus can prevent substantially different screens from being handled as the same screen. As a result, the analysis system 1 can prevent omission of execution of the user event. In addition, the analysis system 1 can prevent duplicate registration of substantially the same screen in the transition model, thereby reducing the execution of excessive user events.

また、第1の実施形態に係る解析システム1において、解析装置100が有するイベント特定部131は、現画面に対応する画面において未実行のユーザイベントが存在しない場合に、遷移モデルに基づいて、現画面において実行可能なユーザイベント毎に、当該ユーザイベントが実行されることで遷移可能となる画面であり、かつ、現画面からの画面遷移数が最小である画面において未実行のユーザイベントの総数を算出し、算出した総数が最大であるユーザイベントを特定する。また、イベント実行制御部132は、イベント特定部131により特定されたユーザイベントを実行部13に実行させる。   Further, in the analysis system 1 according to the first embodiment, the event specifying unit 131 included in the analysis apparatus 100 is based on the transition model when there is no unexecuted user event on the screen corresponding to the current screen. For each user event that can be executed on the screen, the total number of unexecuted user events on the screen that can be transitioned by executing the user event and has the smallest number of screen transitions from the current screen. Calculate and identify the user event for which the calculated total is the maximum. In addition, the event execution control unit 132 causes the execution unit 13 to execute the user event specified by the event specifying unit 131.

これにより、第1の実施形態に係る解析システム1は、現画面からの画面遷移数が少ない画面であり、かつ、未実行のユーザイベントが多い画面を優先して、未実行のユーザイベントを実行させるので、遷移モデルを効率的に巡回することができる。   As a result, the analysis system 1 according to the first embodiment executes an unexecuted user event by giving priority to a screen having a small number of screen transitions from the current screen and a large number of unexecuted user events. Therefore, the transition model can be circulated efficiently.

また、第1の実施形態に係る解析システム1において、イベント実行制御部132は、イベント特定部131によりユーザイベントが特定されない場合に、現画面から1個前の画面に戻るユーザイベントを実行部13に実行させる。   In the analysis system 1 according to the first embodiment, the event execution control unit 132 executes a user event for returning to the previous screen from the current screen when the user event is not specified by the event specifying unit 131. To run.

これにより、第1の実施形態に係る解析システム1は、現画面が画面遷移のない画面状態(完了画面等)になった場合であっても、未実行のユーザイベントを探索することが可能となるので、GUI操作を伴うアプリケーションの動的解析においてコードカバレッジを効率的に高めることができる。   As a result, the analysis system 1 according to the first embodiment can search for an unexecuted user event even when the current screen is in a screen state (such as a completion screen) without screen transition. Therefore, the code coverage can be efficiently increased in the dynamic analysis of the application accompanied by the GUI operation.

(第2の実施形態)
上述した解析システム1は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、第2の実施形態では、上記の解析システム1の他の実施形態について説明する。
(Second Embodiment)
The analysis system 1 described above may be implemented in various different forms other than the above embodiment. Therefore, in the second embodiment, another embodiment of the analysis system 1 will be described.

[システム構成]
上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[System configuration]
Of the processes described in the above embodiment, all or part of the processes described as being automatically performed can be performed manually, or all of the processes described as being performed manually or A part can be automatically performed by a known method. In addition, the processing procedures, specific names, and information including various data and parameters shown in the document and drawings can be arbitrarily changed unless otherwise specified.

また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。   Further, each component of each illustrated apparatus is functionally conceptual, and does not necessarily need to be physically configured as illustrated. In other words, the specific form of distribution / integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed or arbitrarily distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured.

例えば、図1に示した例において、構造情報取得部121と遷移モデル更新部122とは統合されてもよい。また、例えば、イベント特定部131とイベント実行制御部132とは統合されてもよい。   For example, in the example illustrated in FIG. 1, the structure information acquisition unit 121 and the transition model update unit 122 may be integrated. Further, for example, the event specifying unit 131 and the event execution control unit 132 may be integrated.

[プログラム]
また、上記実施形態において説明した解析装置100が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、解析装置100が実行する処理をコンピュータが実行可能な言語で記述した解析プログラムを作成することもできる。この場合、コンピュータが解析プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる解析プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された解析プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、一例として、図1に示した解析装置100と同様の機能を実現する解析プログラムを実行するコンピュータの一例を説明する。
[program]
It is also possible to create a program that describes the processing executed by the analysis apparatus 100 described in the above embodiment in a language that can be executed by a computer. For example, an analysis program in which processing executed by the analysis apparatus 100 is described in a language that can be executed by a computer can be created. In this case, when the computer executes the analysis program, the same effect as that of the above embodiment can be obtained. Further, the same processing as in the above embodiment may be realized by recording the analysis program on a computer-readable recording medium, and reading and executing the analysis program recorded on the recording medium. As an example, an example of a computer that executes an analysis program that realizes the same function as that of the analysis apparatus 100 illustrated in FIG. 1 will be described.

図9は、解析プログラムを実行するコンピュータ1000を示す図である。図9に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。   FIG. 9 is a diagram illustrating a computer 1000 that executes an analysis program. As illustrated in FIG. 9, the computer 1000 includes, for example, a memory 1010, a CPU 1020, a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. These units are connected by a bus 1080.

メモリ1010は、図9に例示するように、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図9に例示するように、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、図9に例示するように、ディスクドライブ1041に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブに挿入される。シリアルポートインタフェース1050は、図9に例示するように、例えばマウス1051、キーボード1052に接続される。ビデオアダプタ1060は、図9に例示するように、例えばディスプレイ1061に接続される。   The memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012 as illustrated in FIG. The ROM 1011 stores a boot program such as BIOS (Basic Input Output System). The hard disk drive interface 1030 is connected to the hard disk drive 1031 as illustrated in FIG. The disk drive interface 1040 is connected to the disk drive 1041 as illustrated in FIG. For example, a removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive. The serial port interface 1050 is connected to a mouse 1051 and a keyboard 1052, for example, as illustrated in FIG. The video adapter 1060 is connected to a display 1061, for example, as illustrated in FIG.

ここで、図9に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の解析プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1031に記憶される。例えば、図1に例示した構造情報取得部121と同様の情報処理を実行する構造情報取得手順と、遷移モデル更新部122と同様の情報処理を実行する遷移モデル更新手順と、イベント特定部131と同様の情報処理を実行するイベント特定手順と、イベント実行制御部132と同様の情報処理を実行するイベント実行制御手順と、ログ取得部133と同様の情報処理を実行するログ取得手順とが記述されたプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。   Here, as illustrated in FIG. 9, the hard disk drive 1031 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094. That is, the above analysis program is stored in, for example, the hard disk drive 1031 as a program module in which a command executed by the computer 1000 is described. For example, a structure information acquisition procedure for executing information processing similar to that of the structure information acquisition unit 121 illustrated in FIG. 1, a transition model update procedure for executing information processing similar to that of the transition model update unit 122, An event specifying procedure for executing the same information processing, an event execution control procedure for executing the same information processing as the event execution control unit 132, and a log acquisition procedure for executing the same information processing as the log acquisition unit 133 are described. The program module 1093 is stored in the hard disk drive 1031.

また、上記実施形態で説明した遷移モデル記憶部110が保持する各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1031に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、構造情報取得手順、遷移モデル更新手順、イベント特定手順、イベント実行制御手順、ログ取得手順を実行する。   In addition, various data held by the transition model storage unit 110 described in the above embodiment is stored as program data, for example, in the memory 1010 or the hard disk drive 1031. Then, the CPU 1020 reads the program module 1093 and program data 1094 stored in the memory 1010 and the hard disk drive 1031 to the RAM 1012 as necessary, and obtains a structure information acquisition procedure, a transition model update procedure, an event identification procedure, an event execution control procedure, Execute the log acquisition procedure.

なお、解析プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、解析プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。   Note that the program module 1093 and the program data 1094 related to the analysis program are not limited to being stored in the hard disk drive 1031, but may be stored in, for example, a removable storage medium and read out by the CPU 1020 via the disk drive or the like. Good. Alternatively, the program module 1093 and the program data 1094 related to the analysis program are stored in another computer connected via a network (LAN (Local Area Network), WAN (Wide Area Network), etc.), and via the network interface 1070. May be read by the CPU 1020.

1 解析システム
10 実行装置
11 解析対象アプリケーション
12 構造情報提供部
13 実行部
100 解析装置
110 遷移モデル記憶部
121 構造情報取得部
122 遷移モデル更新部
131 イベント特定部
132 イベント実行制御部
133 ログ取得部
DESCRIPTION OF SYMBOLS 1 Analysis system 10 Execution apparatus 11 Analysis object application 12 Structure information provision part 13 Execution part 100 Analysis apparatus 110 Transition model memory | storage part 121 Structure information acquisition part 122 Transition model update part 131 Event specification part 132 Event execution control part 133 Log acquisition part

Claims (8)

実行装置と解析装置とを含む解析システムであって、
前記実行装置は、
ユーザ操作であるユーザイベントに応じて画面が遷移するアプリケーションを実行する実行部と、
前記アプリケーションにより表示される画面毎に、当該画面の構造を示す構造情報を前記解析装置に提供する提供部とを備え、
前記解析装置は、
前記アプリケーションにおける画面遷移を示す遷移モデルを記憶する記憶部と、
前記実行部により前記ユーザイベントが実行されるたびに、前記アプリケーションにより現に表示される現画面に関する構造情報を前記提供部から取得する構造情報取得部と、
前記構造情報取得部により取得された構造情報に基づいて、構造情報が取得済みである既知の画面と前記現画面との類似性を判定し、当該既知の画面と類似していない現画面が追加されるように前記遷移モデルを更新する更新部と、
前記遷移モデルのうち前記現画面に対応する画面において未実行のユーザイベントを前記実行部に実行させる実行制御部と、
前記実行部により前記ユーザイベントが実行されるたびに、前記実行装置からログ情報を取得するログ取得部と
を備えたことを特徴とする解析システム。
An analysis system including an execution device and an analysis device,
The execution device is
An execution unit that executes an application whose screen changes in response to a user event that is a user operation;
For each screen displayed by the application, a providing unit that provides structural information indicating the structure of the screen to the analysis device,
The analysis device includes:
A storage unit for storing a transition model indicating screen transition in the application;
Each time the user event is executed by the execution unit, a structure information acquisition unit that acquires structure information about the current screen that is currently displayed by the application from the providing unit;
Based on the structure information acquired by the structure information acquisition unit, the similarity between a known screen for which structure information has been acquired and the current screen is determined, and a current screen that is not similar to the known screen is added. An updating unit for updating the transition model to be
An execution control unit that causes the execution unit to execute an unexecuted user event on a screen corresponding to the current screen among the transition models;
An analysis system comprising: a log acquisition unit that acquires log information from the execution device each time the user event is executed by the execution unit.
前記提供部は、
前記画面のレイアウトに関するコンポーネント、及び、当該画面においてユーザイベントに対応するコンポーネントをノードとする木構造により表される構造情報を提供し、
前記更新部は、
前記構造情報を表す木構造のうち、根ノードから、前記ユーザイベントに対応するコンポーネントに対応するノードまでの経路に含まれるノード群が同一であるか否かに基づいて、前記既知の画面と前記現画面との類似性を判定する
ことを特徴とする請求項1に記載の解析システム。
The providing unit includes:
Providing structural information represented by a tree structure having nodes as components related to the layout of the screen and components corresponding to user events on the screen;
The update unit
Based on whether the node group included in the path from the root node to the node corresponding to the component corresponding to the user event is the same among the tree structure representing the structure information, the known screen and the The analysis system according to claim 1, wherein similarity with the current screen is determined.
前記解析装置は、
前記現画面に対応する画面において未実行のユーザイベントが存在しない場合に、前記遷移モデルに基づいて、当該現画面において実行可能なユーザイベント毎に、当該ユーザイベントが実行されることで遷移可能となる画面であり、かつ、当該現画面からの画面遷移数が最小である画面において未実行のユーザイベントの総数を算出し、算出した総数が最大であるユーザイベントを特定する特定部をさらに備え、
前記実行制御部は、
前記特定部により特定されたユーザイベントを前記実行部に実行させる
ことを特徴とする請求項1又は2に記載の解析システム。
The analysis device includes:
When there is no unexecuted user event on the screen corresponding to the current screen, transition is possible by executing the user event for each user event that can be executed on the current screen based on the transition model. And a specific unit for calculating the total number of unexecuted user events on the screen having the smallest number of screen transitions from the current screen, and identifying the user event having the largest calculated total number,
The execution control unit
The analysis system according to claim 1 or 2, wherein the execution unit is caused to execute the user event specified by the specifying unit.
前記実行制御部は、
前記特定部によりユーザイベントが特定されない場合に、当該現画面から1個前の画面に戻るユーザイベントを前記実行部に実行させる
ことを特徴とする請求項3に記載の解析システム。
The execution control unit
The analysis system according to claim 3, wherein when the user event is not specified by the specifying unit, the execution unit is caused to execute a user event that returns from the current screen to the previous screen.
ユーザ操作であるユーザイベントに応じて画面が遷移するアプリケーションにおける画面遷移を示す遷移モデルを記憶する記憶部と、
前記アプリケーションの実行環境において前記ユーザイベントが実行されるたびに、当該アプリケーションにより現に表示される現画面に関する構造情報を前記実行環境から取得する構造情報取得部と、
前記構造情報取得部により取得された構造情報に基づいて、構造情報が取得済みである既知の画面と前記現画面との類似性を判定し、当該既知の画面と類似していない現画面が追加されるように前記遷移モデルを更新する更新部と、
前記遷移モデルのうち前記現画面に対応する画面において未実行のユーザイベントを前記実行環境において実行させる実行制御部と、
前記ユーザイベントが実行されるたびに、前記実行環境からログ情報を取得するログ取得部と
を備えたことを特徴とする解析装置。
A storage unit that stores a transition model indicating a screen transition in an application in which a screen transitions according to a user event that is a user operation;
Each time the user event is executed in the execution environment of the application, a structure information acquisition unit that acquires, from the execution environment, structure information regarding the current screen that is currently displayed by the application;
Based on the structure information acquired by the structure information acquisition unit, the similarity between a known screen for which structure information has been acquired and the current screen is determined, and a current screen that is not similar to the known screen is added. An updating unit for updating the transition model to be
An execution control unit for executing an unexecuted user event in the execution environment on the screen corresponding to the current screen in the transition model;
An analysis apparatus comprising: a log acquisition unit that acquires log information from the execution environment each time the user event is executed.
実行装置と解析装置とを含む解析システムにより実行される解析方法であって、
前記実行装置が、ユーザ操作であるユーザイベントに応じて画面が遷移するアプリケーションを実行する実行工程と、
前記実行装置が、前記アプリケーションにより表示される画面毎に、当該画面の構造を示す構造情報を前記解析装置に提供する提供工程と、
前記解析装置が、前記実行装置により前記ユーザイベントが実行されるたびに、前記アプリケーションにより現に表示される現画面に関する構造情報を前記実行装置から取得する構造情報取得工程と、
前記解析装置が、前記構造情報取得工程により取得された構造情報に基づいて、構造情報が取得済みである既知の画面と前記現画面との類似性を判定し、前記アプリケーションにおける画面遷移を示す遷移モデルに当該既知の画面と類似していない現画面が追加されるように当該遷移モデルを更新する更新工程と、
前記解析装置が、前記遷移モデルのうち前記現画面に対応する画面において未実行のユーザイベントを前記実行装置に実行させる実行制御工程と、
前記解析装置が、前記実行装置により前記ユーザイベントが実行されるたびに、前記実行装置からログ情報を取得するログ取得工程と
を含んだことを特徴とする解析方法。
An analysis method executed by an analysis system including an execution device and an analysis device,
An execution step in which the execution device executes an application whose screen changes in response to a user event that is a user operation;
A step of providing the analysis apparatus with structural information indicating a structure of the screen for each screen displayed by the application, the execution device;
A structure information acquisition step for acquiring, from the execution device, structure information related to a current screen that is currently displayed by the application each time the user event is executed by the execution device.
Based on the structure information acquired by the structure information acquisition step, the analysis device determines similarity between a known screen for which structure information has been acquired and the current screen, and indicates a screen transition in the application An update process for updating the transition model so that a current screen not similar to the known screen is added to the model;
An execution control step in which the analysis device causes the execution device to execute an unexecuted user event on a screen corresponding to the current screen in the transition model;
An analysis method comprising: a log acquisition step of acquiring log information from the execution device each time the execution event is executed by the execution device.
解析装置が実行する解析方法であって、
ユーザ操作であるユーザイベントに応じて画面が遷移するアプリケーションの実行環境において前記ユーザイベントが実行されるたびに、当該アプリケーションにより現に表示される現画面に関する構造情報を前記実行環境から取得する構造情報取得工程と、
前記構造情報取得工程により取得された構造情報に基づいて、構造情報が取得済みである既知の画面と前記現画面との類似性を判定し、前記アプリケーションにおける画面遷移を示す遷移モデルに当該既知の画面と類似していない現画面が追加されるように当該遷移モデルを更新する更新工程と、
前記遷移モデルのうち前記現画面に対応する画面において未実行のユーザイベントを前記実行環境において実行させる実行制御工程と、
前記ユーザイベントが実行されるたびに、前記実行環境からログ情報を取得するログ取得工程と
を含んだことを特徴とする解析方法。
An analysis method executed by an analysis device,
Whenever the user event is executed in an execution environment of an application whose screen changes in response to a user event which is a user operation, structural information acquisition for acquiring structural information about the current screen currently displayed by the application from the execution environment Process,
Based on the structure information acquired by the structure information acquisition step, the similarity between the known screen from which the structure information has been acquired and the current screen is determined, and the known transition model indicating the screen transition in the application An update process for updating the transition model so that a current screen not similar to the screen is added;
An execution control step of causing an unexecuted user event to be executed in the execution environment in a screen corresponding to the current screen in the transition model;
A log acquisition step of acquiring log information from the execution environment each time the user event is executed.
ユーザ操作であるユーザイベントに応じて画面が遷移するアプリケーションの実行環境において前記ユーザイベントが実行されるたびに、当該アプリケーションにより現に表示される現画面に関する構造情報を前記実行環境から取得する構造情報取得手順と、
前記構造情報取得手順により取得された構造情報に基づいて、構造情報が取得済みである既知の画面と前記現画面との類似性を判定し、前記アプリケーションにおける画面遷移を示す遷移モデルに当該既知の画面と類似していない現画面が追加されるように当該遷移モデルを更新する更新手順と、
前記遷移モデルのうち前記現画面に対応する画面において未実行のユーザイベントを前記実行環境において実行させる実行制御手順と、
前記ユーザイベントが実行されるたびに、前記実行環境からログ情報を取得するログ取得手順と
をコンピュータに実行させることを特徴とする解析プログラム。
Whenever the user event is executed in an execution environment of an application whose screen changes in response to a user event which is a user operation, structural information acquisition for acquiring structural information about the current screen currently displayed by the application from the execution environment Procedure and
Based on the structure information acquired by the structure information acquisition procedure, the similarity between the known screen from which the structure information has been acquired and the current screen is determined, and the known transition model indicating the screen transition in the application An update procedure for updating the transition model so that a current screen that is not similar to the screen is added,
An execution control procedure for executing an unexecuted user event in the execution environment in a screen corresponding to the current screen in the transition model;
An analysis program causing a computer to execute a log acquisition procedure for acquiring log information from the execution environment each time the user event is executed.
JP2012233042A 2012-10-22 2012-10-22 Analysis system, analysis apparatus, analysis method, and analysis program Expired - Fee Related JP5918102B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012233042A JP5918102B2 (en) 2012-10-22 2012-10-22 Analysis system, analysis apparatus, analysis method, and analysis program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012233042A JP5918102B2 (en) 2012-10-22 2012-10-22 Analysis system, analysis apparatus, analysis method, and analysis program

Publications (2)

Publication Number Publication Date
JP2014085762A true JP2014085762A (en) 2014-05-12
JP5918102B2 JP5918102B2 (en) 2016-05-18

Family

ID=50788783

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012233042A Expired - Fee Related JP5918102B2 (en) 2012-10-22 2012-10-22 Analysis system, analysis apparatus, analysis method, and analysis program

Country Status (1)

Country Link
JP (1) JP5918102B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017010088A (en) * 2015-06-16 2017-01-12 Kddi株式会社 Program, device and method for automating screen transition of gui

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007172377A (en) * 2005-12-22 2007-07-05 Internatl Business Mach Corp <Ibm> Method for analyzing state transition in web page

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007172377A (en) * 2005-12-22 2007-07-05 Internatl Business Mach Corp <Ibm> Method for analyzing state transition in web page

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN7015002795; Ali Mesbah 外2名: '"Crawling Ajax-Based Web Applications through Dynamic Analysis of User Interface State Changes"' ACM Transactions on the Web 第6巻 第1号, 201203, pp. 3:1-3:30, ACM *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017010088A (en) * 2015-06-16 2017-01-12 Kddi株式会社 Program, device and method for automating screen transition of gui

Also Published As

Publication number Publication date
JP5918102B2 (en) 2016-05-18

Similar Documents

Publication Publication Date Title
JP6307453B2 (en) Risk assessment system and risk assessment method
US10169347B2 (en) Layer identification and dependency analysis for management of images
US9251046B2 (en) Method and system for generating and processing black box test cases
Sambasivan et al. Principled workflow-centric tracing of distributed systems
US9069901B2 (en) Software and framework for reusable automated testing of computer software systems
US20180165258A1 (en) Methods for improved auditing of web sites and devices thereof
US8910123B2 (en) Automated validation of generated test cases following changes to the underlying test model
Salihu et al. AMOGA: A static-dynamic model generation strategy for mobile apps testing
KR101535813B1 (en) System and method for dynamic updating of event composition rule for complex event processing
JPWO2017126041A1 (en) Training apparatus, training method, and training program
JP6282217B2 (en) Anti-malware system and anti-malware method
EP3635563B1 (en) Application analysis with flexible post-processing
WO2020209227A1 (en) Analysis device, analysis method, and program
US20160335171A1 (en) Test automation modeling
JP5918102B2 (en) Analysis system, analysis apparatus, analysis method, and analysis program
Mariano et al. Analyzing graph-based algorithms employed to generate test cases from finite state machines
CN107038117A (en) It is a kind of based on the web automated testing methods that reference is defined between event handling function
CN105912467A (en) Performance test method and device
JP7380851B2 (en) Test script generation device, test script generation method and program
JP7318704B2 (en) Test equipment, test method and program
JP6802109B2 (en) Software specification analyzer and software specification analysis method
JP2017041196A (en) Stub object determination device, method, and program
JP2006031178A (en) Load test execution device, load test execution method and load test execution program
Bernard et al. An approximation-based approach for the random exploration of large models
JP7424393B2 (en) Estimation system, estimation method and estimation program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150123

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150928

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20151001

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151130

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: 20160405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160407

R150 Certificate of patent or registration of utility model

Ref document number: 5918102

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees