JP2007183888A - プログラムカバレッジ計測方法 - Google Patents

プログラムカバレッジ計測方法 Download PDF

Info

Publication number
JP2007183888A
JP2007183888A JP2006003075A JP2006003075A JP2007183888A JP 2007183888 A JP2007183888 A JP 2007183888A JP 2006003075 A JP2006003075 A JP 2006003075A JP 2006003075 A JP2006003075 A JP 2006003075A JP 2007183888 A JP2007183888 A JP 2007183888A
Authority
JP
Japan
Prior art keywords
program
real
time processing
time
branch
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.)
Withdrawn
Application number
JP2006003075A
Other languages
English (en)
Inventor
Hideaki Murata
英明 村田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Heavy Industries Ltd
Original Assignee
Mitsubishi Heavy Industries Ltd
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 Mitsubishi Heavy Industries Ltd filed Critical Mitsubishi Heavy Industries Ltd
Priority to JP2006003075A priority Critical patent/JP2007183888A/ja
Publication of JP2007183888A publication Critical patent/JP2007183888A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】機器組込型リアルタイム処理プログラムにおけるプログラムカバレッジ計測を、ハードウェア資源が十分でなく、時分割処理によって行うようにしたシステムにおいても、テスト対象プログラムのリアルタイム処理に影響を与えないようにしたプログラムカバレッジ計測方法を提供することが課題である。
【解決手段】前記リアルタイム処理部を単一の演算処理装置と主メモリとで構成し、リアルタイム処理プログラムと、リアルタイム処理プログラムにおける実行回数計測対象となる各分岐が実行された回数を読み出す計測値読み出しプログラムとを、時分割マルチタスクで動作させ、計測値読み出しプログラムが取得した実行回数計測対象となる分岐が実行された回数を、UDP/IP(User Datagram Protocol)を用いて前記ホスト部に送るようにした。
【選択図】図1

Description

