JPH02239340A - プログラムトレーサにおける命令網羅カバレージ率算出方式 - Google Patents
プログラムトレーサにおける命令網羅カバレージ率算出方式Info
- Publication number
- JPH02239340A JPH02239340A JP1061360A JP6136089A JPH02239340A JP H02239340 A JPH02239340 A JP H02239340A JP 1061360 A JP1061360 A JP 1061360A JP 6136089 A JP6136089 A JP 6136089A JP H02239340 A JPH02239340 A JP H02239340A
- Authority
- JP
- Japan
- Prior art keywords
- program
- address
- area
- tracer
- inspected
- 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
【発明の詳細な説明】
[産業上の利用分野]
この発明は、マイクロコンピュータシステムに使用され
るプログラムの品質評価を行うプログラムトレーサにお
ける、命令網羅カバレージ率の算出方式に関するもので
ある。
るプログラムの品質評価を行うプログラムトレーサにお
ける、命令網羅カバレージ率の算出方式に関するもので
ある。
[従来の技術コ
最近においては、各部の制御やデータ処理をマイクロコ
ンピュータにより行う装置が多数出現しており、これら
に使用されるプログラムはデバッグにより不良箇所の摘
出、修正が行われているが、さらに全体としての品質を
向上するために、被検査プログラムを実用機にロードし
て実行伏態としてプログラムトレーサにより品質評価が
行われる。
ンピュータにより行う装置が多数出現しており、これら
に使用されるプログラムはデバッグにより不良箇所の摘
出、修正が行われているが、さらに全体としての品質を
向上するために、被検査プログラムを実用機にロードし
て実行伏態としてプログラムトレーサにより品質評価が
行われる。
プログラムトレーサは、プログラム中の指定したアドレ
ス領域、または全領域についてプログラムの実行を高速
度でトレースして解析するものである。
ス領域、または全領域についてプログラムの実行を高速
度でトレースして解析するものである。
第2図はプログラムトレーサの構成図を示す。
被検査装置1はマイクロプロセッサ(MPU−A)1a
を搭載した実用機で、被検査プログラム1bがロードさ
れている。プログラムトレーサは2で示され、被検査装
置1にバス接続される。検査においては、被検査プログ
ラム1bのアドレスが逐次実行されるに従って、実行ア
ドレスに対するアドレス信号がインタフェース2aを通
してトレーサ劃御部2bに入力する。これに対してプロ
グラムトレーサ2に設けられたマイクロプロセッサ(M
PU一B)2dより所定の指示がなされてトレ一サ制御
が行われ、その結果はトレーサメモリ2Cに記憶される
。プログラムの実行は、I/O装置2eにより入●出力
条件を種々に変更して複数回行われてトレースデータが
多量となるので、えられたデータは、実行ごとにフロッ
ピィディスク2fに転送されて記録される。
を搭載した実用機で、被検査プログラム1bがロードさ
れている。プログラムトレーサは2で示され、被検査装
置1にバス接続される。検査においては、被検査プログ
ラム1bのアドレスが逐次実行されるに従って、実行ア
ドレスに対するアドレス信号がインタフェース2aを通
してトレーサ劃御部2bに入力する。これに対してプロ
グラムトレーサ2に設けられたマイクロプロセッサ(M
PU一B)2dより所定の指示がなされてトレ一サ制御
が行われ、その結果はトレーサメモリ2Cに記憶される
。プログラムの実行は、I/O装置2eにより入●出力
条件を種々に変更して複数回行われてトレースデータが
多量となるので、えられたデータは、実行ごとにフロッ
ピィディスク2fに転送されて記録される。
プログラムの品質評価の項目には各種があるが、基本的
な項目として複数回の実行により通過したアドレス数の
、全アドレス数に対する比率があり、これを命令網羅カ
バレージ率Co(以下単にカバレージ率Co)という。
な項目として複数回の実行により通過したアドレス数の
、全アドレス数に対する比率があり、これを命令網羅カ
バレージ率Co(以下単にカバレージ率Co)という。
カバレージ率COを算出するためには、通過アドレスと
未通過アドレスを区別してカウントすることが必要であ
る。
未通過アドレスを区別してカウントすることが必要であ
る。
第3図(a),(b)は、被検査プログラム1bの1例
に対して上記のプログラムトレーサ2によりえられた通
過アドレス表を示す。図(a)は16進数の5桁で表し
た被検査プログラムアドレスの一部を示し、これが実行
された場合、アドレス10000よりスタートシ、アド
レス10008において分岐条件が成立しないときは、
そのまま次位のアドレス+0009に続き、ステップが
順次移行してアドレス+0025およびそれ以下のアド
レスを通過する。また、」―記の分岐条件が成立すると
きは、アドレス10008より分岐してアドレス100
21にジャンプする。
に対して上記のプログラムトレーサ2によりえられた通
過アドレス表を示す。図(a)は16進数の5桁で表し
た被検査プログラムアドレスの一部を示し、これが実行
された場合、アドレス10000よりスタートシ、アド
レス10008において分岐条件が成立しないときは、
そのまま次位のアドレス+0009に続き、ステップが
順次移行してアドレス+0025およびそれ以下のアド
レスを通過する。また、」―記の分岐条件が成立すると
きは、アドレス10008より分岐してアドレス100
21にジャンプする。
以Lのステップの移行に対して、トレース制御部2bに
おいて通過アドレスまたは未通過アドレスを検出してそ
れぞれ符号を与え、トレースメモリ2cに、図(b)の
通過アドレス表(I)または(n)を記憶し、プログラ
ムの実行ごとにフロッピィディスク2fに転送して記録
される。表(I)は上記の分岐不成立に対するもので、
アドレス10000から10025までがすべて通過符
号“1”とされている。これに対して、表(n)では分
岐●ジャンプにより通過しないアドレス10009〜1
0020は未通過符号“O”が記録されている。検査に
おいては、異なる入●出力条件のもとにプログラムの実
行が複数回行われ、それぞれに対する通過アドレス表か
えられ、すべての通過通過アドレスに対してそれぞれの
符号のORをとり、その数を集計する。一・方、全アド
レス数は、この例では16進数の25であるから、OR
された通過アドレス数を分子とし、全アドレス数の16
進25を分母として除算を行い、この領域に対するカバ
レージ率COが求められるものである。
おいて通過アドレスまたは未通過アドレスを検出してそ
れぞれ符号を与え、トレースメモリ2cに、図(b)の
通過アドレス表(I)または(n)を記憶し、プログラ
ムの実行ごとにフロッピィディスク2fに転送して記録
される。表(I)は上記の分岐不成立に対するもので、
アドレス10000から10025までがすべて通過符
号“1”とされている。これに対して、表(n)では分
岐●ジャンプにより通過しないアドレス10009〜1
0020は未通過符号“O”が記録されている。検査に
おいては、異なる入●出力条件のもとにプログラムの実
行が複数回行われ、それぞれに対する通過アドレス表か
えられ、すべての通過通過アドレスに対してそれぞれの
符号のORをとり、その数を集計する。一・方、全アド
レス数は、この例では16進数の25であるから、OR
された通過アドレス数を分子とし、全アドレス数の16
進25を分母として除算を行い、この領域に対するカバ
レージ率COが求められるものである。
[解決しようとする課題コ
一般に、プログラムの作成においては、後のデバッグ修
正やステップの配分の都合などにより、プログラムは連
続しているアドレスにギッチリと透き間なく構成される
ものではなく、適当な間隔の余裕が設けられるもので、
この間隔はプログラムが記載されない無意味または無効
の空アドレス領域(以下単に空領域)となる。第4図の
プログラム表はその例を示し、アドレスIOOOA −
1000Fが空領域とその無効アドレスある。
正やステップの配分の都合などにより、プログラムは連
続しているアドレスにギッチリと透き間なく構成される
ものではなく、適当な間隔の余裕が設けられるもので、
この間隔はプログラムが記載されない無意味または無効
の空アドレス領域(以下単に空領域)となる。第4図の
プログラム表はその例を示し、アドレスIOOOA −
1000Fが空領域とその無効アドレスある。
以上に対して、上記した従来のカバレージ率COにおい
ては、分子の通過符号のカウント数と、分母の全アドレ
ス数にはともに上記の空領域に対する分が含まれている
。元来空領域は、プログラムの実行に無関係であるので
、−L記によりえられたカバレージ率COは実態に即せ
ず正確とは云い難い。そこで、空領域を除外して正しい
カバレージ率を求めることが必要である。
ては、分子の通過符号のカウント数と、分母の全アドレ
ス数にはともに上記の空領域に対する分が含まれている
。元来空領域は、プログラムの実行に無関係であるので
、−L記によりえられたカバレージ率COは実態に即せ
ず正確とは云い難い。そこで、空領域を除外して正しい
カバレージ率を求めることが必要である。
この発明は以上に鑑みてなされたもので、カバレージ率
を算出すべき検査対象アドレス領域に残された空領域を
除外して、正しいカバレージ率COを求めるための算出
方式を提供することを目的とするものである。
を算出すべき検査対象アドレス領域に残された空領域を
除外して、正しいカバレージ率COを求めるための算出
方式を提供することを目的とするものである。
[課題を解決するための手段コ
この発明は、被検査プログラムがロードされた被検査装
置に対して、異なる入●出力条件のもとにプログラムを
複数回実行して、実行動作をステップ毎に逐次トレース
し、トレースにより通過したプログラムのアドレス、ま
たは未通過アドレスに対してそれぞれ通過符号または未
通過符号を与えるプログラムトレーサにおける、命令網
羅カバレージ率の算出方式であって、プログラムの検査
対象アドレス領域に対する通過符号をカウントし、検査
対象アドレス領域より、その領域に存在する空領域を除
外した有効領域におけるアドレス数に対する通過符号の
カウント数の比率を算出するものである。
置に対して、異なる入●出力条件のもとにプログラムを
複数回実行して、実行動作をステップ毎に逐次トレース
し、トレースにより通過したプログラムのアドレス、ま
たは未通過アドレスに対してそれぞれ通過符号または未
通過符号を与えるプログラムトレーサにおける、命令網
羅カバレージ率の算出方式であって、プログラムの検査
対象アドレス領域に対する通過符号をカウントし、検査
対象アドレス領域より、その領域に存在する空領域を除
外した有効領域におけるアドレス数に対する通過符号の
カウント数の比率を算出するものである。
上記において、入力装置より検査対象アドレス領域の先
頭アドレスαsと最終アドレスαe1およびそのアドレ
ス領域における、複数n個の空領域の、それぞれの先頭
アドレスβrsと最終アドレスβre(r=1+ 2
+ 3+ ・・・・・・ n)とをそれぞれ指定し、
マイクロコンピュータにより次式を演算してカバレージ
率COを算出する。
頭アドレスαsと最終アドレスαe1およびそのアドレ
ス領域における、複数n個の空領域の、それぞれの先頭
アドレスβrsと最終アドレスβre(r=1+ 2
+ 3+ ・・・・・・ n)とをそれぞれ指定し、
マイクロコンピュータにより次式を演算してカバレージ
率COを算出する。
CO=E/ [: (ae.−αs)−E (βre一
βrs) ] ,(ただし、Eは上記の脊効領域におけ
る通過符号のカウント数で、Eはrについての和をとる
ことを示す)。
βrs) ] ,(ただし、Eは上記の脊効領域におけ
る通過符号のカウント数で、Eはrについての和をとる
ことを示す)。
[作用]
以上のカバレージ率COの算出方式によれば、検査対象
アドレス領域に存在する空領域が計算対象から除外され
て、検査対象アドレス領域に対する正しいカバレージ率
が算出できる。
アドレス領域に存在する空領域が計算対象から除外され
て、検査対象アドレス領域に対する正しいカバレージ率
が算出できる。
実際の計算においては、入力装置より検査対象アドレス
領域として、その先頭アドレスと最終アドレスが指定さ
れるともに、その領域内に存在する複数個の空領域の先
頭アドレスと最終アドレスがそれぞれ指定されて、マイ
クロコンピュータにより前記の計算式が演算されてカバ
レージ率COが求められるものである。
領域として、その先頭アドレスと最終アドレスが指定さ
れるともに、その領域内に存在する複数個の空領域の先
頭アドレスと最終アドレスがそれぞれ指定されて、マイ
クロコンピュータにより前記の計算式が演算されてカバ
レージ率COが求められるものである。
[実施例]
第1図(a),(b)および(C)は、この発明による
プログラムトレーサにおける命令網羅カバレージ率の算
出方式の実施例を示す。図(a)は前記した第2図と同
じ構成とし、被検査装置1にロードされている例えば第
3図の被検査プログラム1bは、プログラムトレーサ2
によりトレースされて、トレースメモリ2cに第3図(
b)に例示した通過アドレス表(I),(n)などが記
憶され、これらを含む全プログラム領域に対するデータ
がフロッピィディスク2fに記録されている。これに対
して、I/O装置2eの入力部より、第1図(b)のプ
ログラム分割表に例示するように、カバレージ率COを
求める検査対象領域をDmとしてその先頭アドレスαs
と最終アドレスαeとを指定する。
プログラムトレーサにおける命令網羅カバレージ率の算
出方式の実施例を示す。図(a)は前記した第2図と同
じ構成とし、被検査装置1にロードされている例えば第
3図の被検査プログラム1bは、プログラムトレーサ2
によりトレースされて、トレースメモリ2cに第3図(
b)に例示した通過アドレス表(I),(n)などが記
憶され、これらを含む全プログラム領域に対するデータ
がフロッピィディスク2fに記録されている。これに対
して、I/O装置2eの入力部より、第1図(b)のプ
ログラム分割表に例示するように、カバレージ率COを
求める検査対象領域をDmとしてその先頭アドレスαs
と最終アドレスαeとを指定する。
次に図(C)のように、該領域DIにおける複数の空領
域に対して、それぞれの先頭アドレスβrsと最終アド
レスβre ( r ” 1 t 2+ 3t・・・
・・・+n)とを指定する。これらの指定により、マイ
クロコンピュータCMCP●B)2dにより、空領域を
除外した検査対象領域の打効アドレス数が前記のCOに
対する計算式の分母の式により計算される。
域に対して、それぞれの先頭アドレスβrsと最終アド
レスβre ( r ” 1 t 2+ 3t・・・
・・・+n)とを指定する。これらの指定により、マイ
クロコンピュータCMCP●B)2dにより、空領域を
除外した検査対象領域の打効アドレス数が前記のCOに
対する計算式の分母の式により計算される。
一方、フロッピィディスク2fに記録された各実行に対
する通過符号のORデータより、検査対象領域より空領
域を除いた前記のデータEが読み出され、これが上記の
有効アドレス数により除算されてカバレージ率COがえ
られる。
する通過符号のORデータより、検査対象領域より空領
域を除いた前記のデータEが読み出され、これが上記の
有効アドレス数により除算されてカバレージ率COがえ
られる。
[発明の効果]
以上の説明により明らかなように、この発明によるプロ
グラムトレーサにおけるカバレージ率の算出方式によれ
ば、被検査プログラムの検査対象アドレス領域と、その
領域内の空領域の両者に対するそれぞれの先頭アドレス
と最終アドレスが、プログラムトレーサの入力装置より
マイクロコンピュータに指定され、これ基づいて、空領
域を除外した脊効アドレス領域における、アドレス数に
対する通過アドレス数の比率がカバレージ率COとして
算出されるもので、空領域を除外することによりカバレ
ージ率COは妥当で正確なものとなり、プログラムトレ
ーサの信頼性に寄与する効果には大きいものがある。
グラムトレーサにおけるカバレージ率の算出方式によれ
ば、被検査プログラムの検査対象アドレス領域と、その
領域内の空領域の両者に対するそれぞれの先頭アドレス
と最終アドレスが、プログラムトレーサの入力装置より
マイクロコンピュータに指定され、これ基づいて、空領
域を除外した脊効アドレス領域における、アドレス数に
対する通過アドレス数の比率がカバレージ率COとして
算出されるもので、空領域を除外することによりカバレ
ージ率COは妥当で正確なものとなり、プログラムトレ
ーサの信頼性に寄与する効果には大きいものがある。
第1図(a),(b)および(C)は、この発明による
プログラムトレーサにおける命令網羅カバレージ率算出
方式の実施例に対する構成図と、被検査プログラムに対
するアドレス指定の説明図、第2図は被検査プログラム
に対するプログラムトレーサの構成図、第3図(a)お
よび(b)は、被検査プログラムの1例と、これに対す
る第2図のプログラムトレーサによる通過アドレス表の
説明図、第4図は空アドレス領域を説明するプログラム
表の説明図である。 1・・・被検査装置、 1a・・・マイクロプロセッサA1 1b・・・被検査プログラム、 2・・・プログラムトレーサ、 2a・・・インタフェース、2b・・・トレース制御部
、2c・・・トレースメモリ、 2d・・・マイクロプロセッサB1 2e・・・I/O装置、2f・・・フロッピィディスク
。
プログラムトレーサにおける命令網羅カバレージ率算出
方式の実施例に対する構成図と、被検査プログラムに対
するアドレス指定の説明図、第2図は被検査プログラム
に対するプログラムトレーサの構成図、第3図(a)お
よび(b)は、被検査プログラムの1例と、これに対す
る第2図のプログラムトレーサによる通過アドレス表の
説明図、第4図は空アドレス領域を説明するプログラム
表の説明図である。 1・・・被検査装置、 1a・・・マイクロプロセッサA1 1b・・・被検査プログラム、 2・・・プログラムトレーサ、 2a・・・インタフェース、2b・・・トレース制御部
、2c・・・トレースメモリ、 2d・・・マイクロプロセッサB1 2e・・・I/O装置、2f・・・フロッピィディスク
。
Claims (2)
- (1)被検査プログラムがロードされた被検査装置に対
して、異なる入・出力条件のもとに該プログラムの実行
を複数回行い、該実行動作をステップ毎に逐次トレース
し、該トレースにより通過したプログラムのアドレス、
または未通過アドレスに対してそれぞれ通過符号または
未通過符号を与えるプログラムトレーサにおいて、上記
プログラムの検査対象アドレス領域に対する上記通過符
号をカウントし、上記検査対象アドレス領域より、該ア
ドレス領域に存在する空アドレス領域を除外した有効領
域におけるアドレス数に対する上記通過符号のカウント
数の比率を算出することを特徴とする、プログラムトレ
ーサにおける命令網羅カバレージ率算出方式。 - (2)入力装置より上記検査対象アドレス領域の先頭ア
ドレスαsと最終アドレスαe、および該アドレス領域
における、複数n個の空アドレス領域のそれぞれの先頭
アドレスβrsと最終アドレスβre(r=1,2,3
……,n)とをそれぞれ指定し、マイクロコンピュータ
により次式: CO=E/[(αe−αs)−Σ(βre−βrs)]
、(ただし、Eは上記の有効領域における通過符号のカ
ウント数とし、Σはrについての和をとることを示す。 )を演算して上記比率を算出する、請求項1記載のプロ
グラムトレーサにおける命令網羅カバレージ率算出方式
。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1061360A JPH02239340A (ja) | 1989-03-14 | 1989-03-14 | プログラムトレーサにおける命令網羅カバレージ率算出方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1061360A JPH02239340A (ja) | 1989-03-14 | 1989-03-14 | プログラムトレーサにおける命令網羅カバレージ率算出方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH02239340A true JPH02239340A (ja) | 1990-09-21 |
Family
ID=13168916
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1061360A Pending JPH02239340A (ja) | 1989-03-14 | 1989-03-14 | プログラムトレーサにおける命令網羅カバレージ率算出方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH02239340A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006293740A (ja) * | 2005-04-12 | 2006-10-26 | Ntt Data Corp | ソフトウェアカバレッジ測定装置及び方法 |
-
1989
- 1989-03-14 JP JP1061360A patent/JPH02239340A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006293740A (ja) * | 2005-04-12 | 2006-10-26 | Ntt Data Corp | ソフトウェアカバレッジ測定装置及び方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0189848B1 (en) | Method and apparatus for software debugging | |
| US5103394A (en) | Software performance analyzer | |
| US4845615A (en) | Software performance analyzer | |
| EP0031501B1 (en) | Diagnostic and debugging arrangement for a data processing system | |
| DE69810795T2 (de) | Automatisierte gültigkeitsbestätigung und richtigkeitsprüfung von rechnersoftware | |
| US20020184615A1 (en) | System and method for selectively and automatically modifying the source code of a computer program | |
| US7574697B2 (en) | Testing parallel applications using code instrumentation | |
| JPH02239340A (ja) | プログラムトレーサにおける命令網羅カバレージ率算出方式 | |
| GB1247746A (en) | Data processing machines | |
| Fryer | The memory bus monitor: a new device for developing real-time systems | |
| Lambert et al. | Program debugging and performance evaluation aids for a multi-microprocessor development system | |
| JPH02239341A (ja) | プログラムトレーサにおける分岐網羅カバレージ率算出方式 | |
| JPH0258136A (ja) | ソフトウェア試験カバレージ測定装置 | |
| JPS62200439A (ja) | 命令実行回数解析方式 | |
| JP2697601B2 (ja) | 乗算・除算命令インタロックのシミュレーション方式 | |
| Hughes | Performance Evaluation Techniques and System Reliability—A Practical Approach | |
| GB1362314A (en) | Method for programming a computer to simulate a digital circuit | |
| JPS62109140A (ja) | プログラム処理装置のトレ−ス回路 | |
| JPH05108407A (ja) | 計算機用プログラムのデバツクシステム | |
| JPS6388650A (ja) | プログラムパス・モニタ方式 | |
| JPS59205652A (ja) | プログラムトレ−ス・システム | |
| JPS59161747A (ja) | プログラムアナライザ | |
| JPH0769858B2 (ja) | 仮想計算機の性能測定方式 | |
| JPH02108135A (ja) | プログラムトレース制御方式 | |
| JPS63245533A (ja) | プログラム性能測定方法 |