(57)【要約】【課題】異なるテスト環境においても、テスト品質を維持し、テスト工程の作業効率を向上させることが可能な画像処理装置、情報処理装置、ソフトウェア動作テスト方法、ソフトウェア動作テストプログラム、及びそのプログラムを記録した記録媒体を提供する。【解決手段】画像処理装置１００は、評価対象機が搭載するソフトウェアＳＷ及び／又はハードウェアＨＷにより各種機能を提供する評価対象機能提供手段８１を有する装置であって、評価対象機能提供手段８１に対して、評価対象ソフトウェアＳＷ１と、評価対象ソフトウェアＳＷ１以外のソフトウェアＳＷ及び／又はハードウェアＨＷとの間で送受信されるイベントを制御するイベント制御手段２２と、評価対象機能提供手段８１の動作環境に応じて、イベント制御手段２２によりイベントの取得及び／又は発行を制御し、評価対象ソフトウェアＳＷ１の動作をテストする動作テスト手段８２とを有することを特徴とする。【選択図】図５
2010020562.tif 000002
【特許請求の範囲】
【請求項１】
評価対象機である当該画像処理装置が搭載するソフトウェア及び／又はハードウェアにより各種機能を提供する評価対象機能提供手段を有する画像処理装置であって、
前記評価対象機能提供手段に対して、評価対象ソフトウェアと、前記評価対象ソフトウェア以外のソフトウェア及び／又はハードウェアとの間で送受信されるイベントを制御するイベント制御手段と、
前記評価対象機能提供手段の動作環境に応じて、前記イベント制御手段によりイベントの取得及び／又は発行を制御し、前記評価対象ソフトウェアの動作をテストする動作テスト手段とを有することを特徴とする画像処理装置。
【請求項２】
前記動作テスト手段は、
前記イベント制御手段を制御し取得した前記イベントを記録する記録手段と、
前記記録手段により記録されたイベントに基づき、前記評価対象ソフトウェアの動作テストを実行する実行手段と、
前記実行手段により実行された動作テストの動作結果に基づき、前記評価対象ソフトウェアの動作を検証・評価する検証・評価手段とを有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記動作テスト手段は、
前記イベント制御手段を制御し取得した前記イベントのデータを、前記評価対象機能提供手段の動作環境に応じて補正するデータ補正手段を有することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記データ補正手段は、
前記イベント制御手段を制御し取得した前記イベントの識別情報又は属性情報に基づき、前記イベントを補正するか否かを判定するデータ補正判定手段を有し、
前記データ補正判定手段により判定された前記イベントのデータを、所定の変換規則に従って変換することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記記録手段は、
前記イベント制御手段を制御し取得した、前記評価対象ソフトウェア以外のソフトウェア及び／又はハードウェアから前記評価対象ソフトウェアへ送信された入力イベントを、前記動作テストを行うときの操作手順データとして記録するとともに、
前記入力イベントに応じて前記評価対象ソフトウェアから前記評価対象ソフトウェア以外のソフトウェア及び／又はハードウェアへ送信された出力イベントを、前記評価対象ソフトウェアの動作を検証・評価するときの検証データとして記録することを特徴とする請求項２ないし４のいずれか一項に記載の画像処理装置。
【請求項６】
前記実行手段が、
前記記録手段により記録された検証データの記録データ順に従って、前記検証データ内の各出力イベントに関する情報に基づき、前記イベント制御手段により前記出力イベントの発行を制御し、前記ハードウェアへ前記出力イベントを発行する出力イベント発行手段を有し、
前記記録手段が、
前記出力イベント発行手段により発行された出力イベントに応じて、前記ハードウェアから前記評価対象ソフトウェアへ送信された入力イベントを、前記操作手順データとして繰り返し記録することを特徴とする請求項２ないし５のいずれか一項に記載の画像処理装置。
【請求項７】
前記記録手段は、
前記イベント制御手段を制御し取得した、前記評価対象ソフトウェア以外のソフトウェア及び／又はハードウェアから前記評価対象ソフトウェアへ送信された入力イベントに基づき、所定の生成規則に従って、複数パターンの操作手順データを生成する操作手順パターンデータ生成手段を有し、
前記操作手順パターンデータ生成手段により生成された複数パターンの操作手順データを記録することを特徴とする請求項２ないし６のいずれか一項に記載の画像処理装置。
【請求項８】
前記記録手段は、
前記イベント制御手段を制御し取得した前記イベントを、当該画像処理装置が備える記憶装置及び／又は着脱可能な記憶媒体に格納し記録することを特徴とする請求項２ないし７のいずれか一項に記載の画像処理装置。
【請求項９】
評価対象機が搭載するソフトウェア及び／又はハードウェアにより提供される各種機能を擬似的に再現する評価対象機再現手段を有する情報処理装置であって、
前記評価対象機再現手段に対して、評価対象ソフトウェアと、前記評価対象ソフトウェア以外のソフトウェア及び／又はハードウェアとの間で送受信されるイベントを制御するイベント制御手段と、
前記評価対象機再現手段の動作環境に応じて、前記イベント制御手段によりイベントの取得及び／又は発行を制御し、前記評価対象ソフトウェアの動作をテストする動作テスト手段とを有することを特徴とする情報処理装置。
【請求項１０】
前記動作テスト手段は、
前記イベント制御手段を制御し取得した前記イベントを記録する記録手段と、
前記記録手段により記録されたイベントに基づき、前記評価対象ソフトウェアの動作テストを実行する実行手段と、
前記実行手段により実行された動作テストの動作結果に基づき、前記評価対象ソフトウェアの動作を検証・評価する検証・評価手段とを有することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記記録手段は、
前記イベント制御手段を制御し取得した、前記評価対象ソフトウェア以外のソフトウェア及び／又はハードウェアから前記評価対象ソフトウェアへ送信された入力イベントを、前記動作テストを行うときの操作手順データとして記録するとともに、
前記入力イベントに応じて前記評価対象ソフトウェアから前記評価対象ソフトウェア以外のソフトウェア及び／又はハードウェアへ送信された出力イベントを、前記評価対象ソフトウェアの動作を検証・評価するときの検証データとして記録することを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
評価対象機が搭載するソフトウェア及び／又はハードウェアにより提供される各種機能を擬似的に再現する評価対象機再現手段を有する情報処理装置、又は、評価対象機である当該画像処理装置が搭載するソフトウェア及び／又はハードウェアにより各種機能を提供する評価対象機能提供手段を有する画像処理装置におけるソフトウェア動作テスト方法であって、
前記評価対象機再現手段又は前記評価対象機能提供手段に対して、評価対象ソフトウェアと、前記評価対象ソフトウェア以外のソフトウェア及び／又はハードウェアとの間で送受信されるイベントを制御するイベント制御手順と、
前記評価対象機再現手段又は前記評価対象機能提供手段の動作環境に応じて、前記イベント制御手順によりイベントの取得及び／又は発行を制御し、前記評価対象ソフトウェアの動作をテストする動作テスト手順とを有することを特徴とするソフトウェア動作テスト方法。
【請求項１３】
評価対象機が搭載するソフトウェア及び／又はハードウェアにより提供される各種機能を擬似的に再現する評価対象機再現手段を有する情報処理装置、又は、評価対象機である当該画像処理装置が搭載するソフトウェア及び／又はハードウェアにより各種機能を提供する評価対象機能提供手段を有する画像処理装置におけるソフトウェア動作テストプログラムであって、
コンピュータを、
前記評価対象機再現手段又は前記評価対象機能提供手段に対して、評価対象ソフトウェアと、前記評価対象ソフトウェア以外のソフトウェア及び／又はハードウェアとの間で送受信されるイベントを制御するイベント制御手段と、
前記評価対象機再現手段又は前記評価対象機能提供手段に応じて、前記イベント制御手段によりイベントの取得及び／又は発行を制御し、前記評価対象ソフトウェアの動作をテストする動作テスト手段として機能させるソフトウェア動作テストプログラム。
【請求項１４】
請求項１３に記載のプログラムを記憶した、コンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、情報処理装置、ソフトウェア動作テスト方法、ソフトウェア動作テストプログラム、及びそのプログラムを記録した記録媒体に係り、特に、機器が搭載するソフトウェア部品の動作を検証・評価する技術に関するものである。
【背景技術】
【０００２】
情報通信技術の高度化に伴い、多機能な電子機器製品が市場に供給されるようになった。
【０００３】
このような機器の開発環境では、ソフトウェア開発が複雑となり、システム規模が増大する一方で、これらの製品サイクルは短く、一世代前の製品から新たな世代の製品を市場投入までの期間（製品リリース間隔）を短縮する傾向にある。
【０００４】
このようなことから、機器の製造元（メーカー）では、機器の品質を、製品として市場投入しても問題ないレベルまで、短期間に向上させなければならない。
【０００５】
しかし、多機能な機器の場合、動作するソフトウェア部品が数多く存在し、機器の動作を検証・評価するテスト工程における作業負荷もそれに伴って増大する。
【０００６】
特に、機器と利用者とのインタフェース機能を実現する操作受付・情報通知部のテスト工程では、手作業による動作検証や、目視確認による動作評価など、テストを行う担当者（以下、「テスター」と言う。）に依存する作業が多く、テスターへの負担が大きい。その結果、テスト工程の作業効率も悪い。
【０００７】
そのため、テスト工程において、テスト品質を維持しながら作業効率の向上を図る必要がある。
【０００８】
そこで、従来では、入力デバイスを介して人間が行った操作を記録し、かつ入力デバイスの操作を人間に代わって計算機で行うことを可能としたことにより、人間の操作を擬似的に自動実行することができる入力イベント記録／再生装置が提案されている（例えば「特許文献１」を参照）。
【特許文献１】特開平０７−２３４８０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に開示される従来の入力デバイス記録／再生装置は、外部機器からの入力イベントを記録する機能と、外部機器に対して仮想入力イベントを出力する機能で構成されており、手作業の操作を自動化することは可能であるが、例えば、評価対象（テスト対象）ソフトウェアが搭載された機器（以下、「評価対象機」と言う。）や、評価対象機の機能を再現したエミュレータなど、テスト環境の違いによる問題点が考慮されていない。
【００１０】
テスト環境に起因する問題点とは、操作手順を再現するために記録したデータ（操作手順記録データ）や、記録したデータを基に操作手順を再現したときに評価対象ソフトウェアの動作を検証・評価するために記録したデータ（検証用データ）などに、テスト環境の違いによる微少な差異が含まれたり、テスター操作やテスト環境特有の記録データのばらつきが発生したりする点である。
【００１１】
テスト品質を維持しながら、テスト工程の作業効率を向上させるためには、評価対象機やエミュレータと言った異なるテスト環境においても、同一のテストデータを用いることが可能であることが重要となる。
【００１２】
なぜなら、異なるテスト環境ごとに、対応するテストデータを準備したり、テスト工程の中で管理したりすることは作業者によって煩雑であり、かつ、同一のテスト工程に対してテストデータが複数存在すると、テスターが誤ったテストデータを用いて作業を行ってしまう可能性もあり、テスト品質の低下に繋がる。
【００１３】
このように、従来の入力デバイス記録／再生装置では、前述した問題点について考慮されていない。
【００１４】
本発明では、上記従来技術の問題点を鑑み、異なるテスト環境においても、テスト品質を維持し、テスト工程の作業効率を向上させることが可能な画像処理装置、情報処理装置、ソフトウェア動作テスト方法、ソフトウェア動作テストプログラム、及びそのプログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するため、本発明の画像処理装置は、評価対象機である当該画像処理装置が搭載するソフトウェア及び／又はハードウェアにより各種機能を提供する評価対象機能提供手段を有する画像処理装置であって、前記評価対象機能提供手段に対して、評価対象ソフトウェアと、前記評価対象ソフトウェア以外のソフトウェア及び／又はハードウェアとの間で送受信されるイベントを制御するイベント制御手段と、前記評価対象機能提供手段の動作環境に応じて、前記イベント制御手段によりイベントの取得及び／又は発行を制御し、前記評価対象ソフトウェアの動作をテストする動作テスト手段とを有することを特徴とする。
【００１６】
また、上記目的を達成するため、本発明の画像処理装置は、前記動作テスト手段が、前記イベント制御手段を制御し取得した前記イベントを記録する記録手段と、前記記録手段により記録されたイベントに基づき、前記評価対象ソフトウェアの動作テストを実行する実行手段と、前記実行手段により実行された動作テストの動作結果に基づき、前記評価対象ソフトウェアの動作を検証・評価する検証・評価手段とを有することを特徴とする。
【００１７】
このような構成によって、本発明の画像処理装置は、評価対象機が搭載するハード・ソフトウェアにより各種機能を提供する評価対象機能提供部と、評価対象機能提供部により提供されたシステム上で動作する評価対象ソフトウェアに対して動作テストを行う動作テスト部とを有し、動作テスト部が、評価対象機能提供部で評価対象ソフトウェアの送受信イベントを制御するソフトウェア部品を介して、操作手順の記録及び再生（実行）を行い、評価対象機能提供部の動作環境（テスト環境）に応じて、評価対象ソフトウェアの動作を検証・評価する。
【００１８】
また、上記目的を達成するため、本発明の画像処理装置は、前記動作テスト手段が、前記イベント制御手段を制御し取得した前記イベントのデータを、前記評価対象機能提供手段の動作環境に応じて補正するデータ補正手段を有することを特徴とする。
【００１９】
また、上記目的を達成するため、本発明の画像処理装置は、前記データ補正手段が、前記イベント制御手段を制御し取得した前記イベントの識別情報又は属性情報に基づき、前記イベントを補正するか否かを判定するデータ補正判定手段を有し、前記データ補正判定手段により判定された前記イベントのデータを、所定の変換規則に従って変換することを特徴とする。
【００２０】
また、上記目的を達成するため、本発明の画像処理装置は、前記記録手段が、前記イベント制御手段を制御し取得した、前記評価対象ソフトウェア以外のソフトウェア及び／又はハードウェアから前記評価対象ソフトウェアへ送信された入力イベントを、前記動作テストを行うときの操作手順データとして記録するとともに、前記入力イベントに応じて前記評価対象ソフトウェアから前記評価対象ソフトウェア以外のソフトウェア及び／又はハードウェアへ送信された出力イベントを、前記評価対象ソフトウェアの動作を検証・評価するときの検証データとして記録することを特徴とする。
【００２１】
また、上記目的を達成するため、本発明の画像処理装置は、前記実行手段が、前記記録手段により記録された検証データの記録データ順に従って、前記検証データ内の各出力イベントに関する情報に基づき、前記イベント制御手段により前記出力イベントの発行を制御し、前記ハードウェアへ前記出力イベントを発行する出力イベント発行手段を有し、前記記録手段が、前記出力イベント発行手段により発行された出力イベントに応じて、前記ハードウェアから前記評価対象ソフトウェアへ送信された入力イベントを、前記操作手順データとして繰り返し記録することを特徴とする。
【００２２】
また、上記目的を達成するため、本発明の画像処理装置は、前記記録手段が、前記イベント制御手段を制御し取得した、前記評価対象ソフトウェア以外のソフトウェア及び／又はハードウェアから前記評価対象ソフトウェアへ送信された入力イベントに基づき、所定の生成規則に従って、複数パターンの操作手順データを生成する操作手順パターンデータ生成手段を有し、前記操作手順パターンデータ生成手段により生成された複数パターンの操作手順データを記録することを特徴とする。
【００２３】
また、上記目的を達成するため、本発明の画像処理装置は、前記記録手段が、前記イベント制御手段を制御し取得した前記イベントを、当該画像処理装置が備える記憶装置及び／又は着脱可能な記憶媒体に格納し記録することを特徴とする。
【００２４】
これによって、本発明の画像処理装置は、異なるテスト環境においても、テスト品質を維持し、テスト工程の作業効率を向上させることができる。
【００２５】
また、上記目的を達成するため、本発明の情報処理装置は、評価対象機が搭載するソフトウェア及び／又はハードウェアにより提供される各種機能を擬似的に再現する評価対象機再現手段を有する情報処理装置であって、前記評価対象機再現手段に対して、評価対象ソフトウェアと、前記評価対象ソフトウェア以外のソフトウェア及び／又はハードウェアとの間で送受信されるイベントを制御するイベント制御手段と、前記評価対象機再現手段の動作環境に応じて、前記イベント制御手段によりイベントの取得及び／又は発行を制御し、前記評価対象ソフトウェアの動作をテストする動作テスト手段とを有することを特徴とする。
【００２６】
また、上記目的を達成するため、本発明の情報処理装置は、前記動作テスト手段が、前記イベント制御手段を制御し取得した前記イベントを記録する記録手段と、前記記録手段により記録されたイベントに基づき、前記評価対象ソフトウェアの動作テストを実行する実行手段と、前記実行手段により実行された動作テストの動作結果に基づき、前記評価対象ソフトウェアの動作を検証・評価する検証・評価手段とを有することを特徴とする。
【００２７】
また、上記目的を達成するため、本発明の情報処理装置は、前記記録手段が、前記イベント制御手段を制御し取得した、前記評価対象ソフトウェア以外のソフトウェア及び／又はハードウェアから前記評価対象ソフトウェアへ送信された入力イベントを、前記動作テストを行うときの操作手順データとして記録するとともに、前記入力イベントに応じて前記評価対象ソフトウェアから前記評価対象ソフトウェア以外のソフトウェア及び／又はハードウェアへ送信された出力イベントを、前記評価対象ソフトウェアの動作を検証・評価するときの検証データとして記録することを特徴とする。
【００２８】
上記目的を達成するため、本発明のソフトウェア動作テスト方法は、評価対象機が搭載するソフトウェア及び／又はハードウェアにより提供される各種機能を擬似的に再現する評価対象機再現手段を有する情報処理装置、又は、評価対象機である当該画像処理装置が搭載するソフトウェア及び／又はハードウェアにより各種機能を提供する評価対象機能提供手段を有する画像処理装置におけるソフトウェア動作テスト方法であって、前記評価対象機再現手段又は前記評価対象機能提供手段に対して、評価対象ソフトウェアと、前記評価対象ソフトウェア以外のソフトウェア及び／又はハードウェアとの間で送受信されるイベントを制御するイベント制御手順と、前記評価対象機再現手段又は前記評価対象機能提供手段の動作環境に応じて、前記イベント制御手順によりイベントの取得及び／又は発行を制御し、前記評価対象ソフトウェアの動作をテストする動作テスト手順とを有することを特徴とする。
【００２９】
このような手順によって、本発明のソフトウェア動作テスト方法は、評価対対象機が搭載するハード・ソフトウェアによる各種機能を擬似的に再現する評価対象機再現部、又は評価対象機が搭載するハード・ソフトウェアにより各種機能を提供する評価対象機能提供部と、評価対象機再現部が再現したシステム又は評価対象機能提供部により提供されたシステム上で動作する評価対象ソフトウェアに対して動作テストを行う動作テスト部とを有し、動作テスト部が、評価対象機再現部又は評価対象機能提供部で評価対象ソフトウェアの送受信イベントを制御するソフトウェア部品を介して、操作手順の記録及び再生（実行）を行い、評価対象ソフトウェアの動作環境（テスト環境）に応じて、評価対象ソフトウェアの動作を検証・評価する機能を実現する。
【００３０】
これによって、本発明の画像処理方法は、異なるテスト環境においても、テスト品質を維持し、テスト工程の作業効率を向上させることが可能なソフトウェア動作テスト機能を提供できる。
【００３１】
上記目的を達成するため、本発明のソフトウェア動作テストプログラムは、評価対象機が搭載するソフトウェア及び／又はハードウェアにより提供される各種機能を擬似的に再現する評価対象機再現手段を有する情報処理装置、又は、評価対象機である当該画像処理装置が搭載するソフトウェア及び／又はハードウェアにより各種機能を提供する評価対象機能提供手段を有する画像処理装置におけるソフトウェア動作テストプログラムであって、コンピュータを、前記評価対象機再現手段又は前記評価対象機能提供手段に対して、評価対象ソフトウェアと、前記評価対象ソフトウェア以外のソフトウェア及び／又はハードウェアとの間で送受信されるイベントを制御するイベント制御手段と、前記評価対象機再現手段又は前記評価対象機能提供手段に応じて、前記イベント制御手段によりイベントの取得及び／又は発行を制御し、前記評価対象ソフトウェアの動作をテストする動作テスト手段として機能させる。
【発明の効果】
【００３２】
本発明によれば、評価対象ソフトウェアの動作を検証・評価する前に、検証・評価時に用いる各種テストデータに含まれるテスト環境の違いに起因する差異を補正することで、異なるテスト環境においても、テスト品質を維持し、テスト工程の作業効率を向上させることができる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明の好適な実施の形態（以下、「実施形態」という。）について、図面を用いて詳細に説明する。
【００３４】
［第１の実施形態］
＜ハードウェア構成＞
では、本実施形態に係る画像処理装置のハードウェア構成について説明する。図１は、本発明の第１の実施形態に係る画像処理装置１００のハードウェア構成例を示す図である。
【００３５】
本実施形態に係る画像処理装置１００は、操作パネル１１と、記録媒体Ｉ／Ｆ１２と、コントローラ１３と、データ通信Ｉ／Ｆ１４と、ハードディスク１１０と、スキャナ１５と、プロッタ１６とから構成され、それぞれバスで相互に接続されている。
【００３６】
操作パネル１１は、入力装置１０１と表示装置１０２とを備えており、入力装置１０１は、ハードウェアキーなどで構成され、画像処理装置１００に各操作信号を入力するのに用いられる。また、表示装置１０２は、ディスプレイなどで構成され、例えば動作条件などの画像処理動作に関する各種情報を表示する。
【００３７】
データ通信Ｉ／Ｆ１４は、インタフェース装置１０９を備えており、画像処理装置１００を、有線及び／又は無線回線により構築されたＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）などのネットワーク（データ通信網）に接続するインタフェースである。
【００３８】
ハードディスク１１０は、大容量の不揮発性記憶装置であり、画像処理装置１００で取り扱われる受信文書データや読み取り画像データなどの各種データを格納する。また、ハードディスク１１０は、これらの各種データを、所定のファイルシステムやＤＢ（Data Base）により管理する。
【００３９】
記録媒体Ｉ／Ｆ１２は、ドライブ装置１０３を備えており、例えばフラッシュメモリなどの記録媒体１０４を、画像処理装置１００に接続するためのインタフェースである。この記録媒体Ｉ／Ｆ１２によって、画像処理装置１００と記録媒体１０４との間でデータのやり取りを行うことが可能となる。例えば、記録媒体１０４は、画像処理装置１００において動作させる機能を実現するプログラムなどを当該装置にインストールするときに利用する。
【００４０】
コントローラ１３は、ＲＯＭ（Read Only Memory）１０５、ＲＡＭ（Random Access Memory）１０６、ＮＶ−ＲＡＭ（Non Volatile RAM）１０７、及びＣＰＵ（Central Processing Unit）１０８を備えている。
【００４１】
ＲＯＭ１０５は、画像処理装置１００が起動されるときに実行されるプログラム（ＯＳ：Operating Systemの役割をするプログラム）や各種データ、また画像処理装置１００が有する各種機能を実現するプログラム（アプリケーションプログラム）や各種データを格納する。また、ＲＡＭ１０６は、ＲＯＭ１０５やハードディスク１１０から読み出された各種プログラムやデータを一時保持する。ＮＶ−ＲＡＭ１０７は、画像処理動作を制御するための初期設定値（画像処理制御に関する初期設定値）などの画像処理装置１００に関する設定データを格納している。さらに、ＣＰＵ１０８は、ＲＡＭ１０６上に読み出されたプログラムを実行する。
【００４２】
コントローラ１３は、上記ハードウェア構成により、例えば、データ通信Ｉ／Ｆ１４を介して印刷データを受信した場合に、ＲＯＭ１０５からＲＡＭ１０６上に読み出されたＰＤＬ（Page Description Language）を解釈可能なプログラム（ＰＤＬパーサ）をＣＰＵ１０８により実行し、印刷データを解釈してビットマップイメージを生成する。
【００４３】
スキャナ１５は、画像読取装置１１１を備えており、読み取り面に配置された原稿を光学的に読み取り画像データを生成する。また、プロッタ１６は、印刷装置１１２を備えており、例えば、電子写真方式によって、コントローラ１３から転送されたビットマップイメージを記録紙（印刷用紙）に印刷する。ここでは、画像形成方式の一例として電子写真方式による例を示ししたが、例えば、インクジェット方式であっても良い。
【００４４】
このように、本実施形態に係る画像処理装置１００では、コントローラ１３のＲＡＭ１０６上に読み出された所定のプログラムがＣＰＵ１０８で実行され、当該装置が備える各インタフェースから入力されたデータに対して要求された処理を行う。
【００４５】
評価対象機を、上記ハードウェア構成を備える画像処理装置１００であった場合、上記所定のプログラムが、評価対象ソフトウェアとなる。
【００４６】
＜ソフトウェア動作テストの動作例＞
ここからは、評価対象機に搭載された評価対象ソフトウェアの動作の検証・評価を、どのような流れで行うのかについて、テスターの操作とそれに対応する評価対象機内の動作を例に説明する。なお、以下に説明では、評価対象機を画像処理装置１００とし、操作パネル１１の画面遷移に関するソフトウェアのテスト工程を一例として挙げる。画面遷移動作の検証・評価を行うテスト工程は、テスターの手作業により行われ、従来では、操作パネル１１上の操作キーを介して動作指示を行った後に、画面遷移が正しく行われるか否かを目視で確認していたため、テスターにとって負荷の大きい作業であった。このようなテスト工程に対して、操作手順を記録し、記録した手順に従って作業を再現できれば、テスト品質を維持しながら、作業効率を向上させることができる。
【００４７】
ソフトウェア動作テストは、「操作手順の記録」、「記録手順の再生」、「検証・評価」の順に行われる。
【００４８】
《操作手順の記録》
図２は、本発明の第１の実施形態に係るテスターの操作手順を記録するときの動作例を示す図である。まず、テスターＵは、画像処理装置１００が備える操作パネル１１に表示された操作画面Ｗ（ＵＩ）を介して、評価対象ソフトウェア（図中では「アプリケーションＡＰ」）への動作指示（画面表示を行う動作指示）などの所定のパネル操作を行う（ステップＳ１１）。
【００４９】
画像処理装置１００では、操作画面Ｗから受け付けた動作指示に対応する操作イベントが、操作パネル１１からコントローラ１３へ送られ（ステップＳ１２）、コントローラ１３が、受け取った操作イベントを、該当するアプリケーションＡＰに送る（ステップＳ１３）。また、コントローラ１３は、ステップＳ１２において受け取った操作イベントをテストツールＴに送る（ステップＳ１５）。
【００５０】
また、アプリケーションＡＰは、受け取った操作イベントにより動作指示された所定の処理を行った後に、処理結果や次の操作要求などの操作画面遷移後の画面データ（画像データを含むグラフィック部品群）を生成し、コントローラ１３に送り（ステップＳ１４）、コントローラ１３が、受け取った画面データをテストツールＴに送る（ステップＳ１６）。
【００５１】
テストツールＴは、ステップＳ１５において受け取った操作イベントを、例えば画像処理装置１００が備えるハードディスク１１０などの記憶装置の所定の記憶領域に格納し、操作手順データとして記録する。また、ステップＳ１６において受け取った画面データも、検証・評価時に正しいとする基準画面（正解画面）として記録する（ステップＳ１７）。また、ステップＳ１７では、上記各情報（操作手順データと画面データ）を対応付けて記録する。
【００５２】
また、コントローラ１３は、ステップＳ１４において受け取った画面データを操作パネル１１へ送り（ステップＳ１８）、操作パネル１１が、受け取った画面データを基に、手動操作による新たな操作画面Ｗ（正解画面）を表示し、テスターＵに次の操作（次の動作指示）を促す（ステップＳ１９）。
【００５３】
本実施形態では、以上のような動作を繰り返すことにより、テスターＵの操作手順をデータ化し記録する。
【００５４】
《記録した操作手順の再生》
図３は、本発明の第１の実施形態に係る記録した操作手順を再生するときの動作例を示す図である。本実施形態では、前述した記録データを基に操作手順を再生し、テスト工程を再現する。
【００５５】
テストツールＴは、ハードディスク１１０から操作手順データと対応する画面データとを、記録された順に取得し（ステップＳ２１）、取得した操作手順データをコントローラ１３へ送る（ステップＳ２２）。
【００５６】
コントローラ１３は、受け取った操作手順データを基に、記録された各操作イベント情報に従って、該当するアプリケーションＡＰへ擬似的に操作イベントを送り（ステップＳ２３）、アプリケーションＡＰが、受け取った操作イベントにより動作指示された所定の処理を行った後に、そのとき表示する操作画面Ｗの画面データ（グラフィック部品群）を生成し、コントローラ１３に送り（ステップＳ２４）、コントローラ１３が、受け取った画面データをテストツールＴに送る（ステップＳ２５）。
【００５７】
テストツールＴは、ステップＳ２５において受け取った画面データを、ハードディスク１１０の所定の記憶領域に格納し、検証・評価時の正解画面と比較する検証用画面として記録する（ステップＳ２６）。
【００５８】
また、コントローラ１３は、ステップＳ２４において受け取った画面データを操作パネル１１へ送り（ステップＳ２７）、操作パネル１１が、受け取った画面データを基に、操作手順の再生による新たな操作画面Ｗ（検証用画面）を表示し、テスターＵに操作手順の実行状態を通知する（ステップＳ２８）。
【００５９】
本実施形態では、以上のような動作を、記録された一連の操作手順に従って（テスト工程の単位で）実行することにより、手作業で行っていたテスターＵの操作手順を自動化し、テスト工程の各作業を再現する。
【００６０】
《検証・評価》
図４は、本発明の第１の実施形態に係る評価対象ソフトウェアの動作を検証・評価するときの動作例を示す図である。遷移画面動作の検証・評価は、テストツールＴにより行われる。例えば、テストツールＴでは、前述した「操作手順の記録」により得られた正解画面の画面データＩＭＧ１と「記録した操作手順の再生」により得られた検証用画面の画面データＩＭＧ２とを比較し、検証・評価結果を得る。その比較方法には、画面データが画像である特性を生かし画像類似度による方法などが挙げられる。
【００６１】
このようにして得られた検証・評価の結果は、結果レポートとして所定の形式で出力される。その出力方法としては、テストツールＴからコントローラ１３を介して、操作パネル１１に表示させたり、印刷機能（プロッタ１６）を備えた画像処理装置１００であれば、用紙に印刷したりする方法が挙げられる。
【００６２】
このように、従来、テスターＵの手作業により行われていたテスト工程も、前述した「記録」、「再生」、「検証・評価」の各手順により、作業を自動化し、テスターＵの作業能力に依存することなく、一定のテスト品質かつ作業効率の良い方法で、評価対象ソフトウェアの動作を検証・評価することが可能となる。
【００６３】
では、前述した動作例を踏まえ、本実施形態に係る「ソフトウェア動作テスト機能」について詳細に説明する。
【００６４】
＜ソフトウェア動作テスト機能＞
本実施形態に係るソフトウェア動作テスト機能では、評価対象機に搭載される場合と、エミュレータに搭載される場合とで、機能を実現するソフトウェア構成を同一の構成とすることで、評価対象機とエミュレータの両方の環境に容易に対応でき（容易に導入でき）、また、評価対象機とエミュレータの両方の環境で、同一の操作手順記録データと検証用データとを用いて、評価対象ソフトウェアの動作を検証・評価することができる。さらに、評価対象ソフトウェアの動作を検証・評価する前に、異なるテスト環境の各種テストデータを用いてテスト動作を行ったときに、評価対象ソフトウェアから出力されるイベントデータに含まれるテスト環境（例えば「評価対象機」と「エミュレータ」など）の違いに起因する差異を補正することで、異なるテスト環境においても、テスト品質を維持し、テスト工程の作業効率を向上させることができる。
【００６５】
以降に説明するソフトウェア動作テストは、画像処理装置１００に１つのアプリケーションとしてインストールされたソフトウェア動作テストプログラムを、ＲＡＭ１０６上に読み出し、ＣＰＵ１０８により実行することで実現される機能である。
【００６６】
では、その機能構成と動作について説明する。
【００６７】
《機能構成》
図５は、本発明の第１の実施形態に係るソフトウェア動作テスト機能の構成例を示す図である。図５には、画像処理装置１００に搭載されたソフトウェア動作テスト機能の構成例が示されている。
【００６８】
図５に示されるように、画像処理装置１００に搭載されたソフトウェア動作テスト機能は、主に、評価対象ソフトウェアＳＷ１を含む画像処理装置１００が提供機能実現のために搭載する各種ハード・ソフトウェアである評価対象機能提供部８１と、評価対象機能提供部８１で動作する評価対象ソフトウェアＳＷ１に対して検証・評価を行う動作テスト部８２とから構成される。
【００６９】
（評価対象機能提供部）
評価対象機能提供部８１は、ソフトウェア部品として、評価対象ソフトウェアＳＷ１と、画像処理装置１００が備える各種ハードウェア資源（各種デバイス）のデバイスドライバ機能（ハードウェアとソフトウェアとのインタフェース機能）を実現する各種デバイスドライバＳＷ２と、評価対象ソフトウェアＳＷ１と連携して機能提供を実現する連携ソフトウェアＳＷ３とを有し、ハードウェア部品として、画像処理装置１００が備える各種ハードウェア（各種デバイス）ＨＷを備える構成となっている。
【００７０】
さらに、評価対象機能提供部８１では、評価対象ソフトウェアＳＷ１と、各種デバイスドライバＳＷ２、連携ソフトウェアＳＷ３、又は各種ハードウェアＨＷの少なくとも１つとの間には、相互間で送受信される各種イベント（例えば「動作指示」など）の通信経路となるイベント・キャプチャ部２１が配置される構成となっている。
【００７１】
上記イベント・キャプチャ部２１は、「記録」や「再生」などの動作テスト実行時に、後述するイベント記録・再生部２２との連携処理により、イベントの取得や発行と言ったイベント制御が可能となっている。この制御の詳細な説明については、イベント記録・再生部２２の説明にて行う。
【００７２】
続いて、ソフトウェア動作テスト機能である動作テスト部１２について説明する。
【００７３】
（動作テスト部）
動作テスト部１２は、イベント記録・再生部２２及び検証部２３により構成される。
【００７４】
イベント記録・再生部２２は、「（Ａ）イベント記録機能」と「（Ｂ）イベント再生機能」との２つの機能を有している。「イベント記録機能」では、前述した評価対象機再現部１１の評価対象ソフトウェアＳＷ１が送受信するイベントを記録し、「イベント再生機能」では、記録したイベントを再生し、評価対象ソフトウェアＳＷ１を動作させる。
【００７５】
また、イベント記録・再生部２２は、上記イベント記録及び再生機能を、評価対象機能提供部８１のイベント・キャプチャ部２１と連携動作することで実現する。
【００７６】
検証部２３は、「（Ｃ）検証・評価機能」を有し、上記イベント再生機能により得られる評価対象ソフトウェアＳＷ１の動作結果を基に、評価対象ソフトウェアＳＷ１が正しく動作しているか否かを検証・評価する。
【００７７】
以下に、上記各機能部の詳細や他の機能部との連携動作について説明する。
【００７８】
（Ａ）イベント記録機能
イベント記録・再生部２２は、イベント・キャプチャ部２１を介して、評価対象ソフトウェアＳＷ１が送受信するイベントを取得し、ハードディスク１１０の所定の記憶領域に格納する。
【００７９】
評価対象ソフトウェアＳＷ１が送受信するイベントには、評価対象ソフトウェアＳＷ１が、各種デバイスドライバＳＷ２、連携ソフトウェアＳＷ３、又は各種ハードウェアＨＷの少なくとも１つを含むリソース環境（以下、「外部環境」と言う。）から受信する入力イベントと、評価対象ソフトウェアＳＷ１が送信する出力イベントに大別される。
【００８０】
入力イベントには、評価対象ソフトウェアＳＷ１への動作指示など、例えば、テスターＵが、操作パネル１１を介して、テスト工程の作業手順に従った操作を行ったときに受信する操作イベントなどが含まれる。また、出力イベントには、受信した操作イベントに従って動作した評価対象ソフトウェアＳＷ１の動作結果イベントなどが含まれる。
【００８１】
これらの各種イベントは、全て、イベント・キャプチャ部２１を介して、評価対象ソフトウェアＳＷ１と外部環境との間でやり取りされる。
【００８２】
よって、イベント記録・再生部２２は、イベント・キャプチャ部２１に対してイベント取得を要求し、上記入出力イベントを取得する。例えば、イベント記録・再生部２２は、画面操作時に上記イベント取得の要求を行った場合、イベント・キャプチャ部２１を介して、入力イベントである操作イベントと、出力イベントとして動作結果イベントを取得する。
【００８３】
《処理手順》
図６は、本発明の第１の実施形態に係るイベント記録機能の処理手順例を示すシーケンス図である。（Ａ）には、外部環境から評価対象ソフトウェアＳＷ１への入力イベントを取得し記録する場合、一方（Ｂ）には、評価対象ソフトウェアＳＷ１から外部環境への出力イベントを取得し記録する場合のそれぞれの例が示されている。
【００８４】
・入力イベントの記録
図６（Ａ）に示すように、画像処理装置１００が有するイベント記録機能は、まず、イベント・キャプチャ部２１が、外部環境から評価対象ソフトウェアＳＷ１への入力イベントを取得し（ステップＳ１０１）、取得した入力イベントを、取得要求元のイベント記録・再生部２２へ送信する（ステップＳ１０２）。
【００８５】
イベント記録・再生部２２は、受け取った入力イベントを基に、操作手順記録データ３１を生成し、ハードディスク１１０の所定の記憶領域にデータファイルとして格納する（ステップＳ１０３）。
【００８６】
・出力イベントの記録
図６（Ｂ）に示すように、画像処理装置１００が有するイベント記録機能は、まず、イベント・キャプチャ部２１が、評価対象ソフトウェアＳＷ１から外部環境への出力イベントを取得し（ステップＳ２０１）、取得した出力イベントを、取得要求元のイベント記録・再生部２２へ送信する（ステップＳ２０２）。
【００８７】
イベント記録・再生部２２は、受け取った出力イベントを基に、検証用データ４１を生成し、ハードディスク１１０の所定の記憶領域にデータファイルとして格納する（ステップＳ２０３）。
【００８８】
このように、イベント記録・再生部２２は、入力イベントとして取得した操作イベントと、出力イベントとして取得した動作結果イベントとを、異なるイベント情報としてハードディスク１１０に格納し、各情報で構成されたファイルデータを生成する。
【００８９】
イベント記録・再生部２２は、取得した操作イベントを基に、操作手順を記録したデータファイルである操作手順記録データ３１を生成する。例えば、生成される操作手順記録データ３１は、操作イベントを識別するイベント識別情報（イベントＩＤ）、操作手順による動作指示や動作条件などを示す操作手順情報（外部環境からの動作指示や動作条件）、操作イベントが発行される時間を示すイベント発行時間情報などから構成されている。
【００９０】
また、イベント記録・再生部２２は、取得した動作結果イベントを基に、評価対象ソフトウェアＳＷ１が正しく動作しているかを検証・評価するときの基準データである検証用データ４１を生成する。例えば、検証用データ４１は、動作結果イベントを識別するイベント識別情報（イベントＩＤ）、動作結果を示す動作結果情報（入力イベントに応じた外部環境への動作指示や動作条件）などから構成されている。
【００９１】
このようにして生成されたデータファイル３１及び４１は、後述する操作手順再生時に、再生中の操作手順に対応する検証・評価の基準が一意に特定可能なように、互いのデータ３１及び４１が対応付けられて保存される。
【００９２】
また、これらのデータ３１及び４１は、例えばテスト単位など、記録された操作手順を実行したときに１つのテストが終了する単位でファイル化され保存される。
【００９３】
以上のように、イベント記録・再生部２２は、イベント・キャプチャ部２１と連携して機能することで、テスト工程の中で行われる操作手順と、操作手順に対応する評価対象ソフトウェアＳＷ１の動作結果とを記録する。
【００９４】
（Ｂ）イベント再生機能
イベント記録・再生部２２は、イベント・キャプチャ部２１を介して、評価対象ソフトウェアＳＷ１を動作させ、その動作結果を取得する。つまり、評価対象ソフトウェアＳＷ１の動作テストを行う。
【００９５】
イベント記録・再生部２２は、評価対象ソフトウェアＳＷ１に対して、入力イベントである操作イベントを擬似的に送信し、外部環境から操作イベントを受信したときと同様の動作をさせる。その結果、評価対象ソフトウェアＳＷ１から外部環境へ送信された出力イベントである動作結果イベントを取得する。
【００９６】
また、イベント記録・再生部２２は、ハードディスク１１０に保存されている操作手順記録データ３１を基に上記操作イベントを送信する。
【００９７】
操作手順記録データ３１には、イベント記録時に取得した操作イベントに関する情報（イベント識別情報、操作手順情報、及びイベント発行時間情報など。）が、取得した順に記録されている。つまり、テスターＵが行った操作順に発行された操作イベントが記録されている。
【００９８】
よって、イベント記録・再生部２２は、操作手順記録データ３１を構成するデータの順（記録データ順）に、イベント・キャプチャ部２１に対して操作イベントに関する情報のイベント識別情報を送信する。その結果、イベント・キャプチャ部２１が、イベント識別情報を基に、識別情報に該当する操作イベントを、評価対象ソフトウェアＳＷ１へ送信する。
【００９９】
また、上記イベント・キャプチャ部２１における操作イベントの送信タイミングは、イベント記録・再生部２２により制御される。
【０１００】
イベント記録・再生部２２は、操作イベントに関する情報のイベント発行時間情報を基に、イベント・キャプチャ部２１に対してイベント識別情報の送信を制御する。その結果、イベント・キャプチャ部２１における操作イベントの送信が制御される。
【０１０１】
以上のように、イベント記録・再生部２２は、イベント・キャプチャ部２１と連携して機能することで、記録しておいた操作手順を基に、テスターＵが手作業で行っていた操作を、テスターＵの操作と同じタイミングで自動実行する。これにより、動作テストの作業効率の向上を図ることができ、かつ、テスト工程の中で行われる操作手順を忠実に再現することが可能となる。
【０１０２】
（Ｃ）検証・評価機能
続いて、検証部２３は、イベント記録・再生部２２がイベント再生機能により、評価対象ソフトウェアＳＷ１から取得した動作結果を基に、正しく動作しているか否か（正常に動作しているか否か）を検証・評価する。
【０１０３】
検証部２３には、イベント記録・再生部２２から、評価対象ソフトウェアＳＷ１の出力イベントである動作結果イベントが送信される。その結果、検証部２３は、受け取った動作結果イベントと、ハードディスク１１０に保存されている検証用データ４１の各動作結果イベントとを比較することで、動作の検証・評価を行う。
【０１０４】
検証用データ４１には、イベント記録時に取得した動作結果イベントに関する情報（イベント識別情報及び動作結果情報）が、取得した順に記録されている。つまり、テスターＵが行った操作に対応して、評価対象ソフトウェアＳＷ１が動作した順に発行された動作結果イベントが記録されている。
【０１０５】
よって、イベント記録・再生部２２がイベント再生機能により、操作手順記録データ３１を基に動作テストを実行していることから、評価対象ソフトウェアＳＷ１が正しく動作していれば、評価対象ソフトウェアＳＷ１からは、検証用データ４１を構成する各動作結果イベントが得られる。
【０１０６】
これにより、検証部２３は、イベント再生時に、イベント記録・再生部２２から送信された動作結果イベントと、検証用データ４１からデータ順に従って抽出した動作結果イベントとを比較し、一致していれば、評価対象ソフトウェアＳＷ１が、操作イベントの受信に従って正しく動作していると判定する。一方、異なっていれば、正しく動作していないと判定する。
【０１０７】
以上のように、検証部２３は、イベント記録・再生部２２により、動作テストの操作手順に従って実行された評価対象ソフトウェアＳＷ１から取得した動作結果を基に、正しく動作しているか否か（正常に動作しているか否か）を判断し、評価対象ソフトウェアＳＷ１の動作を検証・評価する。
【０１０８】
《処理手順》
図７は、本発明の第１の実施形態に係るイベント再生及び検証・評価機能の処理手順例を示すシーケンス図である。
【０１０９】
図７に示すように、画像処理装置１００が有するイベント再生及び検証・評価機能は、まず、イベント記録・再生部２２が、ハードディスク１１０に保存されている操作手順記録データ３１を取得し（ステップＳ３０１）、取得した操作手順記録データ３１を基に、テスターＵが手作業で行っていた操作を、テスターＵの操作と同じタイミングで自動実行する（ステップＳ３０２）。
【０１１０】
イベント記録・再生部２２は、取得した操作手順記録データ３１を構成するデータの順に、イベント・キャプチャ部２１に対して操作イベントに関する情報（記録された操作手順数：Ｎ）のイベント識別情報と操作手順情報を、イベント発行時間情報に従ったタイミングで送信する（ステップＳ３０３ｎ）。
【０１１１】
イベント・キャプチャ部２１は、受け取ったイベント識別情報と操作手順情報とを基に、該当する操作イベント（記録された操作手順数：Ｎ）を、外部環境からの入力イベントとして、評価対象ソフトウェアＳＷ１へ送信する（ステップＳ３０４ｎ）。
【０１１２】
評価対象ソフトウェアＳＷ１は、受け取った入力イベントに従って（要求された）所定の処理を行い（ステップＳ３０５）、イベント・キャプチャ部２１が、評価対象ソフトウェア２１から外部環境への出力イベントとして送信された動作結果イベントを取得する（ステップＳ３０６）。
【０１１３】
イベント・キャプチャ部２１は、取得した動作結果イベントを、イベント記録・再生部２２へ送信し（ステップＳ３０７）、イベント記録・再生部２２が検証部２３へ送信する（ステップＳ３０８）。
【０１１４】
その結果、検証部２３は、ハードディスク１１０に保存されている検証用データ４１を取得し（ステップＳ３０９）、受け取った動作結果イベントと、検証用データ４１からデータ順に従って抽出した動作結果イベントとを比較し、一致していれば、評価対象ソフトウェアＳＷ１が、操作イベントの受信に従って正しく動作していると判定する。一方、異なっていれば、正しく動作していないと判定する。すなわち、評価対象ソフトウェアＳＷ１の動作を検証・評価する（ステップＳ３１０）。
【０１１５】
ここからは、ソフトウェア動作テスト機能が有する「評価対象ソフトウェアＳＷ１からの出力イベントを補正するイベントデータ補正機能」について説明する。
【０１１６】
＜イベントデータ補正機能＞
以下に、テスト環境の違い（評価対象機とエミュレータとの違い）に起因するイベントデータの差異の一例を挙げる。
・イベントを表現するデータ型の違い
・イベントを表現するデータ構造の違い
・イベントを表現するデータ値の違い
・座標系や文字コードなどの違い
通常、これらの微少な差異は、エミュレータが吸収する役割を果たすが、ハードウェアや動作環境（例えば「ＯＳ」など）の違いに起因する場合には、差異を吸収することが困難である。このような理由から、異なる形式のまま（差異を含むまま）、評価対象ソフトウェアＳＷ１と外部環境との間でやり取りされる入出力イベントを取り扱う場合が多い。
【０１１７】
また、評価対象機に対して複数の派生製品が存在すると、例えば、操作パネル１１の画面仕様（例えば「画面サイズ」など）の違いから、一部の操作イベント（入力イベント）の内容が異なる場合があり、これにより、評価対象ソフトウェアＳＷ１から異なる形式（差異を含む）出力イベントを得ることとなる。
【０１１８】
その結果、前述した検証部２３が、差異が含まれる操作手順記録データ３１及び検証用データ４１を用いて実行されたことによる動作結果を基に、評価対象ソフトウェアＳＷ１の動作を検証。評価することになる。
【０１１９】
これでは、例えば、評価対象機で記録された操作手順記録データ３１を用いて、エミュレータで動作テストを実行した場合に、得られる動作結果が、エミュレータが保持する検証用データ４１で想定する動作結果と異なる可能性があり、評価対象機やエミュレータそれぞれのテスト環境において記録した操作手順記録データ３１を、他方のテスト環境で使用することができない。また、使用した場合には、検証・評価の精度が維持できず、テスト品質が低下する可能性がある。これは検証用データ４１においても同様である。
【０１２０】
そこで、本実施形態に係るソフトウェア動作テスト機能では、このようなテスト環境の違いに起因する動作テスト実行時の評価対象ソフトウェアから出力されるイベントの差異を、評価対象ソフトウェアの動作を検証・評価する前に補正するイベントデータ補正機能を有する構成としている。
【０１２１】
以下に、上記イベントデータ補正機能について詳しく説明する。
【０１２２】
《機能構成》
図８は、本発明の第１の実施形態に係るイベントデータ補正機能の構成例を示す図である。図８には、画像処理装置１００に搭載されたソフトウェア動作テスト機能が有する検証・評価機能の構成例が示されている。
【０１２３】
本実施形態では、上記検証・評価機能において評価対象ソフトウェアＳＷ１から取得した出力イベントのデータを補正する機能構成を、イベントデータ補正機能の一例として説明するが、例えば、イベント記録機能において、イベント記録・再生部２２から受け取った入出力イベントを記録するとき（操作手順記録データ３１及び検証用データ４１を生成・保存するとき）に補正を行う機能構成であっても良い。
【０１２４】
図８に示されるように、検証・評価機能を実現する検証部２３は、データ識別部５１と、データ変換部５２と、イベント系列生成部５３と、比較部５４とから構成される。
【０１２５】
データ識別部５１は、イベント記録・再生部２２から受け取った出力イベントが、差異を補正するためにデータ補正を行う必要があるか否か（所定のデータ変換（データの置き換え）が必要か否か）を判定し、データ補正が必要な出力イベントと必要のない出力イベントとを識別する。
【０１２６】
データ変換部５２は、データ識別部５１によりデータ補正が必要と識別された出力イベントを、所定のデータ変換規則に従ってデータ変換し、差異を補正する。
【０１２７】
データ変換部５２は、出力イベントに関する情報のうち、イベント識別情報やイベントの属性値などから、データ補正が必要な出力イベントか必要のない出力イベントかを判断する。データ変換部５２において、どの出力イベントを補正対象とするか、またどの属性値を補正対象とするかについては、前述した「テスト環境の違い（評価対象機とエミュレータとの違い）に起因するイベントデータの差異」の特性から予め決定しておく。
【０１２８】
これにより、データ変換部５２は、決定しておいたデータ補正判定条件を基に、データ補正が必要か否かを判断する。
【０１２９】
また、このようにしてデータ補正が必要と判断された出力イベントには、差異の特性から、どのような補正を行うかを決定する。差異の種類には、前述したように、「異なるデータ型」、「異なるデータ構造」、「異なるデータ値」、及び「異なる座標系や文字コード」などがある。そこで、データ変換部５２では、これらの差異をデータ変換することで補正する。
【０１３０】
データ変換には、上記差異の特性から一意に変換規則を決定可能なデータ構造をもつ変換テーブルデータ６１や、入力データに対して変換データを出力する変換関数などを用いる。例えば、データ変換部５２は、データ補正が必要な出力イベントに関する情報を基に、上記変換テーブルデータ６１を参照し、該当する変換規則に従ってデータを置き換える。また、データ補正が必要な出力イベントを変換関数に入力し、変換後の出力イベントのデータを得る。
【０１３１】
なお、上記変換関数は、データ変換部５２が保持する構成であっても良いが、上記変換テーブルデータ６１は、データ変換部５２が保持する構成であっても良いし、データ変換部５２の機能を実現するモジュールとは別に、ハードディスク１１０などの所定の記憶領域にデータファイルとして格納され、必要に応じて、データ変換部５２がアクセス可能な構成であっても良い。
【０１３２】
このようにして、データ変換部５２は、テスト環境に起因するイベントデータの差異を補正する。
【０１３３】
続いて、イベント系列生成部５３は、データ識別部５１によりデータ補正が必要ないと識別された出力イベントと、データ変換部５２により差異が補正された出力イベントとを合成し、１つのイベント系列を生成する。ここで言う「イベント系列」とは、前述したイベント記録・再生部２２により記録される一連の入出力イベント群であり、さらに、このイベント系列は、イベント・キャプチャ部２１が取得した時系列順に、入出力イベントが記録されるデータ構造を示している。
【０１３４】
よって、イベント系列生成部５３は、データ補正後の出力イベントと、データ補正が必要でないと判断された出力イベントとを、イベント・キャプチャ部２１が取得した時系列順に整列し、１つのイベント系列を生成する。
【０１３５】
比較部５４は、イベント系列生成部５３により生成された補正後のイベント系列からデータ順に従って抽出した出力イベントである動作結果イベントと、ハードディスク１１０に保存されている検証用データ４１からデータ順に従って抽出した出力イベントである動作結果イベントとを比較し、一致していれば、評価対象ソフトウェアＳＷ１が、入力イベントである操作イベントの受信に従って正しく動作していると判定する。一方、異なっていれば、正しく動作していないと判定する。
【０１３６】
以下に、上記各機能部によるイベントデータ補正の動作について説明する。
【０１３７】
《処理手順》
図９は、本発明の第１の実施形態に係るイベントデータを補正した後に検証・評価を行う検証・評価機能の処理手順を示すフローチャートである。
【０１３８】
図９に示すように、検証・評価機能は、検証部２３のデータ識別部５１が、イベント記録・再生部２２から受け付けた出力イベントに対して、テスト環境に起因する差異を補正する必要があるデータか否かを識別し（ステップＳ４０１）、データ補正が必要であると識別された出力イベントＡをデータ変換部５２へ送信する（ステップＳ４０２）。また、データ補正が必要ないと識別された出力イベントＢをイベント系列生成部５３へ送信する（ステップＳ４０３）。
【０１３９】
データ変換部５２は、保持している変換テーブルデータ６１（変換関数を含む）を参照し、受け取った出力イベントＡに対応する変換規則に従って（又は変換関数を用いて）、データを置き換える（又は変換関数を算出する）などしてイベントデータを補正（Ａ→Ａ'）し（ステップＳ４０４）、補正後の出力イベントＡ'をイベント系列生成部５３へ送信する（ステップＳ４０５）。
【０１４０】
イベント系列生成部５３は、ステップＳ４０５において送信された補正後の出力イベントＡ'やステップＳ４０３において送信されたデータ補正が必要ない出力イベントＢなどの複数の出力イベントを、イベント・キャプチャ部２１が取得した時系列順に整列し、補正後の出力イベントＡ'を含むイベント系列（Ａ'＋Ｂ）を生成し（ステップＳ４０６）、補正後のイベント系列（Ａ'＋Ｂ）を比較部５４へ送信する（ステップＳ４０７）。
【０１４１】
その結果、比較部５４は、ハードディスク１１０に保存されている検証用データ４１を取得し（ステップＳ４０８）、受け取った補正後のイベント系列（Ａ'＋Ｂ）からデータ順に従って抽出した動作結果イベントと、検証用データ４１からデータ順に従って抽出した動作結果イベントとを比較し、一致していれば、評価対象ソフトウェアＳＷ１が、操作イベントの受信に従って正しく動作していると判定する。一方、異なっていれば、正しく動作していないと判定する。すなわち、評価対象ソフトウェアＳＷ１の動作を検証・評価する（ステップＳ５０９）。
【０１４２】
＜まとめ＞
以上のように、本発明の第１の実施形態によれば、本実施形態に係る画像処理装置１００は、評価対象機が搭載するハード・ソフトウェアにより各種機能を提供する評価対象機能提供部８１と、評価対象機提供部８１により提供されたシステム上で動作する評価対象ソフトウェアＳＷ１に対して動作テストを行う動作テスト部８２とを有する。
【０１４３】
このような構成において、動作テスト部８２が、評価対象機能提供部８１で評価対象ソフトウェアＳＷ１の送受信イベントを制御するソフトウェア部品２１を介して、操作手順の記録及び再生（実行）を行い、評価対象ソフトウェアＳＷ１の動作を検証・評価する。すなわち、上記ソフトウェア部品２１と動作テスト部８２とが協調動作し、評価対象ソフトウェアＳＷ１の動作を検証・評価する。
【０１４４】
さらに、本実施形態では、評価対象ソフトウェアＳＷ１の動作を検証・評価する前に、異なるテスト環境の各種テストデータを用いてテスト動作を行ったときに、評価対象ソフトウェアＳＷ１から出力されるイベントデータに含まれるテスト環境（例えば「評価対象機」と「エミュレータ」など）の違いに起因する差異を補正する。
【０１４５】
これによって、画像処理装置１００では、評価対象機に搭載される場合と、エミュレータに搭載される場合とで、機能を実現するソフトウェア構成を同一の構成とすることで、評価対象機とエミュレータの両方の環境に容易に対応できる（容易に導入できる）。また、評価対象機とエミュレータの両方の環境で、同一の操作手順記録データ３１と検証用データ４１とを用いて、評価対象ソフトウェアＳＷ１の動作を検証・評価することができる（テストデータを共通化することができる）。
【０１４６】
さらに、異なるテスト環境に起因するイベントデータの差異を補正することで、異なるテスト環境においても、同一の操作手順記録データ３１と検証用データ４１とを用いて、精度良く動作テストを実行できる（テスト品質を維持することができる）。
【０１４７】
よって、画像処理装置１００は、異なるテスト環境においても、テスト品質を維持し、テスト工程の作業効率を向上させることができる。
【０１４８】
［第２の実施形態］
評価対象機やエミュレータと言ったテスト環境が備える各種ハードウェア（評価対象ソフトウェアから見た外部環境）は、それぞれの環境において異なっている。
【０１４９】
このような場合、これらのハードウェアに起因してイベントの発生タイミング（発行された時間）や発生順序が一定でない場合が考えられる。すなわち、ハードウェアに起因してイベントにばらつきが生じる。
【０１５０】
一方で、イベント記録機能においては、単に、テスト工程の操作手順に従って、外部環境から評価対象ソフトウェアへの入力イベントを記録していることから、１つのイベント系列しか記録されない。そのため、このばらつきによって、動作テストにおいて正しく評価されなかった評価対象ソフトウェアがでてきてしまう。なぜなら、ばらつきのパターンに対応する複数のイベント系列を記録していないため、十分に動作テストが行えていないためである。
【０１５１】
これでは、ソフトウェアの品質に悪影響を及ぼしてしまうこととなる。
【０１５２】
そこで、本実施形態では、評価対象ソフトウェアと該当ハードウェアとの間のやり取りを指示する操作を複数回繰り返して行い、イベント記録機能により複数のイベント系列を記録することで、上記問題点を解決するものである。つまり、本実施形態では、ハードウェアに起因する入力イベントのばらつきを、複数のイベント系列として収集可能な（ばらつきのパターンに対応する操作手順を記録可能な）構成となっている。
【０１５３】
以下に、上記本実施形態に係る「各種ハードウェアに起因する入力イベントのばらつきに対応した操作手順を記録可能なイベント記録機能」について説明するが、本実施形態と第１の実施形態との違いは、上記イベント記録機能のみであることから、それ以外の技術的事項については、第１の実施形態と同一の図面と参照符号を用いて、その説明を省略する。
【０１５４】
＜ソフトウェア動作テスト機能＞
第１の実施形態において説明したように、ソフトウェア動作テスト機能は、主に、評価対象機能提供部８１と動作テスト部８２とから構成され、以下に説明するイベント記録機能は、上記動作テスト部８２が有するイベント記録・再生部２２により実現される。
【０１５５】
《処理手順》
図１０は、本発明の第２の実施形態に係る各種ハードウェアＨＷに起因する入力イベントのばらつきに対応するイベント記録機能の処理手順例を示すシーケンス図である。
【０１５６】
図１０に示すように、イベント記録機能は、イベント記録・再生部２２が、ハードディスク１１０に保持されている検証用データ４１を取得する（ステップＳ５０１）。
【０１５７】
イベント記録・再生部２２は、取得した検証用データ４１（過去の記録）から各種ハードウェアＨＷとの間でやり取りされる出力イベントにおいて、出力イベントの発生タイミングや発生順序にばらつき（記録された出力イベントに関する情報に規則性がない状態）が生じている評価対象ソフトウェアＳＷ１のデータ（出力イベントに関する情報）を抽出し（ステップＳ５０２）、抽出したデータ、すなわち出力イベントに関する情報を、記録されたデータ順に従ってイベント・キャプチャ部２１へ送信する（ステップＳ５０３ｎ）。
【０１５８】
イベント・キャプチャ部２１は、受け取った出力イベントに関する情報を基に、該当する動作結果イベント（記録されたイベント数：Ｎ）を、評価対象ソフトウェアＳＷ１からの出力イベントとして、対象ハードウェアＨＷへ送信する（ステップＳ５０４ｎ）。
【０１５９】
対象ハードウェアＨＷは、受け取った出力イベントに従って所定の処理を行い（ステップＳ５０５）、イベント・キャプチャ部２１が、対象ハードウェアＨＷから評価対象ソフトウェア２１への入力イベントとして送信された操作イベントを取得する（ステップＳ５０６）。
【０１６０】
イベント・キャプチャ部２１は、取得した操作イベントを、イベント記録・再生部２２へ送信し（ステップＳ５０７）、イベント記録・再生部２２が、受け取った入力イベントを基に、操作手順記録データ３１を生成し、ハードディスク１１０の所定の記憶領域にデータファイルとして格納する（ステップＳ５０８）。
【０１６１】
このようにしてイベント記録機能は、上記ステップＳ５０１〜Ｓ５０８の処理手順を、複数回（例えば「ばらつきのパターンとしてデータが抽出された評価対象ソフトウェアの数分」など）繰り返して行うことで、ハードウェアＨＷに起因するイベントのばらつきのパターンに対応した操作手順記録データ３１を生成し保存する。
【０１６２】
＜まとめ＞
以上のように、本発明の第２の実施形態によれば、本実施形態に係る画像処理装置１００は、第１の実施形態において説明を行った各機能部に構成されており、動作テスト部８２が、評価対象機能提供部８１で評価対象ソフトウェアＳＷ１の送受信イベントを制御するソフトウェア部品２１を介して、操作手順の記録及び再生（実行）を行い、評価対象ソフトウェアＳＷ１の動作を検証・評価する。
【０１６３】
さらに、本実施形態では、評価対象ソフトウェアＳＷ１と各種ハードウェアＨＷとの間でやり取りされるイベントを記録するイベント記録機能において、過去に記録した検証用データ４１に対して、各種ハードウェアＨＷとの間でやり取りされる出力イベントの発生タイミングや発生順序にばらつき（記録された出力イベントに関する情報に規則性がない状態）が生じている評価対象ソフトウェアＳＷ１を解析する。続いて、上記ソフトウェア部品２１を介して、該当評価対象ソフトウェアＳＷ１から該当ハードウェアＨＷへの疑似的な出力イベントを、複数回繰り返して発行する。その結果、該当ハードウェアＨＷに起因する入力イベントのばらつきのパターンに対応した操作手順記録データ３１を生成し保存する。
【０１６４】
これによって、画像処理装置１００では、各種ハードウェアＨＷに起因して評価対象ソフトウェアＳＷ１への入力イベントにばらつきが生じる場合であっても、ばらつきのパターンに対応する複数のイベント系列を記録することにより、これらのテストパターンを網羅した動作テストを実施することができ、安定したテスト品質を維持することができる。
【０１６５】
よって、画像処理装置１００は、第１の実施形態と同様の効果を奏するとともに、安定したテスト品質を維持することにより、ソフトウェアの品質も維持することができる。
【０１６６】
［第３の実施形態］
操作手順の記録は、テスターが操作パネルを介して行った操作に対応する入力イベントを、操作パネルと評価対象ソフトウェアとの間に配置されるイベント・キャプチャ部が取得することに行われる。よって、テスターの操作タイミングに従って操作手順が記録されることになる。
【０１６７】
このような場合、テスターごとに操作タイミングが異なることが考えられる。すなわち、テスターの操作に起因してイベントにばらつきが生じる。
【０１６８】
一方で、イベント記録機能においては、第２の実施形態において説明を行ったように、単に、テスト工程の操作手順に従って、外部環境から評価対象ソフトウェアへの入力イベントを記録していることから、１つのイベント系列しか記録されないため、動作テストにおいて正しく評価されなかった評価対象ソフトウェアがでてきてしまう。
【０１６９】
そこで、本実施形態では、各種ハードウェアから評価対象ソフトウェアへの入力イベントのイベント発生タイミング（発行された時間）と発生順序とを入れ替えた複数個の操作パターンを生成することで、上記問題点を解決するものである。つまり、本実施形態では、テスターの操作に起因する入力イベントのばらつきを、擬似的に再現する複数のイベント系列を記録可能な（想定されるばらつきの操作パターンに対応する操作手順を記録可能な）構成となっている。
【０１７０】
以下に、上記本実施形態に係る「テスターの操作に起因する入力イベントのばらつきに対応した操作手順を記録可能なイベント記録機能」について説明するが、本実施形態と第１の実施形態との違いは、上記イベント記録機能のみであることから、それ以外の技術的事項については、第１の実施形態と同一の図面と参照符号を用いて、その説明を省略する。
【０１７１】
＜ソフトウェア動作テスト機能＞
第１の実施形態において説明したように、ソフトウェア動作テスト機能は、主に、評価対象機能提供部８１と動作テスト部８２とから構成され、以下に説明するイベント記録機能は、上記動作テスト部８２が有するイベント記録・再生部２２により実現される。
【０１７２】
《機能構成》
図１１は、本発明の第３の実施形態に係るテスターＵの操作に起因する入力イベントのばらつきに対応可能なイベント記録機能の構成例を示す図である。図１１には、画像処理装置１００に搭載されたソフトウェア動作テスト機能が有するイベント記録機能の構成例が示されている。
【０１７３】
図１１に示されるように、イベント記録機能を実現するイベント記録・生成部２２は、操作イベント識別部７１と、操作パターン生成部７２と、操作手順合成部７３とから構成される。
【０１７４】
操作イベント識別部７１は、イベント記録・再生部２２から受け取った入力イベントが、予め決めておいた特定のハードウェアＨＷからの入力イベントか否か（テスターＵの操作により発生した操作イベントか否か）を判定し、複数の操作パターンを生成する必要がある入力イベントと必要のない入力イベントとを識別する。
【０１７５】
操作パターン生成部７２は、操作イベント識別部７１により複数の操作パターンを生成する必要があると識別された入力イベントを、所定のデータ生成規則に従って複数のイベントデータを生成する。上記所定のデータ生成規則は、例えば、イベント発生タイミングの変更（発生させる時間の変更）や、イベントの発生順序の入れ替えなどを制御する取り決めであり、予め決定しておく。
【０１７６】
これによって、操作パターン生成部７２は、入力イベントの発生タイミングと発生順序とを変更した複数のパターンデータ（複数の入力イベント群）を生成する（操作を組み合わせた複数の入力イベントデータを生成する）。
【０１７７】
操作手順合成部７３は、操作イベント識別部７１により複数の操作パターンを生成する必要がないと識別された入力イベントと、操作パターン生成部７２により生成された各パターンデータとをそれぞれ合成し、操作パターン数分の操作手順記録データ３１を生成する。
【０１７８】
以下に、上記各機能部によるイベント記録の動作について説明する。
【０１７９】
《処理手順》
図１２は、本発明の第３の実施形態に係る操作者に起因する入力イベントのばらつきに対応するイベント記録機能の処理手順を示すフローチャートである。
【０１８０】
イベント記録機能は、イベント記録・再生部２２の操作イベント識別部７１が、各種ハードウェアＨＷから評価対象ソフトウェアＳＷ１への入力イベントについて、複数の操作パターンを生成する必要があるイベントかを識別し（ステップＳ６０１）、複数の操作パターンの生成が必要であると識別された入力イベントＡを操作パターン生成部７２へ送信する（ステップＳ６０２）。また、複数の操作パターンを生成する必要がないと識別された入力イベントＢを操作手順合成部７３へ送信する（ステップＳ６０３）。
【０１８１】
操作パターン生成部７２は、予め決定したおいた所定の生成規則に従って、受け取った入力イベントＡの発生タイミングと発生順序とを変更した複数のパターンデータ（複数の入力イベントＡ１〜Ａｎ）を生成し（ステップＳ６０４）、生成後の複数のパターンデータ（Ａ１〜Ａｎ）を操作手順合成部７３へ送信する（ステップＳ６０５）。
【０１８２】
操作手順合成部７３は、ステップＳ６０５において送信された生成後の各パターンデータ（Ａ１・・Ａｎ）に対して、ステップＳ６０３において送信された複数の操作パターンを生成する必要がないと識別された入力イベントＢを合成し、操作パターン数分の操作手順記録データ３１ｎ（Ａ１＋Ｂ・・Ａｎ＋Ｂ）を生成する（ステップＳ６０６）。
【０１８３】
その結果、操作手順合成部７３は、生成後の複数の操作手順記録データ３１ｎを、ハードディスク１１０の所定の記憶領域にデータファイルとして格納する（ステップＳ６０７）。
【０１８４】
＜まとめ＞
以上のように、本発明の第３の実施形態によれば、本実施形態に係る画像処理装置１００は、第１の実施形態において説明を行った各機能部に構成されており、動作テスト部８２が、評価対象機能提供部８１で評価対象ソフトウェアＳＷ１の送受信イベントを制御するソフトウェア部品２１を介して、操作手順の記録及び再生（実行）を行い、評価対象ソフトウェアＳＷ１の動作を検証・評価する。
【０１８５】
さらに、本実施形態では、評価対象ソフトウェアＳＷ１と各種ハードウェアＨＷとの間でやり取りされるイベントを記録するイベント記録機能において、各種ハードウェアＨＷから評価対象ソフトウェアＷＳ１への入力イベントの発生タイミングや発生順序にばらつき（記録された入力イベントに関する情報に規則性がない状態）が生じているハードウェアＨＷを基に、該当ハードウェアＨＷから評価対象ソフトウェアＳＷ１への入力イベントのうち、ばらつきに対応するために複数の操作パターンを生成する必要がある入力イベントを識別し、識別した入力イベントに対して複数のパターンデータを生成する。その結果、該当ハードウェアＨＷに起因する入力イベントのばらつきの操作パターンに対応した複数の操作手順記録データ３１ｎを生成し保存する。
【０１８６】
これによって、画像処理装置１００では、テスターＵの操作に起因して評価対象ソフトウェアＳＷ１への入力イベントにばらつきが生じる場合であっても、ばらつきの操作パターンに対応する複数のイベント系列を記録することにより、これらの操作パターンを網羅した動作テストを実施することができ、安定したテスト品質を維持することができる。
【０１８７】
よって、画像処理装置１００は、第１の実施形態と同様の効果を奏するとともに、安定したテスト品質を維持することにより、ソフトウェアの品質も維持することができる。
【０１８８】
＜機能構成の変形例＞
上記各実施形態では、主に評価対象機である画像処理装置１００において動作するソフトウェア動作テスト機能について説明を行った。
【０１８９】
ここからは、エミュレータや、画像処理装置１００とテスト実行機との組み合わせなど、ソフトウェア動作テスト機能を他の形態に実装した場合について説明する。
【０１９０】
《エミュレータ》
図１３は、本発明の各実施形態に係るソフトウェア動作テスト機能構成の変形例（その１）を示す図である。図１３には、情報処理装置であるテスト実行機２００をエミュレータとして、ソフトウェア動作テスト機能を実装した場合の機能構成例を示している。
【０１９１】
まず、機能構成を説明する前に「エミュレータ」について簡単に触れておく。
【０１９２】
エミュレータ（Emulator）とは、機械の模倣装置、あるいは模倣ソフトウェアのことである。ある機械部品やソフトウェアを動作させるのに、オリジナルのシステムを用意するのが難しい場合に、オリジナルと同じ動作を行う簡便なシステムを用意することがある。この装置をエミュレータと言う。これにより、エミュレータ上で、動作させたいソフトウェアや機械部品をオリジナルと同じように機能させることができる。
【０１９３】
本変形例では、模倣対象を評価対象気である画像処理装置１００とし、画像処理装置１００と同じ動作を行うシステムをテスト実行機２００で動作させる。つまり、テスト実行機２００がエミュレータとなる。
【０１９４】
よって、テスト実行機２００では、画像処理装置１００が搭載するハード・ソフトウェアによる各種機能が擬似的に再現された（エミュレートされた）システム８３（以下、「評価対象機再現部」と言う。）上で動作する評価対象ソフトウェアＳＷ１に対して動作テストを行う。
【０１９５】
このように、本変形例では、主に、評価対象機再現部８３により再現された環境で動作する評価対象ソフトウェアＳＷ１に対して検証・評価を行う動作テスト部８２とから構成される。
【０１９６】
（評価対象機再現部）
評価対象機再現部８３は、評価対象ソフトウェアＳＷ１と、評価対象ソフトウェアＳＷ１と連携して機能提供を実現する連携ソフトウェアＳＷ３と、評価対象機が備える各種ハードウェア資源（各種デバイス）をエミュレートするハードウェアエミュレーションツールＨＥＴとを有し、評価対象ソフトウェアＳＷ１と、連携ソフトウェアＳＷ３又はハードウェアエミュレーションツールＨＥＴの少なくとも１つとの間には、相互間で送受信される各種イベント（例えば「動作指示」など）の通信経路となるイベント・キャプチャ部２１が配置される構成となっている。
【０１９７】
上記ハードウェアエミュレーションツールＨＥＴは、評価対象ソフトウェアＳＷ１が実現する機能により使用される各種ハードウェア資源をエミュレートするハードウェアエミュレータＨＥと、各種ハードウェア資源のデバイスドライバ機能（ハードウェアとソフトウェアとのインタフェース機能）をエミュレートするエミュレーションドライバＥＤとから構成され、評価対象機に依存するハードウェア資源の提供機能を擬似的に再現している。
【０１９８】
また、上記イベント・キャプチャ部２１は、「記録」や「再生」などの動作テスト実行時に、イベント記録・再生部２２との連携処理により、イベントの取得や発行と言ったイベント制御が可能となっている。この制御の詳細については、画像処理装置１００が有するソフトウェア動作テスト機能において説明を行ったイベント記録・再生部２２が行う制御動作と同様であるため、ここでの説明を省略する。
【０１９９】
このような評価対象機再現部８３により、評価対象ソフトウェアＳＷ１は、テスト実行機２００において、画像処理装置１００に搭載されたときと同じ動作を行うことが可能となる。
【０２００】
例えば、「テスターＵが、画像処理装置１００の操作パネル１１を介して、テスト工程の作業手順に従った操作を行い、画像処理装置１００に搭載されるアプリケーションＡＰを動作させる」場合、テスト実行機２００では、上記評価対象機再現部８３のハードウェアエミュレーションツールＨＥＴにより、テスト実行機２００が備える入力装置（例えば「キーバード」や「マウス」など）を介したテスターＵからの動作指示を受け付け、受け付けた動作指示を、イベント・キャプチャ部２１を介して、評価対象ソフトウェアＳＷ１に送り、評価対象ソフトウェアＳＷ１が、動作指示に従って処理を実行することで再現することができる。
【０２０１】
これにより、テスト実行機２００においても、動作テスト部８２の構成をそのまま用いることが可能となり、上記各実施形態において説明を行った画像処理装置１００の機能構成を同一の構成によりソフトウェア動作テストを行うことができる。また、データ実行機２００と画像処理装置１００との両方のテスト環境において、同一の操作手順記録データ３１及び検証用データ４１とが共通して使用できることは言うまでもない。
【０２０２】
《評価対象機とテスト実行機》
図１４は、本発明の各実施形態に係るソフトウェア動作テスト機能構成の変形例（その２）を示す図である。図１４には、評価対象機である画像処理装置１００とテスト実行機２００とに、ソフトウェア動作テスト機能を実装した場合の機能構成例が示されている。
【０２０３】
テスト実行機２００は、情報処理装置であり、動作テスト部８２のみで構成される。また、上記画像処理装置１００には、評価対象ソフトウェアＳＷ１と、連携ソフトウェアＳＷ３、各種ハードウェアＨＷ、及び各種デバイスドライバＳＷ２との間に、相互間で送受信される各種イベントの通信経路となるイベント・キャプチャ部２１を配置する構成となっている。
【０２０４】
このような構成から、画像処理装置１００とテスト実行機２００とを、所定のデータ伝送路で接続することにより、画像処理装置１００のイベント・キャプチャ部２１と、テスト実行機２００のイベント記録・再生部２２との協調動作が可能となる。
【０２０５】
ここまで、上記各実施形態に基づき本発明の説明を行ってきたが、上記各実施形態において、図を用いて説明を行った各処理手順は、処理手順が実行される動作環境（プラットフォーム）にあったプログラミング言語でコード化したプログラムとしてコンピュータで実行される。これにより前述したソフトウェア動作テスト機能を実現することができる。よって、上記プログラムは、コンピュータが読み取り可能な記録媒体１０４に格納することができる。
【０２０６】
よって、上記プログラムは、フロッピー（登録商標）ディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）などの記録媒体１０４に記憶させることによって、これらの記録媒体１０４を読み取り可能な記録媒体Ｉ／Ｆ１２のドライブ装置１０３を介して、画像処理装置１００やテスト実行機２００にインストールすることができる。また、画像処理装置１００やテスト実行機２００には、ネットワークなどのデータ伝送路に接続可能なデータ通信Ｉ／Ｆ１４を備えていることから、インターネットなどの電気通信回線を用いて上記プログラムを装置内部にダウンロードし、インストールすることもできる。
【０２０７】
また、上記実施形態において、イベント記録・再生部２２が、操作手順記録データ３１や検証用データ４１を記録するときに、同機能部が動作する装置が備えた記憶装置に格納する例を挙げたが、例えば、記憶媒体Ｉ／Ｆ１２を介して、着脱可能な記録媒体１０４に格納し記録しても良い。
【０２０８】
また、上記実施形態において、イベント記録・再生部２２によって、イベント記録機能とイベント再生機能とを１つのソフトウェア部品が実現する構成例を挙げたが、イベント記録機能はイベント記録部、また、イベント再生機能はイベント再生部と言ったように、機能ごとに別のソフトウェア部品による構成としても良い。
【０２０９】
最後に、上記各実施形態に挙げた形状や構成に、その他の要素との組み合わせなど、ここで示した要件に、本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【図面の簡単な説明】
【０２１０】
【図１】本発明の第１の実施形態に係る画像処理装置のハードウェア構成例を示す図である。
【図２】本発明の第１の実施形態に係るテスターの操作手順を記録するときの動作例を示す図である。
【図３】本発明の第１の実施形態に係る記録した操作手順を再生するときの動作例を示す図である。
【図４】本発明の第１の実施形態に係る評価対象ソフトウェアの動作を検証・評価するときの動作例を示す図である。
【図５】本発明の第１の実施形態に係るソフトウェア動作テスト機能の構成例を示す図である。
【図６】本発明の第１の実施形態に係るイベント記録機能の処理手順例を示すシーケンス図である。
【図７】本発明の第１の実施形態に係るイベント再生及び検証・評価機能の処理手順例を示すシーケンス図である。
【図８】本発明の第１の実施形態に係るイベントデータ補正機能の構成例を示す図である。
【図９】本発明の第１の実施形態に係るイベントデータを補正した後に検証・評価を行う検証・評価機能の処理手順を示すフローチャートである。
【図１０】本発明の第２の実施形態に係る各種ハードウェアに起因する入力イベントのばらつきに対応するイベント記録機能の処理手順例を示すシーケンス図である。
【図１１】本発明の第３の実施形態に係るテスターの操作に起因する入力イベントのばらつきに対応可能なイベント記録機能の構成例を示す図である。
【図１２】本発明の第３の実施形態に係る操作者に起因する入力イベントのばらつきに対応するイベント記録機能の処理手順を示すフローチャートである。
【図１３】本発明の各実施形態に係るソフトウェア動作テスト機能構成の変形例（その１）を示す図である。
【図１４】本発明の各実施形態に係るソフトウェア動作テスト機能構成の変形例（その２）を示す図である。
【符号の説明】
【０２１１】
１１    操作パネル
１２    記録媒体Ｉ／Ｆ
１３    コントローラ
１４    データ通信Ｉ／Ｆ
１５    スキャナ
１６    プロッタ
２１    イベント・キャプチャ部
２２    イベント記録・再生部
２３    検証部
３１    操作手順記録データ
４１    検証用データ
５１    データ識別部
５２    データ変換部
５３    イベント系列生成部
５４    比較部
６１    変換テーブルデータ
７１    操作イベント識別部
７２    操作パターン生成部
７３    操作手順合成部
８１    評価対象機能提供部
８２    動作テスト部
８３    評価対象機再現部
１００  画像処理装置
１０１  入力装置
１０２  表示装置
１０３  ドライブ装置
１０４  記録媒体
１０５  ＲＯＭ
１０６  ＲＡＭ
１０７  ＣＰＵ
１０８  ＮＶ−ＲＡＭ
１０９  インタフェース装置
１１０  ハードディスク（画像処理装置側）
１１１  画像読取装置（スキャナ装置）
１１２  印刷装置（プロッタ装置）
２００  情報処理装置（テスト実行機）
ＡＰ    アプリケーション
ＥＤ    エミュレーションドライバ
ＨＤ    ハードディスク（テスト実行機側）
ＨＥ    ハードウェアエミュレータ
ＨＥＴ  ハードウェアエミュレーションツール
ＨＷ    ハードウェア
ＩＭＧ  画面データ（１：正解画面，２：検証用画面）
ＳＷ    ソフトウェア（１：評価対象，２：ドライバ，３：連携）
Ｔ      テストツール
Ｕ      テスター
Ｗ      操作画面（ＵＩ）
【図１】
2010020562.tif 000003
【図２】
2010020562.tif 000004
【図３】
2010020562.tif 000005
【図４】
2010020562.tif 000006
【図５】
2010020562.tif 000007
【図６】
2010020562.tif 000008
【図７】
2010020562.tif 000009
【図８】
2010020562.tif 000010
【図９】
2010020562.tif 000011
【図１０】
2010020562.tif 000012
【図１１】
2010020562.tif 000013
【図１２】
2010020562.tif 000014
【図１３】
2010020562.tif 000015
【図１４】
2010020562.tif 000016