JPS61198340A - パスカバレツジ測定方式 - Google Patents
パスカバレツジ測定方式Info
- Publication number
- JPS61198340A JPS61198340A JP60039302A JP3930285A JPS61198340A JP S61198340 A JPS61198340 A JP S61198340A JP 60039302 A JP60039302 A JP 60039302A JP 3930285 A JP3930285 A JP 3930285A JP S61198340 A JPS61198340 A JP S61198340A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- program
- load module
- path coverage
- 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[発明の技術分野]
この発明は、プログラム中に存在するバス(実行経路)
の内、どの程度が既に通過しているかを測定するパスカ
バレッジ測定方式に関する。
の内、どの程度が既に通過しているかを測定するパスカ
バレッジ測定方式に関する。
[発明の技術的背Ill
従来、この種のパスカバレッジ測定方式では、まずコン
パイラにより、プログラム中の全バス(即ちプログラム
のフロ〜において分岐により発生するバスの全て)に割
込みを発生する特殊な命令が埋込まれる。そして、この
特殊な命令の実行による割込み発生時に、割込み処理ル
ーチンにより対応するバス(即ちその命令を含むバス)
の通過が認識され、通過率が測定される。この通過率の
多少は、プログラムのテスト完了状況の目安となる。
パイラにより、プログラム中の全バス(即ちプログラム
のフロ〜において分岐により発生するバスの全て)に割
込みを発生する特殊な命令が埋込まれる。そして、この
特殊な命令の実行による割込み発生時に、割込み処理ル
ーチンにより対応するバス(即ちその命令を含むバス)
の通過が認識され、通過率が測定される。この通過率の
多少は、プログラムのテスト完了状況の目安となる。
[背景技術の問題点]
しかし、従来のパスカバレッジ測定方式では、上記埋込
まれた命令の実行時にソフトウェア(割込み処理ルーチ
ン)の介在があるため、プログラムの処理速度が低下す
る問題があった。このため従来は、リアルタイムシステ
ムで実際の業務を行ないながらパスカバレッジ測定を行
なうことが困難であった。
まれた命令の実行時にソフトウェア(割込み処理ルーチ
ン)の介在があるため、プログラムの処理速度が低下す
る問題があった。このため従来は、リアルタイムシステ
ムで実際の業務を行ないながらパスカバレッジ測定を行
なうことが困難であった。
[発明の目的]
この発明は上記事情に鑑みてなされたものでその目的は
、パスカバレッジ測定に伴うオーバヘッドが著しく減少
でき、もって実環境下でのパスカバレッジ測定を可能と
するパスカバレッジ測定方式を提供することにある。
、パスカバレッジ測定に伴うオーバヘッドが著しく減少
でき、もって実環境下でのパスカバレッジ測定を可能と
するパスカバレッジ測定方式を提供することにある。
[発明の概要]
この発明では、分岐したか、或は分岐せずに通過したか
を示す情報が設定されるフラグ部を有する条件付き分岐
命令を含むロードモジュールを生成する手段と、上記ロ
ードモジュールを実行可能な形態のプログラムとして主
記憶装置にローディングする手段と、上記主記憶装置か
ら命令を取出して解釈実行する解釈実行手段とが設けら
れる。
を示す情報が設定されるフラグ部を有する条件付き分岐
命令を含むロードモジュールを生成する手段と、上記ロ
ードモジュールを実行可能な形態のプログラムとして主
記憶装置にローディングする手段と、上記主記憶装置か
ら命令を取出して解釈実行する解釈実行手段とが設けら
れる。
この解釈実行手段は、主記憶装置から取出した命令が上
記条件付き分岐命令である場合に、分岐条件の判断結果
に応じて同分岐命令の上記フラグ部の情報を書換えるよ
うに構成されている。また、この発明では、上記プログ
ラムまたはその一部が上記主記憶装置から追出されると
きに、同プログラムまたはその一部を上記ロードモジュ
ールに書戻す手段が更に設けられ、プログラム実行後の
ロードモジュールにパスカバレッジ洞室結果が得られる
ようになっている。
記条件付き分岐命令である場合に、分岐条件の判断結果
に応じて同分岐命令の上記フラグ部の情報を書換えるよ
うに構成されている。また、この発明では、上記プログ
ラムまたはその一部が上記主記憶装置から追出されると
きに、同プログラムまたはその一部を上記ロードモジュ
ールに書戻す手段が更に設けられ、プログラム実行後の
ロードモジュールにパスカバレッジ洞室結果が得られる
ようになっている。
[発明の実施例]
以下、この発明の一実施例を第1図(a)。
(b)および第2図(a)、(b)を参照して説明する
。
。
第1図(a)において、11はパスカバレッジ測定対象
となるソースプログラム、12はコンパイラである。コ
ンパイラ12はソースプログラム11を翻訳してオブジ
ェクトプログラム13を生成する。この際、コンパイラ
12は、条件付き分岐を必要とする箇所に第1図(b)
に示すフォーマットの条件付き分岐命令を設定する。こ
の分岐命令は、条件付き分岐命令の種別を示すオペレー
ション・フィールド(以下01部と称する)21、およ
び分岐先のアドレスを示すアドレス・フィールド(以下
、ADR部と称する)22を有している。また上記条件
付き分岐命令は、更に、同命令の実行状況を示すフラグ
・フィールド(以下、FLAG部と称する)23を有し
ている。このFLAG部23部内3去に対応する分岐命
令が実行された際に分岐したことがあるか否かを示すB
ビット(BRANCHビット)と、過去に対応する分岐
命令が実行された際に分岐せずに通過した(下に抜けた
)ことがあるか否かを示すTビット(THROtJGH
ビット)との2ビツトから成る。BビットおよびTビッ
トは、初期状態において、即ち対応する命令(条件付き
分岐命令)の未実行状態において、いずれも110 I
+である。上記した条件付き分岐命令を含むオブジェク
トプログラム13は、実行可能な形態を成すようにリン
カ14により処理され、これによりロードモジュール1
5が生成される。
となるソースプログラム、12はコンパイラである。コ
ンパイラ12はソースプログラム11を翻訳してオブジ
ェクトプログラム13を生成する。この際、コンパイラ
12は、条件付き分岐を必要とする箇所に第1図(b)
に示すフォーマットの条件付き分岐命令を設定する。こ
の分岐命令は、条件付き分岐命令の種別を示すオペレー
ション・フィールド(以下01部と称する)21、およ
び分岐先のアドレスを示すアドレス・フィールド(以下
、ADR部と称する)22を有している。また上記条件
付き分岐命令は、更に、同命令の実行状況を示すフラグ
・フィールド(以下、FLAG部と称する)23を有し
ている。このFLAG部23部内3去に対応する分岐命
令が実行された際に分岐したことがあるか否かを示すB
ビット(BRANCHビット)と、過去に対応する分岐
命令が実行された際に分岐せずに通過した(下に抜けた
)ことがあるか否かを示すTビット(THROtJGH
ビット)との2ビツトから成る。BビットおよびTビッ
トは、初期状態において、即ち対応する命令(条件付き
分岐命令)の未実行状態において、いずれも110 I
+である。上記した条件付き分岐命令を含むオブジェク
トプログラム13は、実行可能な形態を成すようにリン
カ14により処理され、これによりロードモジュール1
5が生成される。
さて、プログラム実行時には、ロードモジュール15が
、実行可能なプログラムとしてO8(オペレーティング
システム)により主記憶装置16にローディングされる
。そして、CPUで実現される命令解釈実行部17によ
り、プログラムを構成する命令が主記憶装置16から逐
次取出され、解釈実行される。命令解釈実行部17は、
主記憶装置16から取出した命令が条件付き分岐命令の
場合、分岐条件の判断を行ない、その判断結果に応じて
同命令のFLAG部23部内3を更新する。即ち命令解
釈実行部17は、分岐することを判断した場合にはFL
AG部23部内3ットに論理゛1”を書込み、分岐しな
いことを判断した場合にはFLAG部23部内3ットに
論理“1”を書°込む(論理゛1°′書込み対象ビット
が既に論理“1パとなっている場合には、この書込み動
作は必ずしも必要でない)。
、実行可能なプログラムとしてO8(オペレーティング
システム)により主記憶装置16にローディングされる
。そして、CPUで実現される命令解釈実行部17によ
り、プログラムを構成する命令が主記憶装置16から逐
次取出され、解釈実行される。命令解釈実行部17は、
主記憶装置16から取出した命令が条件付き分岐命令の
場合、分岐条件の判断を行ない、その判断結果に応じて
同命令のFLAG部23部内3を更新する。即ち命令解
釈実行部17は、分岐することを判断した場合にはFL
AG部23部内3ットに論理゛1”を書込み、分岐しな
いことを判断した場合にはFLAG部23部内3ットに
論理“1”を書°込む(論理゛1°′書込み対象ビット
が既に論理“1パとなっている場合には、この書込み動
作は必ずしも必要でない)。
そして命令解釈実行部17は、FLAG部23部内3動
作の後、分岐あるいは下に抜ける(通過の)ための手続
きを行なう。
作の後、分岐あるいは下に抜ける(通過の)ための手続
きを行なう。
以上の動作から明らかなように、この実施例で適用され
る条件付き分岐命令のFLAG部23部内3応する命令
の過去の実行状況を示す。F LAG部23で示される
分岐命令実行状況は、次に列挙する■〜■のいずれかで
ある。
る条件付き分岐命令のFLAG部23部内3応する命令
の過去の実行状況を示す。F LAG部23で示される
分岐命令実行状況は、次に列挙する■〜■のいずれかで
ある。
■ B=O,T=0の場合
初期状態、即ち対応する命令が未実行である。
■ B=O,T−1の場合
対応する命令を実行したことはあるが、分岐したことは
ない。
ない。
■ B−1,7−0の場合
対応する命令の実行により分岐したことはあるが、下に
抜けた(分岐しなかった)ことはない。
抜けた(分岐しなかった)ことはない。
■ B=1.T=1の場合
対応する命令の実行により分岐したことも、下に扱けた
く分岐しなかった)こともある。
く分岐しなかった)こともある。
したがって、主記憶装置16にローディングされて実行
された(ロードモジュール15に対応する)プログラム
(中の全条件付き分岐命令の各FLAG部23)は、パ
スカバレッジ測定データを内蔵する。
された(ロードモジュール15に対応する)プログラム
(中の全条件付き分岐命令の各FLAG部23)は、パ
スカバレッジ測定データを内蔵する。
主記憶装置16内のプログラムまたはその一部は、O8
の制御により必要に応じて主記憶装置16から追出され
る(アンロードされる)、このとき、この実施例では、
上記プログラムまたはその一部をロードモジュール15
に書戻し、(ブOグラムン実行後のロードモジュール1
8を得るようにしている。
の制御により必要に応じて主記憶装置16から追出され
る(アンロードされる)、このとき、この実施例では、
上記プログラムまたはその一部をロードモジュール15
に書戻し、(ブOグラムン実行後のロードモジュール1
8を得るようにしている。
したがって、再度プログラム実行を行ないたい場合には
、上記実行後のロードモジュール18を、ロードモジュ
ール15として主記憶装置16にローディングすること
になる。
、上記実行後のロードモジュール18を、ロードモジュ
ール15として主記憶装置16にローディングすること
になる。
この実施例では、ロードモジュール15を何回か実行し
た後に、パスカバレッジレポートツール19により上記
実行後のロードモジュール18を解析し、パスカバレッ
ジ状況の定量化を行なう。この解析の様子を第2図(a
)、(b)を参照して説明する。
た後に、パスカバレッジレポートツール19により上記
実行後のロードモジュール18を解析し、パスカバレッ
ジ状況の定量化を行なう。この解析の様子を第2図(a
)、(b)を参照して説明する。
今、パスカバレッジ解析対象となるプログラムの構造を
、条件付き分岐命令に着目して抽出した場合、第2図(
a)に示すようになっていたものとする。同図において
、記号○は条件付き分岐命令を示し、O内の数値は同命
令のFLAG部23の状B(即ち前記した分岐命令実行
状況)を示す。
、条件付き分岐命令に着目して抽出した場合、第2図(
a)に示すようになっていたものとする。同図において
、記号○は条件付き分岐命令を示し、O内の数値は同命
令のFLAG部23の状B(即ち前記した分岐命令実行
状況)を示す。
パスカバレッジレポートツール19は、第2図(a)の
構造図を分析して各バスの通過の有無を判定する。この
判定結果を第2図(b)に示す。同図において、通過し
たことのあるバスは実線で示され、通過したことのない
バスは破線で示されている。
構造図を分析して各バスの通過の有無を判定する。この
判定結果を第2図(b)に示す。同図において、通過し
たことのあるバスは実線で示され、通過したことのない
バスは破線で示されている。
例えば■で示される分岐命令の箇所では、下に抜けるバ
スは実線で示され、分岐側のバスは破線で示される。こ
れに対して■で示される分岐命令の箇所では、下に抜け
るバスは破線で示され、分岐側のバスは実線で示される
。また、■で示される分岐命令の箇所では、下に抜ける
バスおよび分岐側のバス、いずれも実線で示される。
スは実線で示され、分岐側のバスは破線で示される。こ
れに対して■で示される分岐命令の箇所では、下に抜け
るバスは破線で示され、分岐側のバスは実線で示される
。また、■で示される分岐命令の箇所では、下に抜ける
バスおよび分岐側のバス、いずれも実線で示される。
パスカバレッジレポートツール19は、上記のようにし
て全てのバスの実行状況を調べた後、その結果をパスカ
バレッジレポート20として出力する。
て全てのバスの実行状況を調べた後、その結果をパスカ
バレッジレポート20として出力する。
なお、前記実施例では、条件付き分岐命令のFLAG部
23が、BピットおよびTビットの2ビツトで構成され
ているものとして説明したが、例えば分岐回数を示す第
1のカウンタ部と、分岐せずに下に抜けた回数を示す第
2のカウンタ部で構成し、各バスの通過回数を記憶する
ようにしてもよい。こうすることにより、単なるパスカ
バレッジでなく、より一般的な動的解析が可能となる。
23が、BピットおよびTビットの2ビツトで構成され
ているものとして説明したが、例えば分岐回数を示す第
1のカウンタ部と、分岐せずに下に抜けた回数を示す第
2のカウンタ部で構成し、各バスの通過回数を記憶する
ようにしてもよい。こうすることにより、単なるパスカ
バレッジでなく、より一般的な動的解析が可能となる。
C発明の効果コ
以上詳述したようにこの発明によれば、次に列挙する作
用効果を奏することができる。
用効果を奏することができる。
■ パスカバレッジ測定のためのソフトウェア(パスカ
バレッジ測定のための割込み処理ルーチンなど)の介在
がなく、しかもそのために必要となるFLAG部(フラ
グ部)に関するオーバヘッドが少ないので、リアルタイ
ムシステムで実際の業務を行ないながらパスカバレッジ
測定が行なえる。
バレッジ測定のための割込み処理ルーチンなど)の介在
がなく、しかもそのために必要となるFLAG部(フラ
グ部)に関するオーバヘッドが少ないので、リアルタイ
ムシステムで実際の業務を行ないながらパスカバレッジ
測定が行なえる。
■ 従来方式と異なって余分な命令の挿入がないため、
プログラムサイズの増加が殆んどない。
プログラムサイズの増加が殆んどない。
■ 条件付き分岐命令の実行状況を、ロードモジュール
自身が(各分岐命令のFLAG部に)記憶しているので
、同モジュールには、毎回のロ−トモジュールの実行結
果が累積されていく。このため、ロードモジュールが作
成されてからパスカバレッジ解析を行なうまでの間のロ
ードモジュールの全ての実行におけるパス通過を測定で
きる。
自身が(各分岐命令のFLAG部に)記憶しているので
、同モジュールには、毎回のロ−トモジュールの実行結
果が累積されていく。このため、ロードモジュールが作
成されてからパスカバレッジ解析を行なうまでの間のロ
ードモジュールの全ての実行におけるパス通過を測定で
きる。
第1図(a)はこの発明の一実施例に係るパスカバレッ
ジ測定手順を示す図、第1図(b)は条件付き分岐命令
のフォーマットを示す図、第2図(a)は条件付き分岐
命令に着目した場合のプログラム構造の一例を示す図、
第2図(b)は第2図(a)におけるバス通過に関する
分析図である。 12・・・コンパイラ、14・・・リンカ、15・・・
ロードモジュール、16・・・主記憶装置、17・・・
命令解釈実行部、1B・・・実行後のロードモジュール
、23・・・FLAG部。 出願人代理人 弁理士 鈴 江 武 産業1図 (a) (b) 第2r (a) 各 プロプラム 虫0 (b) プロプラム 虫口
ジ測定手順を示す図、第1図(b)は条件付き分岐命令
のフォーマットを示す図、第2図(a)は条件付き分岐
命令に着目した場合のプログラム構造の一例を示す図、
第2図(b)は第2図(a)におけるバス通過に関する
分析図である。 12・・・コンパイラ、14・・・リンカ、15・・・
ロードモジュール、16・・・主記憶装置、17・・・
命令解釈実行部、1B・・・実行後のロードモジュール
、23・・・FLAG部。 出願人代理人 弁理士 鈴 江 武 産業1図 (a) (b) 第2r (a) 各 プロプラム 虫0 (b) プロプラム 虫口
Claims (1)
- 分岐したか、或は分岐せずに通過したかを示す情報が設
定されるフラグ部を有する条件付き分岐命令を含むロー
ドモジュールを生成する手段と、上記ロードモジュール
を実行可能な形態のプログラムとして主記憶装置にロー
ディングする手段と、上記主記憶装置から命令を取出し
て解釈実行する解釈実行手段であって、同命令が上記条
件付き分岐命令である場合に分岐条件の判断結果に応じ
て同分岐命令の上記フラグ部の情報を書換える解釈実行
手段と、上記プログラムまたはその一部が上記主記憶装
置から追出されるときに、同プログラムまたはその一部
を上記ロードモジュールに書戻す手段とを具備し、プロ
グラム実行後のロードモジュールにパスカバレッジ測定
結果を得るようにしたことを特徴とするパスカバレッジ
測定方式。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP60039302A JPS61198340A (ja) | 1985-02-28 | 1985-02-28 | パスカバレツジ測定方式 |
| EP86102066A EP0199009A3 (en) | 1985-02-28 | 1986-02-18 | Path coverage measuring system in a programme |
| US06/833,595 US4742466A (en) | 1985-02-28 | 1986-02-27 | System for measuring path coverage represented by the degree of passage of execution paths in a program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP60039302A JPS61198340A (ja) | 1985-02-28 | 1985-02-28 | パスカバレツジ測定方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS61198340A true JPS61198340A (ja) | 1986-09-02 |
Family
ID=12549323
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP60039302A Pending JPS61198340A (ja) | 1985-02-28 | 1985-02-28 | パスカバレツジ測定方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS61198340A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6415836A (en) * | 1987-07-10 | 1989-01-19 | Mitsubishi Electric Corp | Detection system for comprehensiveness of software test |
-
1985
- 1985-02-28 JP JP60039302A patent/JPS61198340A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6415836A (en) * | 1987-07-10 | 1989-01-19 | Mitsubishi Electric Corp | Detection system for comprehensiveness of software test |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4794522A (en) | Method for detecting modified object code in an emulator | |
| US4742466A (en) | System for measuring path coverage represented by the degree of passage of execution paths in a program | |
| JPH11232147A (ja) | パワーエスティメーション装置、パワーエスティメーション方法、及びパワーエスティメーションプログラムを記録した機械読み取り可能な記録媒体 | |
| JPH04503416A (ja) | データフローマルチプロセサシステム | |
| CN103729282B (zh) | 一种用于从多个并联cpu追踪数据写入信号的方法和系统 | |
| US8898625B2 (en) | Optimized storage of function variables | |
| JPS61198340A (ja) | パスカバレツジ測定方式 | |
| US20100088251A1 (en) | Business Process Diagram (BPD) component analysis | |
| US20180357149A1 (en) | Emulation of target system using jit compiler and bypassing translation of selected target code blocks | |
| US20040083088A1 (en) | Analysis of the performance of a portion of a data processing system | |
| CN109656868A (zh) | 一种cpu与gpu之间的内存数据转移方法 | |
| US11386518B2 (en) | Exception handler for sampling draw dispatch identifiers | |
| JP2007094986A (ja) | シミュレーション装置およびシミュレーション方法 | |
| JPH0646382B2 (ja) | プリフェッチキュー制御方式 | |
| JP2721377B2 (ja) | Basicプログラム圧縮方法 | |
| JPS61235985A (ja) | ベクトルプロセツサ | |
| US20130283244A1 (en) | Debugging Extensible Markup Language | |
| JPS59218567A (ja) | アドレスオ−バラツプチエツク方式 | |
| JPS6367696B2 (ja) | ||
| JPS62254237A (ja) | インタプリタ方式の分岐命令実行方式 | |
| JPH03132839A (ja) | データ処理装置 | |
| JPH04134535A (ja) | マルチタスクプログラムの例外情報採取機構 | |
| JPH01158541A (ja) | プログラム走行ルートの収集方式 | |
| Arnott et al. | Considerations in real-time signal processing under FORTRAN control | |
| JPS61123942A (ja) | マイクロプロセツサ用デバツク装置 |