(57)【特許請求の範囲】
【請求項１】
単位機能毎に細分化された部品プログラムにて構成される処理プログラムを実行し、検査情報が記述された検査スクリプトに基づいて処理実行の履歴を記録するものであって、前記検査スクリプト中に記された前記処理プログラムにおける検査開始位置を示すブレーク命令に基づき、当該検査開始位置を判断して前記履歴を記録する実行履歴記録装置であって、
前記処理プログラム中の検査対象である検査開始関数を特定する当該検査開始関数の名称情報及び当該検査開始関数をコールする親関数を特定する当該親関数の名称情報が少なくとも記述された検査スクリプトを取得するスクリプト取得手段と、
前記処理プログラムのソース記述を取得するソース取得手段と、
前記ソース取得手段により取得された前記処理プログラムのソース記述に基づき、前記スクリプト取得手段により取得された前記検査スクリプトが示す前記検査開始関数をコールする前記処理プログラム上の前記親関数において、当該親関数から前記検査開始関数がコールされる位置を、前記処理プログラムにおける検査開始位置として特定する位置特定手段と、
前記位置特定手段にて特定された位置を示すブレーク命令を前記検査スクリプトに追加するブレーク命令設定手段とを備えていること
を特徴とする実行履歴記録装置。
【請求項２】
請求項１に記載の実行履歴記録装置において、
さらに、前記処理プログラムのソース記述におけるプリプロセッサ命令により定まるコンパイル部分を、実行部分として特定する実行部分特定手段を備え、
前記ソース取得手段は、前記実行部分特定手段にて実行部分の特定されたソース記述を取得すること
を特徴とする実行履歴記録装置。
【請求項３】
請求項１又は２に記載の実行履歴記録装置において、
前記検査開始位置を判断してから、前記親関数の処理が復帰するまで、前記履歴を記録すること
を特徴とする実行履歴記録装置。
【請求項４】
請求項１〜３のいずれかに記載の実行履歴記録装置において、
前記検査スクリプトには、前記検査対象である前記検査開始関数の変数に対する入力データが記述されており、
前記検査開始位置を判断すると、前記入力データの設定を行うこと
を特徴とする実行履歴記録装置。
【請求項５】
請求項４に記載の実行履歴記録装置において、
前記検査スクリプトには、前記入力データに対応する解である出力データが記述されていること
を特徴とする実行履歴記録装置。
【請求項６】
請求項５に記載の実行履歴記録装置において、
前記出力データを用いて、前記検査対象の変数に、前記入力データを設定したときの前記検査対象の出力をチェックすること
を特徴とする実行履歴記録装置。
【請求項７】
単位機能毎に細分化された部品プログラムにて構成される処理プログラムを実行し、検査情報が記述された検査スクリプトに基づいて処理実行の履歴を記録する実行履歴記録装置であって、前記検査スクリプト中に記された前記処理プログラムにおける検査開始位置を示すブレーク命令に基づき、当該検査開始位置を判断して前記履歴を記録する実行履歴記録装置、に対して用いられるブレーク命令設定装置であって、
前記処理プログラム中の検査対象である検査開始関数を特定する当該検査開始関数の名称情報及び当該検査開始関数をコールする親関数を特定する当該親関数の名称情報が少なくとも記述された検査スクリプトを取得するスクリプト取得手段と、
前記処理プログラムのソース記述を取得するソース取得手段と、
前記ソース取得手段により取得された前記処理プログラムのソース記述に基づき、前記スクリプト取得手段により取得された前記検査スクリプトが示す前記検査開始関数をコールする前記処理プログラム上の前記親関数において、当該親関数から前記検査開始関数がコールされる位置を、前記処理プログラムにおける検査開始位置として特定する位置特定手段と、
前記位置特定手段にて特定された位置を示すブレーク命令を前記検査スクリプトに追加するブレーク命令設定手段とを備えていること
を特徴とするブレーク命令設定装置。
【請求項８】
請求項７に記載のブレーク命令設定装置において、
さらに、前記処理プログラムのソース記述におけるプリプロセッサ命令により定まるコンパイル部分を、実行部分として特定する実行部分特定手段を備え、
前記ソース取得手段は、前記実行部分特定手段にて実行部分の特定されたソース記述を取得すること
を特徴とするブレーク命令設定装置。
【請求項９】
請求項１〜６のいずれかに記載の実行履歴記録装置、又は、請求項７若しくは８に記載のブレーク命令設定装置の各手段としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、検査スクリプトに基づく結合テストの自動化技術に関する。
【０００２】
【従来の技術】
近年、自動車等の車両にも多くのコンピュータシステムが採用されており、車両の随所にソフトウェアを搭載した電子制御装置が配置されるようになった。
そのため、今日では、ソフトウェア開発工数の削減が重要な課題となっている。特に、車載用のコンピュータシステムに搭載される制御ソフトウェアでは、車両側の部品変更や仕様変更などでソフトウェアの変更を余儀なくされる。
【０００３】
そこで、近年のプログラム開発ではオブジェクト指向設計が主流となってきた。その一つの現れが、車両部品やその機能に着目し、その単位でプログラムを作成するという手法である。このようにすれば、プログラムの再利用性が高くなるからである。なお、部品単位や機能単位のプログラムを以下では「部品プログラム」という。
【０００４】
一方、このようなプログラムの検査では、部品プログラム個々の単体検査を行い、次に、部品プログラムを結合させた結合検査を行うのが一般的である。
部品検査では部品プログラムの個々の動作を検査するのに対し、結合検査においては、部品プログラムが検査仕様書にある通りの順序でコールされているかや、入力データを与えて得られる演算結果が予め用意される出力データと同一であるかといった検査が主となる。
【０００５】
そしてこのような結合検査は、図６（ａ）に示すように、部品プログラムを結合したソースプログラム中の検査対象１２０に対応させてドライバ１１０を用意して行うことが考えられる。これによって、ドライバ１１０により、検査対象１２０を、いわゆるシミュレータと呼ばれる実行履歴記録装置が実行し、検査することができる。
【０００６】
しかし、この場合、検査対象１２０に対して個々にドライバ１１０を用意する必要があり、また、ドライバ１１０と検査対象１２０という単位でコンパイル・リンクする必要がある。特に、車両制御用の大規模なプログラムであれば、検査対象１２０が数千といったオーダーで存在するため、検査対象１２０に対応するドライバ１１０の準備や、検査対象１２０とドライバ１１０をセットにしてコンパイル・リンクするのに多大な時間を要してしまう。
【０００７】
これを解決するための手法として、図６（ｂ）に示すように、ソースプログラム８１全体を実行履歴記録装置で実行し、検査対象８１ａを、検査情報の記述される検査スクリプト８２で特定することが考えられる。
この場合、検査対象８１ａ毎に検査スクリプト８２を用意する必要はあるが、ドライバ４１をソースプログラム８１と共にコンパイル・リンクすれば、後は、検査スクリプト８２を変えるだけで、実行履歴記録装置による複数の検査対象８１ａに対する検査が可能となる。つまり、検査対象８１ａが多くなっても、コンパイル・リンクが発生しないため、検査工数が削減できるのである。
【０００８】
本発明は、このような形態の結合検査を前提とする技術である。
【０００９】
【発明が解決しようとする課題】
このとき、図７に示すように、関数Ａからコールされる関数Ｂを検査開始関数とする場合、すなわち、関数Ａからコールされる関数Ｂ以下が検査対象８１ａとなる場合を考える。
【００１０】
このような場合、従来の実行履歴記録装置では、次のような問題があった。
それは、関数Ａから関数Ｂがコールされる時点を特定できず、関数Ｂに制御が移ってからしか関数Ｂの実行を判断できないことである。つまり、図７中の記号ｂの時点を判断することはできても、記号ａの時点を判断することができなかった。記号ｂの時点で関数Ｂの実行が判断できても、関数Ａがコール元であるのか否かを判断できないため、検査開始位置を特定できない。
【００１１】
そのため、作業者が、手動で実行履歴記録装置を操作して検査開始位置を特定したり、あるいは、関数Ｂがコールされる関数Ａ中の行番号を検査スクリプトに予め書き込んだりする必要があり、この意味で完全な自動化がなされていなかった。
【００１２】
本発明は、検査スクリプトに基づいて検査開始位置を自動的に判断できる実行履歴記録装置を提供し、検査スクリプトに基づく結合検査の自動化を実現することを目的とする。
【００１３】
【課題を解決するための手段及び発明の効果】
本発明の実行履歴記録装置は、単位機能毎に細分化された部品プログラムにて構成される処理プログラムを実行し、検査情報が記述された検査スクリプトに基づいて処理実行の履歴を記録する。ここでいう部品プログラムは、オブジェクト指向設計でいうところのオブジェクトに該当する。その場合の検査情報は、オブジェクト間メッセージ通信の順序を示すシナリオ情報であることが一例として考えられる。
【００１４】
ここで、実行履歴記録装置は、検査スクリプト中に記された処理プログラムにおける検査開始位置を示すブレーク命令に基づき、当該検査開始位置を判断して履歴を記録することが可能となっている。
このような基本構成を下に、本発明は特に、スクリプト取得手段、ソース取得手段、位置特定手段、及びブレーク命令設定手段を備える。
【００１５】
スクリプト取得手段は、上述した検査スクリプトを取得する手段であり、この検査スクリプトには、少なくとも、処理プログラム中の検査対象である検査開始関数を特定する当該検査開始関数の名称情報及び当該検査開始関数をコールする親関数を特定する当該親関数の名称情報が記述されている。
ソース取得手段は、処理プログラムのソース記述を取得する。
【００１６】
そして、位置特定手段が、ソース取得手段により取得された処理プログラムのソース記述に基づき、スクリプト取得手段により取得された検査スクリプトが示す検査開始関数をコールする処理プログラム上の親関数において、当該親関数から検査開始関数がコールされる位置を、処理プログラムにおける検査開始位置として特定し、ブレーク命令設定手段によって、その特定された位置を示すブレーク命令が検査スクリプトに追加される。
【００１７】
これによって、検査スクリプトに基づいて自動的にブレーク命令が設定されるため、検査開始位置を自動的に判断でき、検査スクリプトに基づく結合検査が自動化される。このような自動化により、複数の検査スクリプトに基づく連続した実行履歴の記録が可能となる。
【００１８】
なお、特に車両制御用の処理プログラムは、例えば仕向地の違いにより、実行される部分と実行されない部分とを含む可能性がある。いわゆるコンパイラによる条件コンパイルがなされることがある。
そこで、さらに、処理プログラムのソース記述におけるプリプロセッサ命令により定まるコンパイル部分を、実行部分として特定する実行部分特定手段を備えるようにするとよい（請求項２）。この場合、ソース取得手段は、実行部分特定手段にて実行部分の特定されたソース記述を取得する。
【００１９】
これによって、実行部分に検査開始位置を特定でき、条件コンパイルにも対応できる。
ところで、実行履歴記録装置は、検査開始位置を判断してから、親関数の処理が復帰するまで、履歴を記録する構成とすることが考えられる（請求項３）。親関数から検査開始関数がコールされた後、最終的に検査開始関数の終了で親関数へ実行が移るため、この期間に履歴を記録すれば、検査開始関数以下の関数に対し、適切に履歴を記録できる。
【００２０】
また、検査スクリプトには、検査対象である検査開始関数の変数に対する入力データを記述しておき、検査開始位置を判断すると、入力データの設定を行うようにすることが考えられる（請求項４）。このようにすれば、検査のための入力データの設定までが自動化される。
【００２１】
さらに、検査スクリプトには、入力データに対応する解である出力データを記述しておいてもよい（請求項５）。変数値が正しいか否かを簡単に比較チェックできるからである。この意味では、さらに、検査スクリプトに記述された出力データを用いて、検査対象の変数に、入力データを設定したときの検査対象の出力をチェックするようにしてもよい（請求項６）。このようにすれば、演算結果のチェックまでが自動化されることになり、さらに便利である。
【００２２】
以上は、実行履歴記録装置の発明として説明してきたが、本発明は、検査スクリプトの情報に基づいて、ブレーク命令を追加することに特徴がある。
したがって、ブレーク命令設定装置の発明として実現することもできる（請求項７）。実行履歴記録装置が上述したような基本構成を有することを前提として、このようなブレーク命令設定装置を用いれば、検査スクリプトに基づいて検査開始位置を自動的に判断でき、検査スクリプトに基づく結合検査が自動化されることになる。
【００２３】
そしてこのようなブレーク命令設定装置においても、さらに、処理プログラムのソース記述におけるプリプロセッサ命令により定まるコンパイル部分を、実行部分として特定する実行部分特定手段を備える構成とし、ソース取得手段が、実行部分特定手段にて実行部分の特定されたソース記述を取得するようにしてもよい（請求項８）。これによって、条件コンパイルに対応できる。
【００２４】
なお、このような実行履歴記録装置又はブレーク命令設定装置の各手段をコンピュータにて実現する機能は、例えば、コンピュータ側で起動するプログラムとして備えることができる。したがって、本発明はプログラムの発明として実現することもできる（請求項９）。
【００２５】
このようなプログラムの場合、例えば、ＦＤ、ＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＨＤ等のコンピュータ読み取り可能な記録媒体に記録し、必要に応じてコンピュータにロードして起動することにより用いることができる。この他、ＲＯＭやバックアップＲＡＭをコンピュータ読み取り可能な記録媒体として本プログラムを記録しておき、このＲＯＭあるいはバックアップＲＡＭをコンピュータに組み込んで用いてもよい。
【００２６】
【発明の実施の形態】
以下、本発明を具体化した一実施例を図面を参照して説明する。
図１は、本実施例の実行履歴記録システムの概略構成を示す説明図である。
実行履歴記録システムは、実行履歴記録装置１０と、サーバ９０とを備えている。ここでは実行履歴記録装置１０とサーバ９０とを備えるシステムとして構成したが、一つのコンピュータシステムとして実現できることは言うまでもない。
【００２７】
実行履歴記録装置１０は、装置本体１１、表示手段としてのモニタ１２、及び、入力手段としてのキーボード１３を備える、いわゆるコンピュータシステムである。
一方、サーバ９０も、コンピュータシステムであり、装置本体９１、表示手段としてのモニタ９２を備えている。
【００２８】
装置本体９１には大容量のハードディスク装置８０が接続されており、このハードディスク装置８０には、ソースプログラム８１、検査スクリプト８２、及びスタブ８３が記録されている。ソースプログラム２１及び検査スクリプト８２は、利用者によって作成されて記憶される。スタブ８３は、検査に先だってサーバ９０によって作成される。
【００２９】
実行履歴記録装置１０は、上述した３つの情報をサーバ９０から読み込み、これら３つの情報に基づいて実行履歴を記録する。
そこでまずソースプログラム８１、検査スクリプト８２、スタブ８３について説明を加える。
【００３０】
ソースプログラム８１は、部品単位あるいは機能単位に作成される部品プログラムによって構成され、複数のファイルからなっている。
検査スクリプト８２は、検査情報を記述したものであり、テキストファイルとして作成されている。この検査スクリプト８２は、検査対象毎に作成される。
【００３１】
具体的に検査スクリプト８２には、検査開始関数の名称、当該検査開始関数をコールする親関数の名称がセットになって記述される。これにより、特定の親関数からコールされた場合の検査開始関数以下の関数が検査対象として指定する。
また、検査スクリプト８２には、検査対象とする変数の名称、変数への入力データ及び、入力データに対応する解である出力データが予め記録されている。
【００３２】
スタブ８３は、検査開始関数以下の関数からコールされるダミーの関数群である。このスタブ８３は、上述したようにサーバ９０により作成される。
次に、本実施例の実行履歴記録装置１０の動作を説明する。
図２は、実行履歴記録装置１０の装置本体１１の機能ブロック図である。すなわち、装置本体１１の機能は、プローブ埋め込みブロック３１、実行部分特定ブロック３２、ブレーク命令設定ブロック３３、ラベル定義抽出ブロック３４、ラベル置換ブロック３５、コンパイルブロック３６、実行履歴記録ブロック３７、及び、出力ブロック３８に分けることができる。
【００３３】
ここで各ブロック３１〜３８の機能を大まかに説明する。
プローブ埋め込みブロック３１は、ソースプログラム８１に対して、プローブと呼ばれる履歴記録のための出力関数を埋め込む。例えば、関数の入口や出口にこのようなプローブを埋め込むことにより、関数が実行されることにより、その関数の開始や終了、あるいは演算結果が実行履歴として記録される。
【００３４】
実行部分特定ブロック３２は、ソースプログラム８１の実行行を特定する。例えば、車両制御用のプログラムを例に挙げると、仕向地の違いなどにより、ソースプログラム８１を部分的にコンパイルすることがある。これが条件コンパイルであり、ソースプログラム８１中のプリプロセッサ命令によってコンパイルする部分が指定される。従って、このようなプリプロセッサ命令を解析して実行部分を特定するのが、実行部分特定ブロック３２である。なお、実行部分の特定機能は、従来よりコンパイラのプリプロセッサ機能として存在するため、このようなコンパイラを利用することにより容易に実現できる。
【００３５】
ブレーク命令設定ブロック３３は、実行部分特定ブロック３２にて実行行が特定されたソースプログラム８１に基づき、検査スクリプト８２を参照して、検査開始位置を示すブレーク命令を、検査スクリプト８２に追加する。これによって、ソースプログラム８１の中の検査開始位置が実行履歴記録装置１０で判断できることになる。
【００３６】
ラベル定義抽出ブロック３４は、ソースプログラム８１中のマクロラベル定義を抽出する。検査スクリプト８２に検査対象の変数名が記述されることは既に述べたが、この変数名がソースプログラム８１で用いられるマクロラベルで記述されることがある。そのため、ラベル置換ブロック３５が、検査スクリプト８２中に記述されたマクロラベルを実体情報に置換する。これらラベル定義抽出ブロック３４及びラベル置換ブロック３５により、検査スクリプト８２においても、ソースプログラム８１と同様のマクロラベルを用いることが可能となる。
【００３７】
コンパイルブロック３６は、プローブ埋め込みブロック３１にてプローブが埋め込まれたソースプログラム８１及びスタブ８３をコンパイル・リンクし、実行履歴記録ブロック３７へ出力する。
実行履歴記録ブロック３７は、検査スクリプト８２中に追加された検査開始位置を示すブレーク命令により、検査開始位置を判断すると、検査対象となっている変数に入力データを設定して、実行履歴の記録を開始する。実行履歴には、関数コールの順序情報や変数値が含まれる。そして、検査開始関数が終了し、親関数に実行が移ると、履歴の記録を終了する。さらに、検査スクリプト８２に記述された出力データと変数値とを比較することにより、検査対象の変数をチェックし、実行履歴と共にチェック結果を出力する。
【００３８】
出力ブロック３８は、実行履歴やチェック結果を、モニタ１２や図示しない記憶装置へ出力する。
ここで特に、本実施例の実行履歴記録装置１０では、上述した実行部分特定ブロック３２からの出力に基づく、ブレーク命令設定ブロック３３の動作に特徴を有する。
【００３９】
したがって、これら実行部分特定ブロック３２及びブレーク命令設定ブロック３３の動作を以下詳細に説明する。
実行部分特定ブロック３２は、上述したように、ソースプログラム８１中の実行行を特定する。
【００４０】
例えば、図３にソースプログラム８１のソース記述の一部を示した。このソースプログラム８１は、ファイル名「ｆｉｌｅ２．ｃ」というファイルとして存在する。このとき、実行部分特定ブロック３２は、８，１０行のプリプロセッサ命令を解析し、１〜７，１２〜１５行を実行行として特定する。
【００４１】
続けて、ブレーク命令設定ブロック３３のブレーク命令設定処理を、図４のフローチャートに基づいて説明する。
まず最初のステップ（以下、ステップを単に記号Ｓで示す。）１００において、検査スクリプト８２を取得する。続くＳ１１０では、関数名を取得する。この処理は、検査スクリプト８２中に記載される検査開始関数の名称、及び、その検査開始関数をコールする親関数の名称を取得するものである。検査開始関数名「ｃｈｉｌｄ１」、親関数名「ｐａｒｅｎｔ１」が取得されたものとして以下の説明を続ける。
【００４２】
次のＳ１２０では、ファイルのオープンを行う。このファイルは、実行部分特定ブロック３２から出力されるソースプログラム８１のソース記述ファイルである。
続くＳ１３０では、実行部分の解析を行い、次のＳ１４０にて、Ｓ１１０で取得した関数を検索する。
【００４３】
続くＳ１５０では、Ｓ１４０での検索結果に基づき、対象関数を発見したか否かを判断する。検査開始関数が検索されても、その検査開始関数をコールする親関数が検査スクリプト８２に指定されたものでなければ、ここで否定判断される。例えば、図５（ａ）では、検査開始関数「ｃｈｉｌｄ１」が存在するが（記号ｂ）、コール元の親関数が検査スクリプト８２とは異なる「ｐａｒｅｎｔ０」であるため（記号ａ）否定判断される。一方、図５（ｂ）では、検査スクリプト８２に記載された親関数「ｐａｒｅｎｔ１」が存在し（記号ｃ）、その中に検査開始関数「ｃｈｉｌｄ１」が存在するため（記号ｄ）肯定判断される。対象関数を発見した場合（Ｓ１５０：ＹＥＳ）、Ｓ１６０へ移行する。これに対し対象関数が発見されない場合は（Ｓ１５０：ＮＯ）、Ｓ１２０からの処理を繰り返す。
【００４４】
Ｓ１６０では、行番号を抽出する。例えば図５（ｂ）では、親関数「ｐａｒｅｎｔ１」から検査開始関数「ｃｈｉｌｄ１」がコールされる行番号「６」が抽出される。
続くＳ１７０では、検査スクリプト８２に、検査開始位置を示すブレーク命令を追加する。ここでは、ファイル名と行番号とが検査開始位置を示す。図５（ｂ）の例では、ファイル名「ｆｉｌｅ２．ｃ」と行番号「６」が検査開始位置となる。ただし、ファイル名と行番号とを直接的に検査スクリプト８２に記述する必要はない。例えば、ファイル名と行番号とをブレーク情報として別途記憶しておき、検査スクリプト８２中のブレーク命令と対応させるようにしてもよい。
【００４５】
次のＳ１８０では、未処理の検査スクリプトがあるか否かを判断する。ここで未処理の検査スクリプトがあると判断された場合（Ｓ１８０：ＹＥＳ）、Ｓ１００からの処理を繰り返す。一方、未処理の検査スクリプトがない場合には（Ｓ１８０：ＮＯ）、本ブレーク命令設定処理を終了する。
【００４６】
次に、本実施例の実行履歴記録装置１０の発揮する効果を説明する。
本実施例では、検査開始関数の名称及び当該検査開始関数をコールする親関数の名称が記述された検査スクリプト８２を取得し（図４中のＳ１００）、検査スクリプト８２に記述された関数名を取得する（Ｓ１１０）。そして、ソースプログラム８１の記述ファイルをオープンし（Ｓ１２０）、実行部分より対象関数を検索し（Ｓ１３０，Ｓ１４０）、検査開始関数をコールする親関数の行番号を抽出して（Ｓ１６０）、検査開始位置を示すブレーク命令を検査スクリプト８２に追加する（Ｓ１７０）。実行履歴記録装置１０は、検査スクリプト８２に追加されたブレーク命令に基づき、検査開始位置を判断して、処理実行の履歴を記録する。
【００４７】
これによって、検査スクリプト８２に基づいて自動的にブレーク命令が設定されるため、検査開始位置を自動的に判断でき、検査スクリプト８２に基づく結合検査が自動化される。
複数の検査スクリプト８２がある場合、未処理の検査スクリプト８２があるうちは（図４中のＳ１８０：ＹＥＳ）、一連のブレーク命令設定処理を繰り返す。したがってここでは、複数の検査スクリプト８２に基づく連続した実行履歴の記録が可能となる。
【００４８】
また、本実施例では、実行部分特定ブロック３２がソースプログラム８１中の実行部分を特定することにより、実行部分を解析して（図４中のＳ１３０）、対象関数を検索する（Ｓ１４０）。これによって、ソースプログラム８１の実行部分に検査開始位置を特定でき、条件コンパイルにも対応できる。
【００４９】
さらにまた、本実施例では、検査スクリプト８２に、検査対象の変数に対する入力データ及び、当該入力データの解である出力データが記述されている。そして、実行履歴記録装置１０は、ブレーク命令により検査開始位置を判断すると、入力データの設定を行う。これによって、検査のための入力データの設定までが自動化される。また、実行履歴記録装置１０は、出力データを用いて、検査対象の変数値をチェックする。その結果、演算結果のチェックまでが自動化される。
【００５０】
なお、本実施例における実行部分特定ブロック３２が「実行部分特定手段」に相当し、ブレーク命令設定ブロック３３が「スクリプト取得手段」、「ソース取得手段」、「位置特定手段」及び「ブレーク命令設定手段」に相当する。
そして、図４中のＳ１００が「スクリプト取得手段」としての処理に相当し、Ｓ１２０の処理が「ソース取得手段」としての処理に相当し、Ｓ１３０〜Ｓ１６０が「位置特定手段」としての処理に相当し、Ｓ１７０が「ブレーク命令設定手段」としての処理に相当する。
【００５１】
以上本発明はこのような実施形態に何等限定されるものではなく、本発明の主旨を逸脱しない範囲において種々なる形態で実施し得ることは言うまでもない。
【図面の簡単な説明】
【図１】実施例の実行履歴記録システムの構成を示す説明図である。
【図２】実行履歴記録装置の機能を示す機能ブロック図である。
【図３】実行部分の特定を具体的に示す説明図である。
【図４】ブレーク命令設定処理を示す説明図である。
【図５】対象関数の検索を具体的に示す説明図である。
【図６】結合検査の手法を示す説明図である。
【図７】検査開始位置の特定に関する問題を示す説明図である。
【符号の説明】
１０…実行履歴記録装置
１１…装置本体
１２…モニタ
１３…キーボード
３１…プローブ埋め込みブロック
３２…実行部分特定ブロック
３３…ブレーク命令設定ブロック
３４…ラベル定義抽出ブロック
３５…ラベル置換ブロック
３６…コンパイルブロック
３７…実行履歴記録ブロック
３８…出力ブロック
４１…ドライバ
８０…ハードディスク装置
８１…ソースプログラム
８１ａ…検査対象
８２…検査スクリプト
８３…スタブ
９０…サーバ
９１…装置本体
９２…モニタ
１１０…ドライバ
１２０…検査対象
【図１】
0004061931.tif 000002
【図２】
0004061931.tif 000003
【図３】
0004061931.tif 000004
【図４】
0004061931.tif 000005
【図５】
0004061931.tif 000006
【図６】
0004061931.tif 000007
【図７】
0004061931.tif 000008