JP2013149026A - Information processing apparatus, control method, and program thereof - Google Patents

Information processing apparatus, control method, and program thereof Download PDF

Info

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
Application number
JP2012008207A
Other languages
Japanese (ja)
Inventor
Katsuya Sakai
克也 坂井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2012008207A priority Critical patent/JP2013149026A/en
Publication of JP2013149026A publication Critical patent/JP2013149026A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

PROBLEM TO BE SOLVED: To solve a problem in which: in an image forming apparatus, platform processing such as a job operation is performed asynchronously with processing of applications; and therefore, it is difficult to detect and specify processing having resource leak by using a framework for an automatic test.SOLUTION: When platform processing is under way, test case execution is controlled to be performed after the completion of the platform processing. Processing suspected to have a leak is narrowed down from a change in the amount of resource before and after the test case execution, and the test case suspected to have a leak is re-executed with firmware for debugging.

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, Patent Document 1 discloses a mechanism that automatically performs from build of an application to acquisition of a test result, stores the state of the application platform, and facilitates debugging work.

また、このような画像形成装置では、アプリケーションプラットフォーム上で動作するアプリケーションのデバッグのためのデバッグ用ファームウェアも提供されている。デバッグ用ファームウェアを使うと、アプリケーションの実行速度は著しく遅くなるが、より詳細な内部情報を取得可能になるため、詳細な解析に有用である。例えば、ヒープダンプに関する情報を取得することが可能である。   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).

特願2008−545688Japanese Patent Application No. 2008-545688 特開2006−350876JP 2006-350876

しかしながら、前述の方法ではリソースリークが発生しているという事実は確認できても、どのようなテストを実行した時にリソースのリークが発生しているのかが認識しづらいという問題があった。   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.

本発明の実施形態に係る画像形成装置の内部構成の一例を示すブロック図である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のHDD104に記憶されたソフトウェア構造図である3 is a software structure diagram stored in the HDD 104 of the image forming apparatus 1 as an example of the image forming apparatus of the present invention. FIG. 画像形成装置1とネットワークで接続された開発用PC300のハードウェア構成を示す図である2 is a diagram illustrating a hardware configuration of a development PC 300 connected to the image forming apparatus 1 via a network. FIG. 本発明の統合開発システムの一例である統合開発システム400のソフトウェア構成図であるIt is a software block diagram of the integrated development system 400 which is an example of the integrated development system of this invention. 統合開発環境システム400を利用してテストを行う場合の画像形成装置1のソフトウェアブロック図である3 is a software block diagram of the image forming apparatus 1 when performing a test using the integrated development environment system 400. FIG. テスト用アプリケーション502の構成を示すブロック図であるIt is a block diagram which shows the structure of the test application 502 表示部306に表示される統合開発環境システム400の操作画面の一例である4 is an example of an operation screen of the integrated development environment system 400 displayed on the display unit 306. 図7(a)のプルダウンメニュー703の何れかが選択された場合の組み込みアプリケーション開発支援ツール405の処理の流れを示すフローチャートであるIt is a flowchart which shows the flow of a process of the embedded application development support tool 405 when one of the pull-down menus 703 of Fig.7 (a) is selected. 図8のフローチャートを実行後の組み込みアプリケーション開発支援ツール405の処理の流れを示すフローチャートであるFIG. 9 is a flowchart showing a processing flow of an embedded application development support tool 405 after executing the flowchart of FIG. 8. FIG. デバイス状態監視要求を受けた際のテストブローカ内のモジュールの処理の流れを示すフローチャートであるIt is a flowchart which shows the flow of a process of the module in a test broker at the time of receiving a device state monitoring request テスト用アプリケーションを受信した際のテストブローカの処理の流れを示したフローチャートであるIt is the flowchart which showed the flow of the process of the test broker at the time of receiving the application for a test. デバッグモードへの切り替え要求を受けた際のテストブローカの処理の流れを示したフローチャートであるIt is the flowchart which showed the flow of the processing of the test broker at the time of receiving the switch request to debug mode 画像形成装置の電源を入れた際の起動プログラム207の処理の流れを示すフローチャートである6 is a flowchart showing a flow of processing of a startup program 207 when the image forming apparatus is turned on.

以下、図面を参照して本発明の実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。   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 image forming apparatus 1 illustrated in FIG. 1 includes a controller unit 100 that controls each unit in the image forming apparatus 1, an operation unit 112, a scanner unit 123, and a printer unit 125 as a basic configuration. The operation unit 112 includes, for example, hard keys such as a numeric keypad for inputting numbers and a start key for executing processing, and a liquid crystal touch panel, and provides a user interface for the user to operate the image forming apparatus 1. To do. By touching (pressing down) an icon or a button (or a hard key) representing each setting item displayed on the touch panel of the operation unit 112, it is possible to input settings and information to the image forming apparatus 1.

スキャナユニットであるスキャナ部123は、原稿等の画像を画像データとして読み取る。プリントユニットであるプリンタ部125は、記録用紙を搬送し、その記録用紙に画像データを可視画像として印刷する。コントローラユニット100は、バス122を介してスキャナ部123に接続され、またバス124を介してプリンタ部125に接続される。また、コントローラユニット100は、LAN113や公衆回線(WAN)114や無線115を介して他の機器に接続して、画像情報やデバイス情報の入出力制御を行う。なお、画像処理ユニットとしてスキャナユニットとプリンタユニット以外のものを搭載していても良い。   A scanner unit 123 serving as a scanner unit reads an image such as a document as image data. The printer unit 125, which is a print unit, transports recording paper and prints image data as a visible image on the recording paper. The controller unit 100 is connected to the scanner unit 123 via the bus 122 and connected to the printer unit 125 via the bus 124. The controller unit 100 is connected to other devices via the LAN 113, the public line (WAN) 114, and the wireless 115, and performs input / output control of image information and device information. An image processing unit other than the scanner unit and the printer unit may be mounted.

CPU101は、システム全体を制御するコントローラである。RAM102は、CPU101が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ROM103はブートROMである。ROM103には、システムのブートプログラムが格納されている。HDD104は、ハードディスクドライブであり、システムソフトウェアや画像データ、後述する通信部111が有するすべての無線通信に関する情報(無線通信の仕様)を格納する。   The CPU 101 is a controller that controls the entire system. A RAM 102 is a system work memory for the CPU 101 to operate, and is also an image memory for temporarily storing image data. The ROM 103 is a boot ROM. The ROM 103 stores a system boot program. The HDD 104 is a hard disk drive, and stores system software, image data, and all wireless communication information (wireless communication specifications) of the communication unit 111 described later.

