(57)【特許請求の範囲】
【請求項１】
マイコンが搭載された機器に組み込まれて使用されるマイコン機器ソフトウェアのデバッグを支援するデバッグ支援システムであって、
前記マイコン機器ソフトウェアの特定の状態に対応付けて該状態において該マイコン機器ソフトウェアで発生したときに他の状態に遷移を引き起こすことが想定される想定内イベントが記述されるとともに、該想定内イベントのうち対応する状態以外において発生したときに他の状態に遷移を引き起こさない想定内イベントが想定外イベントとして記述された状態遷移表からイベントに基づく該マイコン機器ソフトウェアの状態遷移を示す状態遷移パスを生成するとともに、該生成した状態遷移パスの各状態で発生する想定内イベントおよび想定外イベントを状態ごとに生成するデバッグ支援ホスト装置と、
前記デバッグ支援ホスト装置により生成された状態ごとの想定内イベントおよび想定外イベントを用いて前記状態遷移パスの各状態において該状態で発生する全ての想定外イベントを発行した後に想定内イベントを発行して前記マイコン機器ソフトウェアを実行するデバッグ支援ターゲット装置と、
を備えたことを特徴とするデバッグ支援システム。
【請求項２】
前記デバッグ支援ターゲット装置は、前記マイコン機器ソフトウェアの実行をモニタするデバッグ支援ホスト装置に想定外イベントおよび想定内イベントの発行ならびに、該想定内イベントの発行に伴って前記マイコン機器ソフトウェアにおいて遷移した状態を通知することを特徴とする請求項１に記載のデバッグ支援システム。
【請求項３】
マイコンが搭載された機器に組み込まれて使用されるマイコン機器ソフトウェアのデバッグを支援するデバッグ支援方法であって、
前記マイコン機器ソフトウェアの特定の状態に対応付けて該状態において該マイコン機器ソフトウェアで発生したときに他の状態に遷移を引き起こすことが想定される想定内イベントが記述されるとともに、該想定内イベントのうち対応する状態以外において発生したときに他の状態に遷移を引き起こさない想定内イベントが想定外イベントとして記述された状態遷移表からイベントに基づく該マイコン機器ソフトウェアの状態遷移を示す状態遷移パスを生成するとともに、該生成した状態遷移パスの各状態で発生する想定内イベントおよび想定外イベントを状態ごとに生成するテストパターン生成工程と、
前記テストパターン生成工程により生成された状態ごとの想定内イベントおよび想定外イベントを用いて前記状態遷移パスの各状態において該状態で発生する全ての想定外イベントを発行した後に想定内イベントを発行して前記マイコン機器ソフトウェアを実行するテスト実行工程と、
を含んだことを特徴とするデバッグ支援方法。
【請求項４】
前記テスト実行工程は、前記マイコン機器ソフトウェアの実行をモニタするデバッグ支援ホスト装置に想定外イベントおよび想定内イベントの発行ならびに、該想定内イベントの発行に伴って前記マイコン機器ソフトウェアにおいて遷移した状態を通知することを特徴とする請求項３に記載のデバッグ支援方法。
【請求項５】
マイコンが搭載された機器に組み込まれて使用されるマイコン機器ソフトウェアを実行して該マイコン機器ソフトウェアのデバッグを支援するデバッグ支援ターゲットプログラムであって、
前記マイコン機器ソフトウェアの特定の状態に対応付けて該状態において該マイコン機器ソフトウェアで発生したときに他の状態に遷移を引き起こすことが想定される想定内イベントが記述されるとともに、該想定内イベントのうち対応する状態以外において発生したときに他の状態に遷移を引き起こさない想定内イベントが想定外イベントとして記述された状態遷移表から生成された、イベントに基づく該マイコン機器ソフトウェアの状態遷移を示す状態遷移パスの状態ごとに、該状態で発生する全ての想定外イベントを発行して前記マイコン機器ソフトウェアを実行する想定外イベント発行手順と、
前記想定外イベント発行手順により想定外イベントが発行された後に該状態で発生する想定内イベントを発行して前記マイコン機器ソフトウェアを実行する想定内イベント発行手順と、
をコンピュータに実行させることを特徴とするデバッグ支援ターゲットプログラム。
【請求項６】
前記想定外イベント発行手順は、前記マイコン機器ソフトウェアの実行をモニタするモニタプログラムに想定外イベントの発行を通知し、
前記想定内イベント発行手順は、前記マイコン機器ソフトウェアの実行をモニタするモニタプログラムに想定内イベントの発行ならびに、該想定内イベントの発行に伴って前記マイコン機器ソフトウェアにおいて遷移した状態を通知することを特徴とする請求項５に記載のデバッグ支援ターゲットプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、マイコンが搭載された機器に組み込まれて使用されるマイコン機器ソフトウェアのデバッグを支援するデバッグ支援システム、デバッグ支援方法、デバッグ支援ターゲットプログラムおよびデバッグ支援ホストプログラムに関し、特に、網羅的なテストケースを自動生成し、もってデバッグ効率および試験品質を向上することができるデバッグ支援システム、デバッグ支援方法、デバッグ支援ターゲットプログラムおよびデバッグ支援ホストプログラムに関するものである。
【背景技術】
【０００２】
ＤＶＤレコーダや携帯オーディオ機器などに組み込まれて使用されるマイコン機器ソフトウェアのデバッグ・テストを行う場合には、様々なイベントに対する動作を試験する必要がある。
【０００３】
図９は、マイコン機器ソフトウェアの従来のデバッグ・テスト手法を説明するための説明図である。同図に示すように、マイコン機器ソフトウェアのデバッグ・テストを行う場合には、開発者は、外部仕様書やＳＷ（ソフトウェア）設計書を元にテストパターンを生成し、生成したテストパターンに基づいて試験プログラムを作成する。ここで、テストパターンとは、イベントの組み合わせとそれに基づくマイコン機器ソフトウェアの状態の遷移を示す。
【０００４】
そして、開発者は、試験プログラムを用いてデバッグ・テスト対象のタスクをマイコンシステムで実行し、Ｈ／Ｗ（ハードウェア）デバッガのトレース機能などを用いてデバッグ・テスト対象の状態確認を行うことによってデバッグ・テストを行っている。
【０００５】
ただし、全てのイベントの組み合わせを網羅的に試験しようとするとテストケースが膨大になるため、実際には、開発者は、いくつかの組み合わせを抜き出して試験を行っている。
【０００６】
なお、特許文献１には、組み込み用ソフトウェアをデバッグする場合に、組み込み用ソフトウェアがアクセスするデバイスのエミュレータをホストオペレーティングシステム上に構築し、ホストオペレーティングシステム上で組み込み用ソフトウェアをデバッグする手法が記載されている。
【０００７】
【特許文献１】特開２００５−１８４８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、試験対象プログラムをマイコンシステムを用いて実行するかホストオペレーティングシステム上で実行するかにかかわらず、開発者がテストケースを作成することとすると、テストケースの妥当性が開発者のスキルに依存し、テストケースに抜けが発生し易く、試験品質が低下するという問題がある。
【０００９】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、網羅的なテストケースを自動生成し、もってデバッグ効率および試験品質を向上することができるデバッグ支援システム、デバッグ支援方法、デバッグ支援ターゲットプログラムおよびデバッグ支援ホストプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、本願発明に係るデバッグ支援システムは、マイコンが搭載された機器に組み込まれて使用されるマイコン機器ソフトウェアのデバッグを支援するデバッグ支援システムであって、前記マイコン機器ソフトウェアの特定の状態で発生する想定内イベントと状態にかかわらず発生する想定外イベントとを用いて該マイコン機器ソフトウェアの動作を記述した状態遷移表からイベントに基づく該マイコン機器ソフトウェアの状態遷移を示す状態遷移パスを生成するとともに、該生成した状態遷移パスの各状態で発生する想定内イベントおよび想定外イベントを状態ごとに生成するデバッグ支援ホスト装置と、前記デバッグ支援ホスト装置により生成された状態ごとの想定内イベントおよび想定外イベントを用いて前記状態遷移パスの各状態で想定外イベントを発行した後に想定内イベントを発行して前記マイコン機器ソフトウェアを実行するデバッグ支援ターゲット装置と、を備えたことを特徴とする。
【００１１】
この発明によれば、マイコン機器ソフトウェアの特定の状態で発生する想定内イベントと状態にかかわらず発生する想定外イベントとを用いてマイコン機器ソフトウェアの動作を記述した状態遷移表からイベントに基づくマイコン機器ソフトウェアの状態遷移を示す状態遷移パスを生成するとともに、生成した状態遷移パスの各状態で発生する想定内イベントおよび想定外イベントを状態ごとに生成し、生成した状態ごとの想定内イベントおよび想定外イベントを用いて状態遷移パスの各状態で想定外イベントを発行した後に想定内イベントを発行してマイコン機器ソフトウェアを実行するよう構成したので、想定外イベントに対するテストケースを自動生成してデバッグすることができる。
【００１２】
また、本願発明に係るデバッグ支援システムは、上記の発明において、前記デバッグ支援ターゲット装置は、前記状態遷移パスの状態ごとに、該状態で発生する想定外イベント全てを一つずつ順番に発行した後に想定内イベントを発行して前記マイコン機器ソフトウェアを実行することを特徴とする。
【００１３】
この発明によれば、状態遷移パスの状態ごとに、その状態で発生する想定外イベント全てを一つずつ順番に発行した後に想定内イベントを発行してマイコン機器ソフトウェアを実行するよう構成したので、網羅的なテストケースを自動生成してデバッグすることができる。
【００１４】
また、本願発明に係るデバッグ支援システムは、上記の発明において、前記デバッグ支援ターゲット装置は、前記マイコン機器ソフトウェアの実行をモニタするデバッグ支援ホスト装置に想定外イベントおよび想定内イベントの発行ならびに状態遷移を通知することを特徴とする。
【００１５】
この発明によれば、マイコン機器ソフトウェアの実行をモニタするデバッグ支援ホスト装置に想定外イベントおよび想定内イベントの発行ならびに状態遷移を通知するよう構成したので、デバッグ支援ホスト装置でイベントおよび状態遷移のログを記録することができる。
【００１６】
また、本願発明に係るデバッグ支援方法は、マイコンが搭載された機器に組み込まれて使用されるマイコン機器ソフトウェアのデバッグを支援するデバッグ支援方法であって、前記マイコン機器ソフトウェアの特定の状態で発生する想定内イベントと状態にかかわらず発生する想定外イベントとを用いて該マイコン機器ソフトウェアの動作を記述した状態遷移表からイベントに基づく該マイコン機器ソフトウェアの状態遷移を示す状態遷移パスを生成するとともに、該生成した状態遷移パスの各状態で発生する想定内イベントおよび想定外イベントを状態ごとに生成するテストパターン生成工程と、前記テストパターン生成工程により生成された状態ごとの想定内イベントおよび想定外イベントを用いて前記状態遷移パスの各状態で想定外イベントを発行した後に想定内イベントを発行して前記マイコン機器ソフトウェアを実行するテスト実行工程と、を含んだことを特徴とする。
【００１７】
この発明によれば、マイコン機器ソフトウェアの特定の状態で発生する想定内イベントと状態にかかわらず発生する想定外イベントとを用いてマイコン機器ソフトウェアの動作を記述した状態遷移表からイベントに基づくマイコン機器ソフトウェアの状態遷移を示す状態遷移パスを生成するとともに、生成した状態遷移パスの各状態で発生する想定内イベントおよび想定外イベントを状態ごとに生成し、生成した状態ごとの想定内イベントおよび想定外イベントを用いて状態遷移パスの各状態で想定外イベントを発行した後に想定内イベントを発行してマイコン機器ソフトウェアを実行するよう構成したので、想定外イベントに対するテストケースを自動生成してデバッグすることができる。
【００１８】
また、本願発明に係るデバッグ支援方法は、上記の発明において、前記テスト実行工程は、前記状態遷移パスの状態ごとに、該状態で発生する想定外イベント全てを一つずつ順番に発行した後に想定内イベントを発行して前記マイコン機器ソフトウェアを実行することを特徴とする。
【００１９】
この発明によれば、状態遷移パスの状態ごとに、その状態で発生する想定外イベント全てを一つずつ順番に発行した後に想定内イベントを発行してマイコン機器ソフトウェアを実行するよう構成したので、網羅的なテストケースを自動生成してデバッグすることができる。
【００２０】
また、本願発明に係るデバッグ支援方法は、上記の発明において、前記テスト実行工程は、前記マイコン機器ソフトウェアの実行をモニタするデバッグ支援ホスト装置に想定外イベントおよび想定内イベントの発行ならびに状態遷移を通知することを特徴とする。
【００２１】
この発明によれば、マイコン機器ソフトウェアの実行をモニタするデバッグ支援ホスト装置に想定外イベントおよび想定内イベントの発行ならびに状態遷移を通知するよう構成したので、デバッグ支援ホスト装置でイベントおよび状態遷移のログを記録することができる。
【００２２】
また、本願発明に係るデバッグ支援ターゲットプログラムは、マイコンが搭載された機器に組み込まれて使用されるマイコン機器ソフトウェアを実行して該マイコン機器ソフトウェアのデバッグを支援するデバッグ支援ターゲットプログラムであって、前記マイコン機器ソフトウェアの特定の状態で発生する想定内イベントと状態にかかわらず発生する想定外イベントとを用いて該マイコン機器ソフトウェアの動作を記述した状態遷移表から生成された、イベントに基づく該マイコン機器ソフトウェアの状態遷移を示す状態遷移パスの状態ごとに、該状態で発生する想定外イベントを発行して前記マイコン機器ソフトウェアを実行する想定外イベント発行手順と、前記想定外イベント発行手順により想定外イベントが発行された後に該状態で発生する想定内イベントを発行して前記マイコン機器ソフトウェアを実行する想定内イベント発行手順と、をコンピュータに実行させることを特徴とする。
【００２３】
この発明によれば、マイコン機器ソフトウェアの特定の状態で発生する想定内イベントと状態にかかわらず発生する想定外イベントとを用いてマイコン機器ソフトウェアの動作を記述した状態遷移表から生成された、イベントに基づくマイコン機器ソフトウェアの状態遷移を示す状態遷移パスの状態ごとに、その状態で発生する想定外イベントを発行してマイコン機器ソフトウェアを実行し、想定外イベントを発行した後にその状態で発生する想定内イベントを発行してマイコン機器ソフトウェアを実行するよう構成したので、想定外イベントに対して自動生成されたテストケースを用いてデバッグすることができる。
【００２４】
また、本願発明に係るデバッグ支援ターゲットプログラムは、上記の発明において、前記想定外イベント発行手順は、前記状態遷移パスの状態ごとに、該状態で発生する想定外イベント全てを一つずつ順番に発行した後に想定内イベントを発行して前記マイコン機器ソフトウェアを実行することを特徴とする。
【００２５】
この発明によれば、状態遷移パスの状態ごとに、その状態で発生する想定外イベント全てを一つずつ順番に発行した後に想定内イベントを発行してマイコン機器ソフトウェアを実行するよう構成したので、想定外イベントに対して網羅的に生成されたテストケースを用いてデバッグすることができる。
【００２６】
また、本願発明に係るデバッグ支援ターゲットプログラムは、上記の発明において、前記想定外イベント発行手順は、前記マイコン機器ソフトウェアの実行をモニタするモニタプログラムに想定外イベントの発行を通知し、前記想定内イベント発行手順は、前記マイコン機器ソフトウェアの実行をモニタするモニタプログラムに想定内イベントの発行を通知することを特徴とする。
【００２７】
この発明によれば、マイコン機器ソフトウェアの実行をモニタするモニタプログラムに想定外イベントおよび想定内イベントの発行を通知するよう構成したので、モニタプログラムでイベントのログを記録することができる。
【００２８】
また、本願発明に係るデバッグ支援ホストプログラムは、マイコンが搭載された機器に組み込まれて使用されるマイコン機器ソフトウェアのデバッグを支援するデバッグ支援ホストプログラムであって、前記マイコン機器ソフトウェアの特定の状態で発生する想定内イベントと状態にかかわらず発生する想定外イベントとを用いて該マイコン機器ソフトウェアの動作を記述した状態遷移表からイベントに基づく該マイコン機器ソフトウェアの状態遷移を示す状態遷移パスを生成する状態遷移パス生成手順と、前記マイコン機器ソフトウェアのテストに使用される想定内イベントおよび想定外イベントを前記状態遷移パス生成手順により生成された状態遷移パスの状態ごとに生成する状態毎イベント生成手順と、をコンピュータに実行させることを特徴とする。
【００２９】
この発明によれば、マイコン機器ソフトウェアの特定の状態で発生する想定内イベントと状態にかかわらず発生する想定外イベントとを用いてマイコン機器ソフトウェアの動作を記述した状態遷移表からイベントに基づくマイコン機器ソフトウェアの状態遷移を示す状態遷移パスを生成し、マイコン機器ソフトウェアのテストに使用される想定内イベントおよび想定外イベントを、生成した状態遷移パスの状態ごとに生成するよう構成したので、想定外イベントに対して網羅的にテストケースを生成してデバッグすることができる。
【発明の効果】
【００３０】
本願発明によれば、想定外イベントに対するテストケースを自動生成してデバッグするので、デバッグ効率および試験品質を向上することができるという効果を奏する。
【００３１】
また、本願発明によれば、網羅的なテストケースを自動生成してデバッグするので、デバッグ効率および試験品質を向上することができるという効果を奏する。
【００３２】
また、本願発明によれば、デバッグ支援ホスト装置でイベントおよび状態遷移のログを記録するので、開発者はログを用いてマイコン機器ソフトウェアの動作を確認することができるという効果を奏する。
【００３３】
また、本願発明によれば、想定外イベントに対して自動生成されたテストケースを用いてデバッグするので、デバッグ効率および試験品質を向上することができるという効果を奏する。
【００３４】
また、本願発明によれば、想定外イベントに対して網羅的に生成されたテストケースを用いてデバッグするので、デバッグ効率および試験品質を向上することができるという効果を奏する。
【００３５】
また、本願発明によれば、モニタプログラムでイベントのログを記録するので、開発者はログを用いてマイコン機器ソフトウェアの動作を確認することができるという効果を奏する。
【００３６】
また、本願発明によれば、想定外イベントに対して網羅的にテストケースを生成してデバッグするので、デバッグ効率および試験品質を向上することができるという効果を奏する。
【発明を実施するための最良の形態】
【００３７】
以下に添付図面を参照して、この発明に係るデバッグ支援システム、デバッグ支援方法、デバッグ支援ターゲットプログラムおよびデバッグ支援ホストプログラムの好適な実施例を詳細に説明する。
【実施例】
【００３８】
まず、本実施例に係るデバッグ支援システムの概念について説明する。図１は、本実施例に係るデバッグ支援システムの概念を説明するための説明図である。同図に示すように、本実施例に係るデバッグ支援システムは、デバッグ支援ホストプログラム１００と、デバッグ支援ターゲットプログラム２００とから構成される。
【００３９】
デバッグ支援ホストプログラム１００は、マイコン機器ソフトウェアの動作を状態とイベントの組み合わせで表した状態遷移表からテストパターンを生成する。ここで、本実施例に係るデバッグ支援システムでは、イベントは、特定の状態で発生する想定内イベントと、状態にかかわらず発生する想定外イベント（キー入力や割り込みなど）に分けて状態遷移表に記述される。したがって、デバッグ支援ホストプログラム１００は、各状態において発生するイベントを想定内イベントと想定外イベントに分けてテストパターンを生成する。
【００４０】
そして、デバッグ支援ターゲットプログラム２００は、デバッグ支援ホストプログラム１００によって状態ごとに想定内イベントと想定外イベントに分けられたイベントをデバッグ・テスト対象であるタスクＡの状態に対応して発行し、タスクＡの状態を遷移させる。このとき、デバッグ支援ターゲットプログラム２００は、各状態で想定内イベントを発行する前に想定外イベントを全て発行する。
【００４１】
すなわち、デバッグ支援ターゲットプログラム２００は、想定内イベントを発行してタスクＡの状態を遷移させることを基本としながらも、各状態で想定内イベントの発行前に想定外イベントを全て発行することによって、テストケースの漏れをなくすこととしている。
【００４２】
なお、デバッグ支援ターゲットプログラム２００は、発行したイベントとタスクＡの状態遷移をデバッグ支援ホストプログラム１００に通知し、デバッグ支援ホストプログラム１００が通知されたイベントおよび状態遷移をログとして記録する。したがって、開発者は、デバッグ支援ホストプログラム１００が記録したログを元に状態遷移の正しさや想定外イベントに対する動作を確認することができる。また、デバッグ支援ターゲットプログラム２００は、イベントログを用いてイベントの発行を再現することもできる。
【００４３】
このように、本実施例に係るデバッグ支援システムでは、イベントを想定内イベントと想定外イベントに分け、各状態で想定内イベントを発行してタスクＡの状態を遷移させる動作確認を基本とし、想定内イベント発生前の想定外イベントに対するタスクＡの動作確認を加えることによって、漏れのない効率的なデバッグを可能としている。
【００４４】
次に、本実施例に係るデバッグ支援システムの構成について説明する。図２は、本実施例に係るデバッグ支援システムの構成を示す機能ブロック図である。同図に示すように、このデバッグ支援システムは、パソコン１０上で動作するデバッグ支援ホストプログラム１００と、マイコンシステム２０上で動作するデバッグ支援ターゲットプログラム２００とから構成される。
【００４５】
デバッグ支援ホストプログラム１００は、テストパターン生成部１１０と、モニタ部１２０とを有し、パソコン１０をデバッグ支援ホスト装置として機能させる。また、デバッグ支援ターゲットプログラム２００は、イベント発行部２１０を有し、マイコンシステム２０をデバッグ支援ターゲット装置として機能させる。
【００４６】
テストパターン生成部１１０は、状態遷移表１を読み込んでテストパターンを生成する処理部である。具体的には、このテストパターン生成部１１０は、状態遷移表１から標準モデルを作成し、標準モデルを元に状態遷移パスを生成して状態遷移パスファイル１１に出力する。また、このテストパターン生成部１１０は、全ての状態遷移パスを網羅する形で、状態ごとに想定内イベントを生成して想定内イベントファイル１２に出力し、状態ごとに想定外イベントを生成して想定外イベントファイル１３に出力する。すなわち、このテストパターン生成部１１０は、テストパターンとして、状態遷移パスならびに状態ごとの想定内イベントおよび想定外イベントを生成する。
【００４７】
図３は、状態遷移表１の一例を示す図である。同図に示すように、この状態遷移表１は、状態「ＳＴ１」〜「ＳＴ５」それぞれに対して発生するイベントと、イベントが発生した場合に処理を行う関数と、遷移する状態と、遷移した状態で想定する次イベントとを定義する。また、イベントは想定内イベント（Sequential）と想定外イベント（Interruptive）に分けられる。
【００４８】
例えば、状態「ＳＴ２」では、想定内イベント「ＥＶ３」が発生し、このイベントが発生すると関数「ＣｍｄＦ」を実行し、状態「ＳＴ４」に遷移し、状態「ＳＴ４」では想定内イベント「ＥＶ４」の発生が想定される。なお、イベント「ＥＶ＿ＫＥＹ１」および「ＥＶ＿ＫＥＹ２」は、状態「ＳＴ１」で発生する想定内イベントであるが、想定外イベントとなりえることから、イベント欄では想定外イベントと定義される。
【００４９】
図４は、図３に示した状態遷移表１からテストパターン生成部１１０が生成する標準モデルを示す図である。同図に示すように、標準モデルとは、初期の状態「ＳＴ１」から発生するイベントと遷移先の状態を順に接続して得られる状態−イベントモデルである。
【００５０】
テストパターン生成部１１０は、この標準モデルを元にして
(状態遷移パス１)ＳＴ１−(ＥＶ＿ＫＥＹ１)→ＳＴ２−(ＥＶ３)→ＳＴ４−(ＥＶ４)→ＳＴ１
(状態遷移パス２)ＳＴ１−(ＥＶ＿ＫＥＹ２)→ＳＴ３−(ＥＶ３)→ＳＴ５−(ＥＶ４)→ＳＴ１
を抽出する。
【００５１】
そして、テストパターン生成部１１０は、これらの状態遷移パスを元に、状態ごとに想定内イベントと想定外イベントを生成する。例えば、状態「ＳＴ１」に対しては、「ＥＶ＿ＫＥＹ１」および「ＥＶ＿ＫＥＹ２」を想定内イベントとして生成し、状態「ＳＴ２」および状態「ＳＴ３」に対しては、「ＥＶ＿ＫＥＹ１」および「ＥＶ＿ＫＥＹ２」を想定外イベントとして生成し、「ＥＶ３」を想定内イベントとして生成する。
【００５２】
同様に、状態「ＳＴ４」および状態「ＳＴ５」に対しては、「ＥＶ＿ＫＥＹ１」および「ＥＶ＿ＫＥＹ２」を想定外イベントとして生成し、「ＥＶ４」を想定内イベントとして生成する。
【００５３】
図２に戻って、デバッグ支援ターゲットプログラム２００のイベント発行部２１０は、テストパターン生成部１１０により生成されたテストパターンに基づいてデバッグ対象タスク２１にイベントを発行する処理部である。
【００５４】
具体的には、このイベント発行部２１０は、状態遷移パスファイル１１、想定内イベントファイル１２および想定外イベントファイル１３を用いて、状態遷移パスの各状態に対応するイベントを発行することによってデバッグ対象タスク２１のうちのイベントに対応した処理を行う関数を起動し、デバッグ対象タスク２１から関数処理結果を受け取って状態遷移を行う動作を繰り返す。
【００５５】
このイベント発行部２１０は、状態遷移パスに基づいて各状態でイベントを発行する場合に、まず、その状態で発行できる想定外イベント全てを順に一つずつ発行し、その後、状態遷移パスの状態を遷移させる想定内イベントを発行する。
【００５６】
このイベント発行部２１０が、状態遷移パスに基づいて各状態でイベントを発行する場合に、まず、その状態で発行できる想定外イベント全てを順に一つずつ発行し、その後、状態遷移パスの状態を遷移させる想定内イベントを発行することによって、想定外イベントの発生を網羅したデバッグを行うことができる。
【００５７】
また、このイベント発行部２１０は、発行したイベントと状態遷移をデバッグ支援ホストプログラム１００のモニタ部１２０に通知する。また、このイベント発行部２１０は、モニタ部１２０が作成するイベントログファイル１４を用いて、モニタ部１２０が収集したイベントを再生することもできる。
【００５８】
デバッグ支援ホストプログラム１００のモニタ部１２０は、イベント発行部２１０からイベントおよび状態遷移の通知を受け取り、デバッグ対象タスク２１に対して発行されたイベントおよびデバッグ対象タスク２１の状態を管理し、ログとしてログファイル１４に記録する処理部である。開発者は、このログを元に状態遷移の正しさや想定外イベントに対するデバッグ対象タスク２１の動作を確認することができる。
【００５９】
次に、イベント発行部２１０の処理手順について説明する。図５は、イベント発行部２１０の処理手順を示すフローチャートである。同図に示すように、このイベント発行部２１０は、状態遷移パスファイル１１から状態遷移パスを選択し（ステップＳ１０１）、デバッグ対象タスク２１に最初の状態に対応するイベントを発行する（ステップＳ１０２）。
【００６０】
このとき、想定外イベントファイル１３に状態に対応する想定外イベントがある場合には、想定外イベントを順に発生し、全ての想定外イベントを発行した後に想定内イベントを発行する。また、イベントを発行するごとにデバッグ支援ホストプログラム１００のモニタ部１２０にイベントの発行を通知する。
【００６１】
そして、想定内イベントによって起動された関数から状態遷移完了通知を取得すると、モニタ部１２０に状態遷移を通知し（ステップＳ１０３）、遷移先の状態に対応するイベントがあるか否かを判定する（ステップＳ１０４）。その結果、イベントがある場合には、ステップＳ１０２に戻って遷移先の状態に対応するイベントを発行する。
【００６２】
一方、遷移先の状態に対応するイベントがない場合には、選択した状態遷移パスの実行が終了した場合であるので、状態遷移パスファイル１１に次の状態遷移パスがあるか否かを判定し（ステップＳ１０５）、状態遷移パスがある場合にはステップＳ１０１に戻って次の状態遷移パスを選択し、状態遷移パスがない場合には、処理を終了する。
【００６３】
このように、このイベント発行部２１０が各状態に対応する想定内イベントを発行する前に全ての想定外イベントを発行することによって、想定外イベントに対するデバッグ対象タスク２１の動作を網羅的に試験することができる。
【００６４】
次に、モニタ部１２０の処理手順について説明する。図６は、モニタ部１２０の処理手順を示すフローチャートである。同図に示すように、このモニタ部１２０は、イベント発行部２１０からメッセージを受け取ると（ステップＳ２０１、Ｙｅｓ）、受け取ったメッセージがイベント発行通知であるか否かを判定し（ステップＳ２０２）、イベント発行通知である場合には、イベント発行ログを作成してログファイル１４に記録し（ステップＳ２０３）、ステップＳ２０１に戻って次のメッセージを待つ。
【００６５】
一方、受け取ったメッセージがイベント発行通知でない場合には、状態遷移通知であるか否かを判定し（ステップＳ２０４）、状態遷移通知である場合には、状態遷移ログを作成してログファイル１４に記録し（ステップＳ２０５）、ステップＳ２０１に戻って次のメッセージを待ち、状態遷移通知でない場合には、ステップＳ２０１に戻って次のメッセージを待つ。
【００６６】
このように、このモニタ部１２０がイベント発行ログおよび状態遷移ログをログファイル１４に記録することによって、開発者はログファイル１４を用いてデバッグ対象タスク２１の動作を確認することができる。なお、このモニタ部１２０の処理は、デバッグ支援ターゲットプログラム２００からの終了通知を受け取ると処理を終了する。
【００６７】
次に、本実施例に係るデバッグ支援ホストプログラム１００を実行するパソコン１０およびデバッグ支援ターゲットプログラム２００を実行するマイコンシステム２０のハードウェア構成について説明する。
【００６８】
図７は、本実施例に係るデバッグ支援ホストプログラム１００を実行するパソコン１０のハードウェア構成を示す機能ブロック図である。同図に示すように、このパソコン１０は、ＲＡＭ３１０と、ＣＰＵ３２０と、ＨＤＤ３３０と、ＬＡＮインタフェース３４０と、入出力インタフェース３５０と、ＤＶＤドライブ３６０とを有する。
【００６９】
ＲＡＭ３１０は、プログラムやプログラムの実行途中結果などを記憶するメモリであり、ＣＰＵ３２０は、ＲＡＭ３１０からプログラムを読み出して実行する中央処理装置である。
【００７０】
ＨＤＤ３３０は、プログラムやデータを格納するディスク装置であり、ＬＡＮインタフェース３４０は、パソコン１０をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。
【００７１】
入出力インタフェース３５０は、マウスやキーボードなどの入力装置、表示装置およびマイコンシステム２０を接続するためのインタフェースであり、ＤＶＤドライブ３６０は、ＤＶＤの読み書きを行う装置である。
【００７２】
そして、このパソコン１０において実行されるデバッグ支援ホストプログラム１００は、ＤＶＤに記憶され、ＤＶＤドライブ３６０によってＤＶＤから読み出されてパソコン１０にインストールされる。
【００７３】
あるいは、このデバッグ支援ホストプログラム１００は、ＬＡＮインタフェース３４０を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてパソコン１０にインストールされる。
【００７４】
そして、インストールされたデバッグ支援ホストプログラム１００は、ＨＤＤ３３０に記憶され、ＲＡＭ３１０に読み出されてＣＰＵ３２０によってデバッグ支援ホストプロセス３２１として実行される。
【００７５】
図８は、本実施例に係る被試験プログラム４１１を実行するマイコンシステム２０のハードウェア構成を示す機能ブロック図である。ここで、被試験プログラム４１１とは、デバッグ支援ターゲットプログラム２００とデバッグ対象タスク２１が一体化されたプログラムである。すなわち、デバッグ支援ターゲットプログラム２００は、デバッグ対象タスク２１と一体化されたプログラムとしてマイコンシステム２０で実行される。
【００７６】
図８に示すように、このマイコンシステム２０は、ＲＡＭ４１０と、ＣＰＵ４２０と、ＲＯＭ４３０と、ＰＣインタフェース４４０とを有する。ＲＡＭ４１０は、プログラムやプログラムの実行途中結果などを記憶するメモリであり、ＣＰＵ４２０は、ＲＡＭ４１０またはＲＯＭ４３０からプログラムを読み出して実行する中央処理装置である。
【００７７】
ＲＯＭ４３０は、プログラムやデータを記憶する読み出し専用メモリであり、ＰＣインタフェース４４０は、マイコンシステム２０をパソコン１０に接続するためのインタフェースである。
【００７８】
そして、このマイコンシステム２０において実行される被試験プログラム４１１は、ＲＯＭ４３０に記憶されたプログラムによりＰＣインタフェース４４０を介してパソコン１０からダウンロードされてＲＡＭ４１０に記憶される。そして、この被試験プログラム４１１は、ＣＰＵ４２０によってＲＡＭ４１０から読み出されて実行される。
【００７９】
上述してきたように、本実施例では、デバッグ支援ホストプログラム１００のテストパターン生成部１１０が状態遷移表１から状態遷移パスならびに状態遷移パスの各状態に対する想定内イベントおよび想定外イベントをテストパターンとして生成し、デバッグ支援ターゲットプログラム２００のイベント発行部２１０がテストパターンを用いて状態遷移パスの各状態の想定外イベントを想定内イベントの前に全て発行することとしたので、想定内イベントに対する動作確認を基本として、各状態における想定外イベントに対する動作確認を網羅的に行うことができる。
【産業上の利用可能性】
【００８０】
以上のように、本発明に係るデバッグ支援システム、デバッグ支援方法、デバッグ支援ターゲットプログラムおよびデバッグ支援ホストプログラムは、マイコン機器ソフトウェアのデバッグ・テストに有用であり、特に、想定外のイベントに対する動作確認が重要である場合に適している。
【図面の簡単な説明】
【００８１】
【図１】本実施例に係るデバッグ支援システムの概念を説明するための説明図である。
【図２】本実施例に係るデバッグ支援システムの構成を示す機能ブロック図である。
【図３】状態遷移表の一例を示す図である。
【図４】図３に示した状態遷移表からテストパターン生成部が生成する標準モデルを示す図である。
【図５】イベント発行部の処理手順を示すフローチャートである。
【図６】モニタ部の処理手順を示すフローチャートである。
【図７】本実施例に係るデバッグ支援ホストプログラムを実行するパソコンのハードウェア構成を示す機能ブロック図である。
【図８】本実施例に係る被試験プログラムを実行するマイコンシステムのハードウェア構成を示す機能ブロック図である。
【図９】マイコン機器ソフトウェアの従来のデバッグ・テスト手法を説明するための説明図である。
【符号の説明】
【００８２】
１    状態遷移表
１０    パソコン
１１    状態遷移パスファイル
１２    想定内イベントファイル
１３    想定外イベントファイル
１４    ログファイル
２０    マイコンシステム
２１    デバッグ対象タスク
１００    デバッグ支援ホストプログラム
１１０    テストパターン生成部
１２０    モニタ部
２００    デバッグ支援ターゲットプログラム
２１０    イベント発行部
３１０，４１０    ＲＡＭ
３２０，４２０    ＣＰＵ
３２１    デバッグ支援ホストプロセス
３３０    ＨＤＤ
３４０    ＬＡＮインタフェース
３５０    入出力インタフェース
３６０    ＤＶＤドライブ
４１１    被試験プログラム
４３０    ＲＯＭ
４４０    ＰＣインタフェース
【図１】
0004701025.tif 000002
【図２】
0004701025.tif 000003
【図３】
0004701025.tif 000004
【図４】
0004701025.tif 000005
【図５】
0004701025.tif 000006
【図６】
0004701025.tif 000007
【図７】
0004701025.tif 000008
【図８】
0004701025.tif 000009
【図９】
0004701025.tif 000010