JPH0225939A - Test coverage measuring tool - Google Patents
Test coverage measuring toolInfo
- 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
- row number
- test coverage
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 29
- 238000005259 measurement Methods 0.000 claims abstract description 28
- 238000000034 method Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
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
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、プログラム開発におけるプログラムテストに
係り、特に、プログラムのテストが十分に行われたかを
示すテストカバレージに好適なテストカバレージ計測ツ
ールに関する。DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to program testing in program development, and particularly to a test coverage measurement tool suitable for test coverage indicating whether a program has been sufficiently tested.
従来、テストカバレージの計測は、1986年rbit
J9月号ソフトウェアのテスト技法テスティング、ツー
ル(2)に示されているように、プログラムの機能に影
響しないようにテストカバレージの計測を行う実行文を
プログラムに挿入し、プログラムを再コンパイル、再リ
ンクして実行モジュールをカバレージ計測用に再作成し
、実行モジュールを動作させ挿入した計測を行う実行文
により計測する方式がとられていた。Traditionally, test coverage was measured using rbit in 1986.
As shown in JSeptember Software Testing Techniques Testing, Tools (2), we insert executable statements that measure test coverage into a program without affecting the program's functionality, and then recompile and recompile the program. The method used was to link and recreate the execution module for coverage measurement, and then run the execution module and measure it using an executable statement that performs the inserted measurement.
しかし、上記従来方式は、プログラムのテスト実行、デ
バッグが終了した後、ナス1−力バレージを計測するた
めだけに、計測実行文の挿入作業。However, in the conventional method described above, after the test execution and debugging of the program are completed, a measurement execution statement is inserted just to measure the force coverage.
再コンパイル、再すンク作業、実行モジュールの動作作
業が必要であり、テスト作業を一時的に中断して行なわ
ざるをえなかった。また、プログラムの機能に影響しな
い様に計測実行文を挿入しているが、プログラム自身に
変更があるため、挿入前のプログラムと全く同一動作で
あるとの保障ができないという問題点があった。This required recompiling, relinking, and operating the execution module, which meant that testing work had to be temporarily suspended. Furthermore, although measurement executable statements are inserted so as not to affect the functionality of the program, since the program itself has been changed, there is a problem in that it cannot be guaranteed that the program operates exactly the same as the program before insertion.
本発明の目的は、テストカバレージ計測を、プログラム
のテスト作業を中断することなく、テスト実行、デバッ
グに続けて一貫して可能とし、また、プログラムに変更
を加えることなくプログラムそのままの動作からカバレ
ージ計測を可能とするテストカバレージ計測ツールを提
供することにある。An object of the present invention is to enable test coverage measurement to be performed consistently following test execution and debugging without interrupting program testing work, and to measure coverage from the program as it is without making any changes to the program. Our goal is to provide a test coverage measurement tool that enables
上記目的は、コンパイラがプログラムのデバッグ用に出
力するデバッグ情報の1つである行NO情報(行NOと
行NOに対応するアドレス)を使用し、実行モジュール
の動作前に、一時的に動作をストップさせるブレーク命
令を実行モジュールの行NOに対応するアドレスに埋め
込み、実行モジュール動作時、ブレークしたアドレスか
ら対応する行NOを求め、求めた行NOを実行されたと
認識するテストカバレージツールにより達成される。The above purpose uses line NO information (line NO and the address corresponding to the line NO), which is one of the debugging information output by the compiler for program debugging, to temporarily execute the operation before the execution module operates. This is achieved by a test coverage tool that embeds a break instruction to stop at the address corresponding to the line number of the execution module, calculates the corresponding line number from the break address when the execution module is running, and recognizes that the calculated line number has been executed. .
コンパイラが出力するプログラムのデバッグ情報は、プ
ログラムの不具合を究明するデバッグ作業で使うデバッ
グツールで使用する。このデバッグ作業は、プログラム
のテスト作業では必須であり、カバレージ計測のために
、デバッグ情報出力のコンパイル作業を行う必要はない
。また、このデバッグ情報は、実行モジュールの付属情
報として出力されるものであり、プログラム自身に変更
は発生しない。The program debugging information output by the compiler is used by debugging tools used for debugging to investigate program defects. This debugging work is essential for program testing, and there is no need to compile debugging information output for coverage measurement. Further, this debug information is output as information attached to the execution module, and no changes occur to the program itself.
以下、本発明の1実施例を詳細に説明する。 Hereinafter, one embodiment of the present invention will be described in detail.
第1図は、本発明によるテストカバレージ計測ツールの
構成を示したものであり、第2図はその処理手順を示し
たフローチャートである。FIG. 1 shows the configuration of a test coverage measuring tool according to the present invention, and FIG. 2 is a flowchart showing its processing procedure.
第1図において、プログラム1は、コンパイラ、リンカ
2により、命令部4、デバッグ情報部5からなる実行モ
ジュール3に変換され動作可能な状態となる。このデバ
ッグ情報部の一部である行NO情報6は、プログラムの
行NOと行NOに対応する実行モジュールの命令部アド
レスから構成されており、プログラムの行NOが実行モ
ジュールのどの部分に対応するかを示している。In FIG. 1, a program 1 is converted by a compiler and a linker 2 into an execution module 3 consisting of an instruction section 4 and a debug information section 5, and becomes operational. The line number information 6, which is a part of this debug information section, is composed of the line number of the program and the instruction section address of the execution module corresponding to the line number, and indicates which part of the execution module the line number of the program corresponds to. It shows that.
テス]・カバレージ計測ツール7は、行NO情報を基に
、カバレージ計測テーブル8を作成し、このテーブルを
使用して、カバレージ計測を行い。The coverage measurement tool 7 creates a coverage measurement table 8 based on the row number information, and uses this table to perform coverage measurement.
計測終了後、カバレージ率リスト9を出力する。After the measurement is completed, a coverage rate list 9 is output.
このカバレージ計測テーブルは、行NO情報と同一構成
である行NO、アドレスに加え、アドレスで示される命
令部の命令、及び、行NOの実行回数を示すカウンタで
構成される。This coverage measurement table includes a row number and an address, which have the same configuration as the row number information, as well as an instruction in the instruction section indicated by the address and a counter indicating the number of executions of the row number.
次に第2図のフローチャー1−に基づいて、第1図のテ
ストカバレージ計測ツールの処理手順を示す。Next, based on flowchart 1- in FIG. 2, the processing procedure of the test coverage measurement tool in FIG. 1 will be described.
テストカバレージ計測ツールに起動がかかると、まず、
実行モジュールの行NO情報をカバレージ計測テーブル
に読み込み(100)、全行80分イニシャル処理とし
て、カウンタのOクリア(1,10)、アドレスに対応
する命令部の命令の読込み(1,20)、命令部のアド
レスにブレーク命令のの書込み(130)を行う。次に
、この状態で、実行モジュールを動作させ(150)、
実行モジュールがブレークまたは、終了するのを監視す
る(160)。実行モジュールがブレークした場合には
、計測処理として、ブレークの発生したアドレスから対
応するカバレージ計測テーブルの行NOを求め(180
)、求めた行NOのカウンタを十1する(190)。When the test coverage measurement tool starts up, first,
Read the row number information of the execution module into the coverage measurement table (100), as initial processing for all rows for 80 minutes, clear the counter (1, 10), read the instruction in the instruction section corresponding to the address (1, 20), A break instruction is written to the address of the instruction section (130). Next, in this state, operate the execution module (150),
The execution module is monitored for breaking or exiting (160). When the execution module breaks, the measurement process is to find the corresponding row number of the coverage measurement table from the address where the break occurred (180
), the counter of the determined row number is incremented by 11 (190).
次に、実行モジュールを再実行させるための処理として
、まず、求めた行NOの命令を命令部に書き込み回復さ
せ(200)、1ステップ実行しく210)、プログラ
ム自身の処理を行う。次に、再びカバレージ計測を可能
とするため、再び求めた行NOのアドレスにブレーク命
令を書込み(220)、再動作させる(150)。Next, as a process for re-executing the execution module, first, the instruction of the determined line number is written and recovered in the instruction section (200), one step execution is performed (210), and the program itself is processed. Next, in order to enable coverage measurement again, a break command is written to the address of the row NO found again (220), and the operation is restarted (150).
この150−220までの処理を実行モジュールが終了
するまで行い、テストカバレージの計測を行う。また、
実行モジュールが終了した場合には、カバレージ率=(
カウンタが0以外の行N。The processing from 150 to 220 is performed until the execution module is completed, and test coverage is measured. Also,
If the execution module terminates, coverage rate = (
Row N whose counter is other than 0.
数)÷(全行NO数> xtooにより、カバレージ率
を求め表示する(230)。The coverage rate is calculated and displayed using (number of NOs in all rows) ÷ (number of NOs in all rows) xtoo (230).
本発明によれば、プログラムのテスト作業を中断するこ
となく、また、実行モジュールの付属情報であるデバッ
グ情報を使用するため、プログラムに変更を加えること
なくテストカバレージの計測ができ、テスト作業をテス
ト実行、デバッグ、カバレージ計測と一貫して行うこと
ができ、プログラムのテスト効率を向上させることがで
きる。According to the present invention, test coverage can be measured without interrupting program testing work, and debug information that is attached to an execution module is used, so test coverage can be measured without making any changes to the program. Execution, debugging, and coverage measurement can be performed consistently, improving program testing efficiency.
また、実施例1によるテストカバレージツールで計測し
た計?1ill結果を計測結果ファイルとして出力し、
次回の起動時に、このファイル内容をよみ込み、カウン
タに反映させることにより、テストごとのカバレージを
累積することができる。また、この計測結果ファイルに
、計測した実行モジュールの作成時間を格納し1次回の
起動時に、これから計測しようとする実行モジュールの
作成時間と比較し、異なる場合には、カウンタをOとす
ることで、カバレージ履歴管理をすることができる。Also, the total amount measured using the test coverage tool according to Example 1? Output the 1ill result as a measurement result file,
By reading the contents of this file and reflecting it on the counter at the next startup, the coverage for each test can be accumulated. In addition, the creation time of the measured execution module is stored in this measurement result file, and at the first startup, it is compared with the creation time of the execution module to be measured from now on, and if it is different, the counter is set to O. , and can manage coverage history.
更に、コンパイラのデバッグ情報に分岐情報(例えば、
IF文のTHEHのアドレスとELSEのアドレス)を
追加することにより1分岐カバレージ率の計測も可能と
なる。Additionally, the compiler's debug information includes branch information (e.g.
By adding the THEH address and ELSE address of the IF statement, it is also possible to measure the one-branch coverage rate.
第1図は本発明の一実施例のテストカバレージ計測ツー
ルの構成図、第2図はテストカバレージ計測ツールの処
理手順を示すフローチャートである。
1・・・プログラム、2・・・コンパイラ、リンカ、3
・・・実行モジュール、6・・・行NO情報、7・・・
テストカバレージ計測ツール、8・・・カバレージ計測
テープ率1図FIG. 1 is a configuration diagram of a test coverage measurement tool according to an embodiment of the present invention, and FIG. 2 is a flowchart showing the processing procedure of the test coverage measurement tool. 1...Program, 2...Compiler, linker, 3
...Execution module, 6...Line No. information, 7...
Test coverage measurement tool, 8...Coverage measurement tape ratio 1 diagram
Claims (1)
とで、プログラムのテストが十分かどうかを判定するテ
ストカバレージにおいて、プログラムをコンパイル、リ
ンクし作成した実行モジュールの付属情報を用い、実行
モジュールの動作前に、一時的に動作をストップさせる
ブレーク命令をプログラムの行NOに対応させるアドレ
スに埋め込み、実行モジュール動作時、ブレークしたア
ドレスから対応する行NOを求め、求めた行NOを実行
したと認識することで、プログラムに変更を加えること
なくカバレージ計測を可能としたことを特徴とするテス
トカバレージ計測ツール。1. In test coverage, which determines whether the program has been sufficiently tested by measuring which part of the program has been executed, the behavior of the execution module is measured using information attached to the execution module created by compiling and linking the program. First, a break instruction that temporarily stops the operation is embedded in the address corresponding to the line number of the program, and when the execution module is running, the corresponding line number is found from the address where the break occurred, and the found line number is recognized as being executed. This test coverage measurement tool is characterized by being able to measure coverage without making any changes to the program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63175036A JPH0225939A (en) | 1988-07-15 | 1988-07-15 | Test coverage measuring tool |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63175036A JPH0225939A (en) | 1988-07-15 | 1988-07-15 | Test coverage measuring tool |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0225939A true JPH0225939A (en) | 1990-01-29 |
Family
ID=15989096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63175036A Pending JPH0225939A (en) | 1988-07-15 | 1988-07-15 | Test coverage measuring tool |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0225939A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007004793A (en) * | 2005-06-20 | 2007-01-11 | Seagate Technology Llc | Method and device for measuring code coverage for embedded processor system |
-
1988
- 1988-07-15 JP JP63175036A patent/JPH0225939A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007004793A (en) * | 2005-06-20 | 2007-01-11 | Seagate Technology Llc | Method and device for measuring code coverage for embedded processor system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8266608B2 (en) | Post-compile instrumentation of object code for generating execution trace data | |
CA2332650C (en) | Software analysis system having an apparatus for selectively collecting analysis data from a target system executing software instrumented with tag statements and method for use thereof | |
US5987250A (en) | Transparent instrumentation for computer program behavior analysis | |
EP0753814B1 (en) | Determining dynamic properties of programs | |
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 | |
CN110580226A (en) | object code coverage rate testing method, system and medium for operating system level program | |
Saff et al. | Continuous testing in Eclipse | |
US20110314338A1 (en) | Data collisions in concurrent programs | |
US5132972A (en) | Assembly language programming potential error detection scheme sensing apparent inconsistency with a previous operation | |
US20080127118A1 (en) | Method and system for dynamic patching of software | |
JP2007149089A (en) | Software program equipped with alternative function library | |
JPH0225939A (en) | Test coverage measuring tool | |
CN115658507A (en) | Analysis system for real-time embedded software source code coverage rate | |
JPS59202548A (en) | Debugging device | |
JPH05324402A (en) | Test state measuring system for program | |
JPH04307636A (en) | Program test system | |
Kranzlmüller et al. | Using control and data flow analysis for race evaluation | |
JPH11102306A (en) | Emulator | |
JPH04358232A (en) | Function testing method for information processor | |
Cunha et al. | A distributed debugging tool for a parallel software engineering environment | |
JP2002278792A (en) | Method for testing software | |
JPH02226441A (en) | Software test device | |
JPH03245241A (en) | Program test system | |
JPH05313941A (en) | Computer program debugging method |