画像形成装置では、使用したい機能を実装したアプリケーションをインストールすることで機能を増やすことができる。アプリケーションには、アプリケーションの機能を実現するモジュールが含まれエチル。アプリケーションのインストールにより、画像形成装置上で各種機能を動かすためのアプリケーションプログラムが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 RAM 102 or the HDD 104.

操作部I/F106は、ユーザインターフェース(UI)である操作部112との間のインターフェース部であり、操作部112に表示すべきデータを操作部112に対して出力する。また、操作部112からユーザが入力した情報を、CPU101に伝える役割を行う。Network部109は、LAN113に接続され、情報の入出力を行う。MODEM110は、公衆回線114に接続され、情報の入出力を行う。   The operation unit I / F 106 is an interface unit with the operation unit 112 that is a user interface (UI), and outputs data to be displayed on the operation unit 112 to the operation unit 112. Also, it plays a role of transmitting information input by the user from the operation unit 112 to the CPU 101. A network unit 109 is connected to the LAN 113 and inputs / outputs information. The MODEM 110 is connected to the public line 114 and inputs / outputs information.

通信部111は、不図示のアンテナを介して無線(WIRELESS)115に接続され、情報の入出力を行う。また、通信部111は、複数種類の無線通信を行うことが可能である。上記各デバイスがシステムバス107上に配置される。イメージバス(ImageBus)I/F105は、システムバス107と、画像データを高速で転送する画像バス108とを接続し、データ構造を変換するバスブリッジである。画像バス108は、PCIバスまたはIEEE1394等で規定されるバスである。画像バス108上に配置される各デバイスにおいて、ラスターイメージプロセッサ(RIP)116は、PDLコードをビットマップイメージに展開する。デバイスI/F部117は、スキャナ部123またはプリンタ部125をコントローラユニット100に接続し、画像データの同期系/非同期系の変換を行う。   The communication unit 111 is connected to a wireless (WIRELESS) 115 via an antenna (not shown), and inputs and outputs information. The communication unit 111 can perform a plurality of types of wireless communication. Each of the above devices is arranged on the system bus 107. An image bus I / F 105 is a bus bridge that connects a system bus 107 and an image bus 108 that transfers image data at high speed and converts a data structure. The image bus 108 is a bus defined by a PCI bus or IEEE1394. In each device placed on the image bus 108, a raster image processor (RIP) 116 expands the PDL code into a bitmap image. The device I / F unit 117 connects the scanner unit 123 or the printer unit 125 to the controller unit 100, and performs synchronous / asynchronous conversion of image data.

スキャナ画像処理部118は、入力画像データに対して補正、加工、または編集を行う。プリンタ画像処理部119は、プリント出力画像データに対して、プリンタ部125に合った補正、解像度変換等を行う。画像回転部120は、画像データの回転を行う。画像処理部121は、画像データに対する、JPEG、JBIG、MMR、MH等の圧縮伸張処理や、PDF、TIFF、OCR、暗号化等のフォーマット変換処理を行う。   The scanner image processing unit 118 corrects, processes, or edits input image data. The printer image processing unit 119 performs correction, resolution conversion, and the like suitable for the printer unit 125 on the print output image data. The image rotation unit 120 rotates image data. The image processing unit 121 performs compression / decompression processing such as JPEG, JBIG, MMR, and MH, and format conversion processing such as PDF, TIFF, OCR, and encryption on the image data.

図2は本発明の画像形成装置の一例である画像形成装置1のHDD104に記憶されたソフトウェア構造図である。CPU101により、これらの構成を実現するためのプログラムが実行されることによって各種機能が実現される。   FIG. 2 is a software structure diagram stored in the HDD 104 of the image forming apparatus 1 which is an example of the image forming apparatus of the present invention. Various functions are realized by the CPU 101 executing programs for realizing these configurations.

201は、OS層であり、一般的にはリアルタイムOSが使用されるが、昨今ではLinux(登録商標)等の汎用OSが使用されることもある。202は、Java(登録商標)に代表される仮想マシンであり、アプリケーションの実行環境を提供するものである。203は、アプリケーションフレームワークであり、アプリケーションのライフサイクルを管理する機能を提供するものである。204は、インストーラサービスであり、後述のアプリケーションA,Bなど複数のアプリケーションを、アプリケーションフレームワーク203に登録することでインストール処理を行うものである。   Reference numeral 201 denotes an OS layer, and a real-time OS is generally used. However, a general-purpose OS such as Linux (registered trademark) may be used recently. Reference numeral 202 denotes a virtual machine represented by Java (registered trademark), which provides an application execution environment. An application framework 203 provides a function for managing the life cycle of the application. Reference numeral 204 denotes an installer service, which performs installation processing by registering a plurality of applications such as applications A and B described later in the application framework 203.

205,206は、インストーラサービス204によってインストールされたアプリケーションであり、画像形成装置1上で様々な機能提供するものである。アプリケーション205,206は図外のI/Fを使用して、操作部112を介してユーザとやり取りを行うことが可能である。また、Network部109を介して、PCなどからデータを受信し、プリンタ部125を使って印刷することも可能である。なお、インストーラサービス204はWebアプリを備えており、PCからブラウザでアクセスすることにより、ブラウザ上にアプリケーションのインストールページが表示される。インストールページには、インストールするアプリケーションを指定するためのテキストボックスおよびインストールボタンが備えられている。インストールページにてアプリケーションファイルを指定してインストールボタンを押すことによりアプリケーションファイルがPCからインストーラサービス204に転送される。インストーラサービス204はアプリケーションファイルを受信するとアプリケーションフレームワーク203にアプリケーションファイルを登録してインストールを行う。   Reference numerals 205 and 206 denote applications installed by the installer service 204 and provide various functions on the image forming apparatus 1. The applications 205 and 206 can exchange with the user via the operation unit 112 using an I / F (not shown). It is also possible to receive data from a PC or the like via the network unit 109 and print using the printer unit 125. Note that the installer service 204 includes a Web application, and an application installation page is displayed on the browser when accessed by a browser from a PC. The installation page is provided with a text box for specifying an application to be installed and an install button. The application file is transferred from the PC to the installer service 204 by specifying the application file on the installation page and pressing the install button. Upon receiving the application file, the installer service 204 registers the application file in the application framework 203 and performs installation.