本発明は、プログラムのテストに用いられるプログラムカバレッジ計測方法に係り、特に、機器組込型リアルタイム処理プログラムにおけるプログラムカバレッジ計測を、少ないハードウェア資源で、リアルタイム処理の外乱とならないよう効率よく行えるようにしたプログラムカバレッジ計測方法に関するものである。
プログラム開発の過程においては、プログラムのエラーを検出するため、テスト対象プログラムにデータを与えてプログラムを実行し、得られる結果や過程を確認するテストが行われる。この場合、プログラムの実行経路は分岐命令による分割によって実行部分が変化するため、テストされる部分とテストされない部分とが生じる。そのため、この種のプログラムのテストにおいては、エラー検出処理と共に、テストがプログラム制御の全ての流れについておこなわれたかどうかを確認することが必要であり、プログラムのどの部分が実行されたかを計測し、プログラムのテストが網羅的に行われたかどうかを確認するカバレッジの計測が行なわれている。
この計測システムを図6(A)を用いて簡単に説明すると、図中41は例えばリアルタイム処理を行うリアルタイム処理部で、テスト対象プログラムを実行する44のCPU1、複数のカウンタを有し、テスト対象プログラム44における実行回数計測対象となる分岐が実行されるたびに送り出されるカウンタ増分信号49により、対応するカウンタのインクリメント処理が行われる共有メモリ43、この共有メモリ43内のカウント値50を読み出す計測値読み出しプログラム45を動作させるCPU2を有し、機器組込型リアルタイム処理部では、こういったカウント値50を処理終了後(電源OFF後)も保持する機構を持たないため、計測値をネットワーク47を介して転送し、計測値収集プログラム46によって収集するホスト部42等で構成され、計測値をリアルタイム処理部41からホスト部42にネットワーク47を経由して転送するため、一般的にはTCP/IP(Transmission Control Protocol/Internet Protocol)48が用いられる。
そしてテスト対象プログラム44には、予めプログラム中の分岐命令の直後、飛び先直後に、計測の命令が自動または手動で挿入され、リアルタイム処理部41のCPU1上で動作する。そしてテスト対象プログラム44における分岐命令を通過するたび、カウンタ増分信号49が共有メモリ43のカウンタに送られ、それがCPU2上で動作している計測値読み出しプログラム45によって読み出されて、ネットワーク47を経由してホスト部42の計測値収集プログラム46によって収集される。そのため、この計測値収集プログラム46の値を参照することにより、プログラムの各部位を何回通過しているか、また通過していないところはどこかが判明し、意図どおりにプログラムが動作しているかを検証することができる。
しかしながら、通常のカバレッジ計測においては、ソースコード上の未通過部分を検出するため、通過情報に基づいてソースコードに何回通過したかのカウントやマーキングが行われているが、この場合のマーキングは例えばC言語の文法に従っておらず、ソースコードは未通過部分の検出のみに利用され、マーキングされたソースコードを次のコンパイルに使用することができないため、テストカバレージの工程が煩雑となってテスト作業が複雑なものとなっていた。
そのため例えば特許文献1には、ソースプログラムを実行する対象プロセッサと、プログラムの通過情報が格納される共有メモリと、通過情報読出プロセッサと、読み出した通過情報を転送するクライアント端末器と、外部メモリとで構成され、クライアント端末器によってファイル名が検出された全ソースコードが外部メモリに格納され、行毎に検出された通過情報に対応するソースコード行上のセミコロンが検索されて、セミコロンの後に通過回数のデータがマーキングされ、ソースプログラムの加工をすることなしに、テストの実行、デバッグ、テストカバレージ計測を一貫して行なうようにしたテストカバレッジマーク方式が示されている。
また特許文献2には、プログラムをコンパイル、リンクして作成した実行モジュールの動作前に、実行モジュールから計測対象となる分岐機械命令を抽出し、この抽出した分岐機械命令を実行モジュールの動作を一時的に停止させるブレーク機械命令に置き換えた後で実行モジュールを動作させ、一時的に停止したときに前記ブレーク機械命令を元の分岐機械命令に戻した後で1つの機械命令を実行させ、元の分岐機械命令の次の機械命令に進んだとき、分岐条件の偽の条件を実行と認識し、前記次の機械命令以外に進んだとき、分岐条件の真の条件を実行と認識するようにしたカバレージ計測方法が示されている。
また、機器組込型のリアルタイム処理プログラムにおいては、テスト対象プログラムの動作に影響を与えないよう、前記図6(A)のように計測値読出プログラム45を動作させるCPU2や共有メモリ43が必要であるが、リアルタイム処理システムでは、一般的にコストや動作環境の制約等によりハードウェア資源が十分でない場合が多く、この図6(A)ような構成をとることが難しい。
そのため、例えば図6(B)に示したように、リアルタイム処理を行うリアルタイム処理部61に設けるCPUを1つだけとし、テスト対象プログラム64と計測値読み出しプログラム65とを時分割によるマルチタスクで動作させ、ハードウェア資源の不足をおぎなう方法も実施されている(以下、従来技術と称する)。
この図6(B)において、62はホスト部、63は主メモリ、66は計測値収集プログラム、67はネットワーク、68はTCP/IP、69はカウンタ増分信号、70はカウント値であり、図6(A)の場合と同様、テスト対象プログラム64には、予めプログラム中の分岐命令の直後、飛び先直後に、計測の命令が自動または手動で挿入され、リアルタイム処理部61のCPU上で動作する。また、計測値読み出しプログラム65も時分割によるマルチタスクによってCPU上で動作し、テスト対象プログラム64における分岐命令を通過するたび、カウンタ増分信号69が主メモリ63を介して計測値読み出しプログラム65に送られ、ネットワーク67を経由してホスト部62の計測値収集プログラム66によって収集される。
特開2002−91797号公報 特開平8−194633号公報
しかしながら、この図6(B)に示した従来技術のようにカバレッジ計測システムを構成しても、計測値読出プログラム65が計測値出力にCPU資源を消費し、テスト対象プログラム64の動作に影響を与えて、本来取るべき値と異なる値を計測してしまう可能性がある。
また、前記した特許文献1、特許文献2に示されているテストカバレッジマーク方式やカバレージ計測方法は、こういったリアルタイム処理のためのものではなく、一般的な計算処理や事務処理のプログラムのためのものであって、単にマーキングされたソースコードを次のコンパイルに使用することができない問題を解決することを目的としている。
そのため、前記したハードウェア資源が十分でない場合や、時分割処理によってテスト対象プログラム64の動作に影響を与えてしまう問題を解決するものではなく、特に特許文献2では、動作が一時的に停止するようになっているからそのままリアルタイム処理に用いることはできない。
そのため本発明においては、機器組込型リアルタイム処理プログラムにおけるプログラムカバレッジ計測を、ハードウェア資源が十分でなく、時分割処理によって行うようにしたシステムにおいて、テスト対象プログラムのリアルタイム処理に影響を与えないようにしたプログラムカバレッジ計測方法を提供することが課題である。
上記課題を解決するため本発明におけるプログラムカバレッジ計測方法は、
機器組込型のリアルタイム処理プログラムが動作するリアルタイム処理部における、前記リアルタイム処理プログラムに含まれる各分岐が実行された回数を計測し、該計測値をネットワークを介してホスト部に送って収集するプログラムカバレッジ計測方法であって、
前記リアルタイム処理部は単一の演算処理装置と主メモリとを用意し、前記リアルタイム処理プログラムと、該リアルタイム処理プログラムにおける実行回数計測対象となる各分岐が実行された回数を読み出す計測値読み出しプログラムとを時分割マルチタスクで動作させ、前記計測値読み出しプログラムが取得した分岐の実行回数を、UDP/IP(User Datagram Protocol)を用いて前記ホスト部に送ることを特徴とする。
通常、このようなネットワークシステムの通信プロトコルとしては、データ送受の失敗や、データの欠落を防ぐため、TCP/IP(Transmission Control Protocol/Internet Protocol)が用いられる。しかしこのTCP/IPは、信頼性は高いが相手に届いていないパケットを再送したり、相手の受信能力を超えるパケットを送らないなど、信頼性を確保するために種々の機能を備えており、それだけプログラムが重いと共に、CPU資源を多く使用する。
それに対しUDP/IPは、TCP/IPが備えるサーバと端末間で通信が確立しているかの確認機能や、送信先に届かなかったデータの再送信機能などが省かれ、その分信頼性が落ちるがCPU資源をTCP/IPほど使わず、処理も高速である。
すなわち、プログラムカバレッジ計測における目的は、プログラムにおける実行回数計測対象となる多数の分岐のそれぞれを通ったか通らないかにあり、ある程度のデータ欠落があっても許容される。それに反し、この分岐のそれぞれを通ったか通らないかの計測や計測結果の送信により、リアルタイム処理そのものの外乱となった場合、処理結果そのものが異なったものとなってしまう可能性がある。
しかしながらこのように、UDP/IPを用いてプログラムカバレッジ計測値を送信することで、ハードウェア資源が十分でなく、単一のCPU(演算処理装置)と主メモリを用い、時分割処理によって機器組込型リアルタイム処理プログラムにおけるプログラムカバレッジ計測を行うようにしたシステムにおいても、テスト対象プログラムのリアルタイム処理に影響を与えずにプログラムカバレッジの計測値をホスト部に送信でき、安価に、正確にプログラムカバレッジの計測を行う方法を提供することができる。
また、前記計測値読み出しプログラムが取得した実行回数計測対象となる各分岐が実行された回数を、特定数の分岐毎に、特定時間間隔毎に前記ホスト部に送ったり、前記計測値読み出しプログラムが取得した実行回数計測対象となる各分岐が実行された回数を、前記リアルタイム処理に影響を与える処理の前を避けて前記ホスト部に送るようにすることで、さらにテスト対象プログラムのリアルタイム処理に影響を与えずにプログラムカバレッジの計測値をホスト部に送信でき、安価に、正確にプログラムカバレッジの計測を行う方法を提供することができる。
また、上記課題を解決するため本発明におけるプログラムカバレッジ計測方法は、
機器組込型のリアルタイム処理プログラムが動作するリアルタイム処理部を複数有し、それぞれの前記リアルタイム処理プログラムに含まれる各分岐が実行された回数を計測して、該計測値をネットワークを介してホスト部に送って収集するプログラムカバレッジ計測方法であって、
前記それぞれのリアルタイム処理部に単一の演算処理装置と主メモリとを用意し、前記リアルタイム処理プログラムと、該リアルタイム処理プログラムにおける実行回数計測対象となる各分岐が実行された回数を読み出す計測値読み出しプログラムとを時分割マルチタスクで動作させ、前記ホスト部が、前記計測値読み出しプログラムが取得した分岐が実行された回数を、UDP/IP(User Datagram Protocol)を用いて前記個々のリアルタイム処理部に時間差を設けて送信するよう要求して収集することを特徴とする。
複数の機器組込型のリアルタイム処理プログラムのカバレッジ計測を行う場合、UDP/IPを用いたホスト部とのやり取りでは各CPUからの出力が衝突し、計測値の収集が十分できない、という事態が生じる可能性があるが、このようにホスト部から送信要求を出して計測値を収集することで、そういった問題もなく、安価に、正確にプログラムカバレッジの計測を行う方法を提供することができる。
以上記載のごとく本発明になるプログラムカバレッジ計測方法は、ハードウェア資源が十分でなく、時分割処理によってプログラムカバレッジ計測を行うようにしたシステムにおいても、テスト対象プログラムのリアルタイム処理に影響を与えず、効率よく正確にプログラムカバレッジを計測することができる。
以下、図面を参照して本発明の好適な実施例を例示的に詳しく説明する。但しこの実施例に記載されている構成部品の寸法、材質、形状、その相対的配置等は特に特定的な記載がない限りは、この発明の範囲をそれに限定する趣旨ではなく、単なる説明例に過ぎない。
図1は、本発明になるプログラムカバレッジ計測方法を実施するためのシステムの構成図である。図中1は、テスト対象である機器組込型のリアルタイム処理プログラム4と、このリアルタイム処理プログラム4における、実行回数計測対象となる分岐が実行されるたびに送り出されるカウンタ増分信号9を、主メモリ3でカウントしてそのカウント値10を取得する計測値読み出しプログラム5とを、時分割によるマルチタスクで動作させるCPU(演算処理装置)を有するリアルタイム処理部、2は計測値収集プログラム6を有して計測値読み出しプログラム5からのカウント値10を取得するホスト部、7はネットワーク、8はリアルタイム処理部1からホスト部2へカウント値10を送るときに用いるUDP/IP(User Datagram Protocol)である。
テスト対象の機器組込型リアルタイム処理プログラム4には、予めプログラム中の分岐命令の直後、飛び先直後に、計測の命令が自動または手動で挿入されており、計測値読み出しプログラム5と共にリアルタイム処理部1のCPU上で動作する。そしてテスト対象プログラム(機器組込型リアルタイム処理プログラム)4における分岐命令を通過するたび、カウンタ増分信号9が主メモリ3のカウンタに送られ、それがCPU上で動作している計測値読み出しプログラム5によって読み出され、ネットワーク7を経由してホスト部2の計測値収集プログラム6によって収集される。そのため、この計測値収集プログラム46の値を参照することにより、プログラムの各部位を何回通過しているか、また通過していないところはどこかが判明し、意図どおりにプログラムが動作しているかを検証することができる。
通常、このようなネットワークシステムの通信プロトコルとしては、データ送受の失敗や、データの欠落を防ぐため、TCP/IP(Transmission Control Protocol/Internet Protocol)が用いられる。しかしこのTCP/IPは、信頼性は高いが相手に届いていないパケットを再送したり、相手の受信能力を超えるパケットを送らないなど、信頼性を確保するために種々の機能を備えており、それだけプログラムが重いと共に、CPU資源を多く使用する。
それに対し本発明で用いるUDP/IPは、TCP/IPが備えるサーバと端末間で通信が確立しているかの確認機能や、送信先に届かなかったデータの再送信機能などが省かれ、その分信頼性が落ちるがCPU資源をTCP/IPほど使わず、処理も高速である。
すなわち、プログラムカバレッジ計測における目的は、プログラムにおける実行回数計測対象となる多数の分岐のそれぞれを通ったか通らないかにあり、ある程度のデータ欠落があっても許容される。それに反し、この分岐のそれぞれを通ったか通らないかの計測や計測結果の送信により、リアルタイム処理そのものの外乱となった場合、処理結果そのものが異なったものとなってしまう可能性がある。
それを、図2乃至図4を用いて説明すると、まず図2は、機器組込型リアルタイム処理部1の動作を説明するための図であり、20はリアルタイム処理部1により信号を取得して対応する動作をリアルタイム処理部1で実行するためのセンサ部であり、通常、このセンサ部20からは、21のように常時信号がリアルタイム処理部1へ送られていて、リアルタイム処理部1の動作に関係なく、時間経過とともに出力値が変動していくものとする。そのため、リアルタイム処理部1は、常時このセンサ部20からの信号21を監視することとなる。
図3はリアルタイム処理部1の処理の一例を示したフロー図で、例えばセンサ部20からの信号によってステップS1で計算処理1が行われ、次いでステップS2でセンサ部20から信号が送られてきて入力処理1が行われる。そして次のステップS4に行く前に、ステップS3で時分割マルチタスクによってカバレッジ出力処理が行われ、ステップS4で入力処理1に基づく計算処理2が行われてステップS5でセンサ部20から信号が送られてきて入力処理2が行われる。そして入力処理1と2が行われたことにより、ステップS6でセンサ入力が値1の時はステップS7の計算処理3へ、センサ入力が値2の時はステップS8の計算処理4へ行く判断がなされるものとする。
図4は、以上のリアルタイム処理のタイムチャートであり、図4(A)は、例えば、この図3におけるステップS3のカバレッジ出力を行わない、すなわち、カバレッジ処理によって図2、図3に示したリアルタイム処理が影響を受けない場合で、(B)はカバレッジ処理によってリアルタイム処理が影響を受ける場合、(C)は本発明になるプログラムカバレッジ計測方法を実施した場合であり、それぞれのタイムチャートにおいて、横軸は時刻で21は図2に示したセンサの出力値であり、時刻t1で値1が出力され、時刻tsで値2が出力されることを示している。
まず図4(A)のカバレッジ出力を行わない場合を説明すると、時刻t1までは図3におけるステップS1の計算処理1が実施されているとし、この時刻t1でステップS2のセンサ入力処理1が実施されてセンサの出力値21は値1となる。そして続いてステップS4の計算処理2が時刻t2まで行われ、時刻t2でステップS5のセンサ入力処理2が行われるとする。
すると、ステップS5で行われたセンサ入力処理2によってセンサ21の出力値がtsで値2になるが、その前にステップS5でセンサ入力処理2が行われた後で図3に示したように、ステップS6でセンサの出力値21が値1であるか値2であるかが判断され、その判断によって次の処理が変わってくる。
しかしながら、その判断が行われるのはセンサの出力値21が値1から値2に変わる時刻tsの前であり、そのためセンサの出力値21は値1であるからステップS7で計算処理3が実施される。
次に、カバレッジ処理によってリアルタイム処理が影響を受ける図4(B)の場合であるが、例えばリアルタイム処理部1からホスト部2へカウント値10を送るとき、TCP/IPを用いることで、CPUの負荷が大きくなって時間がかかる場合を想定する。
時刻t1までは図3におけるステップS1の計算処理1が実施され、この時刻t1でステップS2のセンサ入力処理1が実施されて、センサの出力値21が値1となることは前記図4(A)の場合と同様である。しかし、ステップS2の入力処理1に続いて、時分割処理によってステップS3のカバレッジ出力処理が行われ、その負荷が大きくて図4(B)に示したように時間がかかった場合、続いて実施されるステップS4の計算処理2は、時刻tsを越えて時刻t2aまで行われることになる。
従って、その後ステップS5のセンサ入力処理2が行われると、その後に行われるステップS6の判断は、センサの出力値21が値1から値2に変わった後となるため、ステップS8の計算処理4を実施することとなって、図4(A)のカバレッジ出力を行わない場合と結果が異なってしまうことになる。すなわちカバレッジ計測の影響で実行の経路が変わり、特定のコードを通るか通らないかを判断するためのカバレッジ計測値そのものが異なる結果となってしまう。
しかしながら、図1に示した本発明になるプログラムカバレッジ計測方法を実施するためのシステムの構成では、前記したようにリアルタイム処理部1からホスト部2へカウント値10を送るとき、UDP/IPを用いているため、場合によってはカウント値10が送れないという事態が生じることはあるものの、TCP/IPを用いた場合に比較してCPUの負荷が小さく、時間もかからない。
すなわち図4(C)がその場合であり、時刻t1までは図3におけるステップS1の計算処理1が実施され、この時刻t1でステップS2のセンサ入力処理1が実施されて、センサの出力値21が値1となることは前記図4(A)、(B)の場合と同様である。その後、時分割処理によってステップS3のカバレッジ出力処理が行われるが、図4(B)の場合と異なり、その負荷が小さいために処理はすぐ終了し、続いて実施されるステップS4の計算処理2は、時刻tsより手前のt2bで終了する。
この時刻t2bは、時刻t2より時刻ts側であるが、その後のステップS5で行われるセンサ入力処理2は時刻tsの前で終了する程度の遅れであり、その後に行われるステップS6の判断は、センサの出力値21が値1の時に行われるため、ステップS7の計算処理3が実施され、図4(A)のカバレッジ出力を行わない場合と結果が同じになる。
これは、例え時分割マルチタスクでカバレッジ出力処理を実施しても、リアルタイム処理に影響を与えないことを示しており、カバレッジ計測の影響による実行経路の変化がなく、特定のコードを通るか通らないかというカバレッジ計測本来の目的である情報を収集することができる。
このようにすることにより、ハードウェア資源が十分でなく、単一のCPU(演算処理装置)と主メモリを用い、時分割処理によって器組込型リアルタイム処理プログラムにおけるプログラムカバレッジ計測を行うようにしたシステムにおいても、テスト対象プログラムのリアルタイム処理に影響を与えずにプログラムカバレッジの計測を行う方法を提供することができる。
なお、さらにCPU(演算処理装置)の負荷を軽減するためには、計測値読み出しプログラム5によるネットワーク7を介したホスト部2への計測値の送信を、例えば複数ある各カウンタの値を計測値として一度に送出するのではなく、複数のかたまりに分割し、各かたまりを送出する際にも一定時間間隔をあけて送出するようにしても良く、さらに、各計測値が所定回数に達する毎に送信するようにしても良い。
さらに、このカバレッジ計測においては、ある分岐を何回通ったかよりも例え1回でも通れば通ったということを確認する方が重要であるから、上記のように複数のかたまりに分割して一定時間間隔で送出したり、所定回数毎に送信するのに加え、特定の分岐については、最初に通った時に送信を行うようにしても良い。
また、前記図3におけるステップS6のように、その後の処理に影響を与える処理の前におけるカバレッジ出力処理を避けるようにしても良く、このようにすることにより、リアルタイム処理部1のCPUの処理の負荷がさらに軽減され、テスト対象プログラムのリアルタイム処理に影響を与えないようにしたプログラムカバレッジ計測方法を提供することができる。
なお、このように機器組込型のリアルタイム処理プログラムのカバレッジ計測を行う場合、同時に複数の処理プログラムを別々の基板に搭載して動作させ、それぞれの基板に搭載したリアルタイム処理プログラムのプログラムカバレッジ計測結果をホスト部2に送信して計測するということも行われる。
しかしこのようにシステムを構成した場合、本発明のようにUDP/IPを用いてホスト部2とやり取りを行うと、各CPUからの出力が衝突し、計測値の収集が十分できない、という事態が生じる可能性がある。
このような場合を想定して対処したのが図5に示したフロー図である。すなわちこの図5に示したフロー図では、例えば2つのリアルタイム処理部がネットワークを介し、UDP/IPを用いてホスト部とやり取りする場合の例であり、処理部は自主的にホスト部への計測結果送信を行わず、ホスト部から要求があったときに計測結果送信を行うようにしたものである。なお、ここではリアルタイム処理部が2つの場合を示したが、もっと多くのリアルタイム処理部を接続する場合も全く同様に実施することができる。
例えば、ステップS20においてホスト部が処理部(リアルタイム処理部)Aに計測値を要求すると、処理部AはステップS21でその要求を受信し、ステップS22でホスト部へ計測値を送信する。そのためホスト部は、ステップS23で処理部Aより計測値を受信する。なお、この間に処理部Bでは、ステップS24で計測値の読み出しが行われる。
そして、ステップS25においてホスト部が、処理部(リアルタイム処理部)Bに計測値を要求すると、処理部BはステップS26でその要求を受信し、ステップS28で先に読み出した計測値をホスト部へ送信する。そのためホスト部は、ステップS29で処理部Bより計測値を受信する。なお、この間に処理部Aでは、ステップS27で計測値の読み出しが行われる。
以下、全く同様にステップS30においてホスト部が、処理部(リアルタイム処理部)Aに計測値を要求して処理部AがステップS31でその要求を受信する、……という動作が繰り返され、それぞれのリアルタイム処理部A、リアルタイム処理部Bのカバレッジ計測結果が互いに衝突することなく、ホスト部に送信することができる。
本発明によれば、ハードウェア資源が十分でなく、時分割処理によってプログラムカバレッジ計測を行うようにしたシステムにおいても、テスト対象プログラムのリアルタイム処理に影響を与えず、効率よく正確にプログラムカバレッジを計測することができる。
本発明になるプログラムカバレッジ計測方法を実施するためのシステムの構成図である。 機器組込型リアルタイム処理部の動作を説明するための図である。 リアルタイム処理の一例フロー図である。 リアルタイム処理のタイムチャートで、(A)はカバレッジ処理によってリアルタイム処理が影響を受けない場合、(B)はカバレッジ処理によってリアルタイム処理が影響を受ける場合、(C)は本発明になるプログラムカバレッジ計測方法を実施した場合である。 2つのリアルタイム処理部がネットワークを介し、UDP/IPを用いてホスト部とやり取りする場合の例である。 従来のカバレッジの計測システム例で、(A)はプログラム実行用のCPU1と、計測値読み出し用プログラム実行のためのCPU2の2つのCPUを備えたシステム、(B)は単一のCPUでプログラム実行と計測値読み出しを時分割で行うシステムである。
符号の説明
1 リアルタイム処理部
2 ホスト部
3 主メモリ
4 機器組込型リアルタイム処理プログラム
5 計測値読み出しプログラム
6 計測値収集プログラム
7 ネットワーク
8 UDP/IPプロトコル
9 カウンタ増分信号
10 カウント値

