(57)【特許請求の範囲】
【請求項１】
プログラムコードを実行した時、上記プログラムコードの任意の場所に埋め込まれた動作履歴収集ソフトにより、レジスタ情報及びメモリ情報を動作履歴情報として保存する対象ユニット、
及びこの対象ユニットから上記動作履歴情報と上記プログラムコードを取得し、上記プログラムコードの実行を再現する再現マシンを備え、
上記再現マシンは、選択された上記動作履歴情報の上記レジスタ情報を自装置のレジスタに、上記動作履歴情報の上記メモリ情報を自装置のメモリにそれぞれ復元するとともに、
上記レジスタ情報が復元されたレジスタ及び上記メモリ情報が復元されたメモリを用いて、上記選択された上記動作履歴情報に対応するステップ以降の上記プログラムコードを実行する動作履歴復元ソフトを有することを特徴とする再現試験システム。
【請求項２】
プログラムコードを実行した時、上記プログラムコードの任意の場所に埋め込まれた動作履歴収集ソフトにより、レジスタ情報及びメモリ情報を動作履歴情報として保存するとともに上記プログラムコードのハッシュ値を保存する対象ユニット、
及びこの対象ユニットから上記動作履歴情報及び上記ハッシュ値を取得し、予め自装置に保存された上記プログラムコードと同じプログラムコードにより上記対象ユニットの実行を再現する再現マシンを備え、
上記再現マシンは、選択された上記動作履歴情報の上記レジスタ情報を自装置のレジスタに、上記動作履歴情報の上記メモリ情報を自装置のメモリにそれぞれ復元する動作履歴復元ソフトを有し、
上記動作履歴復元ソフトは、上記レジスタ情報が復元されたレジスタ及び上記メモリ情報が復元されたメモリを用いて、上記自装置に保存された上記プログラムコードのハッシュ値が上記対象ユニットから取得したハッシュ値と一致することを確認した上で、上記自装置に保存された上記プログラムコードの上記選択された上記動作履歴情報に対応するステップ以降の部分を実行することを特徴とする再現試験システム。
【請求項３】
上記動作履歴復元ソフトは、上記プログラムコードをステップごとに実行することを特徴とする請求項1または請求項２記載の再現試験システム。
【請求項４】
上記動作履歴収集ソフトは、上記動作履歴情報の収集に当たって、上記動作履歴情報に対応する上記プログラムコードのプログラムコード名を保存するとともに、上記動作履歴復元ソフトは、上記動作履歴情報の復元に当たって上記プログラムコード名が選択され、この選択されたプログラムコード名に対応する動作履歴情報を復元することを特徴とする請求項１〜請求項３のいずれかに記載の再現試験システム。
【請求項５】
上記動作履歴復元ソフトによって実行が再現されるプログラムコードは、修正により変更されたものと、変更前のものとが選択されることを特徴とする請求項１〜請求項４のいずれかに記載の再現試験システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、対象ユニットの障害解析及び改修のために、対象ユニットの動作を再現する再現試験システムに関するものである。
【背景技術】
【０００２】
従来の情報収集方式においては、対象ユニットから所定の契機毎に対象ユニットの動作履歴情報を収集するものであった。（例えば、特許文献１）
【０００３】
【特許文献１】実公昭５８−４７４６７号公報（第１〜２頁、図）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の情報収集方式においては、対象ユニットから所定の契機毎に対象ユニットの動作履歴情報を収集するものであった。このため、障害解析及び改修時には、収集した動作履歴情報を基に、人が直接、対象ユニットの動作を解析する作業を行なわなければならないという問題があった。
このため、障害解析及び改修時の動作確認に時間がかかるという問題がある。
【０００５】
この発明は、上記のような課題を解決するためになされたものであり、動作履歴情報を基にして対象ユニットの動作を再現し、障害解析及び改修時の動作確認を容易にした再現試験システムを得ることを目的としている。
【課題を解決するための手段】
【０００６】
この発明に係わる再現試験システムにおいては、プログラムコードを実行した時、プログラムコードの任意の場所に埋め込まれた動作履歴収集ソフトにより、レジスタ情報及びメモリ情報を動作履歴情報として保存する対象ユニット、及びこの対象ユニットから動作履歴情報とプログラムコードを取得し、プログラムコードの実行を再現する再現マシンを備え、再現マシンは、選択された動作履歴情報のレジスタ情報を自装置のレジスタに、動作履歴情報のメモリ情報を自装置のメモリにそれぞれ復元するとともに、レジスタ情報が復元されたレジスタ及びメモリ情報が復元されたメモリを用いて、選択された動作履歴情報に対応するステップ以降のプログラムコードを実行する動作履歴復元ソフトを有するものである。
【発明の効果】
【０００７】
この発明は、以上説明したように、プログラムコードを実行した時、プログラムコードの任意の場所に埋め込まれた動作履歴収集ソフトにより、レジスタ情報及びメモリ情報を動作履歴情報として保存する対象ユニット、及びこの対象ユニットから動作履歴情報とプログラムコードを取得し、プログラムコードの実行を再現する再現マシンを備え、再現マシンは、選択された動作履歴情報のレジスタ情報を自装置のレジスタに、動作履歴情報のメモリ情報を自装置のメモリにそれぞれ復元するとともに、レジスタ情報が復元されたレジスタ及びメモリ情報が復元されたメモリを用いて、選択された動作履歴情報に対応するステップ以降のプログラムコードを実行する動作履歴復元ソフトを有するので、再現マシンでは、対象ユニットから収集した動作履歴情報を選択し、その状態からの動作を再現することができるため、問題箇所の特定が容易になる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
以下、この発明の実施の形態１を図１に基づいて説明する。
図１は、この発明の実施の形態１による再現試験システムを示す構成図である。
図１において、対象ユニット１０は、対象ユニット１０内で動作するプログラムコード１１と、プログラムコード１１の動作に関係する値が書き込まれるレジスタ１２と、プログラムコード１１の実行時の変数（データ・ＢＳＳ・ヒープ領域）を記憶するメモリ１３と、所定の契機（所定の事象が発生した時点）毎にレジスタ１２とメモリ１３上の情報を収集する動作履歴情報１４（不揮発性メモリなどに記憶されている）と、動作履歴収集ソフト１５とにより構成されている。動作履歴収集ソフト１５は、所定の契機毎にレジスタ１２とメモリ１３上の情報を収集し、動作履歴情報１４として記憶させる。
再現マシン２０も同様の構成になっており、プログラムコード２１と、レジスタ２２と、メモリ２３と、動作履歴情報２４と、復元処理を行なう動作履歴復元ソフト２５とが搭載される。動作履歴復元ソフト２５は、対象ユニット１０の動作履歴情報１４をコピーした動作履歴情報２４の任意の契機に対応するレジスタの値を取り出し、レジスタ２２に格納するとともに、その契機に対応するメモリの値を取り出し、メモリ２３に格納する処理を行い、さらに画面上の実行ボタンを操作されることにより、その契機以降の処理をプログラムコードにしたがって、実行するようになっている。
【０００９】
図２は、この発明の実施の形態１による再現試験システムの再現マシンの画面例を示す構成図である。
図２において、メモリ内容表示Ａは、メモリの内容を表示する。レジスタ内容表示Ｂは、レジスタの内容を表示し、変化したレジスタは強調表示する。コード内容表示Ｃは、プログラムコードの内容を表示し、実行中の行が強調表示される。ステップ実行ボタンＤは、１ステップずつ実行するときに操作するボタンである。実行ボタンＥは、ある位置以降のプログラムコードを実行するボタンである。停止ボタンＦは、プログラムコードの実行を停止するボタンである。
【００１０】
図３は、この発明の実施の形態１による再現試験システムの動作履歴収集ソフトの処理を示すフローチャートである。
図４は、この発明の実施の形態１による再現試験システムの動作履歴復元ソフトの処理を示すフローチャートである。
【００１１】
次に、動作について説明する。まず、図３により、対象ユニット１０の動作について説明する。
対象ユニット１０では、プログラムコード１１が実行されると、その動作ステップを示す値がレジスタ１２に、変数（データ・ＢＳＳ・ヒープ領域）がメモリ１３に記録され、これらの値（データ）は、プログラムコード１１のステップ動作によって逐次変化していく。
そして、プログラムコード１１の任意の場所に埋め込まれた動作履歴収集ソフト１５により、これらのレジスタ１２とメモリ１３のデータを動作履歴情報１４に収集（コピー・保存）する。
すなわち、図３に示すように、動作履歴収集ソフト１５は、レジスタデータを動作履歴情報１４へコピーし（ＳＴ１０）、メモリデータを動作履歴情報１４へコピーする（ＳＴ１１）。
【００１２】
次に、図４により、再現マシン２０の動作について説明する。
再現マシン２０は、まず、対象ユニット１０のプログラムコード１１と動作履歴情報１４を、再現マシン２０のプログラムコード２１と動作履歴情報２４にコピーする。
そして、動作履歴復元ソフト２５にて、図４に示すように、どの契機のデータを用いるか（通常は異常発生直前の契機のデータ）を選択（入力）し、この選択された動作履歴情報１４により（ＳＴ２０）、動作履歴情報２４から、レジスタの値をレジスタ２２に、メモリの値をメモリ２３に復元し（ＳＴ２１）、プログラムコード２１をメモリ２３へロードする（ＳＴ２２）。この状態は、図２に示すように表示される。
そして、この状態で、図２の画面上の実行ボタンＥが操作されることにより（ＳＴ２３）、選択された契機以降のプログラムコードを実行し、再現試験を実施することができる。
【００１３】
実施の形態１によれば、これにより、任意の動作履歴情報を選択することにより、その時点からの動作を瞬時に再現（復元）することが可能になり、解析性が向上する。
【００１４】
実施の形態２．
実施の形態１では、再現マシンが、プログラムコードをメモリへロードした後、一気に実行する場合について述べたが、実施の形態２では、再現試験をステップ実行できるようにしたものである。
図５は、この発明の実施の形態２による再現試験システムの動作履歴復元ソフトの処理を示すフローチャートである。
図５において、ＳＴ２０〜ＳＴ２３は図４の処理と同じ処理である。
【００１５】
実施の形態２では、図５に示すように、プログラムコード２１を実行するＳＴ２３の後ろに、ステップ実行を行うための動作入力（ＳＴ３４）と、異常発生チェック（ＳＴ３５）の各処理を設けることにより、再現試験をステップ実行でき、解析性が向上する。
実施の形態２は、プログラムコード２１を実行するに当たり、1ステップずつ実行し、結果を確認できるようにしたものである。ＳＴ２３で、図２のステップ実行ボタンＤを操作すれば、プログラムコードの１ステップずつで停止するので、ＳＴ３４では、その画面でさらにステップ実行ボタンＤを操作することにより、プログラムコードの次のステップが実行される。そして、そのつど、ＳＴ３５で、異常発生をチェックする。
実施の形態２によれば、再現試験をステップ実行することができ、解析性を向上することができる。
【００１６】
実施の形態３．
実施の形態１及び実施の形態２では、対象ユニット１０にて異なるプログラムコード１１を複数実行した場合、再現マシン２０では、どのプログラムコード２１を復元するのか判断できないという問題がある。このため、実施の形態３は、動作履歴情報１４に動作履歴とプログラムコード名を併せて記録するようにした。
図６は、この発明の実施の形態３による再現試験システムの動作履歴収集ソフトの処理を示すフローチャートである。
図６において、ＳＴ１０、ＳＴ１１は図３における処理と同じ処理である。
【００１７】
図７は、この発明の実施の形態３による再現試験システムの動作履歴復元ソフトの処理を示すフローチャートである。
図７において、ＳＴ２０、ＳＴ２１、ＳＴ２３、ＳＴ３４、ＳＴ３５は図５の処理と同じ処理である。
【００１８】
実施の形態３では、図６に示すように、ステップＳＴ１１の後に、プログラムコード名を記録する処理（ＳＴ４２）を追加する。
これにより、図１の動作履歴情報２４にプログラムコード名が追加される。
【００１９】
次に、再現マシン２０の動作履歴復元ソフト２５の処理について図７により説明する。
図７に示すように、ＳＴ２１の次に、動作履歴（プログラムコード名）に記録されたプログラムコードをメモリへロードする処理（ＳＴ５２）を行う。そして、ＳＴ２３で、これを実行する。
これにより、誤ったプログラムコード２１の実行を防ぐことができる。
【００２０】
実施の形態３によれば、動作履歴情報に動作履歴とプログラムコード名を併せて記録するようにしたので、対象ユニットにて異なるプログラムコードを複数実行した場合でも、再現マシンで、どのプログラムコードを復元するのかを判断することができる。
【００２１】
実施の形態４．
実施の形態１〜実施の形態３では、対象ユニット１０のプログラムコード１１を、再現マシン２０のプログラムコード２１として使用したが、実施の形態４は、プログラムコード２１に予めプログラムコード１１と同じものを置いておくことにより、コピーする手間を省くようにした。
ただし、プログラムコード１１とプログラムコード２１が同一でなければならないため、ハッシュ値によるチェックを行なう仕組みを追加する。
【００２２】
図８は、この発明の実施の形態４による再現試験システムの動作履歴収集ソフトの処理を示すフローチャートである。
図８において、ＳＴ１０、ＳＴ１１、ＳＴ４２は図６における処理と同じ処理である。
【００２３】
図９は、この発明の実施の形態４による再現試験システムの動作履歴復元ソフトの処理を示すフローチャートである。
図９において、ＳＴ２０、ＳＴ２１、ＳＴ２３、ＳＴ３４、ＳＴ３５、ＳＴ５２は図７の処理と同じ処理である。
【００２４】
まず、図８により、対象ユニット１０の動作履歴収集ソフト１５の動作について説明する。
これは、実施の形態３の図６の最後に、プログラムコード１１のハッシュ値を算出する処理（ＳＴ６３）と、プログラムコード１１のハッシュ値を記録する処理（ＳＴ６４）を追加したものである。
【００２５】
次に、図９により、再現マシン２０の動作履歴復元ソフト２５の動作について説明する。
これは、実施の形態３の図７のＳＴ２１とＳＴ５２の間に、予め再現マシン２０に保持するプログラムコード２１のハッシュ値を算出する処理（ＳＴ７２）と、選択した動作履歴情報２４のハッシュ値とプログラムコード２１のハッシュ値を比較する処理（ＳＴ７３）を追加したものである。
ＳＴ７３の条件分岐では、ハッシュ値が一致した場合には、ＳＴ５２に分岐して処理を継続し、不一致の場合には、処理を終了する。
【００２６】
実施の形態４によれば、再現マシンに予め対象ユニットのプログラムコードと同じプログラムコードを搭載しておくことにより、再現マシンにプログラムコードをロードする手間を省くようにした。
【００２７】
実施の形態５．
実施の形態１〜実施の形態４では、対象ユニット１０のプログラムコード１１と動作履歴情報１４を基にして動作を再現（復元）していた。通常、プログラムコード１１に不具合がある場合、実施の形態１〜実施の形態４による解析を行なって問題箇所を特定し、正常動作するように、その問題箇所を変更（修正）する。
実施の形態５は、この変更後のプログラムコード２１の（正常）動作を確認するため、変更前／変更後のどちらのプログラムコード２１にも対応できる動作履歴復元ソフト２５を実現する。
【００２８】
図１０は、この発明の実施の形態５による再現試験システムの動作履歴復元ソフトの処理を示すフローチャートである。
図１０において、ＳＴ２０、ＳＴ２１、ＳＴ２３、ＳＴ３４、ＳＴ３５、ＳＴ５２、ＳＴ７２、ＳＴ７３は図９の処理と同じ処理である。
図１０では、図９のＳＴ２１とＳＴ７２との間に、プログラムコードの種類（変更前／変更後）を選択（入力）する処理（ＳＴ８２）と、変更前／変更後チェックの処理（ＳＴ８３）を追加したものである。
これらのうち、ＳＴ８３の条件分岐では、ＳＴ８２で選択（入力）された変更前、もしくは、変更後に従って、変更前の場合にはＳＴ７２に分岐して処理を継続し、変更後の場合には、ＳＴ５２に分岐して、その後の処理を継続する。
【００２９】
実施の形態５によれば、動作履歴復元ソフト２５により、変更前／変更後のどちらのプログラムコードにも対応でき、プログラムコード変更時の解析を容易にすることができる。
【図面の簡単な説明】
【００３０】
【図１】この発明の実施の形態１による再現試験システムを示す構成図である。
【図２】この発明の実施の形態１による再現試験システムの再現マシンの画面例を示す構成図である。
【図３】この発明の実施の形態１による再現試験システムの動作履歴収集ソフトの処理を示すフローチャートである。
【図４】この発明の実施の形態１による再現試験システムの動作履歴復元ソフトの処理を示すフローチャートである。
【図５】この発明の実施の形態２による再現試験システムの動作履歴復元ソフトの処理を示すフローチャートである。
【図６】この発明の実施の形態３による再現試験システムの動作履歴収集ソフトの処理を示すフローチャートである。
【図７】この発明の実施の形態３による再現試験システムの動作履歴復元ソフトの処理を示すフローチャートである。
【図８】この発明の実施の形態４による再現試験システムの動作履歴収集ソフトの処理を示すフローチャートである。
【図９】この発明の実施の形態４による再現試験システムの動作履歴復元ソフトの処理を示すフローチャートである。
【図１０】この発明の実施の形態５による再現試験システムの動作履歴復元ソフトの処理を示すフローチャートである。
【符号の説明】
【００３１】
１０  対象ユニット
１１  プログラムコード
１２  レジスタ
１３  メモリ
１４  動作履歴情報
１５  動作履歴収集ソフト
２０  再現マシン
２１  プログラムコード
２２  レジスタ
２３  メモリ
２４  動作履歴情報
２５  動作履歴復元ソフト
【図１】
0004897654.tif 000002
【図２】
0004897654.tif 000003
【図３】
0004897654.tif 000004
【図４】
0004897654.tif 000005
【図５】
0004897654.tif 000006
【図６】
0004897654.tif 000007
【図７】
0004897654.tif 000008
【図８】
0004897654.tif 000009
【図９】
0004897654.tif 000010
【図１０】
0004897654.tif 000011