(57)【要約】【課題】機器組込型リアルタイム処理プログラムにおけるプログラムカバレッジ計測を、ハードウェア資源が十分でなく、時分割処理によって行うようにしたシステムにおいても、テスト対象プログラムのリアルタイム処理に影響を与えないようにしたプログラムカバレッジ計測方法を提供することが課題である。【解決手段】前記リアルタイム処理部を単一の演算処理装置と主メモリとで構成し、リアルタイム処理プログラムと、リアルタイム処理プログラムにおける実行回数計測対象となる各分岐が実行された回数を読み出す計測値読み出しプログラムとを、時分割マルチタスクで動作させ、計測値読み出しプログラムが取得した実行回数計測対象となる分岐が実行された回数を、ＵＤＰ／ＩＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）を用いて前記ホスト部に送るようにした。【選択図】図１
2007183888.tif 000002
【特許請求の範囲】
【請求項１】
機器組込型のリアルタイム処理プログラムが動作するリアルタイム処理部における、前記リアルタイム処理プログラムに含まれる各分岐が実行された回数を計測し、該計測値をネットワークを介してホスト部に送って収集するプログラムカバレッジ計測方法であって、
前記リアルタイム処理部は単一の演算処理装置と主メモリとを用意し、前記リアルタイム処理プログラムと、該リアルタイム処理プログラムにおける実行回数計測対象となる各分岐が実行された回数を読み出す計測値読み出しプログラムとを時分割マルチタスクで動作させ、前記計測値読み出しプログラムが取得した分岐の実行回数を、ＵＤＰ／ＩＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）を用いて前記ホスト部に送ることを特徴とするプログラムカバレッジ計測方法。
【請求項２】
前記計測値読み出しプログラムが取得した実行回数計測対象となる各分岐が実行された回数を、特定数の分岐毎に、特定時間間隔毎に前記ホスト部に送ることを特徴とする請求項１に記載したプログラムカバレッジ計測方法。
【請求項３】
前記計測値読み出しプログラムが取得した実行回数計測対象となる各分岐が実行された回数を、前記リアルタイム処理に影響を与える処理の前を避けて前記ホスト部に送ることを特徴とする請求項１または２に記載したプログラムカバレッジ計測方法。
【請求項４】
機器組込型のリアルタイム処理プログラムが動作するリアルタイム処理部を複数有し、それぞれの前記リアルタイム処理プログラムに含まれる各分岐が実行された回数を計測して、該計測値をネットワークを介してホスト部に送って収集するプログラムカバレッジ計測方法であって、
前記それぞれのリアルタイム処理部に単一の演算処理装置と主メモリとを用意し、前記リアルタイム処理プログラムと、該リアルタイム処理プログラムにおける実行回数計測対象となる各分岐が実行された回数を読み出す計測値読み出しプログラムとを時分割マルチタスクで動作させ、前記ホスト部が、前記計測値読み出しプログラムが取得した分岐が実行された回数を、ＵＤＰ／ＩＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）を用いて前記個々のリアルタイム処理部に時間差を設けて送信するよう要求して収集することを特徴とするプログラムカバレッジ計測方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムのテストに用いられるプログラムカバレッジ計測方法に係り、特に、機器組込型リアルタイム処理プログラムにおけるプログラムカバレッジ計測を、少ないハードウェア資源で、リアルタイム処理の外乱とならないよう効率よく行えるようにしたプログラムカバレッジ計測方法に関するものである。
【背景技術】
【０００２】
プログラム開発の過程においては、プログラムのエラーを検出するため、テスト対象プログラムにデータを与えてプログラムを実行し、得られる結果や過程を確認するテストが行われる。この場合、プログラムの実行経路は分岐命令による分割によって実行部分が変化するため、テストされる部分とテストされない部分とが生じる。そのため、この種のプログラムのテストにおいては、エラー検出処理と共に、テストがプログラム制御の全ての流れについておこなわれたかどうかを確認することが必要であり、プログラムのどの部分が実行されたかを計測し、プログラムのテストが網羅的に行われたかどうかを確認するカバレッジの計測が行なわれている。
【０００３】
この計測システムを図６（Ａ）を用いて簡単に説明すると、図中４１は例えばリアルタイム処理を行うリアルタイム処理部で、テスト対象プログラムを実行する４４のＣＰＵ１、複数のカウンタを有し、テスト対象プログラム４４における実行回数計測対象となる分岐が実行されるたびに送り出されるカウンタ増分信号４９により、対応するカウンタのインクリメント処理が行われる共有メモリ４３、この共有メモリ４３内のカウント値５０を読み出す計測値読み出しプログラム４５を動作させるＣＰＵ２を有し、機器組込型リアルタイム処理部では、こういったカウント値５０を処理終了後（電源ＯＦＦ後）も保持する機構を持たないため、計測値をネットワーク４７を介して転送し、計測値収集プログラム４６によって収集するホスト部４２等で構成され、計測値をリアルタイム処理部４１からホスト部４２にネットワーク４７を経由して転送するため、一般的にはＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）４８が用いられる。
【０００４】
そしてテスト対象プログラム４４には、予めプログラム中の分岐命令の直後、飛び先直後に、計測の命令が自動または手動で挿入され、リアルタイム処理部４１のＣＰＵ１上で動作する。そしてテスト対象プログラム４４における分岐命令を通過するたび、カウンタ増分信号４９が共有メモリ４３のカウンタに送られ、それがＣＰＵ２上で動作している計測値読み出しプログラム４５によって読み出されて、ネットワーク４７を経由してホスト部４２の計測値収集プログラム４６によって収集される。そのため、この計測値収集プログラム４６の値を参照することにより、プログラムの各部位を何回通過しているか、また通過していないところはどこかが判明し、意図どおりにプログラムが動作しているかを検証することができる。
【０００５】
しかしながら、通常のカバレッジ計測においては、ソースコード上の未通過部分を検出するため、通過情報に基づいてソースコードに何回通過したかのカウントやマーキングが行われているが、この場合のマーキングは例えばＣ言語の文法に従っておらず、ソースコードは未通過部分の検出のみに利用され、マーキングされたソースコードを次のコンパイルに使用することができないため、テストカバレージの工程が煩雑となってテスト作業が複雑なものとなっていた。
【０００６】
そのため例えば特許文献１には、ソースプログラムを実行する対象プロセッサと、プログラムの通過情報が格納される共有メモリと、通過情報読出プロセッサと、読み出した通過情報を転送するクライアント端末器と、外部メモリとで構成され、クライアント端末器によってファイル名が検出された全ソースコードが外部メモリに格納され、行毎に検出された通過情報に対応するソースコード行上のセミコロンが検索されて、セミコロンの後に通過回数のデータがマーキングされ、ソースプログラムの加工をすることなしに、テストの実行、デバッグ、テストカバレージ計測を一貫して行なうようにしたテストカバレッジマーク方式が示されている。
【０００７】
また特許文献２には、プログラムをコンパイル、リンクして作成した実行モジュールの動作前に、実行モジュールから計測対象となる分岐機械命令を抽出し、この抽出した分岐機械命令を実行モジュールの動作を一時的に停止させるブレーク機械命令に置き換えた後で実行モジュールを動作させ、一時的に停止したときに前記ブレーク機械命令を元の分岐機械命令に戻した後で１つの機械命令を実行させ、元の分岐機械命令の次の機械命令に進んだとき、分岐条件の偽の条件を実行と認識し、前記次の機械命令以外に進んだとき、分岐条件の真の条件を実行と認識するようにしたカバレージ計測方法が示されている。
【０００８】
また、機器組込型のリアルタイム処理プログラムにおいては、テスト対象プログラムの動作に影響を与えないよう、前記図６（Ａ）のように計測値読出プログラム４５を動作させるＣＰＵ２や共有メモリ４３が必要であるが、リアルタイム処理システムでは、一般的にコストや動作環境の制約等によりハードウェア資源が十分でない場合が多く、この図６（Ａ）ような構成をとることが難しい。
【０００９】
そのため、例えば図６（Ｂ）に示したように、リアルタイム処理を行うリアルタイム処理部６１に設けるＣＰＵを１つだけとし、テスト対象プログラム６４と計測値読み出しプログラム６５とを時分割によるマルチタスクで動作させ、ハードウェア資源の不足をおぎなう方法も実施されている（以下、従来技術と称する）。
【００１０】
この図６（Ｂ）において、６２はホスト部、６３は主メモリ、６６は計測値収集プログラム、６７はネットワーク、６８はＴＣＰ／ＩＰ、６９はカウンタ増分信号、７０はカウント値であり、図６（Ａ）の場合と同様、テスト対象プログラム６４には、予めプログラム中の分岐命令の直後、飛び先直後に、計測の命令が自動または手動で挿入され、リアルタイム処理部６１のＣＰＵ上で動作する。また、計測値読み出しプログラム６５も時分割によるマルチタスクによってＣＰＵ上で動作し、テスト対象プログラム６４における分岐命令を通過するたび、カウンタ増分信号６９が主メモリ６３を介して計測値読み出しプログラム６５に送られ、ネットワーク６７を経由してホスト部６２の計測値収集プログラム６６によって収集される。
【００１１】
【特許文献１】特開２００２−９１７９７号公報
【特許文献２】特開平８−１９４６３３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、この図６（Ｂ）に示した従来技術のようにカバレッジ計測システムを構成しても、計測値読出プログラム６５が計測値出力にＣＰＵ資源を消費し、テスト対象プログラム６４の動作に影響を与えて、本来取るべき値と異なる値を計測してしまう可能性がある。
【００１３】
また、前記した特許文献１、特許文献２に示されているテストカバレッジマーク方式やカバレージ計測方法は、こういったリアルタイム処理のためのものではなく、一般的な計算処理や事務処理のプログラムのためのものであって、単にマーキングされたソースコードを次のコンパイルに使用することができない問題を解決することを目的としている。
【００１４】
そのため、前記したハードウェア資源が十分でない場合や、時分割処理によってテスト対象プログラム６４の動作に影響を与えてしまう問題を解決するものではなく、特に特許文献２では、動作が一時的に停止するようになっているからそのままリアルタイム処理に用いることはできない。
【００１５】
そのため本発明においては、機器組込型リアルタイム処理プログラムにおけるプログラムカバレッジ計測を、ハードウェア資源が十分でなく、時分割処理によって行うようにしたシステムにおいて、テスト対象プログラムのリアルタイム処理に影響を与えないようにしたプログラムカバレッジ計測方法を提供することが課題である。
【課題を解決するための手段】
【００１６】
上記課題を解決するため本発明におけるプログラムカバレッジ計測方法は、
機器組込型のリアルタイム処理プログラムが動作するリアルタイム処理部における、前記リアルタイム処理プログラムに含まれる各分岐が実行された回数を計測し、該計測値をネットワークを介してホスト部に送って収集するプログラムカバレッジ計測方法であって、
前記リアルタイム処理部は単一の演算処理装置と主メモリとを用意し、前記リアルタイム処理プログラムと、該リアルタイム処理プログラムにおける実行回数計測対象となる各分岐が実行された回数を読み出す計測値読み出しプログラムとを時分割マルチタスクで動作させ、前記計測値読み出しプログラムが取得した分岐の実行回数を、ＵＤＰ／ＩＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）を用いて前記ホスト部に送ることを特徴とする。
【００１７】
通常、このようなネットワークシステムの通信プロトコルとしては、データ送受の失敗や、データの欠落を防ぐため、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）が用いられる。しかしこのＴＣＰ／ＩＰは、信頼性は高いが相手に届いていないパケットを再送したり、相手の受信能力を超えるパケットを送らないなど、信頼性を確保するために種々の機能を備えており、それだけプログラムが重いと共に、ＣＰＵ資源を多く使用する。
【００１８】
それに対しＵＤＰ／ＩＰは、ＴＣＰ／ＩＰが備えるサーバと端末間で通信が確立しているかの確認機能や、送信先に届かなかったデータの再送信機能などが省かれ、その分信頼性が落ちるがＣＰＵ資源をＴＣＰ／ＩＰほど使わず、処理も高速である。
【００１９】
すなわち、プログラムカバレッジ計測における目的は、プログラムにおける実行回数計測対象となる多数の分岐のそれぞれを通ったか通らないかにあり、ある程度のデータ欠落があっても許容される。それに反し、この分岐のそれぞれを通ったか通らないかの計測や計測結果の送信により、リアルタイム処理そのものの外乱となった場合、処理結果そのものが異なったものとなってしまう可能性がある。
【００２０】
しかしながらこのように、ＵＤＰ／ＩＰを用いてプログラムカバレッジ計測値を送信することで、ハードウェア資源が十分でなく、単一のＣＰＵ（演算処理装置）と主メモリを用い、時分割処理によって機器組込型リアルタイム処理プログラムにおけるプログラムカバレッジ計測を行うようにしたシステムにおいても、テスト対象プログラムのリアルタイム処理に影響を与えずにプログラムカバレッジの計測値をホスト部に送信でき、安価に、正確にプログラムカバレッジの計測を行う方法を提供することができる。
【００２１】
また、前記計測値読み出しプログラムが取得した実行回数計測対象となる各分岐が実行された回数を、特定数の分岐毎に、特定時間間隔毎に前記ホスト部に送ったり、前記計測値読み出しプログラムが取得した実行回数計測対象となる各分岐が実行された回数を、前記リアルタイム処理に影響を与える処理の前を避けて前記ホスト部に送るようにすることで、さらにテスト対象プログラムのリアルタイム処理に影響を与えずにプログラムカバレッジの計測値をホスト部に送信でき、安価に、正確にプログラムカバレッジの計測を行う方法を提供することができる。
【００２２】
また、上記課題を解決するため本発明におけるプログラムカバレッジ計測方法は、
機器組込型のリアルタイム処理プログラムが動作するリアルタイム処理部を複数有し、それぞれの前記リアルタイム処理プログラムに含まれる各分岐が実行された回数を計測して、該計測値をネットワークを介してホスト部に送って収集するプログラムカバレッジ計測方法であって、
前記それぞれのリアルタイム処理部に単一の演算処理装置と主メモリとを用意し、前記リアルタイム処理プログラムと、該リアルタイム処理プログラムにおける実行回数計測対象となる各分岐が実行された回数を読み出す計測値読み出しプログラムとを時分割マルチタスクで動作させ、前記ホスト部が、前記計測値読み出しプログラムが取得した分岐が実行された回数を、ＵＤＰ／ＩＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）を用いて前記個々のリアルタイム処理部に時間差を設けて送信するよう要求して収集することを特徴とする。
【００２３】
複数の機器組込型のリアルタイム処理プログラムのカバレッジ計測を行う場合、ＵＤＰ／ＩＰを用いたホスト部とのやり取りでは各ＣＰＵからの出力が衝突し、計測値の収集が十分できない、という事態が生じる可能性があるが、このようにホスト部から送信要求を出して計測値を収集することで、そういった問題もなく、安価に、正確にプログラムカバレッジの計測を行う方法を提供することができる。
【発明の効果】
【００２４】
以上記載のごとく本発明になるプログラムカバレッジ計測方法は、ハードウェア資源が十分でなく、時分割処理によってプログラムカバレッジ計測を行うようにしたシステムにおいても、テスト対象プログラムのリアルタイム処理に影響を与えず、効率よく正確にプログラムカバレッジを計測することができる。
【発明を実施するための最良の形態】
【００２５】
以下、図面を参照して本発明の好適な実施例を例示的に詳しく説明する。但しこの実施例に記載されている構成部品の寸法、材質、形状、その相対的配置等は特に特定的な記載がない限りは、この発明の範囲をそれに限定する趣旨ではなく、単なる説明例に過ぎない。
【００２６】
図１は、本発明になるプログラムカバレッジ計測方法を実施するためのシステムの構成図である。図中１は、テスト対象である機器組込型のリアルタイム処理プログラム４と、このリアルタイム処理プログラム４における、実行回数計測対象となる分岐が実行されるたびに送り出されるカウンタ増分信号９を、主メモリ３でカウントしてそのカウント値１０を取得する計測値読み出しプログラム５とを、時分割によるマルチタスクで動作させるＣＰＵ（演算処理装置）を有するリアルタイム処理部、２は計測値収集プログラム６を有して計測値読み出しプログラム５からのカウント値１０を取得するホスト部、７はネットワーク、８はリアルタイム処理部１からホスト部２へカウント値１０を送るときに用いるＵＤＰ／ＩＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）である。
【００２７】
テスト対象の機器組込型リアルタイム処理プログラム４には、予めプログラム中の分岐命令の直後、飛び先直後に、計測の命令が自動または手動で挿入されており、計測値読み出しプログラム５と共にリアルタイム処理部１のＣＰＵ上で動作する。そしてテスト対象プログラム（機器組込型リアルタイム処理プログラム）４における分岐命令を通過するたび、カウンタ増分信号９が主メモリ３のカウンタに送られ、それがＣＰＵ上で動作している計測値読み出しプログラム５によって読み出され、ネットワーク７を経由してホスト部２の計測値収集プログラム６によって収集される。そのため、この計測値収集プログラム４６の値を参照することにより、プログラムの各部位を何回通過しているか、また通過していないところはどこかが判明し、意図どおりにプログラムが動作しているかを検証することができる。
【００２８】
通常、このようなネットワークシステムの通信プロトコルとしては、データ送受の失敗や、データの欠落を防ぐため、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）が用いられる。しかしこのＴＣＰ／ＩＰは、信頼性は高いが相手に届いていないパケットを再送したり、相手の受信能力を超えるパケットを送らないなど、信頼性を確保するために種々の機能を備えており、それだけプログラムが重いと共に、ＣＰＵ資源を多く使用する。
【００２９】
それに対し本発明で用いるＵＤＰ／ＩＰは、ＴＣＰ／ＩＰが備えるサーバと端末間で通信が確立しているかの確認機能や、送信先に届かなかったデータの再送信機能などが省かれ、その分信頼性が落ちるがＣＰＵ資源をＴＣＰ／ＩＰほど使わず、処理も高速である。
【００３０】
すなわち、プログラムカバレッジ計測における目的は、プログラムにおける実行回数計測対象となる多数の分岐のそれぞれを通ったか通らないかにあり、ある程度のデータ欠落があっても許容される。それに反し、この分岐のそれぞれを通ったか通らないかの計測や計測結果の送信により、リアルタイム処理そのものの外乱となった場合、処理結果そのものが異なったものとなってしまう可能性がある。
【００３１】
それを、図２乃至図４を用いて説明すると、まず図２は、機器組込型リアルタイム処理部１の動作を説明するための図であり、２０はリアルタイム処理部１により信号を取得して対応する動作をリアルタイム処理部１で実行するためのセンサ部であり、通常、このセンサ部２０からは、２１のように常時信号がリアルタイム処理部１へ送られていて、リアルタイム処理部１の動作に関係なく、時間経過とともに出力値が変動していくものとする。そのため、リアルタイム処理部１は、常時このセンサ部２０からの信号２１を監視することとなる。
【００３２】
図３はリアルタイム処理部１の処理の一例を示したフロー図で、例えばセンサ部２０からの信号によってステップＳ１で計算処理１が行われ、次いでステップＳ２でセンサ部２０から信号が送られてきて入力処理１が行われる。そして次のステップＳ４に行く前に、ステップＳ３で時分割マルチタスクによってカバレッジ出力処理が行われ、ステップＳ４で入力処理１に基づく計算処理２が行われてステップＳ５でセンサ部２０から信号が送られてきて入力処理２が行われる。そして入力処理１と２が行われたことにより、ステップＳ６でセンサ入力が値１の時はステップＳ７の計算処理３へ、センサ入力が値２の時はステップＳ８の計算処理４へ行く判断がなされるものとする。
【００３３】
図４は、以上のリアルタイム処理のタイムチャートであり、図４（Ａ）は、例えば、この図３におけるステップＳ３のカバレッジ出力を行わない、すなわち、カバレッジ処理によって図２、図３に示したリアルタイム処理が影響を受けない場合で、（Ｂ）はカバレッジ処理によってリアルタイム処理が影響を受ける場合、（Ｃ）は本発明になるプログラムカバレッジ計測方法を実施した場合であり、それぞれのタイムチャートにおいて、横軸は時刻で２１は図２に示したセンサの出力値であり、時刻ｔ１で値１が出力され、時刻ｔｓで値２が出力されることを示している。
【００３４】
まず図４（Ａ）のカバレッジ出力を行わない場合を説明すると、時刻ｔ１までは図３におけるステップＳ１の計算処理１が実施されているとし、この時刻ｔ１でステップＳ２のセンサ入力処理１が実施されてセンサの出力値２１は値１となる。そして続いてステップＳ４の計算処理２が時刻ｔ２まで行われ、時刻ｔ２でステップＳ５のセンサ入力処理２が行われるとする。
【００３５】
すると、ステップＳ５で行われたセンサ入力処理２によってセンサ２１の出力値がｔｓで値２になるが、その前にステップＳ５でセンサ入力処理２が行われた後で図３に示したように、ステップＳ６でセンサの出力値２１が値１であるか値２であるかが判断され、その判断によって次の処理が変わってくる。
【００３６】
しかしながら、その判断が行われるのはセンサの出力値２１が値１から値２に変わる時刻ｔｓの前であり、そのためセンサの出力値２１は値１であるからステップＳ７で計算処理３が実施される。
【００３７】
次に、カバレッジ処理によってリアルタイム処理が影響を受ける図４（Ｂ）の場合であるが、例えばリアルタイム処理部１からホスト部２へカウント値１０を送るとき、ＴＣＰ／ＩＰを用いることで、ＣＰＵの負荷が大きくなって時間がかかる場合を想定する。
【００３８】
時刻ｔ１までは図３におけるステップＳ１の計算処理１が実施され、この時刻ｔ１でステップＳ２のセンサ入力処理１が実施されて、センサの出力値２１が値１となることは前記図４（Ａ）の場合と同様である。しかし、ステップＳ２の入力処理１に続いて、時分割処理によってステップＳ３のカバレッジ出力処理が行われ、その負荷が大きくて図４（Ｂ）に示したように時間がかかった場合、続いて実施されるステップＳ４の計算処理２は、時刻ｔｓを越えて時刻ｔ２ａまで行われることになる。
【００３９】
従って、その後ステップＳ５のセンサ入力処理２が行われると、その後に行われるステップＳ６の判断は、センサの出力値２１が値１から値２に変わった後となるため、ステップＳ８の計算処理４を実施することとなって、図４（Ａ）のカバレッジ出力を行わない場合と結果が異なってしまうことになる。すなわちカバレッジ計測の影響で実行の経路が変わり、特定のコードを通るか通らないかを判断するためのカバレッジ計測値そのものが異なる結果となってしまう。
【００４０】
しかしながら、図１に示した本発明になるプログラムカバレッジ計測方法を実施するためのシステムの構成では、前記したようにリアルタイム処理部１からホスト部２へカウント値１０を送るとき、ＵＤＰ／ＩＰを用いているため、場合によってはカウント値１０が送れないという事態が生じることはあるものの、ＴＣＰ／ＩＰを用いた場合に比較してＣＰＵの負荷が小さく、時間もかからない。
【００４１】
すなわち図４（Ｃ）がその場合であり、時刻ｔ１までは図３におけるステップＳ１の計算処理１が実施され、この時刻ｔ１でステップＳ２のセンサ入力処理１が実施されて、センサの出力値２１が値１となることは前記図４（Ａ）、（Ｂ）の場合と同様である。その後、時分割処理によってステップＳ３のカバレッジ出力処理が行われるが、図４（Ｂ）の場合と異なり、その負荷が小さいために処理はすぐ終了し、続いて実施されるステップＳ４の計算処理２は、時刻ｔｓより手前のｔ２ｂで終了する。
【００４２】
この時刻ｔ２ｂは、時刻ｔ２より時刻ｔｓ側であるが、その後のステップＳ５で行われるセンサ入力処理２は時刻ｔｓの前で終了する程度の遅れであり、その後に行われるステップＳ６の判断は、センサの出力値２１が値１の時に行われるため、ステップＳ７の計算処理３が実施され、図４（Ａ）のカバレッジ出力を行わない場合と結果が同じになる。
【００４３】
これは、例え時分割マルチタスクでカバレッジ出力処理を実施しても、リアルタイム処理に影響を与えないことを示しており、カバレッジ計測の影響による実行経路の変化がなく、特定のコードを通るか通らないかというカバレッジ計測本来の目的である情報を収集することができる。
【００４４】
このようにすることにより、ハードウェア資源が十分でなく、単一のＣＰＵ（演算処理装置）と主メモリを用い、時分割処理によって器組込型リアルタイム処理プログラムにおけるプログラムカバレッジ計測を行うようにしたシステムにおいても、テスト対象プログラムのリアルタイム処理に影響を与えずにプログラムカバレッジの計測を行う方法を提供することができる。
【００４５】
なお、さらにＣＰＵ（演算処理装置）の負荷を軽減するためには、計測値読み出しプログラム５によるネットワーク７を介したホスト部２への計測値の送信を、例えば複数ある各カウンタの値を計測値として一度に送出するのではなく、複数のかたまりに分割し、各かたまりを送出する際にも一定時間間隔をあけて送出するようにしても良く、さらに、各計測値が所定回数に達する毎に送信するようにしても良い。
【００４６】
さらに、このカバレッジ計測においては、ある分岐を何回通ったかよりも例え１回でも通れば通ったということを確認する方が重要であるから、上記のように複数のかたまりに分割して一定時間間隔で送出したり、所定回数毎に送信するのに加え、特定の分岐については、最初に通った時に送信を行うようにしても良い。
【００４７】
また、前記図３におけるステップＳ６のように、その後の処理に影響を与える処理の前におけるカバレッジ出力処理を避けるようにしても良く、このようにすることにより、リアルタイム処理部１のＣＰＵの処理の負荷がさらに軽減され、テスト対象プログラムのリアルタイム処理に影響を与えないようにしたプログラムカバレッジ計測方法を提供することができる。
【００４８】
なお、このように機器組込型のリアルタイム処理プログラムのカバレッジ計測を行う場合、同時に複数の処理プログラムを別々の基板に搭載して動作させ、それぞれの基板に搭載したリアルタイム処理プログラムのプログラムカバレッジ計測結果をホスト部２に送信して計測するということも行われる。
【００４９】
しかしこのようにシステムを構成した場合、本発明のようにＵＤＰ／ＩＰを用いてホスト部２とやり取りを行うと、各ＣＰＵからの出力が衝突し、計測値の収集が十分できない、という事態が生じる可能性がある。
【００５０】
このような場合を想定して対処したのが図５に示したフロー図である。すなわちこの図５に示したフロー図では、例えば２つのリアルタイム処理部がネットワークを介し、ＵＤＰ／ＩＰを用いてホスト部とやり取りする場合の例であり、処理部は自主的にホスト部への計測結果送信を行わず、ホスト部から要求があったときに計測結果送信を行うようにしたものである。なお、ここではリアルタイム処理部が２つの場合を示したが、もっと多くのリアルタイム処理部を接続する場合も全く同様に実施することができる。
【００５１】
例えば、ステップＳ２０においてホスト部が処理部（リアルタイム処理部）Ａに計測値を要求すると、処理部ＡはステップＳ２１でその要求を受信し、ステップＳ２２でホスト部へ計測値を送信する。そのためホスト部は、ステップＳ２３で処理部Ａより計測値を受信する。なお、この間に処理部Ｂでは、ステップＳ２４で計測値の読み出しが行われる。
【００５２】
そして、ステップＳ２５においてホスト部が、処理部（リアルタイム処理部）Ｂに計測値を要求すると、処理部ＢはステップＳ２６でその要求を受信し、ステップＳ２８で先に読み出した計測値をホスト部へ送信する。そのためホスト部は、ステップＳ２９で処理部Ｂより計測値を受信する。なお、この間に処理部Ａでは、ステップＳ２７で計測値の読み出しが行われる。
【００５３】
以下、全く同様にステップＳ３０においてホスト部が、処理部（リアルタイム処理部）Ａに計測値を要求して処理部ＡがステップＳ３１でその要求を受信する、……という動作が繰り返され、それぞれのリアルタイム処理部Ａ、リアルタイム処理部Ｂのカバレッジ計測結果が互いに衝突することなく、ホスト部に送信することができる。
【産業上の利用可能性】
【００５４】
本発明によれば、ハードウェア資源が十分でなく、時分割処理によってプログラムカバレッジ計測を行うようにしたシステムにおいても、テスト対象プログラムのリアルタイム処理に影響を与えず、効率よく正確にプログラムカバレッジを計測することができる。
【図面の簡単な説明】
【００５５】
【図１】本発明になるプログラムカバレッジ計測方法を実施するためのシステムの構成図である。
【図２】機器組込型リアルタイム処理部の動作を説明するための図である。
【図３】リアルタイム処理の一例フロー図である。
【図４】リアルタイム処理のタイムチャートで、（Ａ）はカバレッジ処理によってリアルタイム処理が影響を受けない場合、（Ｂ）はカバレッジ処理によってリアルタイム処理が影響を受ける場合、（Ｃ）は本発明になるプログラムカバレッジ計測方法を実施した場合である。
【図５】２つのリアルタイム処理部がネットワークを介し、ＵＤＰ／ＩＰを用いてホスト部とやり取りする場合の例である。
【図６】従来のカバレッジの計測システム例で、（Ａ）はプログラム実行用のＣＰＵ１と、計測値読み出し用プログラム実行のためのＣＰＵ２の２つのＣＰＵを備えたシステム、（Ｂ）は単一のＣＰＵでプログラム実行と計測値読み出しを時分割で行うシステムである。
【符号の説明】
【００５６】
１  リアルタイム処理部
２  ホスト部
３  主メモリ
４  機器組込型リアルタイム処理プログラム
５  計測値読み出しプログラム
６  計測値収集プログラム
７  ネットワーク
８  ＵＤＰ／ＩＰプロトコル
９  カウンタ増分信号
１０  カウント値
【図１】
2007183888.tif 000003
【図２】
2007183888.tif 000004
【図３】
2007183888.tif 000005
【図４】
2007183888.tif 000006
【図５】
2007183888.tif 000007
【図６】
2007183888.tif 000008