(57)【要約】【課題】開発目的の際に設定ファイル内で外部公開宣言すると、誤って外部公開宣言をしたまま一般市場の環境に導入してしまうセキュリティ上の問題がある。【解決手段】開発環境からの指示に従ってアプリケーションへのテストを行う際に、テストの対象のアプリケーションと、当該アプリケーションに対するテストケースを含むテスト用アプリケーションとをインストールするインストール手段と、前記アプリケーションに対して、前記テスト用アプリケーションによるテストケースを実行する実行手段と、前記テストケースの実行が完了した後、前記アプリケーションと、前記テスト用アプリケーションとをアンインストールするアンインストール手段とを有し、前記アプリケーションが有する設定ファイルには、前記テストケースを実行する際に前記テスト用アプリケーションが前記アプリケーションを呼び出すための設定が含まれる。【選択図】  図１０
2013145473.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションをインストールして実行可能な実行環境を備える画像形成装置であって、
開発環境を備える情報処理装置からアプリケーションのテスト実行の指示を受けたことに応じて、テストの対象であるアプリケーションと、当該アプリケーションに対するテストケースを含むテスト用アプリケーションとをインストールするインストール手段と、
前記アプリケーションに対して、前記テスト用アプリケーションによるテストケースを実行する実行手段と、
前記テストケースの実行が完了した後、前記アプリケーションと、前記テスト用アプリケーションとをアンインストールするアンインストール手段と
を有し、
前記アプリケーションが有する設定ファイルには、前記テストケースを実行する際に前記テスト用アプリケーションが前記アプリケーションを呼び出すための設定が含まれることを特徴とする画像形成装置。
【請求項２】
前記テストケースの実行結果を前記開発環境に送信する手段を更に有し、
前記アンインストール手段は、前記テストケースの実行結果が前記開発環境により出力された後にアンインストールを行うことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
アプリケーションをインストールして実行可能な画像形成装置で実行されるアプリケーションの開発環境を提供する情報処理装置であって、
ユーザの指示に従って、前記画像形成装置において実行されるアプリケーションと、前記アプリケーションに対するテストケースを含むテスト用アプリケーションとを作成する作成手段と、
前記作成手段にて作成した前記アプリケーションと、前記テスト用アプリケーションとを前記画像形成装置へ送信する送信手段と
を有し、
前記作成手段は、前記アプリケーションおよび前記テスト用アプリケーションを作成する際に、前記テストケースを実行する際に用いられる前記アプリケーションおよび前記テスト用アプリケーションそれぞれが有する設定ファイルにおいて、前記テスト用アプリケーションが前記アプリケーションを呼び出すための設定を含めて作成することを特徴とする情報処理装置。
【請求項４】
前記作成手段は、前記テスト用アプリケーションを作成しない場合には、前記設定ファイルにおいて、前記テスト用アプリケーションが前記アプリケーションを呼び出すための設定を含めないことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記作成手段は、前記テスト用アプリケーションを作成する前に、前記アプリケーションのソースコードからテストにて用いられるパッケージを特定する特定手段を更に有し、
前記テスト用アプリケーションを作成する指示を受け付けた際に、前記特定手段にて特定されたパッケージを呼び出すための設定を前記設定ファイルに含めることを特徴とする請求項３または４に記載の情報処理装置。
【請求項６】
前記作成手段は、前記テスト用アプリケーションを作成する際に、前記アプリケーションをインストールする画像形成装置を識別し、当該画像形成装置の機能に対応するテストケースを前記テスト用アプリケーションに含めることを特徴とする請求項３乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記画像形成装置から前記テストケースの実行結果を受信し、表示する手段を更に有することを特徴とする請求項３乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
提供されたアプリケーションをインストールして実行可能な画像形成装置と、前記画像形成装置にて実行するアプリケーションの開発環境を提供する情報処理装置とを含むシステムであって、
前記情報処理装置は、
ユーザの指示に従って、前記画像形成装置において実行されるアプリケーションと、前記アプリケーションに対するテストケースを含むテスト用アプリケーションとを作成する作成手段と、
前記作成手段にて作成した前記アプリケーションと、前記テスト用アプリケーションとを前記画像形成装置へ送信する送信手段と、
を有し、
前記作成手段は、前記アプリケーションおよび前記テスト用アプリケーションを作成する際に、前記テストケースを実行する際に用いられる前記アプリケーションおよび前記テスト用アプリケーションそれぞれが有する設定ファイルにおいて、前記テスト用アプリケーションが前記アプリケーションを呼び出すための設定を含めて作成し、
前記画像形成装置は、
前記情報処理装置から受信したテストの対象であるアプリケーションと、当該アプリケーションに対するテストケースを含むテスト用アプリケーションとをインストールするインストール手段と、
前記アプリケーションに対して、前記テスト用アプリケーションによるテストケースを実行する実行手段と、
前記テストケースの実行が完了した後、前記アプリケーションと、前記テスト用アプリケーションとをアンインストールするアンインストール手段と
を有することを特徴とするシステム。
【請求項９】
前記画像形成装置は、前記テストケースの実行結果を前記情報処理装置に送信する手段を更に有し、
前記情報処理装置は、前記画像形成装置から前記テストケースの実行結果を受信し、表示する手段を更に有することを特徴とする請求項８に記載のシステム。
【請求項１０】
アプリケーションをインストールして実行可能な実行環境を備える画像形成装置の制御方法であって、
開発環境を備える情報処理装置からアプリケーションのテスト実行の指示を受けたことに応じて、テストの対象であるアプリケーションと、当該アプリケーションに対するテストケースを含むテスト用アプリケーションとをインストールするインストール工程と、
前記アプリケーションに対して、前記テスト用アプリケーションによるテストケースを実行する実行工程と、
前記テストケースの実行が完了した後、前記アプリケーションと、前記テスト用アプリケーションとをアンインストールするアンインストール工程と
を有し、
前記アプリケーションが有する設定ファイルには、前記テストケースを実行する際に前記テスト用アプリケーションが前記アプリケーションを呼び出すための設定が含まれることを特徴とする制御方法。
【請求項１１】
アプリケーションをインストールして実行可能な画像形成装置で実行されるアプリケーションの開発環境を提供する情報処理装置の制御方法であって、
ユーザの指示に従って、前記画像形成装置において実行されるアプリケーションと、前記アプリケーションに対するテストケースを含むテスト用アプリケーションとを作成する作成工程と、
前記作成工程にて作成した前記アプリケーションと、前記テスト用アプリケーションとを前記画像形成装置へ送信する送信工程と
を有し、
前記作成工程において、前記アプリケーションおよび前記テスト用アプリケーションを作成する際に、前記テストケースを実行する際に用いられる前記アプリケーションおよび前記テスト用アプリケーションそれぞれが有する設定ファイルにおいて、前記テスト用アプリケーションが前記アプリケーションを呼び出すための設定を含めて作成することを特徴とする制御方法。
【請求項１２】
コンピュータを、
開発環境を備える情報処理装置からアプリケーションのテスト実行の指示を受けたことに応じて、テストの対象であるアプリケーションと、当該アプリケーションに対するテストケースを含むテスト用アプリケーションとをインストールするインストール手段、
前記アプリケーションに対して、前記テスト用アプリケーションによるテストケースを実行する実行手段、
前記テストケースの実行が完了した後、前記アプリケーションと、前記テスト用アプリケーションとをアンインストールするアンインストール手段
として機能させ、
前記アプリケーションが有する設定ファイルには、前記テストケースを実行する際に前記テスト用アプリケーションが前記アプリケーションを呼び出すための設定が含まれることを特徴とするプログラム。
【請求項１３】
コンピュータを、
ユーザの指示に従って、画像形成装置において実行されるアプリケーションと、前記アプリケーションに対するテストケースを含むテスト用アプリケーションとを作成する作成手段、
前記作成手段にて作成した前記アプリケーションと、前記テスト用アプリケーションとを前記画像形成装置へ送信する送信手段
として機能させ、
前記作成手段は、前記アプリケーションおよび前記テスト用アプリケーションを作成する際に、前記テストケースを実行する際に用いられる前記アプリケーションおよび前記テスト用アプリケーションそれぞれが有する設定ファイルにおいて、前記テスト用アプリケーションが前記アプリケーションを呼び出すための設定を含めて作成することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションをインストール可能な画像形成装置におけるアプリケーションに対するテストを実行するためのシステム、情報処理装置およびその制御方法、画像形成装置およびその制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、画像形成装置及びその制御において、リアルタイムＯＳ上にさらに別の組み込みシステム向けの実行環境（例えばＪａｖａ（登録商標）など）を構築することを可能にしている。更に、画像形成装置の制御を行うことのできるアプリケーションを外部からダウンロードして追加できるアプリケーション・プラットフォームが搭載されるようになった。
【０００３】
このようなアプリケーション・プラットフォーム上でアプリケーションを開発する際の開発環境を提供されている。例えば、ビルドからテスト結果の取得まで自動的に行い、アプリケーション・プラットフォームの状態を記憶し、デバッグ作業を容易にするような仕組みが特許文献１に開示されている。
【０００４】
一方、開発したアプリケーションの動作を確認するための別のテスト用アプリケーションを作成する。そして、そのアプリケーションから、開発したアプリケーションのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を呼び出し、動作確認を行う手法がある。この場合、アプリケーションが動作するプラットフォームのフレームワークが提供する機能を利用して、テストされるアプリケーションは、他のアプリケーション（外部）からＡＰＩをコールされるように予め外部公開を許可する実装を行う必要がある。
【０００５】
具体的には、アプリケーション内に実装する設定ファイルにおいて、外部公開用にエクスポート宣言する必要がある。一方、テストを行うアプリケーション側では、外部公開されているＡＰＩを利用できるように実装を行う必要がある。具体的には、ＡＰＩの設定ファイルであるマニフェストファイルにエクスポート宣言がされている前提で、アプリケーション側で当該ＡＰＩをインポート宣言する必要がある。このように、２つのアプリケーションを利用して、開発したアプリケーションの動作を確認するためには、双方のアプリケーションにテストを実行するための実装を行う必要があった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２００８−５４５６８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
テスト用のアプリケーションを利用してアプリケーションの動作を確認する手法は、アプリケーション開発中のデバッグ作業に対しては効果のある手法である。しかしながら、一般販売されるアプリケーションでは、セキュリティの観点から、外部からＡＰＩをコールされないように構成されている。例えば、エクスポート宣言が不要なＡＰＩについては、マニフェストファイルにてエクスポート宣言をしないように構成されている。
【０００８】
また、アプリケーション開発時に、デバッグ目的でマニフェストファイルに一時的にエクスポート宣言した場合、その変更を元に戻すことを忘れてしまうこともある。この場合、外部からアプリケーションが呼び出せる状態となり、開発者が意図せずにこのまま市場に販売された場合、悪意のあるユーザからアプリケーションに対し攻撃される可能性もある。よって、セキュリティの観点で課題である。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本願発明は以下の構成を有する。すなわち、提供されたアプリケーションをインストールして実行可能な画像形成装置と、前記画像形成装置にて実行するアプリケーションの開発環境を提供する情報処理装置とを含むシステムであって、前記情報処理装置は、ユーザの指示に従って、前記画像形成装置において実行されるアプリケーションと、前記アプリケーションに対するテストケースを含むテスト用アプリケーションとを作成する作成手段と、前記作成手段にて作成した前記アプリケーションと、前記テスト用アプリケーションとを前記画像形成装置へ送信する送信手段と、を有し、前記作成手段は、前記アプリケーションおよび前記テスト用アプリケーションを作成する際に、前記テストケースを実行する際に用いられる前記アプリケーションおよび前記テスト用アプリケーションそれぞれが有する設定ファイルにおいて、前記テスト用アプリケーションが前記アプリケーションを呼び出すための設定を含めて作成し、前記画像形成装置は、前記情報処理装置から受信したテストの対象であるアプリケーションと、当該アプリケーションに対するテストケースを含むテスト用アプリケーションとをインストールするインストール手段と、前記アプリケーションに対して、前記テスト用アプリケーションによるテストケースを実行する実行手段と、前記テストケースの実行が完了した後、前記アプリケーションと、前記テスト用アプリケーションとをアンインストールするアンインストール手段とを有する。
【００１０】
本願発明の別の構成として、アプリケーションをインストールして実行可能な画像形成装置で実行されるアプリケーションの開発環境を提供する情報処理装置であって、ユーザの指示に従って、前記画像形成装置において実行されるアプリケーションと、前記アプリケーションに対するテストケースを含むテスト用アプリケーションとを作成する作成手段と、前記作成手段にて作成した前記アプリケーションと、前記テスト用アプリケーションとを前記画像形成装置へ送信する送信手段とを有し、前記作成手段は、前記アプリケーションおよび前記テスト用アプリケーションを作成する際に、前記テストケースを実行する際に用いられる前記アプリケーションおよび前記テスト用アプリケーションそれぞれが有する設定ファイルにおいて、前記テスト用アプリケーションが前記アプリケーションを呼び出すための設定を含めて作成する。
【発明の効果】
【００１１】
本発明によれば、アプリケーションの作成時において用いられた設定が、意図しない状態で継続されることを防止し、アプリケーションの作成におけるセキュリティ面の向上を可能とする。
【図面の簡単な説明】
【００１２】
【図１】画像形成装置の内部構成の一例を示すブロック図。
【図２】画像形成装置のソフトウェア構造例を示す図。
【図３】画像形成装置と接続された開発用ＰＣのハードウェア構成例を示す図。
【図４】統合開発システムのソフトウェア構成例を示す図。
【図５】テストを行う場合の画像形成装置のソフトウェア構成例のブロック図。
【図６】生成手段のより詳細なソフトウェア構成例のブロック図。
【図７】テストブローカのソフトウェア構成例のブロック図。
【図８】テストケースを作成する処理のフローチャート。
【図９】統合開発システムのＵＩの一例を示す図。
【図１０】アプリケーションの生成からテストを実行する一連の処理を示したフローチャート。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１４】
（第１の実施形態）
［画像形成装置のハードウェア構成］
以下、本発明の実施の形態について図面を参照して詳細に説明する。図１は、本発明の実施形態に係る画像形成装置の内部構成の一例を示すブロック図である。
【００１５】
図１に示す画像形成装置１は、基本的な構成として、画像形成装置１内の各部を制御するコントローラユニット１００と、操作部１１２と、スキャナ部１２３と、プリンタ部１２５とを備える。操作部１１２は、例えば、数字を入力するためのテンキーや処理の実行を行うためのスタートキーなどのハードキーや液晶タッチパネルで構成され、ユーザが画像形成装置１を操作するためのユーザインタフェースを提供する。操作部１１２のタッチパネルに表示される各設定項目を表すアイコンやボタン（もしくはハードキー）をタッチ（押下）することで、画像形成装置１に設定や情報の入力を行うことが可能である。
【００１６】
スキャナ部１２３は、原稿等の画像を画像データとして読み取る。プリンタ部１２５は、記録用紙を搬送し、その記録用紙に画像データを可視画像として印刷する。
【００１７】
コントローラユニット１００は、バス１２２を介してスキャナ部１２３に接続され、またバス１２４を介してプリンタ部１２５に接続される。また、コントローラユニット１００は、ＬＡＮ１１３や公衆回線（ＷＡＮ）１１４や無線１１５を介して他の機器に接続して、画像情報やデバイス情報の入出力制御を行う。
【００１８】
ＣＰＵ１０１は、システム全体を制御するコントローラである。ＲＡＭ１０２は、ＣＰＵ１０１が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＲＯＭ１０３はブートＲＯＭである。ＲＯＭ１０３には、システムのブートプログラムが格納されている。ＨＤＤ１０４は、ハードディスクドライブであり、システムソフトウェアや画像データ、後述する通信部１１１が有するすべての無線通信に関する情報（無線通信の仕様）を格納する。
【００１９】
画像形成装置１では、使用したい機能を実装したアプリケーション（以下、「アプリ」と呼ぶ）をインストールすることで機能を増やすことができる。アプリのインストールにより、画像形成装置１上で各種機能を動かすためのアプリケーションプログラムがＲＡＭ１０２やＨＤＤ１０４に記憶される。
【００２０】
操作部Ｉ／Ｆ１０６は、ユーザインタフェース（ＵＩ）である操作部１１２との間のインタフェース部であり、操作部１１２に表示すべきデータを操作部１１２に対して出力する。また、操作部１１２からユーザが入力した情報を、ＣＰＵ１０１に伝える役割を行う。Ｎｅｔｗｏｒｋ部１０９は、ＬＡＮ１１３に接続され、情報の入出力を行う。ＭＯＤＥＭ１１０は、公衆回線１１４に接続され、情報の入出力を行う。
【００２１】
通信部１１１は、不図示のアンテナを介して無線（ＷＩＲＥＬＥＳＳ）１１５に接続され、情報の入出力を行う。また、通信部１１１は、複数種類の無線通信を行うことが可能である。上記各デバイスがシステムバス１０７上に配置される。
【００２２】
イメージバス（ＩｍａｇｅＢｕｓ）Ｉ／Ｆ１０５は、システムバス１０７と、画像データを高速で転送する画像バス１０８とを接続し、データ構造を変換するバスブリッジである。画像バス１０８は、ＰＣＩバスまたはＩＥＥＥ１３９４等で規定されるバスである。
【００２３】
画像バス１０８上に配置される各デバイスにおいて、ラスターイメージプロセッサ（ＲＩＰ）１１６は、ＰＤＬコードをビットマップイメージに展開する。デバイスＩ／Ｆ部１１７は、スキャナ部１２３またはプリンタ部１２５をコントローラユニット１００に接続し、画像データの同期系／非同期系の変換を行う。
【００２４】
スキャナ画像処理部１１８は、入力画像データに対して補正、加工、または編集を行う。プリンタ画像処理部１１９は、プリント出力画像データに対して、プリンタ部１２５に合った補正、解像度変換等を行う。画像回転部１２０は、画像データの回転を行う。画像処理部１２１は、画像データに対する、ＪＰＥＧ、ＪＢＩＧ、ＭＭＲ、ＭＨ等の圧縮伸張処理や、ＰＤＦ、ＴＩＦＦ、ＯＣＲ、暗号化等のフォーマット変換処理を行う。
【００２５】
［画像形成装置のソフトウェア構成］
図２は、本発明に係る画像形成装置の一例である画像形成装置１のＨＤＤ１０４に記憶されたソフトウェア構造図である。ＣＰＵ１０１によりこれらのプログラムが実行されることにより、各種機能が実現される。
【００２６】
ＯＳ（オペレーティングシステム）２０１は、一般的にはリアルタイムＯＳが使用される。またＯＳとして、Ｌｉｎｕｘ（登録商標）等の汎用ＯＳが使用されてもかまわない。ＪａｖａＶＭ２０２は、Ｊａｖａ（登録商標）に代表される仮想マシンであり、アプリの実行環境を提供する。なお、仮想マシンは、これに限定するものではない。アプリフレームワーク２０３は、アプリのライフサイクルを管理する機能を提供する。ここでのライフルサイクルとしては、例えば、アプリのインストール、開始、テストケース実行、停止、アンインストールなど、アプリが画像形成装置にインストールされてからアンインストールするまでの一連の流れを管理している。インストーラサービス２０４は、アプリＡ２０５、アプリＢ２０６など複数のアプリを、アプリフレームワーク２０３に登録することでインストール処理を行う。また、開発者の指示等に従って、インストーラサービス２０４は、不要なアプリのアンインストールを行う。
【００２７】
アプリＡ２０５、およびアプリＢ２０６は、インストーラサービス２０４によってインストールされたアプリであり、画像形成装置１上で様々な機能を提供する。アプリＡ２０５およびアプリＢ２０６は、不図示のＩ／Ｆを使用して、操作部１１２を介してユーザとやり取りを行うことが可能である。また、アプリＡ２０５およびアプリＢ２０６は、Ｎｅｔｗｏｒｋ部１０９を介して、ＰＣなどからデータを受信し、プリンタ部１２５を使って印刷することも可能である。なお、インストーラサービス２０４は、ＰＣからブラウザ（不図示）を使用してアクセスされ、所定のアプリファイルを受信するものとする。
【００２８】
［ＰＣのハードウェア構成］
図３は、画像形成装置１とネットワークで接続された情報処理装置としての開発用ＰＣ３００のハードウェア構成を示す図である。画像形成装置用アプリの開発を行う場合、通常、開発用ＰＣ３００にて統合開発環境を動作させてプログラム作成・テスト・デバッグなどを行う。また、アプリのテストを行う場合は、開発用ＰＣ３００から画像形成装置１にＮｅｔｗｏｒｋ部１０９経由でアプリをインストールして画像形成装置１上でアプリを動作させてテストを行う。
【００２９】
ＣＰＵ３０１は、開発用ＰＣ３００上の各処理を司る中央演算装置である。ＲＯＭ３０２は、開発用ＰＣ３００の各処理に関わるプログラムやデータを記憶する。ＲＡＭ３０３は、開発用ＰＣ３００の各処理に関わる一時的なデータを記憶する。ＨＤＤ３０４は、開発用ＰＣ３００の各処理に関わるプログラムやデータ、および一時的なデータ、本発明に関わるプログラムモジュールが格納される。入力装置３０５は、開発用ＰＣ３００への指示入力を受け付けるキーボードやポインティングデバイスである。表示部３０６は、開発用ＰＣ３００の動作状況や、開発用ＰＣ３００上で動作する各プログラムが出力する情報を表示する。ネットワークＩ／Ｆ３０７は、ネットワーク経由でＬＡＮおよびインターネットに接続され、外部と情報交換を行う。ＵＳＢＨ  Ｉ／Ｆ３０８はＵＳＢホストインタフェースであり、さまざまなＵＳＢデバイスを接続する。上述した開発用ＰＣ３００内の構成要素がシステムバス３０９により結び付き、データをやりとりしている。
【００３０】
［統合開発システムにおけるソフトウェア構成］
図４は、本発明の統合開発システムの一例である統合開発環境システム４００のソフトウェア構成図である。本実施形態において、この統合開発環境システム４００および外部ツール４０４は、開発用ＰＣ３００上で構成される。統合開発環境システム４００は、統合開発基盤４０１と、統合開発基盤４０１に利用される内部ツールＡ４０２、並びに外部ツール４０４と連携する内部ツールＢ４０３を有する。さらには、これら内部ツールと同様の位置づけで組み込みアプリ開発支援ツール４０５を有する。
【００３１】
統合開発環境システム４００は、例えば、Ｅｃｌｉｐｓｅ（登録商標）が利用できるが、これに限定されない。なお、Ｅｃｌｉｐｓｅとは、オープンソースの統合ソフトウェア開発環境であり、ソフトウェア開発の共通プラットフォームである。Ｅｃｌｉｐｓｅは、２種類のツールを利用することで様々な機能を提供する。ここでの２種類のツールとは、Ｅｃｌｉｐｓｅにプラグインとして登録・提供されている内部ツールと、Ｗｉｎｄｏｗｓ（登録商標）、ＵＮＩＸ（登録商標）などが提供するデバッガやコンパイラといったＥｃｌｉｐｓｅ内には存在しない外部ツールである。
【００３２】
統合開発基盤４０１は、開発しているアプリの管理や各ツールを連携させるためのインタフェースなどを含んでいる。外部ツールの例としては、Ｊａｖａ（登録商標）のコンパイルやデバッグを行うために用いられるＪＤＫ（Ｊａｖａ  Ｄｅｖｅｌｏｐｍｅｎｔ  ｋｉｔ）がある。
【００３３】
内部ツールは、統合開発基盤４０１が提供するインタフェースを介して、外部ツールの機能を利用することもできる。なお、本実施形態においては、開発者によって統合開発環境システム４００に外部ツールとしてＪＤＫが既に設定済みであり、内部ツールから統合開発基盤４０１を介して利用できる。なお、図４で示している統合開発環境システム４００が持つ内部ツールや外部ツールの構成などは、１つの例にすぎず、これに限定されない。
【００３４】
ここで、組み込みアプリ開発支援ツール４０５は、例えば、画像形成装置のような組み込み機器で動作可能なアプリの生成やテスト支援の機能を有する。操作部４０６は、開発しているアプリを組み込み機器もしくは対応するシミュレータへインストールする機能を有する。その他、組み込み機器および組み込み機器向けシミュレータで動作しているアプリケーションの開始、停止、デバッグ機能を有する。生成部４０７は、アプリを生成する機能を有する。
【００３５】
［画像形成装置のソフトウェア構成（テスト時）］
図５は、統合開発環境システム４００を利用してテストを行う場合の画像形成装置１のソフトウェアブロック図である。なお、各ソフトウェア構成は、画像形成装置１のＲＯＭ３０２に記憶されている各プログラムがＲＡＭ３０３にロードされ、ロードされたプログラムをＣＰＵ３０１により実行させることで実現するものである。図２の状態の画像形成装置１に対してアプリケーション開発者がインストーラサービス２０４経由でテストブローカ５０１をインストールすることで統合開発環境を利用したテストを行うことができるようになる。
【００３６】
テストブローカ５０１は、開発用ＰＣ３００から、テスト実行アプリ５０２やテスト実行アプリ５０２からテストを実行されるターゲットアプリ５０３を受信する。そして、テストブローカ５０１は、インストーラサービス２０４経由で各アプリを画像形成装置１にインストールする。これにより、各アプリは画像形成装置１上において、実行可能な状態となる。さらに、テストブローカ５０１は、テストを実行したり、テスト結果を開発用ＰＣ３００に送信したり、テスト完了後にテスト実行アプリ５０２およびターゲットアプリ５０３をインストーラサービス２０４経由でアンインストールしたりするためのモジュールである。
【００３７】
図５における、ターゲットアプリ５０３とは、具体的には、アプリ開発者が統合開発環境システム４００を利用して開発したアプリケーションのことであり、画像形成装置１上での動作検証を行う対象となるアプリである。また、テスト実行アプリ５０２とは、ターゲットアプリ５０３をテストするためのテスト用アプリケーションであり、ターゲットアプリ５０３に実装されている機能を実行するためのテスト実行命令が記述されている。
【００３８】
また、図５には示されていないが、ターゲットアプリ５０３およびテスト実行アプリ５０２はそれぞれ、マニフェストファイルと呼ばれる設定ファイルを有する。
【００３９】
［生成部］
図６は、統合開発環境システム４００を利用してテストを行う場合の組み込みアプリ開発支援ツール４０５に含まれる生成部４０７のより詳細なソフトウェアブロック図である。ソース管理部６０１は、ターゲットアプリ５０３のソースコード（以下、ソース）やテストケースのソースの管理を行う。アプリ作成部６０２は、ソース管理部６０１で管理されているソースをコンパイルして画像形成装置１にインストール可能なアプリファイルまたはテスト実行アプリファイルを生成する。テスト制御部６０３は、通信制御部６０４を介して、テストブローカ５０１を経由し、画像形成装置１にインストールされたテスト実行アプリ５０２の実行指示や結果の受信を行う。通信制御部６０４は、テスト制御部６０３の指示に従って、他のアプリとのデータのやり取りなどに関する通信制御を行う。
【００４０】
［テストブローカ］
図７は、図５におけるテストブローカ５０１のソフトウェアブロック図である。テスト制御部７０１は、テスト用アプリのインストール・開始・停止・アンインストール・テストケース実行などの制御を行ったり、テスト結果を統合開発環境システム４００に送信したりする。接続先管理部７０２は、テスト用アプリと開発用ＰＣ３００との対応の管理を行う。通信制御部７０３は、開発用ＰＣ３００と各種データの送受信を行う。
【００４１】
また、テストブローカ５０１は、上述したインストーラサービス２０４を介して、画像形成装置１に各種アプリをインストール／アンインストールする。
【００４２】
［ＵＩの構成］
図９は、統合開発環境システム４００の統合開発基盤４０１が提供するＵＩの一例を示す図である。図９（ａ）は、統合開発環境システム４００におけるプログラム作成画面の一例である。
【００４３】
プロジェクト表示領域９０１は、統合開発環境上で開発を行っているプロジェクトについての情報を表示する領域であり、開発するアプリに含まれるクラスやファイルのリストが階層構造で表示される。ここでプロジェクトとは、統合開発環境システム４００上で開発を行っているアプリを構成するために必要なソースコード一式を表す。ソース表示領域９０２は、プロジェクト表示領域で選択したクラスのソースが表示される。アプリ作成者は、ソース表示領域９０２に示すソースコードを編集して、所望のアプリのソースコードを作成する。
【００４４】
一方、テストケースのプロジェクト９０３は、プロジェクト表示領域９０１にて表示したプログラムに対応したテストケースである。テストケースのプロジェクト９０３を選択して右クリックして表示されるメニュー９０４から「ターゲットアプリとテスト実行アプリ作成およびテスト実行」を選択する。この選択によりターゲットアプリ５０３とテスト実行アプリ５０２を作成した後、ターゲットデバイス上でのテスト実行が可能である。「ターゲットアプリとテスト実行アプリ作成およびテスト実行」が選択されると図９（ｂ）のダイアログが表示される。
【００４５】
図９（ｂ）において、テキストフィールド９１１はテストを実行する画像形成装置のホスト名もしくはＩＰアドレスを入力するためのフィールドである。ＯＫボタン９１２は、テストの実行を指示するためのボタンである。キャンセルボタン９１３は、テストの実行を取り消すためのボタンである。ユーザによりＯＫボタン９１２が押されると、テストが開始され、図９（ｃ）のダイアログが表示される。図９（ｃ）のダイアログは、全てのテストケースが実行完了すると自動的にダイアログが閉じる。実行中のテストを中断したい場合は、ユーザは終了ボタン９２１を押下することでテストを終了させることができる。
【００４６】
図９（ｄ）は、テスト終了時もしくは中断時に表示される画面の例である。この画面は、画像形成装置にて実行されたテストの結果が通知された後、表示される。テスト結果概要表示領域９３１には実行されたテストケース数およびテスト失敗数、エラー数およびテスト成功率が表示される。パッケージ情報表示領域９３２にはアプリのパッケージ毎のテスト結果の一覧が表示される。パッケージ名９３３をクリックすることでテストケースごとの細かい結果も表示可能である。ここで「パッケージ」とは、統合開発環境システム４００上で開発を行っているアプリを構成し、主に関連もしくは類似した機能（プログラム）をまとめたプログラムの集合である。
【００４７】
［ターゲットアプリとテスト実行アプリの生成処理］
図１０を用いて、ターゲットアプリ５０３とテスト実行アプリ５０２を作成およびテスト実行指示を受け付けた時の処理を、フローチャートを用いて説明する。具体的には、統合開発環境システム４００が、ターゲットアプリ５０３とテスト実行アプリ５０２を生成し、テストブローカ５０１に送信する。そして、テストブローカ５０１がターゲットアプリ５０３とテスト実行アプリ５０２を受信して、インストーラサービス２０４によりインストールする処理である。さらにテストが実行された後、テスト結果を統合開発環境システム４００に送信するまでの処理までを含む。
【００４８】
Ｓ１００１にて、統合開発環境システム４００は、ターゲットアプリ５０３とテスト実行アプリ５０２の作成とテストの実行指示を受け付ける。Ｓ１００２にて、統合開発環境システム４００は、ターゲットアプリ５０３の全パッケージの一覧を取得する。統合開発環境システム４００は、Ｓ１００２で取得したパッケージと同一のパッケージが、テスト実行アプリ５０２のコード内に存在するかを判断する（Ｓ１００３）。つまり、テスト実行アプリ５０２により指定されたテスト対象のパッケージを、ターゲットアプリ５０３を構成するパッケージの中から特定する。
【００４９】
同一のパッケージが存在しない場合には（Ｓ１００３にてＮＯ）、Ｓ１００８に進む。同一のパッケージが存在する場合には（Ｓ１００４にてＹＥＳ）、Ｓ１００４に進み、統合開発環境システム４００は、ターゲットアプリ５０３およびテスト実行アプリ５０２のマニフェストファイルの複製が存在するかを確認する。マニフェストファイルの複製が存在しない場合には（Ｓ１００４にてＮＯ）、統合開発環境システム４００は、マニフェストファイルの複製が存在しないアプリのマニフェストファイルの複製を作成する（Ｓ１００５）。
【００５０】
Ｓ１００６では、統合開発環境システム４００は、ターゲットアプリ５０３の複製したマニフェストファイルのＥｘｐｏｒｔ−ＰａｃｋａｇｅにＳ１００３で該当したパッケージ名を追記する。同様にＳ１００７では、統合開発環境システム４００は、テスト実行アプリ５０２の複製したマニフェストファイルのＩｍｐｏｒｔ−ＰａｃｋａｇｅにＳ１００３で該当したパッケージ名を追記する。ここで、Ｅｘｐｏｒｔ−Ｐａｃｋａｇｅにパッケージ名を追記することにより、追加されたパッケージに対するエクスポート宣言がなされたことを意味する。また、インポート宣言についても、マニフェストファイルにパッケージ名が記載されることで行われる。
【００５１】
Ｓ１００８では統合開発環境システム４００は、各アプリを生成する。なお、ここで用いられるマニフェストファイルは、複製されたマニフェストファイルを用いる。つまり、各アプリに対して、テスト用にインポート宣言およびエクスポート宣言がなされたマニフェストファイルが用いられることとなる。Ｓ１００９では、統合開発環境システム４００は、Ｓ１００８で作成した各アプリを通信制御部７０３からテストブローカ５０１の通信制御部７０３に対して送信する。ここで送信される各アプリのマニフェストファイルは、テスト用に複製されたマニフェストファイルとなる。
【００５２】
Ｓ１０１０では、テストブローカ５０１は、受信した各アプリをインストーラサービス２０４を介して画像形成装置１にインストールする。Ｓ１０１１ではテストブローカ５０１は、インストールした各アプリを開始状態にする。続いてＳ１０１２にて、テストブローカ５０１は、テスト実行アプリ５０２のテストケースを実行する。Ｓ１０１３で、テストブローカ５０１は、テストケースの実行が終了し、テストの実行結果が出力されたかの判断を行う。まだ出力されていない場合には（Ｓ１０１３にてＮＯ）、テストブローカ５０１は、テスト結果の終了を待つ（Ｓ１０１４）。テスト結果が出力されたと判断された場合は（Ｓ１０１３にてＹＥＳ）、Ｓ１０１５に進む。Ｓ１０１５では、テストブローカ５０１は、出力されたテスト結果を統合開発環境システム４００の通信制御部７０３に送信する。
【００５３】
Ｓ１０１６にて、統合開発環境システム４００は、テストブローカ５０１から受信したテスト結果を表示する。Ｓ１０１７では、テストブローカ５０１は、テスト実行用にインストールしたテスト実行アプリ５０２を停止する。そして、テストブローカ５０１は、ターゲットアプリ５０３およびテスト実行アプリ５０２をインストーラサービス２０４を介してアンインストールして処理を終了する。なお、ターゲットアプリ５０３およびテスト実行アプリ５０２がアンインストールされる際に、各アプリが有するマニフェストファイルも併せて削除される。
【００５４】
ここで、テストブローカ５０１から統合開発環境システム４００に対してのテスト結果の出力が完了した後にアプリケーションをアンインストールしている。これは、例えば、開発者がＳ１０１６にて表示されたテスト結果を確認した際などに、再度同じテストを実行する指示を行う場合が考えられる。このとき、同じアプリを再インストールする処理が発生しないように、テスト実行後のアプリのアンインストールは、統合開発環境システム４００にて表示された後が望ましい。
【００５５】
また、アプリのアンインストールは、テスト結果が出力された後、所定の期間が経過した際に削除するように構成してもよい。
【００５６】
［プロジェクト作成処理］
図８を用いて、統合開発環境システム４００内に設けられたアプリ作成部６０２が、テストケースのプロジェクト９０３を作成するフローチャートを説明する。
【００５７】
図８（ｂ）は、テストケースのプロジェクトを新規作成する際に表示されるダイアログ８０５である。ダイアログ８０５には、テストケースプロジェクトのプロジェクト名８０６を指定する入力フィールドと、テストケースの対象となるプロジェクトを指定するフィールド８０７とを備える。各フィールドに対して入力終了後、完了ボタン８０８が押下されることにより、ダイアログの表示を終了する。
【００５８】
図８（ａ）を用いて、テストケースのプロジェクトを作成するフローチャートを説明する。例えば、ユーザにより統合開発環境システム４００のメニュー（不図示）から、「プロジェクトの新規作成」−「テストケースプロジェクト」を選択されると、Ｓ８０１にて、アプリ作成部６０２は、図８（ｂ）のダイアログ８０５を開発用ＰＣ３００に表示する。ここで統合開発環境システム４００のメニューは、例えば、図９（ａ）に示す画面において、表示するようにしても構わない。Ｓ８０２にて、アプリ作成部６０２は、ダイアログ８０５を介して入力されたプロジェクト名およびテスト対象となるプロジェクト名を受信する。Ｓ８０３において、アプリ作成部６０２は、Ｓ８０２で受信したプロジェクト名に従い、テストケースプロジェクトのテンプレートを作成して処理を終了する。
【００５９】
なお、テストケースを作成する際に、アプリ作成部６０２は、ターゲットアプリ５０３をインストールする画像形成装置の情報を取得し、この画像形成装置の機能に応じてテストケースを作成するようにしても構わない。ここで画像形成装置を特定する際には、例えば、各画像形成装置の機能とＩＤとが対応付けられた情報を用いて識別するようにしても構わない。これにより、アプリケーションをインストールする画像形成装置に対応したテストケースを含むテスト実行アプリ５０２を作成することができ、不要なテストケースを含めることを避けることができる。
【００６０】
また、開発者がアプリの作成中において、そのアプリにて用いられるパッケージをソースの中から適時探索し、その探索の中で特定されたパッケージをテスト実行アプリの作成時にマニフェストファイルに追記するようにしてもよい。これにより、アプリの中で用いられない不要なパッケージをマニフェストファイルに記載することが無くなる。
【００６１】
以上、本発明によれば、アプリケーションの作成時において用いられた設定が、意図しない状態で継続されることを防止し、作成したアプリケーションに対するセキュリティ面の向上を可能とする。
【００６２】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2013145473.tif 000003
【図２】
2013145473.tif 000004
【図３】
2013145473.tif 000005
【図４】
2013145473.tif 000006
【図５】
2013145473.tif 000007
【図６】
2013145473.tif 000008
【図７】
2013145473.tif 000009
【図８】
2013145473.tif 000010
【図９】
2013145473.tif 000011
【図１０】
2013145473.tif 000012