(57)【要約】【課題】制御装置の動作の検証のためのテストを簡易化し、かつ、テストを利用した動作の検証を簡易化する。【解決手段】検査用端末１４は、ホストコンピューター１０とプリンター１５との間で行われた一連の通信を第１テスト結果ＤＢ３８として記憶する入出力履歴記憶部３２と、第１テスト結果ＤＢ３８に基づいて、ホストコンピューター１０の出力に対して応答することにより、一連の通信を再現する再現部３３と、再現部３３による一連の通信の再現時におけるホストコンピューター１０の出力の態様に基づいて、ホストコンピューター１０の動作が正常か否かを検証する検証部３４と、を備える。【選択図】図１
2012133437.tif 000002
【特許請求の範囲】
【請求項１】
記録装置と、前記記録装置に接続された制御装置との間で行われる通信を検出可能な状態でこれら装置に接続可能であり、
これら装置に接続された状態で、これら装置間で行われた一連の通信における前記制御装置の入出力の値を、その入出力が行われた時間の経過と関連づけてデータとして記憶する入出力履歴記憶部と、
前記記録装置と接続されていない前記制御装置に接続された状態で、前記データに基づいて、前記制御装置の出力に対して応答することにより、前記一連の通信を再現する再現部と、
前記再現部による前記一連の通信の再現時における前記制御装置の出力の態様に基づいて、前記制御装置の動作が正常か否かを検証する検証部と、を備えることを特徴とする電子機器。
【請求項２】
前記制御装置は、
インストールされた所定のソフトウェアを実行することにより、前記記録装置からの入力に対して所定の出力値を出力し、
前記検証部は、
前記一連の通信の再現時における前記制御装置の出力の態様と、前記所定のソフトウェアの機能が正常に実行された場合に想定される前記制御装置の出力の態様と、の比較に基づいて、前記ソフトウェアの異常を検出することを特徴とする請求項１に記載の電子機器。
【請求項３】
前記検証部は、
前記再現部による前記一連の通信の再現時に前記制御装置が自身に対する入力に対して出力値を出力したときの経過時間に基づいて、前記制御装置の動作が正常か否かを検証することを特徴とする請求項１又は２に記載の電子機器。
【請求項４】
前記検証部は、
前記再現部による前記一連の通信の再現時に前記制御装置が自身に対する入力に対して出力した出力値の内容に基づいて、前記制御装置の動作が正常か否かを検証することを特徴とする請求項１ないし３のいずれかに記載の電子機器。
【請求項５】
記録装置と、前記記録装置に接続された制御装置との間で行われる通信を検出可能な状態でこれら装置に接続可能な電子機器を制御して、
これら装置に接続された状態で、これら装置間で行われた一連の通信における前記制御装置の入出力の値を、その入出力が行われた時間の経過と関連づけてデータとして記憶し、
前記記録装置と接続されていない前記制御装置に接続された状態で、前記データに基づいて、前記制御装置の出力に対して応答することにより、前記一連の通信を再現し、
前記一連の通信の再現時における前記制御装置の出力の態様に基づいて、前記制御装置の動作が正常か否かを検証することを特徴とする電子機器の制御方法。
【請求項６】
記録装置、及び、前記記録装置に接続された制御装置間で行われた一連の通信における前記制御装置の入出力の値を、その入出力が行われた時間の経過と関連づけてデータとして記憶し、
前記データに基づいて、前記制御装置の出力に対して応答することにより、前記一連の通信を再現し、
前記一連の通信の再現時における前記制御装置の出力の態様に基づいて、前記制御装置の動作が正常か否かを検証することを特徴とする検証方法。
【請求項７】
記録装置と、前記記録装置に接続された制御装置との間で行われる通信を検出可能な状態でこれら装置に接続可能な電子機器を制御する制御部により実行されるプログラムであって、
前記制御部を、
これら装置に接続された状態で、これら装置間で行われた一連の通信における前記制御装置の入出力の値を、その入出力が行われた時間の経過と関連づけてデータとして記憶する入出力履歴記憶部と、
前記記録装置と接続されていない前記制御装置に接続された状態で、前記データに基づいて、前記制御装置の出力に対して応答することにより、前記一連の通信を再現する再現部と、
前記再現部による前記一連の通信の再現時における前記制御装置の出力の態様に基づいて、前記制御装置の動作が正常か否かを検証する検証部と、として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録装置を制御する制御装置の動作を検証する電子機器、当該電子機器の制御方法、検証方法、及び、当該電子機器を制御するためのプログラムに関する。
【背景技術】
【０００２】
従来、プリンタードライバーがインストールされた制御装置（ホスト機器）と、この制御装置に接続された記録装置とを備え、当該プリンタードライバーの機能により、制御装置と記録装置との間で所定の通信が行われ、制御装置の制御の下、記録装置による記録が実行される記録システムが知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−７２５２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した記録システムにおける制御装置にインストールされるプリンタードライバーは、その開発段階では以下のようなテストが行われる。
すなわち、開発中のプリンタードライバーがインストールされた制御装置と、記録装置、又は、テスト用の記録装置のシミュレーターとを接続し、実際に制御装置と記録装置とを通信させて各種処理を実行させ、これら通信の状態、処理の実行の状態を検証し、これにより、プリンタードライバーの機能により想定された正常な通信が行われるか、また、想定された正常な処理が行われるかを確認するテストが行われる。
しかしながら、上述したプリンタードライバーを検査するためのテストの方法では、テストに際し、制御装置と、記録装置、又は、記録装置のシミュレーターとを接続する必要があり、作業が煩雑であり、この作業の煩雑さに伴ってテストに要する時間も長期化していた。特に、テストにおける制御装置の動作を再現するためには、当該テストを行ったときと同一の設定の記録装置を、同一条件で制御装置に接続する必要があり、作業が煩雑であった。また、プリンタードライバーによって想定された正常な通信が行われている否かの検証についても、テストの実施者が、テストを行う度に、テストの結果に基づいて行う必要があり、その検証の簡易化が求められていた。
本発明は、上述した事情に鑑みてなされたものであり、制御装置の動作の検証のためのテストを簡易化し、かつ、テストを利用した動作の検証を簡易化することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は、電子機器であって、記録装置と、前記記録装置に接続された制御装置との間で行われる通信を検出可能な状態でこれら装置に接続可能であり、これら装置に接続された状態で、これら装置間で行われた一連の通信における前記制御装置の入出力の値を、その入出力が行われた時間の経過と関連づけてデータとして記憶する入出力履歴記憶部と、前記記録装置と接続されていない前記制御装置に接続された状態で、前記データに基づいて、前記制御装置の出力に対して応答することにより、前記一連の通信を再現する再現部と、前記再現部による前記一連の通信の再現時における前記制御装置の出力の態様に基づいて、前記制御装置の動作が正常か否かを検証する検証部と、を備えることを特徴とする。
この構成によれば、テストにおいて記録装置と制御装置との間で行われた一連の通信を、記録装置が接続されていなくとも、再現部により再現可能なため、テストの度に記録装置を接続することなく、テストに供する通信を再現でき、テストに係る作業が簡易化する。さらに、上記構成によれば、検証部が、一連の通信の再現時の制御装置の出力の態様に基づいて、制御装置の動作が正常か否かを自動で検証するため、テストの実施者がテストの度にテストの結果に基づいて、動作の検証を行う必要がなくなり、テストを利用した動作の検証が簡易化する。
【０００６】
また、上記発明の電子機器であって、本発明は、前記制御装置は、インストールされた所定のソフトウェアを実行することにより、前記記録装置からの入力に対して所定の出力値を出力し、前記検証部は、前記一連の通信の再現時における前記制御装置の出力の態様と、前記所定のソフトウェアの機能が正常に実行された場合に想定される前記制御装置の出力の態様と、の比較に基づいて、前記ソフトウェアの異常を検出することを特徴とする。
この構成によれば、検証部は、一連の通信の再現時における制御装置の出力の態様と、所定のソフトウェアの機能が正常に実行された場合に想定される制御装置の出力の態様と、の比較結果を通して、これらの相違を検出することにより、ソフトウェアの設計ミス、プログラミングのミスを効率よく検出可能である。
【０００７】
また、上記発明の電子機器であって、本発明は、前記検証部は、前記再現部による前記一連の通信の再現時に前記制御装置が自身に対する入力に対して出力値を出力したときの経過時間に基づいて、前記制御装置の動作が正常か否かを検証することを特徴とする。
ここで、再現部による一連の通信の再現時に、制御装置が自身に対する入力に対して出力値を出力したときの経過時間が、想定されている時間よりも長い場合は、何らかの異常に起因して、出力に係る処理に遅延が生じている可能性がある。
これを踏まえ、上記構成によれば、検証部は、再現部による一連の通信の再現時に制御装置が自身に対する入力に対して出力値を出力したときの経過時間に基づいて、制御装置の動作が正常か否かを検証するため、上述したような異常が発生している可能性を適切に検出できる。
【０００８】
また、上記発明の電子機器であって、本発明は、前記検証部は、前記再現部による前記一連の通信の再現時に前記制御装置が自身に対する入力に対して出力した出力値の内容に基づいて、前記制御装置の動作が正常か否かを検証することを特徴とする。
ここで、再現部による一連の通信の再現時に、制御装置が自身に対する入力に対して出力値を出力したときの、その出力値の内容が、想定されている出力値の内容と異なっている場合は、何らかの異常に起因して、誤った出力値が出力されている可能性がある。
これを踏まえ、上記構成によれば、検証部は、再現部による一連の通信の再現時に制御装置が自身に対する入力に対して出力した出力値の内容に基づいて、制御装置の動作が正常か否かを検証するため、上述したような異常が発生している可能性を適切に検出できる。
【０００９】
また、上記目的を達成するために、本発明は、記録装置と、前記記録装置に接続された制御装置との間で行われる通信を検出可能な状態でこれら装置に接続可能な電子機器を制御して、これら装置に接続された状態で、これら装置間で行われた一連の通信における前記制御装置の入出力の値を、その入出力が行われた時間の経過と関連づけてデータとして記憶し、前記記録装置と接続されていない前記制御装置に接続された状態で、前記データに基づいて、前記制御装置の出力に対して応答することにより、前記一連の通信を再現し、前記一連の通信の再現時における前記制御装置の出力の態様に基づいて、前記制御装置の動作が正常か否かを検証することを特徴とする。
この制御方法によれば、テストにおいて記録装置と制御装置との間で行われた一連の通信を、記録装置が接続されていなくとも、一連の通信を再現可能なため、テストの度に記録装置を接続することなく、テストに供する通信を再現でき、テストに係る作業が簡易化する。さらに、上記構成によれば、一連の通信の再現時の制御装置の出力の態様に基づいて、制御装置の動作が正常か否かを自動で検証するため、テストの実施者がテストの度にテストの結果に基づいて、動作の検証を行う必要がなくなり、テストを利用した動作の検証が簡易化する。
【００１０】
また、上記目的を達成するために、本発明は、検証方法であって、記録装置、及び、前記記録装置に接続された制御装置間で行われた一連の通信における前記制御装置の入出力の値を、その入出力が行われた時間の経過と関連づけてデータとして記憶し、前記データに基づいて、前記制御装置の出力に対して応答することにより、前記一連の通信を再現し、前記一連の通信の再現時における前記制御装置の出力の態様に基づいて、前記制御装置の動作が正常か否かを検証することを特徴とする。
この検証方法によれば、テストにおいて記録装置と制御装置との間で行われた一連の通信を、記録装置が接続されていなくとも、一連の通信を再現可能なため、テストの度に記録装置を接続することなく、テストに供する通信を再現でき、テストに係る作業が簡易化する。さらに、上記構成によれば、一連の通信の再現時の制御装置の出力の態様に基づいて、制御装置の動作が正常か否かを自動で検証するため、テストの実施者がテストの度にテストの結果に基づいて、動作の検証を行う必要がなくなり、テストを利用した動作の検証が簡易化する。
【００１１】
また、上記目的を達成するために、本発明は、記録装置と、前記記録装置に接続された制御装置との間で行われる通信を検出可能な状態でこれら装置に接続可能な電子機器を制御する制御部により実行されるプログラムであって、前記制御部を、これら装置に接続された状態で、これら装置間で行われた一連の通信における前記制御装置の入出力の値を、その入出力が行われた時間の経過と関連づけてデータとして記憶する入出力履歴記憶部と、前記記録装置と接続されていない前記制御装置に接続された状態で、前記データに基づいて、前記制御装置の出力に対して応答することにより、前記一連の通信を再現する再現部と、前記再現部による前記一連の通信の再現時における前記制御装置の出力の態様に基づいて、前記制御装置の動作が正常か否かを検証する検証部と、として機能させることを特徴とする。
このプログラムを実行すれば、テストにおいて記録装置と制御装置との間で行われた一連の通信を、記録装置が接続されていなくとも、再現部により再現可能なため、テストの度に記録装置を接続することなく、テストに供する通信を再現でき、テストに係る作業が簡易化する。さらに、上記構成によれば、検証部が、一連の通信の再現時の制御装置の出力の態様に基づいて、制御装置の動作が正常か否かを自動で検証するため、テストの実施者がテストの度にテストの結果に基づいて、動作の検証を行う必要がなくなり、テストを利用した動作の検証が簡易化する。
【発明の効果】
【００１２】
本発明によれば、制御装置の動作の検証のためのテストが容易化し、かつ、テストに要する時間を短縮化できる。
【図面の簡単な説明】
【００１３】
【図１】検査システムの概略構成を示すブロック図である。
【図２】帳票の発行時における通信を示すシーケンス図である。
【図３】第１テスト結果ＤＢを示す図である。
【図４】検査用端末の動作を示すフローチャートである。
【図５】比較テーブルを示す図である。
【図６】検証結果が表示された表示パネルの様子を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施形態について説明する。
図１は、本実施形態に係る検査システム１の概略構成を示すブロック図である。
この検査システム１は、ホストコンピューター１０（制御装置）にインストールされて実行されるプリンタードライバー１１（ソフトウェア）の開発に際し、開発中のプリンタードライバー１１のテストを行うためのシステムである。
プリンタードライバー１１のテストとは、プログラムに誤り等がなく、プリンタードライバー１１の機能が正常に実現されることを、ホストコンピューター１０に実際にプリンタードライバー１１を実行させて検証することである。
【００１５】
図１に示すように、検査システム１では、ホストコンピューター１０に検査用端末１４（電子機器）が接続され、この検査用端末１４にプリンター１５（記録装置）が接続されている。なお、図１では、後述する第１テストに対応した接続の態様で各機器が接続されているが、後述するように、テストの段階に応じて、各機器の接続の態様は変更される。
ホストコンピューター１０は、ホスト側制御部１７と、ホスト側表示部１８と、ホスト側入力部１９と、ホスト側記憶部２０と、インターフェイス部２１と、を備えている。
ホスト側制御部１７は、ホストコンピューター１０を中枢的に制御するものであり、ＣＰＵや、ＲＯＭ、ＲＡＭその他の周辺回路を備えている。ホスト側制御部１７は、アプリケーション実行部２３と、プリンタードライバー実行部２４と、を備えているが、これらについては後述する。
ホスト側表示部１８は、液晶パネル等の表示パネルを備え、ホスト側制御部１７の制御の下、表示パネルに各種情報を表示する。ホスト側入力部１９は、キーボード等の入力デバイスに接続され、入力デバイスに対する操作を検出し、ホスト側制御部１７に出力する。
ホスト側記憶部２０は、ＥＥＰＲＯＭや、ハードディスク等の記憶媒体を備え、各種データを書き換え可能に記憶する。ホストコンピューター１０には、開発中であり、テストの対象であるプリンタードライバー１１がインストールされており、ホスト側記憶部２０には、プリンタードライバー１１が実行可能な状態で記憶されている。
インターフェイス部２１は、ホスト側制御部１７の制御の下、接続された機器との間で通信規格に準拠した通信を行う。
【００１６】
検査用端末１４は、例えば、ノート型のパーソナルコンピューターにより構成された端末であり、端末側制御部２６（制御部）と、端末側表示部２７と、端末側入力部２８と、端末側記憶部２９と、通信制御部３０と、を備えている。
端末側制御部２６は、検査用端末１４の各部を中枢的に制御するものであり、ＣＰＵや、ＲＯＭ、ＲＡＭその他の周辺回路等を備えている。端末側制御部２６は、図示せぬ発振器が生成した基準クロックに基づいて各種計時動作、及び、現在時刻の計時を実行する。端末側制御部２６は、入出力履歴記憶部３２と、再現部３３と、検証部３４と、を備えているが、これらについては後述する。
端末側表示部２７は、液晶パネル等の表示パネル３６を備え、端末側制御部２６の制御の下、表示パネル３６に各種情報を表示する。
端末側入力部２８は、キーボード等の入力デバイスに接続され、入力デバイスに対する操作を検出し、端末側制御部２６に出力する。
端末側記憶部２９は、ＥＥＰＲＯＭや、ハードディスク等の記憶媒体を備え、各種データを書き換え可能に記憶する。端末側記憶部２９には、第１テスト結果ＤＢ３８と、比較テーブル３９と、が記憶されているが、これについては後述する。
通信制御部３０は、２つの通信ポート４０、４１に接続されている。第１テストにおいて、通信ポート４０には、ホストコンピューター１０に接続された通信ケーブル４２が接続され、また、通信ポート４１には、プリンター１５に接続された通信ケーブル４３が接続される。通信制御部３０は、通信ポート４０を介してホストコンピューター１０が接続され、かつ、通信ポート４１を介してプリンター１５が接続されている場合は、一方の通信ポートから入力された信号について、波形整形を施した後、他方の通信ポートから出力する。この場合、検査用端末１４は、ホストコンピューター１０とプリンター１５との通信を仲介するハブとして機能する。
通信制御部３０は、コマンド分析部４５を備えているが、これについては後述する。
【００１７】
プリンター１５は、プリンター側制御部４８と、プリンター側表示部４９と、プリンター側入力部５０と、プリントエンジン５１と、プリンター側記憶部５２と、インターフェイス部５３と、を備えている。
本実施形態では、プリンター１５は、ロール状に巻かれたロール紙を、ローラー状のプラテンにより搬送し、このロール紙の記録面に、発熱素子を備えたサーマルヘッドによって熱を与えることにより画像を記録した上で、所定の位置でロール紙を切断することにより、画像が記録された紙片である帳票を発行するサーマルプリンターである。
プリンター側制御部４８は、プリンター１５の各部を中枢的に制御するものであり、ＣＰＵや、ＲＯＭ、ＲＡＭその他の周辺回路等を備えている。ファームウェア実行部５５については、後述する。
プリンター側表示部４９は、表示パネルに各種情報を表示し、プリンター側入力部５０は、プリンター１５に設けられた各種スイッチに接続され、スイッチに対する操作を検出し、プリンター側制御部４８に出力する。
プリントエンジン５１は、プリンター側制御部４８の制御の下、プリンター１５内に設けられた各種センサーの検出値を監視しながら、上述したサーマルヘッドのほか、ロール紙を搬送するプラテンローラーを駆動するための搬送モーターや、所定の位置でロール紙を切断するためのカッター機構が備えるカッターを駆動するためのカッター駆動モーターを動作させて、ロール紙に画像を記録し、画像を記録したロール紙を切断する。
プリンター側記憶部５２は、ＥＥＰＲＯＭや、ハードディスク等の記憶媒体を備え、各種データを書き換え可能に記憶する。このプリンター側記憶部５２は、ファームウェア５７が記憶されている。ファームウェア５７は、プリンター１５の基本動作を制御するためのプログラム群である。上述したファームウェア実行部５５は、ファームウェア５７を読み出して実行することにより、プリントエンジン５１を制御する。
インターフェイス部５３は、プリンター側制御部４８の制御の下、接続された機器との間で、通信規格に準拠した通信を行う。
【００１８】
プリンター１５の本体には、ロール紙を収容するための空間であるロール紙収容部（不図示）が形成されると共に、このロール紙収容部の開口を開閉するための開閉カバー（不図示）が設けられている。
さらに、プリンター１５には、開閉カバーが開状態か、閉状態かを検出するセンサーである開閉カバーセンサー５８が設けられており、また、ロール紙収容部に収容されたロール紙の紙切れを検出するための紙切センサー５９が設けられている。
プリンター側制御部４８は、開閉カバーセンサー５８、及び、紙切センサー５９の検出値に基づいて、開閉カバーの開閉状態、及び、ロール紙の紙切れの発生の有無を検出する。
【００１９】
なお、本実施形態では、プリンタードライバー１１の第１テスト（後述）において、実際に画像を記録する機能を有したプリンター１５の完成品を使用している。しかしながら、後述するように、テストの内容は、プリンター１５の物理的な動作によって影響を受けないため、ホストコンピューター１０からコマンド等が入力された場合に、完成品のプリンター１５と同一の内容、タイミングで所定の出力を行う装置であれば、どのような装置を利用してもよい。例えば、ホストコンピューター１０からコマンド等が入力された場合に、完成品のプリンター１５と同一の内容、タイミングで所定の出力を行う機能をソフトウェア的に実現したシミュレーターを利用してもよい。
【００２０】
ここで、プリンター１５は、テストではなく、実際の現場では、以下のようにして記録媒体への画像の記録を行うことが想定されている。
すなわち、図１において点線で示すように、実際には、プリンター１５と、ホストコンピューター１０とが直接接続され、ホストコンピューター１０の制御の下、プリンター１５は、記録媒体への画像の記録を含む各種動作を実行する。
アプリケーション実行部２３、及び、プリンタードライバー実行部２４の説明を通して詳述すると、アプリケーション実行部２３は、ホストコンピューター１０に予めインストールされたアプリケーションを実行することにより、記録媒体に記録すべき画像を示す印刷データを生成し、プリンタードライバー実行部２４に出力する。印刷データとは、とは、ロール紙の所定の位置に所定の画像が適切に記録されるように、画像に関する各種情報が、プリンタードライバー実行部２４によって解析可能な態様で保持されたデータのことである。
【００２１】
プリンタードライバー実行部２４は、プリンタードライバー１１を実行することにより、アプリケーション実行部２３から入力された印刷データに基づいて、プリンター１５のコマンド仕様に対応した制御コマンドを生成し、プリンター１５に出力する。
制御コマンドは、プリンター１５に帳票の発行に係る一連の処理を実行させるためのコマンドであり、プリンター１５の状態を取得すべく、状態についての応答を要求するコマンドや、搬送機構にロール紙を搬送させるコマンド、サーマルヘッドを駆動させるコマンド、切断機構にロール紙を切断させるコマンド等が含まれている。
プリンタードライバー実行部２４から制御コマンドが入力されたプリンター側制御部４８のファームウェア実行部５５は、制御コマンドを読み出して実行することにより、プリントエンジン５１を制御して、ロール紙への画像の記録に係る一連の処理を実行して、帳票を発行する。
なお、上述したように、本実施形態では、開発中のプリンタードライバー１１のテストが行われるが、これは、開発中のプリンタードライバー１１を実行するプリンタードライバー実行部２４が、正常に制御コマンドを生成し、正常なタイミングで出力することや、プリンタードライバー実行部２４とプリンター１５のファームウェア実行部５５との間で、想定された通信が正常に行われることを検証することを１つの目的としている。
【００２２】
本実施形態では、帳票の発行に際し、プリンタードライバー実行部２４と、ファームウェア実行部５５との間で以下のような通信が行われる。すなわち、プリンタードライバー１１は、帳票の発行に際し、ファームウェア実行部５５との間で以下のような通信を行うように、プログラミングされる。
【００２３】
図２は、帳票の発行に際し、プリンタードライバー実行部２４と、ファームウェア実行部５５との間で行われる通信を示すシーケンス図である。図２において、（Ａ）が、プリンタードライバー実行部２４であり、（Ｂ）が、ファームウェア実行部５５である。
なお、以下の説明では、発明の明確化のため、帳票の発行に際して、これら実行部の間で行われるやり取りを単純化して説明すると共に、やり取りされるコマンド自体も単純化した上で説明する。
帳票の発行に際し、まず、プリンタードライバー実行部２４は、開閉カバーが開状態であるか閉状態であるかについての応答を要求するコマンドであるカバー状態応答要求コマンドＣＹを出力する（ステップＳＡ１）。
カバー状態応答要求コマンドＣＹが入力されたファームウェア実行部５５は、開閉カバーセンサー５８の検出値に基づいて、開閉カバーの開閉状態を取得し、開閉カバーの状態を示す情報を含んだコマンドであるカバー状態応答コマンドＣＯを出力する（ステップＳＡ２）。
カバー状態応答コマンドＣＯが入力されたプリンタードライバー実行部２４は、紙切れの発生の有無についての応答を要求するコマンドである紙切状態応答要求コマンドＰＹを出力する（ステップＳＡ３）。
【００２４】
ここで、本実施形態では、カバー状態応答コマンドＣＯが入力されてから、紙切状態応答要求コマンドＰＹの出力が開始されるまでの間が、２００ｍｓ（ミリ秒）以下となるようにするとの開発の方針の下に、プリンタードライバー１１は設計、プログラミングされている。従って、カバー状態応答コマンドＣＯが入力されてから、紙切状態応答要求コマンドＰＹを出力するまでに２００ｍｓを上回る時間がかかった場合は、プリンタードライバー１１の設計ミスや、プログラミングのミス等に起因して、例えば、コマンドの送受信にあたってコマンドが一時的に格納されるバッファーへのアクセスに係る処理に不具合が生じていたり、また、カバー状態応答コマンドＣＯの解析処理に時間がかかったり、紙切状態応答要求コマンドＰＹを生成する処理に時間がかかったりしている可能性があるものと想定される。
【００２５】
紙切状態応答要求コマンドＰＹが入力されたファームウェア実行部５５は、紙切センサー５９の検出値に基づいて、紙切れの発生の有無を取得し、紙切れの発生の有無を示す情報を含んだコマンドである紙切状態応答コマンドＰＯを出力する（ステップＳＡ４）。
紙切状態応答コマンドＰＯが入力されたプリンタードライバー実行部２４は、発行コマンドＨＣを出力する。発行コマンドＨＣとは、プリンター１５に帳票の発行に係る一連の動作を行うことを指示するコマンド群のことであり、搬送機構にロール紙を搬送させるコマンド、サーマルヘッドを駆動させるコマンド、切断機構にロール紙を切断させるコマンド等が含まれている。この発行コマンドＨＣを実行することにより、プリンター１５は、ロール紙の切断に至るまでの帳票の発行に係る一連の動作の全てを実行できる。
ここで、本実施形態では、紙切状態応答コマンドＰＯが入力されてから、発行コマンドＨＣの出力が開始されるまでの間が、５００ｍｓ以下となるようにするとの開発の方針の下に、プリンタードライバー１１は開発、プログラミングされている。従って、紙切状態応答コマンドＰＯが入力されてから、発行コマンドＨＣの出力が開始されるまでに、５００ｍｓを上回る時間がかかった場合は、上述したように、プリンタードライバー１１の設計ミス等に起因して、何らかの処理に不必要に時間がかかっているものと想定される。
【００２６】
発行コマンドＨＣが入力され、当該コマンドに基づいて、帳票の発行に係る一連の処理が終了した後、ファームウェア実行部５５は、帳票の発行に係る一連の処理が終了した旨を示す情報が含まれた発行終了コマンドＳＣを出力する。
帳票の発行に際しては、プリンタードライバー実行部２４と、ファームウェア実行部５５との間で、以上説明したようなやり取りが行われる。
【００２７】
次いで、プリンタードライバー１１のテストのうち、第１段階のテストである第１テストの一例について説明する。
この第１テストは、検査用端末１４にホストコンピューター１０が接続され、かつ、検査用端末１４にプリンター１５が接続された状態（図１に示す状態）で行われる。
また、第１テストでは、後述するように、プリンター１５とホストコンピューター１０との間で通信し、これら装置によって協働して何らかの処理を実行させる必要があるが、以下の説明では、これら装置を協働させて１つの帳票を発行する処理を行わせるものとする。上述したように、帳票の発行の際には、これら装置間で、図２に示したやり取りが行われる。
また、検査用端末１４は、上述したように、ホストコンピューター１０と、プリンター１５との間で送受信される信号を中継するハブとしての機能を有しているため、ホストコンピューター１０と、プリンター１５との間では、検査用端末１４が介在していない場合と同様に、信号通信を行うことができる。
また、以下の説明では、前提として、アプリケーション実行部２３により、発行すべき帳票の印刷データが正常に生成されているものとする。
【００２８】
第１テストでは、まず、ホストコンピューター１０と、プリンター１５との間で通信させ、これら装置に協働させて、ある１つの帳票を発行させる。上述したように、帳票の発行に際しては、これら装置の間で図２に示すコマンドのやり取りが行われる。
上記処理が行われている間、通信制御部３０のコマンド分析部４５は、以下のような処理を行う。
すなわち、コマンド分析部４５は、通信制御部３０に対していずれかの通信ポートを介してコマンドに係る信号が入力される度に、一旦、復調（デコード）して、当該信号が示すコマンドを生成する。
そして、コマンド分析部４５は、復調したコマンドに基づいて、当該コマンドのコマンド名称を取得する。なお、本実施形態では、ホストコンピューター１０とプリンター１５との間でやり取りされるコマンドごとに、コマンド名称が一意に付与されている。また、通信制御部３０には、所定の記憶領域が形成されており、この記憶領域には、コマンドの形態と、コマンド名称とを対応づけて記憶するテーブルが形成されており、コマンド分析部４５は、当該テーブルを参照して、復調したコマンドのコマンド名称を取得できる。
【００２９】
次いで、コマンド分析部４５は、コマンド名称を示すデータ、及び、コマンドが入力された通信ポートが、通信ポート４０と通信ポート４１のいずれの通信ポートであるかを示すデータを、端末側制御部２６に出力する。なお、通信ポート４０からコマンドが入力された場合、当該コマンドは、ホストコンピューター１０からプリンター１５へと出力されるコマンドであり、一方、通信ポート４１からコマンドが入力された場合、当該コマンドは、プリンター１５からホストコンピューター１０へ出力されるコマンドである。
このようにして、コマンド分析部４５は、通信制御部３０にコマンドが入力される度に、当該コマンドのコマンド名称を示すデータと、当該コマンドが入力された通信ポートを示すデータとを生成して、端末側制御部２６に出力する。
なお、コマンド分析部４５が、復調したコマンドをデータとして端末側制御部２６に出力し、端末側制御部２６が、入力されたコマンドに基づいてコマンド名称を取得する構成としてもよい。
【００３０】
さらに、第１テストにおいて、端末側制御部２６の入出力履歴記憶部３２は、上述したコマンド分析部４５から入力されたデータに基づいて、第１テスト結果ＤＢ３８を生成し、端末側記憶部２９に記憶する。
【００３１】
図３は、第１テスト結果ＤＢ３８の一例を模式的に示す図である。
この第１テスト結果ＤＢ３８は、第１テストにおいてホストコンピューター１０と、プリンター１５との間でやり取りされたコマンドのそれぞれについて、各コマンドのコマンド名と、各コマンドがどちらの装置から出力されたコマンドであるかを示す情報と、通信制御部３０に対してコマンドが入力された日時（日付、時刻）を示す情報と、各コマンドの１つ前のコマンドが通信制御部３０に入力された後、各コマンドが入力されるまでに要した経過時間を示す情報と、を対応づけて、時系列で記憶するデータベースである。
図３に示すように、第１テスト結果ＤＢ３８の１件のレコードには、コマンド名フィールド６０と、入出力区分フィールド６１と、入力時刻フィールド６２と、経過時間フィールド６３と、が含まれている。
【００３２】
コマンド名フィールド６０は、コマンド名を示すデータが格納されるフィールドである。
入出力区分フィールド６１は、コマンドがホストコンピューター１０、及び、プリンター１５のいずれの装置から入力されたコマンドであるかを示すデータが格納されるフィールドである。図３では、入出力の判断の基準をホストコンピューター１０におき、ホストコンピューター１０からコマンドが出力されている場合を「出力」と表現し（この場合、通信ポート４０を介して通信制御部３０に信号が入力されている）、一方、プリンター１５からコマンドが出力されている場合、すなわち、ホストコンピューター１０へ対してコマンドが入力されている場合を「入力」と表現している（この場合、通信ポート４１を介して通信制御部３０に信号が入力されている）。
入力時刻フィールド６２は、通信制御部３０に対してコマンドが入力された日時（日付、時刻）を示すデータが格納されるフィールドである。通信制御部３０に対してコマンドが入力された日時は、端末側制御部２６によって監視され、管理され、所定の記憶領域に一時的に記憶される。
経過時間フィールド６３は、通信制御部３０に１つ前のコマンドが入力されてから、当該コマンドが入力されるまでに要した経過時間を示すデータが格納されるフィールドである。経過時間は、各コマンドが入力された時刻に基づいて、端末側制御部２６により算出される。
【００３３】
入出力履歴記憶部３２は、コマンド分析部４５から、コマンド名を示すデータ、及び、コマンドが入力された通信ポートを示すデータが入力される度に、コマンド名フィールド６０に、コマンド名を示すデータを格納し、入出力区分フィールド６１に入出力区分を示すデータを格納し、入力時刻フィールド６２にコマンドが通信制御部３０に入力されたときの時刻を示すデータを格納し、経過時間フィールド６３に、１つ前のコマンドが入力されてからの経過時間を示すデータを格納することにより、第１テスト結果ＤＢ３８の１件のレコードを生成する。
【００３４】
以上のように、第１テストでは、開発中のプリンタードライバー１１を実行するホストコンピューター１０と、プリンター１５（上述したように、シミュレーターであってもよい）との間で実際に通信をさせることにより協働して１つの帳票を発行させた上で、当該帳票の発行に際してやり取りされるコマンドを監視し、当該監視に基づいて、第１テスト結果ＤＢ３８が生成される。
【００３５】
次いで第２テストについて説明する。
第２テストは、第１テストにおけるホストコンピューター１０の動作を検証し、ホストコンピューター１０のプリンタードライバー実行部２４が想定された動作を逸脱して動作していないかを確認し、これにより、プリンタードライバー１１の不具合を検出することを１つの目的としている。
この第２テストでは、プリンター１５が使用されず、ホストコンピューター１０と、検査用端末１４とを利用して行われる。すなわち、検査用端末１４にも、また、ホストコンピューター１０にもプリンター１５が接続されることなく、ホストコンピューター１０と検査用端末１４とが接続された状態で、これら２つの装置を利用して行われる。
また、第２テストでは、第１テストと、第２テストとの間で、プリンタードライバー１１の改変は行われず、ホストコンピューター１０は、第１テストで実行したプリンタードライバー１１と同一のプリンタードライバー１１を実行することにより、各種動作を実行することが前提となる。
【００３６】
第２テストでは、まず、第１テストにおいてプリンタードライバー実行部２４とファームウェア実行部５５との間で行われた通信が、再現部３３の機能により、プリンタードライバー実行部２４と、再現部３３との間で再現される。この再現部３３の機能は、端末側制御部２６が備えるＣＰＵがプログラムを実行する等、ハードウェアとソフトウェアとの協働により実現される。
詳述すると、第２テストでは、プリンタードライバー１１の機能を発揮させることにより、プリンタードライバー実行部２４に、１つの帳票を発行する際の一連の動作を実行させる。その際、プリンタードライバー実行部２４の出力に対しては、検査用端末１４の再現部３３が応答する。
図２及び図３を援用して具体的に説明すると、上述したように、１つの帳票の発行に際し、まず、プリンタードライバー実行部２４は、カバー状態応答要求コマンドＣＹを出力する。
当該カバー状態応答要求コマンドＣＹが入力された通信制御部３０は、当該コマンドのコマンド名を端末側制御部２６の再現部３３にデータとして出力する。
通信制御部３０に入力されたコマンドのコマンド名を示すデータが入力された再現部３３は、第１テスト結果ＤＢ３８のコマンド名フィールド６０、及び、入出力区分フィールド６１を参照し、コマンド名と入出力区分の組み合わせに基づいて、通信制御部３０に入力されたコマンドに対応するレコードを特定する。上記の例では、通信制御部３０に、プリンタードライバー実行部２４が出力した（＝入出力区分「出力」）カバー状態応答要求コマンドＣＹが入力されているため、コマンド名と入出力区部との組み合わせは、「カバー状態応答要求コマンドＣＹ／出力」という組み合わせとなり、再現部３３は、図３に示す第１テスト結果ＤＢ３８の１件目のレコードを、当該コマンドに対応するレコードとして特定する。
さらに、再現部３３は、レコードの特定と併せて、通信制御部３０にカバー状態応答要求コマンドＣＹが入力されたときからの経過時間を計時する。
【００３７】
次いで、再現部３３は、上記で特定したレコードの次のレコードを参照する。具体的には、再現部３３は、図３に示す第１テスト結果ＤＢ３８の２件目のレコードを参照する。この２件目のレコードは、第１テストにおいて、カバー状態応答要求コマンドＣＹが入力されたファームウェア実行部５５が、当該コマンドに応答して出力したコマンドに係るレコードである。
さらに、再現部３３は、図３に示す第１テスト結果ＤＢ３８の２件目のレコードのコマンド名フィールド６０に格納されたデータが示すコマンドであるカバー状態応答コマンドＣＯを生成し、通信制御部３０にカバー状態応答要求コマンドＣＹが入力された後、経過時間フィールド６３に格納されたデータが示す経過時間である１００ｍｓが経過したタイミングで、生成したカバー状態応答コマンドＣＯをプリンタードライバー実行部２４に対して出力する。すなわち、通信制御部３０は、プリンタードライバー実行部２４によるカバー状態応答要求コマンドＣＹの出力に対し、第１テストにおいてプリンター１５が応答したコマンドと同一のコマンドを、同一のタイミングで応答する。
なお、再現部３３は、所定のテーブルを参照することにより、コマンド名からコマンドを生成する機能を有している。
【００３８】
図２に示すように、再現部３３からカバー状態応答コマンドＣＯが入力されたプリンタードライバー実行部２４は、紙切状態応答要求コマンドＰＹを出力する。なお、第１テストと、第２テストとの間で、プリンタードライバー１１の改変は行われていないため、プリンタードライバー実行部２４は、第１テストと同一の内容の紙切状態応答要求コマンドＰＹを、ほぼ同一のタイミングで出力することとなる。
プリンタードライバー実行部２４から紙切状態応答要求コマンドＰＹが通信制御部３０に入力されると、再現部３３は、第１テスト結果ＤＢ３８を利用して、上述した方法と同様の方法により、当該入力されたコマンドに対応するレコードを特定し、特定したレコードの次のレコードを参照して、プリンタードライバー実行部２４に対して、紙切状態応答コマンドＰＯを出力する。その際、上述したように、再現部３３は、第１テストにおいてプリンター１５が応答した紙切状態応答コマンドＰＯと同一の内容のコマンドを、同一のタイミングで、出力する。
同様にして、この紙切状態応答コマンドＰＯが入力されたプリンタードライバー実行部２４は、発行コマンドＨＣを生成して出力すると共に、当該発行コマンドＨＣが入力された再現部３３は、第１テスト結果ＤＢ３８に基づいて、発行終了コマンドＳＣを生成し、出力する。
第２テストでは、このようにして第１テストにおけるプリンタードライバー実行部２４と、ファームウェア実行部５５との間におけるコマンドのやり取りが再現される。
【００３９】
さらに、第２テストでは、検証部３４により、プリンタードライバー１１の不具合の可能性が自動で検出される。
以下、第２テストにおける検証部３４の動作について詳述する。
【００４０】
図４は、検証部３４の動作を示すフローチャートである。
この検証部３４の機能は、端末側制御部２６のＣＰＵがプログラムを実行する等、ハードウェアとソフトウェアとの協働により実現される。
第２テストが実行されている間、検証部３４は、再現部３３により、特定のコマンドの応答があったか、すなわち、再現部３３がプリンタードライバー実行部２４に対して特定のコマンドを出力したか否かを監視する（ステップＳＢ１）。
ここで、特定のコマンドとは、当該特定のコマンドをプリンタードライバー実行部２４に出力した後に、これに対応してプリンタードライバー実行部２４が所定のコマンドを所定の時間内に出力することが想定されているコマンドのことである。
具体的に例を挙げて説明すると、図２の例では、再現部３３からプリンタードライバー実行部２４に出力されるカバー状態応答コマンドＣＯが、特定のコマンドに該当する。なぜなら、当該カバー状態応答コマンドＣＯが入力されたプリンタードライバー実行部２４は、当該コマンドの入力から２００ｍｓ以内に、紙切状態応答要求コマンドＰＹを出力することが想定されているからである。さらに、図２の例では、再現部３３からプリンタードライバー実行部２４に出力される紙切状態応答コマンドＰＯが、特定のコマンドに該当する。なぜなら、当該紙切状態応答コマンドＰＯが入力されたプリンタードライバー実行部２４は、当該コマンドの入力から５００ｍｓ以内に、発行コマンドＨＣを出力することが想定されているからである。
【００４１】
ステップＳＢ１において、再現部３３がプリンタードライバー実行部２４に対して特定のコマンドを出力したことを検出した場合（ステップＳＢ１：ＹＥＳ）、検証部３４は、当該コマンドの出力があったときからの経過時間の計測を開始する（ステップＳＢ２）。
次いで、検証部３４は、プリンタードライバー実行部２４から何らかのコマンドの入力があったか否かを監視する（ステップＳＢ３）。ここで入力されたコマンドは、ステップＳＢ１において再現部３３が出力したと判別された特定のコマンドに対応して、プリンタードライバー実行部２４が出力したコマンドである。
プリンタードライバー実行部２４から何らかのコマンドが入力された場合（ステップＳＢ３：ＹＥＳ）、検証部３４は、ステップＳＢ２で開始した経過時間の計測を終了し、経過時間を取得する（ステップＳＢ４）。
次いで、検証部３４は、端末側記憶部２９に記憶された比較テーブル３９を参照する。
【００４２】
図５は、比較テーブル３９の内容を模式的に示す図である。
この比較テーブル３９は、１つの帳票を発行するための一連の処理について、プリンタードライバー実行部２４に上述した特定のコマンドが入力された場合に、プリンタードライバー実行部２４が特定のコマンドに対応して出力すべきコマンドのコマンド名と、特定のコマンドが入力されてから対応するコマンドが出力されるまでの経過時間として許容される時間の長さを示す情報とを対応づけて記憶するテーブルである。なお、特定のコマンドが入力された場合に、プリンタードライバー実行部２４が出力すべきコマンド、及び、当該コマンドを出力するまでに許容される経過時間は、開発の段階で、一意に定められており、プリンタードライバー１１は、当該定めに準拠するように、設計され、また、プログラミングされている。
図５に示すように、比較テーブル３９の１件のレコードには、少なくとも、入力コマンドフィールド６５と、出力コマンドフィールド６６と、許容経過時間フィールド６７とが含まれている。
入力コマンドフィールド６５には、プリンタードライバー実行部２４に入力されることが想定される特定のコマンドのコマンド名を示すデータが格納される。
出力コマンドフィールド６６には、対応する入力コマンドフィールド６５に格納されたデータが示す特定のコマンドに対応して、プリンタードライバー実行部２４が出力すべきコマンドのコマンド名を示すデータが格納される。
許容経過時間フィールド６７には、特定のコマンドが入力されてから対応するコマンドが出力されるまでの経過時間として許容される時間の長さを示すデータが格納される。
【００４３】
図５を用いて、比較テーブル３９について具体的に説明すると、比較テーブル３９の１件目のレコードについて、入力コマンドフィールド６５にはカバー状態応答コマンドＣＯを示すデータが格納され、出力コマンドフィールド６６には紙切状態応答要求コマンドＰＹを示すデータが格納され、かつ、許容経過時間フィールド６７には「２００ｍｓ」を示すデータが格納されている。この場合、当該１件目のレコードは、カバー状態応答コマンドＣＯが入力された場合、プリンタードライバー実行部２４は、紙切状態応答要求コマンドＰＹを、２００ｍｓ以内に出力すべきことを示している。従って、カバー状態応答コマンドＣＯが入力された後に、プリンタードライバー実行部２４が、紙切状態応答要求コマンドＰＹ以外のコマンドを出力したり、また、紙切状態応答要求コマンドＰＹを出力するまでの経過時間が２００ｍｓを上回ったりした場合、プリンタードライバー１１に何らかの設計ミスや、プログラミングミスがあった可能性がある。
【００４４】
さて、図４に戻り、ステップＳＢ５において比較テーブル３９を参照した後、検証部３４は、ステップＳＢ１において再現部３３からプリンタードライバー実行部２４に出力されたと判別されたコマンドに対応する比較テーブル３９のレコードを特定する（ステップＳＢ６）。
具体的には、検証部３４は、比較テーブル３９の入力コマンドフィールド６５を参照し、ステップＳＢ１において再現部３３からプリンタードライバー実行部２４に出力されたと判別されたコマンドを示すデータが入力コマンドフィールド６５に格納されているレコードを、特定する。
次いで、検証部３４は、ステップＳＢ４で取得した経過時間と、ステップＳＢ６で特定したレコードの許容経過時間フィールド６７に格納されたデータが示す経過時間と、の比較結果に基づいて、プリンタードライバー１１に何らかの不具合がある可能性について検証する。
詳述すると、上述したように、プリンタードライバー１１は、特定のコマンドが入力された場合に、当該特定のコマンドに対応するコマンドが、比較テーブル３９の許容経過時間フィールド６７に格納されたデータが示す所定の経過時間（以下、「許容経過時間」という）以内に出力されるように設計、開発されている。従って、ステップＳＢ４で取得した経過時間が、許容経過時間を上回っている場合は、プリンタードライバー１１について、何らかの設計ミスや、プログラミングのミスが発生している可能性がある。これを踏まえ、ステップＳＢ７において、検証部３４は、ステップＳＢ４で取得した経過時間が、許容経過時間を上回っている場合は、プリンタードライバー１１に何らかの不具合がある可能性があると判別し、一方、下回っている場合は、プリンタードライバー１１に何らかの不具合が発生している可能性について検出できなかったと判別する。
【００４５】
さらに、例を挙げて、具体的に説明すると、図５に示すように、本実施形態では、プリンタードライバー実行部２４にカバー状態応答コマンドＣＯが入力されてから、当該コマンドに対応して紙切状態応答要求コマンドＰＹが出力されるまでの許容経過時間は、「２００ｍｓ」である。この場合において、第２テストにおいて、プリンタードライバー実行部２４にカバー状態応答コマンドＣＯが入力されてから、当該コマンドに対応して紙切状態応答要求コマンドＰＹが出力されるまでに、「４００ｍｓ」かかったとする。この場合、ステップＳＢ７において、検証部３４は、プリンタードライバー１１に何らかの不具合がある可能性があると判別する。また、図５に示すように、本実施形態では、プリンタードライバー実行部２４に紙切状態応答コマンドＰＯが入力されてから、当該コマンドに対応して発行コマンドＨＣが出力されるまでの許容経過時間は、「５００ｍｓ」である。この場合において、第２テストにおいて、プリンタードライバー実行部２４に紙切状態応答コマンドＰＯが入力されてから、当該コマンドに対応して発行コマンドＨＣが出力されるまでに、「３００ｍｓ」かかったとする。この場合、ステップＳＢ７において、検証部３４は、プリンタードライバー１１に何らかの不具合が発生している可能性について検出できなかったと判別する。
【００４６】
次いで、検証部３４は、ステップＳＢ３において、プリンタードライバー１１から入力されたコマンドのコマンド名と、ステップＳＢ６で特定したレコードの出力コマンドフィールド６６に格納されたデータが示すコマンド名と、の比較結果に基づいて、プリンタードライバー１１に何らかの不具合がある可能性について検証する。
詳述すると、上述したように、プリンタードライバー１１は、特定のコマンドが入力された場合、当該特定のコマンドに対応する所定のコマンドが出力されるように、換言すれば、出力コマンドフィールド６６に格納されたデータが示すコマンド名（以下、「対応コマンド名」という）に係るコマンドが出力されるように設計、開発されている。従って、ステップＳＢ３でプリンタードライバー１１から入力されたコマンドのコマンド名が、対応コマンド名と異なっている場合は、プリンタードライバー１１について、何らかの設計ミスや、プログラミングのミスが発生している可能性がある。これを踏まえ、ステップＳＢ８におちえ、検証部３４は、ステップＳＢ３でプリンタードライバー１１から入力されたコマンドのコマンド名と、対応コマンド名が異なっている場合は、プリンタードライバー１１に何らかの不具合がある可能性があると判別し、一方、これら名称が一致している場合は、プリンタードライバー１１に何らかの不具合が発生している可能性について検証できなかったと判別する。
【００４７】
さらに、例を挙げて具体的に説明すると、図５に示すように、本実施形態では、プリンタードライバー実行部２４にカバー状態応答コマンドＣＯが入力された場合、当該コマンドに対応して、紙切状態応答要求コマンドＰＹを出力することが想定されている。この場合において、第２テストにおいて、カバー状態応答コマンドＣＯが入力された後、プリンタードライバー実行部２４が、紙切状態応答要求コマンドＰＹを出力した場合は、検証部３４は、プリンタードライバー１１に何らかの不具合が発生している可能性について検証できなかったと判別し、一方、プリンタードライバー実行部２４が、紙切状態応答要求コマンドＰＹ以外のコマンドを出力した場合は、検証部３４は、プリンタードライバー１１に何らかの不具合がある可能性があると判別する。
【００４８】
このように、本実施形態では、検証部３４が、再現部３３の機能により第１テストを再現している際に、プリンタードライバー１１の不具合の可能性を自動で検出するため、テストの検証に係る作業が、効率化すると共に簡易化する。
【００４９】
次いで、検証部３４は、端末側表示部２７を制御して、ステップＳＢ７、及び、ステップＳＢ８の検証結果を、表示パネル３６に表示する（ステップＳＢ９）。
【００５０】
図６は、ステップＳＢ９において表示パネル３６に表示される内容の一例を示す図である。
図６に示すように、検証部３４は、特定のコマンドの入力から、当該特定のコマンドに対応するコマンドの出力に至るまでの経過時間を利用した検証の結果を、例えば、図６の表７０を利用して一覧表示する。この表７０では、プリンタードライバー実行部２４に入力されたコマンド、プリンタードライバー実行部２４が出力したコマンド、入出力の間の経過時間、許容経過時間、及び、当該経過時間と当該許容経過時間との比較に基づいて検出されるプリンタードライバー１１の不具合の可能性の有無が、対応づけて表示される。
また、図６に示すように、検証部３４は、特定のコマンドの入力後に、出力されたコマンドの内容を検証した結果を、例えば、図６の表７１を利用して一覧表示する。この表７１では、プリンタードライバー実行部２４に入力されたコマンド、プリンタードライバー実行部２４が出力したコマンド、入力されたコマンドに対してプリンタードライバー実行部２４が出力すべきコマンド、及び、プリンタードライバー実行部２４が実際に出力したコマンドと、出力すべきコマンドとの比較結果に基づいて検出されるプリンタードライバー１１の不具合の可能性の有無が、対応づけて表示される。
これら表７０、及び、表７１を参照することにより、プリンタードライバー１１のテストを行う者は、容易にプリンタードライバー１１の不具合の可能性を容易に把握できると共に、不具合の可能性があると判別された理由を容易に把握できる。
【００５１】
なお、第２テストは、プリンター１５を用いず、ホストコンピューター１０と、検査用端末１４との間で行われる。このため、以下のメリットがある。
すなわち、プリンタードライバー１１のテストの１つでは、ホストコンピューター１０、及び、プリンター１５に所定の一連の動作を協働して実行させ、当該動作において、これら装置間で行われる通信の内容を検証することが行われる。この場合、異なる観点から行われる各種検証を行うべく、所定の一連の動作に係る通信を、その内容の同一性を維持したまま、複数回実行させる必要がある場合がある。
しかしながら、本実施形態に係る検査用端末１４を用いない場合、ホストコンピューター１０とプリンター１５との間で、所定の一連の動作に係る通信を、その内容の同一性を維持したまま複数回実行させるためには、プリンター１５の設定や、ホストコンピューター１０とプリンター１５とが接続された環境等を変更することなく、プリンター１５とホストコンピューター１０とが接続された状態を維持するか、また、テストの度に、同一機種、同一設定のプリンター１５を、同一条件、同一環境でホストコンピューター１０に接続する必要があった。プリンター１５とホストコンピューター１０とが接続された状態を維持するのは、例えば、テストは複数日に亘って行われることも多いため、非常に困難性が高く、また、テストの度にホストコンピューター１０にプリンター１５を接続するのは、非常に煩雑であった。
これを踏まえ、本実施形態では、第１テストにおいて、入出力履歴記憶部３２は、ホストコンピューター１０とプリンター１５との間で実際にやり取りされたコマンドに基づいて第１テスト結果ＤＢ３８を生成する。そして、以後は、プリンター１５を利用することなく、再現部３３の機能により、プリンター１５と、検査用端末１４との間で第１テストにおけるホストコンピューター１０とプリンター１５とのやり取りを再現できる構成となっている。このため、上述した困難性が高く、また、煩雑な作業を行うことなく、所定の一連の動作に係る通信を、その内容の同一性を維持したまま複数回実行させることができ、テストにおける処理効率を向上できる。
【００５２】
以上説明したように、本実施形態に係る検査用端末１４は、プリンター１５と、ホストコンピューター１０との間で行われる通信を検出可能な状態でこれら装置に接続可能である。そして、検査用端末１４は、これら装置間で行われた一連の通信におけるホストコンピューター１０の入出力コマンドを、その入出力が行われた時間の経過と関連づけて第１テスト結果ＤＢ３８として記憶する入出力履歴記憶部３２と、プリンター１５と接続されていないホストコンピューター１０に接続された状態で、第１テスト結果ＤＢ３８に基づいて、ホストコンピューター１０の出力に対して応答することにより、一連の通信を再現する再現部３３と、再現部３３による一連の通信の再現時におけるホストコンピューター１０の出力の態様に基づいて、ホストコンピューター１０の動作が正常か否かを検証する検証部３４と、を備えている。
これによれば、テストにおいてプリンター１５とホストコンピューター１０との間で行われた一連の通信を、プリンター１５が接続されていなくとも、再現部３３により再現可能なため、テストの度にプリンター１５を接続することなく、テストに供する通信を再現でき、テストに係る作業が簡易化する。さらに、上記構成によれば、検証部３４が、一連の通信の再現時のホストコンピューター１０の出力の態様に基づいて、ホストコンピューター１０の動作が正常か否かを自動で検証するため、テストの実施者がテストの度にテストの結果に基づいて、動作の検証を行う必要がなくなり、テストを利用した動作の検証が簡易化する。
【００５３】
また、本実施形態によれば、ホストコンピューター１０のプリンタードライバー実行部２４は、プリンタードライバー１１を実行することにより、プリンター１５からの入力に対して所定のコマンドを出力する。そして、検証部３４は、一連の通信の再現時におけるホストコンピューター１０の出力の態様と、プリンタードライバー１１の機能が正常に実行された場合に想定されるホストコンピューター１０の出力の態様と、の比較に基づいて、プリンタードライバー１１の不具合の可能性を検出する。
これによれば、検証部３４は、一連の通信の再現時におけるホストコンピューター１０の出力の態様と、プリンタードライバー１１の機能が正常に実行された場合に想定されるホストコンピューター１０の出力の態様と、の比較結果を通して、これらの相違を検出することにより、プリンタードライバー１１の設計ミス、プログラミングのミスを効率よく検出可能である。
【００５４】
また、本実施形態では、検証部３４は、再現部３３による一連の通信の再現時にホストコンピューター１０が特定のコマンドの入力に対して対応するコマンドを出力したときの経過時間に基づいて、ホストコンピューター１０のプリンタードライバー実行部２４の動作が正常か否かを検証する。
ここで、再現部３３による一連の通信の再現時に、ホストコンピューター１０のプリンタードライバー実行部２４が特定のコマンドの入力に対して対応するコマンドを出力したときの経過時間が、想定されている時間よりも長い場合は、何らかの異常に起因して、出力に係る処理に遅延が生じている可能性がある。
これを踏まえ、上記によれば、検証部３４は、再現部３３による一連の通信の再現時にホストコンピューター１０が特定のコマンドの入力に対して対応するコマンドを出力したときの経過時間に基づいて、プリンタードライバー実行部２４の動作が正常か否かを検証するため、上述したような異常が発生している可能性を適切に検出できる。
【００５５】
また、本実施形態では、検証部３４は、再現部３３による一連の通信の再現時にホストコンピューター１０が特定のコマンドの入力に対して出力した対応するコマンドの内容に基づいて、ホストコンピューター１０のプリンタードライバー実行部２４の動作が正常か否かを検証する。
ここで、再現部３３による一連の通信の再現時に、ホストコンピューター１０が自身に対する特定のコマンドの入力に対して対応するコマンドを出力したときの、そのコマンドの内容が、想定されているコマンドの内容と異なっている場合は、何らかの異常に起因して、誤ったコマンドが出力されている可能性がある。
これを踏まえ、上記によれば、検証部３４は、再現部３３による一連の通信の再現時にホストコンピューター１０が自身に対する特定のコマンドの入力に対して出力したコマンドの内容に基づいて、ホストコンピューター１０のプリンタードライバー実行部２４の動作が正常か否かを検証するため、上述したような異常が発生している可能性を適切に検出できる。
【００５６】
なお、上述した実施の形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形および応用が可能である。
例えば、上述した実施形態では、プリンター１５は、サーマルプリンターであったが、プリンター１５はサーマルプリンターに限らず、インクジェットプリンターやドットインパクトプリンター等であってもよい。すなわち、本発明は、プリンターの種類に限らず、プリンターを制御するために開発されたプログラムのテストを行う際に広く適用可能である。
【符号の説明】
【００５７】
１…検査システム、１０…ホストコンピューター（制御装置）、１１…プリンタードライバー（ソフトウェア、プログラム）、１４…検査用端末（電子機器）、１５…プリンター（記録装置）、２４…プリンタードライバー実行部、２６…端末側制御部（制御部）、３２…入出力履歴記憶部、３３…再現部、３４…検証部。
【図１】
2012133437.tif 000003
【図２】
2012133437.tif 000004
【図３】
2012133437.tif 000005
【図４】
2012133437.tif 000006
【図５】
2012133437.tif 000007
【図６】
2012133437.tif 000008