Claims (4)

  1. 機器組込型のリアルタイム処理プログラムが動作するリアルタイム処理部における、前記リアルタイム処理プログラムに含まれる各分岐が実行された回数を計測し、該計測値をネットワークを介してホスト部に送って収集するプログラムカバレッジ計測方法であって、
    前記リアルタイム処理部は単一の演算処理装置と主メモリとを用意し、前記リアルタイム処理プログラムと、該リアルタイム処理プログラムにおける実行回数計測対象となる各分岐が実行された回数を読み出す計測値読み出しプログラムとを時分割マルチタスクで動作させ、前記計測値読み出しプログラムが取得した分岐の実行回数を、UDP/IP(User Datagram Protocol)を用いて前記ホスト部に送ることを特徴とするプログラムカバレッジ計測方法。
  2. 前記計測値読み出しプログラムが取得した実行回数計測対象となる各分岐が実行された回数を、特定数の分岐毎に、特定時間間隔毎に前記ホスト部に送ることを特徴とする請求項1に記載したプログラムカバレッジ計測方法。
  3. 前記計測値読み出しプログラムが取得した実行回数計測対象となる各分岐が実行された回数を、前記リアルタイム処理に影響を与える処理の前を避けて前記ホスト部に送ることを特徴とする請求項1または2に記載したプログラムカバレッジ計測方法。
  4. 機器組込型のリアルタイム処理プログラムが動作するリアルタイム処理部を複数有し、それぞれの前記リアルタイム処理プログラムに含まれる各分岐が実行された回数を計測して、該計測値をネットワークを介してホスト部に送って収集するプログラムカバレッジ計測方法であって、
    前記それぞれのリアルタイム処理部に単一の演算処理装置と主メモリとを用意し、前記リアルタイム処理プログラムと、該リアルタイム処理プログラムにおける実行回数計測対象となる各分岐が実行された回数を読み出す計測値読み出しプログラムとを時分割マルチタスクで動作させ、前記ホスト部が、前記計測値読み出しプログラムが取得した分岐が実行された回数を、UDP/IP(User Datagram Protocol)を用いて前記個々のリアルタイム処理部に時間差を設けて送信するよう要求して収集することを特徴とするプログラムカバレッジ計測方法。
