[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2013535069A - システムテスト装置 - Google Patents

システムテスト装置 Download PDF

Info

Publication number
JP2013535069A
JP2013535069A JP2013518216A JP2013518216A JP2013535069A JP 2013535069 A JP2013535069 A JP 2013535069A JP 2013518216 A JP2013518216 A JP 2013518216A JP 2013518216 A JP2013518216 A JP 2013518216A JP 2013535069 A JP2013535069 A JP 2013535069A
Authority
JP
Japan
Prior art keywords
test
information
processes
control block
process control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013518216A
Other languages
English (en)
Other versions
JP5719930B2 (ja
Inventor
ジュ チォエ,ビョン
ヨン ソ,ジュ
ワン ヤン,スン
ヨン イム,ジン
スウ キム,ヨン
ヨン クォン,へ
ソク オ,ジョン
ヨン ジャン,スン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industry Collaboration Foundation of Ewha University
Original Assignee
Industry Collaboration Foundation of Ewha University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from PCT/KR2010/006068 external-priority patent/WO2012033237A1/ko
Application filed by Industry Collaboration Foundation of Ewha University filed Critical Industry Collaboration Foundation of Ewha University
Publication of JP2013535069A publication Critical patent/JP2013535069A/ja
Application granted granted Critical
Publication of JP5719930B2 publication Critical patent/JP5719930B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3636Debugging of software by tracing the execution of the program

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本発明は、システムテスト装置であって、プロセス制御ブロックにテストエージェントを挿入する挿入モジュールと、テスト対象と関連したイベントが発生する場合、前記テストエージェントを利用してテスト対象をテストコードにフッキングするフッキングモジュールと、前記テスト対象がフッキングされた場合、前記テスト対象と関連するイベントが発生したプロセスに対するテスト情報を収集するスキャニングモジュールと、前記スキャニングモジュールにより収集されたテスト情報を格納するロギングモジュールを含む。
【選択図】図2

Description

本発明はシステムテスト装置に係り、より詳しくは、システムの実行情報を含むプロセス制御ブロックを利用してシステムに対するテスト情報を実時間で収集するシステムテスト装置に関する。
多様なソフトウェア及びハードウェアを含むエンベデッドシステムにおいて、システムの運営環境で相互作用(interaction)する動作が重要である。したがって、ソフトウェアのみで構成されたテストのため仮想データでない、システムが実際運営されながら得ることになる実際データ(live environment with real data)を利用する動作が重要なので、システムをテストしようとする場合にも、実際運用データを利用してシステムテストを行ってこそ潜在的欠陥、又は実際運用上発生する運用上欠陥を効果的に探し出すことができる方案が求められる。
さらに、システムを構成するソフトウェアそれぞれを別途独立的にテストするためには、連結される相対コンポーネントを代替するための装備を備えなければならないなど、テスト資源と費用が多く要するため、システムに含まれた全てのプロセスを実時間でテストすることができ、メモリ空間のオーバーヘッド又は当該コード遂行による性能オーバーヘッドを最小化するテスト装置が求められる。
本発明は、フッキング技術を利用してシステムに対するメモリ誤謬テスト、性能テスト、及びシステムの内部に含まれたプロセス間の通信テストを行うことにより、実際運営されるシステムに対するテストが可能であり、システムのランタイム状況でも動的テストを行うことができ、システムが動作する間発生する欠陥を確認することができるシステムテスト装置を提供することにその目的がある。
本発明はシステムテスト装置であって、プロセス制御ブロックにテストエージェントを挿入する挿入モジュールと、テスト対象と関連したイベントが発生する場合、前記テストエージェントを利用してテスト対象をテストコードにフッキングするフッキングモジュールと、前記テストコードにフッキングされた場合、前記テスト対象と関連するイベントが発生したプロセスに対するテスト情報を収集するスキャニングモジュールと、前記スキャニングモジュールにより収集されたテスト情報を格納するロギングモジュールを含む。
さらに、本発明はシステムテストシステムであって、システムを駆動させるための信号の入力を受ける入力装置と、前記入力装置を介し入力された信号により前記システムが動作する間、前記プロセス制御ブロックにテストエージェントを挿入し、前記テストエージェントを利用してテスト対象をテストコードにフッキングし、前記複数のプロセス中テスト対象と関連するイベントが発生したプロセスに対するテスト情報を収集するシステムテスト装置と、前記システムテスト装置により収集されたテスト情報を分析する分析装置とを含む。
本発明によれば、ソースコードでない実際運営されるコードを対象にするので、システムが実際に運用される間にもシステムに対するテストを行うことができる。したがって、システムが実際動作する間メモリ誤謬、システム性能、プロセス間の通信をテストすることができる。
さらに、それぞれのプロセスに対する個別的なコード挿入でない、プロセス制御ブロックに含まれた情報を活用したフッキング方法を利用するので、システムオーバーヘッドを最小化することができ、動作するシステムを妨ぐことなくシステムに対するテストを行うことができる。
さらに、プロセス間の共有資源が制限された場合も、実時間でテスト情報を収集しテスト結果を確認することができる。
本発明の一実施形態に係るシステムテスト装置が利用される全体システムを示す図である。 本発明の一実施形態に係るシステムテスト装置の構成を示す図である。 本発明の一実施形態に係るシステムテスト方法を示すフローチャートである。 本発明の一実施形態に係るメモリテスト方法、性能テスト方法及びプロセス間の通信テスト方法を示すフローチャートである。 本発明の一実施形態に係るメモリテスト方法、性能テスト方法及びプロセス間の通信テスト方法を示すフローチャートである。 本発明の一実施形態に係るメモリテスト方法、性能テスト方法及びプロセス間の通信テスト方法を示すフローチャートである。
以下、添付の図面を参照して、本発明の好ましい実施例を説明する。
本発明は、システムが実際運営される環境でのテストであり、システムが開始され終了されるまでの動的状況でシステムをテストすることができる装置及び方法に関する。本発明は、フッキング技法を利用して、システム内で動作する全てのプロセスに対するテストを行うことができる。
図1は、本発明の一実施形態に係るシステムテスト装置が利用される全体システムを示す図である。図1に示す通り、全体システムはシステムテスト装置100、システム200、入力装置300、分析装置400及び出力装置500を含む。システムテスト装置100は、システム200に対するメモリ欠陥、システム200の性能又はシステム200に含まれた2つ以上のプロセス間の通信をテストするための装置である。システムテスト装置100は、図1に示す通り、システム200と独立的に備えられてもよく、システム200の内部に含まれる形態に具現されてもよい。
システム200は、システムテスト装置100のテスト対象となるシステムであって、多様なソフトウェア及びハードウェアが統合されたエンベデッドシステムである。システムテスト装置100のテスト対象となるシステムは、複数のプロセスを含む1つ以上のシステムを意味する。したがって、複数のシステムのメモリ欠陥又はシステム性能もテスト対象となり得、1つのシステムに含まれる複数のプロセス間の通信だけでなく、互いに異なるシステムに含まれたプロセス等の間の通信もシステムテスト装置100のテスト対象となり得る。
前記システム200は、マルチプロセスが通信する全てのエンベデッドシステム及びコンピュータシステムであって、例えば、インフォテインメントシステム、マルチメディアシステム、有無線ネットワークシステムなどになり得る。例えば、システム200が車両インフォテインメントシステムの場合、システム200はAVN(Audio Video Navigation)機能を中心にTDMB(Terrestrial Digital Multimedia Broadcasting)、TPEG(Transport Protocol Expert Group)、IPOD、USB、ブルートゥース(Bluetooth(登録商標))、VR(Voice Recognition)、PGS(Parking Guidance System)、RDS(Radio Data System)、VCDC(Vehicle CDC)、DIS(Driver Information System)、RSE(Rear Seat Entertainment)、HEV(Hybrid Electric Vehicle)display、AHU(Air Handling Unit)displayなどを含む。
入力装置300は、システムテスト装置100及びシステム200を駆動させるための使用者入力装置である。入力装置300は、キーボード又はタッチスクリーンに具現されてもよく、入力装置300を介し入力される信号に応じてシステム200が駆動される。さらに、入力装置300を介し入力される信号に応じてシステムテスト装置100がシステムテストのための動作を行う。
分析装置400は、システムテスト装置100により収集されたテスト情報を分析しシステム200のテスト結果を確認する。前記システムテスト装置100は分析装置400と1つの装置に具現され、テスト情報を収集すると共に、収集されたテスト情報を分析しテスト結果を確認することもできる。
出力装置500は、システムテスト装置100により収集されたテスト情報、又は分析装置400により分析されたテスト結果をイメージ又は音声で出力する装置である。出力装置500を介し、使用者はシステムテスト結果を確認することができる。
図2は、本発明の一実施形態に係るシステムテスト装置の構成を示す図である。図2に示す通り、システムテスト装置100は挿入モジュール101、フッキングモジュール103、スキャニングモジュール105及びロギングモジュール107を含む。図2で、システムテスト装置100と連結されテスト対象となるシステム200は、2つ以上のプロセスを含む1つのシステムと仮定する。
システム200は、プロセス制御ブロック(Process Control Block)201を含む。プロセス制御ブロック201は、システム200に含まれた全てのプロセスに対するランタイム実行情報を有する。ここで、ランタイム実行情報とは、システム200が動作する間全てのプロセス間の実行情報を意味する。したがって、プロセス制御ブロック201は、システム200に含まれた全てのプロセスに対する資源使用現況、プロセス状態、優先順位、関数テーブルなどを含むことができる。より詳しくは、プロセスID、プロセス名、現行プロセス、現行スレッド、システムで行われているプロセスリスト、モジュールリスト、システムページサイズ、使用可能な物理メモリサイズ、CPU使用量、使用中の資源リスト、要請中のI/Oデバイス状態、オープンされたファイル情報、レジスタ情報などを含むことができる。したがって、全てのシステム内で前記言及された情報を含むデータ構造又は装置は、本発明で意味するプロセス制御ブロックに該当する。
挿入モジュール101は、プロセス制御ブロック201にテストエージェントを挿入する。テストエージェントは、プロセス制御ブロック201に含まれた情報に基づきテスト対象をテストコードにフッキングし、テスト情報を収集することができる。テストコードがフッキングされるテスト位置は、欠陥の類型に従い定義され得る。本発明で、テストコードにフッキングされるテスト対象は、テスト対象となるメモリ領域、システムの性能情報を含むコード、又は通信関連イベントを発生させるコードなどになり得る。本発明で、テストエージェントがプロセス制御ブロック201に挿入される前に、先ずシステム200は正常に動作しており、システム200はシステムテスト装置100の動作により影響を受けず正常に動作する。
さらに、挿入モジュール101は、システム200で動作しているプロセスリストを確認し、確認されたプロセスリストに基づきテストエージェントを挿入することができる。フッキングモジュール103は、前記挿入モジュール101により挿入されたテストエージェントを利用してテスト対象をテストコードにフッキングする。前記テストコードはテストしようとする対象及び欠陥の類型に従い変更される。即ち、メモリ欠陥テスト、性能テスト及び通信テストに従いテストコードがそれぞれ変化し、通信テストにおいてもテストしようとする欠陥の類型に従いテストコードが変化し得る。さらに、フッキングモジュール103は、テスト対象がテストコードにフッキングされるテスト位置を変更することができる。
テストコードがフッキングされるとのことは、動作しているシステム200内でテスト対象と関連イベントが発生する場合、挿入されたテストエージェントが原本コードの動作を含むテストコードが行われるようOSのプロセス制御ブロックをフッキングするとのことを意味する。プロセス制御ブロックに含まれる情報から、フッキングモジュール103はテスト対象と関連するイベントが発生するのか確認することができる。
スキャニングモジュール105は、テストコードがフッキングされた場合、前記テスト対象と関連するイベントが発生したプロセスに対するテスト情報を収集する。ここで、テスト情報は、既に発生したイベントに対する情報だけでなく、テストコードフッキングに伴い新たに発生するイベントまで含むことができる。収集されるテスト情報はテスト段階、テスト目的、テストしようとする欠陥の類型に従い変化する。したがって、スキャニングモジュール105は、システムテスト結果の分析に必要なシステム動的状態情報、例えば、関数パラメータ及び返還値、性能測定値、共有資源使用リストなどを収集する。
ロギングモジュール107は、前記スキャニングモジュール105により収集されたテスト情報を格納空間に格納する。格納空間はロギングモジュール107に備えられてもよく、ロギングモジュール107と別個の装置に具現されてもよい。図1に示した分析装置400は、スキャニングモジュール105により収集されたテスト情報、又はロギングモジュール107により格納されたテスト情報を分析することができる。
図3は、本発明の一実施形態に係るシステムテスト方法を示すフローチャートである。図3に示す通り、テスト対象となるシステム200のプロセス制御ブロック201にテストエージェントが挿入される(S110)。システム200は、テストエージェントが挿入される前から正常に動作している。
次に、テスト対象と関連するイベントが発生する場合、挿入されたテストエージェントを介しテスト対象がテストコードにフッキングされる(S120)。テスト対象がテストコードにフッキングされることにより、前記イベントが発生したプロセスの代わりにテストコードが行われ得る。次に、テスト対象がテストコードにフッキングされた場合、前記テスト対象と関連するイベントが発生したプロセスに対するテスト情報が収集される(S130)。次に、収集されたテスト情報は格納される(S140)。ここで、テスト情報は、テスト対象がテストコードにフッキングされている間にのみ収集され得、テスト対象がテストコードにフッキングされた後、システムが動作する間全て収集されることもある。
図4は、本発明の一実施形態に係るメモリ欠陥テスト方法、性能テスト方法及びプロセス間の通信テスト方法を示すフローチャートである。図4aは、メモリ欠陥テストを行うためのシステムテスト方法を示す図である。先ず、欠陥モデルが定義される(S150)。ここで、欠陥モデルとは、欠陥の類型に従いテストされなければならないメモリ位置及び欠陥の発見/復旧のためのテスト情報を意味する。定義された欠陥モデルに従い、システム200が正常に動作する間テスト情報を収集することができるテストコードが生成され得る。
次に、システム200のプロセス制御ブロック201にテストエージェントが挿入される(S151)。テストエージェントは、システム200で動作しているプロセスリスト中少なくとも1つに挿入され得る。次に、フッキングモジュール103は、プロセス制御ブロック201に含まれた情報及び欠陥モデルに基づきフッキングするメモリ領域を識別し、識別されたメモリ領域にテストコードをフッキングする(S152)。メモリ領域を識別した結果、テスト位置がSYSTEM API(Application Process Interface)関数の場合、フッキングモジュール103はプロセス制御ブロック201のAPISetをフッキング領域と識別する。テスト位置がDLL(Dynamic Linking Library)EXPORT関数の場合、フッキングモジュール103はプロセス制御ブロック201のIAT(Import Address Table)をフッキング領域と識別する。その他の場合、フッキングモジュール103はプロセス制御ブロック201のコード空間をフッキング領域と識別する。
図4aで、テストコードがフッキングされるとのことは、動作しているシステム200内でテスト対象であるメモリ位置に、メモリに対する書込み、読取り、接近などのイベントが発生する場合、挿入されたテストエージェントが原本コードの動作を含むテストコードが行われるようOSのプロセス制御ブロックをフッキングするとのことを意味する。
次に、テスト対象であるメモリ状態に対する情報が収集される(S153)。例えば、欠陥原因の識別に必要なプログラム実行情報が収集され、欠陥位置の識別に必要なプロセスコンテクスト情報が収集され、メモリ性能分析に必要なシステム状態情報が収集され得る。次に、S153段階で収集されたテスト情報が格納される(S154)。
図4bは、性能テストを行うためのシステムテスト方法を示す図である。本発明に係るシステムテスト方法は、性能ボトルネックとその原因を分析するため、プロセス制御ブロック201のデータ中ページフォールト率、プロセッサ使用率のようなシステム実行情報等をフッキングしシステム性能を分析することができる。ここで、性能は、システムやコンポーネント等が与えられたシステムの制約条件下で機能を行う程度を意味する。性能テストは、特定性能の要求事項をシステムが満足するのかに関する評価である。このような性能テストを介して性能ボトルネックとその原因を分析し、これを解決することによりシステムの性能を改善することができる。
システムの性能ボトルネックは、メモリ、I/Oデバイス、ネットワークのような制限された資源等に対する競争でシステムの性能が低下する現象である。システム性能ボトルネックの原因は、資源不足、共有資源競合、資源独占、資源の誤った構成、又は資源の誤った動作のように多様である。先ず、欠陥モデルが定義される(S160)。ここで、欠陥モデルとは、欠陥の類型に従いテストされなければならない性能ボトルネックの位置及び性能ボトルネックを判定するシステム状態を表すテスト情報を意味する。定義された欠陥モデルに従い、システム200が正常に動作する間テスト情報を収集することができるテストコードが生成され得る。
挿入モジュール101は、プロセス制御ブロック201にテストエージェントを挿入する(S161)。挿入モジュール101は、システム200で動作しているプロセスリストを確認し、確認されたプロセスリストに基づきテストエージェントを挿入することができる。即ち、現行プロセス(Current Process)に関するプロセス制御ブロック201のbase addressは、特定のメモリ空間に管理されるか、場合に応じて予め固定されたアドレスに管理されるため、現行プロセスのプロセス制御ブロック201の情報が分かる。
次に、フッキングモジュール103は、テスト対象にテストコードをフッキングする(S162)。テスト対象がテストコードにフッキングされた場合、スキャニングモジュール105はシステムの性能情報を収集する(S163)。例えば、timer−interruptを用いて指定された時間間隔(e.g.1sec、100msec)ごとに性能データを測定することができる。さらに、システム性能をシステム単位だけでなく、プロセスとスレッドの単位にまで分析するため、プロセス制御ブロック201のプロセスとスレッドリスト等を循環しながら性能情報を測定することができる。
システム性能ボトルネックが発生する位置を詳しく追跡するため、スキャニングモジュール105はスレッド別にコールスタック(Call−stack)情報を格納することができ、各モニタリング単位別に測定される性能情報は、次の通りである。プロセス制御ブロック201の性能情報は、プロセッサ使用量、メモリ使用量、ページフォールト(Page Fault)、プロセスコンテクスト情報、プロセスコールスタック、プロセスヒープ使用量、プロセス状態、プロセス優先順位中1つ以上を含むことができる。プロセス制御ブロック201のプロセスに対する性能情報は、アイディー(ID)、プロセスの状態、プロセスの優先順位、ヒープ(Heap)使用量、プロセスの動作時間、使用時間、カーネル使用時間中1つ以上を含むことができる。さらに、プロセス制御ブロック201のスレッドに対する性能情報は、アイディー、運営状態(Run State)、基本優先順位、現在優先順位、使用時間、カーネル使用時間、コールスタック情報中1つ以上を含むことができる。
次に、ロギングモジュール107は、収集されたテスト情報を格納空間に格納する(S164)。性能テストを行うためのシステムテスト方法は、ページフォールトを基準にメモリボトルネックを判断することができる。例えば、ページフォールトが高ければメモリボトルネックであり得る。ページフォールトとは、プログラムが自分のアドレス空間には存在するがシステムのメモリには現在ないデータやコードに接近を試みた場合に発生する現象である。ページフォールトが発生すれば、運営体制はそのデータをメモリに持って来て、まるでページフォールトが全く発生しなかったもののようにプログラムが継続的に作動するようにする。運営体制のページフォールトに対する例外処理のためアプリケーションの処理時間は遅延され、全体システム性能に影響を及ぼす。
さらに、本発明に係るシステムテスト方法は、メモリ使用量を介し性能ボトルネックを識別することができる。システムのメモリは物理メモリ使用量、仮想メモリ使用量があり、プロセス別にヒープメモリ使用量で区分することができる。本発明に係るシステムテスト方法は、このようなメモリ使用量等の合計を基準に性能ボトルネックを判断する。
さらに、本発明に係るシステムテスト方法は、プロセッサ使用量(或いはCPU使用量)を介し性能ボトルネックを識別することができる。例えば、本発明に係るシステムテスト方法は、プロセッサ使用量が高く維持されながら余裕メモリがある場合は、CPUにボトルネックがあると判断することができる。その反面、プロセッサ使用量が高くメモリも枯渇していれば、性能問題はCPUよりメモリボトルネックと判断することができる。
さらに、本発明に係るシステムテスト方法は、プロセス使用量(Processor Usage)に基づき性能ボトルネックを識別することができる。プロセス使用量はシステムの実行時間であって、全体CPU使用量から待機時間(Idle Time)を除いた時間を意味する。さらに、本発明に係るシステムテスト方法は、使用時間(User Time)に従い性能ボトルネックを判断することができる。使用時間は、実行が使用者空間で留まった時間を意味し、即ちアプリケーションの実行時間を意味する。さらに、本発明に係るシステムテスト方法は、カーネル使用時間 (Kernel Time)に従い性能ボトルネックを判断することができる。カーネル使用時間は、実行がカーネル空間で留まった時間であって、カーネルのサービス処理時間を意味する。
図4cは、複数のプロセス間の通信に対するテストを行うためのシステムテスト方法を示す図である。図4cに係るシステム方法を行うシステムテスト装置100は、システム200に含まれた全てのプロセス間の資源共有及び意思伝達が正確になされるのかを判断可能なテスト情報を収集することができる。
先ず、欠陥モデルが定義される(S170)。ここで、欠陥モデルとは、欠陥の類型に従いテストされなければならないプロセス間の通信位置及び欠陥の発見/復旧のためのテスト情報を意味する。定義された欠陥モデルに従い、システム200が正常に動作する間テスト情報を収集することができるテストコードが生成され得る。テスト対象となるシステム200のプロセス制御ブロック201にテストエージェントが挿入される(S171)。挿入モジュール101は、前記プロセスリスト中2つ以上のプロセスをテスト対象に選定し、選定されたプロセス間の通信をテストするためのテストエージェントを挿入することもできる。
次に、複数のプロセス間に通信関連イベントが発生する場合、挿入されたテストエージェントを利用しテスト対象がテストコードにフッキングされる(S172)。テスト対象がテストコードにフッキングされるとのことは、動作しているシステム200内で複数のプロセス間に通信関連イベントが発生する場合、挿入されたテストエージェントが原本コードの動作を含むテストコードが行われるようOSのプロセス制御ブロックをフッキングするとのことを意味する。プロセス制御ブロックに含まれる情報から、フッキングモジュール103は如何なるプロセスの間に如何なる類型の通信関連イベントが発生するのかを確認することができる。ここで、通信関連イベントとは、複数のプロセス間にメッセージ送信、共有データ送信、共有メモリ使用、メッセージキュー使用、同期化客体使用などを意味する。
テストコードは、前記複数のプロセス間のメッセージ送信、メッセージキュー、共有メモリ又は同期化客体と関連する欠陥の類型を確認するためのコードである。例えば、テストコードはSendMessage()、PostMessage()のような第1の関数、及びテストしようとする欠陥の類型に従い必要な第2の関数を含み、システムに含まれたプロセス等はそれぞれ第1の関数を含む。したがって、第1のプロセス及び第2のプロセスの間に通信関連イベントが発生する場合、フッキングモジュール103は、挿入された通信エージェントを利用し第1のプロセス及び第2のプロセスで第1の関数が行われる段階で、第1のプロセス及び第2のプロセスの第1の関数に代えてテストコードを行わせることにより、テストコードをフッキングする。第1のプロセス及び第2のプロセスで第1の関数が行われる段階は、プロセス制御ブロックに含まれた情報から確認される。一方、テスト対象が複数のプロセス間の通信なので、テストしようとする欠陥の類型に従い送信側又は受信側に該当する一方のプロセスにのみテストコードをフッキングすることもできる。
次に、スキャニングモジュール105は、テスト対象がフッキングされた場合、前記通信関連イベントが発生した複数のプロセス間の通信に対するテスト情報を収集する(S174)。ここで、複数のプロセス間の通信とは、既に発生した通信関連イベントだけでなく、テストコードフッキングに従い発生する通信関連イベントまで含む。収集されるテスト情報はテスト段階、テスト目的、テストしようとする欠陥の類型に従い変化する。したがって、スキャニングモジュール105は、複数のプロセス間の通信に対し欠陥の判定に必要なシステム動的状態情報、例えば、関数パラメータ及び返還値、性能測定値、共有資源使用リストなどを収集する。テスト情報は、前記複数のプロセスのコールスタック情報、前記複数のプロセス間に送受信される通信類型、通信アイディー、通信データ、前記複数のプロセス間の通信で発生した遅延時間などを含むことができる。
次に、ロギングモジュール107は、前記スキャニングモジュール105により収集されたテスト情報を格納空間に格納する(S175)。格納空間は、ロギングモジュール107に備えられてもよく、ロギングモジュール107と別個の装置に具現されてもよい。図1に示した分析装置400は、スキャニングモジュール105により収集されたテスト情報又はロギングモジュール107により格納されたテスト情報を分析することができる。
複数のプロセス間の通信に対するテストを行うため利用されるテストコードは、プロセス間のメッセージ送信、メッセージキュー、共有メモリ又は同期化客体と関連する欠陥の類型を確認するためのコードになり得る。メッセージ送信(Message Passing)と関連する欠陥の類型は、指定時間内メッセージ送信失敗(同期)、メッセージデッドロック(同期)、メッセージ処理遅延(同期)、メッセージ損失(同期)、メッセージ変更(同期)、メッセージキューへの挿入失敗(非同期)、メッセージ処理遅延(非同期)、メッセージ損失(非同期)、又はメッセージ変更(非同期)に分類され得る。
メッセージキュー(Message Queue)と関連する欠陥の類型は、メッセージキュー生成失敗、メッセージキュー閉じ失敗、メッセージキューからの読取り失敗、又はメッセージキューへの書込み失敗に分類され得る。共有メモリ(Shared Memory)と関連する欠陥の類型は、共有メモリ生成失敗でもあり得る。同期化客体(Synchronization Object)と関連する欠陥の類型は、生成していない同期化客体使用、生成した同期化客体使用しない、又は使用した同期化客体解除しないに分類され得る。したがって、各欠陥の類型に従いテストコードが変更される。
前記のように、本発明に係るシステムテスト装置100は、動作しているシステム200に影響を与えずともテストエージェント挿入、テストコードフッキング、テスト情報収集を実施することができ、前記システムテスト装置100によるシステムテストは、システムに含まれたプロセス制御ブロックに含まれた情報に基づき実施される。
本発明は、プロセッサが読取り可能な記録媒体にプロセッサが読取り可能なコードとして具現することが可能である。プロセッサが読取り可能な記録媒体は、プロセッサにより読み取られ得るデータが格納される全ての種類の記録装置を含む。プロセッサが読取り可能な記録媒体の例にはROM、RAM、CD−ROM、エムティー、フロッピー(登録商標)、光データ格納装置などがある。さらに、プロセッサが読取り可能な記録媒体はネットワークで連結されたコンピュータシステムに分散され、分散方式でプロセッサが読取り可能なコードが格納され行われ得る。
本発明は、前述の一実施形態に限定されず、請求の範囲で請求する本発明の要旨を外れることがなく、当該発明の属する技術分野で通常の知識を有する者により多様な変形実施が可能であり、このような変形実施等は、本発明の技術的思想や展望から個別的に理解されてはならないはずである。
本発明は、システムが実際に動作する間メモリ誤謬、システム性能、プロセス間の通信をテストすることができる。

Claims (20)

  1. 複数のプロセス及び前記複数のプロセスに対するランタイム実行情報を含むプロセス制御ブロックを含むシステムに対するシステムテスト装置において、
    前記プロセス制御ブロックにテストエージェントを挿入する挿入モジュールと、
    テスト対象と関連したイベントが発生する場合、前記テストエージェントを利用してテスト対象をテストコードにフッキングするフッキングモジュールと、
    前記テスト対象がフッキングされた場合、前記テスト対象と関連するイベントが発生したプロセスに対するテスト情報を収集するスキャニングモジュールと、
    前記スキャニングモジュールにより収集されたテスト情報を格納するロギングモジュールと、を含むシステムテスト装置。
  2. 前記プロセス制御ブロックは、前記複数のプロセスに対する資源使用現況、プロセス状態、優先順位及び関数テーブルのうち少なくとも1つを含むことを特徴とする請求項1に記載のシステムテスト装置。
  3. 前記テストコードは、欠陥の類型に従い定義されることを特徴とする請求項2に記載のシステムテスト装置。
  4. 前記フッキングモジュールは、前記欠陥の類型に伴うテスト位置に従いメモリ領域を識別し、識別されたメモリ領域をテストコードにフッキングすることを特徴とする請求項3に記載のシステムテスト装置。
  5. 前記テスト情報は、プログラム実行情報、プロセスコンテクスト情報及びシステム状態情報のうち少なくとも1つであることを特徴とする請求項3に記載のシステムテスト装置。
  6. 前記スキャニングモジュールは、前記プロセス制御ブロックの性能情報を測定することを特徴とする請求項2に記載のシステムテスト装置。
  7. 前記プロセス制御ブロックの性能情報は、プロセッサ使用量、メモリ使用量、ページフォールト(Page Fault)、プロセスコンテクスト情報、プロセスコールスタック、プロセスヒープ使用量、プロセス状態、プロセス優先順位のうち少なくとも1つであることを特徴である請求項6に記載のシステムテスト装置。
  8. 予め設定された時間間隔ごとに前記プロセス制御ブロックの性能情報を測定することを特徴とする請求項6に記載のシステムテスト装置。
  9. 前記プロセス制御ブロックのプロセス及びスレッド(Thread)に対する性能情報を測定することを特徴とする請求項6に記載のシステムテスト装置。
  10. 前記プロセス制御ブロックのプロセスに対する性能要素は、アイディー(ID)、プロセスの状態、プロセスの優先順位、ヒープ(Heap)使用量、プロセスの動作時間、使用時間、カーネル使用時間中1つ以上を含むことを特徴とする請求項9に記載のシステムテスト装置。
  11. 前記プロセス制御ブロックのスレッドに対する性能要素は、アイディー、運営状態(Run State)、基本優先順位、現在優先順位、使用時間、カーネル使用時間、コールスタック(Call Stack)中1つ以上を含むことを特徴とする請求項9に記載のシステムテスト装置。
  12. 前記テスト対象と関連するイベントは、前記複数のプロセス間のメッセージ送信、共有データ送信、共有メモリ使用、メッセージキュー使用、同期化客体使用のうち少なくとも1つであることを特徴とする請求項2に記載のシステムテスト装置。
  13. 前記テストコードは、前記複数のプロセス間のメッセージ送信、メッセージキュー、共有メモリ及び同期化客体のうち少なくとも1つの欠陥の類型を確認するためのコードであることを特徴とする請求項12に記載のシステムテスト装置。
  14. 前記テスト情報は、前記複数のプロセスのコールスタック情報、前記複数のプロセス間に送受信される通信類型、通信アイディー、通信データ及び前記複数のプロセス間の通信で発生した遅延時間のうち少なくとも1つであることを特徴とする請求項12に記載のシステムテスト装置。
  15. 前記テスト情報は、システム動的状態情報、プロセス状態情報、及び前記複数のプロセス間の通信情報を含むことを特徴とする請求項12に記載のシステムテスト装置。
  16. 複数のプロセス及び前記複数のプロセスに対するランタイム実行情報を含むプロセス制御ブロックを含むシステムに対するシステムテストシステムにおいて、
    前記システムを駆動させるための信号の入力を受ける入力装置と、
    前記入力装置を介し入力された信号により前記システムが動作する間、前記プロセス制御ブロックにテストエージェントを挿入し、前記テストエージェントを利用してテスト対象をテストコードにフッキングし、前記複数のプロセスのうちテスト対象と関連するイベントが発生したプロセスに対するテスト情報を収集するシステムテスト装置と、
    前記システムテスト装置により収集されたテスト情報を分析する分析装置と、を含むシステムテストシステム。
  17. 前記プロセス制御ブロックは、前記複数のプロセスに対する資源使用現況、プロセス状態、優先順位及び関数テーブルのうち少なくとも1つを含むことを特徴とする請求項16に記載のシステムテストシステム。
  18. 前記テストコードがフッキングされるテスト位置は、欠陥の類型に従い変更され得ることを特徴とする請求項16に記載のシステムテストシステム。
  19. 前記テスト情報は、プログラム実行情報、プロセスコンテクスト情報、システム状態情報、プロセッサ使用量、メモリ使用量、ページフォールト(Page Fault)、前記複数のプロセスのコールスタック情報、前記複数のプロセス間に送受信される通信類型、通信アイディー、通信データ及び前記複数のプロセス間の通信で発生した遅延時間のうち少なくとも1つであることを特徴とする請求項16に記載のシステムテストシステム。
  20. 前記分析装置により分析されたテスト結果をイメージ又は音声で出力する出力装置をさらに含む請求項16に記載のシステムテストシステム。
JP2013518216A 2010-06-28 2011-03-15 システムテスト装置 Active JP5719930B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
KR10-2010-0061455 2010-06-28
KR20100061455 2010-06-28
KRPCT/KR2010/006068 2010-09-07
PCT/KR2010/006068 WO2012033237A1 (ko) 2010-09-07 2010-09-07 시스템 테스트 방법
PCT/KR2011/001803 WO2012002635A1 (ko) 2010-06-28 2011-03-15 시스템 테스트 장치

Publications (2)

Publication Number Publication Date
JP2013535069A true JP2013535069A (ja) 2013-09-09
JP5719930B2 JP5719930B2 (ja) 2015-05-20

Family

ID=45402314

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013518216A Active JP5719930B2 (ja) 2010-06-28 2011-03-15 システムテスト装置

Country Status (7)

Country Link
US (1) US9354996B2 (ja)
EP (1) EP2587379B1 (ja)
JP (1) JP5719930B2 (ja)
KR (1) KR101459867B1 (ja)
CN (1) CN102959519B (ja)
CA (1) CA2802415C (ja)
WO (1) WO2012002635A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225302B2 (en) * 2003-02-13 2012-07-17 Lawrence Taylor Waugh System and method for managing source code and acquiring metrics in software development
EP2513860B1 (en) * 2009-12-16 2018-08-01 Intel Corporation A graphics pipeline scheduling architecture utilizing performance counters
US9354996B2 (en) 2010-06-28 2016-05-31 Hyundai Motor Company System test apparatus
WO2012033237A1 (ko) * 2010-09-07 2012-03-15 현대자동차주식회사 시스템 테스트 방법
CA2801312C (en) 2011-03-15 2016-06-07 Byoung-Ju Choi Communication test apparatus and method
US8996919B2 (en) * 2012-03-13 2015-03-31 Invensense, Inc. Method and system providng a self-test on one or more sensors coupled to a device
US9092564B2 (en) * 2013-02-15 2015-07-28 Microsoft Technology Licensing, Llc Call stacks for asynchronous programs
CN103810099B (zh) * 2013-11-21 2017-05-24 北京奇虎科技有限公司 代码跟踪方法及其系统
KR102210544B1 (ko) * 2014-11-21 2021-02-01 삼성전자주식회사 전자 시스템의 결함 분석 방법
CN105468522A (zh) * 2015-11-20 2016-04-06 浪潮电子信息产业股份有限公司 一种基于Linux系统CPU负载控制下的软件压力测试方法
CN105426310B (zh) * 2015-11-27 2018-06-26 北京奇虎科技有限公司 一种检测目标进程的性能的方法和装置
CN107885623A (zh) * 2016-09-30 2018-04-06 北京机电工程研究所 基于com组件技术的pxi模块网络化方法
CN109460328A (zh) * 2018-10-11 2019-03-12 联宝(合肥)电子科技有限公司 一种测试设备的管理系统、方法及电子设备
CN109684219A (zh) * 2018-12-26 2019-04-26 百度在线网络技术(北京)有限公司 系统性能测试方法、装置及存储介质
US11574696B2 (en) * 2021-04-12 2023-02-07 Nanya Technology Corporation Semiconductor test system and method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04286035A (ja) * 1991-03-15 1992-10-12 Nec Corp プロセストレース方式
JPH10269105A (ja) * 1997-01-27 1998-10-09 N T T Data Tsushin Kk トレースシステム、リソース解放漏れ検出システム及び記録媒体
JP2009265823A (ja) * 2008-04-23 2009-11-12 Yokogawa Digital Computer Corp 情報端末装置及びログデータ取得プログラム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5383192A (en) * 1992-12-23 1995-01-17 Intel Corporation Minimizing the likelihood of slip between the instant a candidate for a break event is generated and the instant a microprocessor is instructed to perform a break, without missing breakpoints
DE4418231C2 (de) * 1994-05-25 1997-02-27 Siemens Ag Modular strukturierter Service-Personalcomputer
JPH10269110A (ja) 1997-03-26 1998-10-09 Toshiba Corp 計算機システムのハングアップ回避方法並びにこの方法を用いた計算機システム。
US6175916B1 (en) 1997-05-06 2001-01-16 Microsoft Corporation Common-thread inter-process function calls invoked by jumps to invalid addresses
JP2001318805A (ja) 2000-05-08 2001-11-16 Nec Corp 組み込みシステムのテスト方法及びテストシステム
US6988263B1 (en) 2000-07-10 2006-01-17 International Business Machines Corporation Apparatus and method for cataloging symbolic data for use in performance analysis of computer programs
KR20030041612A (ko) 2001-11-20 2003-05-27 (주)유니트시스템즈 서버 병목을 실시간으로 분석하는 방법
KR20040087767A (ko) 2003-04-09 2004-10-15 바산네트워크(주) 리얼타임, 임베디드 s/w 컴포넌트 테스팅 및 실시간 분석 방법 및 시스템
US7954088B2 (en) * 2005-03-23 2011-05-31 Microsoft Corporation Method and apparatus for executing unit tests in application host environment
JP4562568B2 (ja) 2005-03-28 2010-10-13 富士通テン株式会社 異常検出プログラムおよび異常検出方法
US20070074175A1 (en) 2005-09-23 2007-03-29 Telefonaktiebolaget L M Ericsson (Publ) Method and system for dynamic probes for injection and extraction of data for test and monitoring of software
KR20070087400A (ko) * 2006-02-23 2007-08-28 삼성전자주식회사 운영 체제 소프트웨어의 테스트 커버리지 분석 방법 및시스템
US7904886B2 (en) 2006-03-13 2011-03-08 International Business Machines Corporation Method for executing an application in a virtual container forming a virtualized environment session
KR20080079343A (ko) 2006-12-15 2008-09-01 주식회사 케이티프리텔 이동통신망의 미들웨어 서버를 모니터링하는 서버 및 그방법
EP1962192A1 (en) 2007-02-21 2008-08-27 Deutsche Telekom AG Method and system for the transparent migration of virtual machine storage
JP2008210213A (ja) 2007-02-27 2008-09-11 Nec Corp プロセス動作表示装置及びプロセス動作表示方法並びにプログラム
KR20090001897A (ko) 2007-05-29 2009-01-09 주식회사 케이티프리텔 턱시도 미들웨어 환경의 모니터링 시스템 및 방법
CN101398780B (zh) * 2007-09-27 2011-08-24 国际商业机器公司 可基于进程定制调试器的即时调试的方法和系统
KR20090081749A (ko) * 2008-01-25 2009-07-29 삼성전자주식회사 응용프로그램의 자원 모니터링 방법 및 그 장치
KR100947860B1 (ko) 2008-01-30 2010-03-18 주식회사 국민은행 임베디드 장비를 이용한 품질테스트 자동화방법
US8793662B2 (en) * 2008-03-25 2014-07-29 Microsoft Corporation Runtime code hooking for print driver and functionality testing
US9354996B2 (en) 2010-06-28 2016-05-31 Hyundai Motor Company System test apparatus
WO2012033237A1 (ko) 2010-09-07 2012-03-15 현대자동차주식회사 시스템 테스트 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04286035A (ja) * 1991-03-15 1992-10-12 Nec Corp プロセストレース方式
JPH10269105A (ja) * 1997-01-27 1998-10-09 N T T Data Tsushin Kk トレースシステム、リソース解放漏れ検出システム及び記録媒体
JP2009265823A (ja) * 2008-04-23 2009-11-12 Yokogawa Digital Computer Corp 情報端末装置及びログデータ取得プログラム

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CSND199700395003; Mark Russinovich著 吉川 邦夫訳: 'Windows NTのシステムコールをフックする' Dr.Dobb's Journal Japan 第6巻,第6号, 19970501, p.39-44, 株式会社翔泳社 *
CSND200600334009; Tim Bird 外2名: '民生家電用に最適化されたCE Linuxの全容(後編)' Interface 第31巻,第8号, 20050801, p.165-174, CQ出版株式会社 *
CSND200601590012; 秋田英行: '第10回 各種トレースツールの利用' オープンソースマガジン 第15巻,第9号, 20060901, p.109-118, ソフトバンククリエイティブ株式会社 *
JPN6013064685; Tim Bird 外2名: '民生家電用に最適化されたCE Linuxの全容(後編)' Interface 第31巻,第8号, 20050801, p.165-174, CQ出版株式会社 *
JPN6013064686; Mark Russinovich著 吉川 邦夫訳: 'Windows NTのシステムコールをフックする' Dr.Dobb's Journal Japan 第6巻,第6号, 19970501, p.39-44, 株式会社翔泳社 *
JPN6014041382; 秋田英行: '第10回 各種トレースツールの利用' オープンソースマガジン 第15巻,第9号, 20060901, p.109-118, ソフトバンククリエイティブ株式会社 *

Also Published As

Publication number Publication date
EP2587379A1 (en) 2013-05-01
CA2802415C (en) 2018-02-13
CA2802415A1 (en) 2012-01-05
KR101459867B1 (ko) 2014-11-13
KR20130042502A (ko) 2013-04-26
US20130086425A1 (en) 2013-04-04
EP2587379B1 (en) 2023-05-10
EP2587379A4 (en) 2014-08-06
WO2012002635A1 (ko) 2012-01-05
JP5719930B2 (ja) 2015-05-20
US9354996B2 (en) 2016-05-31
CN102959519B (zh) 2016-10-19
CN102959519A (zh) 2013-03-06

Similar Documents

Publication Publication Date Title
JP5719930B2 (ja) システムテスト装置
US8141053B2 (en) Call stack sampling using a virtual machine
EP2709016B1 (en) Exception handling test device and method thereof
US9235497B2 (en) Method and system for detecting concurrency programming errors in kernel modules and device drivers
CN103109276B (zh) 系统测试方法
JP5678311B2 (ja) 通信テスト装置及び方法
CN108763089B (zh) 一种测试方法、装置及系统
US10481993B1 (en) Dynamic diagnostic data generation
CN116382839A (zh) 虚拟机的状态检测方法、装置、电子设备及存储介质
US20120198063A1 (en) Virtual server system, autonomous control server thereof, and data processing method and computer program thereof
CN113064832B (zh) 应用程序耗能检测方法及装置
CN118427834A (zh) 机器人操作系统的漏洞检测优化方法、装置及设备

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141028

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150303

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150323

R150 Certificate of patent or registration of utility model

Ref document number: 5719930

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250