以下、本発明に関する好ましい実施形態について図面を参照しつつ詳細に説明する。尚、以下に説明する実施形態において互いに共通する要素には同一符号を付しており、それらについての重複する説明は省略する。
図1は、本発明の一実施形態である画像処理システム1の構成概念を示す図である。この画像処理システム1は、複数の画像処理装置3と、パーソナルコンピュータ(PC)などで構成される情報機器5と、LAN(Local Area Network)などのネットワーク6と、複数のサーバー7,8とを備える構成である。複数の画像処理装置3、情報機器5及びネットワーク6は、顧客先のローカル環境2aに設置される。すなわち、複数の画像処理装置3及び情報機器5は、ローカル環境2a内においてネットワーク6を介して相互にデータ通信可能である。ネットワーク6は、図示を省略するルーターなどのネットワーク接続装置を介してインターネットなどのクラウド2bに接続されている。クラウド2bには、複数のサーバー7,8が設置されている。そのため、ローカル環境2aに設置されている複数の画像処理装置3は、ネットワーク6を介してクラウド2bに設置されている複数のサーバー7,8のそれぞれと通信を行うことが可能である。尚、図1では、ローカル環境2aに3台の画像処理装置3が設置される場合を例示しているが、ローカル環境2aに設置される画像処理装置3の数は3台に限られるものではなく、1台であっても良いし、2台以上であっても良い。また、ローカル環境2aに設置される情報機器5の数も1台に限られるものではない。
ローカル環境2aに設置される画像処理装置3は、例えばMFPなどで構成され、スキャン機能、プリント機能、コピー機能及びFAX機能などの複数の機能を備えており、ユーザーによって指定されたジョブを実行することができる。例えば、画像処理装置3は、情報機器5から送信される印刷ジョブを受信すると、その印刷ジョブに基づく印刷出力を行うことができる。この画像処理装置3は、情報処理装置4としての機能を備えている。情報処理装置4は、画像処理装置3において各種の情報処理を行うものである。
このような画像処理装置3には、様々なアプリケーションをインストールすることが可能である。そのようなアプリケーションには、例えばWebページを閲覧するためのブラウザ機能を画像処理装置3に付与するアプリケーションや、クラウド2bに設けられているサーバーと連携してジョブを実行させるアプリケーション、操作パネルに表示する操作画面をカスタマイズしてユーザーが操作しやすい操作画面を提供するアプリケーションなどがある。これらのアプリケーションがユーザーにとって使いやすいユーザーインタフェースを提供することにより、画像処理装置3の操作性及び利便性を向上させることができる。尚、画像処理装置3にインストールされるアプリケーションは、画像処理装置3の製造業者によって提供されるものであっても良いし、サードパーティーによって提供されるものであっても良い。
クラウド2bに設けられるサーバー7は、例えば画像処理装置3にインストールされるアプリケーションを提供するサーバーである。このサーバー7には、画像処理装置3においてアプリケーションを起動させるためのアプリケーションプログラムが保存されている。そのため、画像処理装置3は、アプリケーションをインストールするとき、ネットワーク6を介してサーバー7にアクセスし、アプリケーションプログラムをサーバー7からダウンロードしてインストールする。これにより、画像処理装置3においてアプリケーションを起動させることができるようになる。尚、この種のサーバー7は、クラウド2b上に多数存在しており、画像処理装置3に対して様々なアプリケーションを提供している。
サーバー7に保存されているアプリケーションプログラムは、ユーザーの操作性向上や新機能の追加に伴い、逐次バージョンアップされる。画像処理装置3は、サーバーに保存されているアプリケーションプログラムがバージョンアップされることに伴い、アプリケーションプログラムを更新するための更新用プログラムをダウンロードして実行し、新バージョンのアプリケーションプログラムをインストールする。これにより、画像処理装置3において起動されるアプリケーションのバージョンが更新される。
画像処理装置3がアプリケーションのバージョンアップを検知する手法としては、いくつかの手法がある。例えば、画像処理装置3が定期的にサーバー7にアクセスしてサーバー7に保存されているアプリケーションのバージョンを確認する手法である。またこの他にも、例えば、サーバー7において保存されているアプリケーションのバージョンが更新された場合、サーバー7が画像処理装置3に対してバージョンアップ通知を送信するようにしても良い。
また、クラウド2bに設けられるサーバー8は、例えば画像処理装置3の製造業者によって提供されるサーバーであり、ローカル環境2aの画像処理装置3と連携してアプリケーションの動作確認を行うように構成される。
上記のように構成される画像処理システム1において、画像処理装置3にインストールされているアプリケーションが新バージョンに更新された場合、画像処理装置3は、その新たなアプリケーションが正常に動作するか否かを検証するための動作確認を行う。このとき、画像処理装置3は、旧バージョンのアプリケーションが使用されていたときの履歴情報に基づいて新バージョンのアプリケーションを動作させるためのテストデータを自動取得し、そのテストデータを新バージョンのアプリケーションに投入して動作させる。つまり、画像処理装置3は、アプリケーションが新バージョンに更新されることに伴って自動的に動作確認を開始するのである。このような動作確認は、ローカル環境2aに設定されている画像処理装置3において実行されるため、新バージョンのアプリケーションが顧客先の条件下において正常動作するか否かを適切に確認することができる。以下、このような画像処理装置3について詳しく説明する。
図2は、画像処理装置3のハードウェア構成の一例を示すブロック図である。画像処理装置3は、そのハードウェア構成として、制御部10と、通信インタフェース16と、操作パネル17と、記憶部20と、スキャナ部25と、プリンタ部26と、FAX部27と、画像解析部28と、課金処理部29とを備えており、これらが内部バス24を介して相互にデータの入出力を行うことができる構成である。制御部10、通信インタフェース16、操作パネル17及び記憶部20は、画像処理装置3において情報処理装置4として機能する情報処理ユニット4aである。
制御部10は、CPU11と、RAM12と、ROM13とを備えており、各部の動作を統括的に制御するものである。RAM12は、各種データを記憶する揮発性メモリである。ROM13は、ファームウェア14や設定情報15などを記憶する書き換え可能な不揮発性メモリである。
ファームウェア14は、画像処理装置3の上述した各種のハードウェアを動作させるためのソフトウェアである。画像処理装置3に電源が投入されると、CPU11がROM13に記憶されているファームウェア14を読み出して実行することにより、制御部10においてファームウェア14を起動させる。また、ROM13に記憶されているファームウェア14のバージョンは、適宜更新されることがある。
設定情報15は、画像処理装置3の基本的な動作条件などが予め定義された情報であり、例えば、ローカル環境2aに適合したネットワーク設定、画像処理装置3の各種機能を動作させるときの動作条件を定めた設定、管理者によって設定される管理者設定などを含む情報である。画像処理装置3は、この設定情報15において予め定められている条件下で各種機能を動作させ、ユーザーによって指定されたジョブを実行する。
通信インタフェース16は、画像処理装置3をネットワーク6に接続し、情報機器5やサーバー7,8などの外部装置と通信を行うためのものである。
操作パネル17は、ユーザーが画像処理装置3を使用する際のユーザーインタフェースとなるものである。操作パネル17は、各種画像を表示する表示部18と、ユーザーの操作を検知する操作入力部19とを備えている。例えば表示部18は、カラー液晶ディスプレイで構成され、操作入力部19は、表示部18の画面上に配置されるタッチパネルセンサによって構成される。
記憶部20は、例えばハードディスクドライブ(HDD)又はソリッドステートドライブ(SSD)などで構成される不揮発性の大容量記憶デバイスである。この記憶部20には、例えば画像処理装置3に予めインストールされているアプリケーションプログラム21が記憶される。アプリケーションプログラム21は、制御部10のCPU11によって実行されるプログラムである。このアプリケーションプログラム21のバージョンは、適宜更新されることがある。また、記憶部20には、履歴情報22が記憶されている。履歴情報22は、例えばユーザーによって設定された各設定項目の設定値を記録しておくための情報である。さらに、記憶部20には、更新制御プログラム23が予めインストールされている。この更新制御プログラム23も、制御部10のCPU11によって実行されるプログラムである。
スキャナ部25は、ユーザーによってセットされる原稿を光学的に読み取って画像データを生成するものである。例えば、画像処理装置3においてスキャンジョブ、コピージョブ又はFAX送信ジョブが実行されるとき、スキャナ部25は、原稿を読み取り、画像データを生成する。
プリンタ部26は、指定された画像データに基づく画像を印刷用紙などのシートに印刷して出力するものである。例えば、画像処理装置3において印刷ジョブ、コピージョブ又はFAX受信ジョブが実行されるとき、プリンタ部26は、入力する画像データに基づいて印刷出力を行う。
FAX部27は、図示を省略する公衆電話網を介してFAXデータの送受信を行うものである。
画像解析部28は、入力する画像データに基づいて画像解析を行い、その解析結果を出力するものである。例えば、画像解析部28は、入力画像に罫線が含まれる場合にその罫線の途切れや擦れなどを検知することができる。
課金処理部29は、ジョブの実行に伴い、課金処理を行う処理部である。例えば、課金処理部29は、ユーザーによって指定された印刷ジョブが実行されることに伴い、当該ユーザー又は当該ユーザーが所属する部署に対して印刷ジョブに応じた課金処理を行う。
図3は、制御部10の機能構成の一例を示すブロック図である。図3に示すように、制御部10は、CPU11がファームウェア14を実行することにより、アプリケーション起動部31、アプリケーション連携部32及び履歴記録部34として機能する。
アプリケーション起動部31は、記憶部20の所定の記憶領域20aに格納されているアプリケーションプログラム21を読み出してCPU11に実行させることにより、制御部10においてアプリケーションを起動させる処理部である。図3の例では、制御部10において第1のアプリケーション41が起動した状態を示している。
制御部10において第1のアプリケーション41が起動すると、第1のアプリケーション41は、例えばユーザーが操作可能な操作画面を生成する。このとき、第1のアプリケーション41は、画像処理装置3に搭載されている複数の機能のうち、第1のアプリケーション41が利用する特定の機能に応じた操作画面を生成する。例えば、操作画面は、特定の機能を動作させる際の各種設定項目に対してユーザーが所望の設定値を入力することができる画面構成を有している。そして第1のアプリケーション41は、操作パネル17の表示部18に操作画面を表示し、操作入力部19に対して行われるユーザーの操作を受け付ける。第1のアプリケーション41は、ユーザーによる操作を受け付けると、ユーザーによって行われた操作内容を示す操作情報をアプリケーション連携部32に対して出力する。
アプリケーション連携部32は、制御部10において起動されるアプリケーションと連携して各種の処理を行う処理部である。アプリケーション連携部32は、ジョブ制御部33を備えている。ジョブ制御部33は、制御部10において起動されるアプリケーションと連携してジョブの設定や実行などを制御するものである。図3に示すように、制御部10において第1のアプリケーション41が起動している場合、アプリケーション連携部32は、第1のアプリケーション41から出力される操作情報に基づいてジョブの設定を行う。
図4は、第1のアプリケーション41とアプリケーション連携部32との連携動作の一例を示す図である。第1のアプリケーション41は、画像処理装置3の特定の機能を利用するため、アプリケーション連携部32において設定可能な複数の設定項目A,B,Cに対するユーザーの操作を受け付ける。ユーザーによって設定項目Aに対して設定値a1が指定され、設定項目Bに対して設定値b1が指定され、さらに設定項目Cに対して設定値c1が指定された場合、第1のアプリケーション41は、アプリケーション連携部32に対して各設定項目A,B,Cの設定値a1,b1,c1を出力する。そのため、アプリケーション連携部32は、第1のアプリケーション41を介して設定項目A,B,Cのそれぞれに対して設定値a1,b1,c1を設定する。
そしてアプリケーション連携部32は、第1のアプリケーション41からジョブの実行開始が指示されると、第1のアプリケーション41から指定された設定値a1,b1,c1を反映させた状態で、スキャナ部25、プリンタ部26及びFAX部27のそれぞれを駆動させることにより、ユーザーによって指定されたジョブの実行を制御する。つまり、アプリケーション連携部32は、第1のアプリケーション41によって指定される設定値を反映させると共に、画像処理装置3の設定情報15などで予め定められている条件下においてそれらの設定値を反映させた状態で第1のアプリケーション41によって指定される処理を実行するのである。また、アプリケーション連携部32は、ジョブの実行開始に伴い、必要に応じて画像解析部28及び課金処理部29のそれぞれを動作させる。
履歴記録部34は、アプリケーション連携部32によってジョブの実行が行われた場合にそのジョブの実行履歴を履歴情報22に記録して保存する処理部である。図5は、履歴情報22の一例を示す図である。例えば履歴情報22には、ジョブを実行したユーザー名と、ジョブ実行時に使用されたアプリケーションと、アプリケーションによって各設定項目に設定された設定値と、操作日時とが記録される。履歴記録部34は、画像処理装置3においてジョブが実行される度に、ユーザー名と、アプリケーションと、各設定項目の設定値と、操作日時とを履歴情報22に記録する。このような履歴情報22を参照すれば、画像処理装置3において起動されるアプリケーション(例えば第1のアプリケーション41)を介してユーザーにより設定された各設定項目の設定値を特定することができる。
図3に戻り、制御部10は、CPU11が記憶部20に記憶されている更新制御プログラム23を読み出して実行することにより、更新制御部50として機能する。例えば、CPU11は、画像処理装置3に対する電源投入に伴ってファームウェア14を起動した後、更新制御プログラム23を自動的に読み出して実行する。そのため、更新制御部50は、制御部10に常駐する状態で起動される。この更新制御部50は、画像処理装置3にインストールされているアプリケーションプログラム21を新バージョンに更新し、新バージョンのアプリケーションが画像処理装置3において正常動作するか否かの動作確認を行う処理部である。
図6は、更新制御部50の詳細な機能構成の一例を示すブロック図である。更新制御部50は、更新処理部51と、テストデータ取得部52と、動作確認部55とを備えている。
更新処理部51は、記憶部20に記憶されているアプリケーションプログラム21を更新する処理部である。この更新処理部51は、上述した手法でサーバー7に保存されているアプリケーションプログラム21がバージョンアップされたか否かを検知する。そしてサーバー7に保存されているアプリケーションプログラム21のバージョンが更新されていることを検知すると、更新処理部51は、新バージョンのアプリケーションプログラム21bを含む更新用プログラムをダウンロードし、その更新用プログラムを実行することで画像処理装置3に新バージョンのアプリケーションプログラム21bをインストールする。このとき、更新処理部51は、記憶部20の所定の記憶領域20aにインストールされていた旧バージョンのアプリケーションプログラム21aを所定の記憶領域20aから別の記憶領域20bに移動させる。そして所定の記憶領域20aを空き領域にした後、更新処理部51は、新バージョンのアプリケーションプログラム21bを所定の記憶領域20aへ保存する。所定の記憶領域20aは、CPU11の読み出し対象となるパスが予め設定された記憶領域である。そのため、新バージョンのアプリケーションプログラム21bが所定の記憶領域20aに保存されると、CPU11による実行対象となるアプリケーションプログラム21は、旧バージョンのアプリケーションプログラム21aから新バージョンのアプリケーションプログラム21bに変更される。
テストデータ取得部52及び動作確認部55は、更新処理部51によって新バージョンのアプリケーションプログラム21bがダウンロードされ、所定の記憶領域20aに保存された場合に機能する。そしてテストデータ取得部52及び動作確認部55は、新バージョンのアプリケーションプログラム21bが画像処理装置3において正常動作するか否かを検証する。
テストデータ取得部52は、動作確認を行うためのテストデータを取得する処理部である。図6に示すテストデータ取得部52は、設定値抽出部53及びテストデータ生成部54を備えている。設定値抽出部53は、履歴情報22を読み出し、履歴情報22に記録されている各設定項目の設定値を抽出する処理部である。例えば、設定値抽出部53は、履歴情報22に記録されている各種設定項目のうちから、旧バージョンのアプリケーションプログラム21aに対応する第1のアプリケーション41で設定された設定項目の設定値だけを抽出するようにしても良い。ただし、これに限られず、設定値抽出部53は、履歴情報22に記録されている各種設定項目の全ての設定値を抽出するようにしても良い。
また、設定値抽出部53は、履歴情報22に記録されている複数の設定値のうち、所定回数以上の使用履歴がある設定値を抽出するようにしても良い。例えば、同一の設定項目について複数種類の設定値が使用された履歴がある場合、設定値抽出部53は、その設定項目について所定回数以上の使用履歴がある設定値を優先的に抽出するようにしても良い。この場合、ユーザーによる使用回数の多い設定値を用いてテストデータを生成することができるため、ユーザーの使用状況に適した動作確認を行うことができるという利点がある。
また、設定値抽出部53は、履歴情報22に記録されている複数の設定値のうち、所定期間内に記録された設定値を抽出するようにしても良い。例えば、同一の設定項目について複数種類の設定値が使用された履歴がある場合、設定値抽出部53は、直近の1ヶ月間など所定期間内での使用履歴がある設定値を優先的に抽出するようにしても良い。この場合、ユーザーによって最近使用された設定値を用いてテストデータを生成することができるため、ユーザーの最近の使用状況に適した動作確認を行うことができるという利点がある。
また、設定値抽出部53は、履歴情報22に記録されている複数の設定値のうち、特定のユーザーによって設定された設定値を抽出するようにしても良い。例えば、同一の設定項目について複数種類の設定値が使用された履歴がある場合、設定値抽出部53は、例えば管理者や部署代表者などの特定のユーザーによって設定された設定値を優先的に抽出するようにしても良い。この場合、全てのユーザーではなく、特定のユーザーによって使用された設定値だけを用いてテストデータを生成することができるため、動作確認を効率的に行うことができるという利点がある。
そしてテストデータ生成部54は、設定値抽出部53によって抽出された設定値に基づいて動作確認のためのテストデータを生成する。
図7は、設定値抽出部53及びテストデータ生成部54の動作の概念を示す図である。例えば、図7(a)に示すように、テストデータ生成部54は、テスト項目情報54aを保持している。テスト項目情報54aは、アプリケーションによって利用される機能ごとにテスト項目が予め定められた情報である。そのため、テストデータ生成部54は、アプリケーションの機能に基づいてテスト項目を特定することができる。そしてテストデータ生成部54は、設定値抽出部53によって履歴情報22から複数の設定項目の設定値が抽出されると、それら複数の設定項目のうちからテスト項目に合致する設定項目の設定値に基づいてテストデータ57を生成する。
図8は、テスト項目情報54aの一例を示す情報である。図8に示すように、テスト項目情報54aは、アプリケーションの機能(例えばプリント機能、スキャン機能、FAX機能、通信機能、ブラウザ機能など)に応じて動作確認のためのテスト項目が定義された情報である。テストデータ生成部54は、このようなテスト項目情報54aを参照することにより、新バージョンのアプリケーションプログラム21bによって起動されるアプリケーションの機能に応じたテスト項目を特定し、その特定したテスト項目に対応する設定値に基づいてテストデータ57を生成する。これにより、テストデータ57は、ユーザーによって過去にジョブが実行された際に、そのジョブに反映された設定値を含むデータとして生成される。
また、図7(b)に示すように、テストデータ生成部54は、サーバー7からテスト済み情報60を取得し、そのテスト済み情報60に基づいてテストデータ57を生成するようにしても良い。サーバー7には、新バージョンのアプリケーションプログラム21bがリリースされる前に行われたテストに関するテスト済み情報60が保存されていることがある。そのようなテスト済み情報60には、テスト済みの設定値を示すテスト済み設定値61と、新バージョンのアプリケーションプログラム21bを起動させたときのファームウェアのバージョンを示すファームウェア情報62とが含まれる。そのため、テストデータ生成部54は、制御部10において起動されるファームウェア14のバージョンと、リリース前に行われたテスト時のファームウェアのバージョンとが一致するのであれば、テスト済み設定値61と同じ設定値をテストする必要がないと判断し、テスト済み設定値61と同じ設定項目をテスト項目から除外してテストデータ57を生成するようにしても良い。すなわち、テストデータ生成部54は、設定値抽出部53によって抽出される設定値と、テスト済み設定値61との差分をとり、その差分に基づいてテストデータ57を生成するようにしても良い。
また、テストデータ生成部54は、設定値抽出部53によって抽出される設定値が特定のサーバーにアクセスするためのユーザーアカウント情報を含む場合、アクセス先のサーバーを特定のサーバーからテスト用のサーバー8に書き換えると共に、ユーザーアカウント情報をテスト用アカウント情報に書き換えるようにしても良い。例えば、特定のサーバーがユーザーからのアクセスに応じた課金処理を行う場合、動作確認のために画像処理装置3が自動的に特定のサーバーにアクセスしてしまうと、ユーザーの意図しない課金処理が行われてしまう可能性がある。そのような事態を防止するため、テストデータ生成部54は、動作確認のためのアクセス先をテスト用のサーバー8に書き換えると共に、ユーザーアカウント情報をテスト用アカウント情報に書き換えるのである。これにより、動作確認時に画像処理装置3がアクセスするサーバーをテスト用のサーバー8に切り替えることができる。
また、設定値抽出部53によって抽出される設定値に、外部装置(情報機器5、サーバー7,8を含む)へ送信する画像データの指定が含まれている場合、テストデータ生成部54は、テストデータ57を生成するとき、その指定された画像データのデータ量と同等のダミーデータを生成し、外部装置へ送信するデータとして、そのダミーデータを指定した設定値に書き換える。これにより、例えば画像データに機密情報が含まれている場合であっても、動作確認時に機密情報を含む画像データが外部装置へ送信されてしまうことを防止することができるようになる。また、実際の画像データを外部装置へ送信しなくても、その画像データとデータ量が同等であるダミーデータを外部装置へ送信することで、動作確認時に実際の画像データを送信する場合と同様の通信負荷テストを行うことができるようになる。
テストデータ取得部52は、上記のようにしてテストデータ生成部54によって生成されるテストデータ57を取得する。そしてテストデータ取得部52は、テストデータ57を動作確認部55に対して出力する。尚、テストデータ取得部52は、上記のように自身でテストデータ57を生成するものに限られない。例えば、テストデータ取得部52は、記憶部20から履歴情報22を読み出し、その履歴情報22をサーバー7又はサーバー8へ送信することによってテストデータ57の生成を要求し、サーバー7又はサーバー8で生成されるテストデータ57を取得するようにしても良い。
動作確認部55は、新バージョンのアプリケーションプログラム21bを起動させ、テストデータ取得部52によって取得されたテストデータ57を用いて新バージョンのアプリケーションプログラム21bが正常に動作するか否かの動作確認を行う。図9は、動作確認部55による動作確認の概念を示す図である。動作確認部55は、まず、制御部10のCPU11に、所定の記憶領域20aに記憶されている新バージョンのアプリケーションプログラム21bを実行させる。これにより、制御部10において新バージョンのアプリケーション42が起動する。制御部10において第2のアプリケーション42が起動すると、動作確認部55は、テストデータ57を第2のアプリケーション42に投入し、第2のアプリケーション42が画像処理装置3において正常動作するか否かを検証する。
例えば、動作確認部55は、第2のアプリケーション42において設定可能な各設定項目に対してテストデータ57に含まれる設定値を設定させ、その設定値が第2のアプリケーション42からアプリケーション連携部32に対して正常に設定されるか否かを検証する。第2のアプリケーション42が動作可能なファームウェアのバージョンと、画像処理装置3にインストールされているファームウェア14のバージョンとが異なる場合、アプリケーション連携部32は、第2のアプリケーション42から出力される設定値を正常に反映させることができず、第2のアプリケーション42又はアプリケーション連携部32においてエラーが発生する可能性がある。また、第2のアプリケーション42がネットワーク6を介して外部装置と通信を行う際、画像処理装置3のネットワーク設定に適合しない形態で通信を行うと、正常に通信を行うことができず、第2のアプリケーション42又はアプリケーション連携部32においてエラーが発生する。動作確認部55は、第2のアプリケーション42に対してテストデータ57を投入することに伴い、第2のアプリケーション42又はアプリケーション連携部32においてエラーが発生するか否かを検証する。
また、第2のアプリケーション42が画像処理装置3にジョブを実行させる機能を有している場合、動作確認部55は、第2のアプリケーション42にテストデータ57を入力し、アプリケーション連携部32を介してジョブの実行を行わせる。このとき、動作確認部55は、アプリケーション連携部32に対して実際にスキャナ部25、プリンタ部26又はFAX部27を動作させることを許可し、ジョブが実際に行われるようにしても良い。第2のアプリケーション42が画像処理装置3の動作条件に合致しない条件でジョブを実行させようとすると、エラーが発生することがある。そのため、動作確認部55は、第2のアプリケーション42を介してジョブを実行させることに伴い、エラーが発生するか否かを検証する。
また、第2のアプリケーション42がアプリケーション連携部32を介してプリンタ部26に印刷出力を行わせる機能を有している場合、動作確認部55は、第2のアプリケーション42にテストデータ57を入力し、アプリケーション連携部32を介してプリンタ部26にテスト印刷を行わせるようにしても良い。動作確認中に印刷出力が行われる場合、第2のアプリケーション42及びアプリケーション連携部32においてエラーが発生することなく、ジョブの実行が正常に終了しても、出力される印刷物に画像不良が生じることがある。そのため、動作確認部55は、動作確認中に、プリンタ部26によってテスト印刷が行われた場合、管理者などの特定のユーザーに対してテスト印刷を行ったことを通知する。この通知は、例えば、特定のユーザーの電子メールアドレスに対して電子メールを送信することにより行われる。このような通知により、特定のユーザーは、画像処理装置3においてテスト印刷が行われたことを把握し、画像処理装置3の設置場所まで移動してテスト印刷によって出力された印刷物を確認する。そして印刷物において画像不良が生じていない場合、特定のユーザーは、操作パネル17を介して正常な印刷物が出力されたことを入力する。また、印刷物において画像不良が生じている場合、特定のユーザーは、操作パネル17を介して正常な印刷物が出力されていないことを入力する。動作確認部55は、そのような特定のユーザーの指示に基づいて第2のアプリケーション42及びアプリケーション連携部32のそれぞれが正常に動作したか否かを判断する。
また、動作確認部55は、テスト印刷が行われるとき、アプリケーション連携部32に対してシートの所定位置にテスト印刷であることを示す情報を印刷させるように制御する。所定位置は、シートの裏面であっても良いし、シートの表面の隅であっても良い。テスト印刷であることを示す情報を印刷しておくことにより、特定のユーザーとは異なるユーザーが画像処理装置3から出力された印刷物を取得した場合でも、テスト印刷による印刷物であることを把握することができるようになる。
また、動作確認部55は、テスト印刷が行われる場合、課金処理部29に課金処理を行わせないようにする。つまり、テスト印刷は、第2のアプリケーション42の動作確認のために行われる印刷出力であるため、テスト印刷によって特定のユーザー又は特定の部署に対する課金が行われないようにするのである。
また、第2のアプリケーション42がアプリケーション連携部32を介してプリンタ部26に印刷出力を行わせる機能を有している場合であっても、動作確認部55は、第2のアプリケーション42にテストデータ57を入力してアプリケーション連携部32を動作させるとき、プリンタ部26にテスト印刷を行わせず、アプリケーション連携部32に出力イメージ画像を生成させ、その出力イメージ画像を予め指定された出力先へ出力させるようにしても良い。出力イメージ画像の出力先として、例えば操作パネル17の表示部18を指定しておくことにより、画像処理装置3に印刷出力を行わせることなく、ユーザーに出力イメージ画像を確認してもらうことができる。この場合、動作確認部55は、操作パネル17の操作入力部19に対して行われるユーザーの入力情報に基づき、第2のアプリケーション42及びアプリケーション連携部32のそれぞれが正常に動作しているか否かを判断することができる。
また、出力イメージ画像の出力先として、例えば管理者などの特定のユーザーが使用する情報機器5を予め指定しておいても良い。この場合、動作確認部55は、画像処理装置3に印刷出力を行わせることなく、特定のユーザーに出力イメージ画像を確認させることができる。そして動作確認部55は、情報機器5から受信する情報に基づいて第2のアプリケーション42及びアプリケーション連携部32のそれぞれが正常に動作しているか否かを判断することができる。
また、出力イメージ画像の出力先として、画像解析部28を予め指定しておいても良い。この場合、動作確認部55は、アプリケーション連携部32に対して出力イメージ画像を画像解析部28へ出力するように指示し、画像解析部28に出力イメージ画像の解析を要求する。これに伴い、画像解析部28は、アプリケーション連携部32から取得する出力イメージ画像を解析し、出力イメージ画像に罫線が含まれている場合にその罫線の途切れや擦れなどを検知する処理を行う。そして画像解析部28は、その解析結果を、動作確認部55へ出力する。動作確認部55は、画像解析部28から取得する解析結果に基づき、第2のアプリケーション42及びアプリケーション連携部32のそれぞれが正常に動作しているか否かを判断することができる。このような画像解析部28による解析は、例えば、第2のアプリケーション42が所定のテンプレート画像に一又は複数の画像を合成して印刷出力を行うような場合に自動で合成不良を検知することができるという点で特に有効である。
動作確認部55は、上記のようにテストデータ57を用いて第2のアプリケーション42を動作させることにより、第2のアプリケーション42及びアプリケーション連携部32のそれぞれが画像処理装置3の設定情報15などで予め定められている条件下において正常に動作するか否かを判断する。その結果、第2のアプリケーション42及びアプリケーション連携部32のそれぞれが正常動作した場合、動作確認部55は、画像処理装置3において第2のアプリケーション42を利用可能であると判断する。
動作確認部55は、画像処理装置3において第2のアプリケーション42を利用可能であると判断した場合、別の記憶領域20bに保存しておいた旧バージョンのアプリケーションプログラム21aを削除する。つまり、動作確認部55は、新バージョンのアプリケーション42を旧バージョンのアプリケーション41に戻す必要がないため、旧バージョンのアプリケーションプログラム21aを削除するのである。
また、動作確認部55は、画像処理装置3において第2のアプリケーション42を利用可能であると判断した場合、ネットワーク6を介して接続されている他の画像処理装置3に対して動作確認不要であることを通知するようにしても良い。これにより、他の画像処理装置3において新バージョンのアプリケーションプログラム21bがインストールされたときには、他の画像処理装置3において動作確認を行う必要がなくなるという利点がある。
一方、動作確認中において第2のアプリケーション42及びアプリケーション連携部32の少なくとも一方が正常動作しないことを確認した場合、動作確認部55は、更新処理部51に対して第2のアプリケーションが利用できないことを通知する。更新処理部51は、この通知を受けると、記憶部20のアプリケーションプログラム21を更新前の状態に戻す。すなわち、更新処理部51は、所定の記憶領域20aから新バージョンのアプリケーションプログラム21bを削除し、別の記憶領域20bに保存しておいた旧バージョンのアプリケーションプログラム21aを所定の記憶領域20aに戻すのである。これにより、画像処理装置3は、制御部10において第1のアプリケーション41が起動する状態に戻る。そのため、ユーザーは第1のアプリケーション41を利用してジョブの設定や実行などを継続して行うことができる。
また、動作確認部55は、動作確認中において第2のアプリケーション42及びアプリケーション連携部32の少なくとも一方が正常動作しないことを確認した場合、管理者などの特定のユーザーに対し、設定情報15などで定められている画像処理装置3の動作条件の変更を促す通知を行うようにしても良い。例えば、この通知は、特定のユーザーの電子メールアドレスに対して電子メールを送信することによって行われるものであっても良いし、また操作パネル17の表示部18に所定の通知画面を表示することによって行われるものであっても良い。そして特定のユーザーによって設定情報15が変更されれば、画像処理装置3の動作条件が変わるため、第2のアプリケーション42を利用することができるようになる。
次に更新制御部50によって行われる第1の処理手順について説明する。図10乃至図13は、更新制御部50によって行われる第1の処理手順を示すフローチャートである。この第1の処理手順では、動作確認時にテスト印刷を行う手順を例示している。更新制御部50は、この処理を開始すると、図10に示すように、サーバー7に保持されているアプリケーションプログラム21のバージョンが更新されているか否かを判断する(ステップS10)。例えば、サーバー7に保持されているアプリケーションプログラム21のバージョンが更新されていると、サーバー7には、新バージョンのアプリケーションプログラム21bをダウンロードしてインストールするための更新用プログラムが記憶されている。更新制御部50は、そのような更新用プログラムが存在するか否かを確認することで、新バージョンのアプリケーションプログラム21bが提供されているか否かを判断する。
サーバー7に更新用プログラムが記憶されている場合(ステップS10でYES)、更新制御部50は、その更新用プログラムをサーバー7からダウンロードする(ステップS11)。そして更新制御部50は、旧バージョンのアプリケーションプログラム21aを所定の記憶領域20aから別の記憶領域20bへ保存し(ステップS12)、更新用プログラムの実行を開始して(ステップS13)、新バージョンのアプリケーションプログラム21bを所定の記憶領域20aに保存する(ステップS14)。
続いて更新制御部50は、他の画像処理装置3から新バージョンのアプリケーションプログラム21bに関する動作確認不要通知を受信しているか否かを判断する(ステップS15)。他の画像処理装置3から動作確認不要通知を受信している場合(ステップS15でYES)、新バージョンのアプリケーションプログラム21bが正常動作することが他の画像処理装置3において既に検証されていることになる。そのため、更新制御部50は、自機において動作確認を行う必要がないと判断する。この場合、更新制御部50は、別の記憶領域20bへ保存した旧バージョンのアプリケーションプログラム21aを削除し(ステップS16)、処理を終了させる。
これに対し、動作確認不要通知を受信していない場合(ステップS15でNO)、更新制御部50は、新バージョンのアプリケーションプログラム21bの動作確認を行うためにステップS17以降の処理を開始する。更新制御部50は、動作確認のための処理を開始すると、まずテストデータ生成処理を実行する(ステップS17)。
図11は、テストデータ生成処理(ステップS17)の詳細な処理手順の一例を示すフローチャートである。更新制御部50は、この処理を開始すると、履歴情報22を読み出し(ステップS30)、その履歴情報22に記録されている各設定項目の設定値を抽出するための設定値抽出処理を行う(ステップS31)。
図12は、その設定値抽出処理(ステップS31)の詳細な処理手順の一例を示すフローチャートである。更新制御部50は、設定値抽出処理を開始すると、設定値の抽出対象ユーザーとして特定のユーザーのみが対象となっているか否かを判断する(ステップS50)。特定のユーザーのみが対象となっている場合(ステップS50でYES)、更新制御部50は、履歴情報22から特定のユーザーの履歴情報(設定値)を抽出する(ステップS51)。また、特定のユーザーのみが対象となっていない場合(ステップS50でNO)、更新制御部50は、履歴情報22から全てのユーザーの履歴情報(設定値)を抽出する(ステップS52)。
次に更新制御部50は、所定回数以上の使用履歴がある設定値が抽出対象であるか否かを判断する(ステップS53)。所定回数以上の使用履歴がある設定値が抽出対象である場合(ステップS53でYES)、更新制御部50は、ステップS51又はS52で抽出された設定値のうちから、所定回数以上の使用履歴がある設定値をテストデータ57の候補として抽出する(ステップS54)。また、所定回数以上の使用履歴がある設定値が抽出対象でない場合(ステップS53でNO)、更新制御部50は、所定期間内に記録された設定値が抽出対象であるか否かを判断する(ステップS55)。所定期間内に記録された設定値が抽出対象である場合(ステップS55でYES)、更新制御部50は、ステップS51又はS52で抽出された設定値のうちから、所定期間内に使用された設定値をテストデータ57の候補として抽出する(ステップS56)。これに対し、所定期間内に記録された設定値が抽出対象でない場合(ステップS55でNO)、更新制御部50は、ステップS51又はS52で抽出された全ての設定値をテストデータ57の候補として抽出する(ステップS57)。
次に更新制御部50は、サーバー7にテスト済み情報60が保存されているか否かを判断する(ステップS58)。サーバー7にテスト済み情報60が保存されている場合(ステップS58でYES)、更新制御部50は、そのテスト済み情報60をサーバー7から取得し(ステップS59)、テストデータ57の候補として抽出した設定値と、テスト済み情報60に含まれるテスト済み設定値61との差分をとり、その差分に含まれる設定値をテストデータ57の候補として抽出する(ステップS60)。尚、サーバー7にテスト済み情報60が保存されていない場合(ステップS58でNO)、ステップS59,S60の処理はスキップする。また、テスト済み情報60のファームウェア情報62に記録されているファームウェアのバージョンと、制御部10のファームウェア14のバージョンとが一致しない場合にも、ステップS59,S60の処理はスキップする。以上のようにして履歴情報22に記録されている設定値の中から、テストデータ57の候補となる設定値が抽出される。
図11に戻り、更新制御部50は、設定値抽出処理(ステップS31)を終了すると、次に新バージョンのアプリケーションプログラム21bによって起動される第2のアプリケーション42の機能を特定し(ステップS32)、テスト項目情報54aを参照する(ステップS33)。そして更新制御部50は、第2のアプリケーション42の機能とテスト項目情報54aとに基づき、動作確認を行う際のテスト項目を特定する(ステップS34)。さらに更新制御部50は、設定値抽出処理(ステップS31)で抽出された設定値のうちから、テスト項目に合致する設定項目の設定値を抽出し、テストデータ57を生成する(ステップS35)。
次に更新制御部50は、テストデータ57の設定値に、特定のサーバーへアクセスするためのユーザーアカウント情報が含まれるか否かを判断する(ステップS36)。特定のサーバーへアクセスするためのユーザーアカウント情報が含まれる場合(ステップS36でYES)、更新制御部50は、アクセス先を特定のサーバーからテスト用のサーバー8に書き換え(ステップS37)、さらにユーザーアカウント情報をテスト用アカウント情報に書き換える(ステップS38)。尚、テストデータ57の設定値に、ユーザーアカウント情報が含まれない場合(ステップS36でNO)、ステップS37,S38の処理はスキップする。
次に更新制御部50は、テストデータ57の設定値に、外部装置へ送信する画像データの指定が含まれているか否かを判断する(ステップS39)。画像データの指定が含まれている場合(ステップS39でYES)、更新制御部50は、指定されている画像データのデータ量と同等のダミーデータを生成し(ステップS40)、外部装置へ送信するデータをダミーデータに差し替える(ステップS41)。尚、テストデータ57の設定値に、画像データの指定が含まれない場合(ステップS39でNO)、ステップS40,S41の処理はスキップする。以上で、テストデータ生成処理(ステップS17)が終了する。
図10のフローチャートに戻り、更新制御部50は、テストデータ生成処理(ステップS17)を終了すると、制御部10のCPU11に新バージョンのアプリケーションプログラム21bを実行させ、第2のアプリケーション42を起動させる(ステップS18)。そして更新制御部50は、動作確認処理を開始する(ステップS19)。
図13は、動作確認処理(ステップS19)の詳細な処理手順の一例を示すフローチャートである。更新制御部50は、動作確認処理を開始すると、テスト印刷の対象となるデータに対してテスト印刷情報を付加する(ステップS70)。そして更新制御部50は、テスト印刷に伴う課金処理が行われないようにするため、課金処理部29に対する課金禁止設定を行う(ステップS71)。そして更新制御部50は、第2のアプリケーション42に対してテストデータ57を投入し(ステップS72)、第2のアプリケーション42をテストデータ57に基づいて動作させることにより動作確認を開始する(ステップS73)。
動作確認を開始すると、更新制御部50は、テスト印刷のための印刷出力が完了したか否かを判断する(ステップS74)。印刷出力が完了していない場合(ステップS74でNO)、更新制御部50は、エラー発生などの動作不良を検知したか否かを判断する(ステップS75)。更新制御部50は、動作確認中にエラー発生などの動作不良を検知した場合(ステップS75でYES)、動作確認処理を終了する。また、動作不良を検知することなく、印刷出力が完了した場合(ステップS74でYES)、更新制御部50は、管理者などの特定のユーザーに対してテスト印刷が完了したことを通知する(ステップS76)。その後、更新制御部50は、特定のユーザーからの指示があるまで待機し(ステップS77)、特定のユーザーからの指示を検知すると、動作確認処理を終了する。
図14は、テスト印刷で出力される印刷物D1の一例を示す図である。印刷物D1には、シートの所定位置に、テスト印刷情報に応じたメッセージM1が付加されている。そのため、特定のユーザーは、画像処理装置3において複数の印刷物が出力されている場合であっても、テスト印刷によって出力された印刷物D1を識別することができ、テスト印刷が正常に行われているか否かを判別することが可能である。尚、印刷物D1は、シートの表面にメッセージM1を印刷したものに限られず、シートの裏面に印刷されたものであっても構わない。また、メッセージM1は、確認後に破棄すべきであることを示すメッセージを含むことにより、特定のユーザーに確認後速やかに破棄すべきであることを伝えることができる。
図10に戻り、動作確認処理(ステップS19)が終了すると、更新制御部50は、動作確認中において第2のアプリケーション42及びアプリケーション連携部32のそれぞれが正常に動作したか否かを判断する(ステップS20)。例えば、動作確認中にテスト印刷が完了した場合、更新制御部50は、特定のユーザーによって入力された指示に基づき、正常な印刷出力が行われたか否かを判断する。第2のアプリケーション42及びアプリケーション連携部32のそれぞれが正常に動作した場合(ステップS20でYES)、更新制御部50は、別の記憶領域20bに保存した旧バージョンのアプリケーションプログラム21aを削除し(ステップS21)、他の画像処理装置3に対して動作確認不要通知を送信する(ステップS22)。
これに対し、第2のアプリケーション42及びアプリケーション連携部32のいずれかが正常に動作していないと判断した場合(ステップS20でNO)、更新制御部50は、旧バージョンのアプリケーションプログラム21aを復元する処理を行う(ステップS23)。すなわち、更新制御部50は、所定の記憶領域20aに保存した新バージョンのアプリケーションプログラム21bを削除し、別の記憶領域20bに保存している旧バージョンのアプリケーションプログラム21aを所定の記憶領域20aに戻すことにより、旧バージョンである第1のアプリケーション41を起動できる状態に戻す。そして更新制御部50は、管理者などの特定のユーザーに対し、設定情報15など定められている画像処理装置3の動作条件の変更を促す通知を行う(ステップS24)。以上で、第1の処理手順が終了する。
次に更新制御部50によって行われる第2の処理手順について説明する。この第2の処理手順では、テスト印刷を行わず、出力イメージ画像を生成して特定のユーザーに出力イメージ画像を確認してもらう手順を例示する。第2の処理手順が第1の処理手順と異なる点は、動作確認処理(ステップS19)の詳細な処理手順である。そのため、以下においては、動作確認処理(ステップS19)の詳細について説明する。
図15は、第2の処理手順における動作確認処理(ステップS19)の詳細な処理手順の一例を示すフローチャートである。更新制御部50は、この動作確認処理を開始すると、アプリケーション連携部32に対して出力イメージ画像の生成を指示する(ステップS80)。これにより、アプリケーション連携部32は、第2のアプリケーション42から入力する印刷対象データに基づいて出力イメージ画像を生成するようになる。そして更新制御部50は、第2のアプリケーション42に対してテストデータ57を投入し(ステップS81)、第2のアプリケーション42をテストデータ57に基づいて動作させることにより動作確認を開始する(ステップS82)。
動作確認を開始すると、更新制御部50は、アプリケーション連携部32によって出力イメージ画像の生成処理が完了したか否かを判断する(ステップS83)。出力イメージ画像の生成が完了していない場合(ステップS83でNO)、更新制御部50は、エラー発生などの動作不良を検知したか否かを判断する(ステップS84)。更新制御部50は、動作確認中にエラー発生などの動作不良を検知した場合(ステップS84でYES)、動作確認処理を終了する。また、動作不良を検知することなく、出力イメージ画像の生成が完了した場合(ステップS83でYES)、更新制御部50は、管理者などの特定のユーザーに対して出力イメージ画像を送信する(ステップS85)。これにより、管理者は、自身の情報機器5で出力イメージ画像を確認することができるようになる。その後、更新制御部50は、特定のユーザーからの指示があるまで待機し(ステップS86)、特定のユーザーからの指示を検知すると、動作確認処理を終了する。このように更新制御部50は、テスト印刷を行うことなく、出力イメージ画像を特定のユーザーに送信することで、動作確認中に、印刷用紙などのシートが消費されてしまうことを防止することができるという利点がある。
次に更新制御部50によって行われる第3の処理手順について説明する。この第3の処理手順では、テスト印刷を行わず、出力イメージ画像を生成して画像解析部28へ出力する手順を例示する。第3の処理手順が第1の処理手順と異なる点は、動作確認処理(ステップS19)の詳細な処理手順である。そのため、以下においては、動作確認処理(ステップS19)の詳細について説明する。
図16は、第3の処理手順における動作確認処理(ステップS19)の詳細な処理手順の一例を示すフローチャートである。更新制御部50は、この動作確認処理を開始すると、アプリケーション連携部32に対して出力イメージ画像の生成を指示する(ステップS90)。これにより、アプリケーション連携部32は、第2のアプリケーション42から入力する印刷対象データに基づいて出力イメージ画像を生成するようになる。そして更新制御部50は、第2のアプリケーション42に対してテストデータ57を投入し(ステップS91)、第2のアプリケーション42をテストデータ57に基づいて動作させることにより動作確認を開始する(ステップS92)。
動作確認を開始すると、更新制御部50は、アプリケーション連携部32によって出力イメージ画像の生成処理が完了したか否かを判断する(ステップS93)。出力イメージ画像の生成が完了していない場合(ステップS93でNO)、更新制御部50は、エラー発生などの動作不良を検知したか否かを判断する(ステップS94)。更新制御部50は、動作確認中にエラー発生などの動作不良を検知した場合(ステップS94でYES)、動作確認処理を終了する。また、動作不良を検知することなく、出力イメージ画像の生成が完了した場合(ステップS93でYES)、更新制御部50は、アプリケーション連携部32において生成された出力イメージ画像を画像解析部28へ出力し、画像解析部28に画像解析を依頼する(ステップS95)。これにより、画像解析部28は、出力イメージ画像に含まれる罫線に途切れや擦れなどが生じていないかどうかを解析し、途切れや擦れなどが生じている場合に画像不良と判断する。そして画像解析部28は、出力イメージ画像の解析結果を更新制御部50に対して出力する。更新制御部50は、画像解析部28に対して画像解析を依頼した後、画像解析部28から解析結果を取得するまで待機し(ステップS96)、解析結果を取得すると(ステップS96でYES)、動作確認処理を終了する。このように更新制御部50は、テスト印刷を行うことなく、出力イメージ画像を画像解析部28に解析させることで、動作確認中に印刷用紙などのシートが消費されてしまうことを防止することができると共に、特定のユーザーを煩わせることなく動作確認を行うことができるという利点がある。
次に更新制御部50によって行われる第4の処理手順について説明する。この第4の処理手順では、第2のアプリケーション42のブラウザ機能を動作確認するための手順を例示する。この第4の処理手順が第1の処理手順と異なる点は、動作確認処理(ステップS19)の詳細な処理手順である。そのため、以下においては、動作確認処理(ステップS19)の詳細について説明する。
図17は、第4の処理手順における動作確認処理(ステップS19)の詳細な処理手順の一例を示すフローチャートである。更新制御部50は、この動作確認処理を開始すると、第2のアプリケーション42に対してテストデータ57を投入し(ステップS100)、第2のアプリケーション42をテストデータ57に基づいて動作させることにより第2のアプリケーション42の動作確認を開始する(ステップS101)。これにより、第2のアプリケーション42は、テストデータ57で定められたURL(Uniform Resource Locator)にアクセスし、Webページを取得して操作パネル17の表示部18に表示する処理を開始する。更新制御部50は、動作確認を開始すると、第2のアプリケーション42によるブラウザ表示が完了したか否かを判断する(ステップS102)。ブラウザ表示が完了していない場合(ステップS102でNO)、更新制御部50は、通信不良などの動作不良を検知したか否かを判断する(ステップS103)。更新制御部50は、動作確認中に通信不良などの動作不良を検知した場合(ステップS103でYES)、動作確認処理を終了する。また、動作不良を検知することなく、第2のアプリケーション42によるブラウザ表示が完了した場合(ステップS102でYES)、更新制御部50は、表示部18におけるWebページの表示状態を記憶する(ステップS104)。
次に更新制御部50は、制御部10のCPU11に別の記憶領域20bに保存しているアプリケーションプログラム21aを実行させ、制御部10において第1のアプリケーション41を起動させる(ステップS105)。そして更新制御部50は、第1のアプリケーション41に対してテストデータ57を投入し(ステップS106)、第1のアプリケーション41をテストデータ57に基づいて動作させることにより第1のアプリケーション41の動作確認を開始する(ステップS107)。これにより、第1のアプリケーション41は、テストデータ57で定められたURL(Uniform Resource Locator)にアクセスし、Webページを取得して操作パネル17の表示部18に表示する処理を開始する。更新制御部50は、動作確認を開始すると、第1のアプリケーション41によるブラウザ表示が完了するまで待機し(ステップS108)、ブラウザ表示が完了すると(ステップS108でYES)、表示部18におけるWebページの表示状態を記憶する(ステップS109)。
次に更新制御部50は、第2のアプリケーション42によるWebページの表示状態と、第1のアプリケーション41による同じWebページの表示状態とを比較し(ステップS111)、第1のアプリケーション41によって表示されている画像の中に、第2のアプリケーション42によって表示されていない画像があるか否かを判断する(ステップS112)。その結果、第2のアプリケーション42では表示されない画像の存在を検知すると(ステップS112でYES)、更新制御部50は、第2のアプリケーション42の動作不良と判断する(ステップS113)。これに対し、第2のアプリケーション42で表示されない画像が存在しない場合(ステップS112でNO)、更新制御部50は、第2のアプリケーション42が正常動作していると判断する(ステップS114)。以上で、動作確認処理が終了する。
図18は、ブラウザ機能に関する動作確認の概要を示す図である。図18(a)は、第1のアプリケーション41のブラウザ機能によって表示部18に表示されるブラウザ画面を例示しており、図18(b)は、第2のアプリケーション42のブラウザ機能によって表示部18に表示されるブラウザ画面を例示している。例えば図18(a)に示すように、旧バージョンである第1のアプリケーション41は、Webページのコンテンツ表示領域R1に含まれる画像を正常に表示することができる。これに対し、新バージョンである第2のアプリケーション42は、同じWebページのコンテンツ表示領域R1に含まれる画像を正常に表示することができていない。このような場合、2つの表示状態を比較すると、第2のアプリケーション42によって表示されるブラウザ画面では、第1のアプリケーション41によって表示されていた画像が正常に表示されていないことになる。したがって、この場合には、更新制御部50が第2のアプリケーション42の動作不良と判断することになる。更新制御部50によって第2のアプリケーション42が動作不良であると判断されると、画像処理装置3において起動されるアプリケーションが旧バージョンの第1のアプリケーション41に戻るため、ユーザーは、旧バージョンの第1のアプリケーション41を利用して従前通りにWebページを閲覧することができる。
以上のように本実施形態の画像処理装置3は、アプリケーションプログラム21を記憶する記憶部20と、記憶部20に記憶されているアプリケーションプログラム21を実行することによって第1のアプリケーション41を起動するアプリケーション起動部31と、アプリケーション起動部31によって第1のアプリケーション41が起動されている状態で第1のアプリケーション41によって指定される設定値を反映させると共に、予め定められた条件下においてその設定値を反映させた状態で第1のアプリケーション41によって指定される処理を実行するアプリケーション連携部32と、アプリケーション連携部32によって処理が実行されることに伴い、設定値を履歴情報22として記録する履歴記録部34と、アプリケーションプログラム21の更新用プログラムを取得し、その更新用プログラムを実行することによってアプリケーションプログラム21を更新する更新処理部51と、更新処理部51によってアプリケーションプログラム21が更新された場合に、履歴情報22に記録されている設定値に基づいて生成されるテストデータ57を取得するテストデータ取得部52と、更新処理部51によってアプリケーションプログラム21が更新された場合に、アプリケーション起動部31にアプリケーションプログラム21を実行させることによって第2のアプリケーション42を起動させ、第2のアプリケーション42にテストデータ57を入力して第2のアプリケーション42及びアプリケーション連携部32のそれぞれが予め定められた条件下において正常動作するか否かを検証する動作確認部55と、を備える構成である。
このような構成によれば、画像処理装置3は、従来のように複数のテストモジュールを予めインストールしておく必要がなく、テストモジュールの開発に要するコストの上昇を抑えることができると共に、記憶部20においてテストモジュールの占有率が高くなることを抑制することもできる。すなわち、本実施形態の画像処理装置3は、アプリケーションを更新して動作確認を行うためのプログラムとして、1つの更新制御プログラム23だけを記憶しておけば良い。
また、上記構成によれば、ユーザーによって過去に使用された設定値を用いてテストデータ57を自動作成して第2のアプリケーション42の動作確認を自動的に行うことが可能であり、画像処理装置3が設置されている顧客環境をそのまま利用して第2のアプリケーション42が正常動作するか否かを速やかに確認することができるという利点もある。
以上、本発明に関する好ましい実施形態について説明した。しかし、本発明は、上記実施形態において説明した内容のものに限られるものではなく、種々の変形例が適用可能である。
例えば、上記実施形態では、画像処理装置3においてアプリケーションが更新された場合に動作確認を自動的に行う例を説明した。しかし、上述した動作確認技術を適用可能な装置は、画像処理装置3には限られない。例えば、パーソナルコンピュータ(PC)やタブレット端末などの情報処理装置においてアプリケーションが更新された場合にも、上述した動作確認技術は適用可能である。したがって、本発明は、上述した情報処理装置4として機能する構成を有していれば良い。
また、上記実施形態では、制御部10を更新制御部50として機能させるための更新制御プログラム23が予め記憶部20にインストールされている場合を例示した。しかし、更新制御プログラム23は、例えば通信インタフェース16などを介して記憶部20にインストールされるものであっても構わない。この場合、更新制御プログラム23は、インターネットなどを介してダウンロード可能な態様で提供される。また、これに限らず、更新制御プログラム23は、CD-ROMやUSBメモリなどのコンピュータ読み取り可能な記録媒体に記録された態様で提供されるものであっても構わない。