(57)【特許請求の範囲】
【請求項１】
アプリケーションから取得される前記アプリケーションの画面上に配置されている操作可能な部品に関する情報を表す画面構造データに基づいて、前記操作可能な部品の識別情報と、前記操作可能な部品が操作済みであるか否かを示す情報とを対応付けたリストを生成するリスト生成部と、
生成された前記リストに基づいて、前記操作可能な部品における未操作部品を操作する端末操作制御部と、
を備え、
前記画面構造データは、階層構造で画面毎に前記部品に関する情報を表し、
前記端末操作制御部は、第１の画面において所定の条件が満たされた場合には前記第１の画面とは異なる画面である第２の画面に遷移して前記第２の画面における未操作部品を操作し、
前記端末操作制御部は、解析対象のアプリケーションから別のアプリケーションに遷移した場合には前記解析対象のアプリケーションのいずれかの画面を前記第２の画面として遷移する操作を行う状態遷移解析装置。
【請求項２】
前記端末操作制御部は、前記第２の画面として、前記第１の画面へ遷移前の画面に遷移して前記未操作部品を操作する、請求項１に記載の状態遷移解析装置。
【請求項３】
前記端末操作制御部は、前記第２の画面として、前記第１の画面からの遷移後の画面に遷移して前記未操作部品を操作する、請求項１に記載の状態遷移解析装置。
【請求項４】
所定の終了条件が満たされるまでの間に操作できなかった前記未操作部品を、操作がなされた前記操作可能な部品と異なる表示態様で表し、前記端末操作制御部によって遷移された各画面間の遷移関係を表す状態遷移図を作成する状態可視部をさらに備える、請求項１から３のいずれか一項に記載の状態遷移解析装置。
【請求項５】
アプリケーションから取得される前記アプリケーションの画面上に配置されている操作可能な部品に関する情報を表す画面構造データに基づいて、前記操作可能な部品の識別情報と、前記操作可能な部品が操作済みであるか否かを示す情報とを対応付けたリストを生成するリスト生成ステップと、
生成された前記リストに基づいて、前記操作可能な部品における未操作部品を操作する端末操作制御ステップと、
を有し、
前記画面構造データは、階層構造で画面毎に前記部品に関する情報を表し、
前記端末操作制御ステップにおいて、第１の画面において所定の条件が満たされた場合には前記第１の画面とは異なる画面である第２の画面に遷移して前記第２の画面における未操作部品を操作し、
前記端末操作制御ステップにおいて、解析対象のアプリケーションから別のアプリケーションに遷移した場合には前記解析対象のアプリケーションのいずれかの画面を前記第２の画面として遷移する操作を行う状態遷移解析方法。
【請求項６】
コンピュータに、
アプリケーションから取得される前記アプリケーションの画面上に配置されている操作可能な部品に関する情報を表す画面構造データに基づいて、前記操作可能な部品の識別情報と、前記操作可能な部品が操作済みであるか否かを示す情報とを対応付けたリストを生成するリスト生成ステップと、
生成された前記リストに基づいて、前記操作可能な部品における未操作部品を操作する端末操作制御ステップと、
を実行させ、
前記画面構造データは、階層構造で画面毎に前記部品に関する情報を表し、
前記端末操作制御ステップにおいて、第１の画面において所定の条件が満たされた場合には前記第１の画面とは異なる画面である第２の画面に遷移して前記第２の画面における未操作部品を操作させ、
前記端末操作制御ステップにおいて、解析対象のアプリケーションから別のアプリケーションに遷移した場合には前記解析対象のアプリケーションのいずれかの画面を前記第２の画面として遷移する操作を行うためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションの動作状態を解析する技術に関する。
【背景技術】
【０００２】
従来、アプリケーションにおいて、不正に情報送信が行われるかを検知するために動的解析技術の開発が盛んに行われている。動的解析技術における大きな課題として、解析の効率的な自動化と自動解析が及ばなかった箇所の把握が存在する。このような課題に対して、従来、端末上で動作するアプリケーションの実行状態を把握し、未実行箇所の実行を促す技術及び動作した箇所の計測技術が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−８５７６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の自動化技術では、端末上で動作するアプリケーションの画面状態の遷移が一定以上進むと進行が停滞してしまうため広範囲の解析ができないという問題があった。
上記事情に鑑み、本発明は、端末上で動作するアプリケーションの画面状態遷移の解析をより広範囲に実行することができる技術の提供を目的としている。
【課題を解決するための手段】
【０００５】
本発明の一態様は、アプリケーションから取得される前記アプリケーションの画面上に配置されている操作可能な部品に関する情報を表す画面構造データに基づいて、前記操作可能な部品の識別情報と、前記操作可能な部品が操作済みであるか否かを示す情報とを対応付けたリストを生成するリスト生成部と、生成された前記リストに基づいて、前記操作可能な部品における未操作部品を操作する端末操作制御部と、を備え、前記端末操作制御部は、所定の条件が満たされた場合には前記第１の画面とは異なる画面である第２の画面に遷移して前記第２の画面における未操作部品を操作する状態遷移解析装置である。
【０００６】
本発明の一態様は、上記の状態遷移解析装置であって、前記端末操作制御部は、前記第２の画面として、前記第１の画面へ遷移前の画面に遷移して前記未操作部品を操作する。
【０００７】
本発明の一態様は、上記の状態遷移解析装置であって、前記端末操作制御部は、前記第２の画面として、前記第１の画面からの遷移後の画面に遷移して前記未操作部品を操作する。
【０００８】
本発明の一態様は、上記の状態遷移解析装置であって、所定の終了条件が満たされるまでの間に操作できなかった前記未操作部品を、操作がなされた前記操作可能な部品と異なる表示態様で表し、前記端末操作制御部によって遷移された各画面間の遷移関係を表す状態遷移図を作成する状態可視部をさらに備える。
【０００９】
本発明の一態様は、アプリケーションから取得される前記アプリケーションの画面上に配置されている操作可能な部品に関する情報を表す画面構造データに基づいて、前記操作可能な部品の識別情報と、前記操作可能な部品が操作済みであるか否かを示す情報とを対応付けたリストを生成するリスト生成ステップと、生成された前記リストに基づいて、前記操作可能な部品における未操作部品を操作する端末操作制御ステップと、を有し、前記端末操作制御ステップにおいて、第１の画面において所定の条件が満たされた場合には前記第１の画面とは異なる画面である第２の画面に遷移して前記第２の画面における未操作部品を操作する状態遷移解析方法である。
【００１０】
本発明の一態様は、コンピュータに、アプリケーションから取得される前記アプリケーションの画面上に配置されている操作可能な部品に関する情報を表す画面構造データに基づいて、前記操作可能な部品の識別情報と、前記操作可能な部品が操作済みであるか否かを示す情報とを対応付けたリストを生成するリスト生成ステップと、生成された前記リストに基づいて、前記操作可能な部品における未操作部品を操作する端末操作制御ステップと、を実行させ、前記端末操作制御ステップにおいて、第１の画面において所定の条件が満たされた場合には前記第１の画面とは異なる画面である第２の画面に遷移して前記第２の画面における未操作部品を操作させるためのコンピュータプログラムである。
【発明の効果】
【００１１】
本発明により、端末上で動作するアプリケーションの画面状態遷移の解析をより広範囲に実行することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明のアプリケーション状態遷移解析システム１００の機能構成を示す図である。
【図２】状態遷移解析装置３０の機能構成を表す概略ブロック図である。
【図３】画面構造データの一例を示す図である。
【図４】操作対象リストの一例を示す図である。
【図５】状態遷移図の具体例を示す図である。
【図６】本実施形態における状態遷移解析装置３０の処理の流れを示すフローチャートである。
【図７】本実施形態における状態遷移解析装置３０の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の一実施形態を、図面を参照しながら説明する。
図１は、本発明のアプリケーション状態遷移解析システム１００の機能構成を示す図である。アプリケーション状態遷移解析システム１００は、アプリケーション管理装置１０、通信装置２０及び状態遷移解析装置３０を備える。アプリケーション管理装置１０、通信装置２０及び状態遷移解析装置３０は、ネットワーク４０を介して通信可能に接続される。なお、通信装置２０と状態遷移解析装置３０とは、ＵＳＢ（Universal Serial Bus）を介して接続されてもよいし、近距離接続（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＮＦＣ（Near Field Communication）などによる接続）であってもよい。
アプリケーション管理装置１０は、複数のアプリケーションを保持する。アプリケーション管理装置１０は、通信装置２０からの要求に応じて、保持しているアプリケーションを通信装置２０に配信する。ここで、アプリケーションとは、通信装置２０において実行されるソフトウェアである。
【００１４】
通信装置２０は、例えば携帯電話、スマートフォン、タブレット装置、パーソナルコンピュータ、ノートパソコン、ゲーム機器等の情報処理装置を用いて構成される。通信装置２０は、ユーザからの指示に応じて、アプリケーション管理装置１０からアプリケーションをダウンロードする。また、通信装置２０は、状態遷移解析装置３０の制御に従って、ダウンロードしたアプリケーションを実行する。
状態遷移解析装置３０は、通信装置２０を制御して、通信装置２０にダウンロードされたアプリケーションの動作状態を解析する。
ネットワーク４０は、どのように構成されたネットワークでもよい。ネットワーク４０は、例えばインターネットを用いて構成されてもよい。
【００１５】
図２は、状態遷移解析装置３０の機能構成を表す概略ブロック図である。状態遷移解析装置３０は、バスで接続されたＣＰＵ（Central Processing Unit）やメモリや補助記憶装置などを備え、状態解析プログラムを実行する。状態解析プログラムの実行によって、状態遷移解析装置３０は、情報取得部３０１、リスト生成部３０２、端末操作制御部３０３、記憶部３０４及び状態可視部３０５を備える装置として機能する。なお、状態遷移解析装置３０の各機能の全て又は一部は、ＡＳＩＣ（Application Specific Integrated Circuit）やＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されてもよい。また、状態解析プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、状態解析プログラムは、電気通信回線を介して送受信されてもよい。
【００１６】
情報取得部３０１は、動作状態の解析対象となるアプリケーション（以下、「解析対象アプリ」という。）から、解析利用情報を取得する。解析利用情報とは、解析対象アプリの動作状態の解析に利用される情報であり、例えばアプリＩＤ、画面ＩＤ及び画面構造データである。アプリＩＤは、アプリケーションを識別するための識別情報を表す。画面ＩＤは、通信装置２０上で表示されている画面の識別ＩＤを表す。画面構造データは、アプリケーションの画面構造に関するデータであり、例えば画面を構成している部品の種類、部品間の階層構造及び部品の識別ＩＤなどを含む。ここで、画面を構成している部品とは、例えばボタン、テキストボックス、チェックボックスなどである。なお、画面構造データは、既存の技術を用いて取得可能である。例えば、画面構造データは、ｕｉａｕｔｏｍａｔｏｒツールのｄｕｍｐオプションによって取得できる。このオプションを使用すると、ＸＭＬ（Extensible Markup Language）形式で階層構造や部品ごとの属性（例えば、画面上での配置座標、クリック可否フラグ及びテキスト値など）が取得可能である。図３に画面構造データの一例を示す。図３は、画面構造データの一例を示す図である。図３の＜ｈｉｅｒａｒｃｈｙ＞間に示される文字列が階層構造などを表している。情報取得部３０１は、取得した解析利用情報をリスト生成部３０２に出力する。
【００１７】
リスト生成部３０２は、情報取得部３０１から出力された解析利用情報を入力する。リスト生成部３０２は、入力された解析利用情報に基づいて操作対象リストを生成する。操作対象リストは、解析利用情報に含まれる部品の識別ＩＤのうち操作可能な部品（例えば、クリック可否フラグが可である部品）の識別ＩＤと、操作済みであるか否かを示す項目とが対応付けられたリストである。リスト生成部３０２は、解析利用情報と、生成した操作対象リストを記憶部３０４に記憶させる。図４に操作対象リストの一例を示す。
【００１８】
図４は、操作対象リストの一例を示す図である。
図４に示されるように、操作対象リストには識別ＩＤと、操作済みであるか否かを示す項目とが対応付けられている。ここで、操作済みであるか否かを示す項目には、“ｔｒｕｅ”又は“ｆａｌｓｅ”のいずれかが記録されている。“ｔｒｕｅ”は、対応する識別ＩＤで識別される部品が操作済みであることを示す。“ｆａｌｓｅ”は、対応する識別ＩＤで識別される部品が操作済みではないことを示す。なお、操作対象リスト生成時には、各識別ＩＤに対応する操作済みであるか否かを示す項目には“ｆａｌｓｅ”の値が記録される。例えば、図４に示される例では、識別ＩＤ“０−０−０−０−０−１−０−１−２−０”で識別される部品が操作済みであることが示されている。
【００１９】
図２に戻って、状態遷移解析装置３０の説明を続ける。
端末操作制御部３０３は、記憶部３０４に記憶されている操作対象リストに基づいて、操作可能な部品における操作済みではない部品（以下、「未操作部品」という。）を操作する。端末操作制御部３０３は、未操作部品を操作後、操作した部品に対応する操作対象リストの操作済みであるか否かを示す項目の値を“ｆａｌｓｅ”から“ｔｒｕｅ”に更新する。また、端末操作制御部３０３は、画面の画像データを、情報取得部３０１によって取得される画面ＩＤに対応付けて記憶部３０４に記憶させる。なお、画面の画像データは、画面全体の画像データであってもよいし、操作した部品の画像データであってもよい。さらに、端末操作制御部３０３は、通信装置２０上で現在表示されている画面において所定の条件が満たされた場合、現在の画面（第１の画面）とは異なる画面（第２の画面）に遷移して遷移後の画面における未操作部品を操作する。ここで、所定の条件とは、例えば現在の画面における未操作部品がなくなった場合や、現在の画面へ遷移前の画面に遷移させるボタン（例えば、戻るボタン）が操作された場合や、現在の画面からの遷移後の画面に遷移させるボタン（例えば、進むボタン）が操作された場合などである。そして、端末操作制御部３０３は、遷移後の画面において上記と同様に、未操作部品を操作する処理を繰り返し実行する。端末操作制御部３０３は、このような処理を繰り返し実行し、解析終了条件が満たされると状態可視部３０５に対して処理を実行するように指示する。解析終了条件は、解析対象アプリに対する解析を終了するための条件であり、例えば解析対象アプリにおける未操作部品がなくなった場合、装置におけるホーム画面に遷移した場合、所定の回数繰り返し行われた場合などが挙げられる。また、端末操作制御部３０３は、現在の画面が別の画面に遷移した場合、現在の画面から遷移先の画面へ遷移する際に操作した部品（以下、「遷移部品」という。）の識別ＩＤ、遷移先の画面ＩＤ及び遷移先の画面データを遷移前の画面ＩＤ及び遷移前の画面データに対応付けた遷移データを記憶部３０４に記憶させる。例えば、現在の画面において進むボタンを操作して別の画面に遷移したとすると、端末操作制御部３０３は、遷移先の画面ＩＤ、遷移先の画面データ及び遷移部品（例えば、進むボタン）の識別ＩＤを遷移前の画面ＩＤ及び遷移前の画面データに対応付けた遷移データを記憶部３０４に記憶させる。
【００２０】
記憶部３０４は、部品情報記憶部３０４１及び状態情報記憶部３０４２を用いて構成される。部品情報記憶部３０４１は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。部品情報記憶部３０４１は、操作対象リストを記憶する。状態情報記憶部３０４２は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。状態情報記憶部３０４２は、画面データ、解析利用情報及び遷移データなどを記憶する。
【００２１】
状態可視部３０５は、記憶部３０４に記憶されている情報に基づいて、所定の終了条件が満たされるまでの間に操作できなかった未操作部品を、操作がなされた部品と異なる表示態様で表し、各画面間の遷移関係を表す状態遷移図を作成することによって可視化する。状態可視部３０５は、例えば不図示の出力装置に可視化の結果を出力してもよいし、自装置に備えられる出力装置に可視化の結果を出力してもよい。出力装置は、例えば液晶ディスプレイ、有機ＥＬ（Electro Luminescence）ディスプレイ、ＣＲＴ（Cathode Ray Tube）ディスプレイ等の画像表示装置であってもよい。また、各画面間の遷移関係は、遷移データに基づいて得られる。
【００２２】
状態可視部３０５の具体的な処理の一例について説明する。まず、状態可視部３０５は、記憶部３０４に記憶されている画面の情報（例えば、画面ＩＤ）、操作可能な部品の情報（例えば、操作可能な部品の識別ＩＤ）及び遷移データ（例えば、どの画面ＩＤからどの画面ＩＤに遷移するのか、遷移するためのトリガーとなる部品の識別ＩＤなど）をＤＯＴ言語に変換する。ここでは、画面をノードとして扱い、遷移するトリガーとなった部品（例えば、進むボタン、戻るボタンなど）の情報をエッジとして扱う。例えば、ノード１からノード２に遷移する場合、状態可視部３０５はノード１からノード２に遷移すること（ノード１→ノード２）及びノード１からノード２に遷移するためのエッジの関係をＤＯＴ言語で表す。ここで、状態可視部３０５は、ノード１、ノード２及びエッジを画像データで表すような記述も行う。状態可視部３０５は、遷移データに基づいて、上記のような各画面間の遷移関係を全てＤＯＴ言語で表す。その後、状態可視部３０５は、状態情報記憶部３０４２に記憶されている画面データを、ＤＯＴ言語で表される対応する箇所に用いることによって状態遷移図を作成する。
【００２３】
なお、状態可視部３０５における可視化処理には、以下の処理が含まれる。
・未実行部品の表示態様を変える
・画面及び遷移のトリガーとなる部品の画像埋め込み
・画面情報毎のサブグループ化
・他のアプリケーションへの遷移状態の表示
・操作可能部品に対する操作済み割合の表示
・通信装置２０の画面方向及び解像度に合わせた表示
【００２４】
図５は、状態遷移図の具体例を示す図である。
図５に示される例では、複数の画面の遷移関係が示されている。例えば、画面５０においてＯＫボタンが操作されると画面５１に遷移することが示されている。また、画面５０においてキャンセルボタンが操作されると画面５２に遷移することが示されている。また、画面５１においてＯＫボタンが操作されると、画面５０に遷移することが示されている。また、画面５２に遷移すると、操作可能部品が無いため解析処理が終了することが示されている。また、画面５０では２つの部品（設定２及び設定３のボタン）が操作できなかったことが網掛け表示（図５の領域５３）で示されている。
【００２５】
図６及び図７は、本実施形態における状態遷移解析装置３０の処理の流れを示すフローチャートである。図６及び図７に示される処理は、状態遷移解析装置３０に対してアプリケーションの解析指示がなされた場合に実行される。
端末操作制御部３０３は、通信装置２０を制御して、解析対象アプリを起動する。解析対象アプリが起動されると、情報取得部３０１は通信装置２０上で起動された解析対象アプリの初期状態を把握する（ステップＳ１０１）。ここで、初期状態とは、アプリケーションが起動された時点の画面を表す。具体的な処理として、情報取得部３０１は、起動された時点の画面において、解析対象アプリのアプリＩＤと、画面ＩＤと、画面の画面構造データとを含む解析利用情報を取得する。情報取得部３０１は、取得した解析利用情報をリスト生成部３０２に出力する。次に、リスト生成部３０２は、情報取得部３０１から出力された解析利用情報に含まれる画面構造データに基づいて、操作対象リストを生成する。リスト生成部３０２は、生成した操作対象リストを部品情報記憶部３０４１に記憶させる。また、リスト生成部３０２は、情報取得部３０１から出力された解析利用情報を状態情報記憶部３０４２に記憶させる。そして、端末操作制御部３０３は、初期状態の画面の画像データを取得する。端末操作制御部３０３は、取得した画像データを、情報取得部３０１によって取得された画面ＩＤに対応付けて部品情報記憶部３０４１に記憶させる。
【００２６】
状態遷移解析装置３０は、解析終了条件が満たされたか否か判定する（ステップＳ１０２）。解析終了条件が満たされていない場合（ステップＳ１０２−ＮＯ）、端末操作制御部３０３は部品情報記憶部３０４１に記憶されている現在の画面において取得された解析利用情報に対応する操作対象リストに基づいて通信装置２０を操作する（ステップＳ１０３）。具体的には、まず端末操作制御部３０３は、操作対象リストに基づいて、未操作部品の識別ＩＤを取得する。次に、端末操作制御部３０３は、取得した識別ＩＤの中から操作対象の部品に対応する識別ＩＤを選択する。例えば、端末操作制御部３０３は、取得した識別ＩＤの中から一番上の識別ＩＤを選択する。そして、端末操作制御部３０３は、状態情報記憶部３０４２に記憶されている解析利用情報を参照し、選択した識別ＩＤに対応する操作可能部品の配置座標位置を取得して対応する部品を操作する。その後、端末操作制御部３０３は、操作した部品に対応する識別ＩＤと対応付けられている操作済みであるか否かを示す項目を操作済みであることを示す“ｔｒｕｅ”に更新する（ステップＳ１０４）。
【００２７】
情報取得部３０１は、解析対象アプリの現在の画面を把握する（ステップＳ１０５）。例えば、ステップＳ１０３の処理によって解析対象アプリの画面が変更される可能性もある。つまり、ステップＳ１０３の処理によって操作されたボタンなどによって、ステップＳ１０３の処理前の画面から別の画面に遷移している可能性もある。そこで、情報取得部３０１は、再度、解析対象アプリの現在の画面を把握する。具体的な処理として、情報取得部３０１は、現在表示されている画面において、解析対象アプリのアプリＩＤと、画面ＩＤと、画面の画面構造データとを含む解析利用情報を取得する。情報取得部３０１は、取得した解析利用情報をリスト生成部３０２に出力する。次に、リスト生成部３０２は、情報取得部３０１から出力された解析利用情報に含まれる画面構造データに基づいて、操作対象リストを生成する。リスト生成部３０２は、生成した操作対象リストを部品情報記憶部３０４１に記憶させる。
【００２８】
その後、端末操作制御部３０３は、記憶部３０４に記憶されている情報に基づいて、第１の状態判定を行う（ステップＳ１０６）。第１の状態判定では、現在の画面が新規であるか既存であるかが判定される。具体的には、まず端末操作制御部３０３は、直前のステップＳ１０３の実行前に取得された解析利用情報に含まれるアプリＩＤと、画面ＩＤと、画面の画面構造データとを結合してハッシュ化したハッシュ値（以下、「操作前ハッシュ値」という。）と、直前のステップＳ１０３の実行後に取得された解析利用情報に含まれるアプリＩＤと、画面ＩＤと、画面の画面構造データとを結合してハッシュ化したハッシュ値（以下、「操作後ハッシュ値」という。）とを比較する。次に、端末操作制御部３０３は、比較の結果、操作前ハッシュ値と操作後ハッシュ値とが一致する場合、現在の画面が既存であると判定する。一方、端末操作制御部３０３は、比較の結果、操作前ハッシュ値と操作後ハッシュ値とが一致しない場合、現在の画面が新規であると判定する。第１の状態判定において新規であると判定された場合（ステップＳ１０６−新規）、端末操作制御部３０３は現在の画面における画面の画面データを画面ＩＤに対応付けて状態情報記憶部３０４２に記憶させる（ステップＳ１０７）。
一方、第１の状態判定において既存であると判定された場合（ステップＳ１０６−既存）、又は、ステップＳ１０７の処理が終了すると、端末操作制御部３０３は第２の状態判定を行う（ステップＳ１０８）。
【００２９】
第２の状態判定では、現在の画面が一致であるか相違であるかが判定される。具体的には、端末操作制御部３０３は、ステップＳ１０６の処理において現在の画面が新規であると判定した場合には現在の画面を相違であると判定する。一方、端末操作制御部３０３は、ステップＳ１０６の処理において現在の画面が既存であると判定した場合には現在の画面を一致であると判定する。第２の状態判定において相違である判定された場合（ステップＳ１０８−相違）、状態遷移解析装置３０は切り替え後の画面を維持したまま以降の動作を行う（ステップＳ１０９）。端末操作制御部３０３は、部品情報記憶部３０４１に記憶されている操作対象リストのうち現在の画面に対応する操作対象リストを参照し、現在の画面で未操作部品があるか否か判定する（ステップＳ１１０）。
【００３０】
未操作部品がある場合（ステップＳ１１０−ＹＥＳ）、端末操作制御部３０３は現在の画面で未操作部品について、ステップＳ１０３以降の処理を実行する。一方、現在の画面で未操作部品がない場合（ステップＳ１１０−ＮＯ）、端末操作制御部３０３は現在の画面より１つ前の画面、つまり現在の画面に遷移する前の画面に遷移可能であるか否か判定する（ステップＳ１１１）。具体的には、端末操作制御部３０３は、現在の画面において１つ前の画面に遷移させる部品（例えば、戻るボタンなど）があるか否か判定する。１つ前の画面に遷移させる部品がある場合、端末操作制御部３０３は１つ前の画面に遷移可能であると判定する。一方、１つ前の画面に遷移させる部品がない場合、端末操作制御部３０３は１つ前の画面に遷移可能ではないと判定する。
【００３１】
１つ前の画面に遷移可能である場合（ステップＳ１１１−ＹＥＳ）、端末操作制御部３０３は１つ前の画面に遷移させる部品を操作して現在の画面を１つ前の画面に切り替える（ステップＳ１１２）。その後、ステップＳ１１０以降の処理が実行される。
一方、１つ前の画面に遷移可能ではない場合（ステップＳ１１１−ＮＯ）、端末操作制御部３０３は現在の画面より１つ先の画面、つまり現在の画面からの遷移先の画面に遷移可能であるか否か判定する（ステップＳ１１３）。具体的には、端末操作制御部３０３は、現在の画面において１つ先の状態に遷移させる部品（例えば、進むボタン、次へボタンなど）があるか否か判定する。１つ先の画面に遷移させる部品がある場合、端末操作制御部３０３は１つ先の画面に遷移可能であると判定する。一方、１つ先の画面に遷移させる部品がない場合、端末操作制御部３０３は１つ先の画面に遷移可能ではないと判定する。
【００３２】
１つ先の画面に遷移可能である場合（ステップＳ１１３−ＹＥＳ）、端末操作制御部３０３は１つ先の画面に遷移させる部品を操作して現在の画面を１つ先の画面に切り替える（ステップＳ１１４）。その後、ステップＳ１１０以降の処理が実行される。
一方、１つ先の画面に遷移可能ではない場合（ステップＳ１１３−ＮＯ）、端末操作制御部３０３はステップＳ１０２の処理を実行する。
また、ステップＳ１０２の処理において解析終了条件が満たされた場合（ステップＳ１０２−ＹＥＳ）、端末操作制御部３０３は状態可視部３０５に対して可視化の実行を指示する。状態可視部３０５は、端末操作制御部３０３からの指示に応じて、記憶部３０４に記憶されている情報を用いて可視化を行う（ステップＳ１１５）。
【００３３】
以上のように構成された状態遷移解析装置３０によれば、端末上で動作するアプリケーションの画面状態遷移の解析をより広範囲に実行することが可能になる。以下、この効果について詳細に説明する。
状態遷移解析装置３０は、まず現在の画面において未操作部品を探索し、現在の画面における未操作部品を全て操作する。その後、状態遷移解析装置３０は、現在の画面において所定の条件が満たされると（例えば、未操作部品がなくなると）、現在の画面とは異なる画面に遷移して未操作部品を探索する。このように、状態遷移解析装置３０は、所定の条件が満たされるたびに現在の画面とは異なる画面に遷移して未操作部品を探索する。そして、状態遷移解析装置３０は、探索した未操作部品を操作する。これにより、状態遷移解析装置３０は、様々な画面へ遷移して各画面における部品の状態を解析することができる。そのため、端末上で動作するアプリケーションの画面状態遷移の解析をより広範囲に実行することが可能になる。
【００３４】
また、状態遷移解析装置３０は、所定の条件として現在の画面へ遷移前の画面に遷移させる条件が満たされると、現在の画面とは異なる画面として現在の画面への遷移前の画面に遷移して未操作部品を探索する。本実施形態では、階層構造で処理が行なわれるため、現在の画面の遷移前の画面に遷移する度に上位の画面に対する探索ができる。これにより、様々な画面へ遷移して操作可能部品を探索することができる。そのため、端末上で動作するアプリケーションの画面状態遷移の解析をより広範囲に実行することが可能になる。
また、状態遷移解析装置３０は、所定の条件として現在の画面からの遷移後の画面に遷移させる条件が満たされると、現在の画面とは異なる画面として現在の画面からの遷移後の画面に遷移して操作可能部品を探索する。このように、状態遷移解析装置３０は、現在の画面からの遷移後の画面に遷移するように動作する。本実施形態では、階層構造で処理が行なわれるため、現在の画面よりも下位の画面として多くの画面が存在する場合には様々な画面へ遷移して未操作部品を探索することができる。そのため、端末上で動作するアプリケーションの画面状態遷移の解析をより広範囲に実行することが可能になる。
【００３５】
また、状態遷移解析装置３０は、操作可能な部品のうち操作できなかった部品に対しては、操作できなかった部品の領域を他の領域と異なる表示態様で表示させるとともに、各画面間の繊維関係を表す状態遷移図を描く。これにより、一見してどの画面においてどの部品が操作できなかったのかを把握することができる。
【００３６】
＜変形例＞
本実施形態では、図６のステップＳ１１１の処理において１つ前の画面に遷移可能ではない場合にはステップＳ１１２の処理を実行する構成を示したが、端末操作制御部３０３は以下のような処理を行うように構成されてもよい。例えば、端末操作制御部３０３は、１つ前の画面に遷移させる部品がない場合、別の画面に遷移可能な部品を操作してもよい。
このように構成されることによって、１つ前の画面に遷移できない場合であっても別の画面に遷移することで継続して動作状態を解析することができる。
また、端末操作制御部３０３は、一定の回数、現在の画面における未操作部品の操作を実施しても画面が変わらない場合には、操作済みであっても現在の画面に対応する操作対象リストを参照して最初から各部品を操作するように構成されてもよい。
端末操作制御部３０３は、別のアプリケーションに遷移した場合には解析対象アプリに戻るような操作を実行してもよい。このように構成される場合、端末操作制御部３０３は、ステップＳ１０１の処理で取得されるアプリＩＤを基に、別アプリケーションへの遷移を判断する。そして、別アプリケーションへ遷移したと判断した場合、端末操作制御部３０３は解析対象アプリのいずれかの画面になるまで前の画面への遷移するように通信装置２０を操作する。
【００３７】
端末操作制御部３０３は、現在の画面において未操作部品が無い場合（例えば、現在の画面において操作対象リストに記録されている部品が全て“ｔｒｕｅ”な場合や、現在の画面において未操作部品が存在しない場合）、状態情報記憶部３０４２に記憶されている階層構造の情報に基づいて、現在の画面よりも下位の画面において未操作部品を操作するように構成されてもよい。現在の画面よりも下位の画面とは、階層構造において現在の画面よりも階層の低い画面を表す。このように構成される場合、端末操作制御部３０３は、現在の画面よりも下位の画面において未操作部品がある画面を探索する。そして、端末操作制御部３０３は、現在の画面よりも下位の画面において未操作部品がある画面がある場合には、その画面へ遷移するためのトリガーとなる操作を実行し、強制的にその画面に遷移させる。そして、端末操作制御部３０３は、遷移した画面において未操作部品に対する操作が全て終了すると、遷移前の画面に遷移して、同様に巡回する。
【００３８】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００３９】
１０…アプリケーション管理装置，  ２０…通信装置，  ３０…状態遷移解析装置，  ４０…ネットワーク，  ３０１…情報取得部，  ３０２…リスト生成部，  ３０３…端末操作制御部，  ３０４…記憶部，  ３０４１…部品情報記憶部，  ３０４２…状態情報記憶部，  ３０５…状態可視部
【図１】
0006755661.tif 000002
【図２】
0006755661.tif 000003
【図３】
0006755661.tif 000004
【図４】
0006755661.tif 000005
【図５】
0006755661.tif 000006
【図６】
0006755661.tif 000007
【図７】
0006755661.tif 000008