また、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 activation program 207 is used to isolate a virtual machine to be activated, and activates a virtual machine corresponding to the activation mode. The start mode includes a normal mode and a debug mode. In the normal mode, control is performed so that the normal virtual machine is started, and in the debug mode, the debug virtual machine is started. The debug virtual machine can acquire debug information during the operation of the application. For example, it is possible to investigate a heap dump. The heap dump will be described later.

図3は、画像形成装置1とネットワークで接続され通信可能な情報処理装置である開発用PC300のハードウェア構成を示す図である。画像形成装置用アプリケーションの開発を行う場合、通常、開発用PC300にて統合開発環境を動作させてプログラム作成・テスト・デバッグなどを行う。また、アプリケーションのテストを行う場合は、開発PC300から画像形成装置100にNetwork部109経由でアプリケーションをインストールして画像形成装置1上でアプリケーションを動作させてテストを行う。   FIG. 3 is a diagram illustrating a hardware configuration of a development PC 300 that is an information processing apparatus that can communicate with the image forming apparatus 1 via a network. When developing an application for an image forming apparatus, an integrated development environment is usually operated on the development PC 300 to create a program, test, debug, and the like. When testing an application, the application is installed on the image forming apparatus 100 from the development PC 300 via the network unit 109 and the application is operated on the image forming apparatus 1 to perform the test.

CPU301は開発PC300上の各処理をつかさどる中央演算装置である。ROM302は開発PC300の各処理に関わるプログラムやデータを記憶する。RAM303は、開発PC300の各処理に関わる一時的なデータを記憶する。HDD304は、開発PC300の各処理に関わるプログラムやデータ、および一時的なデータ、本発明に関わるプログラムモジュールが格納される。入力装置305は、開発PC300への指示入力を受け付けるキーボードやポインティングデバイスである。表示部306は、開発PC300の動作状況や、開発PC300上で動作する各プログラムが出力する情報を表示する。ネットワークI/F307は、ネットワーク経由でLANおよびインタネットに接続し、外部と情報交換を行う。それらの要素がシステムバス308により結び付き、データをやりとりしている。   The CPU 301 is a central processing unit that controls each process on the development PC 300. The ROM 302 stores programs and data related to each process of the development PC 300. The RAM 303 stores temporary data related to each process of the development PC 300. The HDD 304 stores programs and data related to each process of the development PC 300, temporary data, and program modules related to the present invention. The input device 305 is a keyboard or a pointing device that receives an instruction input to the development PC 300. The display unit 306 displays the operation status of the development PC 300 and information output by each program operating on the development PC 300. A network I / F 307 is connected to a LAN and the Internet via a network and exchanges information with the outside. These elements are connected by a system bus 308 to exchange data.

図4は本発明の統合開発システムの一例である統合開発システム400のソフトウェア構成図である。統合開発システム400は、開発PC300上で動作するアプリケーション開発のためのシステムである。統合開発環境システム400は、統合開発基盤401と、統合開発基盤401に利用される内部ツールA402並びに外部ツールB404と連携する内部ツールB403を有する。さらには、これら内部ツールと同様の位置づけで組み込みアプリケーション開発支援ツール405を有する。   FIG. 4 is a software configuration diagram of an integrated development system 400 which is an example of the integrated development system of the present invention. The integrated development system 400 is a system for application development that operates on the development PC 300. The integrated development environment system 400 includes an integrated development platform 401, an internal tool A402 used for the integrated development platform 401, and an internal tool B403 that cooperates with an external tool B404. Furthermore, it has an embedded application development support tool 405 in the same position as these internal tools.

統合開発環境システム400は、例えば、Eclipseが利用できるが、これに限定されない。なお、Eclipseとは、オープンソースの統合ソフトウェア開発環境であり、ソフトウェア開発の共通プラットフォームである。Eclipseは、2種類のツールを利用することで様々な機能を提供する。Eclipseにプラグインとして登録・提供されている内部ツールと、Windows(登録商標)、UNIX(登録商標)などが提供するデバッガやコンパイラといったEclipse内には存在しない外部ツールとの2種類である。   For example, Eclipse can be used as the integrated development environment system 400, but the integrated development environment system 400 is not limited to this. Note that Eclipse is an open source integrated software development environment and a common platform for software development. Eclipse provides various functions by using two types of tools. There are two types: an internal tool registered and provided as a plug-in in Eclipse, and an external tool that does not exist in Eclipse such as a debugger or compiler provided by Windows (registered trademark), UNIX (registered trademark), or the like.

統合開発基盤401は、開発しているアプリケーションの管理や各ツールを連携させるためのインターフェースなどを含んでいる。外部ツールの例としては、Java(登録商標)のコンパイルやデバッグを行うために用いられるJDK(Java Development kit)がある。内部ツールは、統合開発基盤401が提供するインターフェースを介して、外部ツールの機能を利用することもできる。図4で示している統合開発環境システム400が持つ内部ツールや外部ツールの構成などは、1つの例にすぎず、これに限定されない。   The integrated development platform 401 includes an interface for managing the application being developed and for linking each tool. An example of the external tool is JDK (Java Development kit) used for compiling and debugging Java (registered trademark). The internal tool can also use the function of the external tool via the interface provided by the integrated development platform 401. The configuration of the internal tools and external tools included in the integrated development environment system 400 shown in FIG. 4 is merely an example, and is not limited to this.

