JP2013149026A - Information processing apparatus, control method, and program thereof - Google Patents
Information processing apparatus, control method, and program thereof Download PDFInfo
- Publication number
- JP2013149026A JP2013149026A JP2012008207A JP2012008207A JP2013149026A JP 2013149026 A JP2013149026 A JP 2013149026A JP 2012008207 A JP2012008207 A JP 2012008207A JP 2012008207 A JP2012008207 A JP 2012008207A JP 2013149026 A JP2013149026 A JP 2013149026A
- Authority
- JP
- Japan
- Prior art keywords
- test
- application
- test case
- information
- resource usage
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、アプリケーションを作成することが可能な情報処理装置、制御方法、およびそのプログラムに関する。 The present invention relates to an information processing apparatus capable of creating an application, a control method, and a program thereof.
従来、画像形成装置においては、リアルタイムOS上にさらに別の組み込みシステム向けの実行環境(例えばJava(登録商標)など)を構築することを可能にしている。さらには、画像形成装置の制御を行うことのできるアプリケーションを外部からダウンロードして、後から機能を追加可能なアプリケーションプラットフォームが搭載されるようになった。 Conventionally, in an image forming apparatus, it is possible to build an execution environment (for example, Java (registered trademark)) for another embedded system on a real-time OS. Furthermore, an application platform that can download an application that can control the image forming apparatus from the outside and add functions later can be installed.
また、このようなアプリケーションプラットフォーム上で動作するアプリケーションを開発するための開発環境も提供されている。たとえば、アプリケーションのビルドからテスト結果の取得まで自動的に行い、アプリケーションプラットフォームの状態を記憶して、デバッグ作業を容易にするような仕組みが特許文献1に開示されている。
A development environment for developing an application that operates on such an application platform is also provided. For example,
また、このような画像形成装置では、アプリケーションプラットフォーム上で動作するアプリケーションのデバッグのためのデバッグ用ファームウェアも提供されている。デバッグ用ファームウェアを使うと、アプリケーションの実行速度は著しく遅くなるが、より詳細な内部情報を取得可能になるため、詳細な解析に有用である。例えば、ヒープダンプに関する情報を取得することが可能である。 In such an image forming apparatus, debugging firmware for debugging an application operating on the application platform is also provided. When using debug firmware, the execution speed of the application is remarkably slow, but more detailed internal information can be acquired, which is useful for detailed analysis. For example, it is possible to obtain information regarding a heap dump.
一方、ネットワークを介してデバイスと通信し、デバイスのリソース使用量(例えばメモリ使用量など)をリアルタイムに監視するためのツールが存在する。このようなツールと前述の開発環境を組み合わせることで、アプリケーションの自動テストを行いながらリソースの監視を行うことができるようになり、一連の自動テストを実行した時のリソースリークの検出が可能となる。ここで、リソースリークとはプログラム上の欠陥の一種で、開放すべきリソースを解放しない欠陥のことである。例えば、ファイルを使い終わってもファイルをクローズしないファイルディスクリプタリークや、メモリを使い終わってもメモリを解放しないメモリリークなどがある。リソースリークが存在するとそのうちリソースが枯渇してアプリケーションが動作不能な状態に陥る。またメモリリークの原因分析を行うためにヒープダンプを用いて詳細なデータを取得して原因を絞り込む技術が公開されている(特許文献2)。 On the other hand, there is a tool for communicating with a device via a network and monitoring the resource usage (for example, memory usage) of the device in real time. By combining these tools with the development environment described above, it becomes possible to monitor resources while performing automated testing of applications, and it is possible to detect resource leaks when a series of automated tests are executed. . Here, the resource leak is a kind of defect on the program, and is a defect that does not release a resource to be released. For example, there are a file descriptor leak that does not close the file even after using the file, and a memory leak that does not release the memory even after using the memory. If there is a resource leak, the resource will be exhausted and the application will become inoperable. A technique for narrowing down the cause by acquiring detailed data using a heap dump in order to analyze the cause of memory leak is disclosed (Patent Document 2).
しかしながら、前述の方法ではリソースリークが発生しているという事実は確認できても、どのようなテストを実行した時にリソースのリークが発生しているのかが認識しづらいという問題があった。 However, although the fact that a resource leak has occurred can be confirmed by the above-described method, there is a problem that it is difficult to recognize what kind of test the resource leak has occurred.
また、アプリケーションのテスト実行中にアプリケーションの処理とは非同期にジョブ実行などが実行されることがある。このため、プラットフォーム要因で一時的にリソースを消費しているだけなのかアプリケーションがリソースリークしているのかが判別しづらいという問題もあった。 In addition, during application test execution, job execution may be executed asynchronously with application processing. For this reason, there is also a problem that it is difficult to determine whether a resource is temporarily leaked due to a platform factor or whether an application has a resource leak.
また、デバッグ用ファームウェアで解析を行う場合、画像形成装置のCPUやメモリは一般的なPCと比べて貧弱であるため、実行に非常に時間がかかり、常時デバッグ用ファームウェアを利用してデバッグを行うことは現実的でないという問題があった。 Also, when analyzing with the debug firmware, the CPU and memory of the image forming apparatus are poor compared to a general PC, so it takes a very long time to execute, and debugging is always performed using the debug firmware. There was a problem that this was not realistic.
本願発明の目的は、上述した課題の内、少なくとも1つの課題を解決するための情報処理装置を提供することにある。 An object of the present invention is to provide an information processing apparatus for solving at least one of the above-described problems.
本発明の一実施形に係る情報処理装置は、提供されたアプリケーションをインストールして実行可能な装置と通信可能な情報処理装置であって、前記装置で実行するためのアプリケーションを作成する指示を受けたことに応じて、前記アプリケーションの機能を実現するモジュールと、前記モジュールにより実現される機能をテストするためのテストケースと、を含むテストアプリケーションを作成する作成手段と、作成された前記テストアプリケーションを前記装置へ送信するとともに、前記テストケースの処理の開始を指示する指示手段と、前記指示の後、前記テストアプリケーションの動作中におけるリソース使用量と、前記テストケースの処理を開始した時間を含む時間情報と、を取得する取得手段と、取得された前記リソース使用量と前記時間情報とを基に、テストケースを開始する時点において使用したリソース使用量と、該テストケースを終了する時点において使用したリソース使用量との差異を各テストケース毎に認識できるようなリソースモニタを表示することを特徴とする。 An information processing apparatus according to an embodiment of the present invention is an information processing apparatus capable of communicating with an apparatus capable of installing and executing a provided application, and receives an instruction to create an application to be executed on the apparatus. In response, the creation means for creating a test application including a module for realizing the function of the application, a test case for testing the function realized by the module, and the created test application A time including an instruction means for transmitting to the apparatus and instructing start of processing of the test case, a resource usage amount during operation of the test application, and a time of starting processing of the test case after the instruction. An acquisition means for acquiring information, and the acquired resource use And a resource that can recognize the difference between the resource usage used at the start of the test case and the resource usage used at the end of the test case for each test case based on the time information and the time information It is characterized by displaying a monitor.
本発明によれば、テストケースとリソースの変化の対応をグラフィカルに表示することにより、どのテストケースでリソースリークが発生しているのかを判別することが容易になる。 According to the present invention, it is easy to determine in which test case a resource leak has occurred by graphically displaying the correspondence between test cases and resource changes.
以下、図面を参照して本発明の実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. The following embodiments do not limit the invention according to the scope of claims, and all combinations of features described in the embodiments are not necessarily essential to the solution means of the invention.
以下、本発明の実施の形態について図面を参照して詳細に説明する。図1は、本発明の実施形態に係る画像形成装置の内部構成の一例を示すブロック図である。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. FIG. 1 is a block diagram illustrating an example of an internal configuration of an image forming apparatus according to an embodiment of the present invention.
図1に示す画像形成装置1は、基本的な構成として、画像形成装置1内の各部を制御するコントローラユニット100と、操作部112と、スキャナ部123と、プリンタ部125とを備える。操作部112は、例えば、数字を入力するためのテンキーや処理の実行を行うためのスタートキーなどのハードキーや液晶タッチパネルで構成され、ユーザが画像形成装置1を操作するためのユーザインタフェースを提供する。操作部112のタッチパネルに表示される各設定項目を表すアイコンやボタン(もしくはハードキー)をタッチ(押下)することで、画像形成装置1に設定や情報の入力を行うことが可能である。
The
スキャナユニットであるスキャナ部123は、原稿等の画像を画像データとして読み取る。プリントユニットであるプリンタ部125は、記録用紙を搬送し、その記録用紙に画像データを可視画像として印刷する。コントローラユニット100は、バス122を介してスキャナ部123に接続され、またバス124を介してプリンタ部125に接続される。また、コントローラユニット100は、LAN113や公衆回線(WAN)114や無線115を介して他の機器に接続して、画像情報やデバイス情報の入出力制御を行う。なお、画像処理ユニットとしてスキャナユニットとプリンタユニット以外のものを搭載していても良い。
A
CPU101は、システム全体を制御するコントローラである。RAM102は、CPU101が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ROM103はブートROMである。ROM103には、システムのブートプログラムが格納されている。HDD104は、ハードディスクドライブであり、システムソフトウェアや画像データ、後述する通信部111が有するすべての無線通信に関する情報(無線通信の仕様)を格納する。
The
画像形成装置では、使用したい機能を実装したアプリケーションをインストールすることで機能を増やすことができる。アプリケーションには、アプリケーションの機能を実現するモジュールが含まれエチル。アプリケーションのインストールにより、画像形成装置上で各種機能を動かすためのアプリケーションプログラムがRAM102やHDD104に記憶される。
In the image forming apparatus, functions can be increased by installing an application in which a function to be used is installed. The application includes modules that implement the functionality of the application. By installing the application, an application program for operating various functions on the image forming apparatus is stored in the
操作部I/F106は、ユーザインターフェース(UI)である操作部112との間のインターフェース部であり、操作部112に表示すべきデータを操作部112に対して出力する。また、操作部112からユーザが入力した情報を、CPU101に伝える役割を行う。Network部109は、LAN113に接続され、情報の入出力を行う。MODEM110は、公衆回線114に接続され、情報の入出力を行う。
The operation unit I /
通信部111は、不図示のアンテナを介して無線(WIRELESS)115に接続され、情報の入出力を行う。また、通信部111は、複数種類の無線通信を行うことが可能である。上記各デバイスがシステムバス107上に配置される。イメージバス(ImageBus)I/F105は、システムバス107と、画像データを高速で転送する画像バス108とを接続し、データ構造を変換するバスブリッジである。画像バス108は、PCIバスまたはIEEE1394等で規定されるバスである。画像バス108上に配置される各デバイスにおいて、ラスターイメージプロセッサ(RIP)116は、PDLコードをビットマップイメージに展開する。デバイスI/F部117は、スキャナ部123またはプリンタ部125をコントローラユニット100に接続し、画像データの同期系/非同期系の変換を行う。
The
スキャナ画像処理部118は、入力画像データに対して補正、加工、または編集を行う。プリンタ画像処理部119は、プリント出力画像データに対して、プリンタ部125に合った補正、解像度変換等を行う。画像回転部120は、画像データの回転を行う。画像処理部121は、画像データに対する、JPEG、JBIG、MMR、MH等の圧縮伸張処理や、PDF、TIFF、OCR、暗号化等のフォーマット変換処理を行う。
The scanner
図2は本発明の画像形成装置の一例である画像形成装置1のHDD104に記憶されたソフトウェア構造図である。CPU101により、これらの構成を実現するためのプログラムが実行されることによって各種機能が実現される。
FIG. 2 is a software structure diagram stored in the
201は、OS層であり、一般的にはリアルタイムOSが使用されるが、昨今ではLinux(登録商標)等の汎用OSが使用されることもある。202は、Java(登録商標)に代表される仮想マシンであり、アプリケーションの実行環境を提供するものである。203は、アプリケーションフレームワークであり、アプリケーションのライフサイクルを管理する機能を提供するものである。204は、インストーラサービスであり、後述のアプリケーションA,Bなど複数のアプリケーションを、アプリケーションフレームワーク203に登録することでインストール処理を行うものである。
205,206は、インストーラサービス204によってインストールされたアプリケーションであり、画像形成装置1上で様々な機能提供するものである。アプリケーション205,206は図外のI/Fを使用して、操作部112を介してユーザとやり取りを行うことが可能である。また、Network部109を介して、PCなどからデータを受信し、プリンタ部125を使って印刷することも可能である。なお、インストーラサービス204はWebアプリを備えており、PCからブラウザでアクセスすることにより、ブラウザ上にアプリケーションのインストールページが表示される。インストールページには、インストールするアプリケーションを指定するためのテキストボックスおよびインストールボタンが備えられている。インストールページにてアプリケーションファイルを指定してインストールボタンを押すことによりアプリケーションファイルがPCからインストーラサービス204に転送される。インストーラサービス204はアプリケーションファイルを受信するとアプリケーションフレームワーク203にアプリケーションファイルを登録してインストールを行う。
また、202は通常利用される通常用仮想マシンとアプリケーションの詳細デバッグ時に利用されるデバッグ用仮想マシンの2種類が存在する。通常用仮想マシンはアプリケーションを実行できるだけであるが、デバッグ用仮想マシンは、より詳細なデバッグ情報を取得できる。ただし、デバッグ用仮想マシンを利用するとアプリケーションの動作速度は著しく低下する。ここで、デバッグ情報とは、具体的には仮想マシン上に存在するオブジェクトの数やそれぞれの参照関係を示す情報のことである。なお、オブジェクトとは、クラスをメモリ上に展開したインスタンスのことであり、クラスとは属性(データ)と操作(メソッド)の集合を定義したものである。アプリケーションは複数のクラスを定義することにより実装され、複数のオブジェクトが相互作用することにより所望の機能を実現する。 In addition, there are two types of 202, a normal virtual machine that is normally used and a debug virtual machine that is used when debugging an application in detail. The normal virtual machine can only execute an application, but the debug virtual machine can acquire more detailed debug information. However, if a debugging virtual machine is used, the operation speed of the application is significantly reduced. Here, the debug information specifically refers to information indicating the number of objects existing on the virtual machine and the respective reference relationships. An object is an instance of a class expanded on a memory, and a class defines a set of attributes (data) and operations (methods). An application is implemented by defining a plurality of classes, and a desired function is realized by a plurality of objects interacting with each other.
また、相互作用するオブジェクト間の関連は仮想マシンの内部的に参照情報として保持されている。どこからも参照されていないオブジェクトはガベージコレクションという仕組みにより自動的に解放される。しかし、アプリケーションの欠陥により不要な参照が残ったままになっていると、メモリが解放されないことになり、そのうちメモリが枯渇しアプリケーションが動作不能になることがある。デバッグ用仮想マシンを使うことにより、画像形成装置上に存在するオブジェクトの数を確認することができるようになるため、解放されるべきオブジェクトが残っていないかを容易に確認することができるようになる。通常用仮想マシンとデバッグ用仮想マシンは排他的に動作し、切り替えて動作させることが可能である。起動プログラム207は、起動する仮想マシン切り分けるためのものであり、起動モードに応じた仮想マシンを起動する。起動モードには通常モードとデバッグモードがあり、通常モード時は通常用仮想マシンが起動し、デバッグモードではデバッグ用仮想マシンが起動するように制御する。デバッグ用仮想マシンにより、アプリケーション動作中におけるデバッグ情報を取得することが可能となり、例えば、ヒープダンプの調査を行うことが可能となる。ヒープダンプについては後述する。
Further, the relationship between interacting objects is held as reference information internally in the virtual machine. Objects that are not referenced from anywhere are automatically released by a mechanism called garbage collection. However, if unnecessary references remain due to an application defect, the memory will not be released, and the memory may be exhausted and the application may become inoperable. By using the debugging virtual machine, the number of objects existing on the image forming apparatus can be confirmed, so that it can be easily confirmed whether or not there are objects to be released. Become. The normal virtual machine and the debug virtual machine operate exclusively and can be switched to operate. The
図3は、画像形成装置1とネットワークで接続され通信可能な情報処理装置である開発用PC300のハードウェア構成を示す図である。画像形成装置用アプリケーションの開発を行う場合、通常、開発用PC300にて統合開発環境を動作させてプログラム作成・テスト・デバッグなどを行う。また、アプリケーションのテストを行う場合は、開発PC300から画像形成装置100にNetwork部109経由でアプリケーションをインストールして画像形成装置1上でアプリケーションを動作させてテストを行う。
FIG. 3 is a diagram illustrating a hardware configuration of a
CPU301は開発PC300上の各処理をつかさどる中央演算装置である。ROM302は開発PC300の各処理に関わるプログラムやデータを記憶する。RAM303は、開発PC300の各処理に関わる一時的なデータを記憶する。HDD304は、開発PC300の各処理に関わるプログラムやデータ、および一時的なデータ、本発明に関わるプログラムモジュールが格納される。入力装置305は、開発PC300への指示入力を受け付けるキーボードやポインティングデバイスである。表示部306は、開発PC300の動作状況や、開発PC300上で動作する各プログラムが出力する情報を表示する。ネットワークI/F307は、ネットワーク経由でLANおよびインタネットに接続し、外部と情報交換を行う。それらの要素がシステムバス308により結び付き、データをやりとりしている。
The
図4は本発明の統合開発システムの一例である統合開発システム400のソフトウェア構成図である。統合開発システム400は、開発PC300上で動作するアプリケーション開発のためのシステムである。統合開発環境システム400は、統合開発基盤401と、統合開発基盤401に利用される内部ツールA402並びに外部ツールB404と連携する内部ツールB403を有する。さらには、これら内部ツールと同様の位置づけで組み込みアプリケーション開発支援ツール405を有する。
FIG. 4 is a software configuration diagram of an integrated
統合開発環境システム400は、例えば、Eclipseが利用できるが、これに限定されない。なお、Eclipseとは、オープンソースの統合ソフトウェア開発環境であり、ソフトウェア開発の共通プラットフォームである。Eclipseは、2種類のツールを利用することで様々な機能を提供する。Eclipseにプラグインとして登録・提供されている内部ツールと、Windows(登録商標)、UNIX(登録商標)などが提供するデバッガやコンパイラといったEclipse内には存在しない外部ツールとの2種類である。
For example, Eclipse can be used as the integrated
統合開発基盤401は、開発しているアプリケーションの管理や各ツールを連携させるためのインターフェースなどを含んでいる。外部ツールの例としては、Java(登録商標)のコンパイルやデバッグを行うために用いられるJDK(Java Development kit)がある。内部ツールは、統合開発基盤401が提供するインターフェースを介して、外部ツールの機能を利用することもできる。図4で示している統合開発環境システム400が持つ内部ツールや外部ツールの構成などは、1つの例にすぎず、これに限定されない。
The integrated
組み込みアプリケーション開発支援ツール405は、画像形成装置との各種要求の通信を行い、後述する406〜410の各手段を使用して、画像形成装置で動作可能なアプリケーションの生成やテスト支援機能を実現する。ここで、テスト支援機能とは、テスト用アプリケーション生成、実行、テスト結果の表示までを自動で行うことができる機能のことである。アプリケーション開発者は、テストケースを実装することで、画像形成装置上において自動でテストが実行され、テストの実行結果を得ることができるようになる。テストケースには1つ以上のテストプログラムが含まれており、個々のテストプログラムはメソッドとして実装される。操作手段406は、開発しているアプリケーションを画像形成装置へインストールする機能を有する。その他、画像形成装置上で動作しているアプリケーションの開始、停止、デバッグ機能も有する。
The embedded application
アプリケーション生成手段407は、リリース用のアプリケーションを生成する機能や、テスト用のプログラムを含んだテスト用アプリケーションを生成する機能を有する。テスト用アプリケーションには、機能を実現するためのモジュールと、その機能をテストするためのテストケースの2つが少なくとも含まれる。リソースモニタ手段408は、画像形成装置から送られてくるメモリ情報を基に画像形成装置のメモリ状況をグラフ表示する機能を有する。また、後述するテストケースの実行状況を受信してグラフにテストケースの開始時点がわかるように図示する機能も有する。さらに、画像形成装置上のジョブ動作状況も合わせて表示する機能を有する。
The
リソース異常検出手段409は、テストケースの実行開始時および終了時の使用リソース量の差を計算してリソースリークの疑いのあるテストケースを抽出する機能を有する。再テスト実行手段410は、画像形成装置に対して起動モードの切り替え要求を出す機能を有する。また、アプリケーション生成手段407を使ってメモリリークの疑いのあるテストケースのみを含むテスト用アプリケーションを作成し、デバッグモードに切り替えた画像形成装置でテスト再実行を行う機能を有する。
The resource
ワークスペース411は、統合開発環境システム400が参照するものであり、プロジェクトと呼ばれる単位でアプリケーションやテストアプリケーションを管理する領域である。ワークスペース411には複数のプロジェクトが格納されても構わない。ここで、プロジェクト412は、マニフェストファイル413、ソースファイル414から構成される。マニフェストファイル413とは、アプリケーションの持つ各種情報が記載されたファイルであり、ソースファイル414はアプリケーションの機能を実現するためのプログラムファイルである。
The
統合開発環境システム400を使ってアプリケーションのテストを行いたい場合は、テスト用のプロジェクトを作成する。テスト用のプロジェクト415は、テスト設定ファイル416、マニフェストファイル413、ソースファイル414から構成される。テスト設定ファイル416には、テスト対象のアプリケーションのプロジェクト情報が保存されている。テスト対象のアプリケーションはテスト用のプロジェクトを作成する時にユーザによって指定される。テスト用のプロジェクト415に含まれるソースファイルは、一つ以上のアプリケーションをテストするためのプログラム(テストケース)を含む。テストを実行する際は、テスト対象アプリケーションのプロジェクトとテスト用プロジェクトとから一つのテスト用アプリケーションを生成する。生成したテスト用アプリケーションを画像形成装置上で動作させてテストを実行する。
When it is desired to test an application using the integrated
図5は、統合開発環境システム400を利用してテストを行う場合の画像形成装置1のソフトウェアブロック図である。図2の状態の画像形成装置1に対してアプリケーション開発者がインストーラサービス204経由でテストブローカ501をインストールすることで統合開発環境システム400を利用したテストを行うことができるようになる。テストブローカ501は、開発PC300から、テスト用アプリケーション502を受信してテストを実行したり、テスト結果を開発PC300に送信したり、テスト完了後にテスト用アプリ502をアンインストールしたりするためのモジュールである。
FIG. 5 is a software block diagram of the
本実施例のシステムにおいては、JUnitなどのテストフレームワークを用いる場合と同様で、テストケースの実行順序はランダムになっている。そのため、従来のリソースモニタでメモリ状況を監視しながら自動テストを実行しても、どのテストケースを実行している時にリークが発生しているか特定することは困難であった。また、テストブローカ501はデバイス監視モジュール503を含んでいる。デバイス監視モジュール503は画像形成装置上のメモリの使用状況やジョブの状況を監視して統合開発環境システム上に情報を定期的に送信する機能も持つ。テスト用アプリケーション502は、ユーザが開発したアプリケーションとテストのためのプログラムを含むテストのためのアプリケーションであることはご理解頂けると思う。
In the system of the present embodiment, the test case execution order is random, as in the case of using a test framework such as JUnit. Therefore, even if an automatic test is executed while monitoring the memory status with a conventional resource monitor, it is difficult to identify which test case is causing a leak. The
図6は、図5におけるテスト用アプリケーション502の構成を示すブロック図である。テスト用アプリケーション502は、アプリケーション601とテストケース602とテストエージェント603とアプリケーション情報604から構成される。アプリケーション601は開発者が開発しているアプリケーションの実体であり、アプリケーションの機能を実現するモジュールでもあり、テスト対象アプリケーションのプロジェクト412に含まれるソースファイルから生成される。このアプリケーションは、画像形成装置1上で動作し、ユーザに対して、認証機能を提供したり、スキャナやプリンタを使った機能を提供したりする。テストケース602はアプリケーション601をテストするためのプログラムであり、アプリケーション601により実現される機能をテストするためのテストケースであり、テスト用プロジェクト415に含まれるソースファイルから生成される。
FIG. 6 is a block diagram showing a configuration of the
テストケースの例としては、
・プリント設定の組み合わせを判定するメソッドにていろいろな設定の組み合わせでメソッドを実行し正しい判定が行われるかをチェックするテストケース
・ジョブ投入メソッドを実行した時にメソッドが正常終了するかをチェックするテストケース
などがあげられる。一般にアプリケーションの規模が大きくなるとテストケースの数も膨大となるため、規模の大きなアプリケーションのテストを実行するには時間がかかる。テストエージェント603はテストブローカ501から指示を受けてテストケース602の実行を行う。アプリケーション情報604は、テスト用プロジェクト415に含まれるマニフェストファイルであり、テスト用アプリケーションの識別情報やアプリケーション名称やバージョン情報を含んでいる。
Examples of test cases include
-Test case to check whether the correct judgment is performed by executing the method with various setting combinations in the method to judge the combination of print settings-Test to check whether the method is completed normally when the job submission method is executed Examples include cases. In general, as the size of an application increases, the number of test cases also increases, so it takes time to execute a test of a large-scale application. The
図7は、表示部306に表示される統合開発環境システム400の操作画面の一例である。図7(a)は統合開発環境システム400のメイン画面の一例を示す図である。ソースファイル編集画面701では、プロジェクト内のソースファイルが表示される。プロジェクト・エクスプローラ702には、開発中のアプリの一覧がプロジェクトの単位で表示されている。また、入力装置305を介してプロジェクト・エクスプローラ702内のテスト用プロジェクトを選択するとプルダウンメニュー703が表示される。プルダウンメニューには「テスト実行」および「テスト実行とメモリリークチェック」および「テスト実行とメモリリークチェック(詳細)」の項目が表示される。
FIG. 7 is an example of an operation screen of the integrated
プルダウンメニュー703にて「テスト実行」が選択されると、テスト対象アプリケーションのプロジェクトおよびテスト用プロジェクトからテスト用アプリケーションを生成する。そして、画像形成装置に生成したテスト用アプリケーションを送信してテストを実行し、テストが完了するとテスト結果がテスト結果表示領域705に表示される。
When “execute test” is selected from the pull-
またプルダウンメニュー703にて「テスト実行とメモリリークチェック」が選択されると、リソースモニタ画面(図7(b))およびリーク候補リスト画面(図7(c))が表示される。リソースモニタ画面(図7(b))では、テスト実行中のメモリ状況や画像形成装置上のジョブの状況を確認することができる。グラフ表示領域710には画像形成装置のメモリ使用量がグラフとして表示される。ジョブ状況表示領域711は、画像形成装置のジョブの実行状況が表示される。ジョブが実行中の区間はバー712が表示される。ボタン714はリソースモニタ画面を閉じるためのボタンである。713はテストケース名であり、テストケースの実行が開始されるタイミングで縦線と合わせて描画される。
When “Test execution and memory leak check” is selected in the pull-
テストケース名および縦線が描画されるため、グラフ表示領域710に表示されるメモリ使用量のグラフとの対応関係が分かりやすくなる。横軸は時間を示しており、全ての領域で共通である。このためテストケース、メモリ、ジョブ状況の関係性を一目で理解することが可能である。テストケースの開始時と終了時の消費メモリ差分を計算し所定の閾値を超える場合は、メモリリークの疑いがあるためテストケース名を強調表示する。(図7(b))は、テストケースを処理している際に使用したリソース使用量をテストケースの実行順毎に時系列で表示する例である。テストケースの開始時間は各テストケース毎に異なるので、このように時系列で表示することでどのテストケースの処理に問題があるかをより正確に認識することができる。ジョブ状況を表示する理由は、リークによりリソースの使用量に差異が発生しているのか、リークは発生していないがジョブの実行によって一時的にメモリが使用されているだけなのかを認識できるようにするためである。
Since the test case name and the vertical line are drawn, the correspondence with the memory usage graph displayed in the
また、リーク候補リスト画面(図7(c))ではリソースリークの疑いのあるテストケースの一覧がリーク量とともに表示される。図7(c)中の720はリークの疑いのある処理を実行したテストケースのメソッド名である。テストケースには複数のメソッドが実装されており、各メソッドの中でテスト対象のクラスに対するテスト処理が実装される。721はテストの実行前と後のメモリ使用量の差である。閉じるボタン722はリーク候補リスト画面を閉じるためのボタンである。
On the leak candidate list screen (FIG. 7C), a list of test cases suspected of resource leaks is displayed together with the leak amount. Reference numeral 720 in FIG. 7C denotes a method name of a test case that has executed a process suspected of leaking. A plurality of methods are implemented in the test case, and test processing for the test target class is implemented in each method.
またプルダウンメニュー703にて「テスト実行とメモリリークチェック(詳細)」が選択されると、「テスト実行とメモリリークチェック」の処理を行った後に、リークの疑いのあるテストケースについてより詳細に解析を実行する。そして、リーク要因詳細リスト画面(図7(d))を表示する。具体的には、画像形成装置のデバッグ用仮想マシンに切り替えて、リークの疑いのあるテストケースのみを含んだテスト用アプリケーションを実行することにより詳細な情報を取得し、結果を別ウインドウに表示する。デバッグ用仮想マシンには、メモリ内容をダンプする機能等デバッグに有用な機能が備わっているため詳細な情報を取得して解析することが可能になる。
When “Test execution and memory leak check (details)” is selected in the pull-
730は、リークの疑いのある処理を実行したテストケースのメソッド名である。731はリークの疑いのあるオブジェクトのクラス名である。732はテストの実行前と後のオブジェクト数の差分である。閉じるボタン733はリーク要因詳細リスト画面を閉じるためのボタンである。
図8は、図7(a)のプルダウンメニュー703の何れかが選択された場合の組み込みアプリケーション開発支援ツール405の処理の流れを示すフローチャートである。
FIG. 8 is a flowchart showing a processing flow of the embedded application
組み込みアプリケーション開発支援ツール405がプルダウンメニュー703の選択を検知すると、アプリケーション生成手段407は、S801にてテスト用アプリケーションを作成する。具体的には、テスト情報ファイルからテスト対象プロジェクトを特定し、テスト対象のプロジェクトに含まれるソースファイルおよびテスト用プロジェクトに含まれるソースファイルをコンパイルしてアプリケーションを作成する。
When the embedded application
次にS802に進み、組み込みアプリケーション開発支援ツール405は、どのメニューが選択されたかを判定する。「テスト実行」が選択されたと判定された場合は、S805に進む。それ以外のメニューが選択されたと判定した場合はS803に進む。S803において、組み込みアプリケーション開発支援ツール405は、画像形成装置上のテストブローカ501にデバイス状態監視要求を送信する。次にS804に進み、リソースモニタ手段408が、リソースモニタ画面(図7(b))およびメモリリーク候補リスト画面(図7(c))を表示する。次にS805に進み、操作手段406がS801で生成したテスト用アプリケーションをテストブローカ501に送信し、テスト実行要求を送信する。テスト実行要求を受け取った画像形成装置は、テストアプリケーションに含まれるテストケースの処理を開始する。
In step S802, the embedded application
次にS806において、組み込みアプリケーション開発支援ツール405はテストブローカ501からデータを受信する。次にS807に進み、組み込みアプリケーション開発支援ツール405は、受信したデータがテスト終了通知であったかどうかを判定する。もしテスト終了通知であった場合はS823に進む。S823において、リソースモニタ手段408はテスト結果を受信してテスト結果表示領域に結果を表示する。次にS824に進み、操作手段406はテスト用アプリケーションのアンインストール要求をテストブローカに送信して処理を終了する。
In step S <b> 806, the embedded application
一方、S807にてテスト終了通知でないと判定された場合はS808に進む。S808において、組み込みアプリケーション開発支援ツール405は受信したデータがテストケース実行開始通知であったかどうかを判定する。もしテストケース実行開始通知であった場合、S809に進む。S809において、リソースモニタ手段408はテストケース開始時情報を受信する。テストケース開始時情報には開始したテストケース名とテストケースの開始時刻が格納されている。次にS810に進み、リソースモニタ手段408は、受信した情報を基にリソースモニタ画面上にテストケース名を表示し、テストケースが開始された時刻が分かるように縦線を描画する。次にS811に進み、リソースモニタ手段408は、テストケース開始時情報およびその時点のメモリ使用量(S821で受信)を記憶媒体上に記憶して、S806に戻る。
On the other hand, if it is determined in S807 that it is not a test end notification, the process proceeds to S808. In step S808, the embedded application
一方、S808にテストケース実行開始通知でないと判定された場合はS812に進む。S812において、組み込みアプリケーション開発支援ツール405はS806にて受信したデータがテストケース実行終了通知であったかどうかを判定する。テストケース実行終了通知であった場合、S813に進む。S813において、リソースモニタ手段408はテストケース実行終了時情報を受信する。テストケース実行終了時情報には実行終了したテストケースのテストケース名とテストケース終了時刻が格納されている。次にS814に進み、リソース異常検出手段409は、テストケース開始時のメモリ使用量と終了時のメモリ使用量の差分を算出する。次にS815に進み、リソース異常検出手段409は、算出した差分が所定の閾値を超えているかどうかを判断する。もし閾値を超えていない場合はS806に戻り、閾値を超えておりリソースの使用量に差異があると判断された場合はS816に進む。S816において、リソースモニタ手段408はテストケース名を強調表示し、リーク候補リスト画面にテストケース名およびメモリ使用量差分の情報を追加してS806に戻る。開始時情報、および実行終了通知は時間情報の一部であり、時間情報の形式、内容に制限はない。
On the other hand, if it is determined in S808 that the test case execution start notification is not received, the process proceeds to S812. In step S812, the embedded application
一方、S812にて受信データがテストケース実行終了通知でないと判定された場合は、S817に進む。S817において、組み込みアプリケーション開発支援ツール405はS806で受信したデータがジョブ状態変化通知であるかどうかを判定する。ジョブ状態変化通知である場合はS818に進む。S818において、リソースモニタ手段408はジョブ情報を受信してS819に進む。ジョブ情報にはジョブ種別およびジョブの状態(生成・消滅)が格納されている。S819において、リソースモニタ手段408は受信したジョブ情報を基にメモリ情報画面のジョブ状況領域の描画内容を更新しS806に戻る。
On the other hand, if it is determined in S812 that the received data is not a test case execution end notification, the process proceeds to S817. In step S817, the embedded application
一方、S817にて受信データがジョブ状態変化通知でないと判定された場合は、S820に進む。S820において、組み込みアプリケーション開発支援ツール405はS806で受信したデータがリソース情報通知であるかどうかを判定する。もしリソース情報通知でない場合は、データを無視してS806に戻る。S820にてリソース情報通知であると判定された場合はS821に進む。S821において、リソースモニタ手段408はリソース情報を受信し記憶してS822に進む。なお、リソース情報にはテストアプリケーションの動作中におけるリソース使用量が含まれている。S822において、リソースモニタ手段408はメモリ状況画面(図7(b))の描画更新を行う。具体的には受信したリソース情報内のリソース使用量を基にグラフ表示領域710を更新、ジョブ状況表示領域711の表示更新、画面に収まらなくなった場合のスクロール制御を行う。
On the other hand, if it is determined in S817 that the received data is not a job status change notification, the process proceeds to S820. In step S820, the embedded application
図9は、図8のフローチャートを実行後の組み込みアプリケーション開発支援ツール405の処理の流れを示すフローチャートである。組み込みアプリケーション開発支援ツール405は、S901にてプルダウンメニュー703の選択時に「テスト実行およびメモリリーク解析(詳細)」が選択されていたかどうかを判定する。もし「テスト実行およびメモリリーク解析(詳細)」が選択されていない場合は処理を終了する。もし「テスト実行およびメモリリーク解析(詳細)」が選択されたと判定された場合、S902に進む。S902において、再テスト実行手段410はリーク候補リストに情報が存在するかどうかを判定する。もしリーク候補リスト内に情報がなければ処理を終了する。もしリーク候補リスト内に情報が存在した場合はS903に進む。S903において、再テスト実行手段410は、テストブローカにデバッグモードへの切り替え要求を送信し、テストブローカへの再接続を行う。デバッグモードへの切り替えは画像形成装置の再起動を伴うため、再接続が成功するまでリトライを繰り返す。テストブローカへの再接続が完了したらS904に進み、アプリケーション生成手段407はリーク候補リスト内に存在するテストケースのみを含むテスト用アプリケーションを生成する。即ち、リークの疑いがあるテストケースを含みリークの疑いがないテストケースを含まないテスト用アプリケーションを生成するということであり、このようなアプリケーションをデバッグ用アプリケーションと称する。
FIG. 9 is a flowchart showing the flow of processing of the embedded application
次にS905に進み、操作手段406がS904で生成したテスト用アプリケーションを送信し、再度、テスト実行要求を出す。次にS906に進み、組み込みアプリケーション開発支援ツール405は、テストブローカからデータを受信する。次にS907に進み、組み込みアプリケーション開発支援ツール405は、受信したデータがテスト終了通知であったかどうかを判定する。もしテスト終了通知であった場合はS916に進む。S916では組み込みアプリケーション開発支援ツール405は、テスト結果を受信してテスト結果表示領域に結果を表示する。次にS917に進み、操作手段406はテスト用アプリケーションのアンインストール要求をテストブローカに送信して処理を終了する。
In step S905, the
一方、S907においてテスト終了通知でないと判定された場合は、S908に進む。S908において、組み込みアプリケーション開発支援ツール405は、テストケース実行開始通知であるかどうかを判定する。テストケース実行開始通知であると判定された場合、S909に進み、リソースモニタ手段408はテストケース実行開始時情報およびヒープダンプ情報を受信する。ヒープダンプとは仮想マシン上のメモリ内容のダンプであり、どのクラスのオブジェクトが何個存在しているか等の詳細な情報を解析可能なデータである。次にS910に進み、リソースモニタ手段408はヒープダンプから存在するオブジェクト数をクラス毎に算出して記憶媒体に記憶し、S906に戻る。テストケース処理終了時点のオブジェクト数が開始時点のオブジェクト数よりも増えている場合、リークの疑いがあると判断できる。
On the other hand, if it is determined in S907 that it is not a test end notification, the process proceeds to S908. In step S908, the embedded application
一方、S908においてテストケース実行開始通知でないと判定された場合はS911に進む。S911において、組み込みアプリケーション開発支援ツール405はS906で受信したデータがテストケース実行終了通知であるかどうかを判定する。もしテストケース実行終了通知でないと判定された場合は、何もせずにS906に戻る。もしS911にてテストケース実行終了通知であると判定された場合はS912に進む。S912において、リソースモニタ手段408はテストケース終了時情報およびヒープダンプ情報を受信する。次にS913に進み、リソースモニタ手段408はヒープダンプ情報から存在するオブジェクト数をクラス毎に算出して記憶媒体上に記憶し、S914に進む。S914において、リソース異常検出手段409はテストケース開始時とテストケース終了時のオブジェクト数の差をクラス毎に算出する。次にS915に進み、リソース異常検出手段409は差分が閾値以上のものがあるかどうかを判定する。もし閾値以上のものが存在しないと判定された場合はS906に戻る。閾値以上のものが存在する場合はS916に進みリソースモニタ手段408はリーク要因詳細リストに情報を追加してS906に戻る。
On the other hand, if it is determined in S908 that the notification is not a test case execution start notification, the process proceeds to S911. In step S911, the embedded application
図10は、デバイス状態監視要求を受けた際のテストブローカ内のデバイス監視モジュール503の処理の流れを示すフローチャートである。デバイス状態監視要求を受けるとデバイス監視モジュール503は、まずS1001にて画像形成装置上のメモリ情報取得を行う。次にS1002に進み、デバイス監視モジュール503は組み込みアプリケーション開発支援ツールにリソース情報通知およびメモリ情報を渡す。次にS1003に進み、デバイス監視モジュール503はジョブ状況を取得する。次にS1004に進み、ジョブ状況に変化があったかどうかを判定する。なお、初回のジョブ状況取得時はジョブ状況に変化があったと判定される。それ以降は直前に取得した状況から変化があるかによって判定が行われる。
FIG. 10 is a flowchart showing a processing flow of the
もしジョブ状況に変化がないと判定された場合はS1006に進む。ジョブ状況に変化があると判定された場合はS1005に進む。S1005において、デバイス監視モジュール503はジョブ状態変化通知およびジョブ状態情報を送信して組み込みアプリケーション開発支援ツールに情報を渡す。次にS1006に進み、デバイス監視モジュール503は所定時間スリープする。本実施例では200msスリープするようにしている。次にS1007に進みテストが終了したかどうかを判定する。もしテストが終了していない場合はデバイス監視モジュール503はS1001に戻り、テストが終了している場合は処理を終了する。
If it is determined that there is no change in the job status, the processing proceeds to S1006. If it is determined that the job status has changed, the process advances to step S1005. In step S1005, the
図11は、テスト用アプリケーションを受信した際のテストブローカの処理の流れを示したフローチャートである。テストブローカ501はS1101にてテスト用アプリケーションファイルを受信する。次にテストブローカ501はS1102にてインストーラサービス204を利用してテスト用アプリケーションをインストールする。次にテストブローカ501はS1103でテスト用アプリケーションを開始する。次にテストブローカ501はS1104にて実行すべきテストケースが存在するかを判定する。テスト用アプリケーションに含まれるテストケースで未実行のものがあれば実行すべきテストケースが存在すると判定される。もし実行すべきテストケースが存在すると判定された場合はS1105に進む。S1105ではテストブローカ501は画像形成装置のジョブ状況を取得してジョブの存在有無を判定する。もしジョブが存在した場合はS1105に戻る。S1105にてジョブが存在しないと判定されるとS1106に進む。
FIG. 11 is a flowchart showing a process flow of the test broker when a test application is received. The
S1106において、テストブローカ501はテストケース実行開始通知およびテストケース実行時情報を組み込みアプリケーション開発支援ツール405に送信する。次にS1107に進み、テストブローカ501は起動モードがデバッグモードか否かを判定する。もしデバッグモードでないと判定された場合はS1109に進む。一方、S1107にてデバッグモードであると判定された場合はS1108に進む。S1108において、テストブローカ501はヒープダンプを取得して組み込みアプリケーション開発支援ツール405に送信し、S1109に進む。S1109ではテストブローカ501はテストケースを実行する。テストケースが実行されるとアプリケーションのテストが行われテスト結果が記憶媒体上に蓄積される。テストケースが終了するとS1110に進む。
In step S <b> 1106, the
S1110において、テストブローカ501は画像形成装置のジョブ状況を取得してジョブの存在有無を判定する。もしジョブが存在した場合はS1110に戻る。S1110にてジョブが存在しないと判定されるとS1111に進む。S1111において、テストブローカ501はテストケース終了通知とテストケース終了時情報を組み込みアプリケーション開発支援ツール405に送信する。次にS1112に進み、テストブローカ501は起動モードがデバッグモードか否かを判定する。もしデバッグモードでないと判定された場合はS1104に戻る。一方、S1112にてデバッグモードであると判定された場合はS1113に進む。S1113ではテストブローカ501はヒープダンプを取得して組み込みアプリケーション開発支援ツール405に送信しS1104に戻る。
In step S1110, the
一方、S1104にて実行すべきテストケースが存在しないと判定された場合はS1114に進む。S1114ではテストブローカ501は組み込みアプリケーション開発支援ツール405にテスト終了通知を送信する。次にS1115に進み、テストブローカ501はS1109のテスト実行時に蓄積していたテスト結果をまとめて組み込みアプリケーション開発支援ツール405に送信して、処理を終了する。
On the other hand, if it is determined in S1104 that there is no test case to be executed, the process proceeds to S1114. In step S <b> 1114, the
図12は、デバッグモードへの切り替え要求を受けた際のテストブローカ501の処理の流れを示したフローチャートである。テストブローカ501は、まずS1201にて起動モード変更要求を受信する。次にS1202に進み、テストブローカ501は起動モード設定を要求に応じて変更する。起動モード設定は不揮発メモリ上に記憶される。次にS1203に進み、テストブローカ501は画像形成装置を再起動して処理を終了する。
FIG. 12 is a flowchart showing a processing flow of the
図13は、画像形成装置の電源を入れた際の起動プログラム207の処理の流れを示すフローチャートである。まずS1301にて起動プログラム207は内部で保持している起動モード設定を取得する。次にS1302に進み、起動プログラム207は起動モードがデバッグモードであるかを判定する。もし起動モードがデバッグモードであると判定された場合はS1303に進み、デバッグ用のファームウェアを起動して処理を終了する。もしS1302にて起動モードがデバッグモードでないと判定された場合はS1304に進み、起動プログラム207は通常用のファームウェアを起動して処理を終了する。
FIG. 13 is a flowchart showing the flow of processing of the
以上、説明したように、本発明によれば、画像形成装置のジョブ実行中は新たなテストケースを実行しないように制御したことにより、アプリケーション以外の要因のメモリ変動を排除して解析することができるようになる。これにより、アプリケーションのメモリリークを判別することが容易となる。また、テストケースとメモリ変化の対応をグラフで表示できるため、どのテストケースを実行した場合にメモリリークが発生するのかが容易に判別可能になる。例えば、図7(b)のようにテストケースの開始タイミングで縦の線が表示され開始時点と終了時点のメモリ使用量を容易に判別できる。即ち、本願発明により、テストケースを開始する時点において使用したリソース使用量と、該テストケースを終了する時点において使用したリソース使用量との差異を各テストケース毎に認識できるようになる。この例ではPrintTest2のtestGetInfo実行時およびSendTest1のtestWebDAVを実行した際にメモリリークが発生しているということが一目でわかる。また、メモリリークの疑いのあるテストケースのみをデバッグ用のファームウェアで再実行可能とすることにより、詳細解析にかかる時間を短縮することができるという効果がある。 As described above, according to the present invention, control is performed so that a new test case is not executed during job execution of the image forming apparatus, so that analysis can be performed while eliminating memory fluctuations caused by factors other than the application. become able to. Thereby, it becomes easy to determine the memory leak of the application. In addition, since the correspondence between the test case and the memory change can be displayed in a graph, it is possible to easily determine which test case is executed when the memory leak occurs. For example, as shown in FIG. 7B, a vertical line is displayed at the start timing of the test case, and the memory usage at the start time and the end time can be easily determined. That is, according to the present invention, the difference between the resource usage used at the time of starting the test case and the resource usage used at the time of ending the test case can be recognized for each test case. In this example, it can be seen at a glance that a memory leak has occurred when executing PrintTest2's testGetInfo and executing TestTest1's testWebDAV. In addition, by making it possible to re-execute only test cases suspected of memory leaks with the firmware for debugging, it is possible to reduce the time required for detailed analysis.
なお、本実施例ではメモリリークについて検出を行っているが、メモリに限定されるものではなく、ファイルディスクリプタやソケットやスレッドのリーク検出を行うようにしてもよい。また、本実施例では画像形成装置のジョブ実行中は新たなテストケースを実行しないように制御を行っているが、例えばログイン処理や定期的に状態を初期化するためのオートクリア処理が実行中はテストケースを実行しないように制御してもよい。また微量のリークも検出できるようにするためテストケースの実行を複数回繰り返してからリソースの差分を取得するようにしてもよい。 In this embodiment, the memory leak is detected. However, the present invention is not limited to the memory, and leak detection of a file descriptor, a socket, or a thread may be performed. In this embodiment, control is performed so that a new test case is not executed while a job of the image forming apparatus is being executed. For example, a login process or an auto-clear process for periodically initializing the state is being executed. May be controlled not to execute the test case. Further, in order to be able to detect a small amount of leak, the resource difference may be acquired after the test case is executed a plurality of times.
1 画像形成装置
300 開発用PC
400 統合開発環境
405 組み込みアプリケーション開発支援ツール
501 テストブローカ
502 テスト用アプリケーション
802 テストケース
1
400
Claims (8)
前記装置で実行するためのアプリケーションを作成する指示を受けたことに応じて、前記アプリケーションの機能を実現するモジュールと、前記モジュールにより実現される機能をテストするためのテストケースと、を含むテストアプリケーションを作成する作成手段と、
作成された前記テストアプリケーションを前記装置へ送信するとともに、前記テストケースの処理の開始を指示する指示手段と、
前記指示の後、前記テストアプリケーションの動作中におけるリソース使用量と、前記テストケースの処理を開始した時間を含む時間情報と、を取得する取得手段と、
取得された前記リソース使用量と前記時間情報とを基に、テストケースを開始する時点において使用したリソース使用量と、該テストケースを終了する時点において使用したリソース使用量との差異を各テストケース毎に認識できるようなリソースモニタを表示する表示手段と、を有する情報処理装置。 An information processing device capable of communicating with a device capable of installing and executing a provided application,
A test application including a module that realizes the function of the application and a test case for testing the function realized by the module in response to receiving an instruction to create an application to be executed on the device Creating means to create
Sending the created test application to the device, and an instruction means for instructing start of processing of the test case;
After the instruction, an acquisition unit that acquires resource usage during operation of the test application and time information including a time when processing of the test case is started;
Based on the acquired resource usage and the time information, the difference between the resource usage used at the start of the test case and the resource usage used at the end of the test case is determined for each test case. Display means for displaying a resource monitor that can be recognized each time.
前記リソース使用量とは、前記画像処理ユニットを制御するためのアプリケーションを動作させる際に使用したメモリの使用量であることを特徴とする請求項1または2に記載の情報処理装置。 The apparatus is an image forming apparatus including an image processing unit including a scanner unit and / or a print unit,
The information processing apparatus according to claim 1, wherein the resource usage is a memory usage used when an application for controlling the image processing unit is operated.
前記表示手段は、取得された前記ジョブ情報と前記リソース使用量と前記時間情報とを基に、テストケースを処理している際に使用したリソース使用量と、前記ジョブの実行状況との関係性が認識できるようなリソースモニタを表示することを特徴とする請求項3に記載の情報処理装置。 The acquisition unit acquires job information related to an execution status of a job using the image processing unit,
The display means, based on the acquired job information, the resource usage, and the time information, the relationship between the resource usage used when processing the test case and the execution status of the job The information processing apparatus according to claim 3, wherein a resource monitor that can be recognized is displayed.
前記指示手段は、作成された前記デバッグ用アプリケーションと、前記アプリケーションの動作中におけるデバッグ情報を取得するためのデバッグモードへ切り替えるための要求と、を前記装置へ送信するとともに、再度、テスト実行を指示することを特徴とする請求項1乃至4の何れか1項に記載の情報処理装置。 If it is determined that there is a test case suspected of leaking based on the acquired resource usage and the time information, the creating means includes a test case suspected of leaking and has no suspected leak Create a debug application that does not include test cases,
The instruction means transmits the created debug application and a request for switching to a debug mode for acquiring debug information during operation of the application to the apparatus, and again instructs test execution. The information processing apparatus according to claim 1, wherein the information processing apparatus is an information processing apparatus.
前記装置で実行するためのアプリケーションを作成する指示を受けたことに応じて、前記アプリケーションの機能を実現するモジュールと、前記モジュールにより実現される機能をテストするためのテストケースと、を含むテストアプリケーションを前記装置へ送信するとともに、前記テストケースの処理の開始を指示する指示手段と、
前記指示の後、テストケースを開始する時点において使用したリソース使用量と、該テストケースを終了する時点において使用したリソース使用量との差異を各テストケース毎に認識できるようなリソースモニタを表示する表示手段と、を有する情報処理装置。 An information processing device capable of communicating with a device capable of installing and executing a provided application,
A test application including a module that realizes the function of the application and a test case for testing the function realized by the module in response to receiving an instruction to create an application to be executed on the device And instructing means for instructing the start of the processing of the test case,
After the instruction, a resource monitor is displayed so that the difference between the resource usage used at the start of the test case and the resource usage used at the end of the test case can be recognized for each test case. And an information processing apparatus.
作成手段は、前記装置で実行するためのアプリケーションを作成する指示を受けたことに応じて、前記アプリケーションの機能を実現するモジュールと、前記モジュールにより実現される機能をテストするためのテストケースと、を含むテストアプリケーションを作成し、
指示手段は、作成された前記テストアプリケーションを前記装置へ送信するとともに、前記テストケースの処理の開始を指示し、
取得手段は、前記指示の後、前記テストアプリケーションの動作中におけるリソース使用量と、前記テストケースの処理を開始した時間を含む時間情報と、を取得し、
表示手段は、取得された前記リソース使用量と前記時間情報とを基に、テストケースを開始する時点において使用したリソース使用量と、該テストケースを終了する時点において使用したリソース使用量との差異を各テストケース毎に認識できるようなリソースモニタを表示することを特徴とする制御方法。 A control method for controlling an information processing apparatus capable of communicating with an apparatus capable of installing and executing a provided application,
The creation means, in response to receiving an instruction to create an application to be executed on the device, a module for realizing the function of the application, a test case for testing the function realized by the module, Create a test application that includes
The instructing means transmits the created test application to the apparatus and instructs the start of the processing of the test case,
The acquisition means acquires, after the instruction, resource usage during the operation of the test application and time information including a time when the test case processing is started,
The display means, based on the acquired resource usage and the time information, the difference between the resource usage used at the start of the test case and the resource usage used at the end of the test case A resource monitor that can recognize each test case.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012008207A JP2013149026A (en) | 2012-01-18 | 2012-01-18 | Information processing apparatus, control method, and program thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012008207A JP2013149026A (en) | 2012-01-18 | 2012-01-18 | Information processing apparatus, control method, and program thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013149026A true JP2013149026A (en) | 2013-08-01 |
Family
ID=49046483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012008207A Pending JP2013149026A (en) | 2012-01-18 | 2012-01-18 | Information processing apparatus, control method, and program thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013149026A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015090683A (en) * | 2013-11-07 | 2015-05-11 | 富士通株式会社 | Computer program, information processing method and information processing device |
KR101830936B1 (en) * | 2017-11-14 | 2018-04-04 | (주)오픈메이드컨설팅 | Performance Improving System Based Web for Database and Application |
EP4085336B1 (en) * | 2019-12-31 | 2024-05-15 | Microsoft Technology Licensing, LLC | Computer resource leak detection |
-
2012
- 2012-01-18 JP JP2012008207A patent/JP2013149026A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015090683A (en) * | 2013-11-07 | 2015-05-11 | 富士通株式会社 | Computer program, information processing method and information processing device |
KR101830936B1 (en) * | 2017-11-14 | 2018-04-04 | (주)오픈메이드컨설팅 | Performance Improving System Based Web for Database and Application |
EP4085336B1 (en) * | 2019-12-31 | 2024-05-15 | Microsoft Technology Licensing, LLC | Computer resource leak detection |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5724549B2 (en) | Portable terminal device and self-diagnosis method | |
US20140211021A1 (en) | Test system for evaluating mobile device and driving method thereof | |
US8797338B2 (en) | Platform agnostic screen capture tool | |
JP2013069077A (en) | System, information processing device and control method thereof, image formation device and control method thereof and program | |
US20120050336A1 (en) | Touch-based remote control | |
US20130205307A1 (en) | Analytics data collection with low integration cost for dynamic message passing systems | |
TWI476587B (en) | Testing method and testing apparatus for testing function of electronic apparatus | |
JP5921292B2 (en) | Information processing apparatus, control method, and program | |
JP2013149026A (en) | Information processing apparatus, control method, and program thereof | |
JP4941674B2 (en) | Simulation system | |
JP2017201736A (en) | Image processing apparatus, method for controlling the image processing apparatus, and program | |
JP6057740B2 (en) | Image forming apparatus, information processing method, and program | |
CN101983374A (en) | Chassis button to activate graphical user interface to enable user to select diagnostics and/or recovery | |
JP4957506B2 (en) | Management program, information processing apparatus, and information processing system | |
JP5020121B2 (en) | Information processing apparatus, image forming apparatus, and information processing method | |
JP2017228191A (en) | Image processing apparatus, debug support method, and debug support program | |
JP2013145502A (en) | Information processing apparatus, control method and program thereof | |
JP2013101560A (en) | Printer, control method therefor, and program therefor | |
JP5621426B2 (en) | Option information analysis system, option information analysis method and program | |
JP2013069078A (en) | Information processor and control method thereof, and program | |
JP2013145473A (en) | Information processing apparatus and control method thereof, image forming apparatus and control method thereof, system and program | |
JP5836814B2 (en) | Image forming apparatus, control method, and program | |
KR100818604B1 (en) | Componentized method of the execution program of a windows based and a screen apparatus using method thereof | |
JP5847492B2 (en) | Image forming apparatus, system, test method, and program | |
JP2019049826A (en) | Information processing apparatus and program |