JPH0225939A - テストカバレージ計測ツール - Google Patents
テストカバレージ計測ツールInfo
- Publication number
- JPH0225939A JPH0225939A JP63175036A JP17503688A JPH0225939A JP H0225939 A JPH0225939 A JP H0225939A JP 63175036 A JP63175036 A JP 63175036A JP 17503688 A JP17503688 A JP 17503688A JP H0225939 A JPH0225939 A JP H0225939A
- Authority
- JP
- Japan
- Prior art keywords
- program
- execution module
- coverage
- test coverage
- address
- 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
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
- G01R31/318342—Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
- G01R31/31835—Analysis of test coverage or failure detectability
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、プログラム開発におけるプログラムテストに
係り、特に、プログラムのテストが十分に行われたかを
示すテストカバレージに好適なテストカバレージ計測ツ
ールに関する。
係り、特に、プログラムのテストが十分に行われたかを
示すテストカバレージに好適なテストカバレージ計測ツ
ールに関する。
従来、テストカバレージの計測は、1986年rbit
J9月号ソフトウェアのテスト技法テスティング、ツー
ル(2)に示されているように、プログラムの機能に影
響しないようにテストカバレージの計測を行う実行文を
プログラムに挿入し、プログラムを再コンパイル、再リ
ンクして実行モジュールをカバレージ計測用に再作成し
、実行モジュールを動作させ挿入した計測を行う実行文
により計測する方式がとられていた。
J9月号ソフトウェアのテスト技法テスティング、ツー
ル(2)に示されているように、プログラムの機能に影
響しないようにテストカバレージの計測を行う実行文を
プログラムに挿入し、プログラムを再コンパイル、再リ
ンクして実行モジュールをカバレージ計測用に再作成し
、実行モジュールを動作させ挿入した計測を行う実行文
により計測する方式がとられていた。
しかし、上記従来方式は、プログラムのテスト実行、デ
バッグが終了した後、ナス1−力バレージを計測するた
めだけに、計測実行文の挿入作業。
バッグが終了した後、ナス1−力バレージを計測するた
めだけに、計測実行文の挿入作業。
再コンパイル、再すンク作業、実行モジュールの動作作
業が必要であり、テスト作業を一時的に中断して行なわ
ざるをえなかった。また、プログラムの機能に影響しな
い様に計測実行文を挿入しているが、プログラム自身に
変更があるため、挿入前のプログラムと全く同一動作で
あるとの保障ができないという問題点があった。
業が必要であり、テスト作業を一時的に中断して行なわ
ざるをえなかった。また、プログラムの機能に影響しな
い様に計測実行文を挿入しているが、プログラム自身に
変更があるため、挿入前のプログラムと全く同一動作で
あるとの保障ができないという問題点があった。
本発明の目的は、テストカバレージ計測を、プログラム
のテスト作業を中断することなく、テスト実行、デバッ
グに続けて一貫して可能とし、また、プログラムに変更
を加えることなくプログラムそのままの動作からカバレ
ージ計測を可能とするテストカバレージ計測ツールを提
供することにある。
のテスト作業を中断することなく、テスト実行、デバッ
グに続けて一貫して可能とし、また、プログラムに変更
を加えることなくプログラムそのままの動作からカバレ
ージ計測を可能とするテストカバレージ計測ツールを提
供することにある。
上記目的は、コンパイラがプログラムのデバッグ用に出
力するデバッグ情報の1つである行NO情報(行NOと
行NOに対応するアドレス)を使用し、実行モジュール
の動作前に、一時的に動作をストップさせるブレーク命
令を実行モジュールの行NOに対応するアドレスに埋め
込み、実行モジュール動作時、ブレークしたアドレスか
ら対応する行NOを求め、求めた行NOを実行されたと
認識するテストカバレージツールにより達成される。
力するデバッグ情報の1つである行NO情報(行NOと
行NOに対応するアドレス)を使用し、実行モジュール
の動作前に、一時的に動作をストップさせるブレーク命
令を実行モジュールの行NOに対応するアドレスに埋め
込み、実行モジュール動作時、ブレークしたアドレスか
ら対応する行NOを求め、求めた行NOを実行されたと
認識するテストカバレージツールにより達成される。
コンパイラが出力するプログラムのデバッグ情報は、プ
ログラムの不具合を究明するデバッグ作業で使うデバッ
グツールで使用する。このデバッグ作業は、プログラム
のテスト作業では必須であり、カバレージ計測のために
、デバッグ情報出力のコンパイル作業を行う必要はない
。また、このデバッグ情報は、実行モジュールの付属情
報として出力されるものであり、プログラム自身に変更
は発生しない。
ログラムの不具合を究明するデバッグ作業で使うデバッ
グツールで使用する。このデバッグ作業は、プログラム
のテスト作業では必須であり、カバレージ計測のために
、デバッグ情報出力のコンパイル作業を行う必要はない
。また、このデバッグ情報は、実行モジュールの付属情
報として出力されるものであり、プログラム自身に変更
は発生しない。
以下、本発明の1実施例を詳細に説明する。
第1図は、本発明によるテストカバレージ計測ツールの
構成を示したものであり、第2図はその処理手順を示し
たフローチャートである。
構成を示したものであり、第2図はその処理手順を示し
たフローチャートである。
第1図において、プログラム1は、コンパイラ、リンカ
2により、命令部4、デバッグ情報部5からなる実行モ
ジュール3に変換され動作可能な状態となる。このデバ
ッグ情報部の一部である行NO情報6は、プログラムの
行NOと行NOに対応する実行モジュールの命令部アド
レスから構成されており、プログラムの行NOが実行モ
ジュールのどの部分に対応するかを示している。
2により、命令部4、デバッグ情報部5からなる実行モ
ジュール3に変換され動作可能な状態となる。このデバ
ッグ情報部の一部である行NO情報6は、プログラムの
行NOと行NOに対応する実行モジュールの命令部アド
レスから構成されており、プログラムの行NOが実行モ
ジュールのどの部分に対応するかを示している。
テス]・カバレージ計測ツール7は、行NO情報を基に
、カバレージ計測テーブル8を作成し、このテーブルを
使用して、カバレージ計測を行い。
、カバレージ計測テーブル8を作成し、このテーブルを
使用して、カバレージ計測を行い。
計測終了後、カバレージ率リスト9を出力する。
このカバレージ計測テーブルは、行NO情報と同一構成
である行NO、アドレスに加え、アドレスで示される命
令部の命令、及び、行NOの実行回数を示すカウンタで
構成される。
である行NO、アドレスに加え、アドレスで示される命
令部の命令、及び、行NOの実行回数を示すカウンタで
構成される。
次に第2図のフローチャー1−に基づいて、第1図のテ
ストカバレージ計測ツールの処理手順を示す。
ストカバレージ計測ツールの処理手順を示す。
テストカバレージ計測ツールに起動がかかると、まず、
実行モジュールの行NO情報をカバレージ計測テーブル
に読み込み(100)、全行80分イニシャル処理とし
て、カウンタのOクリア(1,10)、アドレスに対応
する命令部の命令の読込み(1,20)、命令部のアド
レスにブレーク命令のの書込み(130)を行う。次に
、この状態で、実行モジュールを動作させ(150)、
実行モジュールがブレークまたは、終了するのを監視す
る(160)。実行モジュールがブレークした場合には
、計測処理として、ブレークの発生したアドレスから対
応するカバレージ計測テーブルの行NOを求め(180
)、求めた行NOのカウンタを十1する(190)。
実行モジュールの行NO情報をカバレージ計測テーブル
に読み込み(100)、全行80分イニシャル処理とし
て、カウンタのOクリア(1,10)、アドレスに対応
する命令部の命令の読込み(1,20)、命令部のアド
レスにブレーク命令のの書込み(130)を行う。次に
、この状態で、実行モジュールを動作させ(150)、
実行モジュールがブレークまたは、終了するのを監視す
る(160)。実行モジュールがブレークした場合には
、計測処理として、ブレークの発生したアドレスから対
応するカバレージ計測テーブルの行NOを求め(180
)、求めた行NOのカウンタを十1する(190)。
次に、実行モジュールを再実行させるための処理として
、まず、求めた行NOの命令を命令部に書き込み回復さ
せ(200)、1ステップ実行しく210)、プログラ
ム自身の処理を行う。次に、再びカバレージ計測を可能
とするため、再び求めた行NOのアドレスにブレーク命
令を書込み(220)、再動作させる(150)。
、まず、求めた行NOの命令を命令部に書き込み回復さ
せ(200)、1ステップ実行しく210)、プログラ
ム自身の処理を行う。次に、再びカバレージ計測を可能
とするため、再び求めた行NOのアドレスにブレーク命
令を書込み(220)、再動作させる(150)。
この150−220までの処理を実行モジュールが終了
するまで行い、テストカバレージの計測を行う。また、
実行モジュールが終了した場合には、カバレージ率=(
カウンタが0以外の行N。
するまで行い、テストカバレージの計測を行う。また、
実行モジュールが終了した場合には、カバレージ率=(
カウンタが0以外の行N。
数)÷(全行NO数> xtooにより、カバレージ率
を求め表示する(230)。
を求め表示する(230)。
本発明によれば、プログラムのテスト作業を中断するこ
となく、また、実行モジュールの付属情報であるデバッ
グ情報を使用するため、プログラムに変更を加えること
なくテストカバレージの計測ができ、テスト作業をテス
ト実行、デバッグ、カバレージ計測と一貫して行うこと
ができ、プログラムのテスト効率を向上させることがで
きる。
となく、また、実行モジュールの付属情報であるデバッ
グ情報を使用するため、プログラムに変更を加えること
なくテストカバレージの計測ができ、テスト作業をテス
ト実行、デバッグ、カバレージ計測と一貫して行うこと
ができ、プログラムのテスト効率を向上させることがで
きる。
また、実施例1によるテストカバレージツールで計測し
た計?1ill結果を計測結果ファイルとして出力し、
次回の起動時に、このファイル内容をよみ込み、カウン
タに反映させることにより、テストごとのカバレージを
累積することができる。また、この計測結果ファイルに
、計測した実行モジュールの作成時間を格納し1次回の
起動時に、これから計測しようとする実行モジュールの
作成時間と比較し、異なる場合には、カウンタをOとす
ることで、カバレージ履歴管理をすることができる。
た計?1ill結果を計測結果ファイルとして出力し、
次回の起動時に、このファイル内容をよみ込み、カウン
タに反映させることにより、テストごとのカバレージを
累積することができる。また、この計測結果ファイルに
、計測した実行モジュールの作成時間を格納し1次回の
起動時に、これから計測しようとする実行モジュールの
作成時間と比較し、異なる場合には、カウンタをOとす
ることで、カバレージ履歴管理をすることができる。
更に、コンパイラのデバッグ情報に分岐情報(例えば、
IF文のTHEHのアドレスとELSEのアドレス)を
追加することにより1分岐カバレージ率の計測も可能と
なる。
IF文のTHEHのアドレスとELSEのアドレス)を
追加することにより1分岐カバレージ率の計測も可能と
なる。
第1図は本発明の一実施例のテストカバレージ計測ツー
ルの構成図、第2図はテストカバレージ計測ツールの処
理手順を示すフローチャートである。 1・・・プログラム、2・・・コンパイラ、リンカ、3
・・・実行モジュール、6・・・行NO情報、7・・・
テストカバレージ計測ツール、8・・・カバレージ計測
テープ率1図
ルの構成図、第2図はテストカバレージ計測ツールの処
理手順を示すフローチャートである。 1・・・プログラム、2・・・コンパイラ、リンカ、3
・・・実行モジュール、6・・・行NO情報、7・・・
テストカバレージ計測ツール、8・・・カバレージ計測
テープ率1図
Claims (1)
- 1、プログラムのどの部分が実行されたかを計測するこ
とで、プログラムのテストが十分かどうかを判定するテ
ストカバレージにおいて、プログラムをコンパイル、リ
ンクし作成した実行モジュールの付属情報を用い、実行
モジュールの動作前に、一時的に動作をストップさせる
ブレーク命令をプログラムの行NOに対応させるアドレ
スに埋め込み、実行モジュール動作時、ブレークしたア
ドレスから対応する行NOを求め、求めた行NOを実行
したと認識することで、プログラムに変更を加えること
なくカバレージ計測を可能としたことを特徴とするテス
トカバレージ計測ツール。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63175036A JPH0225939A (ja) | 1988-07-15 | 1988-07-15 | テストカバレージ計測ツール |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63175036A JPH0225939A (ja) | 1988-07-15 | 1988-07-15 | テストカバレージ計測ツール |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0225939A true JPH0225939A (ja) | 1990-01-29 |
Family
ID=15989096
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63175036A Pending JPH0225939A (ja) | 1988-07-15 | 1988-07-15 | テストカバレージ計測ツール |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0225939A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007004793A (ja) * | 2005-06-20 | 2007-01-11 | Seagate Technology Llc | 組込型処理装置システム用コードカバレッジ測定方法及び装置 |
-
1988
- 1988-07-15 JP JP63175036A patent/JPH0225939A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007004793A (ja) * | 2005-06-20 | 2007-01-11 | Seagate Technology Llc | 組込型処理装置システム用コードカバレッジ測定方法及び装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110580226B (zh) | 操作系统级程序的目标码覆盖率测试方法、系统及介质 | |
| US5987250A (en) | Transparent instrumentation for computer program behavior analysis | |
| US20070006159A1 (en) | Post-compile instrumentation of object code for generating execution trace data | |
| US6240545B1 (en) | Setting instance breakpoints in object oriented computer programs | |
| US20070150872A1 (en) | Use of Memory Watch Points and a Debugger to Improve Analysis of Runtime Memory Access Errors | |
| US9069894B2 (en) | Data collisions in concurrent programs | |
| US5132972A (en) | Assembly language programming potential error detection scheme sensing apparent inconsistency with a previous operation | |
| JP2000020349A (ja) | プログラム開発支援装置、プログラム開発支援方法及びプログラム開発支援用プログラムを記録した媒体 | |
| Jeong et al. | Fifa: A kernel-level fault injection framework for arm-based embedded linux system | |
| CN100388234C (zh) | 一种基于有限状态机的对内存变量改写进行监控的方法 | |
| US5404499A (en) | Semi-automatic program execution error detection | |
| JPH0225939A (ja) | テストカバレージ計測ツール | |
| EP1209567A1 (en) | Method and system for real time debugging a source program, particularly for DSP | |
| TWI402750B (zh) | 具有軟體程式儲存於其中之電腦可讀取媒體及用以產生軟體程式的方法 | |
| US20100251213A1 (en) | Method for executing debug commands | |
| JP2001043110A (ja) | プログラムのデバッグ方法 | |
| JP2002268918A (ja) | 試験システム及び試験方法及び試験プログラム及び試験プログラムを記録した計算機で読み取り可能な記録媒体 | |
| KR100340049B1 (ko) | 시나리오를 이용한 칠 프로그램 시험 방법 | |
| JPS59202548A (ja) | デバツグ装置 | |
| JPH05324402A (ja) | プログラムのテスト状態計測方式 | |
| KR20250003362A (ko) | 컴퓨터 프로그램을 테스트하기 위한 방법 | |
| KR20250003334A (ko) | 컴퓨터 프로그램을 테스트하기 위한 방법 | |
| JP3068578B2 (ja) | インサーキットエミュレータおよび飽和演算処理方法 | |
| Chang et al. | An Effective Parallel Program Debugging Approach Based on Timing Annotation | |
| JPH04307636A (ja) | プログラムテスト方式 |