(57)【特許請求の範囲】
【請求項１】
デバイスドライバー、デバイスマネージャー及びアプリケーションを含むシステムに対する例外処理テスト装置において、
欠陥モデル及びデバイスマネージャーから獲得した情報に基づき変形されたデバイスドライバーを生成する生成モジュール、
前記変形されたデバイスドライバーを利用して前記デバイスドライバーをフッキングするフッキングモジュール、
前記アプリケーションが動作する間、フッキングされ前記変形されたデバイスドライバーから前記アプリケーションに返還されるテスト情報を収集するスキャニングモジュール、及び
前記スキャニングモジュールにより収集されたテスト情報を分析する分析モジュールを含むことを特徴とする例外処理テスト装置。
【請求項２】
前記欠陥モデルは、アプリケーションとデバイスとの間の連結、デバイスオープン、連結解除、デバイス閉鎖、ヌル（ＮＵＬＬ）データ、データ誤謬、デバイス電源、及び処理遅延のうちの少なくとも一つであることを特徴とする請求項１に記載の例外処理テスト装置。
【請求項３】
前記テスト情報は、前記変形されたデバイスドライバーのオペレーション返還値、前記デバイスマネージャーで発生する例外コード値、前記アプリケーションの返還値、及びシステム異常コードのうちの少なくとも一つであることを特徴とする請求項１に記載の例外処理テスト装置。
【請求項４】
前記テスト情報が欠陥の発生を意味する場合、前記アプリケーションは前記発生した欠陥に従い例外処理を行うことを特徴とする請求項１に記載の例外処理テスト装置。
【請求項５】
前記例外処理が正常に行われない場合、前記分析モジュールは前記テスト情報を全体システムダウン、一部プロセスダウン、一部プロセスの非正常的な終了、一部プロセスの非正常的な動作、非正常リターンしてエラーコードなし、及び正常リターンして不正確なエラーコード返還のうちの少なくとも一つを分析することを特徴とする請求項４に記載の例外処理テスト装置。
【請求項６】
前記欠陥モデルは、テスト対象となるデバイス及びデバイスドライバーに従い変更されることを特徴とする請求項１に記載の例外処理テスト装置。
【請求項７】
デバイスドライバー、デバイスマネージャー及びアプリケーションを含むシステムに対する例外処理テスト方法において、
欠陥モデル及び前記デバイスマネージャーから獲得した情報に基づき変形されたデバイスドライバーを生成する生成段階、
前記変形されたデバイスドライバーを利用して前記デバイスドライバーをフッキングするフッキング段階、
前記アプリケーションが動作する間、フッキングされ前記変形されたデバイスドライバーから前記アプリケーションに返還されるテスト情報を収集するスキャニング段階、及び
収集されたテスト情報を分析する分析段階を含むことを特徴とする例外処理テスト方法。
【請求項８】
前記欠陥モデルは、アプリケーションとデバイスとの間の連結、デバイスオープン、連結解除、デバイス閉鎖、ヌル（ＮＵＬＬ）データ、データ誤謬、デバイス電源、及び処理遅延のうち少なくとも一つであることを特徴とする請求項７に記載の例外処理テスト方法。
【請求項９】
前記テスト情報は、前記変形されたデバイスドライバーのオペレーション返還値、前記デバイスマネージャーで発生する例外コード値、前記アプリケーションの返還値、及びシステム異常コードのうちの少なくとも一つであることを特徴とする請求項７に記載の例外処理テスト方法。
【請求項１０】
前記テスト情報が欠陥の発生を意味する場合、前記アプリケーションは前記発生した欠陥に伴い例外処理を行うことを特徴とする請求項７に記載の例外処理テスト方法。
【請求項１１】
前記例外処理が正常に行われない場合、前記分析段階は前記テスト情報を全体システムダウン、一部プロセスダウン、一部プロセスの非正常的な終了、一部プロセスの非正常的な動作、非正常リターンしてエラーコードなし、及び正常リターンして不正確なエラーコード返還のうちの少なくとも一つを分析することを特徴とする請求項１０に記載の例外処理テスト方法。
【請求項１２】
前記欠陥モデルは、テスト対象となるデバイス及びデバイスドライバーに従い変更されることを特徴とする請求項７に記載の例外処理テスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は例外処理テスト装置及び方法に関し、より詳しくは変形されたデバイスドライバーを利用して欠陥を発生させ、前記欠陥に対するシステムの例外処理の良否を確認する例外処理テスト装置及び方法に関する。
【背景技術】
【０００２】
多様なソフトウェア及びハードウェアを含むエンベデッドシステムにおいて、システムの運営環境で相互作用（ｉｎｔｅｒａｃｔｉｏｎ）する動作が重要である。したがって、ソフトウェアのみで構成されたテストのための仮想データでない、システムが実運営されながら得る実際データ（ｌｉｖｅ  ｅｎｖｉｒｏｎｍｅｎｔ  ｗｉｔｈ  ｒｅａｌ  ｄａｔａ）を利用する動作が重要であり、システムをテストしようとする場合にも、実運用データを利用してシステムテストを行って始めて潜在的欠陥、又は実運用上発生する欠陥を効果的に捜し出すことができる方案が求められる。
【０００３】
さらに、システムを構成するソフトウェアそれぞれを個別にテストするためには、連結する相対コンポーネントを代替するための装備を備えなければならず、加えて多くのテスト資源と費用を要するため、システムに含まれる全てのプロセスをリアルタイムでテストすることができ、メモリ空間のオーバーヘッド又は当該コード遂行による性能オーバーヘッドを最小化するテスト装置が求められる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、フッキング技術を利用して変形されたデバイスドライバーをシステムに挿入し、前記変形されたデバイスドライバーにより発生する欠陥を確認し、確認された欠陥に伴う例外処理の良否を確認することにより、実運営されるシステムに対するテストが可能であり、テスト資源のオーバーヘッドを最小化することができる例外処理テスト装置及び方法を提供することにある。
【課題を解決するための手段】
【０００５】
本発明は例外処理テスト装置に関し、欠陥モデル及びデバイスマネージャーから獲得した情報に基づき変形されたデバイスドライバーを生成する生成モジュール、前記変形されたデバイスドライバーを利用して前記デバイスドライバーをフッキングするフッキングモジュール、アプリケーションが動作する間、フッキングされた前記変形されたデバイスドライバーから前記アプリケーションに返還されるテスト情報を収集するスキャニングモジュール、及びスキャニングモジュールにより収集されたテスト情報を分析する分析モジュールを含む。
【０００６】
本発明は例外処理テスト方法に関し、欠陥モデル及びデバイスマネージャーから獲得した情報に基づき変形されたデバイスドライバーを生成する生成段階、前記変形されたデバイスドライバーを利用して前記デバイスドライバーをフッキングするフッキング段階、前記アプリケーションが動作する間、フッキングされた前記変形されたデバイスドライバーから前記アプリケーションに返還されるテスト情報を収集するスキャニング段階、及び収集されたテスト情報を分析する分析段階を含む。
【発明の効果】
【０００７】
本発明によれば、ソースコードでない実運営されるコードを対象にするので、システムが実際に運用される間にデバイスマネージャーを利用した例外処理テストを行うことができる。
【０００８】
さらに、それぞれのプロセスに対する個別的なコード挿入ではない所定のメモリ空間のプロセスコンテクスト情報を活用したフッキング方法を利用するので、システムのオーバーヘッドを最小化することができる。
【０００９】
さらに、プロセス間の共有資源が制限された場合にも、リアルタイムでテスト情報を収集してテスト結果を確認することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施例に係わる例外処理テスト装置が利用される全体システムを示す図である。
【図２】本発明の一実施例に係わる例外処理テスト装置の構成を示す図である。
【図３】本発明の一実施例に係わる例外処理テスト方法を示すフローチャートである。
【発明を実施するための形態】
【００１１】
本発明は、システムが実運営される環境でのテストに係り、システムの始動から終了までの動的状況の中でシステムをテストすることができる装置及び方法に関する。本発明は、コード挿入技術の一種であるフッキングを利用し、システム内で動作する全てのプロセスに対するテストを行うことができる。より詳しくは、システム内で動作するデバイスから発生可能な欠陥類型及び前記欠陥に対する例外処理テストを行うことができる。
【００１２】
図１は、本発明の一実施例に係わる例外処理テスト装置が利用される全体システムを示す図である。
【００１３】
図１に示したように、全体システムは例外処理テスト装置１００、システム２００、入力装置３００、格納装置４００及び出力装置５００を含む。
【００１４】
例外処理テスト装置１００は、システム２００に含まれたアプリケーションとデバイスとの間の通信過程で発生する欠陥類型、及び前記欠陥に対する例外処理をテストするための装置である。例外処理テスト装置１００は、システムに含まれたデバイスを管理するデバイスマネージャーを利用して変形されたデバイスドライバーを生成し、前記変形されたデバイスドライバーを利用して欠陥を生成することによりシステムをテストすることができる。前記例外処理テスト装置１００は、図１で示したようにシステム２００と独立に備えられてもよく、システム２００の内部に含まれる形態で具現されてもよい。
【００１５】
前記システム２００は、マルチプロセスが通信する全てのエンベデッドシステム及びコンピュータシステムであって、例えば、インフォテインメントシステム、マルチメディアシステム、有無線ネットワークシステムなどである。例えば、システム２００が車両インフォテインメントシステムの場合、システム２００はＡＶＮ（Ａｕｄｉｏ  Ｖｉｄｅｏ  Ｎａｖｉｇａｔｉｏｎ）機能を中心にＴＤＭＢ（Ｔｅｒｒｅｓｔｒｉａｌ  Ｄｉｇｉｔａｌ  Ｍｕｌｔｉｍｅｄｉａ  Ｂｒｏａｄｃａｓｔｉｎｇ）、ＴＰＥＧ（Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ）、ＩＰＯＤ、ＵＳＢ、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ(登録商標)）、ＶＲ（Ｖｏｉｃｅ  Ｒｅｃｏｇｎｉｔｉｏｎ）、ＰＧＳ（Ｐａｒｋｉｎｇ  Ｇｕｉｄａｎｃｅ  Ｓｙｓｔｅｍ）、ＲＤＳ（Ｒａｄｉｏ  Ｄａｔａ  Ｓｙｓｔｅｍ）、ＶＣＤＣ（Ｖｅｈｉｃｌｅ  ＣＤＣ）、ＤＩＳ（Ｄｒｉｖｅｒ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｙｓｔｅｍ）、ＲＳＥ（Ｒｅａｒ  Ｓｅａｔ  Ｅｎｔｅｒｔａｉｎｍｅｎｔ）、ＨＥＶ（Ｈｙｂｒｉｄ  Ｅｌｅｃｔｒｉｃ  Ｖｅｈｉｃｌｅ）ｄｉｓｐｌａｙ、ＡＨＵ（Ａｉｒ  Ｈａｎｄｌｉｎｇ  Ｕｎｉｔ）ｄｉｓｐｌａｙなどを含む。
【００１６】
さらに、前記システム２００はデバイス、前記デバイスとアプリケーションとの間のデータ送受信のためのデバイスドライバー、前記デバイスを管理するためのデバイスマネージャー及び前記デバイスマネージャーと連結されデバイスを利用して所定のプログラムを実行するアプリケーションを含む。したがって、例外処理テスト装置１００はデバイスマネージャーを利用して現在活性化されたデバイスドライバーを確認し、前記デバイスドライバーに対応する変形されたデバイスドライバーを生成し、前記変形されたデバイスドライバーを利用してデバイスドライバーをフッキングすることにより、例外処理テストを行う。ここで、デバイスはＵＳＢ、マルチメディアプレーヤーなどのハードウェアデバイスであって、アプリケーションが動作する装置と物理的に分離された装置であってもよい。本発明のシステム２００は、物理的に分離されたデバイス及びアプリケーションが動作する装置を含む概念である。
【００１７】
入力装置３００は、例外処理テスト装置１００及びシステム２００を駆動させるための使用者入力装置である。入力装置３００はキーボード又はタッチスクリーンに具現されてもよく、入力装置３００を介して入力される信号に応じてシステム２００に含まれるアプリケーションが実行され、例外処理テスト装置１００により変形されたデバイスドライバーがフッキングされたシステム２００が動作する。
【００１８】
格納装置４００は、例外処理テスト装置１００により収集された情報を格納する。前記例外処理テスト装置１００は格納装置４００と一つの装置に具現され、テスト情報を収集及び分析するとともに収集されたテスト情報を格納する。
【００１９】
出力装置５００は、例外処理テスト装置１００により収集されたテスト情報又は分析されたテスト結果を、イメージ又は音声で出力する装置である。
【００２０】
図２は、本発明の一実施例に係わる例外処理テスト装置の構成を示す図である。
【００２１】
図２に示したように、例外処理テスト装置１００は生成モジュール１０１、フッキングモジュール１０３、スキャニングモジュール１０５及び分析モジュール１０７を含む。例外処理テスト装置１００と連結されたシステム２００はデバイス（図示省略）、前記デバイスとアプリケーションとの間のデータ送受信のためのデバイスドライバー（図示省略）、前記デバイスを管理するデバイスマネージャー２０１及び前記デバイスマネージャー２０１と連結され、前記デバイスを介して所定の機能を具現するためのアプリケーション２０２を含む。例外処理テスト装置１００は二つ以上のデバイス（図示省略）、及びアプリケーション２０２に対する例外処理テストを行う。
【００２２】
デバイスマネージャー２０１は、システム２００に含まれた全てのデバイスドライバーに対するランタイム実行情報を有する。ここで、ランタイム実行情報とは、システム２００が動作するあいだ全てのデバイスとプロセスとの間の実行情報を意味する。即ち、デバイスマネージャー２０１はシステム２００内で活性化されたデバイス名及びデバイスドライバー、各デバイスドライバーで利用されるオペレーション及びそのオペレーションのスタートアドレス、デバイスドライバーがローディングされたメモリアドレス、メモリ空間などに対する情報を管理する。したがって、全てのシステム内で前記言及した情報を含むデータ構造又は装置は、本発明で意味するデバイスマネージャー２０１に該当する。
【００２３】
生成モジュール１０１は、デバイスマネージャー２０１を利用してシステム２００で現在動作しているデバイスドライバーに対する情報を収集し、欠陥モデル及び収集したデバイスドライバーに対する情報に従い変形されたデバイスドライバーを生成する。前記欠陥モデルは下記の図３に関連して詳しく説明する。
【００２４】
前記変形されたデバイスドライバーは、デバイスと送受信するデータを変形させてシステム動作の欠陥を発生させる。即ち、変形されたデバイスドライバーは各オペレーションで利用されるプロトコルデータをデバイスに従い分析し、デバイスを通過するデータを変形規則に従い変形させることにより、変形したデータをアプリケーションとデバイスとの間の通信過程で利用し、システム動作の欠陥を発生させる。変形規則の一実施例として、デバイスと送受信するデータが損失されるようにする変形規則、デバイスと送受信するデータに有効範囲の境界に該当する値を追加するようにする変形規則、データ送信障害によりデータ値が入りまじるようにする変形規則などがある。
【００２５】
入力装置３００によりテスト対象が先ず選択された後、テスト対象となるデバイスドライバーに対する情報を収集してもよく、現在動作しているデバイスドライバーに対する情報を収集した後、テスト対象となるデバイスドライバーを選択してもよい。
【００２６】
フッキングモジュール１０３は、原本デバイスドライバーを前記生成モジュール１０１により生成され変形されたデバイスドライバーでフッキングする。即ち、フッキングモジュール１０３は生成モジュール１０１により収集された情報を利用して原本デバイスドライバーをフッキングする。例えば、デバイスマネージャー２０１により管理される情報のうちテスト対象となるデバイスドライバーのオペレーションスタートアドレスを変形されたデバイスドライバーのオペレーションスタートアドレスに変更することにより、原本デバイスドライバーをフッキングする。したがって、システムが動作するあいだ原本デバイスドライバーが呼び出される代わりに、変形されたデバイスドライバーが呼び出される。
【００２７】
スキャニングモジュール１０５は、デバイスとアプリケーションが動作する間、変形されたデバイスドライバーにより実行されアプリケーションに返還されるテスト情報を収集する。例えば、デバイスドライバーのオペレーション返還値、デバイスマネージャー２０１で発生する例外コード値、アプリケーションの返還値又はシステム異常コードなどを収集する。さらに、スキャニングモジュール１０５はアプリケーション２０２が動作する間、欠陥判定に必要なシステム動的状態情報、例えば、関数パラメーター及び返還値、性能測定値などを収集する。
【００２８】
即ち、スキャニングモジュール１０５は変形されたデバイスドライバーにより変形されたデータを利用することにより発生するシステム動作の欠陥類型を収集し、前記欠陥に対するシステムの例外処理結果を確認する。
【００２９】
分析モジュール１０７は、前記スキャニングモジュール１０５により収集された例外及び例外処理結果を分析する。即ち、収集された情報に基づきアプリケーションが例外処理を正常に動作したのかしないのかが判断される。例えば、例外処理結果がＰＡＳＳの場合、システムが発生した例外に対し好適な例外コードを出力し、適切な処理を行ったと分析され、例外処理結果がＦＡＩＬの場合、システムが発生した例外に対して適宜処理できなかったと分析される。
【００３０】
前記例外処理結果がＦＡＩＬの場合は、全体システムダウン（Ｃａｔａｓｔｒｏｐｈｉｃ）、一部プロセスダウン（Ｒｅｓｔａｒｔ）、一部プロセスの非正常的な終了（Ａｂｏｒｔ）、一部プロセスの非正常的な動作（Ａｂｎｏｒｍａｌ）、非正常リターンしてエラーコードなし（Ｓｉｌｅｎｔ）、及び正常リターンして不正確なエラーコード返還（Ｈｉｎｄｅｒｉｎｇ）に分類される。
【００３１】
図３は、本発明の一実施例に係わる例外処理テスト方法を示すフローチャートである。
【００３２】
図３は、アプリケーションとデバイスとの間の通信過程で発生する欠陥、及び前記欠陥に対する例外処理テストを行うための例外処理テスト方法を示す。先ず、欠陥モデルが定義される（Ｓ１１０）。ここで、欠陥モデルとは、欠陥類型に従いテストされなければならないデバイス及びデバイスドライバーの欠陥発見／復旧のための情報を意味する。欠陥モデルは、テスト対象となるデバイス及びデバイスドライバーに従い変更される。定義された欠陥モデルに従い、システム２００が正常に動作する間にテスト情報を収集できる、変形されたデバイスドライバーが生成される。
【００３３】
ここで、アプリケーションとデバイスとの間の通信過程で発生する欠陥類型は、アプリケーションとデバイスとの間の連結（ＣＯＮＮＥＣＴＩＯＮ）、デバイスオープン（ＯＰＥＮ）、連結解除（ＤＩＳＣＯＮＮＥＣＴＩＯＮ）、デバイス閉鎖（ＣＬＯＳＥ）、データ入出力と関連してヌルデータ（ＮＵＬＬＤＡＴＡ）とデータ誤謬（ＩＬＬＥＧＡＬ  ＤＡＴＡ）と処理遅延（ＴＩＭＩＮＧ）、又はデバイス電源（ＰＯＷＥＲ）と関連した欠陥を発生させるコードである。前記欠陥類型は下記でより詳しく説明する。
【００３４】
次に、Ｓ１１０段階で定義された欠陥モデル、及びシステム２００で現在動作しているデバイスドライバーに対する情報に基づき、変形されたデバイスドライバーが生成される（Ｓ１２０）。
【００３５】
次に、原本デバイスドライバーが前記変形されたデバイスドライバーにフッキングされる（Ｓ１３０）。即ち、原本デバイスドライバーが呼び出される時点で、原本デバイスドライバーの代わりに変形されたデバイスドライバーが呼び出される。
【００３６】
次に、前記デバイスマネージャー２０１と連結されたアプリケーション２０２が駆動され、前記アプリケーション２０２が動作するに伴い、デバイスマネージャー２０１及びデバイス（図示省略）が共に動作する（Ｓ１４０）。
【００３７】
アプリケーション２０２が動作する間、変形されたデバイスドライバーにより実行された結果、即ち、システム動作で発生した欠陥及び前記欠陥に対するシステムの例外処理結果が収集される（Ｓ１５０）。Ｓ１５０段階で収集されるテスト情報は現在コールスタック情報、デバイスドライバー情報及びプロセス情報を含む。コールスタック情報を利用し、処理フロー中に如何なる問題が発生したのかが確認される。デバイスドライバー情報はリターン値、誤謬ＩＤなどを含み、プロセス情報はプロセスＩＤ及び名前を含む。
【００３８】
次に、Ｓ１５０段階で収集されたテスト情報が分析される（Ｓ１６０）。Ｓ１６０段階の分析結果に従い、アプリケーションが例外処理を正常に動作させたか否かを確認することができる。
【００３９】
本発明に係わる欠陥モデルは、アプリケーションとデバイスとの間の連結、デバイスオープン、連結解除、デバイス閉鎖、データ入出力と関連してヌルデータ（ＮＵＬＬ）とデータ誤謬及び処理遅延、又はデバイス電源に係わる欠陥などを含む。
【００４０】
連結に係わる欠陥は、デバイス連結初期化失敗、デバイスオープン失敗に分類される。
【００４１】
連結解除に係わる欠陥は、デバイス終了化失敗、デバイス連結解除失敗に分類される。
【００４２】
デバイス閉鎖に係わる欠陥は、デバイス閉鎖失敗に定義される。
【００４３】
ヌル（ＮＵＬＬ）データに係わる欠陥は、デバイスからのデータ読み取り失敗、デバイスへのデータ書き込み失敗、デバイスへのデータ探索失敗、デバイスからのＩＯＣＴＬデータ伝達失敗に分類される。
【００４４】
データ誤謬に係わる欠陥は、デバイスからの誤ったデータ読み取り、デバイスへの誤ったデータ読み取り、デバイスへの誤ったデータ探索、デバイスへの誤った値のＩＯＣＴＬ送信、デバイスからの誤った値のＩＯＣＴＬ送信に分類され得る。
【００４５】
デバイス電源に係わる欠陥は、デバイスパワーアップ失敗、デバイスパワーダウン失敗に分類される。
【００４６】
本発明は、プロセッサが読み取り可能な記録媒体に、プロセッサが読み取り可能なコードとして具現できる。プロセッサが読み取り可能な記録媒体は、プロセッサが読み取り可能なデータが格納される全ての種類の記録装置を含む。プロセッサが読み取り可能な記録媒体の例にはＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピー(登録商標)ディスク、光データ格納装置などがある。さらに、プロセッサが読み取り可能な記録媒体はネットワークで連結したコンピュータシステムに分散され、プロセッサが読み取り可能なコードが分散方式で格納され実行される。
【００４７】
本発明は、前述した一実施例に限定されず、特許請求範囲で記載された本発明の要旨を外れることなく、当該発明の属する技術分野の当業者により多様な変形実施が可能であり、このような変形実施等は本発明の技術的思想や展望から個別に理解されてはならない。
【産業上の利用可能性】
【００４８】
本発明によれば、システムが実際に運用される間にデバイスマネージャーを利用した例外処理テストを実行することが可能である。
【図１】
0005528640.tif 000002
【図２】
0005528640.tif 000003
【図３】
0005528640.tif 000004