(57)【要約】機能が高められ、またパフォーマンスが改善された、エラー応答テストのシステムおよび方法を提供する。エラー応答テストシステムは、被験アプリケーションにエラーを注入して、自動化され効率的な形で、被験アプリケーションのエラー応答をテストする能力を提供する。エラー応答システムは、テストマスク変数を介してアプリケーションにエラーを注入する。テストマスク変数は、被験アプリケーションに追加される。通常の動作中には、テストマスク変数が、被験アプリケーションが正常に動作するようにセットされる。テスト中には、エラー応答テストシステムが、テストマスク変数を変更して、被験アプリケーションにエラーを導入できるようにする。エラー応答システムは、被験アプリケーションを監視して、アプリケーションがエラーに対する正しい応答を有するかどうかを判定することができる。
2005528716.tif 000002
【特許請求の範囲】
【請求項１】
ａ）プロセッサと、
ｂ）前記プロセッサに結合されたメモリと、
ｃ）前記メモリに常駐し、前記プロセッサによって実行されるエラー応答テストプログラムであって、エラー応答テストプログラムは、アプリケーションプログラムによって参照されるテストマスク変数を修正することによって、前記アプリケーションプログラムをテストし、前記修正されたテストマスク変数は、前記アプリケーションプログラムにエラーを導入し、エラー応答テストプログラムは、前記アプリケーションプログラムを実行すると同時に、前記修正されたテストマスク変数から生じるエラーに対する前記ロード済みアプリケーションプログラムの応答を監視する、エラー応答テストプログラムと、
を含む装置。
【請求項２】
前記テストマスク変数は、前記エラー応答テストプログラムおよび前記アプリケーションプログラムにとってアクセス可能なメモリに常駐する、請求項１に記載の装置。
【請求項３】
前記テストマスク変数は、前記アプリケーションによって使用されるプログラム値と前記テストマスク変数とのＡＮＤをとることによって、前記アプリケーションプログラムによって参照される、請求項１に記載の装置。
【請求項４】
前記アプリケーションプログラムは、組込みテストルーチンを含み、前記テストマスク変数は、前記アプリケーションが前記テストマスク変数と前記組込みテストルーチンによって使用されるプログラム値とのＡＮＤをとることによって、参照される、請求項１に記載の装置。
【請求項５】
前記エラー応答テストプログラムは、前記修正されたテストマスク変数から生じるエラーに対する前記ロード済みアプリケーションプログラムの応答を監視した後で、前記テストマスク変数を未修正の値に復元する、請求項１に記載の装置。
【請求項６】
前記ロード済みアプリケーションが前記修正されたテストマスク変数を参照した後で、前記ロード済みアプリケーションは、前記テストマスク変数を未修正の値に復元する、請求項１に記載の装置。
【請求項７】
前記テストマスク変数は、複数のビットを含み、前記ビットのそれぞれは、修正の前に１を含む、請求項１に記載の装置。
【請求項８】
前記アプリケーションは、組込みテストルーチンを含み、前記組込みテストルーチンは、テスト中に前記テストマスク変数を参照し、前記修正されたテストマスク変数は、前記組込みテストルーチンによって検出されるエラーを引き起こす、請求項１に記載の装置。
【請求項９】
アプリケーションプログラムをテストする方法であって、
ａ）テストマスク変数への参照を含む前記アプリケーションプログラムをメモリにロードする工程と、
ｂ）前記テストマスク変数を修正する工程であって、前記修正されたテストマスク変数は、前記アプリケーションプログラムにエラーを導入する、工程と、
ｃ）前記修正されたテストマスク変数が参照され、前記アプリケーションプログラム内でエラーが導入されるように、前記ロード済みアプリケーションプログラムを実行する工程と、
ｄ）前記エラーに対する前記ロード済みアプリケーションプログラムの応答を監視する工程と、
を含む方法。
【請求項１０】
前記テストマスク変数は、前記エラー応答テストプログラムおよび前記アプリケーションプログラムにとってアクセス可能なメモリに常駐する、請求項９に記載の方法。
【請求項１１】
前記テストマスク変数への参照は、前記アプリケーションプログラムが、前記アプリケーションプログラムによって使用されるプログラム値と前記テストマスク変数とのＡＮＤをとることを含む、請求項９に記載の方法。
【請求項１２】
前記テストマスク変数への参照は、前記アプリケーションプログラム内の組込みテストルーチンによって使用されるプログラム値と前記テストマスク変数とのＡＮＤをとることを含む、請求項９に記載の方法。
【請求項１３】
前記エラーに対する前記ロード済みアプリケーションプログラムの前記応答を監視する前記工程の後で、前記テストマスク変数を未修正の値に復元する工程をさらに含む、請求項９に記載の方法。
【請求項１４】
前記ロード済みアプリケーションが前記修正されたテストマスク変数を参照した後で、前記テストマスク変数を未修正の値に復元する工程をさらに含む、請求項９に記載の方法。
【請求項１５】
前記テストマスク変数は、複数のビットを含み、前記ビットのそれぞれは、前記テストマスク変数を修正する前記工程の前に１を含む、請求項９に記載の方法。
【請求項１６】
前記ロード済みアプリケーションは、組込みテストルーチンを含み、前記組込みテストルーチンは、テスト中に前記テストマスク変数を参照し、前記ロード済みアプリケーションプログラムを実行する前記工程は、前記組込みテストルーチンを実行し、前記ロード済みアプリケーションプログラムの応答を監視する前記工程は、前記組込みテストルーチンによって検出されるエラーに対する応答を監視することを含む、請求項１５に記載の方法。
【請求項１７】
ａ）アプリケーションプログラムによって参照されるテストマスク変数を修正することによって、前記アプリケーションプログラムをテストするエラー応答テストプログラムであって、前記修正されたテストマスク変数は、前記アプリケーションプログラムにエラーを導入し、エラー応答テストプログラムは、前記アプリケーションプログラムを実行すると同時に、前記修正されたテストマスク変数から生じるエラーに対する前記ロード済みアプリケーションプログラムの応答を監視するエラー応答テストプログラムと、
ｂ）前記プログラムを担持する信号担持媒体と、
を含むプログラム製品。
【請求項１８】
前記信号担持媒体は、記録可能媒体を含む、請求項１７に記載のプログラム製品。
【請求項１９】
前記信号担持媒体は、伝送媒体を含む、請求項１７に記載のプログラム製品。
【請求項２０】
前記テストマスク変数は、前記エラー応答テストプログラムおよび前記アプリケーションプログラムにとってアクセス可能なメモリに常駐する、請求項１７に記載のプログラム製品。
【請求項２１】
前記テストマスク変数は、前記アプリケーションによって使用されるプログラム値と前記テストマスク変数とのＡＮＤをとることによって、前記アプリケーションプログラムによって参照される、請求項１７に記載のプログラム製品。
【請求項２２】
前記アプリケーションプログラムは、組込みテストルーチンを含み、前記テストマスク変数は、前記アプリケーションが前記テストマスク変数と前記組込みテストルーチンによって使用されるプログラム値とのＡＮＤをとることによって、参照される、請求項１７に記載のプログラム製品。
【請求項２３】
前記エラー応答テストプログラムは、前記修正されたテストマスク変数から生じるエラーに対する前記ロード済みアプリケーションプログラムの応答を監視した後で、前記テストマスク変数を未修正の値に復元する、請求項１７に記載のプログラム製品。
【請求項２４】
前記ロード済みアプリケーションが前記修正されたテストマスク変数を参照した後で、前記ロード済みアプリケーションは、前記テストマスク変数を未修正の値に復元する、請求項１７に記載のプログラム製品。
【請求項２５】
前記テストマスク変数は、複数のビットを含み、前記ビットのそれぞれは、修正の前に１を含む、請求項１７に記載のプログラム製品。
【請求項２６】
前記アプリケーションは、組込みテストルーチンを含み、前記組込みテストルーチンは、テスト中に前記テストマスク変数を参照し、前記修正されたテストマスク変数は、前記組込みテストルーチンによって検出されるエラーを引き起こす、請求項１７に記載のプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータシステムに関し、より詳細には、コンピュータシステムのテストに関する。
【背景技術】
【０００２】
（政府利益に関する記載）
米国政府は、本発明の全額支払済みのライセンスを有し、限られた状況において、本発明の米国航空宇宙局（ＮＡＳＡ）によって認められた契約番号ＮＡＳ  １５−１００００、Ｂｏｅｉｎｇ下請け契約番号９４０Ｓ９００１の条件によって提供される合理的な条件で特許所有者に他者へのライセンス交付を要求する権利を有する。
【０００３】
（背景技術）
現代生活は、ますますコンピュータに依存するようになりつつある。コンピュータは、極端に洗練されたデバイスに進化し、多くの異なる応用例で見出すことができる。この応用例には、自動車、電話機、および他のエレクトロニクスなどの日用デバイスに見られる特定用途向けコンピュータから、ＰＤＡ、パーソナルコンピュータ、サーバ、およびメインフレームの形で見られる汎用コンピュータまでのすべてが含まれる。
【０００４】
コンピュータが、日常生活に融合されるにつれて、その信頼性が、ますます必要になる。十分な信頼性を保証するために、コンピュータシステムを完全にテストすることが必要である。完全なテストには、システムが広範囲の状況で正しく動作することを保証するために、コンピューティングシステムのハードウェアおよびソフトウェアの両方のテストが含まれる。
【０００５】
テストするのがより困難なコンピュータシステムパフォーマンスの領域の１つが、動作エラーに対するコンピュータシステムの応答である。たとえば、組込みテストルーチンのエラーに対する応答について組込みテストルーチンをテストすることは、特に困難である。コンピュータのエラーに対する応答をテストする際の主要な問題は、システムにエラーを注入するために行うことを必要とするステップにある。通常、これは、侵入的な方法を用いて達成される。
【０００６】
たとえば、デバッガまたはエミュレータを使用し、ソフトウェア内に、オペレータコマンドによってエラーが注入されるブレークポイントをセットする。これらの方法は、億劫であり、時間がかかり、簡単には自動化されない。もう１つの方法は、コードにエラーを起こさせることである。これには、エラーを起こすようにハードコードされた、ソフトウェアの特殊なバージョンの作成が含まれる。この手法では、複数の問題が発生する。第１の問題は、ソフトウェアの複数のバージョンを維持しなければならないことである。第２の問題は、テストされるソフトウェアが、もはや実際に動作するソフトウェアでなくなり、実際に動作するソフトウェアは、実際にテストソフトウェアと異なる応答をする可能性があることである。
【０００７】
さらに、ハードウェア障害を表すエラーを注入することは、特に困難になる可能性がある。したがって、ハードウェアエラーに対するソフトウェアの応答を評価することは、極度に困難になる可能性がある。
【０００８】
これらの理由から、エラーに対するコンピュータシステムの応答は、完全にテストされない場合がある。その代わりに、少数の手動テストを実行することだけができ、これらは、将来にアプリケーションが修正されたときに繰り返されない可能性がある。あるいは、いくつかの場合に、障害状態が全くテストされない可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、エラーに対するコンピュータシステムの応答のより完全なテストを可能にする改良されたテストのシステムおよび方法が必要である。
【課題を解決するための手段】
【００１０】
本発明は、機能が高められ、またパフォーマンスが改善された、エラー応答テストのシステムおよび方法を提供する。エラー応答テストシステムは、被験アプリケーションにエラーを注入して、自動化された効率的な形で、被験アプリケーションのエラー応答をテストする能力を提供する。
【００１１】
エラー応答システムは、テストマスク変数を介してアプリケーションにエラーを注入する。テストマスク変数は、被験アプリケーションに永久的に追加される。通常の動作中には、テストマスク変数が、被験アプリケーションが正常に動作できるようにセットされる。テスト中には、エラー応答テストシステムが、テストマスク変数を変更して、被験アプリケーションにエラーを導入できるようにする。エラー応答システムは、被験アプリケーションを監視して、アプリケーションがエラーに対する正しい応答を有するかどうかを判定することができる。
【００１２】
エラー応答システムは、組込みテストルーチンに対するソフトウェアアプリケーションの応答のテストに特に適用可能である。この応用例では、テストマスク変数が、組込みテストルーチンの結果に影響を及ぼすことができる、アプリケーションソフトウェア内の位置に永久的に追加される。通常動作中には、テストマスク変数は、組込みテストルーチンが正常に機能できるようにセットされる。テスト中には、エラー応答システムが、組込みテストルーチンの結果に干渉してエラーを起こさせる値に、テストマスク変数を変更することができる。したがって、ソフトウェアアプリケーションは、組込みテストルーチンを実行することができ、アプリケーションは、組込みテストルーチンでのエラーに対する応答について監視される。
【００１３】
したがって、エラー応答システムは、テストの柔軟性および機能を高め、コンピュータシステムの信頼性を改善するためにコンピュータシステムを完全にテストすることが可能になる。
【００１４】
本発明の前述および他の目的、特徴、および長所は、添付図面に示された本発明の好ましい実施形態の以下のより特定の説明から明白になる。
なお、本発明の好ましい実施形態を、添付図面に関して下で説明するが、図面では、同一の符号が同一の要素を示す。
【発明を実施するための最良の形態】
【００１５】
本発明は、機能が高められ、また、パフォーマンスが改善された、エラー応答テストのシステムおよび方法を提供する。エラー応答テストシステムは、被験アプリケーションにエラーを注入して、自動化され効率的な形で、被験アプリケーションのエラー応答をテストする能力を提供する。
【００１６】
エラー応答システムは、テストマスク変数を介してアプリケーションにエラーを注入する。テストマスク変数は、被験アプリケーションに永久的に追加される。これは、特に組込みテストルーチンに関して、アプリケーションに対するパフォーマンス上の影響を無視できる。通常の動作中には、テストマスク変数が、被験アプリケーションが正常に動作できるようにセットされる。テスト中には、エラー応答テストシステムが、テストマスク変数を変更して、被験アプリケーションにエラーを導入できるようにする。エラー応答システムは、被験アプリケーションを監視して、アプリケーションがエラーに対する正しい応答を有するかどうかを判定することができる。
【００１７】
エラー応答テストシステムは、組込みテストルーチンに対するソフトウェアアプリケーションの応答のテストに特に適用可能である。組込みテストルーチンは、ソフトウェアアルゴリズムであり、これは、ソフトウェアアプリケーションのうちで、その目的がハードウェアコンポーネントの正しい動作を検証することである部分である。組込みテストルーチンは、通常、ユーザによる特定の要求に応じて実行され、あるいは、プロセッサアイドル時間中にバックグラウンドモードで実行することができる。テストマスク変数は、アプリケーションソフトウェア内で、組込みテストルーチンの結果に影響を及ぼすことができる位置に永久的に追加される。通常動作中には、テストマスク変数が、組込みテストルーチンが正常に機能できるようになるようにセットされる。テスト中には、エラー応答システムが、組込みテストルーチンの結果に干渉してエラーを起こさせる値に、テストマスク変数を変更することができる。したがって、ソフトウェアアプリケーションは、組込みテストルーチンを実行することができ、アプリケーションは、組込みテストルーチンでのエラーに対する応答について監視される。
【００１８】
図１に移ると、例示的なコンピュータシステム１００が示されている。コンピュータシステム１００には、本発明を実施するのに使用できるコンピュータシステムの全般的な特徴が示されている。もちろん、これらの特徴は、単に例示であり、本発明を、より多数のまたは異なる特徴を含めることができる異なるタイプのハードウェアを使用して実施できることを理解されたい。例示的なコンピュータシステム１００には、プロセッサ１１０、ストレージインターフェース１３０、端末インターフェース１４０、ネットワークインターフェース１５０、ストレージデバイス１９０、バス１７０、およびメモリ１８０が含まれる。本発明の好ましい実施形態によれば、メモリシステム１００に、被験アプリケーションおよびエラー応答テストプログラムが含まれる。
【００１９】
プロセッサ１１０は、システム１００の計算機能および制御機能を実行する。プロセッサ１１０には、すべてのタイプのプロセッサを含めることができ、マイクロプロセッサなどの単一の集積回路を含めることができ、あるいは、処理ユニットの機能を達成するために協力して働く適切な数の集積回路デバイスおよび／または回路ボードを含めることができる。さらに、プロセッサ１１０に、第１プロセッサが最終ハードウェアシステムによく似るように設計されたターゲットコンピュータシステムに存在し、第２プロセッサがテストのためにターゲットハードウェアシステムに結合されるテストコンピュータシステムに存在するシステムなど、別々のコンピュータシステムで実施される複数のプロセッサを含めることができる。動作中に、プロセッサ１１０は、メモリ１８０に含まれるプログラムを実行し、コンピュータシステム１００の全般的な動作を制御する。
【００２０】
メモリ１８０は、あらゆるタイプの適切なメモリとすることができる。これには、ＳＤＲＡＭなどのさまざまなタイプのダイナミックランダムアクセスメモリ（ＤＲＡＭ）、さまざまなタイプのスタティックＲＡＭ（ＳＲＡＭ）、およびさまざまなタイプの不揮発性メモリ（ＰＲＯＭ、ＥＰＲＯＭ、およびフラッシュ）が含まれる。メモリ１８０を、単一のタイプのメモリコンポーネントとすることができ、あるいは、多数の異なるタイプのメモリコンポーネントからなるものとすることができることを理解されたい。さらに、メモリ１８０およびプロセッサ１１０を、集合的にシステム１００を含む複数の異なるコンピュータにまたがって分散することができる。たとえば、メモリ１８０の一部が、ターゲットハードウェアシステムにあり、別の部分が、テストシステムにあることが可能である。
【００２１】
バス１７０は、システム１００のさまざまなコンポーネントの間で、プログラム、データ、状況、および他の情報または信号を送るように働く。バス１７０は、コンピュータシステムとコンポーネントを接続する適切な物理的手段または論理的手段とすることができる。これには、直接ハードワイヤ接続、光ファイバ、赤外線、および無線のバス技術が含まれるが、これに制限はされない。
【００２２】
端末インターフェース１４０を用いると、ユーザが、システム１００と通信できるようになり、端末インターフェース１４０は、適切な方法および装置を使用して実施することができる。ネットワークインターフェース１５０を用いると、コンピュータシステム１００が他のシステムと通信できるようになり、ネットワークインターフェース１５０は、適切な方法および装置を使用して実施することができる。ストレージインターフェース１３０は、記憶装置をコンピュータシステムにインターフェースする方法を表す。ストレージデバイス１９０は、ハードディスクドライブ、フロッピディスクドライブ、および光ディスクドライブなどの直接アクセス記憶装置を含む適切なタイプの記憶装置とすることができる。図１からわかるように、ストレージデバイス１９０に、光ディスク１９５を使用してデータを記憶するＣＤタイプデバイスを含めることができる。
【００２３】
本発明の好ましい実施形態によれば、メモリシステム１００に、被験アプリケーションおよびエラー応答テストプログラムが含まれる。動作中に、被験アプリケーションおよびエラー応答テストプログラムが、メモリ１８０に記憶され、プロセッサ１１０によって実行される。エラー応答システムは、テストマスク変数を介してアプリケーションにエラーを注入する。テストマスク変数は、アプリケーションソフトウェア内で、組込みテストルーチンの結果に影響を及ぼすことができる位置に永久的に追加される。通常動作中に、テストマスク変数は、組込みテストルーチンが正常に機能できるようにセットされる。テスト中には、エラー応答システムが、組込みテストルーチンの結果に干渉してエラーを起こさせる値に、テストマスク変数を変更することができる。したがって、ソフトウェアアプリケーションは、組込みテストルーチンを実行することができ、アプリケーションは、組込みテストルーチンでのエラーに対する応答について監視される。
【００２４】
この場合も、コンピュータシステムの好ましい実施形態では、通常、製品コンピュータシステムをモデル化するターゲットコンピュータシステムに被験アプリケーションが存在することに留意されたい。これによって、被験アプリケーションに関して最も効果的なテストベッドが提供される。エラー応答テストプログラムは、通常は、ターゲットコンピュータシステムに結合された別々のコンピュータシステムに配置されて、エラー応答テストプログラムが、テストを制御し、かつ／または監視できるようにする。さらに、多くの一般的なアプリケーションで、ターゲットコンピュータシステムに、より大きいシステム全体の一部として一緒に統合されるハードウェアおよびソフトウェアの組合せとして設計された組込みシステムが含まれる。
【００２５】
好ましい実施形態は、エラー応答テストプログラムによって読み書きでき、被験アプリケーションプログラムにも可視の位置にテストマスク変数が記憶される実施形態である。これは、ソフトウェアのリアルタイム再ロードをサポートするか、診断目的で内部メモリへの特殊なアクセスを可能にするシステムによって提供することができる。テストマスク変数は、アプリケーションのパフォーマンスに影響する位置で、アプリケーションの動作に挿入される。ある応用例で、テストマスク変数が、プログラム値とＡＮＤをとられて、テスト中にはプログラム値を変更するが、通常動作中にはプログラム値を未変更のままにする。プログラム値のこの変更は、組込みテストルーチンに干渉し、エラーを起こさせるのに十分である。
【００２６】
本発明について、完全に機能するコンピュータシステムに関して説明するが、本発明の機構はさまざまな形のプログラム製品として配布可能であること、また、本発明が、配布の実行に使用される信号担持媒体の特定のタイプにかかわらずに同等に適用されることを当業者なら理解することを理解されたい。信号担持媒体の例に、フロッピディスク、ハードドライブ、メモリカード、および光ディスク（たとえば光ディスク１９５）などの記録可能媒体と、無線通信リンクを含むディジタル通信リンクおよびアナログ通信リンクなどの伝送媒体が含まれる。
【００２７】
図２に移ると、エラー応答テストプログラムおよび被験アプリケーションが、要素の間の相互作用を示すために概略的に図示されている。アプリケーションには、アプリケーションが常駐するハードウェアをテストするように設計された組込みテストルーチンが含まれる。エラー応答テストプログラムは、アプリケーションのテストを制御する。この例では、エラー応答テストプログラムが、組込みテストルーチンのエラーに対するアプリケーションの応答をテストするのに使用される。もちろん、エラー応答テストプログラムを、アプリケーションプログラムの他の特徴をテストするように構成することができる。
【００２８】
本発明の好ましい実施形態によれば、テストマスク変数が、共用メモリ位置内で、アプリケーションとエラー応答テストシステムの両方によってアクセスできる位置に配置される。アプリケーションのコードは、組込みテストルーチンのパフォーマンスに影響を及ぼすことができる形で、実行の部分中にテストマスク変数を参照するように構成される。通常動作中には、テストマスク変数に、組込みテストルーチンのパフォーマンスに影響しない値がセットされる。
【００２９】
テストを容易にするために、エラー応答テストプログラムに、テストマスクライタおよびテストモニタが含まれる。テストマスクライタは、テストマスク変数を、組込みテストルーチンのパフォーマンスに影響する値に変更するのに使用される。具体的には、テストマスクライタは、アプリケーションプログラムによって認識される組込みテストルーチン内のエラーを誘導する形で、テストマスク変数を変更するのに使用される。テストモニタは、組込みテストルーチン内のエラーに対するアプリケーションの応答を監視するのに使用される。
【００３０】
テスト中に、テストマスクライタは、テストマスク変数を、組込みテストルーチンのエラーを導入する値に変更する。エラー応答テストプログラムが、アプリケーションに、強制的に組込みテストルーチンを介して実行させると同時に、テストモニタが、アプリケーションのパフォーマンスを監視する。テストマスク変数の変更された値が、組込みテストルーチン内のエラーを引き起こし、テストモニタが、アプリケーションの応答を監視する。したがって、エラー応答テストプログラムは、組込みテストルーチン内のエラーに対するアプリケーションの応答の完全なテストを容易にする。
【００３１】
図３に移ると、アプリケーションをテストする方法４００が示されている。テスト方法４００は、アプリケーションにエラーを注入し、次に、アプリケーションを実行すると同時に、導入されたエラーに対する応答を監視する。
【００３２】
方法４００の第１ステップ４０２は、被験アプリケーションをメモリにロードすることである。上で述べたように、そのような実施形態の１つが、組込みテストプログラムのエラーに対するアプリケーションの応答のテストである。ロードされるアプリケーションには、組込みテストルーチン内のテストマスク変数への参照が含まれる。テストマスク変数を参照するコードシーケンスは、組込みテストに対する成功／失敗の影響を有する命令のすべてのシーケンスとすることができる。
【００３３】
次のステップ４０４は、アプリケーションプログラムにエラーを導入するためにテストマスク変数を変更することである。テストマスク変数は、テストされるタイプのエラーを導入する任意の形で変更することができる。組込みテストルーチンの例では、テストマスク変数の１ビットの変更によって、組込みテストルーチンが予想せず、したがってハードウェアのエラーとして扱われるエラーを導入することができる。
【００３４】
次のステップ４０６は、修正されたテストマスク変数を参照するコードシーケンスを介してアプリケーションをテスト実行することである。これは、ソフトウェアをテストするのに使用される多数の一般的な技法など、適切なコードテスト技法を使用して達成することができる。アプリケーションは、コードシーケンスを介する実行を強制され、変更されたテストマスク変数が、コードシーケンスの動作にエラーを導入する。
【００３５】
次のステップ４０８は、作成されたエラーに対するアプリケーションの応答を監視することである。これによって、テストエラー応答システムが、修正されたテストマスク変数によって導入されたエラーに対してアプリケーションが正しく応答したかどうかを判定できるようになる。応答が正しい場合には、アプリケーションが、このタイプの障害に対して堅牢であることがわかる。
【００３６】
次のステップ４１０は、システムにエラーを導入しない値にテストマスク変数を復元することである。これには、テストマスク変数を元の値に復元すること、またはテストされるエラーを導入しない他の値にすることを含めることができる。したがって、アプリケーションの動作を、元の手順に戻すことができる。これによって、プログラムが、もう一度正常に機能できるようになり、さらなるテストを進められるようになる。このさらなるテストには、追加のテストマスク変数を変更し、導入されるエラーに対するアプリケーションの応答をテストすることによる追加テストを含めることができる。一実施形態では、テストマスク変数を、エラー応答テストシステムによって復元することができる。もう１つの実施形態では、テストマスク変数を、アプリケーションによって復元することができる。
【００３７】
図４に移ると、例示的な未修正のテストマスク変数が示され、例示的な修正後のテストマスク変数が示されている。図４には、１タイプのテストマスク変数と、１タイプの修正が示されているが、当業者なら、他のさまざまな構造および修正を使用できることを理解するであろう。図４に示された未修正のテストマスク変数には、１６進数でＦＦ  ＦＦ  ＦＦ  ＦＦのストリングが含まれる。これは、１からなる３２ビットストリングに対応する。未修正のテストマスク変数には、１のストリングが含まれ、テストされるプログラムにある形で影響するプログラム値とのＡＮＤ演算を使用してアプリケーションに挿入可能とすることができる。したがって、アプリケーションの普通の動作中に、プログラム値とＡＮＤされる１のストリングは、値を変更せず、プログラムは正常に動作する。
【００３８】
例示的なテストマスク変数は、１６進数のＦＦ  ＦＦ  ＥＦ  ＦＦに変更されている。したがって、３２ビットのうちの１つが、１から０に変更されている。したがって、修正されたテストマスク変数が、プログラム値とＡＮＤをとられたときに、プログラム値が変更される。プログラム値のこの変更が、アプリケーションプログラムにエラーを導入し、したがって、エラーに対するアプリケーションプログラムの応答をテストすることができる。
【００３９】
図５に移ると、サンプルの組込みテストプロシージャが示されている。このサンプルプロシージャでは、メモリテストが、組込みテストによって実行される。本発明の実施形態によれば、組込みテストプロシージャに、テストマスク変数への参照とのＡＮＤが含まれる。通常の動作条件の下では、テストマスク変数に、ＦＦ  ＦＦ  ＦＦ  ＦＦｈがセットされる。これによって、組込みテストプロシージャが正常に動作するようになる。テスト中には、エラー応答テストシステムが、テストマスク変数を別の値に変更し、テストの結果に影響を及ぼすことができる。
【００４０】
例として、テストパターンＡＡ  ＡＡ  ＡＡ  ＡＡｈが使用されると仮定する。普通のテスト中に、組込みテストルーチンが、そのパターンをテストアドレスに書き込む。テストパターンとテストマスク変数のＡＮＤをとっても、テストパターンは変更されない。したがって、組込みテストプロシージャは、合格インジケータを返し（実際のエラーが発生しないと仮定する）、正常に動作する。
【００４１】
組込みテストプロシージャのテスト中には、テストマスク変数が、エラーを導入する、別の値に変更される。たとえば、テストドライバは、テストマスク変数がＦＦ  ＦＦ  ＦＦ  ００ｈと等しくなるようにセットすることができる。この場合に、組込みテストプロシージャが実行されたときに、テストパターンとテストマスク変数のＡＮＤをとると、テストパターンがＡＡ  ＡＡ  ＡＡ  ００ｈに変化する。したがって、読み取られるデータが、書き込まれたデータと等しくなくなり、プロシージャは、失敗表示を返す。エラー応答テストシステムは、失敗インジケータに対するシステムの応答を監視することができ、応答が正しいかどうかを判定することができる。テストが完了した時に、テストマスク変数がその元の状態に返され、組込みテストルーチンが、もう一度正常に動作する。
【００４２】
上で説明したように、エラー応答テストシステムは、組込みテストルーチンに対するソフトウェアアプリケーションの応答のテストに特に適用可能である。エラー応答テストシステムおよびテストマスク変数を使用して、他のタイプのエラーに対するアプリケーションの応答をテストすることができる。たとえば、エラー応答テストシステムは、ポーリングループでの失敗に対するアプリケーションの応答のテストにも適用可能である。たとえば、データポーリング技法は、しばしば、ＥＰＲＯＭプログラミングの完了を検出するのに使用される。データポーリングは、通常は、プログラミングが完了するか、ある最大時間が経過した後で終了するポーリングループを用いて実施される。テストマスク変数とＥＰＲＯＭプログラミング状況とのＡＮＤをとることによって、ＥＰＲＯＭプログラミング失敗に対するアプリケーションの応答を評価するために、ポーリングタイムアウトに起因してポーリングループを強制的に終了させることができる。
【００４３】
もう１つの例として、エラー応答テストシステムは、チェックサムエラーに対するアプリケーションの応答のテストにも適用可能である。チェックサムは、時々、データ転送にまたがるデータ保全性の検証に使用される。もう１つの実施形態では、リアルタイムでデータのチェックサムを計算し、期待されるチェックサムと比較して、不一致を検査することができる。実際のまたは期待されるチェックサムとテストマスク変数のＡＮＤをとることによって、チェックサム不一致に対するアプリケーションの応答を評価することができる。
【００４４】
もちろん、これらは、エラー応答テストシステムおよびテストマスク変数の多数の可能な使用のいくつかの例にすぎない。
したがって、本発明は、機能が高められ、またパフォーマンスが改善されたエラー応答テストのシステムおよび方法を提供する。エラー応答テストシステムは、被験アプリケーションにエラーを注入して、自動化され効率的な形で、被験アプリケーションのエラー応答をテストする能力を提供する。マスク変数参照を、アプリケーションに永久的に追加することができるので、アプリケーションの特殊なテストバージョンを備える必要なしに、アプリケーションのテストを実行できるようになる。さらに、特殊なデバッガまたはインサーキットエミュレータを使用する必要がなく、その代わりに、完全にソフトウェアで実施することができる。最後に、本発明は、自己検査式の自動化された繰り返し可能な形で実施することができる。これによって、定期的に実行されるテストスイートの一部としてテストを簡単に含められるようになり、そのテストをリアルタイムで実行できることが保証される。
【００４５】
本明細書に記載の実施形態および実施例は、本発明およびその特定の応用例を最もよく説明し、これによって当業者が本発明を作り、使用するのを可能にするために提示されたものである。しかし、前述の説明および例が、図示および例示のためだけに提示されていることを、当業者なら理解するであろう。示された説明は、網羅的であること、または開示された正確な形態に本発明を制限することを意図されたものではない。請求項の趣旨から逸脱せずに、上記の教示に鑑みて、多数の修正形態および変形形態が可能である。
【図面の簡単な説明】
【００４６】
【図１】コンピュータシステムを示す概略図である。
【図２】エラー応答テストシステム、アプリケーションプログラム、およびテストマスク変数を示す概略図である。
【図３】アプリケーションのエラー応答をテストする方法を示す流れ図である。
【図４】修正の前と後のテストマスク変数を示す概略図である。
【図５】サンプルテスト手順を示す概略図である。
【図１】
2005528716.tif 000003
【図２】
2005528716.tif 000004
【図３】
2005528716.tif 000005
【図４】
2005528716.tif 000006
【図５】
2005528716.tif 000007
【手続補正書】
【提出日】平成17年1月14日(2005.1.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アプリケーションプログラムをテストする方法であって、
ａ）テストマスク変数への参照を含む前記アプリケーションプログラムをメモリ（１８０）にロードする工程と、
ｂ）前記テストマスク変数を修正する工程であって、前記修正されたテストマスク変数は、前記アプリケーションプログラムにエラーを導入する、工程と、
ｃ）前記修正されたテストマスク変数が参照され、前記アプリケーションプログラム内でエラーが導入されるように、前記ロード済みアプリケーションプログラムを実行する工程と、
ｄ）前記エラーに対する前記ロード済みアプリケーションプログラムの応答を監視する工程と、
を含む方法。
【請求項２】
アプリケーションプログラムをテストする方法であって、
ａ）テストマスク変数への参照を含む前記アプリケーションプログラムをメモリ（１８０）にロードする工程と、
ｂ）前記テストマスク変数を修正する工程であって、前記修正されたテストマスク変数は、前記アプリケーションプログラムにエラーを導入する、工程と、
ｃ）前記修正されたテストマスク変数が参照され、前記アプリケーションプログラム内でエラーが導入されるように、前記ロード済みアプリケーションプログラムを実行する工程と、
ｄ）前記エラーに対する前記ロード済みアプリケーションプログラムの応答を監視する工程と、
ｅ）前記エラーに対する前記ロード済みアプリケーションプログラムの前記応答を監視する前記工程の後で、前記テストマスク変数を未修正の値に復元する工程と、
を含む方法。
【請求項３】
アプリケーションプログラムをテストする方法であって、
ａ）テストマスク変数への参照を含む前記アプリケーションプログラムをメモリ（１８０）にロードする工程であって、前記テストマスク変数は、複数のビットを含み、工程と、
ｂ）前記テストマスク変数を修正する工程であって、前記修正されたテストマスク変数は、前記アプリケーションプログラムにエラーを導入する、工程と、
ｃ）前記修正されたテストマスク変数は、前記アプリケーションプログラムが、前記アプリケーションプログラムによって使用されるプログラム値と前記テストマスク変数とのＡＮＤをとることによって参照されるように、また、前記アプリケーションプログラム内でエラーが導入されるように、前記ロード済みアプリケーションプログラムを実行する工程と、
ｄ）前記エラーに対する前記ロード済みアプリケーションプログラムの応答を監視する工程と、
ｅ）前記エラーに対する前記ロード済みアプリケーションプログラムの前記応答を監視する前記工程の後で、前記テストマスク変数を未修正の値に復元する工程と、
を含む方法。
【国際調査報告】
2005528716.tif 000008
2005528716.tif 000009
2005528716.tif 000010