JP2014085762A - Analysis system, analysis device, analysis method and analysis program - Google Patents
Analysis system, analysis device, analysis method and analysis program Download PDFInfo
- 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
Links
Images
Abstract
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.
しかしながら、従来の動的解析では、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.
以下に、本願に係る解析システム、解析装置、解析方法及び解析プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る解析システム、解析装置、解析方法及び解析プログラムが限定されるものではない。 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
実行装置10は、解析装置100によって解析されるアプリケーションソフトウェア(以下、単に「アプリケーション」と表記する)の実行環境を提供するエミュレータである。かかる実行装置10は、例えば、PC(Personal Computer)や携帯電話機やPDA(Personal Digital Assistant)等の物理マシンによって実現されてもよいし、仮想マシンによって実現されてもよい。
The
なお、実行装置10は、解析装置100によって解析されるアプリケーションとして、図1に示す解析対象アプリケーション11を実行するものとする。解析対象アプリケーション11は、解析装置100によって解析されるアプリケーションであり、例えば、所定のサイト(サーバ装置)からダウンロード可能である。このような解析対象アプリケーション11は、解析装置100を利用する解析者が開発したものではなく、解析者にとって仕様が明らかでないものとする。
The
以下では、解析対象アプリケーション11は、一例として、スマートフォンやタブレットPC等において、Android OS(Operating System)上で動作するアプリケーションであるものとする。このような解析対象アプリケーション11は、GUIを前提としたものが多く、ユーザ操作に応じて画面が遷移する。例えば、解析対象アプリケーション11は、指や専用器具(例えば、タッチペン)等によって、タッチパネル式の表示画面が押下されることで各種ユーザ操作を受け付ける。ユーザ操作の一例としては、表示画面を指で押下して短時間で離すタップ操作や、表示画面を2回押下するダブルタップ操作や、表示画面を押下した状態で指をスライドさせるドラッグ操作や、表示画面を2本の指で押下した状態で双方の指を近づけたり遠ざけたりするピンチ操作等が挙げられる。また、解析対象アプリケーション11は、表示画面が押下されるユーザ操作に限らず、スマートフォン等の実機に備えられているハードキーが押下されるユーザ操作も受け付ける。以下、解析対象アプリケーション11が受け付けることが可能なユーザ操作を「ユーザイベント」と表記する場合がある。
In the following, it is assumed that the
解析装置100は、実行装置10に対して解析対象アプリケーション11を実行させることにより、解析対象アプリケーション11の動作を解析する。かかる解析装置100は、例えば、PC(Personal Computer)等の物理マシンによって実現されてもよいし、仮想マシンによって実現されてもよい。
The
ここで、図2を用いて、解析装置100による解析処理について簡単に説明する。図2は、第1の実施形態に係る解析装置100による解析処理の一例を示す図である。第1の実施形態に係る解析装置100は、図2に例示するように、画面の遷移モデルを生成しながら、生成した遷移モデルを巡回するようにユーザイベントを実行装置10に対して模擬的に実行させる。このとき、解析装置100は、解析対象アプリケーション11の実行中に実際に表示され得る各画面をそれぞれ異なる画面として扱うのではなく、類似している画面群を同一の画面として扱う。
Here, analysis processing by the
具体的には、解析装置100は、実行装置10にユーザイベントを模擬的に実行させた後に、解析対象アプリケーション11により表示される画面の構造を解析することにより画面状態を取得する。ここでいう「画面状態」とは、画面構造の特徴的な部品(コンポーネント)等によって表される抽象的な画面構造を示す。すなわち、画面構造の特徴的な部品が同一である画面群は、画面状態も同一となる。
Specifically, the
そして、解析装置100は、図2に示すように、画面状態をノード(「接点」や「頂点」等とも呼ばれる)とし、かつ、ユーザイベントをエッジ(「枝」や「辺」等とも呼ばれる)としたグラフを遷移モデルとして生成する。このようにして、解析装置100は、画面状態をノードとするグラフを生成し、生成したグラフに含まれる各画面状態において未実行のユーザイベント(エッジ)を実行装置10に順次実行させる。
As shown in FIG. 2, the
例えば、図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
ここで、図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
このように、第1の実施形態に係る解析装置100は、抽象的な画面構造である画面状態をノードとするグラフ(遷移モデル)を生成しながら、各画面状態において未実行のユーザイベントを実行装置10に実行させる。すなわち、解析装置100は、類似する各画面を同一の画面状態として扱うことで、実質的に同一である複数の画面において同じようなユーザイベントが実行されることを防止できるので、効率的に解析対象アプリケーション11を実行することができる。さらに、解析装置100は、グラフのノードである各画面状態において未実行のユーザイベントを順次実行させるので、解析対象アプリケーション11を網羅的に実行することができる。このようなことから、第1の実施形態に係る解析装置100は、GUI操作を伴うアプリケーションの動的解析においてコードカバレッジを効率的に高めることができる。以下、このような解析処理を実現する実行装置10及び解析装置100について、詳細に説明する。
As described above, the
[実行装置の構成]
まず、図1を用いて、上述した実行装置10の構成について説明する。図1に例示するように、実行装置10は、解析対象アプリケーション11と、構造情報提供部12と、実行部13とを有する。解析対象アプリケーション11については既に説明したのでここでは説明を省略する。
[Execution device configuration]
First, the configuration of the
構造情報提供部12は、解析対象アプリケーション11により表示される画面毎に、かかる画面の構造を示す構造情報を解析装置100に提供する。なお、構造情報提供部12は、例えば「Window Manager」等によって実現される。ここで、図4を用いて、構造情報について説明する。図4は、第1の実施形態に係る構造情報を説明するための図である。
The structure
図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
図1の説明に戻って、実行部13は、解析対象アプリケーション11を実行する。具体的には、実行部13は、後述する解析装置100のイベント実行制御部132による指示に従って、解析対象アプリケーション11に対してユーザイベントを模擬的に実行する。ここでいう「模擬的に実行」とは、例えばユーザイベントがタップ操作である場合に、実行装置10の表示画面に対して実際にタップ操作を行うのではなく、タップ操作が行われた際の処理を実行するよう解析対象アプリケーション11に指示することを示す。なお、実行部13は、例えば、Android OSにおける「adbd(adbデーモン)」等によって実現される。
Returning to the description of FIG. 1, the
[解析装置の構成]
次に、上述した解析装置100の構成について説明する。図1に示すように、解析装置100は、遷移モデル記憶部110と、遷移モデル生成部120と、端末制御部130とを有する。
[Configuration of analyzer]
Next, the configuration of the
遷移モデル記憶部110は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等によって実現される。かかる遷移モデル記憶部110は、解析対象アプリケーション11における画面遷移を示す遷移モデルを記憶する。具体的には、第1の実施形態に係る遷移モデル記憶部110は、遷移モデルとして、図2に例示したようなグラフを記憶する。
The transition
ここで、図5に、第1の実施形態に係る遷移モデル記憶部110の一例を示す。図5に示した例では、遷移モデル記憶部110は、「ノード」、「エッジ」、「遷移先ノード」、「画面状態情報」、「ログ情報」といった項目を有する。なお、図5では、図2に例示したグラフに対応する各種情報が記憶されている例を示す。
Here, FIG. 5 illustrates an example of the transition
「ノード」は、遷移モデルにおける画面状態を示す。「エッジ」は、遷移モデルにおけるユーザイベントを示す。「遷移先ノード」は、「ノード」によって示される画面状態において「エッジ」によって示されるユーザイベントが実行された場合における遷移先の画面状態を示す。「画面状態情報」は、画面状態を識別するための情報であって、「ノード」によって示される画面状態における画面構造の特徴的な部品(コンポーネント)によって表される抽象的な画面構造の情報を示す。「ログ情報」は、「ノード」によって示される画面状態において「エッジ」によって示されるユーザイベントが実行された際に、後述するログ取得部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
例えば、図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
図1の説明に戻って、遷移モデル生成部120は、構造情報提供部12によって提供される構造情報を解析することにより、遷移モデルを生成する。かかる遷移モデル生成部120は、構造情報取得部121と、遷移モデル更新部122とを有する。
Returning to the description of FIG. 1, the transition
構造情報取得部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
遷移モデル更新部122は、構造情報取得部121によって取得された構造情報に基づいて遷移モデルを生成し、遷移モデル記憶部110に記憶されている遷移モデルを更新する。具体的には、遷移モデル更新部122は、構造情報取得部121によって取得された構造情報から画面状態情報を生成する。そして、遷移モデル更新部122は、生成した画面状態情報が、遷移モデル記憶部110に記憶されているか否かを判定する。これにより、遷移モデル更新部122は、構造情報が取得済みである既知の画面と現画面との類似性を判定することとなる。
The transition
そして、遷移モデル更新部122は、既知の画面と類似していない現画面が遷移モデルに追加されるように遷移モデル記憶部110を更新する。具体的には、遷移モデル更新部122は、現画面の画面状態情報を遷移モデル記憶部110の「ノード」や「遷移先ノード」に登録する。
Then, the transition
ここで、図6を用いて、遷移モデル更新部122によって生成される画面状態情報について説明する。図6は、第1の実施形態に係る画面状態情報の一例を示す図である。上記の通り、実行装置10の構造情報提供部12によって提供される各画面の構造情報は、木構造により表される。例えば、構造情報提供部12は、図6の左側に示すように、構造情報をダンプした木構造データT11を提供する。かかる木構造データT11のうち、各行の左に示した数値は、木構造における深さ(根ノードから内部ノードや葉ノードまでのエッジ数)を示す。また、木構造データT11のうち、ユーザイベントの対象となるノードには、数値の右側に「*」(アスタリスク)が付加されている。なお、図6では図示することを省略したが、構造情報提供部12によって提供される木構造データT11には、ノード毎に、かかるノード配置位置や、かかるノードが表示されるか否かといった属性情報も含まれる。
Here, the screen state information generated by the transition
遷移モデル更新部122は、このような木構造データT11が構造情報取得部121により取得された場合に、かかる木構造データT11に含まれるノードの中から、木構造データT11に含まれる各ノードの属性情報や、木構造におけるノードの位置に基づいて、ユーザイベントの対象となるノードを決定する。
When the tree structure data T11 is acquired by the structure information acquisition unit 121, the transition
具体的には、遷移モデル更新部122は、下記の条件(1)〜(4)を満たすノードをユーザイベントの対象ノードとして決定する。なお、遷移モデル更新部122は、各ノードの属性情報に基づいて、下記の条件(1)〜(3)を満たすか否かを判定できる。
Specifically, the transition
条件(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
図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
このように、遷移モデル更新部122は、上記の条件(1)〜(4)を満たすノードをユーザイベントの対象ノードとして画面状態情報を生成することで、各画面における類似性の判定を高精度に行うことができる。すなわち、遷移モデル更新部122は、実質的に異なる画面を同一の画面として扱うことを防止できるので、ユーザイベントの実行漏れを防止することができる。また、遷移モデル更新部122は、ユーザイベントの対象ノードから根ノードまでの経路に存在しない他の全てのノード及びエッジを取り除くことにより、実質的には同一であるような画面を同一の画面状態として扱うことが可能になる。すなわち、遷移モデル更新部122は、実質的に同一である画面を遷移モデルに重複登録することを防止できるので、過剰なユーザイベントの実行を減らすことができる。
As described above, the transition
なお、遷移モデル更新部122は、木構造に関する情報のみを抽出して文字列化したデータ(例えば、「0、1、2、3、4、5、6*、6*」)に、パッケージ名、アクティビティ名、テキストボックスの入力状態(例えば、全てのテキストボックスに情報が入力されているか否かの2値)等を連結した後にハッシュ化したデータを画面状態情報として生成してもよい。ここでいう「パッケージ名」とは、例えば、アプリケーションを識別するための名称を示す。また、「アクティビティ名」とは、例えば、アプリケーション開発者等が、画面操作を行うモジュールに付与する名称である。なお、異なる画面であっても同一のモジュールによって制御される場合があるので、同一のアクティビティ名が異なる画面に対応する場合もある。例えば、図3(a)〜(d)に示した全ての画面には、同一のアクティビティ名が対応する場合もある。この例に限られず、図3(a)〜(c)に示した画面には同一のアクティビティ名が対応し、図3(d)に示した画面には、図3(a)〜(c)の画面と異なるアクティビティ名が対応する場合もある。
The transition
また、例えば、画面状態情報に、テキストボックスの入力状態(全てのテキストボックスに情報が入力されているか否かの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
図1の説明に戻って、端末制御部130は、実行装置10に対して解析対象アプリケーション11を実行させるとともに、実行装置10からログを取得する。かかる端末制御部130は、イベント特定部131と、イベント実行制御部132と、ログ取得部133とを有する。
Returning to the description of FIG. 1, the
イベント特定部131は、遷移モデル記憶部110に記憶されている遷移モデルのうち、現画面に対応する画面状態において未実行のユーザイベントを特定する。また、イベント特定部131は、現画面に対応する画面状態において未実行のユーザイベントが存在しない場合には、他の画面状態において未実行のユーザイベントを探索する処理を行う。かかるイベント特定部131による処理については、図7及び図8A〜図8Cを用いて後述する。
The
イベント実行制御部132は、イベント特定部131によって特定されたユーザイベントを実行装置10の実行部13に模擬的に実行させる。かかるイベント実行制御部132による処理については、図7及び図8A〜図8Cを用いて後述する。
The event
ログ取得部133は、イベント実行制御部132による制御に応じて実行部13によりユーザイベントが実行されるたびに、実行装置10からログ情報を取得する。例えば、ログ取得部133は、実行装置10から、実行環境に関する情報(アプリケーションの実行ログ、システムログ、通信ログなど)や、実行装置10の表示画面におけるスクリーンショット等をログとして取得する。かかるログ取得部133による処理については、図7及び図8A〜図8Cを用いて後述する。
The
なお、上述してきた遷移モデル生成部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
[解析処理手順]
次に、解析装置100による解析処理の手順について説明する。なお、以下では、最初に、図7を用いて解析処理の流れを説明し、次に、図8A〜図8Cを用いて解析処理の具体例について説明する。図7は、第1の実施形態に係る解析装置100による解析処理手順を示すフローチャートである。
[Analysis processing procedure]
Next, an analysis process procedure performed by the
図7に示すように、解析装置100の構造情報取得部121は、解析対象アプリケーション11により現に表示されている現画面の構造情報を構造情報提供部12から取得する(ステップS101)。
As shown in FIG. 7, the structure information acquisition unit 121 of the
続いて、遷移モデル更新部122は、構造情報取得部121によって取得された構造情報から画面状態情報を生成する(ステップS102)。具体的には、遷移モデル更新部122は、図6を用いて説明したように、ユーザイベントの対象となるノードから根ノードまでの経路に存在しない他の全てのノード及びエッジを取り除くなどして、画面状態情報を生成する。
Subsequently, the transition
続いて、遷移モデル更新部122は、ステップS102において生成した画面状態情報が遷移モデル記憶部110に記憶されているか否かを判定することにより、現画面の画面状態が未知の画面状態であるか否かを判定する(ステップS103)。
Subsequently, the transition
そして、遷移モデル更新部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
すなわち、遷移モデル記憶部110の「ノード」に新たな画面状態が格納される場合には、「エッジ」及び「画面状態情報」も格納されることとなる。これにより、後述するイベント特定部131は、「遷移先ノード」に情報が格納されていない「エッジ」が未実行のユーザイベントであると判定することができる。
That is, when a new screen state is stored in the “node” of the transition
続いて、遷移モデル更新部122は、現画面の画面状態が未知の画面状態でない場合や(ステップS103否定)、ステップS104における処理の後に、前回実行したユーザイベントが存在するか否かを判定する(ステップS105)。すなわち、遷移モデル更新部122は、実行部13によってユーザイベントが実行された後に、ステップS101〜S104における処理が行われたか否かを判定する。
Subsequently, the transition
そして、遷移モデル更新部122は、前回実行したユーザイベントが存在する場合には(ステップS105肯定)、遷移モデル記憶部110に記憶されている遷移モデルに、前回の画面状態から現画面の画面状態に対するエッジを追加する(ステップS106)。具体的には、遷移モデル更新部122は、遷移モデル記憶部110に記憶されている各レコードのうち、前回の画面状態を識別するための情報が「ノード」に格納されているレコードの「遷移先ノード」に現画面の画面状態を識別するための情報を格納する。
Then, when there is a user event executed last time (Yes at Step S105), the transition
続いて、イベント特定部131は、現画面の画面状態において未実行のユーザイベントが存在するか否かを判定する(ステップS107)。具体的には、イベント特定部131は、上記の通り、現画面の画面状態に対応付けて遷移モデル記憶部110に記憶されている「エッジ」のうち、「遷移先ノード」に情報が格納されていない「エッジ」が存在する場合には、未実行のユーザイベントが存在すると判定する。
Subsequently, the
そして、イベント特定部131は、未実行のユーザイベントが存在する場合には(ステップS107肯定)、かかる未実行のユーザイベントを実行装置10に実行させるユーザイベントとして特定する。ここで、イベント特定部131は、未実行のユーザイベントが複数存在する場合には、任意のユーザイベントを実行装置10に実行させるユーザイベントとして特定する。
Then, when there is an unexecuted user event (Yes at Step S107), the
続いて、イベント実行制御部132は、イベント特定部131によって特定されたユーザイベントを実行装置10の実行部13に実行させる(ステップS108)。また、ログ取得部133は、実行部13によってユーザイベントが実行された後に、実行装置10からログを取得して遷移モデル記憶部110に格納する(ステップS108)。このとき、ログ取得部133は、遷移モデル記憶部110に記憶されている各レコードのうち、実行部13によってユーザイベントが実行される前の画面状態が「ノード」に格納されており、かつ、実行部13によって実行されたユーザイベントが「エッジ」に格納されているレコードの「ログ情報」に、実行装置10から取得したログを格納する。
Subsequently, the event
そして、解析装置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
一方、イベント特定部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
続いて、イベント特定部131は、遷移モデル記憶部110に記憶されている遷移モデルを参照することにより、現画面において実行可能なユーザイベント毎に、かかるユーザイベントが実行されることで遷移可能となる画面状態であり、かつ、現画面の画面状態から遷移可能な深さ「i」(ここの例では、i=1)までの画面状態において未実行のユーザイベントの総数(スコア)を算出する(ステップS110)。言い換えれば、イベント特定部131は、現画面において実行可能なユーザイベント毎に、現画面の画面状態からの画面遷移数が「i」までの画面状態において未実行のユーザイベントの総数(スコア)を算出する。
Subsequently, the
続いて、イベント特定部131は、ステップS110において算出したスコアが「0」でないユーザイベントが存在するか否かを判定する(ステップS111)。
Subsequently, the
そして、イベント特定部131は、スコアが「0」でないユーザイベントが存在する場合には(ステップS111肯定)、スコアが最大であるユーザイベントを実行装置10に実行させるユーザイベントとして特定する。
Then, when there is a user event whose score is not “0” (Yes at Step S111), the
続いて、イベント実行制御部132は、実行装置10の実行部13に対して、イベント特定部131によって特定されたユーザイベントを実行させる(ステップS112)。
Subsequently, the event
一方、イベント特定部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
そして、イベント特定部131は、「Dmax」が「i」よりも大きい場合には(ステップS113肯定)、「i」をインクリメントし(ステップS114)、ステップS110の処理に戻る。
If “Dmax” is larger than “i” (Yes at Step S113), the
一方、イベント特定部131は、「Dmax」が「i」よりも大きくない場合には(ステップS113否定)、現画面の画面状態と、解析対象アプリケーション11の実行開始時における画面状態とが同一であるか否かを判定する(ステップS115)。
On the other hand, when “Dmax” is not larger than “i” (No at Step S113), the
そして、イベント特定部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
なお、ログ取得部133は、1個前の画面に戻るユーザイベントが実行された後にも、実行装置10からログを取得して遷移モデル記憶部110に格納してもよい。この場合、ログ取得部133は、遷移モデル記憶部110のエッジに「BACK」といったユーザイベントを格納するとともに、遷移モデル記憶部110のログ情報に実行装置10から取得したログを格納する。
Note that the
また、上記図7の説明では、現画面の画面状態と開始時の画面状態とが同一でない場合に、現画面から1個前の画面に戻るユーザイベントを実行部13に実行させた。しかし、解析装置100は、現画面の画面状態と開始時の画面状態とが同一でない場合であっても、1個前の画面に戻るユーザイベントを実行させることなく、処理を終了してもよい。
In the description of FIG. 7 described above, the
[具体例]
次に、図8A〜図8Cを用いて、解析装置100による解析処理の具体例について説明する。図8A〜図8Cは、第1の実施形態に係る解析処理の具体例を説明するための図である。以下では、図7に示したステップ番号と対応付けながら解析処理の具体例について説明する。また、図8A〜図8Cにおいて、円形は、画面状態を示すノードであり、点線矢印は、未実行のユーザイベントを示すエッジであり、実線矢印は、実行済みのユーザイベントを示すエッジである。
[Concrete example]
Next, a specific example of analysis processing by the
なお、以下の説明において、初期状態は、実行装置10において解析対象アプリケーション11が起動されて、解析対象アプリケーション11により初期画面が表示されている状態であるものとする。また、解析装置100による解析処理の開始時には、遷移モデル記憶部110には各種情報が記憶されていないものとする。
In the following description, the initial state is a state in which the
まず、構造情報取得部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
ここでは、遷移モデル記憶部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
これにより、遷移モデル記憶部110に記憶されている遷移モデルをグラフで表すと、図8A(a)に示す状態となる。図8A(a)は、画面状態v0において未実行のユーザイベントe11及びe12が存在していることを示している。すなわち、遷移モデル記憶部110には、ノード「v0」と、エッジ「e11」と、画面状態v0の画面状態情報とが対応付けて記憶されているとともに、ノード「v0」と、エッジ「e12」と、画面状態v0の画面状態情報とが対応付けて記憶されていることとなる。
Accordingly, when the transition model stored in the transition
続いて、イベント特定部131は、図8A(a)の遷移モデルを参照することにより、未実行のユーザイベントe11及びe12のいずれか一方を実行装置10に実行させるユーザイベントとして特定する。ここでは、イベント特定部131は、ユーザイベントe11を特定したものとする。したがって、イベント実行制御部132は、ユーザイベントe11を実行部13に実行させる(ステップS108)。また、ログ取得部133は、実行部13によりユーザイベントe11が実行された後に、実行装置10からログを取得し、取得したログを、ノード「v0」及びエッジ「e11」に対応する遷移モデル記憶部110のログ情報に格納する(ステップS108)。
Subsequently, the
その後に、端末制御部130は、構造情報取得部121に対して、構造情報を取得するように依頼する。これにより、構造情報取得部121は、構造情報提供部12から現画面の構造情報を取得する(ステップS101)。そして、遷移モデル更新部122は、取得された構造情報に基づいて、現画面の画面状態情報を生成する(ステップS102)。
Thereafter, the
ここでは、現画面の画面状態は、ユーザイベント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
また、遷移モデル更新部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
これにより、遷移モデル記憶部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
続いて、イベント特定部131は、図8A(b)の遷移モデルを参照することにより、実行装置10に実行させるユーザイベントを特定する。ここでは、イベント特定部131は、未実行のユーザイベントe13、e14及びe15のうち、ユーザイベントe13を特定したものとする。したがって、イベント実行制御部132は、ユーザイベントe13を実行部13に実行させる(ステップS108)。なお、以下では、ログ取得部133によるログ取得処理については説明を省略するが、ログ取得部133は、実行部13によりユーザイベントが実行されるたびに、実行装置10からログを取得して遷移モデル記憶部110のログ情報に格納する(ステップS108)。
Subsequently, the
その後に、構造情報取得部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
ここでは、現画面の画面状態は、ユーザイベント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
ただし、遷移モデル更新部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
続いて、イベント特定部131は、現画面の画面状態v1において未実行のユーザイベントe14及びe15のうち、ユーザイベントe14を実行装置10に実行させるユーザイベントとして特定するものとする。したがって、イベント実行制御部132は、ユーザイベントe14を実行部13に実行させる(ステップS108)。
Subsequently, the
その後に、構造情報取得部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
ここでは、現画面の画面状態は、ユーザイベント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
また、遷移モデル更新部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
上述してきた処理を繰り返し行うことにより、イベント実行制御部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
このような順に各ユーザイベントが実行された場合、現画面の画面状態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
ここでは、図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
なお、ここの例において、イベント特定部131は、現画面の画面状態へのユーザイベント(図8B(e)の例では、ユーザイベントe13)については、スコアを算出しない。これは、各ユーザイベントの遷移先の画面状態からの探索において現画面の画面状態を経由することにより、各ユーザイベントのスコアが類似してしまうことを防止するためである。
In this example, the
続いて、イベント特定部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
これにより、画面状態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
これにより、図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
上述してきた処理を繰り返し行うことにより、イベント実行制御部132は、図8C(f)に示すように、画面状態v3においてユーザイベントe21を実行させ、遷移先の画面状態v5においてユーザイベントe23を実行させたものとする。これにより、現画面の画面状態は、画面状態v3となる。その後に、イベント実行制御部132は、画面状態v3においてユーザイベントe22を実行させ、遷移先の画面状態v6においてユーザイベントe29を実行させたものとする。これにより、現画面の画面状態は、画面状態v1となる。
By repeatedly performing the processing described above, the event
そして、ステップ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
このような順に各ユーザイベントが実行された場合、現画面の画面状態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
ここでは、図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
続いて、イベント特定部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
そして、イベント特定部131は、現画面の画面状態v1において実行可能なユーザイベントe14及びe15のそれぞれについて、かかるユーザイベントが実行されることで遷移可能な画面状態であり、かつ、現画面の画面状態v1からの画面遷移数が「2」までの画面状態において未実行のユーザイベントの総数(スコア)を算出する(ステップS110)。ここでは、イベント特定部131は、ユーザイベントe14のスコアとして「3」(画面状態v7における未実行のユーザイベントの総数「1」と、画面状態v8における未実行のユーザイベントの総数「2」との和)を算出する。また、イベント特定部131は、ユーザイベントe15のスコアとして「5」(画面状態v5における未実行のユーザイベントの総数「3」と、画面状態v6における未実行のユーザイベントの総数「2」との和)を算出する。
The
続いて、イベント特定部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
そして、図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
このようにして、解析装置100は、画面状態をノードとするグラフ(遷移モデル)を生成しながら、かかるグラフ(遷移モデル)を巡回するように、未実行のユーザイベントを実行装置10に実行させる。
In this way, the
[第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
すなわち、第1の実施形態に係る解析システム1は、類似する各画面を同一の画面状態として扱った上で画面の遷移モデルを生成しながら、かかる遷移モデルを参照して未実行のユーザイベントを実行装置10に実行させる。これにより、第1の実施形態に係る解析システム1は、実質的に同一である複数の画面において同じようなユーザイベントが実行されることを防止できるので、効率的に解析対象アプリケーション11を実行することができる。さらに、解析システム1は、未実行のユーザイベントを順次実行させるので、解析対象アプリケーション11を網羅的に実行することができる。このようなことから、第1の実施形態に係る解析システム1は、GUI操作を伴うアプリケーションの動的解析においてコードカバレッジを効率的に高めることができる。
That is, the
例えば、第1の実施形態に係る解析システム1を用いた場合、高いコードカバレッジを実現できるので、解析装置100を利用する解析者は、遷移モデル記憶部110に記憶されているログを参照することにより、解析対象アプリケーション11がマルウェアであるか否かを高精度に解析することができる。
For example, when the
また、第1の実施形態に係る解析システム1において、構造情報提供部12は、画面のレイアウトに関するコンポーネント、及び、画面においてユーザイベントに対応するコンポーネントをノードとする木構造により表される構造情報を提供する。また、遷移モデル更新部122は、構造情報を表す木構造のうち、根ノードから、ユーザイベントに対応するコンポーネントに対応するノードまでの経路に含まれるノード群が同一であるか否かに基づいて、既知の画面と現画面との類似性を判定する。
In the
これにより、第1の実施形態に係る解析システム1は、各画面における類似性の判定を高精度に行うことができるので、実質的に異なる画面を同一の画面として扱うことを防止できる。この結果、解析システム1は、ユーザイベントの実行漏れを防止することができる。また、解析システム1は、実質的に同一である画面を遷移モデルに重複登録することを防止できるので、過剰なユーザイベントの実行を減らすことができる。
As a result, the
また、第1の実施形態に係る解析システム1において、解析装置100が有するイベント特定部131は、現画面に対応する画面において未実行のユーザイベントが存在しない場合に、遷移モデルに基づいて、現画面において実行可能なユーザイベント毎に、当該ユーザイベントが実行されることで遷移可能となる画面であり、かつ、現画面からの画面遷移数が最小である画面において未実行のユーザイベントの総数を算出し、算出した総数が最大であるユーザイベントを特定する。また、イベント実行制御部132は、イベント特定部131により特定されたユーザイベントを実行部13に実行させる。
Further, in the
これにより、第1の実施形態に係る解析システム1は、現画面からの画面遷移数が少ない画面であり、かつ、未実行のユーザイベントが多い画面を優先して、未実行のユーザイベントを実行させるので、遷移モデルを効率的に巡回することができる。
As a result, the
また、第1の実施形態に係る解析システム1において、イベント実行制御部132は、イベント特定部131によりユーザイベントが特定されない場合に、現画面から1個前の画面に戻るユーザイベントを実行部13に実行させる。
In the
これにより、第1の実施形態に係る解析システム1は、現画面が画面遷移のない画面状態(完了画面等)になった場合であっても、未実行のユーザイベントを探索することが可能となるので、GUI操作を伴うアプリケーションの動的解析においてコードカバレッジを効率的に高めることができる。
As a result, the
(第2の実施形態)
上述した解析システム1は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、第2の実施形態では、上記の解析システム1の他の実施形態について説明する。
(Second Embodiment)
The
[システム構成]
上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[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
[プログラム]
また、上記実施形態において説明した解析装置100が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、解析装置100が実行する処理をコンピュータが実行可能な言語で記述した解析プログラムを作成することもできる。この場合、コンピュータが解析プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる解析プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された解析プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、一例として、図1に示した解析装置100と同様の機能を実現する解析プログラムを実行するコンピュータの一例を説明する。
[program]
It is also possible to create a program that describes the processing executed by the
図9は、解析プログラムを実行するコンピュータ1000を示す図である。図9に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
FIG. 9 is a diagram illustrating a
メモリ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
ここで、図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
また、上記実施形態で説明した遷移モデル記憶部110が保持する各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1031に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、構造情報取得手順、遷移モデル更新手順、イベント特定手順、イベント実行制御手順、ログ取得手順を実行する。
In addition, various data held by the transition
なお、解析プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、解析プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
Note that the
1 解析システム
10 実行装置
11 解析対象アプリケーション
12 構造情報提供部
13 実行部
100 解析装置
110 遷移モデル記憶部
121 構造情報取得部
122 遷移モデル更新部
131 イベント特定部
132 イベント実行制御部
133 ログ取得部
DESCRIPTION OF
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.
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)
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)
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 |
-
2012
- 2012-10-22 JP JP2012233042A patent/JP5918102B2/en not_active Expired - Fee Related
Patent Citations (1)
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)
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)
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 |