組み込みアプリケーション開発支援ツール405は、画像形成装置との各種要求の通信を行い、後述する406〜410の各手段を使用して、画像形成装置で動作可能なアプリケーションの生成やテスト支援機能を実現する。ここで、テスト支援機能とは、テスト用アプリケーション生成、実行、テスト結果の表示までを自動で行うことができる機能のことである。アプリケーション開発者は、テストケースを実装することで、画像形成装置上において自動でテストが実行され、テストの実行結果を得ることができるようになる。テストケースには1つ以上のテストプログラムが含まれており、個々のテストプログラムはメソッドとして実装される。操作手段406は、開発しているアプリケーションを画像形成装置へインストールする機能を有する。その他、画像形成装置上で動作しているアプリケーションの開始、停止、デバッグ機能も有する。   The embedded application development support tool 405 communicates various requests with the image forming apparatus, and realizes generation of an application operable on the image forming apparatus and a test support function using each unit 406 to 410 described later. . Here, the test support function is a function that can automatically perform test application generation, execution, and test result display. By installing the test case, the application developer can automatically execute a test on the image forming apparatus and obtain a test execution result. A test case includes one or more test programs, and each test program is implemented as a method. The operation unit 406 has a function of installing an application being developed in the image forming apparatus. In addition, it also has functions for starting, stopping, and debugging applications running on the image forming apparatus.

アプリケーション生成手段407は、リリース用のアプリケーションを生成する機能や、テスト用のプログラムを含んだテスト用アプリケーションを生成する機能を有する。テスト用アプリケーションには、機能を実現するためのモジュールと、その機能をテストするためのテストケースの2つが少なくとも含まれる。リソースモニタ手段408は、画像形成装置から送られてくるメモリ情報を基に画像形成装置のメモリ状況をグラフ表示する機能を有する。また、後述するテストケースの実行状況を受信してグラフにテストケースの開始時点がわかるように図示する機能も有する。さらに、画像形成装置上のジョブ動作状況も合わせて表示する機能を有する。   The application generation unit 407 has a function of generating a release application and a function of generating a test application including a test program. The test application includes at least two modules: a module for realizing the function and a test case for testing the function. The resource monitor unit 408 has a function of displaying a graph of the memory status of the image forming apparatus based on the memory information sent from the image forming apparatus. In addition, it also has a function of receiving a test case execution status, which will be described later, so that the graph shows the start time of the test case. Further, it has a function of displaying the job operation status on the image forming apparatus.

リソース異常検出手段409は、テストケースの実行開始時および終了時の使用リソース量の差を計算してリソースリークの疑いのあるテストケースを抽出する機能を有する。再テスト実行手段410は、画像形成装置に対して起動モードの切り替え要求を出す機能を有する。また、アプリケーション生成手段407を使ってメモリリークの疑いのあるテストケースのみを含むテスト用アプリケーションを作成し、デバッグモードに切り替えた画像形成装置でテスト再実行を行う機能を有する。   The resource abnormality detection unit 409 has a function of calculating a difference in the amount of used resources at the start and end of execution of a test case and extracting a test case that is suspected of resource leak. The retest execution unit 410 has a function of issuing a startup mode switching request to the image forming apparatus. In addition, the application generation unit 407 is used to create a test application including only a test case suspected of having a memory leak, and perform a test re-execution with the image forming apparatus switched to the debug mode.

ワークスペース411は、統合開発環境システム400が参照するものであり、プロジェクトと呼ばれる単位でアプリケーションやテストアプリケーションを管理する領域である。ワークスペース411には複数のプロジェクトが格納されても構わない。ここで、プロジェクト412は、マニフェストファイル413、ソースファイル414から構成される。マニフェストファイル413とは、アプリケーションの持つ各種情報が記載されたファイルであり、ソースファイル414はアプリケーションの機能を実現するためのプログラムファイルである。   The workspace 411 is referred to by the integrated development environment system 400, and is an area for managing applications and test applications in units called projects. A plurality of projects may be stored in the workspace 411. Here, the project 412 includes a manifest file 413 and a source file 414. The manifest file 413 is a file in which various information possessed by the application is described, and the source file 414 is a program file for realizing the function of the application.

統合開発環境システム400を使ってアプリケーションのテストを行いたい場合は、テスト用のプロジェクトを作成する。テスト用のプロジェクト415は、テスト設定ファイル416、マニフェストファイル413、ソースファイル414から構成される。テスト設定ファイル416には、テスト対象のアプリケーションのプロジェクト情報が保存されている。テスト対象のアプリケーションはテスト用のプロジェクトを作成する時にユーザによって指定される。テスト用のプロジェクト415に含まれるソースファイルは、一つ以上のアプリケーションをテストするためのプログラム(テストケース)を含む。テストを実行する際は、テスト対象アプリケーションのプロジェクトとテスト用プロジェクトとから一つのテスト用アプリケーションを生成する。生成したテスト用アプリケーションを画像形成装置上で動作させてテストを実行する。   When it is desired to test an application using the integrated development environment system 400, a test project is created. The test project 415 includes a test setting file 416, a manifest file 413, and a source file 414. The test setting file 416 stores project information of the test target application. The application to be tested is specified by the user when creating a test project. The source file included in the test project 415 includes a program (test case) for testing one or more applications. When the test is executed, one test application is generated from the test application project and the test project. The generated test application is operated on the image forming apparatus to execute the test.

図5は、統合開発環境システム400を利用してテストを行う場合の画像形成装置1のソフトウェアブロック図である。図2の状態の画像形成装置1に対してアプリケーション開発者がインストーラサービス204経由でテストブローカ501をインストールすることで統合開発環境システム400を利用したテストを行うことができるようになる。テストブローカ501は、開発PC300から、テスト用アプリケーション502を受信してテストを実行したり、テスト結果を開発PC300に送信したり、テスト完了後にテスト用アプリ502をアンインストールしたりするためのモジュールである。   FIG. 5 is a software block diagram of the image forming apparatus 1 when a test is performed using the integrated development environment system 400. When the application developer installs the test broker 501 via the installer service 204 in the image forming apparatus 1 in the state of FIG. 2, a test using the integrated development environment system 400 can be performed. The test broker 501 is a module for receiving a test application 502 from the development PC 300 and executing a test, sending a test result to the development PC 300, and uninstalling the test application 502 after the test is completed. is there.

本実施例のシステムにおいては、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 test broker 501 includes a device monitoring module 503. The device monitoring module 503 also has a function of monitoring the memory usage status and job status on the image forming apparatus and periodically transmitting information to the integrated development environment system. It can be understood that the test application 502 is a test application including an application developed by the user and a test program.

図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 test application 502 in FIG. The test application 502 includes an application 601, a test case 602, a test agent 603, and application information 604. The application 601 is an entity of an application developed by the developer, is also a module that realizes the function of the application, and is generated from a source file included in the project 412 of the test target application. This application runs on the image forming apparatus 1 and provides an authentication function or a function using a scanner or a printer to the user. A test case 602 is a program for testing the application 601 and is a test case for testing a function realized by the application 601, and is generated from a source file included in the test project 415.

