(57)【特許請求の範囲】
【請求項１】
画像を形成する画像形成装置であって、
情報処理装置に接続されたＵＳＢデバイスを制御する遠隔ＵＳＢ制御モジュールを受信する受信手段と、
前記受信手段で受信された前記遠隔ＵＳＢ制御モジュールを、前記画像形成装置に接続されたＵＳＢデバイスを制御するＵＳＢ制御モジュールより優先的に利用されるようにアプリケーション実行環境の設定を変更する変更手段と、
前記ＵＳＢデバイスを利用するテスト用アプリケーションを前記アプリケーション実行環境で実行する実行手段と、
テストが完了した場合、前記変更手段で変更された前記アプリケーション実行環境の設定を元に戻す復旧手段と、
を有する画像形成装置。
【請求項２】
テストが完了した場合、前記受信手段で受信された前記遠隔ＵＳＢ制御モジュールを削除する削除手段を更に有する請求項１記載の画像形成装置。
【請求項３】
前記情報処理装置より受信した前記テスト用アプリケーションをインストールするインストール手段を更に有し、
前記実行手段は、前記インストール手段でインストールされた前記テスト用アプリケーションを前記アプリケーション実行環境で実行し、
テストが完了した場合、テスト結果を前記情報処理装置に送信する送信手段と、
テストが完了した場合、前記インストール手段でインストールされた前記テスト用アプリケーションをアンインストールするアンインストール手段と、
を更に有する請求項１又は２記載の画像形成装置。
【請求項４】
情報処理装置と、画像形成装置と、を含むシステムであって、
前記情報処理装置は、
前記情報処理装置に接続されたＵＳＢデバイスを制御する遠隔ＵＳＢ制御モジュールを前記画像形成装置に送信する送信手段を有し、
前記画像形成装置は、
前記遠隔ＵＳＢ制御モジュールを受信する受信手段と、
前記受信手段で受信された前記遠隔ＵＳＢ制御モジュールを、前記画像形成装置に接続されたＵＳＢデバイスを制御するＵＳＢ制御モジュールより優先的に利用されるようにアプリケーション実行環境の設定を変更する変更手段と、
前記ＵＳＢデバイスを利用するテスト用アプリケーションを前記アプリケーション実行環境で実行する実行手段と、
テストが完了した場合、前記変更手段で変更された前記アプリケーション実行環境の設定を元に戻す復旧手段と、
を有するシステム。
【請求項５】
画像を形成する画像形成装置が実行するＵＳＢデバイスのテスト方法であって、
情報処理装置に接続されたＵＳＢデバイスを制御する遠隔ＵＳＢ制御モジュールを受信する受信ステップと、
前記受信ステップで受信された前記遠隔ＵＳＢ制御モジュールを、前記画像形成装置に接続されたＵＳＢデバイスを制御するＵＳＢ制御モジュールより優先的に利用されるようにアプリケーション実行環境の設定を変更する変更ステップと、
前記ＵＳＢデバイスを利用するテスト用アプリケーションを前記アプリケーション実行環境で実行する実行ステップと、
テストが完了した場合、前記変更ステップで変更された前記アプリケーション実行環境の設定を元に戻す復旧ステップと、
を含むテスト方法。
【請求項６】
情報処理装置と、画像形成装置と、を含むシステムにおけるＵＳＢデバイスのテスト方法であって、
前記情報処理装置が、前記情報処理装置に接続されたＵＳＢデバイスを制御する遠隔ＵＳＢ制御モジュールを前記画像形成装置に送信する送信ステップと、
前記画像形成装置が、前記遠隔ＵＳＢ制御モジュールを受信する受信ステップと、
前記画像形成装置が、前記受信ステップで受信された前記遠隔ＵＳＢ制御モジュールを、前記画像形成装置に接続されたＵＳＢデバイスを制御するＵＳＢ制御モジュールより優先的に利用されるようにアプリケーション実行環境の設定を変更する変更ステップと、
前記ＵＳＢデバイスを利用するテスト用アプリケーションを前記アプリケーション実行環境で実行する実行ステップと、
前記画像形成装置が、テストが完了した場合、前記変更ステップで変更された前記アプリケーション実行環境の設定を元に戻す復旧ステップと、
を含むテスト方法。
【請求項７】
コンピュータに、
情報処理装置に接続されたＵＳＢデバイスを制御する遠隔ＵＳＢ制御モジュールを受信する受信ステップと、
前記受信ステップで受信された前記遠隔ＵＳＢ制御モジュールを、前記コンピュータに接続されたＵＳＢデバイスを制御するＵＳＢ制御モジュールより優先的に利用されるようにアプリケーション実行環境の設定を変更する変更ステップと、
前記ＵＳＢデバイスを利用するテスト用アプリケーションを前記アプリケーション実行環境で実行する実行ステップと、
テストが完了した場合、前記変更ステップで変更された前記アプリケーション実行環境の設定を元に戻す復旧ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、システム、テスト方法及びプログラムに関する。
【背景技術】
【０００２】
従来、アプリケーションの開発・実行・テスト・デバッグを統合的に行うことができる統合開発環境の技術が知られている。このような環境ではローカルＰＣ上のアプリケーション開発だけでなく外部のデバイスにアプリケーションを送り込んでリモートでデバッグやテストを行うことも可能である。
また、ローカル端末に接続されたＵＳＢデバイスを、遠隔地にあるクライアント端末から利用する技術がある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２１０１１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
画像形成装置上で動作するアプリケーションを開発する場合、画像形成装置の設置スペース等の問題から手元にデバイスを置いて開発を行うことは難しい。そのため画像形成装置は開発ＰＣとは離れた場所に設置されることが多い。
このような環境で実機を用いてデバッグを行う場合はネットワーク経由でデバッグを行うことになる。しかしながら、画像形成装置に接続されたＵＳＢデバイス（ＩＣカードリーダやＵＳＢメモリ等）を利用するアプリケーションのデバッグを行う場合は、画像形成装置と開発ＰＣの間を行き来する必要があり不便であった。
また、遠隔地にある端末からローカルのＵＳＢデバイスを制御する技術を適用することでローカル端末のＵＳＢデバイスを使ったデバッグが可能となるが、事前に画像形成装置にそのような機能を組み込んでおく必要があった。そのため、過去にリリースされた機種では容易に実現できないという問題があった。また、複数の開発者が同じ実機を使って開発を行う環境では、他の人のＵＳＢデバイスが接続されたままになっていて意図しないＵＳＢデバイスを使用してテストを実行してしまうことがあるという問題もあった。
【０００５】
本発明はこのような問題点に鑑みなされたもので、開発者の利便性を向上させ、また、意図しないＵＳＢデバイスを利用してテストを行ってしまうミスを防ぐことを目的とする。
【課題を解決するための手段】
【０００６】
そこで、本発明は、画像を形成する画像形成装置であって、情報処理装置に接続されたＵＳＢデバイスを制御する遠隔ＵＳＢ制御モジュールを受信する受信手段と、前記受信手段で受信された前記遠隔ＵＳＢ制御モジュールを、前記画像形成装置に接続されたＵＳＢデバイスを制御するＵＳＢ制御モジュールより優先的に利用されるようにアプリケーション実行環境の設定を変更する変更手段と、前記ＵＳＢデバイスを利用するテスト用アプリケーションを前記アプリケーション実行環境で実行する実行手段と、テストが完了した場合、前記変更手段で変更された前記アプリケーション実行環境の設定を元に戻す復旧手段と、を有する。
【発明の効果】
【０００７】
本発明によれば、開発者の利便性を向上させ、また、意図しないＵＳＢデバイスを利用してテストを行ってしまうミスを防ぐことができる。
【図面の簡単な説明】
【０００８】
【図１】画像形成装置用アプリケーションのテストシステムのシステム構成の一例を示す図である。
【図２】画像形成装置１０１のハードウェア構成の一例を示す図である。
【図３】開発用ＰＣ１０３のハードウェア構成の一例を示す図である。
【図４Ａ】工場出荷状態の画像形成装置１０１のアプリケーションプラットフォームのソフトウェア構成の一例を示す図である。
【図４Ｂ】統合開発環境を利用してテストを行う場合のソフトウェア構成の一例を示す図である。
【図４Ｃ】開発用ＰＣ１０３に接続されたＵＳＢデバイス１０４を利用してアプリケーションのテストを実行しているときのソフトウェア構成の一例を示す図である。
【図５】開発用ＰＣ１０３で動作する統合開発環境のソフトウェア構成の一例を示す図である。
【図６】テストブローカ４０７のソフトウェア構成の一例を示す図である。
【図７】遠隔ＵＳＢ制御ライブラリ４０９のソフトウェア構成の一例を示す図である。
【図８】テスト用アプリ４０８の構成の一例を示す図である。
【図９Ａ】統合開発環境におけるプログラム作成画面の一例を示す図である。
【図９Ｂ】テスト実行のためのダイアログの一例を示す図である。
【図９Ｃ】テストの実行中のダイアログの一例を示す図である。
【図９Ｄ】テスト終了時若しくは中断時に表示される画面の一例を示す図である。
【図１０】接続先管理テーブルの一例を示す図である。
【図１１】図９ＢのＵＩにてＯＫボタンが押され、テスト実行を指示された場合の開発ＰＣで動作する統合開発環境の処理の流れを示すフローチャートである。
【図１２】統合開発環境からテスト開始通知を受信した際のテストブローカ４０７の処理の流れを示すフローチャートである。
【図１３】遠隔ＵＳＢ制御ライブラリ４０９のアプリ向けＩ／Ｆがアプリケーションから呼び出された際の処理の流れを示すフローチャートである。
【図１４】統合開発環境のＵＳＢＨｏｓｔ制御部５０５が遠隔ＵＳＢ制御ライブラリ４０９から処理要求を受信した際の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面に基づいて説明する。
【００１０】
＜実施形態１＞
図１は、画像形成装置用アプリケーションのテストシステムのシステム構成の一例を示す図である。画像形成装置１０１は、スキャナやプリンタを備えた装置であり、様々なアプリケーションをインストールして動作させることが可能である。画像形成装置１０１上で動作するアプリケーションの中には、画像形成装置１０１に接続されたＵＳＢデバイス１０２を利用するアプリケーションが存在する。例えば、ＵＳＢ接続のＩＣカードリーダで認証を行うアプリケーションや、ＵＳＢメモリにスキャン画像を格納したりするようなアプリケーションが存在する。
このような画像形成装置用アプリケーションの開発を行う場合、通常、開発用ＰＣ１０３にて統合開発環境を動作させてプログラム作成・テスト・デバッグ等を行う。また、アプリケーションのテストを行う場合は、開発用ＰＣ１０３から画像形成装置１０１にネットワーク１００経由でアプリケーションをインストールして画像形成装置１０１上でアプリケーションを動作させてテストを行う。本実施形態の技術を適用したアプリケーションテストにおいては、画像形成装置１０１上のアプリケーションが開発用ＰＣ１０３に接続されたＵＳＢデバイス１０４を制御するように画像形成装置１０１の内部構成を自動的に更新する。
開発用ＰＣ１０３は、情報処理装置の一例である。
【００１１】
図２は、図１における画像形成装置１０１のハードウェア構成の一例を示す図である。ＣＰＵ２０１は、画像形成装置１０１のソフトウェアプログラムを実行し、装置全体の制御を行なう。ＲＯＭ２０２は、リードオンリーメモリであり、装置のブートプログラムや固定パラメータ等が格納されている。ＲＡＭ２０３は、ランダムアクセスメモリであり、ＣＰＵ２０１が装置を制御する際に、一時的なデータの格納等に使用する。外部記憶装置２０４は、インストールされたアプリケーションやアプリケーションのデータや印刷データの格納等、様々なデータの格納に使用する。ＵＳＢＨ  Ｉ／Ｆ制御部２０５は、ＵＳＢホストインタフェースを制御するためのものであり、様々なＵＳＢデバイスとの通信を制御する。スキャナＩ／Ｆ制御部２０６は、スキャナ２１１を制御する装置である。プリンタＩ／Ｆ制御部２０７は、プリンタ２１２を制御する装置である。ＮＶＲＡＭ２０８は、不揮発性のメモリであり画像形成装置１０１の各種設定値が保存される。パネル制御部２０９は、操作パネル２１３を制御し、各種情報の表示、使用者からの指示入力を行なうためのものである。ネットワークＩ／Ｆ制御部２１０は、ＬＡＮネットワーク２１５とのデータの送受信を制御する。バス２１４には、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、外部記憶装置２０４、ＵＳＢＨ  Ｉ／Ｆ制御部２０５、スキャナＩ／Ｆ制御部２０６、プリンタＩ／Ｆ制御部２０７が接続される。また、バス２１４には、ＮＶＲＡＭ２０８、パネル制御部２０９、ネットワークＩ／Ｆ制御部２１０が接続される。またバス２１４は、ＣＰＵ２０１からの制御信号や各装置間のデータ信号が送受信されるシステムバスである。ＵＳＢデバイス２１６は、ＵＳＢメモリやＩＣカードリーダ等のＵＳＢデバイスである。
【００１２】
図３は、開発用ＰＣ１０３のハードウェア構成の一例を示す図である。ＣＰＵ３０１は、本装置上の各処理を司る中央演算装置である。ＲＯＭ３０２は、本装置の各処理に関わるプログラムやデータを記憶する。ＲＡＭ３０３は、本装置の各処理に関わる一時的なデータを記憶する。ＨＤＤ３０４は、本装置の各処理に関わるプログラムやデータ、及び一時的なデータ、本実施形態に関わるプログラムモジュールが格納される。入力装置３０５は、本装置への指示入力を受け付けるキーボードやポインティングデバイスである。表示部３０６は、本装置の動作状況や、本装置上で動作する各プログラムが出力する情報を表示する。ネットワークＩ／Ｆ３０７は、ネットワーク経由でＬＡＮ及びインタネットに接続し、外部と情報交換を行う。ＵＳＢＨ  Ｉ／Ｆ３０８は、ＵＳＢホストインタフェースであり、様々なＵＳＢデバイスを接続する。それら要素がシステムバス３０９により結び付き、データをやりとりしている。ＵＳＢデバイス１０４は、ＵＳＢメモリやＩＣカードリーダ等のＵＳＢデバイスであり、画像形成装置用アプリケーションテスト時に画像形成装置１０１上で動作するアプリケーションから制御される。
【００１３】
図４Ａは、工場出荷状態の画像形成装置１０１のアプリケーションプラットフォームのソフトウェア構成の一例を示す図である。
Ｊａｖａ（登録商標）ＶＭ４０１は、Ｊａｖａプログラムを動作させるための仮想マシンである。クラスパス設定管理部４０２は、ＪａｖａＶＭがロードするライブラリの設定管理を行う。ジョブ制御ライブラリ４０３は、スキャンジョブやプリントジョブを実行するためのＡＰＩを備えたライブラリである。ＵＳＢ制御ライブラリ４０４は、ＵＳＢＨ  Ｉ／Ｆ制御部２０５に接続されたＵＳＢデバイス２１６を制御するためのＡＰＩを備えたライブラリであり、接続されたＵＳＢデバイス情報の取得や、ＵＳＢデバイスとのデータ送受信等を行うことができる。アプリケーションフレームワーク４０５は、ＪａｖａＶＭ４０１上で複数のアプリケーションを動作させるためのフレームワークである。アプリ管理サービス４０６は、アプリケーションフレームワーク４０５上で動作するアプリケーションの管理を行うためのサービスであり、アプリケーションのインストール・アンインストール・開始・停止等を行う。
ＪａｖａＶＭ４０１は、アプリケーション実行環境の一例である。
【００１４】
図４Ｂは、統合開発環境を利用してテストを行う場合のソフトウェア構成の一例を示す図である。図４Ａの状態の画像形成装置１０１に対してアプリケーション開発者がアプリ管理サービス４０６経由でテストブローカ４０７をインストールすることで統合開発環境を利用したテストを行うことができるようになる。
テストブローカ４０７は、開発用ＰＣ１０３から後述する図４Ｃに示されるテスト用アプリ４０８を受信してテストを実行したり、テスト結果を開発用ＰＣ１０３に送信したり、テスト完了後にテスト用アプリ４０８をアンインストールしたりするモジュールである。また、開発用ＰＣ１０３に接続されたＵＳＢデバイス１０４を利用してアプリケーションのテストを行う場合、テストブローカ４０７は、後述する図４Ｃに示される開発用ＰＣ１０３から遠隔ＵＳＢ制御ライブラリ４０９を受信する。そして、テストブローカ４０７は、受信した遠隔ＵＳＢ制御ライブラリ４０９を画像形成装置１０１内にインストールする。テスト用アプリ４０８は、ユーザが開発したアプリケーションとテストのためのプログラムが一つにまとめられたテストのためのアプリケーションである。遠隔ＵＳＢ制御ライブラリ４０９は、ＵＳＢ制御ライブラリ４０４とＡＰＩ互換のライブラリであり、クラスパス設定管理部４０２がライブラリのロード順を制御することにより、ＵＳＢ制御ライブラリ４０４よりも優先的にロードされるようになる。テスト用アプリ４０８は、ＵＳＢ制御ライブラリ４０４のＡＰＩを呼び出すと遠隔ＵＳＢ制御ライブラリ４０９のＡＰＩが実行される。遠隔ＵＳＢ制御ライブラリ４０９のＡＰＩが実行されると開発用ＰＣ１０３にＵＳＢ制御要求を出し開発用ＰＣ１０３に接続されたＵＳＢデバイス１０４を制御する。
ＵＳＢ制御ライブラリ４０４は、ＵＳＢ制御モジュールの一例である。また、遠隔ＵＳＢ制御ライブラリ４０９は、遠隔ＵＳＢ制御モジュールの一例である。また、テスト用アプリ４０８は、テスト用アプリケーションの一例である。
【００１５】
図４Ｃは、開発用ＰＣ１０３に接続されたＵＳＢデバイス１０４を利用してアプリケーションのテストを実行しているときのソフトウェア構成の一例を示す図である。テストが完了するとテストブローカ４０７は、テスト用アプリ４０８及び遠隔ＵＳＢ制御ライブラリ４０９を削除して図４Ｂの状態に戻る。
また、アプリケーション開発者がアプリ管理サービス４０６経由でテストブローカ４０７をアンインストールすると図４Ａの状態に戻すことができる。
【００１６】
図５は、開発用ＰＣ１０３で動作する統合開発環境のソフトウェア構成の一例を示す図である。ソース管理部５０１は、アプリケーションのソースやテストケースのソースの管理を行う。テスト用アプリ作成部５０２は、ソース管理部５０１で管理されているソースをコンパイルして画像形成装置１０１にインストール可能なアプリケーションファイルを生成する。テスト制御部５０３は、テスト用アプリ作成部５０２で生成したアプリケーションを通信制御部５０６経由で画像形成装置１０１に送信し、テストの実行指示や結果の受信を行う。ライブラリ送信部５０４は、開発用ＰＣ１０３に接続されたＵＳＢデバイスを利用してテストを行いたい場合に遠隔ＵＳＢ制御ライブラリ４０９を画像形成装置１０１に送信する。ＵＳＢＨｏｓｔ制御部５０５は、遠隔ＵＳＢ制御ライブラリ４０９からのＵＳＢデバイス制御要求を受けて開発用ＰＣ１０３に接続されたＵＳＢデバイス１０４の制御を行い、遠隔ＵＳＢ制御ライブラリ４０９に応答を返す。
【００１７】
図６は、図４におけるテストブローカ４０７のソフトウェア構成の一例を示す図である。テスト制御部６０１は、テスト用アプリのインストール・開始・停止・アンインストール・テストケース実行等の制御を行ったり、テスト結果を統合開発環境に送信したりする。ライブラリ制御部６０２は、遠隔ＵＳＢ制御ライブラリ４０９をファイルシステム上に配置してクラスパス設定管理部４０２経由でライブラリのロード順変更の制御を行う。接続先管理部６０３は、テスト用アプリと開発用ＰＣの対応の管理を行う。通信制御部６０４は、開発用ＰＣと各種データの送受信を行う。
【００１８】
図７は、図４における遠隔ＵＳＢ制御ライブラリ４０９のソフトウェア構成の一例を示す図である。アプリ向けＩ／Ｆ部７０１は、アプリケーションに公開しているＩ／Ｆである。
アプリ情報管理部７０２は、アプリケーションからアプリ向けＩ／Ｆ部７０１が呼び出されたときに呼び出し元のアプリケーションの特定を行う。接続先判定部７０３は、ＡＰＩ呼び出し元のアプリケーションに対応する開発用ＰＣ１０３を特定する。通信制御部７０４は、接続先判定部７０３で特定した開発用ＰＣ１０３上で動作するＵＳＢＨｏｓｔ制御部５０５にＵＳＢＨ制御要求を出してＵＳＢデバイスの制御を行う。
【００１９】
図８は、図４におけるテスト用アプリ４０８の構成の一例を示す図である。
テスト用アプリ４０８は、アプリケーション８０１とテストケース８０２とテストエージェント８０３とアプリケーション情報８０４とから構成される。アプリケーション８０１は、開発者が開発しているアプリケーションの実体である。テストケース８０２は、アプリケーション８０１をテストするためのプログラムである。テストエージェント８０３は、テストブローカ４０７から指示を受けてテストケース８０２の実行を行う。アプリケーション情報８０４は、そのアプリケーションの識別ＩＤやアプリケーション名称やバージョン情報を含む。
【００２０】
図９Ａは、統合開発環境におけるプログラム作成画面の一例を示す図である。
プロジェクト表示領域９０１は、統合開発環境上で開発を行っているプロジェクトについての情報を表示する領域であり、アプリケーションに含まれるクラスやファイルのリストが階層構造で表示される。ソース表示領域９０２には、プロジェクト表示領域で選択したクラスのソースが表示される。開発者は、プロジェクト表示領域９０１でテストケースのプロジェクト９０３を選択して右クリックすることで、テスト実行の指示を行うことができる。テスト実行を指示されると図９Ｂのダイアログが表示される。
【００２１】
図９Ｂは、テスト実行のためのダイアログの一例を示す図である。
図９Ｂにおいてテキストフィールド９１１は、テストを実行する画像形成装置１０１のホスト名若しくはＩＰアドレスを入力するためのフィールドである。チェックボックス９１２は、開発用ＰＣに接続されているＵＳＢデバイスを利用してテストを行う場合にチェックするためのものである。このチェックボックスにチェックが入れられると、開発用ＰＣに接続されたＵＳＢデバイスが制御されるようになり、チェックボックスにチェックを入れずにテストを実行すると画像形成装置１０１に接続されたＵＳＢデバイスが制御される。ＯＫボタン９１３は、開発者がテストの実行を指示するためのボタンである。キャンセルボタン９１４は、開発者がテストの実行を取り消すためのボタンである。ＯＫボタン９１３が押されると、図９Ｃのダイアログが表示される。
【００２２】
図９Ｃは、テストの実行中のダイアログの一例を示す図である。
図９Ｃのダイアログは、全てのテストケースが実行完了すると自動的にダイアログが閉じられる。テスト実行中に中断したい場合は、開発者は、終了ボタン９２１を押下することでテストを終了させることができる。
図９Ｄは、テスト終了時若しくは中断時に表示される画面の一例を示す図である。テスト結果概要表示領域９３１には、実行されたテストケース数及びテスト失敗数、エラー数及びテスト成功率が表示される。パッケージ情報表示領域９３２には、アプリケーションのパッケージ毎のテスト結果の一覧が表示される。開発者がパッケージ名９３３をクリックすることでテストケースごとの細かい結果も表示することができる。
【００２３】
図１０は、接続先管理テーブルの一例を示す図である。接続先管理テーブルは、テスト用アプリと開発用ＰＣのＩＰアドレスとの対応を管理するためのものであり、アプリ識別子フィールド１００１とＩＰアドレスフィールド１００２とから構成される。画像形成装置１０１に格納され、テストブローカ４０７が開発用ＰＣ１０３からテスト開始通知を受信した際に接続先管理部６０３により更新される。また、遠隔ＵＳＢ制御ライブラリ４０９は、この接続先管理テーブルを利用して接続先の開発用ＰＣを決定する。
【００２４】
図１１は、図９ＢのＵＩにてＯＫボタンが押され、テスト実行を指示された場合の開発ＰＣで動作する統合開発環境の処理の流れを示すフローチャートである。
まずステップＳ１１０１にてテスト制御部５０３がテキストフィールド９１１で指定された画像形成装置１０１上で動作しているテストブローカ４０７に対しテスト開始通知を送信する。テスト開始通知にはローカルのＵＳＢデバイスを利用してテストを行うか否かの設定情報（チェックボックス９１２の状態）及びテスト用アプリの識別子情報が含まれる。
次にステップＳ１１０２に進み、テスト制御部５０３がローカルのＵＳＢデバイスを利用してテストを行うか否かの設定を判定する。もしローカルのＵＳＢデバイスを利用する設定であると判定された場合、ステップＳ１１０３に進む。
ステップＳ１１０３では、ライブラリ送信部５０４が遠隔ＵＳＢ制御ライブラリ４０９をテストブローカ４０７に送信し、ステップＳ１１０４に進む。
一方ステップＳ１１０２にてローカルのＵＳＢデバイスを利用する指定がされていないと判定された場合は、ステップＳ１１０４に進む。ステップＳ１１０４では、ソース管理部５０１がアプリケーションのソースとテストケースのソースとからテスト用アプリを生成し、生成したテスト用アプリを、テストブローカ４０７に送信する。
次にステップＳ１１０５に進み、テスト制御部５０３が実行中ダイアログを表示する。
【００２５】
次にステップＳ１１０６に進み、テスト制御部５０３がテストブローカ４０７から終了通知を受信したかを判定する。終了通知を受信したらステップＳ１１０７に進む。
ステップＳ１１０７では、テスト制御部５０３がテストブローカ４０７からテスト結果を受信する。
次にステップＳ１１０８に進み、テスト制御部５０３がテスト結果表示画面を表示して処理を終了する。
一方ステップＳ１１０６にてテスト終了通知を受信していないと判定した場合はステップＳ１１０９に進む。ステップＳ１１０９では、テスト制御部５０３が実行中ダイアログ中の終了ボタンが押下されたかどうかを判定する。ステップＳ１１０９にて終了ボタンが押下されていないと判定した場合はステップＳ１１０６に進み、終了ボタンが押下されたと判定された場合はステップＳ１１１０に進む。
ステップＳ１１１０では、テスト制御部５０３がテストブローカ４０７に対してテスト終了要求を送信し、ステップＳ１１０７に進む。それ以降の処理は前述の通りである。
【００２６】
図１２は、統合開発環境からテスト開始通知を受信した際のテストブローカ４０７の処理の流れを示すフローチャートである。
まずステップＳ１２０１にて、テストブローカ４０７は、テスト開始通知に含まれる情報を参照してローカルのＵＳＢを利用してテストを行うべきか否かを判定する。もしローカルのＵＳＢを利用してテストを行うべきと判定した場合はステップＳ１２０２に進む。
ステップＳ１２０２では統合開発環境から送信された遠隔ＵＳＢ制御ライブラリ４０９を受信し、ライブラリ制御部６０２が、ファイルシステムに配置する。
次にステップＳ１２０３に進み、接続先管理部６０３は、テスト開始通知に含まれるアプリケーション識別子とテスト開始通知の送信元との対応情報を図１０のように接続先管理テーブルに登録する。
次にステップＳ１２０４に進み、ライブラリ制御部６０２は、クラスパス設定管理部４０２の設定を参照して遠隔ＵＳＢ制御ライブラリ４０９が優先的にロードされる設定に変更されているか否かを判定する。
既に設定が変更されていた場合はステップＳ１２０６に進む。設定が変更されていないと判定された場合はステップＳ１２０５に進む。ステップＳ１２０５では、ライブラリ制御部６０２が、遠隔ＵＳＢ制御ライブラリ４０９が優先的に利用されるようにクラスパスの設定を変更し、ステップＳ１２０６に進む。
【００２７】
ステップＳ１２０６ではテスト制御部６０１が、統合開発環境から送信されるテスト用アプリを受信し、インストール及び開始を行う。
次にステップＳ１２０７に進み、テスト制御部６０１は、テストが完了したかどうかを判定する。ここでは、テスト制御部６０１は、全てのテストケースの実行が完了したか、統合開発環境からテスト終了通知を受信した場合に、テストが完了したとみなす。ステップＳ１２０７にてテストが完了していないと判定された場合はステップＳ１２０８に進む。
ステップＳ１２０８では、テスト制御部６０１は、まだ実行していないテストケースを実行して結果を蓄積し、ステップＳ１２０７に進む。ステップＳ１２０７にてテストが完了したと判定された場合はステップＳ１２０９に進む。
ステップＳ１２０９では、テスト制御部６０１は、統合開発環境にテスト結果を送信する。次にステップＳ１２１０に進む。
ステップＳ１２１０では、テスト制御部６０１は、テスト用アプリの停止及び削除（アンインストール）を行う。
次にステップＳ１２１１に進み、接続先管理部６０３は、接続先管理テーブルからテスト用アプリの情報を削除する。
【００２８】
次にステップＳ１２１２に進み、テスト制御部６０１は、接続先管理部６０３に問い合わせて接続先管理テーブルに情報が存在するかどうかを判定する。もし情報が存在すると判定された場合は処理を終了する。一方ステップＳ１２１２にて情報が存在しないと判定された場合はステップＳ１２１３に進む。
ステップＳ１２１３ではライブラリ制御部６０２は、遠隔ＵＳＢ制御ライブラリ４０９を削除し、ステップＳ１２１４に進む。
ステップＳ１２１４ではライブラリ制御部６０２は、ステップＳ１２０５で変更したクラスパスの設定を元に戻し（復旧し）、処理を終了する。
【００２９】
図１３は、遠隔ＵＳＢ制御ライブラリ４０９のアプリ向けＩ／Ｆがアプリケーションから呼び出された際の処理の流れを示すフローチャートである。
アプリ向けＩ／Ｆが呼び出されると、ステップＳ１３０１にてアプリ向けＩ／Ｆ部７０１は、アプリ情報管理部７０２に問い合わせて呼び出し元のアプリケーション識別子を取得する。アプリ情報管理部７０２は、コールスタックから呼び出し元アプリケーションを特定し、そのアプリケーションに含まれるアプリケーション情報を参照することでアプリケーション識別子を取得する。
次にステップＳ１３０２に進み、接続先判定部７０３は、図１０の接続先管理テーブルを参照してアプリケーション識別子に対応する接続先を特定する。
次にステップＳ１３０３に進み、アプリ向けＩ／Ｆ部７０１は、通信制御部７０４を経由してステップＳ１３０２で特定した接続先に、呼び出された関数に応じた処理要求を送信する。処理要求の種類としては、接続されているＵＳＢデバイスの情報取得、ＵＳＢデバイスへのデータ送信、ＵＳＢデバイスからのデータ受信等がある。また、アプリ向けＩ／Ｆ部７０１は、接続デバイス数が変化した場合に通知を受けるための要求も行える。
次にステップＳ１３０４に進み、アプリ向けＩ／Ｆ部７０１は、通信制御部７０４を経由して要求に対する処理結果を受信する。もし結果が受信できればステップＳ１３０５に進み、アプリ向けＩ／Ｆ部７０１は、呼び出し元に対して結果を返して処理を終了する。一方、ステップＳ１３０４にて結果が受信できなかった場合はステップＳ１３０６に進み、アプリ向けＩ／Ｆ部７０１は、呼び出し元に対してエラーを返して処理を終了する。
【００３０】
図１４は、統合開発環境のＵＳＢＨｏｓｔ制御部５０５が遠隔ＵＳＢ制御ライブラリ４０９から処理要求を受信した際の処理の流れを示すフローチャートである。
まずステップＳ１４０１にて、ＵＳＢＨｏｓｔ制御部５０５は、要求を受信する。
次にステップＳ１４０２に進み、ＵＳＢＨｏｓｔ制御部５０５は、要求に応じたＵＳＢＨ制御を行う。
次にステップＳ１４０３に進み、ＵＳＢＨｏｓｔ制御部５０５は、処理結果を送信し処理を終了する。
【００３１】
以上、説明してきたように本実施形態によれば、アプリケーションのテストを行う場合、開発用ＰＣに接続されているＵＳＢデバイスを制御するためのモジュールを送り込み、テスト実行中だけそのモジュールが利用されるように制御している。これにより、過去の機種においてもファームウェア全体を事前にアップデートすることなくローカルの開発用ＰＣに接続されたＵＳＢデバイスを利用したテストを行うことが可能になり開発者の利便性が向上する。また、ＵＳＢデバイスが接続された開発用ＰＣのアドレスとテスト用アプリとの対応を管理して接続先をテスト用アプリ毎に変更することにより、複数の開発者による開発を行っている場合に、意図しないＵＳＢデバイスを利用してテストを行ってしまうというミスを防ぐことができるようになる。
なお、本実施形態では、開発用ＰＣとテスト用アプリとの対応を管理して複数の開発者が同時にテストを行えるような構成にしているが、このような構成に限られるものではない。例えば、既にテスト用アプリが実行中であれば他の開発用ＰＣからのテスト要求をエラーで返すようにしてもよい。この構成では、テスト用アプリ４０８が存在するかどうかをテストブローカ４０７が管理して、テスト要求受信時にテスト用アプリ４０８が存在した場合にエラーを返す。これにより同時に１つのテスト用アプリしか実行されないことが保証されるため図１０のような接続先管理テーブルが不要になり、より単純な構成でローカルのＵＳＢデバイスを用いたテストを行うことが可能となる。
【００３２】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００３３】
以上、上述した各実施形態によれば、過去の機種においてもファームウェア全体を事前にアップデートすることなくローカルの開発用ＰＣに接続されたＵＳＢデバイスを利用したテストを行うことが可能になり、開発者の利便性が向上する。また、複数の開発者による開発を行っている場合に、意図しないＵＳＢデバイスを利用してテストを行ってしまうというミスを防ぐことができるようになる。
したがって、開発者の利便性を向上させ、また、意図しないＵＳＢデバイスを利用してテストを行ってしまうミスを防ぐことができる。
【００３４】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図１】
0005847492.tif 000002
【図２】
0005847492.tif 000003
【図３】
0005847492.tif 000004
【図４Ａ】
0005847492.tif 000005
【図４Ｂ】
0005847492.tif 000006
【図４Ｃ】
0005847492.tif 000007
【図５】
0005847492.tif 000008
【図６】
0005847492.tif 000009
【図７】
0005847492.tif 000010
【図８】
0005847492.tif 000011
【図９Ａ】
0005847492.tif 000012
【図９Ｂ】
0005847492.tif 000013
【図９Ｃ】
0005847492.tif 000014
【図９Ｄ】
0005847492.tif 000015
【図１０】
0005847492.tif 000016
【図１１】
0005847492.tif 000017
【図１２】
0005847492.tif 000018
【図１３】
0005847492.tif 000019
【図１４】
0005847492.tif 000020