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