テストケースの例としては、
・プリント設定の組み合わせを判定するメソッドにていろいろな設定の組み合わせでメソッドを実行し正しい判定が行われるかをチェックするテストケース
・ジョブ投入メソッドを実行した時にメソッドが正常終了するかをチェックするテストケース
などがあげられる。一般にアプリケーションの規模が大きくなるとテストケースの数も膨大となるため、規模の大きなアプリケーションのテストを実行するには時間がかかる。テストエージェント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 test agent 603 receives the instruction from the test broker 501 and executes the test case 602. The application information 604 is a manifest file included in the test project 415, and includes test application identification information, application name, and version information.

図7は、表示部306に表示される統合開発環境システム400の操作画面の一例である。図7(a)は統合開発環境システム400のメイン画面の一例を示す図である。ソースファイル編集画面701では、プロジェクト内のソースファイルが表示される。プロジェクト・エクスプローラ702には、開発中のアプリの一覧がプロジェクトの単位で表示されている。また、入力装置305を介してプロジェクト・エクスプローラ702内のテスト用プロジェクトを選択するとプルダウンメニュー703が表示される。プルダウンメニューには「テスト実行」および「テスト実行とメモリリークチェック」および「テスト実行とメモリリークチェック(詳細)」の項目が表示される。   FIG. 7 is an example of an operation screen of the integrated development environment system 400 displayed on the display unit 306. FIG. 7A is a diagram illustrating an example of a main screen of the integrated development environment system 400. On the source file editing screen 701, source files in the project are displayed. The project explorer 702 displays a list of applications under development in units of projects. When a test project in the project explorer 702 is selected via the input device 305, a pull-down menu 703 is displayed. The items of “test execution”, “test execution and memory leak check”, and “test execution and memory leak check (details)” are displayed in the pull-down menu.

プルダウンメニュー703にて「テスト実行」が選択されると、テスト対象アプリケーションのプロジェクトおよびテスト用プロジェクトからテスト用アプリケーションを生成する。そして、画像形成装置に生成したテスト用アプリケーションを送信してテストを実行し、テストが完了するとテスト結果がテスト結果表示領域705に表示される。   When “execute test” is selected from the pull-down menu 703, a test application is generated from the test target application project and the test project. Then, the generated test application is transmitted to the image forming apparatus to execute the test. When the test is completed, the test result is displayed in the test result display area 705.

またプルダウンメニュー703にて「テスト実行とメモリリークチェック」が選択されると、リソースモニタ画面(図7(b))およびリーク候補リスト画面(図7(c))が表示される。リソースモニタ画面(図7(b))では、テスト実行中のメモリ状況や画像形成装置上のジョブの状況を確認することができる。グラフ表示領域710には画像形成装置のメモリ使用量がグラフとして表示される。ジョブ状況表示領域711は、画像形成装置のジョブの実行状況が表示される。ジョブが実行中の区間はバー712が表示される。ボタン714はリソースモニタ画面を閉じるためのボタンである。713はテストケース名であり、テストケースの実行が開始されるタイミングで縦線と合わせて描画される。   When “Test execution and memory leak check” is selected in the pull-down menu 703, a resource monitor screen (FIG. 7B) and a leak candidate list screen (FIG. 7C) are displayed. On the resource monitor screen (FIG. 7B), the memory status during the test execution and the job status on the image forming apparatus can be confirmed. In the graph display area 710, the memory usage of the image forming apparatus is displayed as a graph. The job status display area 711 displays the job execution status of the image forming apparatus. A bar 712 is displayed for the section in which the job is being executed. A button 714 is a button for closing the resource monitor screen. Reference numeral 713 denotes a test case name, which is drawn together with a vertical line at the timing when execution of the test case is started.

テストケース名および縦線が描画されるため、グラフ表示領域710に表示されるメモリ使用量のグラフとの対応関係が分かりやすくなる。横軸は時間を示しており、全ての領域で共通である。このためテストケース、メモリ、ジョブ状況の関係性を一目で理解することが可能である。テストケースの開始時と終了時の消費メモリ差分を計算し所定の閾値を超える場合は、メモリリークの疑いがあるためテストケース名を強調表示する。(図7(b))は、テストケースを処理している際に使用したリソース使用量をテストケースの実行順毎に時系列で表示する例である。テストケースの開始時間は各テストケース毎に異なるので、このように時系列で表示することでどのテストケースの処理に問題があるかをより正確に認識することができる。ジョブ状況を表示する理由は、リークによりリソースの使用量に差異が発生しているのか、リークは発生していないがジョブの実行によって一時的にメモリが使用されているだけなのかを認識できるようにするためである。   Since the test case name and the vertical line are drawn, the correspondence with the memory usage graph displayed in the graph display area 710 can be easily understood. The horizontal axis indicates time and is common to all areas. Therefore, it is possible to understand at a glance the relationship between the test case, memory, and job status. If the difference between the memory consumption at the start and end of the test case is calculated and exceeds a predetermined threshold, the test case name is highlighted because there is a suspicion of memory leak. (FIG. 7B) is an example in which the resource usage used when processing the test case is displayed in time series for each test case execution order. Since the test case start time differs for each test case, it is possible to more accurately recognize which test case has a problem by displaying in time series in this way. The reason for displaying the job status is that it is possible to recognize whether there is a difference in resource usage due to the leak, or whether there is no leak but only memory is temporarily used by job execution It is to make it.

