(57)【要約】【課題】従来、ハードウェアのドライブプログラムを開発または修正する方法であるためテスト環境構築の技術的な難易度が高く、コンピュータ資源の熟練者やＯＳカーネル内部を熟知していることが求められ、容易にテスト環境に求められる要件を満たすことができなかった。【解決手段】被テストプログラムの動作検証を行う際、被テストプログラムによるコンピュータハードウェア資源（実Ｉ／Ｏ機器６２）へのアクセスに対する各種応答処理の妥当性を検証する装置であって、コンピュータハードウェア資源へのアクセスをサービスするインタフェースからの正常な復帰値を、予め与えられたパラメータに基づいた任意の応答値と差し替える機能により、各種の疑似応答を発生させる疑似ドライバ２３を備え、疑似ドライバ２３を介し任意の応答処理に対する動作検証を行う。【選択図】図１
2009104490.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ上で動作する被テストプログラムの動作検証を行う際、前記被テストプログラムによるコンピュータハードウェア資源へのアクセスに対する各種応答処理の妥当性を検証するプログラムのテスト装置であって、
コンピュータハードウェア資源へのアクセスをサービスするインタフェースからの正常な復帰値を、予め与えられたパラメータに基づいた任意の応答値と差し替える機能により、各種の疑似応答を発生させる疑似ドライバを備え、
前記疑似ドライバを介し任意の応答処理に対する動作検証を行う機能を備えているプログラムのテスト装置。
【請求項２】
前記疑似ドライバは、前記コンピュータハードウェア資源へのアクセスをサービスするインタフェースからの正常な応答値を、予め与えられたスケジュールに基づいた任意の時間後に、任意の応答値と差し替える機能を有し、
該疑似ドライバを介し、任意の疑似応答処理に対する動作検証を行う機能を備えている請求項１記載のプログラムのテスト装置。
【請求項３】
前記疑似ドライバは、前記コンピュータハードウェア資源へのアクセスをサービスするインタフェースからの正常な応答値を、予め与えられた、アクセス条件や応答値の組み合わせに対してスケジュールしておき、そのスケジュールに基づいた任意の応答値を返すことで、各種の疑似応答を発生させる機能を有し、
該疑似ドライバを介し、任意の疑似応答処理に対する動作検証を行う請求項１記載のプログラムのテスト装置。
【請求項４】
前記疑似ドライバは、前記コンピュータハードウェア資源へのアクセスをサービスするインタフェースからの正常な復帰値を、予め与えられた、アクセス条件や応答値の組み合わせに対してスケジュールしておき、そのスケジュールに基づいて任意の応答値を返す被テストプログラムのテスト機能を備え、
該疑似ドライバの機能により、返した応答値を記録し、記録された応答値からテストの実施範囲を把握できるようにした請求項１記載のプログラムのテスト装置。
【請求項５】
前記疑似ドライバは、動作を実Ｉ／Ｏに実行させることにより、実環境と同じデータに対する処理のテストを行い、かつ、応答値は予め与えられた、アクセス条件や応答値の組み合わせのスケジュールされた任意の疑似応答値を返す機能を有することで、前記動作検証を行う請求項１記載のプログラムのテスト装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ上で動作する被テストプログラムの動作検証を行う際、前記被テストプログラムによるコンピュータハードウェア資源へのアクセスに対する各種応答処理の妥当性を検証するプログラムのテスト装置に関する。
【０００２】
本発明は、特に、コンピュータハードウェア資源に対するアクセス異常応答を含む各種の応答処理に関して動作検証する際に使用する、疑似応答（障害を含む）発生プログラムで構成された疑似ドライバを備え、該疑似ドライバを使用してプログラムのテストを行うプログラムのテスト装置に関する。
【背景技術】
【０００３】
(1) ：従来例１
以下、従来実施されていたテスト方法を従来例１として説明する。
【０００４】
従来例１では、次のようなテスト方法が実施されていた。即ち、被テストプログラムのコンピュータハードウェア資源へのアクセスで異常応答を含む各種の応答が発生した場合の処理の妥当性確認では、実際のハードウェアに物理的な方法で異常が発生するように細工をしたテスト用Ｉ／Ｏ装置を用いたり、コンピュータハードウェア資源アクセスをサービスするインタフェースから呼ばれるハードウェアのドライバプログラムを開発するか、または修正し、疑似的に障害応答を含む各種の応答を組み込むことで、異常応答を含む各種の応答を発生させていた。
【０００５】
(2) ：従来例２
以下、特許文献１を従来例２として説明する。従来例２には次のような内容が記載されている。
【０００６】
(a) ：「応用ソフトの入出力処理の評価テストを行うことができる計算機システム及びデバイス入出力シミュレータを提供する。」・・・要約の欄を参照
(b) ：「ＡＰからの入出力要求は、システムコール層により入出力のパラメータがチェックされ、異常がなければデバイスドライバ層３に送られる。デバイスドライバ層３では、送られてきたデータに基づいて先ずステップＳ１で模擬入出力を行うか否かを判断する。模擬の入出力をしないのであれば、ステップＳ２に移行して実デバイスにデータを送って処理する。
【０００７】
一方、模擬入出力処理を行う場合は、ステップＳ３に移行して、模擬入出力を行って、デバイス入出力にかえることができる。また、ステップＳ４では、ＡＰから送られてきた入出力要求が処理の履歴情報を記録するトレース処理を必要としているか否かを判断し、必要としていれば、ステップＳ５に移行してトレースを行う。」・・・要約の欄を参照
(3) ：従来例３
以下、特許文献２を従来例３として説明する。従来例３には次のような内容が記載されている。
【０００８】
(a) ：「ＣＰＵと入出力装置間の複雑な連携動作の検証を容易かつ迅速に行うことが可能な入出力シミュレーション技術を提供する。」・・・要約の欄を参照
(b) ：「たとえばマイクロコンピュータなどのソフトウェアの入出力シミュレーションにおいて、入出力命令や割込み動作の結果を時系列的な表現で図示するので、操作者などがシミュレーション結果を迅速かつ的確に把握することが可能となり、ＣＰＵと入出力装置との間などにおける複雑な連携動作を容易に検証することが可能になる。」・・・段落番号［００３１］参照
(4) ：従来例４
以下、特許文献３を従来例４として説明する。従来例４には次のような内容が記載されている。
【０００９】
(a) ：「入出力装置部分の動作も擬似し、かつ、その擬似動作を被試験プログラム実行の中断・再開動作等と同期させることにより、Ｉ／Ｏハンドラ等の被試験プログラムと入出力装置との結合試験を容易に実現することを目的とし、」・・・（公報第２頁左上欄第８行目〜第２頁左上欄第１２行目参照）
【特許文献１】特開平１０−１３３９１４号公報
【特許文献２】特開平５−２２４９９４号公報
【特許文献３】特開平１−７６２３６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
(1) ：従来例１のテストでは、高度なスキルを持ったテスト実施者が、ハードウェアに手を加えたり、ドライバプログラムを開発又は、ドライバプログラムに手を入れる等を実施しており、テストの信頼性に問題があった。
【００１１】
(2) ：一般に、従来例１のようなプログラムのテストでは、テスト環境の構築内容により、被テストプログラムの問題を検出できる精度（テストカバレッジ）が左右され、また、問題発生時の原因究明の容易さに大きく影響する。このため、問題の検出精度やテストのカバー範囲を明確にしたテストや、問題の原因特定に主眼を置いたテスト環境を構築する場合、テスト環境やテスト方法として以下の事項が求められる。
【００１２】
(a) ：テスト環境には同一条件の再現性があること。
【００１３】
(b) ：テスト環境の状態を長時間、安定させることができること。
【００１４】
(c) ：テスト環境は担当者のスキルに依存せず、誰でも均一に構築できること。
【００１５】
(d) ：被テストプログラムの応答処理の種類に応じ、網羅的にテストができること。
【００１６】
(e) ：テストでは、実際と同等なＩ／Ｏの応答タイミング絡みのテストができること。      
【００１７】
(f) ：テスト環境では、巨大データ（数百ＭＢ超）及び、実Ｉ／Ｏの制御データ等の実際と同様なテストができること。
【００１８】
ところが、前記従来例１のテスト方法では、実際のハードウェアを細工したり、コンピュータハードウェア資源へのアクセスをサービスするアプリケーションインタフェースから呼ばれる、ハードウェアのドライブプログラムを開発または修正する方法であるため、テスト環境構築の技術的な難易度が高く、コンピュータ資源の熟練者や、ＯＳカーネル内部を熟知していることが求められ、容易にテスト環境に求められる要件を満たすことができなかった。
【００１９】
(3) ：従来例２では、被テストプログラムの入出力処理の評価を行うことができる計算機システム及びデバイス入出力シミュレータによる評価手法について記載されている。しかし、従来例２は、実Ｉ／Ｏをシミュレータによる疑似Ｉ／Ｏに置き換える技術で、実Ｉ／Ｏを使用しない環境でのテストを効果的に行う方法に関するものであり、疑似Ｉ／Ｏで実現している機能のみとしては、従来のシミュレータの域を出るような独自技術ではなく、従来例１で課題となっていた事項とは異なる課題を解決する技術であり、本発明の参考程度の内容である。
【００２０】
(4) ：従来例３は、ＣＰＵと入出力装置間の複雑な連携動作の検証を容易かつ迅速に行うことが可能な入出力シミュレーション技術を提供するものであり、本発明の参考程度の内容である。
【００２１】
(5) ：従来例４は、入出力装置部分の動作も擬似し、かつ、その擬似動作を被試験プログラム実行の中断・再開動作等と同期させることにより、Ｉ／Ｏハンドラ等の被試験プログラムと入出力装置との結合試験を容易に実現するものであり、本発明の参考程度の内容である。
【００２２】
本発明は従来の課題を解決するためになされたものであり、各種の疑似応答発生機能を有するコンピュータハードウェア資源アクセスプログラムで構成された疑似ドライバを介し、任意の応答処理に対する動作検証が行えるようにすることを目的としている。
【課題を解決するための手段】
【００２３】
本発明は前記の目的を達成するため、次のように構成した。
【００２４】
即ち、コンピュータ上で動作する被テストプログラムの動作検証を行う際、前記被テストプログラムによるコンピュータハードウェア資源へのアクセスに対する各種応答処理の妥当性を検証するプログラムのテスト装置であって、コンピュータハードウェア資源へのアクセスをサービスするインタフェースからの正常な復帰値を、予め与えられたパラメータに基づいた任意の応答値と差し替える機能により、各種の疑似応答を発生させる疑似ドライバを備え、前記疑似ドライバを介し任意の応答処理に対する動作検証を行う機能を備えている。
【００２５】
（作用）
図１は本発明の原理説明図である。以下、図１を参照しながら前記構成に基づく本発明の作用を説明する。
【００２６】
疑似ドライバ２３は、ＯＳカーネル２１とドライバ層の実Ｉ／Ｏドライバ６０との間に位置し、ＯＳカーネル２１のフック機能として登録することで、実Ｉ／Ｏドライバ６０に処理が渡される直前に疑似ドライバ２３に処理が渡されるようになる（その様に登録する）。
【００２７】
このフック機能により、アプリ層（被テストプログラム）からのＩ／Ｏ処理要求は、実Ｉ／Ｏドライバ６０に渡る直前で疑似ドライバ２３に渡される（図の点線のルートＲ１、Ｒ２ではなく、実線のルートＲ３、Ｒ４を通る）ため、以後の処理は疑似ドライバ２３の処理に従うことになる。
【００２８】
即ち、図１中Ｒ１及びＲ２の点線で示したルートは、疑似ドライバ２３をフックしない場合の処理ルートであり、Ｒ３及びＲ４の実線で示したルートは、疑似ドライバ２３をフックした場合の処理ルートになる。ここで、疑似ドライバ２３は、ドライバ層からの応答に対して、異常応答を含む各種応答に変換してアプリ層に応答する。被テストプログラムは、疑似ドライバ２３からの異常応答を含む各種応答に基づいた処理を行う。
【００２９】
なお、疑似ドライバ２３の振る舞いとして、どの様な応答をするかは、パラメータにより設定することが可能である。また、疑似ドライバ２３は、アプリ層から見た場合は通常のドライバ層に見えるので、被テストプログラムには何ら手を加える必要が無いので、通常の製品版でのテストが可能となる。
【００３０】
ここで、基本的にＩ／Ｏ処理は実Ｉ／Ｏを使用し、応答値またはデータのみをパラメータによって差し替える方式であり、特別なＩ／Ｏドライバやシミュレータプログラムを開発しなくて済む様にしている。
【００３１】
従って、コンピュータハードウェア資源（ハード層の実Ｉ／Ｏ機器６２）へのアクセスをサービスするインタフェースからの正常な復帰値を、予め与えられたパラメータに基づいた任意の応答値と差し替える機能により、各種の疑似応答を発生させる疑似ドライバ２３を備え、疑似ドライバ２３を介し任意の応答処理に対する動作検証（テスト）を行う。このようにして、各種の疑似応答発生機能を有するコンピュータハードウェア資源アクセスプログラムで構成された疑似ドライバ２３を介し、任意の応答処理に対する動作検証を行なえる。
【発明の効果】
【００３２】
本発明は請求項１乃至５では、次のような効果がある。
【００３３】
(1) ：テスト環境には同一条件の再現性がある。即ち、疑似ドライバは操作員が設定した応答テーブルのパラメータに基づいた動作をするため、同じ環境下で被テストプログラムと同じ応答テーブルでテストを実施することで、同じテストの再現性は容易である。
【００３４】
(2) ：テスト環境の状態を長時間安定させることができる。即ち、テスト開始後は操作員の介入はなく、被テストプログラムと応答テーブルのみでテストが進むため、リピートの設定等により繰り返し実行することで、同じ状態で安定して維持できる。
【００３５】
(3) ：テストの実施は担当者のスキルに依存せず、誰でも均一な環境が構築できる。即ち、疑似ドライバの実施内容は、ＯＳカーネルや、Ｉ／Ｏドライバの開発の様な高い専門知識やスキルを要求するものでは無く、条件判定と変換処理を行う、通常のアプリケーションを開発できる技術で実現できる。また、テストでは、応答テーブルを使用し、ほぼ自動で行えるため、だれでも容易に同じ内容のテストができる。なお、テスト内容は応答テーブルのパラメータ設定のみであり、スキル依存は無い。
【００３６】
(4) ：被テストプログラムの応答処理の種類に応じ、網羅的にテストができる。即ち、テストの網羅性は、応答テーブルのパラメータの組み合わせに依存している。応答テーブルのパラメータ設定の組み合わせとして、被テストプログラムの処理ルートの組み合わせに基づいたパラメータを網羅的に抜き出すことができる。
【００３７】
また、アクセステーブルに処理の流れが記録され、かつ、応答テーブルに差し替え実施の記録があるため、テスト実施者にこれらの記録を分析することで、実際にどこまでのルートが網羅されたかを容易に把握できる。この結果を基に、網羅されていない部分を応答テーブルに追加して行くことで、最終的に、期待した網羅性を達成する応答テーブルを作り上げることができる。
【００３８】
(5) ：テストでは、実際と同等なＩ／Ｏの応答タイミング絡みのテストができる。即ち、Ｉ／Ｏ動作は、実Ｉ／Ｏを用い、応答値のみを差し替えることに特徴があり、被テストプログラムが実際に動作、運用する環境と同様なＩ／Ｏの応答タイミングでのテストが実施できる。このことが、シミュレータを用いる方法と最も異なり、かつ、優れている点である。
【００３９】
(6) ：テスト環境では、巨大データ（数百ＭＢ超）および、実Ｉ／Ｏの制御データ等の実際と同様なテストができる。即ち、Ｉ／Ｏ動作は実Ｉ／Ｏを用い、応答値のみを差替えることに特徴があり、入出力データ及び制御データは実Ｉ／Ｏの結果を使用するため、被テストプログラムが実際に動作、運用する環境と同様なデータでのテストが実施できる。このことが、シミュレータを用いる方法と最も異なり、かつ、優れている点である。
【００４０】
(7) ：タイミング依存を拡張したテストができる。即ち、応答テーブルの「遅延時間範囲」の機能は、通常のＩ／Ｏ要求（又はＩ／Ｏ処理完了の応答）を任意の時間遅延させることができる。この機能により、例えばマルチタスクで、各タスクのＩ／Ｏ制御を遅延させ、タスクの実行順序を故意に入れ換えることが可能である。このことは、タスクの実行順序とＩ／Ｏ処理の順序に依存関係が有るような場合、例えば、タスクＡとタスクＢにおいて、タスクＡのＩ／Ｏ処理完了後にタスクＢのＩ／Ｏ処理をしなければならない場合、通常、タスク間でセマフォを設定し、明らかに排他制御させる必要があるが、プログラム作成時にセマフォの設定を誤った場合、タスクの実行順序が補償されなくなるため、通常であればテスト時に矛盾を検出するが、タイミング依存であり、タスク間の順序が期待した通りである場合もあり、その場合はテストで見つからないこともある。このようなプログラムの誤りに対して、Ｉ／Ｏ処理の処理タイミングを故意にずらすことで、順序性（タイミング依存）のテストができる。
【発明を実施するための最良の形態】
【００４１】
§１：概要説明
図１は本発明の原理説明図である。図１において、２１はＯＳカーネル、２３は疑似ドライバ、６０はドライバ層（実Ｉ／Ｏドライバ）、６１はＩ／Ｏポート、６２はハード層（実Ｉ／Ｏ機器）を示す。また、Ｒ１、Ｒ２は、ＯＳカーネル２１のフック機能により疑似ドライバ２３がフックされない場合（通常の処理）のアクセスと応答の各ルートを示し、Ｒ３、Ｒ４はＯＳカーネル２１のフック機能により疑似ドライバ２３がフックされた場合のアクセスと応答の各ルートを示す。
【００４２】
(1) ：コンピュータ上で動作する被テストプログラムの動作検証を行う際、前記被テストプログラムによるコンピュータハードウェア資源（ハード層の実Ｉ／Ｏ機器６２）へのアクセスに対する各種応答処理の妥当性を検証するプログラムのテスト装置であって、コンピュータハードウェア資源へのアクセスをサービスするインタフェースからの正常な復帰値を、予め与えられたパラメータに基づいた任意の応答値と差し替える機能により、各種の疑似応答を発生させる疑似ドライバ２３を備え、疑似ドライバ２３を介し任意の応答処理に対する動作検証を行う機能を備えている。
【００４３】
(2) ：前記(1) のプログラムのテスト装置において、疑似ドライバ２３は、コンピュータハードウェア資源へのアクセスをサービスするインタフェースからの正常な応答値を、予め与えられたスケジュールに基づいた任意の時間後に、任意の応答値と差し替える機能を有し、該疑似ドライバ２３を介し、任意の疑似応答処理に対する動作検証を行う機能を備えている。
【００４４】
(3) ：前記(1) のプログラムのテスト装置において、疑似ドライバ２３は、コンピュータハードウェア資源へのアクセスをサービスするインタフェースからの正常な応答値を、予め与えられた、アクセス条件や応答値の組み合わせに対してスケジュールしておき、そのスケジュールに基づいた任意の応答値を返すことで、各種の疑似応答を発生させる機能を有し、該疑似ドライバ２３を介し、任意の疑似応答処理に対する動作検証を行う。
【００４５】
(4) ：前記(1) のプログラムのテスト装置において、疑似ドライバ２３は、コンピュータハードウェア資源へのアクセスをサービスするインタフェースからの正常な復帰値を、予め与えられた、アクセス条件や応答値の組み合わせに対してスケジュールしておき、そのスケジュールに基づいて任意の応答値を返す被テストプログラムのテスト機能を備え、該疑似ドライバの機能により、返した応答値を記録し、記録された応答値からテストの実施範囲を把握できるようにした。
【００４６】
(5) ：前記(1) のプログラムのテスト装置において、疑似ドライバ２３は、動作を実Ｉ／Ｏに実行させることにより、実環境と同じデータに対する処理のテストを行い、かつ、応答値は予め与えられた、アクセス条件や応答値の組み合わせのスケジュールされた任意の疑似応答値を返す機能を有することで、動作検証を行う。
【００４７】
§２：プログラムのテスト装置を構成するコンピュータの構成の説明
図２は装置の全体構成図である。以下、図２に基づいて、プログラムのテスト装置を構成するコンピュータの構成を説明する。
【００４８】
前記プログラムのテスト装置（例えば、図１参照）は、図２に示したコンピュータにより実現する。該コンピュータは、パーソナルコンピュータ、ワークステーションなど、任意のコンピュータにより構成する（以下、プログラムのテスト装置を構成するコンピュータを、単に「コンピュータ」とも記す）。
【００４９】
図２に示したように、プログラムのテスト装置を構成するコンピュータ（又はコンピュータシステム）は、コンピュータ本体１と、該コンピュータ本体１に接続された入力装置２と、表示装置３と、その他のＩ／Ｏ機器（例えば、ファイル装置）６２等で構成されている。そして、前記コンピュータ本体１には、ＣＰＵ１１（プロセッサ）と、メモリ装置１５と、メモリ制御部１２と、Ｉ／Ｏ制御部１３と、通信制御部１４等が設けてある。
【００５０】
更に、メモリ装置１５には、ＯＳカーネル２１と、被テストプログラム２２と、疑似ドライバ２３と、該疑似ドライバ２３が使用するアクセステーブル５１及び応答テーブル５２（これらのテーブル５１、５２は図３参照）と、該疑似ドライバ２３が使用する疑似ドライバ設定ユーティリティ５３と、Ｉ／Ｏ機器６２等の各種Ｉ／Ｏ機器を駆動する実Ｉ／Ｏドライバ６０（以下、単に「Ｉ／Ｏドライバ６０」とも記す）等が設けてある。前記各部の詳細な説明は次の通りである。
【００５１】
入力装置２は、当該コンピュータ（又はコンピュータシステム）に対し情報の入力を行うものである。また、該入力装置２は、操作員が操作することで、コンピュータやアプリケーションプログラムとの会話に使用する。表示装置３は、当該コンピュータ（又はコンピュータシステム）において、各種の情報（又はデータ）を表示するものである。
【００５２】
ハード層のＩ／Ｏ機器６２（各種のＩ／Ｏ機器含む）は、ファイル装置（例えば、ハードディスク装置）や通信制御装置等も含まれる。ＣＰＵ１１は当該コンピュータを構成するプロセッサである。メモリ制御部１２は、メモリ装置１５等のメモリの制御を行うものである。Ｉ／Ｏ制御部１３は、外部の入出力装置であるＩ／Ｏ機器６２の制御を行うものである。通信制御部１４は、通信機器の制御を行うものである。
【００５３】
メモリ装置１５は、各種のデータ（プログラムも含む）を記憶しておくものである。ＯＳカーネル２１は、メモリ装置１５に格納された当該コンピュータを制御するＯＳカーネルである。被テストプログラム２２は、メモリ装置１５に格納された被テストプログラムである。疑似ドライバ２３はメモリ装置１５に格納された疑似ドライバである。
【００５４】
実Ｉ／Ｏドライバ６０は、メモリ装置１５に格納された各種の実Ｉ／Ｏドライバである。アクセステーブル５１及び応答テーブル５２は、メモリ装置１５に格納された疑似ドライバ２３が参照したり更新を行うアクセステーブル及び動作パラメータの書かれた応答テーブル（図３参照）である。疑似ドライバ設定ユーティリティ５３は、操作員との会話形式により、疑似ドライバ２３に各種設定を行うユーティリティである。
【００５５】
§３：疑似ドライバの詳細な構成の説明
図３は疑似ドライバの説明図である。以下、図３に基づいて、疑似ドライバの構成を詳細に説明する。
【００５６】
前記疑似ドライバ２３は、疑似ドライバ制御部３１と、アクセス解析部３２と、スケジューラ３３と、応答生成部３４と、応答解析部３５等を備えると共に、メモリ共通域５０（図２のメモリ装置１５の一部の領域）にはアクセステーブル５１と、応答テーブル５２を備えている。
【００５７】
また、スケジューラ３３には、設定解析部３６と、異常応答部３７と、正常応答部３８と、ノットレディ部３９と、タイムアウト部４０と、センスデータ生成部４１と、異常データ生成部４２を接続している。前記各部の機能は次の通りである。
【００５８】
疑似ドライバ制御部３１は、疑似ドライバ全体の制御を行うものである。アクセス解析部３２は、アプリ層からのアクセス内容（Ｉ／Ｏ要求）を解析するものである。スケジューラ３３は、テスト実施者の設定に従い、ドライバ層からの応答を変換するスケジュールを行うものである。
【００５９】
応答生成部３４は、スケジューラ３３からの設定に従い、ドライバ層の結果を変換し、アプリ層に応答を返す。応答解析部３５は、ドライバ層からの応答を解析し、結果をスケジューラに通知するものである。設定解析部３６は、テスト実施者の設定内容を解析し、スケジューラに通知するものである。
【００６０】
異常応答部３７は、テスト実施者の設定に従い、異常応答を生成する。正常応答部３８は、テスト実施者の設定に従い、正常応答を生成するものである。ノットレディ部３９は、テスト実施者の設定に従い、ノットレディを生成するものである。タイムアウト部４０は、テスト実施者の設定に従い、タイムアウトを生成するものである。
【００６１】
センスデータ生成部４１は、テスト実施者の設定に従い、センスデータを生成するものである。異常データ生成部４２は、テスト実施者の設定に従い、読み込みデータに異常を生成するものである。アクセステーブル５１は、アプリ層からのアクセス内容（Ｉ／Ｏ要求）を解析した結果を格納したテーブルで、アクセス解析部３２にて作成されるものである。
【００６２】
応答テーブル５２は、テスト実施者の設定により、アプリ層からのアクセス内容（Ｉ／Ｏ要求）と、その応答内容を結び付けた情報を格納したテーブルで、スケジューラにより作成されるものである。なお、アクセステーブル５１及び応答テーブル５２は、疑似ドライバ２３及び疑似ドライバ設定ユーティリティ５３（図２参照）から参照できる様、メモリ共通域５０に置かれるものとする。
【００６３】
§４：テスト方法の概念の説明
図４はテスト方法の概念説明図である。以下、図４に基づいて、テスト方法の概念を説明する。
【００６４】
以下に説明する例のテスト方法では、被テストプログラムの走行環境にて、被テストプログラムがアクセスしたコンピュータハードウェア資源からの通常応答に対し、疑似ドライバ２３が変換を行い疑似応答を返すことで、被テストプログラムの応答処理ルートにおいて、異常応答を含む各種応答を検証しテストするものである。
【００６５】
図４に示したように、アプリ層にある被テストプログラムは、ファイルやネットワーク等のコンピュータハードウェア資源（実Ｉ／Ｏ機器６２）をアクセスする際に、コンピュータハードウェア資源アクセスをサービスするインタフェース（ＡＰＩ）を介して、ドライバ層の実Ｉ／Ｏドライバ６０を使用することになるが、ここで、ドライバ層の実Ｉ／Ｏドライバ６０とアプリ層（プログラムで構成されたもの）の間に、いわゆるミドル層として前記疑似ドライバ２３（プログラムで構成されたもの）を配置する。
【００６６】
通常、アプリ層（被テストプログラム）からのＩ／Ｏ処理は、アプリケーションインタフェース（以降、「ＡＰＩ」と記す）によりシステムコール等としてＯＳカーネル２１に依頼され、ＯＳカーネル２１が実Ｉ／Ｏドライバ６０に処理を渡すことで実現されている。
【００６７】
疑似ドライバ２３は、ＯＳカーネル２１と実Ｉ／Ｏドライバ６０の間に位置し、ＯＳカーネル２１のフック機能として登録することで、実Ｉ／Ｏドライバ６０に処理が渡される直前に疑似ドライバ２３に処理が渡されるようになる（その様に登録する）。
【００６８】
このフック機能により、アプリ層（被テストプログラム）からのＩ／Ｏ処理要求は、実Ｉ／Ｏドライバ６０に渡る直前で疑似ドライバ２３に渡される（図の点線のルートＲ１、Ｒ２ではなく、実線のルートＲ３、Ｒ４を通る）ため、以後の処理は疑似ドライバ２３の処理に従うことになる。
【００６９】
即ち、図４中Ｒ１及びＲ２の点線で示したルートは、疑似ドライバ２３をフックしない場合の処理ルートであり、Ｒ３及びＲ４の実線で示したルートは、疑似ドライバ２３をフックした場合の処理ルートになる。ここで、疑似ドライバ２３は、ドライバ層からの応答に対して、異常応答を含む各種応答に変換してアプリ層に応答する。被テストプログラムは、疑似ドライバ２３からの異常応答を含む各種応答に基づいた処理を行う。
【００７０】
なお、疑似ドライバ２３の振る舞いとして、どの様な応答をするかは、パラメータにより設定することが可能である。また、疑似ドライバ２３は、アプリ層から見た場合は通常のドライバ層に見えるので、被テストプログラムには何ら手を加える必要が無いので、通常の製品版でのテストが可能となる。
【００７１】
ここで、基本的にＩ／Ｏ処理は実Ｉ／Ｏを使用し、応答値またはデータのみをパラメータによって差し替える方式であり、特別なＩ／Ｏドライバやシミュレータプログラムを開発しなくて済む様にしている。
【００７２】
§５：アクセステーブル例及び応答テーブル例の説明
図５はアクセステーブル例及び応答テーブル例である。以下、図５に基づいて、アクセステーブル例及び応答テーブル例を説明する。
【００７３】
(1) ：アクセステーブル例
図５のＡ図に示したアクセステーブル例において、アクセス内容（Ｉ／Ｏ要求）と、データ量（Ｂｙｔｅ）、差し替え実施項番（記録）の各項目が設けてあり、各項目毎にデータが格納されるようになっている。
【００７４】
前記アクセス内容（Ｉ／Ｏ要求）の項目は、被テストプログラムがドライバに要求したアクセス内容（Ｉ／Ｏ要求）の記録である。前記データ量（Ｂｙｔｅ）の項目は、被テストプログラムがドライバに要求したデータ量の記録である。前記差し替え実施項番（記録）の項目は、被テストプログラムのアクセス条件が、応答テーブルの条件に一致し、応答値を差し替えた場合の、応答テーブル上の項番の記録である。なお、差し替え無かった場合は「−」とする。
【００７５】
(2) ：応答テーブル例
図５のＢ図に示した応答テーブル例において、項番と、条件と、差し替え応答値と、差し替え実施記録と、ワンショットと、遅延時間範囲（ｍｓ）の各項目が設けてあり、各項目毎にデータが格納されるようになっている。この場合、前記条件の項目には、アクセス内容（Ｉ／Ｏ要求）と、データ量と、元応答値との各項目別の条件に分かれている。
【００７６】
前記アクセス内容（Ｉ／Ｏ要求）の項目は、ドライバへのアクセスで、差し替え対象とするアクセスの種類を、テスト実施者が設定するものである。前記条件の項目は、ドライバの応答を差し替える条件を、テスト実施者により設定するものである。前記差し替え応答値の項目は、応答値を差し替える条件が一致した場合の、差し替え値を、テスト実施者が設定するものである。
【００７７】
前記差し替え実施記録の項目は、応答値の差し替えが発生した場合に記録されるものである。前記ワンショットは、応答値の差し替えが発生した場合、最初の１回のみ差し替えるか、以後も繰り返し差替えるかを、テスト実施者が設定するものである。前記遅延時間範囲（ｍｓ）の項目は、ドライバからの応答値を被テストプログラムに通知するときの、応答遅延時間を、テスト実施者が設定するものである。なお、直ぐに返す場合は「０」を、全く返さない場合は「−」を設定する。
【００７８】
§６：処理（又は動作）等の詳細な説明
１．疑似ドライバの処理（又は動作）
以下、図３に基づいて、疑似ドライバの処理（又は動作）を説明する。
【００７９】
先ず、疑似ドライバ制御部３１は、疑似ドライバ２３を構成している各モジュールの起動及び停止や、作業領域や制御テーブルの初期化やテスト終了時の返却、テスト実施者との会話機能を行うのみで、テスト実施中は動作し続けている。アクセス解析部３２は、アプリ層からハードウェアのアクセスが行われると、そのアクセス内容（Ｉ／Ｏ要求）を解析し、アクセステーブル５１を作成し、スケジューラ３３に通知する。
【００８０】
スケジューラ３３は、テスト実施者の設定により、アプリ層からのアクセス内容（Ｉ／Ｏ要求）と、その内容の結び付けを行い、応答テーブル５２を作成する。ドライバ層からの応答があると、応答解析部３５からの応答値をもらい、応答テーブル５２に従った応答値に変換し、応答生成部３４に通知する。
【００８１】
また、応答テーブル５２に従い、異常応答部３７、正常応答部３８、ノットレディ部３９、タイムアウト部４０、センスデータ生成部４１、異常データ生成部４２の各モジュールを起動して、応答値を生成する制御を行う。
【００８２】
応答生成部３４はスケジューラ３３からの応答値の設定に従い、生成された結果をアプリ層に応答する。応答解析部３５は、ドライバ層からの応答を解析し、結果をスケジューラ３３に通知する。設定解析部３６は、テスト実施者からの応答値に関する設定内容を解析し、スケジューラ３３に通知する。
【００８３】
２．アプリ層からのアクセスに対してテスト実施者の設定に従った応答値が得られるまでの動作説明
以下、図３を参照しながら、アプリ層からのアクセスに対してテスト実施者の設定に従った応答値が得られるまでの動作を説明する。
【００８４】
(a) ：テスト実施者は、テスト開始時点で、応答テーブル５２を作成する操作を行う。アプリ層からの応答（Ｉ／Ｏ要求）に対して、アクセス終了後に返すべき応答値を決定し、テーブル化する。
【００８５】
(b) ：次に、アプリを起動してテストを開始する。
【００８６】
(c) ：アプリが起動されると、アプリ層からドライバ（実Ｉ／Ｏドライバ６０）を介してハードウェアをアクセスする要求が出るが、疑似ドライバ２３のアクセス解析部３２によってアクセスの内容が解析され、アクセステーブル５１に格納されると同時にスケジューラ３３に通知される。
【００８７】
(d) ：スケジューラ３３は、アクセステーブル５１と、先に作成された応答テーブル５２を索引し、指定された応答値を準備する。
【００８８】
(e) ：ハードウェアの動作が完了し、ドライバ層からの応答値が応答解析部３５に返って来ると、スケジューラ３３に通知される。
【００８９】
(f) ：スケジューラ３３は、応答解析部３５からの応答値に問題がなければ、先に準備した応答値に置き換えて応答生成部３４に通知する。
【００９０】
(g) ：応答生成部３４は、スケジューラ３３から指示された応答値をアプリ層に返す。以上の(a) 乃至(g) までの動作により、アプリ層からのアクセスに対してテスト実施者の設定に従った応答値が得られる。
【００９１】
ここで、予めテスト実施者により、被テストプログラムの動作検証に必要な、応答値として、障害時にしか発生し得ないような応答値を用意することで、障害時のテストが可能になる。
【００９２】
３．処理（又は動作）時における遅延時間範囲の説明
図６は遅延処理例のタイムチャートである。図６において、Ａは被テストプログラムのＩ／Ｏ要求とタイムアウト監視、Ｂは疑似ドライバの遅延時間処理、ＣはＩ／Ｏドライバ、ＤはＩ／Ｏの各タイムチャートである。以下、図６を参照しながら、動作時における遅延時間範囲について説明する。なお、以下の説明では、(1) 乃至(9) は図６の数字と同じである。
【００９３】
以下に説明する機能は、Ｉ／Ｏ機器の処理完了のタイミングによる被テストプログラムへの影響をテストする目的の機能であり、主に、Ｉ／Ｏ応答が期待する完了時間に近い場合から、異常に長い場合（例えば、数時間）までを想定したケースにおいて問題なく機能するかを確認するものである。
【００９４】
一般に、被テストプログラムのタイムアウト監視処理により異常終了するが、マルチタスク制御型のアプリケーションでは、次のＩ／Ｏ処理要求が走り出してしまい、処理結果の順序性が保てなくなる等の重大問題となる場合がある（このテストに効果がある）。
【００９５】
(1) ：被テストプログラム２２（アプリ層）は、システムコールにてＩ／Ｏ要求を出すと共に、Ｉ／Ｏ処理完了のタイムアウト監視に入る。
【００９６】
(2) ：疑似ドライバ２３は、被テストプログラム２２からのＩ／Ｏ要求をフックし、応答テーブル５２に従い実Ｉ／Ｏドライバ６０にＩ／Ｏ要求を渡す。
【００９７】
(3) ：実Ｉ／Ｏドライバ６０は、疑似ドライバ２３からのＩ／Ｏ要求に従い、Ｉ／Ｏ機器６２を起動した後にＩ／Ｏ機器６２の処理完了の監視に入る。
【００９８】
(4) ：Ｉ／Ｏ機器６２は、要求された処理を完了した時点で、完了を実Ｉ／Ｏドライバ６０に通知する。
【００９９】
(5) ：実Ｉ／Ｏドライバ６０は、Ｉ／Ｏ処理が完了した事を、疑似ドライバ２３に通知する。
【０１００】
(6) ：疑似ドライバ２３は、Ｉ／Ｏ機器６２の処理完了を被テストプログラム２２に通知するが、その際に、応答テーブル５２の「遅延時間範囲」に従った時間の遅延後に通知する。
【０１０１】
(7) ：被テストプログラム２２は、応答テーブル５２の「遅延時間範囲」分の遅延をもって、疑似ドライバ２３からＩ／Ｏ処理完了の通知を受け取る。
【０１０２】
(8) ：被テストプログラム２２は、遅延によりＩ／Ｏ機器６２の処理完了が、設定したタイムアウト監視時間内であれば、次の処理に移る。
【０１０３】
(9) ：被テストプログラム２２は、遅延によりＩ／Ｏ機器６２が処理完了が、設定したタイムアウト監視時間後であれば、タイムアウト処理に移る。
【０１０４】
なお、「遅延時間範囲」に「−１」が設定された場合は、Ｉ／Ｏ機器６２からの応答を待たずに、疑似応答を作成し、直ぐに応答を返す。また、この例では、遅延時間の機能をＩ／Ｏ機器６２の完了としているが、他の径として、ＯＳカーネル２１からのＩ／Ｏ要求の遅延として機能する様にすることも可能であり、更に、それらの切り替え可能な様に実施することもできる。
【０１０５】
以上のように、疑似ドライバ２３と応答テーブル５２の設定により、Ｉ／Ｏ機器６２の処理の完了を擬似的に遅延させることにより、被テストプログラム２２が備えている処理ルートをテストすることができる。また、同様に、被テストプログラム２２が複数のＩ／Ｏ機器６２を同時に制御している場合では、それぞれのＩ／Ｏ処理完了通知のタイミングを任意に組み合わせたテストができ、例えば、被テストプログラム２２のＩ／Ｏ処理順序の誤り等のテストができる。
【０１０６】
また、図３に示したアクセステーブル５１内の差し替え実施項番（記録）には、応答テーブル５２の条件を満たしたアクセスの場合の応答テーブル５２の項番を記録する。これは、疑似ドライバ２３により、実際の応答値を差し替えたことを意味しており、テストされたことの記録（テストのトレース）になる。
【０１０７】
テストが完了した際に、アクセステーブル５１には、被テストプログラム２２の全アクセスの記録（トレース）と、疑似ドライバ２３により応答の差し替えの対応が記録されるため、この記録からテストの実施の範囲（テストカバレッジ）を把握することが可能になる。
【０１０８】
§７：フローチャートによる処理（又は動作）の説明
図７はテスト処理フローチャート（その１）、図８はテスト処理フローチャート（その２）である。以下、図７、８に基づいて、処理（又は動作）を説明する。なお、図７、８においてＳ１〜Ｓ１８は各処理ステップを示す。
【０１０９】
先ず、操作員により、疑似ドライバ設定ユーテリティを起動し、操作員により、テスト内容を反映した応答テーブル５２を設定する（Ｓ１）。次に、操作員は、疑似ドライバ２３を起動する（Ｓ２）。そして、疑似ドライバ２３は、ＯＳカーネル２１にＩ／Ｏ要求をフックする（Ｓ３）。次に、操作員は、被テストプログラム２２にを起動する（Ｓ４）。そして、被テストプログラム２２はＩ／Ｏ要求を出す（Ｓ５）。
【０１１０】
次に、ＯＳカーネル２１は、Ｉ／Ｏ要求をフック先の疑似ドライバ２３に確認する（Ｓ６）。その結果、フック有りの場合は、ＯＳカーネル２１は疑似ドライバ２３にＩ／Ｏ処理を渡す（Ｓ７）。そして、アクセステーブル５１／応答テーブル５２は設定されているか否かを判断する（Ｓ８）。その結果、アクセステーブル５１／応答テーブル５２が設定されていれば疑似ドライバ２３は応答テーブル５２の設定に従う（Ｓ９）。
【０１１１】
次に、疑似ドライバ２３はＩ／Ｏ要求の内容をトレースする（Ｓ１０）。そして、疑似ドライバ２３は実Ｉ／Ｏドライバ６０に処理を渡す（Ｓ１１）。次に、疑似ドライバ２３は、ハード層の実Ｉ／Ｏ機器６２を起動し、処理を開始する（Ｓ１２）。実Ｉ／Ｏ機器６２は処理が完了すると実Ｉ／Ｏドライバ６０に応答する（Ｓ１３）。そして、実Ｉ／Ｏドライバ６０はハード層の実Ｉ／Ｏ機器６２からの応答を監視して応答が有るのを待ち（Ｓ１４）、応答があれば、実Ｉ／Ｏドライバ６０はＩ／Ｏ応答を疑似ドライバ２３に渡す（Ｓ１５）。
【０１１２】
次に、疑似ドライバ２３は、応答内容と応答テーブル５２の内容を比較し応答テーブル５２の設定値の処理を行う（Ｓ１６）。そして、操作員は、被テストプログラム２２の完了を監視し（Ｓ１７）、継続ならば前記Ｓ１６の処理へ以降し、終了ならば、操作員は、疑似ドライバ２３を停止する（Ｓ１８）。
【０１１３】
また、前記Ｓ６の処理でフック無しの場合、及び前記Ｓ８の処理で、アクセステーブル５１／応答テーブル５２が設定されていない場合には、Ｓ１８の処理へ移行する。このようにして前記処理を終了する。
【０１１４】
§８：主ルートの処理（動作）の説明
図９は主ルートの処理フローチャート（その１）、図１０は主ルートの処理フローチャート（その２）である。以下、図９、１０に基づいて、主ルートの処理（動作）を説明する。以下に説明する主ルートの処理は、図８に示したＳ１６の処理の詳細な説明である。なお、図９、１０においてＳ２１〜Ｓ３５は各処理ステップを示す。
【０１１５】
前記図８のＳ１６では、疑似ドライバ２３は、応答内容と応答テーブル５２の内容を比較し応答テーブル５２の設定値の処理を行うが、その詳細な処理は次の通りである。この処理で疑似ドライバ２３は、先ず、被テストプログラム２２からＩ／Ｏ要求は有るかどうかを判定し（Ｓ２１）、被テストプログラム２２からＩ／Ｏ要求が無ければ、要求が有るのを待ち、被テストプログラム２２からＩ／Ｏ要求があれば、アクセス解析の処理により、被テストプログラム２２のＩ／Ｏ要求をアクセステーブル５１に記録する（Ｓ２２）。次に、Ｉ／Ｏ要求を実Ｉ／Ｏドライバ６０に渡し（Ｓ２３）、実Ｉ／Ｏドライバ６０からの応答はあったかどうかを判定する（Ｓ２４）。
【０１１６】
その結果、実Ｉ／Ｏドライバ６０からの応答が無ければ、応答が有るのを待ち、実Ｉ／Ｏドライバ６０からの応答が有れば、Ｉ／Ｏ要求内容と実Ｉ／Ｏドライバ６０からの応答の組み合わせ条件は、応答テーブル５２に有るかどうかを判定する（Ｓ２５）。その結果、Ｉ／Ｏ要求と実Ｉ／Ｏドライバ６０からの応答の組み合わせ条件が応答テーブル５２に有れば、該当する差し替え応答値を応答テーブル５２から得る（Ｓ２６）。
【０１１７】
次に、該当する応答遅延時間を応答テーブル５２から得る（Ｓ２７）。そして、応答テーブル５２の該当する差し替え応答記録欄に「実施」を記録する（Ｓ２８）。また、該当する「項番」を得る（Ｓ２９）。次に、疑似ドライバ２３は、アクセステーブル５１の該当する差し替え項番に「項番」を記録する（Ｓ３０）。そして、応答テーブル５２の条件に従った応答値及びデータを生成する（Ｓ３１）。
【０１１８】
次に、スケジューラ３３により応答遅延時間後に差し替え応答値を被テストプログラム２２に応答する（Ｓ３２）。そして、アクセステーブル５１のポインタを更新する（Ｓ３３）。次に、操作員による停止指示が有るかどうかを判断し（Ｓ３４）、有れば、アクセステーブル５１及び応答テーブル５２を所定の格納領域に保存する（Ｓ３５）。
【０１１９】
また、前記Ｓ３４の処理で、操作員による停止指示が無ければ、Ｓ２１の処理へ移行する。また、Ｓ２５の処理で、Ｉ／Ｏ要求内容と実Ｉ／Ｏドライバ６０からの応答の組み合わせ条件が応答テーブル５２に無いと判定した場合はＳ３３の処理へ移行する。このようにして、Ｓ３５の処理が終了すれば、この処理を終了する。
【０１２０】
§９：その他の説明
前記プログラムのテスト装置（コンピュータ）によるプログラムのテスト方法には、次のようなテスト方法も含まれる。
【０１２１】
(1) ：コンピュータ上で動作するプログラム自身（被テストプログラム）の動作検証（テスト方法）に関し、被テストプログラムによるコンピュータハードウェア資源へのアクセスに対する各種（異常を含む）応答処理の妥当性をテストする方法において、各種の疑似応答発生機能を有するコンピュータハードウェア資源アクセスプログラム（疑似ドライバ）を介し、任意の応答処理に対する動作検証を行う。
【０１２２】
(2) ：コンピュータ上で動作するプログラム自身（被テストプログラム）の動作検証（テスト方法）に関し、被テストプログラムによるコンピュータハードウェア資源へのアクセスに対する各種（異常を含む）応答処理の妥当性をテストする方法において、動作を実Ｉ／Ｏに実行させることにより、実環境と同等な応答タイミングのテストを行い、かつ、応答値は予め与えられた、アクセス条件や応答値の組み合わせのスケジュールされた任意の応答値を返す。
【０１２３】
§１０：付記の説明
前記の説明に対し、次の構成を付記する。
【０１２４】
（付記１）
コンピュータ上で動作する被テストプログラムの動作検証を行う際、前記被テストプログラムによるコンピュータハードウェア資源へのアクセスに対する各種応答処理の妥当性を検証するプログラムのテスト装置であって、
コンピュータハードウェア資源へのアクセスをサービスするインタフェースからの正常な復帰値を、予め与えられたパラメータに基づいた任意の応答値と差し替える機能により、各種の疑似応答を発生させる疑似ドライバを備え、
前記疑似ドライバを介し任意の応答処理に対する動作検証を行う機能を備えているプログラムのテスト装置。
【０１２５】
（付記２）
前記疑似ドライバは、前記コンピュータハードウェア資源へのアクセスをサービスするインタフェースからの正常な応答値を、予め与えられたスケジュールに基づいた任意の時間後に、任意の応答値と差し替える機能を有し、
該疑似ドライバを介し、任意の疑似応答処理に対する動作検証を行う機能を備えている付記１記載のプログラムのテスト装置。
【０１２６】
（付記３）
前記疑似ドライバは、前記コンピュータハードウェア資源へのアクセスをサービスするインタフェースからの正常な応答値を、予め与えられた、アクセス条件や応答値の組み合わせに対してスケジュールしておき、そのスケジュールに基づいた任意の応答値を返すことで、各種の疑似応答を発生させる機能を有し、
該疑似ドライバを介し、任意の疑似応答処理に対する動作検証を行う付記１記載のプログラムのテスト装置。
【０１２７】
（付記４）
前記疑似ドライバは、前記コンピュータハードウェア資源へのアクセスをサービスするインタフェースからの正常な復帰値を、予め与えられた、アクセス条件や応答値の組み合わせに対してスケジュールしておき、そのスケジュールに基づいて任意の応答値を返す被テストプログラムのテスト機能を備え、
該疑似ドライバの機能により、返した応答値を記録し、記録された応答値からテストの実施範囲を把握できるようにした付記１記載のプログラムのテスト装置。
【０１２８】
（付記５）
前記疑似ドライバは、動作を実Ｉ／Ｏに実行させることにより、実環境と同じデータに対する処理のテストを行い、かつ、応答値は予め与えられた、アクセス条件や応答値の組み合わせのスケジュールされた任意の疑似応答値を返す機能を有することで、前記動作検証を行う付記１記載のプログラムのテスト装置。
【０１２９】
（付記６）
コンピュータ上で動作する被テストプログラムの動作検証を行う際、前記被テストプログラムによるコンピュータハードウェア資源へのアクセスに対する各種応答処理の妥当性を検証するプログラムのテスト装置のテスト方法であって、
コンピュータハードウェア資源へのアクセスをサービスするインタフェースからの正常な復帰値を、予め与えられたパラメータに基づいた任意の応答値と差し替える機能により、各種の疑似応答を発生させる疑似ドライバを介し任意の応答処理に対する動作検証を行うプログラムのテスト装置のテスト方法。
【０１３０】
（付記７）
前記コンピュータハードウェア資源へのアクセスをサービスするインタフェースからの正常な応答値を、予め与えられたスケジュールに基づいた任意の時間後に、任意の応答値と差し替える機能を有する疑似ドライバを介し、任意の疑似応答処理に対する動作検証を行う付記６記載のプログラムのテスト装置のテスト方法。
【０１３１】
（付記８）
前記コンピュータハードウェア資源へのアクセスをサービスするインタフェースからの正常な応答値を、予め与えられた、アクセス条件や応答値の組み合わせに対してスケジュールしておき、そのスケジュールに基づいた任意の応答値を返すことで、各種の疑似応答を発生させる疑似ドライバを介し、任意の疑似応答処理に対する動作検証を行う付記６記載のプログラムのテスト装置のテスト方法。
【０１３２】
（付記９）
前記コンピュータハードウェア資源へのアクセスをサービスするインタフェースからの正常な復帰値を、予め与えられた、アクセス条件や応答値の組み合わせに対してスケジュールしておき、そのスケジュールに基づいて任意の応答値を返す被テストプログラムのテスト機能を有する疑似ドライバにより、返した応答値を記録し、記録された応答値からテストの実施範囲を把握できるようにした付記６記載のプログラムのテスト装置のテスト方法。
【０１３３】
（付記１０）
動作を実Ｉ／Ｏに実行させることにより、実環境と同じデータに対する処理のテストを行い、かつ、応答値は予め与えられた、アクセス条件や応答値の組み合わせのスケジュールされた任意の疑似応答値を返す機能を有する疑似ドライバにより、前記動作検証を行う付記６記載のプログラムのテスト装置のテスト方法。
【図面の簡単な説明】
【０１３４】
【図１】本発明の原理説明図である。
【図２】実施の形態における装置の全体構成図である。
【図３】実施の形態における疑似ドライバの説明図である。
【図４】実施の形態におけるテスト方法の概念説明図である。
【図５】実施の形態におけるアクセステーブル例及び応答テーブル例であり、Ａ図はアクセステーブル例、Ｂ図は応答テーブル例を示す。
【図６】実施の形態における遅延処理例のタイムチャートである。
【図７】実施の形態におけるテスト処理フローチャート（その１）である。
【図８】実施の形態におけるテスト処理フローチャート（その２）である。
【図９】実施の形態における主ルートの処理フローチャート（その１）である。
【図１０】実施の形態における主ルートの処理フローチャート（その２）である。
【符号の説明】
【０１３５】
１  コンピュータ本体
２  入力装置
３  表示装置
１１  ＣＰＵ
１２  メモリ制御部
１３  Ｉ／Ｏ制御部
１４  通信制御部
１５  メモリ装置
２１  ＯＳカーネル
２２  被テストプログラム
２３  疑似ドライバ
３１  疑似ドライバ制御部
３２  アクセス解析部
３３  スケジューラ
３４  応答生成部
３５  応答解析部
３６  設定解析部
３７  異常応答部
３８  正常応答部
３９  ノットレディ部
４０  タイムアウト部
４１  センスデータ生成部
４２  異常データ生成部
５０  メモリ共通域
５１  アクセステーブル
５２  応答テーブル
５３  疑似ドライバ設定ユーティリティ
６０  ドライバ層（実Ｉ／Ｏドライバ）
６１  Ｉ／Ｏポート
６２  ハード層（実Ｉ／Ｏ機器）
【図１】
2009104490.tif 000003
【図２】
2009104490.tif 000004
【図３】
2009104490.tif 000005
【図４】
2009104490.tif 000006
【図５】
2009104490.tif 000007
【図６】
2009104490.tif 000008
【図７】
2009104490.tif 000009
【図８】
2009104490.tif 000010
【図９】
2009104490.tif 000011
【図１０】
2009104490.tif 000012