JP4959941B2 - ソフトウェアの双方向プロービング - Google Patents

ソフトウェアの双方向プロービング Download PDF

Info

Publication number
JP4959941B2
JP4959941B2 JP2004568892A JP2004568892A JP4959941B2 JP 4959941 B2 JP4959941 B2 JP 4959941B2 JP 2004568892 A JP2004568892 A JP 2004568892A JP 2004568892 A JP2004568892 A JP 2004568892A JP 4959941 B2 JP4959941 B2 JP 4959941B2
Authority
JP
Japan
Prior art keywords
value
address location
software
probe
stored
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.)
Expired - Lifetime
Application number
JP2004568892A
Other languages
English (en)
Other versions
JP2006500695A (ja
Inventor
ペル−オラ ロベルトソン,
Original Assignee
テレフオンアクチーボラゲット エル エム エリクソン(パブル)
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
Application filed by テレフオンアクチーボラゲット エル エム エリクソン(パブル) filed Critical テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Publication of JP2006500695A publication Critical patent/JP2006500695A/ja
Application granted granted Critical
Publication of JP4959941B2 publication Critical patent/JP4959941B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Executing Machine-Instructions (AREA)
  • Soundproofing, Sound Blocking, And Sound Damping (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Saccharide Compounds (AREA)

Description

関連出願への相互参照
本特許出願は、2002年9月23日に米国特許商標庁に出願された仮特許出願第60/412,834号、「双方向プロービング(Bidirectional Probing)」による優先権の利益を享受するとともに、当該仮出願の内容を参照により本明細書に組み入れる。
ソフトウェア開発者の間で、最も重要な要求の1つは、ソフトウェアが信頼に足るべきものになることである。信頼性は、ソフトウェアが、特定の環境において特定の時間に渡って正常に動作する能力である。十分高いレベルの信頼性を確保するためには、ソフトウェアをリリース前に徹底的にテスト及びデバッグしなければならない。例えば、米国特許第5、581、695号には、ソフトウェアのデバッグ技術が開示されている。通常、ソフトウェアプログラムの全てをまとめて(as a whole)テストするとともに、ソフトウェアプログラムを形成する個々の機能コンポーネント(例えば関数の呼び出し、サブルーチン)のテストも行う。一般に、ソフトウェア及び/又はその1つ以上の機能要素に必要な変数についての一連の値を含むテストベクトルが生成される。この変数値は、ソフトウェアを実行しようとする利用状況及び環境の様々なタイプを表すように選択される。そして、このテストベクトルはソフトウェア及び/又はその1つ以上の機能要素に適用され、変数値が監視及び記録される。
ソフトウェア開発者の間で、最も重要な要求の1つは、ソフトウェアが信頼に足るべきものになることである。信頼性は、ソフトウェアが、特定の環境において特定の時間に渡って正常に動作する能力である。十分高いレベルの信頼性を確保するためには、ソフトウェアをリリース前に徹底的にテスト及びデバッグしなければならない。通常、ソフトウェアプログラムの全てをまとめて(as a whole)テストするとともに、ソフトウェアプログラムを形成する個々の機能コンポーネント(例えば関数の呼び出し、サブルーチン)のテストも行う。一般に、ソフトウェア及び/又はその1つ以上の機能要素に必要な変数についての一連の値を含むテストベクトルが生成される。この変数値は、ソフトウェアを実行しようとする利用状況及び環境の様々なタイプを表すように選択される。そして、このテストベクトルはソフトウェア及び/又はその1つ以上の機能要素に適用され、変数値が監視及び記録される。
良く行われるテストの一形式に、回帰解析(regression analysis)或いは検証テスト(verification testing)と呼ばれるものがある。回帰解析は既知の問題を解決するために改変されたソフトウェアの選択的な再テストを含んでいる。選択的な再テストは特定された問題が修正されたかどうか、また修正の結果、以前から動作している機能コンポーネントが機能しなくなっていないかを確かめるために行われる。この形式のテストは、基本的に、修正されたコードが指定された要求を依然として満たしていること、及び修正されていないコードがメンテナンス処理による影響を受けていないことを確かめるための品質制御の手法である。
ソフトウェアテスト一般、特に回帰解析において重要な機能は、テストベクトルから得られる変数値を監視する能力である。ソフトウェア及び/又はその機能要素の変数値監視の初期の試みとして、ソースコード自体にブレークポイントや他のトラップを手動で設定することが行われていた。最近では、テキサスインスツルメンツ社のCode Composer Studio(登録商標)やナショナルインスツルメンツ社のLabVIEW(登録商標)といったソフトウェア開発ツールが、被テストコードに挿入可能なプローブを含んでいる。ソフトウェアプローブは、被テストコード内の変数を、ソフトウェアの実行に伴ってリアルタイムで観察することを可能にする。しかし、これら後者の方法は、被テストコードから変数値を得ることに基づいている(例えば、だからそれら変数を解析可能である)。そして、ソフトウェア実行中に変数値を変更することを許可しない。つまり、現存するソフトウェアプローブは、一方通行又は単一指向性のプローブであり、データは被テストコードからテストシステムへという方向でのみ流れる。現存するソフトウェアプローブは、データがテストシステムから被テストコードへ流れるような、逆転されたデータ転送方向を許可しない。
従って、データが被テストコードに対して両方向に転送可能な方法でソフトウェアを調べる(プロービングする)ための方法の提供が望まれている。
簡単に言えば、本発明はソフトウェアの双方向プロービングを対象とする。本発明の双方向プローブは、データを、被テストソフトウェアへ、また被テストソフトウェアから転送することが可能である。この、データの両方向転送は、ソフトウェア中の変数を監視するだけでなく、必要に応じて変更することを可能とする。テストを目的としてテストベクトルを生成し、稼働中のソフトウェアへ挿入することができる。回帰解析は、過去の反復からのデータを次の反復用入力として用いることで、より容易になる。
一般的に述べて、本発明はその一実施形態において、複数のデータ変数及び関数引数を有するソフトウェアをテストする方法を対象とする。この方法はソフトウェアを実行するステップと、ソフトウェアによって用いられる少なくとも1つの変数又は引数についてのアドレス位置を特定するステップと、このアドレス位置に格納される全てのデータを、監視のためにテストシステムへ出力するステップとを含む。テストシステムからのデータは上述のアドレス位置へ入力され、それによって以前そこに格納されていたデータを置き換える。
一般的に述べて、本発明はその別の実施形態において、複数のデータ変数及び関数引数を有するソフトウェアをテストする装置を対象とする。この装置は中央処理部及び、中央処理部に接続される記憶部を含む。記憶部は中央処理部に、ソフトウェアを実行させ、ソフトウェアによって用いられる少なくとも1つの変数又は引数についてのアドレス位置を特定させ、このアドレス位置に格納される全てのデータを監視のためにテストシステムへ出力させ、中央処理部からのデータをアドレス位置に入力させて以前そこに格納されていたデータを置き換えるように命令するためのコンピュータ可読命令を格納する。
一般的に述べて、本発明はそのさらに別の実施形態において、複数のデータ変数及び関数引数を有するソフトウェアをテストするシステムを対象とする。システムは、1つ又はそれより多いプローブ命令を含むソフトウェアを実行するように構成された被テスト装置を含む。テスタは、プローブ命令が実行される際、被テスト装置を、ソフトウェアによって用いられる少なくとも1つの変数又は引数についてのアドレス位置を特定し、このアドレス位置に格納される全てのデータをテスタへ出力し、テスタから受信したデータをアドレス位置に入力するように制御するように構成される。
なお、本明細書において「含む/有する」という語が用いられる場合、説明された機能、整数、ステップ又は構成部品の存在を特定するものとして解釈されるが、他の機能、整数、ステップ、構成部品又はそのグループの1つ又はそれより多くの存在や付加を排除するものではない点に留意されたい。
本発明のより完全な理解は、添付図面とともに以下の詳細な説明を参照することによって得られるであろう。
以下、同一又は類似要素に対する参照数字が繰り越される図面を参照して、本発明を詳細に説明する。
本発明の実施形態は、双方向プローブを用いてソフトウェアをテストするための方法及びシステムを提供する。本発明の双方向プローブは本質的にプログラムコードのいかなる位置にも挿入可能である。このプローブはデータをソフトウェアから取得するだけでなく、データをソフトウェアへ投入(inject)することを可能とする。具体的には、このプローブは、ソフトウェア中の変数の値の監視、変更及びソフトウェアへの挿入し戻しを、実行中に可能とする。そして、ソフトウェアは変更された値を用いて更に実行される。本発明の双方向プローブは、テキサスインスツルメンツ社のCode Composer Studio(登録商標)やナショナルインスツルメンツ社のLabVIEW(登録商標)といったソフトウェア開発ツールや、他の類似ソフトウェア開発環境の一機能又は一関数として実装されうる。
本発明の双方向ソフトウェアプロービング手法は、ハードウェア回路基板のテストに似たところがある。そのため、本発明をまずハードウェア回路基板用のテストシステムという観点から説明する。しかし、この説明は例示のみを目的としたものであって、本発明は実際にはソフトウェアのプロービングを対象としたものである。
図1は、本発明の双方向ソフトウェアプロービング手法を利用可能なソフトウェアテストツールに類似した、ハードウェアテストシステム100を示す。ハードウェアテストシステム100は、複数のハードウェアプローブ(そのうちの1つを104で示す)を介して被テスト装置(DUT)102に接続される。各ハードウェアプローブ104は、そのプローブIDにより特定することができる。例えば、第1のプローブはPID1、第2のプローブはPID2、第3のプローブはPID3、・・・である。複数のプローブ104は、一端をクロスサーキットボックス106の片側に接続される。また、他端は、波形発生器のようなファンクションジェネレータ108の1つ以上及び、オシロスコープ及び検波計のような測定ユニット110の1つ以上に接続される。クロスサーキットボックス106は、プローブ104を、テストシステム100のファンクションジェネレータ108及び測定ユニット110に対して選択的に接続したり、接続解除したりすることを可能にする。システム100内のコントローラ(明示せず)が、クロスサーキットボックス106の接続性を制御する制御信号を与える。
図に示すように、プローブ104はDUT102上の所定の関心位置において電気信号をプロービングできるよう、戦略的に配置される。例えば、第1のプローブPID1は電気信号”a”をプロービングできるよう、Func2の入力に配置されている。同様に、第2のプローブPID2は電気信号”b”をプロービングできるよう、Func1の入力に配置されている。しかし、第5のプローブPID5は電気信号”d”をプロービングできるよう、Func1の出力に配置されている。様々な関数(すなわち、Func1−3)は、DUTによって実行可能ないかなる関数であっても良い(例えば、加算、減算、平均等)。いくつかの関数は、1つ以上の内部関数び/又はサブファンクションを有していても良く、それらをプロービングすることもできる。例えば、Func3はサブファンクション”f”を含んでおり、このサブファンクションをプロービングすることができる。同様にして、本発明の双方向プローブは、ソフトウェア中の、関心がある所定の変数をプロービングすることを可能とする。
各プローブ104とDUTとの接続点は、点線による円112で示すように、通常のワイヤードペア(wired pair)接続に似ている。図に示すように、ワイヤードペア112の1つの結線114がDUT102からクロスサーキットボックス106へ延び、ワイヤードペア112の他の結線116がクロスサーキットボックス106からDUT102へ戻っている。同様に、各プローブ104からクロスサーキットボックス106への接点は、点線による円118に示すように、1組のスイッチに類似している。120で示す入力方向スイッチは、プローブ104の入来結線114を、テスタシステム100(例えば測定ユニット)へ選択的に接続する。122で示す出力方向スイッチは、プローブ104の戻り結線116を、(例えば通常動作のために)入来結線114へ、又はテスタシステム100へ(例えばファンクションジェネレータへ)、選択的に接続する。スイッチ動作の様々なモデルについて、以下一層詳細に説明する。
図2A〜2Dに、複数のプローブをクロスサーキットボックスへ接続するスイッチの動作モデルを示す。これらの動作モデルは、本発明のソフトウェアプローブの機能を模式的に表している。図2Aに示す第1の動作モードにおいて、入力スイッチ120及び出力スイッチ122はいずれもクロスサーキットボックス106から切り離され、代わりにスイッチ同士が接続されている。これは、通常動作モードであり、データはDUT102からテストシステム100へも、テストシステム100からDUT102へも流れない。図2Bに示す第2の動作モードにおいて、入力スイッチ120はDUT102をテストシステム100へ接続するが、出力スイッチ122は依然として入力スイッチ120に接続されている(すなわち、テストシステムから切り離されている)。この動作モードは、モニタリングを目的として、DUT102からデータを取得するために用いられる。図2Cに示す第3の動作モードでは、出力スイッチ122はテストシステム100に接続されるが、入力スイッチ120はテストシステム100から切り離されている。この動作モードは、テストを目的として、テストシステム100からDUT102へデータを投入するために用いられる。図2Dに示す第4の動作モードでは、入力スイッチ120及び出力スイッチ122の両方がテストシステム100に接続される。この動作モードは、モニタリングを目的としてDUT102からデータを得るため及び、テストを目的としてDUT102へデータを挿入するために用いられる。同様にして、本発明の双方向プローブは、被テストソフトウェアプログラムの変数及び引数からデータを取得するために、またこれら変数及び引数にデータを入力するために、及びその両方のために用いることができる。
本発明の実施形態に係る双方向ソフトウェアプローブ命令を含む典型的なプログラムコードブロックを、以下の例1に示す。例1に示すように、プログラムコードブロックは、双方向プローブの一般的な性質及び適用性を強調するため、特定のプログラミング言語ではなく、擬似コードで記述されている。この例において、Func0は被テストコードであり、図1のDUT102と類似である。”プローブ”命令は図1のハードウェアプローブPID1−5と類似しており、通常、プローブID及びプロービングする変数又は引数の指標(indication)を、引数として含んでいる。例えば、”probe(1,c)”は、第1のプローブPID1を参照し、被テストコード中の変数”c”に対応するアドレス位置に作用する。従って、プローブ命令”probe(1,c)”は、プログラムコードブロック中の変数”c”の監視及び必要に応じた変更を可能とする。同様に、プローブ命令”probe(4,a)”は、プログラムコードブロック中の変数”a”の監視及び必要に応じた変更を可能とする。他のプローブ命令も同様である。
例1
func0(a, b, c)
{
probe(1, c)
probe(2, b)
probe(4, a)
d = func1(b)
probe(5, d)
probe(3, g)
e, f = func2(c, g)
probe(6, e)
h, g = func3(a, d, e, f)
probe(11, h)
return h
}
func3(a', b', c', d')
{
e' = f'(a', b', c', d')
probe(8, e')
return e'
}
ここで、Func3が、変数”a”〜”d”を入力とし、変数”e”を出力とするサブファンクション”f”を有し、変数”a”〜”d”及び”e”はFunc0の変数”a”〜”d”及び”h”に対応する点に留意されたい。本発明の双方向プローブ技術を用い、サブファンクションもまた調べることができる。
プローブ命令を被テストコードに付加することで、ソフトウェアは観測可能、即ちテスト可能になる。これら変数やデータが、プローブ命令中の変数によって示されるようなプローブのアドレス空間中にありさえすれば、任意形式の変数(例えば、自動(スタックに一時的に格納される)変数、グローバル変数、スタティック変数、等)又は任意の格納されたデータを調べることができる。本発明の双方向プローブを用いて、関数引数(function arguments)を調べることもできる。変数及び関数引数のプロービングは、ソフトウェアの機能性の更なるテストを可能にする。具体的には、ある関数の変数及び引数のプロービングは、得られるデータに基づいた更なるテスト及びテストベクトルの生成を可能にする。
以下の例2に、プローブ命令の典型的なCコード版を、ソースコードブロック形式で示す。この例は、本発明の実施形態を用いる実際のソースコードブロックが、どのように見えるかを説明するためのものである。
例2
// b * b + aの算出
int func0(int a, int b)
{
int d; int e; //値を変更可能とするため
probe(2, &b); //変数への参照が必要
d = func1(b); //これが
e = d + a; //func 0の機能性
probe(7, &e);
return e;
}
int func1(int arg0)
{
int res;
res = arg0 * arg0; //これがfunc 1の機能性
probe(8, &res);
return res;
}
本発明の双方向プロービング技術は、いかなるテストシステムにおいても実装することができる。図3は、双方向プロービング技術を実装するための典型的なテストシステム300を示す図である。テストシステム300はテスタ302と被テスト装置304とを含み、テスタ302及び被テスト装置304は互いに通信している。テスタ302は典型的なコンピュータであり、CPU306、入力/出力インタフェースユニット308、記憶装置310を含む、多数の機能部品を有する。これら部品はコンピュータ技術における通常の知識を有する者にとってよく知られており、従ってここでは簡単にのみ説明する。CPU306は、OS及びOS上で稼働する任意のソフトウェアを含む、テスタ302上における全ソフトウェアの実行を担当する。インタフェースユニット308はテスタ302と被テスト装置304及び、テスタ302に接続される任意の入出力装置(例えばキーボード、マウス、ディスプレイ装置、プリンタ、等)とをインタフェースする。記憶装置310は、OS及びテスタ302上で稼働するソフトウェアの実行に必要とされるであろうソフトウェアプログラム及び/又はデータに対する一時記憶(例えばRAM)及び/又は長期記憶(例えばハードディスクドライブ)を提供する。
記憶装置310には、ソフトウェア開発ツール312を含む多数のソフトウェアアプリケーションが格納される。ソフトウェア開発ツール312は、テキサスインスツルメンツ社のCode Composer Studio(登録商標)やナショナルインスツルメンツ社のLabVIEW(登録商標)といった既存のソフトウェア開発ツールや、他の類似ソフトウェア開発ツールと同様にして動作し、また多数の同一機能を有する。しかし、本発明の実施形態によれば、ソフトウェア開発ツール312はプローブ制御及び解析モジュール314をさらに含んでいる。プローブ制御及び解析モジュール314は、ソフトウェア開発ツール312を用いてテスト中の任意のソフトウェアの双方向プロービングを制御すること及び、調べられたデータを解析することができる。具体的には、プローブ制御及び解析モジュール314は、被テストコードからデータを取得すること、被テストコードへデータを投入すること、またはその両方を、ユーザの決定に応じて可能とする。プローブ制御及び解析モジュール314はまた、ユーザが、得られたデータに基づいてテストベクトルを生成すること及び、このテストベクトルを被テストコードへ投入することを可能にする。これにより、被テストコードの動作及び信頼性を監視及びテストを、ユーザがより簡単に、かつ便利に行うことができる。
本実施形態では、双方向プローブ命令を含む被テストコードが、テスタ302と通信中の個別装置、すなわち被テスト装置304において実行される。被テスト装置304は、テスタ302と同様、CPU316、入力/出力インタフェースユニット318及び記憶装置320を含む多数の機能部品を有する典型的なコンピュータである。被テスト装置304の部品はテスタ302の対応する部品と機能面で類似しているため、ここでの説明は省略する。要は、調査対象のソースコード及び双方向プローブ命令及び実装(implementation)を含む被テストコード322が、テスタ302とは別個に格納並びに実行されるということである。
しかしながら、一部の実施形態では、テスタ及び被テスト装置が、両方の機能を実行する1つの統合されたテストシステムとして実現される。図4は、そのようなテストシステム400の例を示す。統合テストシステム400はCPU402、入力/出力インタフェース404及び記憶装置406を含む多数の機能部品を有する。これらの部品は図3に関して説明された対応部品と類似であるが、記憶装置406がソフトウェア開発ツール408及び被テストコード410の両方を格納する点で異なる。そのため、テストシステム400は、ソフトウェア開発ツール408と被テストコード410を同時に実行(すなわち、マルチタスク)するのに十分な記憶並びに処理能力を有することが好ましい。ソフトウェア開発ツール408は上述のソフトウェア開発ツール312と実質的に同一であり、プローブ制御及び解析モジュール(明示せず)を含んでいる。同様に、被テストコード410は上述の被テストコード322と実質的に同一であり、調査対象のソースコード及び、プローブ命令及び実装を含んでいる。
双方向プローブ命令の実行が、図5の、本発明の実施形態に係る代表的な方法500に説明される。このような方法500は、通常、被テストコードを実行している被テスト装置、又はマルチタスク環境にある統合テスタのいずれかに実装される。方法500において、1つ以上のプローブ命令を含むソースコードブロックが、実行されるプロセス中に存在している。コード実行中の所定のポイント(ステップ501)で、複数のプローブ命令の1つに遭遇する。次のステップ(ステップ502)で、そのプローブがプローブモードに設定されているかどうかを判定する。この特定のモードは通常、予めプログラムされたコマンドとして、或いは手動により、さらにはそれらの組み合わせとして、ソフトウェア開発ツール312からテスタを介してユーザにより設定される。答えが「イエス」であれば、3番目のステップ503で、プローブ命令によって示されるメモリ又は記憶領域内のデータが、テストシステムへ転送される。このデータは必要に応じて監視及び解析することができる。もし「ノー」であれば、方法500は4番目のステップ504へ進み、プローブが投入モードにセットされているかどうかを判定する。答えが「イエス」であれば、5番目のステップ505で、プローブ命令によって示されるメモリ又は記憶領域内のデータは、例えば単純なメモリコピーにより、テストシステムから受信した新しいデータによって変更及び/又は置換される。もし「ノー」であれば、方法500は被テストコードの残りの実行を継続する。
ここで、上述した方法500は、プローブ命令の単純化された実装を示している点に留意されたい。いくつかの実施形態では、プロービングモードの判定に加え、データのタイプやサイズが検証される。さらに、行列のようなもっと複雑な変数や、連続構造(continuous structure)に格納されていない変数でさえ調べることが可能である。このようにして、テスト中のソフトウェアから、多くの形式のデータを取得することのみならず、挿入することもできる。
本発明の特定の実施形態及び用途について、図示及び説明してきたが、本発明はここで開示した通りの構成及び組成に限定されるものではなく、特許請求の範囲に規定される本発明の範囲を逸脱することなく、上述の構成に変更及び変形を加えることができる。
本発明の実施形態に係る典型的なソフトウェアテスト環境を、ハードウェア構成になぞらえて示す図である。 、 本発明の実施形態に係るソフトウェアプローブの典型的な動作モードを、ハードウェア構成になぞらえて示す図である。 本発明の実施形態に係る双方向ソフトウェアプローブを適用可能な典型的なシステムを示す図である。 本発明の実施形態に係る双方向ソフトウェアプローブを適用可能な別の典型的なシステムを示す図である。 本発明の実施形態に係る双方向ソフトウェアプローブを適用する典型的な方法を示す図である。

Claims (21)

  1. 複数のデータ変数及び関数引数を有するソフトウェアを被テスト装置で実行することにより当該ソフトウェアをテストする方法であって、前記ソフトウェアのソースコードの所定位置には特定のデータ変数又は関数引数を参照するプローブ命令が予め挿入されており、前記方法が、
    前記被テスト装置によって前記ソフトウェアを実行するステップを有し、
    前記プローブ命令が、予め設定された動作モードに応じて、かつ前記ソフトウェアの実行を停止させることなく、前記参照された変数又は関数引数に格納される値をテストシステムから受信した値に基づいて予め定められた方法で得られる値により前記ソフトウェアの実行中に置き換えるか、前記値を前記テストシステムへ出力するかの少なくとも1つを実行するように構成されることを特徴とする方法。
  2. 前記値を置き換えるために、前記プローブ命令によって示される、前記値が格納されるアドレス位置へ入力されるデータが、前記アドレス位置から前記値として前記テストシステムに出力されたデータの修正版であることを特徴とする請求項1記載の方法。
  3. 前記値を置き換えるために前記プローブ命令によって示される、前記値が格納されるアドレス位置へ入力されるデータが、前記アドレス位置から前記値として前記テストシステムに出力されたデータと同一であることを特徴とする請求項1記載の方法。
  4. 前記値を置き換えるために前記プローブ命令によって示される、前記値が格納されるアドレス位置へ入力されるデータが、過去の前記プローブ命令実行時に前記アドレス位置から前記値として前記テストシステムに出力されたデータに基づいて、予め定められた方法により生成されたものであることを特徴とする請求項1記載の方法。
  5. 前記値を置き換えるために前記プローブ命令によって示される、前記値が格納されるアドレス位置へ入力されるデータが、過去の前記プローブ命令実行時に前記アドレス位置から前記値として前記テストシステムに出力されたデータに基づいて、予め定められた方法により生成されたテストベクトルを含むことを特徴とする請求項1記載の方法。
  6. 前記アドレス位置が、前記被テスト装置又は前記テストシステムのメモリ中の記憶位置を特定することを特徴とする請求項2乃至5のいずれか1項に記載の方法。
  7. 前記アドレス位置が、前記被テスト装置又は前記テストシステムのハードディスクドライブ中の記憶位置を特定することを特徴とする請求項2乃至5のいずれか1項に記載の方法。
  8. 複数のデータ変数及び関数引数を有するソフトウェアをテストするための装置であって、
    中央処理部と、
    前記中央処理部に接続される記憶部とを有し、
    前記記憶部が、
    特定のデータ変数又は関数引数を参照するプローブ命令であって、前記ソフトウェアのソースコードの所定位置に挿入されたプローブ命令を含む前記ソフトウェアを実行する、
    ように前記中央処理部に対して命令するためのコンピュータ読み取り可能な命令を格納し、
    前記プローブ命令が、予め設定された動作モードに応じて、かつ前記ソフトウェアの実行を停止させることなく、前記参照された変数又は関数引数に格納される値をテストシステムから受信した値に基づいて予め定められた方法で得られる値により前記ソフトウェアの実行中に置き換えるか、前記値をテストシステムへ出力するかの少なくとも1つを実行するように構成されることを特徴とする装置。
  9. 前記値を置き換えるために前記プローブ命令によって示される、前記値が格納されるアドレス位置へ入力されるデータが、前記アドレス位置から前記値として前記テストシステムに出力されたデータの修正版であることを特徴とする請求項8記載の装置。
  10. 前記値を置き換えるために前記プローブ命令によって示される、前記値が格納されるアドレス位置へ入力されるデータが、前記アドレス位置から前記値として前記テストシステムに出力されたデータと同一であることを特徴とする請求項8記載の装置。
  11. 前記値を置き換えるために前記プローブ命令によって示される、前記値が格納されるアドレス位置へ入力されるデータが、過去の前記プローブ命令実行時に前記アドレス位置から前記値として前記テストシステムに出力されたデータに基づいて、予め定められた方法により生成されたものであることを特徴とする請求項8記載の装置。
  12. 前記値を置き換えるために前記プローブ命令によって示される、前記値が格納されるアドレス位置へ入力されるデータが、過去の前記プローブ命令実行時に前記アドレス位置から前記値として前記テストシステムに出力されたデータに基づいて、予め定められた方法により生成されたテストベクトルを含むことを特徴とする請求項8記載の装置。
  13. 前記アドレス位置が、前記装置のメモリ中の記憶位置を特定することを特徴とする請求項9乃至12のいずれか1項に記載の装置。
  14. 前記アドレス位置が、前記装置のハードディスクドライブ中の記憶位置を特定することを特徴とする請求項9乃至12のいずれか1項に記載の装置。
  15. 複数のデータ変数及び関数引数を有するソフトウェアをテストするためのシステムであって、
    特定のデータ変数又は関数引数を参照する1つ以上のプローブ命令をソースコード中に含んだ前記ソフトウェアを実行するように構成される被テスト装置と、
    前記被テスト装置に接続され、前記被テスト装置を制御するテスタとを有し、
    前記プローブ命令が、予め設定された動作モードに応じて、かつ前記ソフトウェアの実行を停止させることなく、前記参照された変数又は関数引数に格納される値を前記テスタから受信した値に基づいて予め定められた方法で得られる値により前記ソフトウェアの実行中に置き換えるか、前記値を前記テスタへ出力するかの少なくとも1つを実行するように構成されることを特徴とするシステム。
  16. 前記値を置き換えるために前記プローブ命令によって示される、前記値が格納されるアドレス位置へ入力されるデータが、前記アドレス位置から前記値として前記テスタに出力されたデータの修正版であることを特徴とする請求項15記載のシステム。
  17. 前記値を置き換えるために前記プローブ命令によって示される、前記値が格納されるアドレス位置へ入力されるデータが、前記アドレス位置から前記値として前記テスタに出力されたデータと同一であることを特徴とする請求項15記載のシステム。
  18. 前記値を置き換えるために前記プローブ命令によって示される、前記値が格納されるアドレス位置へ入力されるデータが、過去の前記プローブ命令実行時に前記アドレス位置から前記値として前記テスタに出力されたデータに基づいて、予め定められた方法で生成されたものであることを特徴とする請求項15記載のシステム。
  19. 前記値を置き換えるために前記プローブ命令によって示される、前記値が格納されるアドレス位置へ入力されるデータが、過去の前記プローブ命令実行時に前記アドレス位置から前記値として前記テスタに出力されたデータに基づいて、予め定められた方法で生成されたテストベクトルを含むことを特徴とする請求項15記載のシステム。
  20. 前記アドレス位置が、前記被テスト装置又は前記テスタのメモリ中の記憶位置を特定することを特徴とする請求項16乃至19のいずれか1項に記載のシステム。
  21. 前記アドレス位置が、前記被テスト装置又は前記テスタのハードディスクドライブ中の記憶位置を特定することを特徴とする請求項16乃至19のいずれか1項に記載のシステム。
JP2004568892A 2002-09-23 2003-09-22 ソフトウェアの双方向プロービング Expired - Lifetime JP4959941B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US41283402P 2002-09-23 2002-09-23
US60/412,834 2002-09-23
US10/428,733 US8020148B2 (en) 2002-09-23 2003-05-01 Bi-directional probing and testing of software
US10/428,733 2003-05-01
PCT/EP2003/010492 WO2004027623A2 (en) 2002-09-23 2003-09-22 Bi-directional probing of software

Publications (2)

Publication Number Publication Date
JP2006500695A JP2006500695A (ja) 2006-01-05
JP4959941B2 true JP4959941B2 (ja) 2012-06-27

Family

ID=31998143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004568892A Expired - Lifetime JP4959941B2 (ja) 2002-09-23 2003-09-22 ソフトウェアの双方向プロービング

Country Status (9)

Country Link
US (2) US8020148B2 (ja)
EP (1) EP1576477B1 (ja)
JP (1) JP4959941B2 (ja)
KR (1) KR100976371B1 (ja)
CN (1) CN1701305B (ja)
AT (1) ATE325383T1 (ja)
AU (1) AU2003267394A1 (ja)
DE (1) DE60305073T2 (ja)
WO (1) WO2004027623A2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6823478B1 (en) * 2000-09-12 2004-11-23 Microsoft Corporation System and method for automating the testing of software processing environment changes
US7350194B1 (en) * 2001-09-24 2008-03-25 Oracle Corporation Techniques for debugging computer programs involving multiple computing machines
US7793271B2 (en) * 2004-06-17 2010-09-07 State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Portland State University Bi-directional product development process simulation
US20060130048A1 (en) * 2004-12-13 2006-06-15 Ebay Inc. Shared schema for software user interface designers and developers
US7568186B2 (en) * 2005-06-07 2009-07-28 International Business Machines Corporation Employing a mirror probe handler for seamless access to arguments of a probed function
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
CN100388195C (zh) * 2006-02-22 2008-05-14 北京金山软件有限公司 一种64位视窗操作系统下获取函数参数的方法及系统
US8359585B1 (en) * 2007-01-18 2013-01-22 Advanced Testing Technologies, Inc. Instrumentation ATS/TPS mitigation utilizing I/O data stream
EP1962194A1 (en) * 2007-02-23 2008-08-27 Telefonaktiebolaget LM Ericsson (publ) A method and a system for dynamic probe authentication for test and monitoring of software
US8500730B2 (en) * 2007-11-16 2013-08-06 Biosense Webster, Inc. Catheter with omni-directional optical tip having isolated optical paths
US8413120B2 (en) 2008-10-27 2013-04-02 Advanced Micro Devices, Inc. Method and system for thread monitoring
CN102023923B (zh) * 2010-12-28 2014-07-02 北京邮电大学 一种基于别名分析技术的软件测试方法
GB2507048A (en) * 2012-10-16 2014-04-23 Bae Systems Plc System testing algorithm and apparatus
US9021428B2 (en) * 2013-05-29 2015-04-28 Microsoft Technology Licensing, Llc Troubleshooting visuals and transient expressions in executing applications
CN103455421B (zh) * 2013-08-19 2016-08-10 西安交通大学 基于程序控制依赖引导的回归测试案例生成方法
US9880818B2 (en) * 2014-11-05 2018-01-30 Ab Initio Technology Llc Application testing
US10936289B2 (en) 2016-06-03 2021-03-02 Ab Initio Technology Llc Format-specific data processing operations

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5191646A (en) * 1986-11-20 1993-03-02 Hitachi, Ltd. Display method in software development support system
US5581695A (en) 1990-05-09 1996-12-03 Applied Microsystems Corporation Source-level run-time software code debugging instrument
US5604841A (en) * 1990-07-06 1997-02-18 United Technologies Corporation Hierarchical restructuring generic test templates and reusable value spaces for machine failure isolation using qualitative physics
US5202955A (en) * 1990-07-06 1993-04-13 United Technologies Corporation Dynamic assumption ordering for qualitative physics
US5317740A (en) * 1991-03-07 1994-05-31 Digital Equipment Corporation Alternate and iterative analysis of computer programs for locating translatable code by resolving callbacks and other conflicting mutual dependencies
EP0551009B1 (en) * 1992-01-08 2001-06-13 Emc Corporation Method for synchronizing reserved areas in a redundant storage array
JPH0756729A (ja) 1993-08-10 1995-03-03 Pfu Ltd プログラムデバッグシステム
US5604895A (en) * 1994-02-22 1997-02-18 Motorola Inc. Method and apparatus for inserting computer code into a high level language (HLL) software model of an electrical circuit to monitor test coverage of the software model when exposed to test inputs
EP0690378A1 (en) * 1994-06-30 1996-01-03 Tandem Computers Incorporated Tool and method for diagnosing and correcting errors in a computer programm
US5634127A (en) * 1994-11-30 1997-05-27 International Business Machines Corporation Methods and apparatus for implementing a message driven processor in a client-server environment
US6324683B1 (en) * 1996-02-23 2001-11-27 International Business Machines Corporation System, method and program for debugging external programs in client/server-based relational database management systems
GB9622684D0 (en) 1996-10-31 1997-01-08 Sgs Thomson Microelectronics An integrated circuit device and method of communication therwith
US6202199B1 (en) * 1997-07-31 2001-03-13 Mutek Solutions, Ltd. System and method for remotely analyzing the execution of computer programs
US6282701B1 (en) * 1997-07-31 2001-08-28 Mutek Solutions, Ltd. System and method for monitoring and analyzing the execution of computer programs
US6212650B1 (en) 1997-11-24 2001-04-03 Xilinx, Inc. Interactive dubug tool for programmable circuits
US7152027B2 (en) * 1998-02-17 2006-12-19 National Instruments Corporation Reconfigurable test system
US5963726A (en) * 1998-03-20 1999-10-05 National Instruments Corporation Instrumentation system and method including an improved driver software architecture
SE9801678L (sv) 1998-05-13 1999-11-14 Axis Ab Datorchip och datoranordning med förbättrad avlusningsförmåga
EP0992906B1 (en) * 1998-10-06 2005-08-03 Texas Instruments Inc. Apparatus and method for software breakpoint in a delay slot
US6412106B1 (en) * 1999-06-16 2002-06-25 Intervoice Limited Partnership Graphical system and method for debugging computer programs
US6934934B1 (en) * 1999-08-30 2005-08-23 Empirix Inc. Method and system for software object testing
US6405364B1 (en) * 1999-08-31 2002-06-11 Accenture Llp Building techniques in a development architecture framework
JP2001147830A (ja) * 1999-11-19 2001-05-29 Nec Microcomputer Technology Ltd リアルタイムosの状態変更方法
US6304972B1 (en) * 2000-01-03 2001-10-16 Massachusetts Institute Of Technology Secure software system and related techniques
FR2820222B1 (fr) * 2001-01-26 2003-03-21 Schneider Automation Procede de programmation d'une application d'automatisme
US7917895B2 (en) * 2001-07-27 2011-03-29 Smartesoft, Inc. Automated software testing and validation system
US7539591B2 (en) * 2001-08-24 2009-05-26 Vi Technology, Inc. Enterprise test data management system utilizing hierarchical test data models and related methods
US7107578B1 (en) * 2001-09-24 2006-09-12 Oracle International Corporation Techniques for debugging computer programs involving multiple programming languages
US7047519B2 (en) * 2001-09-26 2006-05-16 International Business Machines Corporation Dynamic setting of breakpoint count attributes
US7134115B2 (en) * 2002-02-07 2006-11-07 Matsushita Electric Industrial Co., Ltd. Apparatus, method, and program for breakpoint setting
JP3764405B2 (ja) * 2002-05-27 2006-04-05 株式会社東芝 デバッグ装置及びデバッグ方法
US7124401B2 (en) * 2002-09-03 2006-10-17 Sap Aktiengesellschaft Testing versions of applications
US7219333B2 (en) * 2002-11-22 2007-05-15 Texas Instruments Incorporated Maintaining coherent synchronization between data streams on detection of overflow
US7111281B2 (en) * 2002-12-26 2006-09-19 International Business Machines Corporation Method, system, and article of manufacture for debugging utilizing screen pattern recognition and breakpoints
US7171653B2 (en) * 2003-06-03 2007-01-30 Hewlett-Packard Development Company, L.P. Systems and methods for providing communication between a debugger and a hardware simulator
US7299456B2 (en) * 2003-09-18 2007-11-20 International Business Machines Corporation Run into function

Also Published As

Publication number Publication date
WO2004027623A3 (en) 2004-05-13
DE60305073D1 (de) 2006-06-08
EP1576477A2 (en) 2005-09-21
EP1576477B1 (en) 2006-05-03
KR20050073458A (ko) 2005-07-13
US20110271256A1 (en) 2011-11-03
JP2006500695A (ja) 2006-01-05
WO2004027623A2 (en) 2004-04-01
DE60305073T2 (de) 2006-09-28
AU2003267394A1 (en) 2004-04-08
US8020148B2 (en) 2011-09-13
US20040059962A1 (en) 2004-03-25
ATE325383T1 (de) 2006-06-15
CN1701305B (zh) 2010-05-05
CN1701305A (zh) 2005-11-23
KR100976371B1 (ko) 2010-08-18

Similar Documents

Publication Publication Date Title
US20110271256A1 (en) Bi-directional probing of software
KR100366963B1 (ko) 반도체 디바이스 시뮬레이트 장치 및 그것을 이용한반도체 테스트용 프로그램 디버그 장치
US7269773B2 (en) Test program debugger device, semiconductor test apparatus, test program debugging method and test method
JP2009509258A (ja) ソフトウェアのテスト及び監視のためのデータの注入及び抽出に対する動的プローブの方法及びシステム
US20110047529A1 (en) Method for automatic script generation for testing the validity of operational software of a system onboard an aircraft and device for implementing the same
JP2004509425A (ja) テストコントローラアクセスデータを用いて回路をテスト及び/または診断する方法及びシステム
US20050028146A1 (en) Systems and methods for software and firmware testing using checkpoint signatures
CN112597006B (zh) 一种嵌入式软件集成测试自动化执行系统及方法
Svenningsson et al. Model-implemented fault injection for hardware fault simulation
CN113157508B (zh) 嵌入式系统的测试方法、系统、装置、设备及存储介质
JP4213306B2 (ja) 半導体試験用プログラムデバッグ装置
US6718498B2 (en) Method and apparatus for the real time manipulation of a test vector to access the microprocessor state machine information using the integrated debug trigger
JP2002333469A (ja) 半導体試験用プログラムデバッグ装置
Eklow et al. Simulation based system level fault insertion using co-verification tools
JP4132499B2 (ja) 半導体試験用プログラムデバッグ装置
Jeon et al. Increasing the testability of object-oriented frameworks with built-in tests
Stockmann et al. Debugging Models in the Context of Automotive Software Development.
JP2004348596A (ja) Icテスタ用プログラムのデバッグ装置、方法、及びプログラム
Cunha et al. On the use of boundary scan for code coverage of critical embedded software
Steininger et al. Built-in fault injectors-the logical continuation of bist?
Eichelberger et al. Debugger-based record replay and dynamic analysis for in-vehicle infotainment
Yang et al. A model driven testing environment for embedded software
Bouvier et al. A practical approach to measuring and improving the functional verification of embedded software
Cunha et al. A distributed debugging tool for a parallel software engineering environment
Alessandro et al. A new methodology and tool set to execute software test on real-time safety-critical systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091211

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100301

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100610

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101102

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101108

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20101203

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120322

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150330

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4959941

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term