また、リーク候補リスト画面(図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. Reference numeral 721 denotes a difference in memory usage before and after execution of the test. A close button 722 is a button for closing the leak candidate list screen.

またプルダウンメニュー703にて「テスト実行とメモリリークチェック(詳細)」が選択されると、「テスト実行とメモリリークチェック」の処理を行った後に、リークの疑いのあるテストケースについてより詳細に解析を実行する。そして、リーク要因詳細リスト画面(図7(d))を表示する。具体的には、画像形成装置のデバッグ用仮想マシンに切り替えて、リークの疑いのあるテストケースのみを含んだテスト用アプリケーションを実行することにより詳細な情報を取得し、結果を別ウインドウに表示する。デバッグ用仮想マシンには、メモリ内容をダンプする機能等デバッグに有用な機能が備わっているため詳細な情報を取得して解析することが可能になる。   When “Test execution and memory leak check (details)” is selected in the pull-down menu 703, the test case suspected of leaking is analyzed in more detail after performing the “test execution and memory leak check” process. Execute. Then, the leak factor detail list screen (FIG. 7D) is displayed. Specifically, by switching to a virtual machine for debugging of the image forming apparatus and executing a test application including only test cases suspected of leaking, detailed information is acquired and the results are displayed in a separate window. . Since the debugging virtual machine has functions useful for debugging such as a function of dumping memory contents, it is possible to acquire and analyze detailed information.

730は、リークの疑いのある処理を実行したテストケースのメソッド名である。731はリークの疑いのあるオブジェクトのクラス名である。732はテストの実行前と後のオブジェクト数の差分である。閉じるボタン733はリーク要因詳細リスト画面を閉じるためのボタンである。   Reference numeral 730 denotes a method name of a test case that has executed a process suspected of leaking. Reference numeral 731 denotes a class name of an object suspected of leaking. Reference numeral 732 denotes a difference between the number of objects before and after the test is executed. A close button 733 is a button for closing the leak factor detail list screen.

図8は、図7(a)のプルダウンメニュー703の何れかが選択された場合の組み込みアプリケーション開発支援ツール405の処理の流れを示すフローチャートである。   FIG. 8 is a flowchart showing a processing flow of the embedded application development support tool 405 when any of the pull-down menus 703 in FIG. 7A is selected.

組み込みアプリケーション開発支援ツール405がプルダウンメニュー703の選択を検知すると、アプリケーション生成手段407は、S801にてテスト用アプリケーションを作成する。具体的には、テスト情報ファイルからテスト対象プロジェクトを特定し、テスト対象のプロジェクトに含まれるソースファイルおよびテスト用プロジェクトに含まれるソースファイルをコンパイルしてアプリケーションを作成する。   When the embedded application development support tool 405 detects selection of the pull-down menu 703, the application generation unit 407 creates a test application in S801. Specifically, the test target project is identified from the test information file, and the source file included in the test target project and the source file included in the test project are compiled to create an application.

次にS802に進み、組み込みアプリケーション開発支援ツール405は、どのメニューが選択されたかを判定する。「テスト実行」が選択されたと判定された場合は、S805に進む。それ以外のメニューが選択されたと判定した場合はS803に進む。S803において、組み込みアプリケーション開発支援ツール405は、画像形成装置上のテストブローカ501にデバイス状態監視要求を送信する。次にS804に進み、リソースモニタ手段408が、リソースモニタ画面(図7(b))およびメモリリーク候補リスト画面(図7(c))を表示する。次にS805に進み、操作手段406がS801で生成したテスト用アプリケーションをテストブローカ501に送信し、テスト実行要求を送信する。テスト実行要求を受け取った画像形成装置は、テストアプリケーションに含まれるテストケースの処理を開始する。   In step S802, the embedded application development support tool 405 determines which menu has been selected. If it is determined that “Test execution” is selected, the process proceeds to S805. If it is determined that any other menu has been selected, the process proceeds to S803. In step S803, the embedded application development support tool 405 transmits a device status monitoring request to the test broker 501 on the image forming apparatus. In step S804, the resource monitor unit 408 displays a resource monitor screen (FIG. 7B) and a memory leak candidate list screen (FIG. 7C). In step S805, the operation unit 406 transmits the test application generated in step S801 to the test broker 501, and transmits a test execution request. The image forming apparatus that has received the test execution request starts processing a test case included in the test application.

次にS806において、組み込みアプリケーション開発支援ツール405はテストブローカ501からデータを受信する。次にS807に進み、組み込みアプリケーション開発支援ツール405は、受信したデータがテスト終了通知であったかどうかを判定する。もしテスト終了通知であった場合はS823に進む。S823において、リソースモニタ手段408はテスト結果を受信してテスト結果表示領域に結果を表示する。次にS824に進み、操作手段406はテスト用アプリケーションのアンインストール要求をテストブローカに送信して処理を終了する。   In step S <b> 806, the embedded application development support tool 405 receives data from the test broker 501. In step S807, the embedded application development support tool 405 determines whether the received data is a test end notification. If it is a test completion notification, the process proceeds to S823. In step S823, the resource monitor unit 408 receives the test result and displays the result in the test result display area. In step S824, the operation unit 406 transmits a test application uninstall request to the test broker, and the process ends.

一方、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 development support tool 405 determines whether the received data is a test case execution start notification. If it is a test case execution start notification, the process proceeds to S809. In step S809, the resource monitoring unit 408 receives test case start information. In the test case start time information, the name of the started test case and the start time of the test case are stored. In step S810, the resource monitor unit 408 displays the test case name on the resource monitor screen based on the received information, and draws a vertical line so that the time when the test case is started can be known. In step S811, the resource monitoring unit 408 stores the test case start time information and the memory usage at that time (received in step S821) on the storage medium, and then returns to step S806.

一方、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 development support tool 405 determines whether the data received in step S806 is a test case execution end notification. If it is a test case execution end notification, the process advances to step S813. In step S813, the resource monitor unit 408 receives test case execution end information. The test case execution end information stores the test case name and the test case end time of the test case that has been executed. In step S814, the resource abnormality detection unit 409 calculates the difference between the memory usage at the start of the test case and the memory usage at the end. In step S815, the resource abnormality detection unit 409 determines whether the calculated difference exceeds a predetermined threshold. If the threshold is not exceeded, the process returns to S806, and if the threshold is exceeded and it is determined that there is a difference in resource usage, the process proceeds to S816. In S816, the resource monitor unit 408 highlights the test case name, adds the test case name and memory usage amount difference information to the leak candidate list screen, and returns to S806. The start time information and the execution end notification are part of the time information, and there are no restrictions on the format and content of the time information.

一方、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 development support tool 405 determines whether the data received in step S806 is a job state change notification. If it is a job status change notification, the process advances to step S818. In step S818, the resource monitor unit 408 receives the job information and proceeds to step S819. The job information stores the job type and job status (created / erased). In step S819, the resource monitoring unit 408 updates the drawing contents in the job status area on the memory information screen based on the received job information, and the process returns to step S806.

一方、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 development support tool 405 determines whether the data received in step S806 is a resource information notification. If it is not a resource information notification, the data is ignored and the process returns to S806. If it is determined in S820 that the notification is resource information, the process proceeds to S821. In S821, the resource monitoring unit 408 receives and stores the resource information, and proceeds to S822. The resource information includes the resource usage during the operation of the test application. In step S822, the resource monitor unit 408 updates the drawing of the memory status screen (FIG. 7B). Specifically, the graph display area 710 is updated based on the resource usage in the received resource information, the display of the job status display area 711 is updated, and scroll control is performed when the screen does not fit on the screen.

図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 development support tool 405 after executing the flowchart of FIG. The embedded application development support tool 405 determines whether “test execution and memory leak analysis (details)” has been selected when the pull-down menu 703 is selected in step S901. If “test execution and memory leak analysis (details)” is not selected, the process is terminated. If it is determined that “test execution and memory leak analysis (details)” is selected, the process advances to step S902. In step S902, the retest execution unit 410 determines whether information exists in the leak candidate list. If there is no information in the leak candidate list, the process is terminated. If there is information in the leak candidate list, the process proceeds to S903. In step S903, the retest execution unit 410 transmits a request to switch to the debug mode to the test broker, and reconnects to the test broker. Since switching to the debug mode involves restarting the image forming apparatus, the retry is repeated until the reconnection is successful. When the reconnection to the test broker is completed, the process advances to step S904, and the application generation unit 407 generates a test application including only test cases existing in the leak candidate list. That is, a test application that includes a test case that is suspected of leaking and that does not include a test case that is suspected of leaking is generated, and such an application is referred to as a debugging application.

次にS905に進み、操作手段406がS904で生成したテスト用アプリケーションを送信し、再度、テスト実行要求を出す。次にS906に進み、組み込みアプリケーション開発支援ツール405は、テストブローカからデータを受信する。次にS907に進み、組み込みアプリケーション開発支援ツール405は、受信したデータがテスト終了通知であったかどうかを判定する。もしテスト終了通知であった場合はS916に進む。S916では組み込みアプリケーション開発支援ツール405は、テスト結果を受信してテスト結果表示領域に結果を表示する。次にS917に進み、操作手段406はテスト用アプリケーションのアンインストール要求をテストブローカに送信して処理を終了する。   In step S905, the operation unit 406 transmits the test application generated in step S904, and issues a test execution request again. In step S906, the embedded application development support tool 405 receives data from the test broker. In step S907, the embedded application development support tool 405 determines whether the received data is a test end notification. If it is a test end notification, the process proceeds to S916. In S916, the embedded application development support tool 405 receives the test result and displays the result in the test result display area. In step S917, the operation unit 406 transmits a test application uninstall request to the test broker, and the process ends.

一方、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 development support tool 405 determines whether it is a test case execution start notification. If it is determined that it is a test case execution start notification, the process proceeds to S909, and the resource monitor unit 408 receives the test case execution start information and heap dump information. A heap dump is a dump of memory contents on a virtual machine, and is data that can analyze detailed information such as how many objects of which class exist. In step S910, the resource monitoring unit 408 calculates the number of objects existing from the heap dump for each class, stores the number in the storage medium, and returns to step S906. If the number of objects at the end of the test case process is greater than the number of objects at the start, it can be determined that there is a suspicion of leak.

一方、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 development support tool 405 determines whether the data received in step S906 is a test case execution end notification. If it is determined that the test case execution end notification is not received, the process returns to S906 without doing anything. If it is determined in S911 that the test case execution completion notification is received, the process proceeds to S912. In S912, the resource monitor unit 408 receives the test case end time information and the heap dump information. In step S913, the resource monitoring unit 408 calculates the number of existing objects for each class from the heap dump information, stores the calculated number on the storage medium, and then advances to step S914. In step S <b> 914, the resource abnormality detection unit 409 calculates the difference in the number of objects at the start and end of the test case for each class. In step S915, the resource abnormality detection unit 409 determines whether there is a difference greater than or equal to a threshold value. If it is determined that there is no more than the threshold, the process returns to S906. If there is a threshold value or more, the process proceeds to S916, and the resource monitoring unit 408 adds information to the leak factor detail list and returns to S906.

図10は、デバイス状態監視要求を受けた際のテストブローカ内のデバイス監視モジュール503の処理の流れを示すフローチャートである。デバイス状態監視要求を受けるとデバイス監視モジュール503は、まずS1001にて画像形成装置上のメモリ情報取得を行う。次にS1002に進み、デバイス監視モジュール503は組み込みアプリケーション開発支援ツールにリソース情報通知およびメモリ情報を渡す。次にS1003に進み、デバイス監視モジュール503はジョブ状況を取得する。次にS1004に進み、ジョブ状況に変化があったかどうかを判定する。なお、初回のジョブ状況取得時はジョブ状況に変化があったと判定される。それ以降は直前に取得した状況から変化があるかによって判定が行われる。   FIG. 10 is a flowchart showing a processing flow of the device monitoring module 503 in the test broker when a device status monitoring request is received. Upon receiving the device status monitoring request, the device monitoring module 503 first acquires memory information on the image forming apparatus in S1001. In step S1002, the device monitoring module 503 passes the resource information notification and the memory information to the embedded application development support tool. In step S1003, the device monitoring module 503 acquires the job status. In step S1004, it is determined whether the job status has changed. Note that when the job status is acquired for the first time, it is determined that the job status has changed. Thereafter, the determination is made depending on whether there is a change from the situation acquired immediately before.

もしジョブ状況に変化がないと判定された場合は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 device monitoring module 503 transmits a job status change notification and job status information, and passes the information to the embedded application development support tool. In step S1006, the device monitoring module 503 sleeps for a predetermined time. In this embodiment, sleep is performed for 200 ms. In step S1007, it is determined whether the test is completed. If the test has not ended, the device monitoring module 503 returns to S1001, and if the test has ended, the process ends.

図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 test broker 501 receives the test application file in S1101. Next, the test broker 501 installs a test application using the installer service 204 in S1102. Next, the test broker 501 starts a test application in S1103. Next, the test broker 501 determines whether there is a test case to be executed in S1104. If there are unexecuted test cases included in the test application, it is determined that there is a test case to be executed. If it is determined that there is a test case to be executed, the process proceeds to S1105. In step S1105, the test broker 501 acquires the job status of the image forming apparatus and determines whether a job exists. If a job exists, the process returns to S1105. If it is determined in S1105 that there is no job, the process proceeds to S1106.

S1106において、テストブローカ501はテストケース実行開始通知およびテストケース実行時情報を組み込みアプリケーション開発支援ツール405に送信する。次にS1107に進み、テストブローカ501は起動モードがデバッグモードか否かを判定する。もしデバッグモードでないと判定された場合はS1109に進む。一方、S1107にてデバッグモードであると判定された場合はS1108に進む。S1108において、テストブローカ501はヒープダンプを取得して組み込みアプリケーション開発支援ツール405に送信し、S1109に進む。S1109ではテストブローカ501はテストケースを実行する。テストケースが実行されるとアプリケーションのテストが行われテスト結果が記憶媒体上に蓄積される。テストケースが終了するとS1110に進む。   In step S <b> 1106, the test broker 501 transmits a test case execution start notification and test case execution time information to the embedded application development support tool 405. In step S1107, the test broker 501 determines whether the start mode is the debug mode. If it is determined that the debug mode is not set, the process advances to step S1109. On the other hand, if it is determined in S1107 that the debug mode is set, the process proceeds to S1108. In step S1108, the test broker 501 acquires a heap dump and transmits it to the embedded application development support tool 405, and the process advances to step S1109. In S1109, the test broker 501 executes a test case. When the test case is executed, the application is tested and the test result is accumulated on the storage medium. When the test case ends, the process proceeds to S1110.

S1110において、テストブローカ501は画像形成装置のジョブ状況を取得してジョブの存在有無を判定する。もしジョブが存在した場合はS1110に戻る。S1110にてジョブが存在しないと判定されるとS1111に進む。S1111において、テストブローカ501はテストケース終了通知とテストケース終了時情報を組み込みアプリケーション開発支援ツール405に送信する。次にS1112に進み、テストブローカ501は起動モードがデバッグモードか否かを判定する。もしデバッグモードでないと判定された場合はS1104に戻る。一方、S1112にてデバッグモードであると判定された場合はS1113に進む。S1113ではテストブローカ501はヒープダンプを取得して組み込みアプリケーション開発支援ツール405に送信しS1104に戻る。   In step S1110, the test broker 501 acquires the job status of the image forming apparatus and determines whether a job exists. If a job exists, the process returns to S1110. If it is determined in S1110 that no job exists, the process advances to S1111. In step S1111, the test broker 501 transmits a test case end notification and test case end information to the embedded application development support tool 405. In step S1112, the test broker 501 determines whether the start mode is the debug mode. If it is determined not to be in the debug mode, the process returns to S1104. On the other hand, if it is determined in S1112 that the debugging mode is set, the process proceeds to S1113. In S1113, the test broker 501 acquires a heap dump, transmits it to the embedded application development support tool 405, and returns to S1104.

一方、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 test broker 501 transmits a test end notification to the embedded application development support tool 405. In step S1115, the test broker 501 collectively transmits the test results accumulated during the test execution in step S1109 to the embedded application development support tool 405, and ends the process.

図12は、デバッグモードへの切り替え要求を受けた際のテストブローカ501の処理の流れを示したフローチャートである。テストブローカ501は、まずS1201にて起動モード変更要求を受信する。次にS1202に進み、テストブローカ501は起動モード設定を要求に応じて変更する。起動モード設定は不揮発メモリ上に記憶される。次にS1203に進み、テストブローカ501は画像形成装置を再起動して処理を終了する。   FIG. 12 is a flowchart showing a processing flow of the test broker 501 when a request for switching to the debug mode is received. First, the test broker 501 receives an activation mode change request in step S1201. In step S1202, the test broker 501 changes the startup mode setting according to the request. The startup mode setting is stored on the nonvolatile memory. In step S1203, the test broker 501 restarts the image forming apparatus and ends the process.

図13は、画像形成装置の電源を入れた際の起動プログラム207の処理の流れを示すフローチャートである。まずS1301にて起動プログラム207は内部で保持している起動モード設定を取得する。次にS1302に進み、起動プログラム207は起動モードがデバッグモードであるかを判定する。もし起動モードがデバッグモードであると判定された場合はS1303に進み、デバッグ用のファームウェアを起動して処理を終了する。もしS1302にて起動モードがデバッグモードでないと判定された場合はS1304に進み、起動プログラム207は通常用のファームウェアを起動して処理を終了する。   FIG. 13 is a flowchart showing the flow of processing of the activation program 207 when the image forming apparatus is turned on. First, in step S <b> 1301, the activation program 207 acquires the activation mode setting held therein. In step S1302, the activation program 207 determines whether the activation mode is a debug mode. If it is determined that the start mode is the debug mode, the process advances to step S1303 to start the debug firmware and the process ends. If it is determined in S1302 that the activation mode is not the debug mode, the process proceeds to S1304, where the activation program 207 activates normal firmware and ends the process.

以上、説明したように、本発明によれば、画像形成装置のジョブ実行中は新たなテストケースを実行しないように制御したことにより、アプリケーション以外の要因のメモリ変動を排除して解析することができるようになる。これにより、アプリケーションのメモリリークを判別することが容易となる。また、テストケースとメモリ変化の対応をグラフで表示できるため、どのテストケースを実行した場合にメモリリークが発生するのかが容易に判別可能になる。例えば、図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 Image forming apparatus 300 PC for development
400 Integrated Development Environment 405 Embedded Application Development Support Tool 501 Test Broker 502 Test Application 802 Test Case

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 information according to claim 1, wherein the resource monitor displayed by the display unit displays the resource usage used when processing the test case in time series for each execution order of the test case. Processing equipment. 前記装置はスキャナユニット、および/またはプリントユニットを含む画像処理ユニットを備えた画像形成装置であって、
前記リソース使用量とは、前記画像処理ユニットを制御するためのアプリケーションを動作させる際に使用したメモリの使用量であることを特徴とする請求項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.
請求項7に記載の制御方法を情報処理装置に実行させるためのプログラム。   A program for causing an information processing apparatus to execute the control method according to claim 7.
JP2012008207A 2012-01-18 2012-01-18 Information processing apparatus, control method, and program thereof Pending JP2013149026A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
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