JP2006003075A 2006-01-10 2006-01-10 プログラムカバレッジ計測方法 Withdrawn JP2007183888A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006003075A JP2007183888A (ja) 2006-01-10 2006-01-10 プログラムカバレッジ計測方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006003075A JP2007183888A (ja) 2006-01-10 2006-01-10 プログラムカバレッジ計測方法

Publications (1)

Publication Number Publication Date
JP2007183888A true JP2007183888A (ja) 2007-07-19

Family

ID=38339912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006003075A Withdrawn JP2007183888A (ja) 2006-01-10 2006-01-10 プログラムカバレッジ計測方法

Country Status (1)

Country Link
JP (1) JP2007183888A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013150408A1 (en) * 2012-04-03 2013-10-10 International Business Machines Corporation Method and apparatus for reusing parts of existing tests technical field
JP2017004164A (ja) * 2015-06-08 2017-01-05 株式会社Ihi 制御モニタリングシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013150408A1 (en) * 2012-04-03 2013-10-10 International Business Machines Corporation Method and apparatus for reusing parts of existing tests technical field
JP2017004164A (ja) * 2015-06-08 2017-01-05 株式会社Ihi 制御モニタリングシステム

Similar Documents

Publication Publication Date Title
Khan et al. Dustminer: troubleshooting interactive complexity bugs in sensor networks
US8886795B2 (en) Method and system for determining response time of a server
CN108521353B (zh) 定位性能瓶颈的处理方法、设备及可读存储介质
KR101060181B1 (ko) 원격 디버깅을 위한 웹 기반 소프트웨어 디버깅 장치 및 그 방법
CN112804121B (zh) 一种tte网络传输时延测试系统、方法
CN109656574B (zh) 交易时延度量方法、装置、计算机设备及存储介质
Agarwal et al. Diagnosing mobile applications in the wild
US11063701B2 (en) Safety integrity level of service (SILoS) system
US20120079324A1 (en) Firmware tracing in a storage data communication system
CN105468507B (zh) 分支达标检测方法及装置
US7299453B2 (en) Testing measurements
Goel et al. Gretel: Lightweight fault localization for openstack
CN101743535A (zh) 调试工具
JP2007183888A (ja) プログラムカバレッジ計測方法
CN112256557B (zh) 程序回归测试方法、装置、系统、计算机设备及存储介质
CN103731315A (zh) 一种服务器故障检测方法
CN109086185B (zh) 一种存储集群的故障检测方法、装置、设备及存储介质
CN113282496B (zh) 接口自动测试方法、装置、设备及存储介质
US20050038855A1 (en) Systems and methods for collecting data regarding a messaging session
US20100146337A1 (en) Method and device for detecting non-regression of an input/output system in a simulation environment
Kim et al. A decentralized approach for monitoring timing constraints of event flows
CN112328491A (zh) 追踪消息的输出方法、电子设备及存储介质
CN110868321B (zh) 一种基于边缘计算算法验证的故障定位方法及系统
Kranzlmüller et al. Monitor overhead measurement with SKaMPI
CN112527458B (zh) 一种嵌入式系统的测试方法和测试系统

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20090407