JP4483163B2 - Program test debugging device - Google Patents
Program test debugging device Download PDFInfo
- Publication number
- JP4483163B2 JP4483163B2 JP2002264896A JP2002264896A JP4483163B2 JP 4483163 B2 JP4483163 B2 JP 4483163B2 JP 2002264896 A JP2002264896 A JP 2002264896A JP 2002264896 A JP2002264896 A JP 2002264896A JP 4483163 B2 JP4483163 B2 JP 4483163B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- coverage
- instruction
- test
- file
- 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.)
- Expired - Lifetime
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、業務分野で利用されるソフトウエアを含むソフトウェア開発におけるテストに関し、特に、テスト工程の工数を削減することに好適なテストデバッグ方法に関する。
【0002】
【従来の技術】
従来のテストデバッグ方法もしくは装置は、既存の完成又は半完成プログラムに対し、カバレージ情報蓄積ファイルを設け、このカバレージ情報蓄積ファイルに全命令文別にテスト実行済みの情報を設定したあと、当該プログラムの変更に対しては変更部分のカバレージ情報についてのみテスト未実行状態に設定し、変更部分の命令文のみをテスト対象として実行させることを特徴とする差分テストデバッグ支援方法が知られている(例えば、特開平6−103113号公報参照)。
【0003】
しかしながら、当該発明においてはその公知の実施例を含め既存の完成又は半完成プログラムに対し、カバレージ情報を取得するための何らかの処置を施し、カバレージの取得結果を該カバレージ情報蓄積ファイルに格納する方法については明らかにされていない。従来技術によれば、当業者にC0メジャー、C1メジャーとして知られる該カバレージ情報取得作業は、当業者にテストケースとして知られる該プログラムへの引渡し、参照データ群をもとに、机上デバッグ等として知られる人手による該プログラムの全命令文一つ一つに手作業による確認作業が必要であり、テスト作業工数が大きくなるという問題点があった。
【0004】
【特許文献1】
特開平6―103113号公報(要約、図2)
【0005】
【発明が解決しようとする課題】
本発明の課題は、システム開発作業のテストデバッグにおいて、テスト工数を削減する為に、該プログラムの全命令文のテスト実行状況チェックを手作業にかえてコンパイラ等で機械的に実施させることにより、テストデバッグの作業工数を削減することによりプログラム開発の生産性の向上を図ることにある。
【0006】
【課題を解決するための手段】
上記目的は、
(1)一つのコンパイラ仕様に対応する宣言文と命令文とコメント等から構成される既存の完成又は半完成プログラムを格納するファイル等の手段(ここではテスト対象プログラム格納ファイルと呼ぶ)と、
(2)テスト対象プログラム格納ファイルの内容を複写して格納するファイル等の手段(ここではカバレージテストレディープログラムファイルと呼ぶ)と、
(3)カバレージテストレディープログラムファイルに格納された既存の完成又は半完成プログラムを、「命令文」単位と「分岐等を含む命令文」は「命令文及びその内部における分岐の単位」に解析し、該「命令文」と「分岐等を含む命令文は命令文及びその内部における分岐の単位」に該プログラム内でユニークな識別記号(ここではプログラム内命令分岐一連番号と呼ぶ)を付加し、カバレージ情報蓄積ファイルに、命令もしくは命令内部分岐等の分類結果を示す記号(ここではC0対象C1対象分類記号と呼ぶ)とともに格納(ここではソース解析機能と呼ぶ)すると共に、該カバレージテストレディープログラムファイル内にプログラム内命令分岐一連番号ごとに以下(5)に述べるコンパイラが解釈できる形式でカバレージ通過関数を生成してプログラムの一部として埋め込む手段(ここではソース解析・埋め込みプログラムと呼ぶ)と、
(4)該プログラム内命令分岐一連番号対応に該C0対象C1対象分類記号と以下のカバレージ通過関数の実行結果を関連付けて記録するファイル等の手段(ここではカバレージ情報蓄積ファイルと呼ぶ)と、
(5)該コンパイラ等に解釈可能な形式で存在し、該プログラム内命令分岐一連番号単位にユニークに生成され、実行された場合に記号(ここではカバレージ通過記号と呼ぶ)を該カバレージ情報蓄積ファイルに格納する関数等(ここではカバレージ通過関数と呼ぶ)の手段とを設けることにより達成される。
【0007】
【発明の実施の形態】
以下、本発明を一実施例に基づいて詳細に説明する。
図1は本発明を実施する計算機の機器構成図であり、CPU101,メモリ102,外部記憶装置103,入力装置104,表示装置105,プリンタ106とから構成されている。
【0008】
図2は本実施例の概要図である。202は、図3の説明として後述するテスト対象プログラム格納ファイルに格納されている、テスト対象である既存の完成又は半完成プログラムであるソースプログラム201を参照し、ソースプログラム201の内容を複写して図7の説明として後述するカバレージテストレディープログラムファイル203に格納する機能、及び該機能によりカバレージテストレディープログラムファイル203に格納された既存の完成又は半完成プログラムであるソースプログラムに対し、図4の説明として後述するように、該既存の完成又は半完成プログラムであるソースプログラムを分析し「命令文」と「分岐等を含む命令文」は「命令文及びその内部における分岐の単位」に後述するプログラム内命令分岐一連番号を付加し、プログラム内命令分岐一連番号ごとに、該コンパイラが解釈できる形式でカバレージ通過関数を生成して、カバレージテストレディープログラムファイル203にプログラムの一部として追記するとともに該カバレージテストレディープログラムファイル203に格納された既存の完成又は半完成プログラムに対する分析結果としてプログラム内命令分岐一連番号とC0対象C1対象分類記号を図5の説明として後述するカバレージ情報蓄積ファイル206に格納する機能を実現するプログラムよりなる。ここで202を解析記録プログラムと呼ぶことにする。
【0009】
207は、オブジェクトモジュール生成手順を示す。 ここではカバレージテストレディープログラムファイル203を参照して、コンパイラを使ってオブジェクトモジュール208を生成している。コンパイラを使用してオブジェクトモジュールを生成する方法は当業者には周知であるため、煩雑をさけるために説明を省略するがここではコンパイル処理と呼ぶ。
【0010】
209は、テスト実行手順である。生成されたオブジェクトモジュール208をテストケースに対応する環境とリンクしてオブジェクトモジュール208を実行する手順である。テストケースに対応する環境作成は当業者には容易であると考えられるためここでの説明は省略する。
【0011】
209は、カバレージテストレディープログラムファイル203に追記された上記及び図7の説明として後述するカバレージ通過関数が実行されることにより、図7の説明として後述するカバレージ通過記号を上記及び図4の説明として後述する該プログラム内命令分岐一連番号対応に上記及び後述のテストケース記号と上記及び後述のC0対象C1対象分類記号とカバレージ通過関数の実行結果を関連付けてカバレージ情報蓄積ファイル206に記録する処理である。ここでは209をカバレージ用データ取得処理と呼ぶことにする。
【0012】
図3は、ソースプログラム201を格納するファイルであるテスト対象プログラム格納ファイルを示す図で、301はテスト対象プログラム格納ファイルを示し、302は図2の201として示したテスト対象である既存の完成又は半完成プログラムであるソースプログラムを示す。
【0013】
図4は、図2の202を実施するための処理手順を示すフローチャートであり、以下説明していく。
【0014】
401は、テスト対象プログラム格納ファイルに格納されたソースプログラム201を複写し、カバレージテストレディープログラムファイル203に格納する処理を示す。この処理方法は当業者に自明である。この処理を命令文複写処理と呼ぶ。
【0015】
402は、カバレージテストレディープログラムファイル203に格納された既存の完成又は半完成プログラムを、命令文単位に取り出し、「命令文」と「分岐等を含む命令文」は「命令文及びその内部における分岐の単位」に解析し、「命令文」単位と「分岐等を含む命令文は命令文及びその内部における分岐の単位」にプログラム内命令分岐一連番号を付加する処理を示す。ここでは、予め該言語仕様に存在するすべての分岐文種類を網羅するように洗い出して格納しておき、ここで切り出した命令文に対し、格納された該言語仕様に存在するすべての分岐文と一致するかどうかにより識別を行うことで、分岐文である場合はプログラム内命令分岐一連番号上記及び後述のC0対象C1対象分類記号を付加することにより、「命令文」と「分岐等を含む命令文」は「命令文及びその内部における分岐の単位」に解析する処理を行っている。解析結果に対して一連番号を付加する処理は当業者ならば容易に実施できると思われるため、説明煩雑化を避けるため省略する。この処理をプログラム内命令分岐一連番号付加処理と呼ぶ。
【0016】
403は、402ステップにおいて命令文単位に取り出し、プログラム内命令分岐一連番号を付加した「命令文」と「分岐等を含む命令文」は「命令文及びその内部における分岐の単位」に対し、C0対象C1対象分類記号と命名するデータとして、「命令文」に対しては当業者にC0カバレージとして知られるC0を意味するC0をデータとして割り当て、「命令文の内部における分岐の単位」には当業者にC1カバレージとして知られるC1をデータとして割り当てる処理と、前述のプログラム内命令分岐一連番号と同時にカバレージ情報蓄積ファイル206に格納する処理を実施している。尚、ここでは一つの命令文と一つの分岐をかねる命令文と分岐の単位にはC0カバレージとC1カバレージの双方の対象になる意味を含めてC0C1なるデータを割り当てている。この処理を実現するプログラムはこの記述さえ読めば当業者ならプログラムを容易に作成できると考えられるためより詳細な作成方法の説明は煩雑を避けるため省略する。403の処理をC0対象C1対象分類記号格納処理と呼ぶ。
【0017】
404は、カバレージテストレディープログラムファイル203に格納された既存の完成又は半完成プログラムに、「命令文」及び「分岐等を含む命令文は命令文及びその内部における分岐の単位」に付加されたプログラム内命令分岐一連番号対応に、「該プログラム内命令分岐一連番号情報を内部に持ち、実行時に前述のカバレージ情報蓄積ファイル206に対し内部のプログラム内命令分岐一連番号対応を参照して(以下カバレージ通過記号と呼ぶ一つの記号)を記録する機能を持ち、前述のコンパイラ等に解釈可能な形式で存在する」カバレージ通過関数を生成して追記する処理である。ここで述べた仕様を提示すれば当業者ならば容易に該カバレージ通過関数をプログラムできると考えられる。404をカバレージ通過関数追記処理と呼ぶ。
【0018】
405は、カバレージテストレディープログラムファイル203に格納された既存の完成又は半完成プログラムに対し、401、402、403、404を全て完了していない命令文が残っているかかどうかを判定し、残っていなければ終了し、残っていれば401
から繰り返し処理を行っている。405を命令文解析完了判定処理と呼ぶ。
【0019】
図5に、本実施例のカバレージ情報蓄積ファイル206の構造を示す。カバレージ情報蓄積ファイル505はプログラム内命令分岐一連番号501、テストケース記号502、C0対象C1対象分類記号503、カバレージ通過記号504の4つの項目より構成されている。
【0020】
プログラム内命令分岐一連番号501には、カバレージテストレディープログラムファイル203に格納された既存の完成又は半完成プログラムにおける、「命令文」単位もしくは「分岐等を含む命令文」は「命令文及びその内部における分岐の単位」に対し付加したプログラム内命令分岐一連番号を格納する。
【0021】
テストケース記号502は、ソースプログラム201をテストするために当業者の間ではテストケースとして知られ、オブジェクトモジュール208を実行する際に必要なテストケースの記号名称を格納している。ここでは一つのテストケース対応にテストケース対応記号を入力する方法は請求項の記述と直接には関係しないため説明を省略する。
【0022】
C0対象C1対象分類記号格納欄503は、C0対象C1対象分類記号を格納する。
【0023】
カバレージ通過記号格納欄504には、カバレージテストレディープログラムファイル203に埋め込まれたカバレージ通過関数がテスト実行時に前述のカバレージ通過記号を記入するためのものである。
【0024】
図6は、テストケースファイルを示す図である。601は全体構成を602は前述のテストケース記号を、603はテストケースの管理用コメントを記録する。プログラム実行テスト時にテストケース対応に作成するファイル等の作成方法は当業者には自明なためここでは煩雑を避けるため省略する。
【0025】
図7に、テスト対象プログラム格納ファイルに格納されたソースプログラムの一例を示す。
【0026】
図8に、図7の一例を含んだテスト対象プログラム格納ファイルに格納されたソースプログラムを複写し、カバレージ通過関数とともに格納されたカバレージテストレディープログラムファイルの図7に相当する部分の一例を示す。網掛けとなっている部分は、カバレージ通過関数を示す。カバレージ通過関数はプログラム内命令分岐一連番号対応に、「該プログラム内命令分岐一連番号情報を内部に持ち、実行時に前述のカバレージ情報蓄積ファイル206に対し内部のプログラム内命令分岐一連番号対応を参照してカバレージ通過記号と呼ぶ一つの記号を記録する機能を持ち、前述のコンパイラ等に解釈可能な形式」で存在している。
【0027】
図9は、図7に示したテスト対象プログラム格納ファイルに格納されたソースプログラムの一例に対し、202で示した解析記録プログラムを実行した結果生成されたカバレージ情報蓄積ファイル206の一例である。ここでは1101プログラム内命令分岐一連番号にデータ1,2,3,4,5,6,7が生成され、1102テストケース記号にはデータ2,2,2,2,2,2,2が事前に格納されている。プログラム内命令分岐一連番号に対し、前述の通り解析記録プログラムが1103のC0対象C1対象分類記号をC0、C1、C0C1として格納している。1104のカバレージ通過記号には解析記録プログラム実施段階ではデータは入力されていない。
【0028】
図10は、209で示したカバレージ用データ取得処理を実行した結果としての情報蓄積ファイル206の一例である。
【0029】
図10には、209で示したテストの実行結果が記録されている。1201のプログラム内命令分岐一連番号、1202のテストケース記号、1203のC0対象C1対象分類記号のデータに加えて1204のカバレージ通過記号も格納されている。
【0030】
ここで、C0テストカバレージは分子をテスト実行済み命令文数とし分母を全命令文数とする百分率として定義され、C1テストカバレージの算出は分子をテスト実行済み分岐数とし分母を全分岐数とする百分率により定義されている。従って図10の要素からC0テストカバレージ、C1テストカバレージは容易に計算できることは当業者には自明である。このためC0テストカバレージ及びC1テストカバレージを図10から導くための計算及び表示方法に関する説明は煩雑を避けるため省略する。
【0031】
以上により、(1)一つのコンパイラ仕様に対応する宣言文と命令文とコメント等から構成される既存の完成又は半完成プログラムを格納するファイル等の手段(ここではテスト対象プログラム格納ファイルと呼ぶ)と、(2)テスト対象プログラム格納ファイルの内容を複写して格納するファイル等の手段(ここではカバレージテストレディープログラムファイルと呼ぶ)と、(3)カバレージテストレディープログラムファイルに格納された既存の完成又は半完成プログラムを、「命令文」単位と「分岐等を含む命令文」は「命令文及びその内部における分岐の単位」に解析し、該「命令文」と「分岐等を含む命令文は命令文及びその内部における分岐の単位」に該プログラム内でユニークな識別記号(ここではプログラム内命令分岐一連番号と呼ぶ)を付加し、カバレージ情報蓄積ファイルに、命令もしくは命令内部分岐等の分類結果を示す記号(ここではC0対象C1対象分類記号と呼ぶ)とともに格納(ここではソース解析機能と呼ぶ)すると共に該カバレージテストレディープログラムファイル内にプログラム内命令分岐一連番号ごとに以下(5)に述べるコンパイラが解釈できる形式でカバレージ通過関数を生成してプログラムの一部として埋め込む手段(ここではソース解析・埋め込みプログラムと呼ぶ)と、(4)該プログラム内命令分岐一連番号対応に該C0対象C1対象分類記号と以下のカバレージ通過関数の実行結果を関連付けて記録するファイル等の手段(ここではカバレージ情報蓄積ファイルと呼ぶ)と、(5)該コンパイラ等に解釈可能な形式で存在し、該プログラム内命令分岐一連番号単位にユニークに生成され、実行された場合に記号(ここではカバレージ通過記号と呼ぶ)を該カバレージ情報蓄積ファイルに格納する関数等(ここではカバレージ通過関数と呼ぶ)の手段とを実現している。
【0032】
本実施形態によれば(1),(2)及び(3)によりカバレージ情報蓄積ファイルに、プログラム内命令分岐一連番号と共にC0対象C1対象分類記号とともに格納(ここではソース解析機能と呼ぶ)するため、テストカバレージ対象を自動的に網羅抽出作表することが可能となる。また(1)、(2)、(3)、(4)、及び(5)によりシステム開発作業のテストデバッグにおいて、C0カバレージ、C1カバレージの取得のために対象プログラムのテスト実行状況チェックを手作業にかえてコンパイラ等で機械的に実施させることにより、テストデバッグの作業工数を削減することによりプログラム開発の生産性の向上を図ることができる。
【0033】
また、テストケース記号単位にカバレージ通過記号を管理することにより、テストケースの良否を判定することもできるという効果もある。
【0034】
【発明の効果】
本発明によれば、より容易にソフトウエアのデバッグを支援することが可能になる。
【図面の簡単な説明】
【図1】本実施例の機器構成図
【図2】本実施例の概要図
【図3】本実施例のテスト対象プログラム格納ファイル
【図4】本実施例の解析記録プログラム
【図5】本実施例のカバレージ情報蓄積ファイル
【図6】テストケースファイル
【図7】本実施例のテスト対象プログラムの一例
【図8】本実施例のカバレージテストプログラムファイルの一例
【図9】本実施例のカバレージ情報蓄積ファイルの一例(解析記録プログラム実施後)
【図10】本実施例のカバレージ情報蓄積ファイルの一例欠番(カバレージ用データ取得処理実施後)
【符号の説明】
101 CPU
102 メモリ
103 外部記憶装置
104 入力装置
105 表示装置
106 プリンタ
201 ソースプログラム
202 解析記録プログラム
203 カバレージテストレディープログラム格納ファイル
206 カバレージ情報蓄積ファイル
207 コンパイル処理
208 オブジェクトモジュール
209 カバレージ用データ取得処理
301 テスト対象プログラム格納ファイル
302 ソースプログラム
401 命令複写処理
402 プログラム内命令分岐一連番号付加処理
403 C0対象C1対象分類記号格納処理
404 カバレージ通過関数追記処理
405 命令文解析完了判定処理
501 プログラム内命令分岐一連番号
502 テストケース記号
503 C0対象C1対象分類記号
504 カバレージ通過記号
505 カバレージ情報蓄積ファイル
601 テストケースファイル
602 テストケース記号
603 テストケースの管理コメント
1101 プログラム内命令分岐一連番号
1102 テストケース記号
1103 C0対象C1対象分類記号
1104 カバレージ通過記号
1201 プログラム内命令分岐一連番号
1202 テストケース記号
1203 C0対象C1対象分類記号
1204 カバレージ通過記号[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a test in software development including software used in a business field, and more particularly to a test debugging method suitable for reducing the number of steps in a test process.
[0002]
[Prior art]
A conventional test debugging method or apparatus provides a coverage information accumulation file for an existing completed or semi-completed program, sets information that has been executed for each instruction sentence in the coverage information accumulation file, and then changes the program. In contrast, there is known a differential test debugging support method characterized in that only the coverage information of the changed part is set to a test unexecuted state and only the changed part of the statement is executed as a test target (for example, (See Kaihei 6-103113).
[0003]
However, in the present invention, a method of performing some measures for acquiring coverage information on an existing completed or semi-completed program including known examples and storing the coverage acquisition result in the coverage information accumulation file. Is not disclosed. According to the prior art, the coverage information acquisition work known to those skilled in the art as C0 major and C1 major is carried out as a desktop debugging, etc. There has been a problem that the check work by manual work is required for every command statement of the program by a known manpower, which increases the number of test work steps.
[0004]
[Patent Document 1]
JP-A-6-103113 (summary, FIG. 2)
[0005]
[Problems to be solved by the invention]
An object of the present invention is to perform a test execution status check of all the statements of the program mechanically by a compiler or the like in order to reduce test man-hours in test debugging of system development work, The goal is to improve the productivity of program development by reducing the number of test debugging work steps.
[0006]
[Means for Solving the Problems]
The above purpose is
(1) means such as a file for storing an existing completed or semi-completed program composed of a declaration statement, a command statement and a comment corresponding to one compiler specification (herein called a test target program storage file);
(2) means such as a file for copying and storing the contents of the test target program storage file (herein called the coverage test ready program file);
(3) Analyzing the existing completed or semi-completed program stored in the coverage test ready program file into “instruction statement” units and “instruction statements including branches” as “instruction statements and branch units within them”. In addition, an identifier unique to the program (herein referred to as an instruction branch serial number in the program) is added to the “instruction sentence” and “an instruction sentence including a branch or the like is an instruction sentence and a unit of branch in the instruction sentence”. The coverage information accumulation file is stored together with a symbol indicating a result of classification such as an instruction or an instruction internal branch (herein referred to as a C0 target C1 target classification symbol) (herein referred to as a source analysis function), and the coverage test ready program file A coverage passing function is generated for each instruction branch sequence number in the program in a format that can be interpreted by the compiler described in (5) below. And means for embedding a part of the program and (referred to herein as the source analysis-embedded program),
(4) means such as a file (herein referred to as a coverage information storage file) for recording the C0 target C1 target classification symbol and the execution result of the following coverage passing function in association with the instruction branch serial number in the program;
(5) A coverage information storage file that exists in a format that can be interpreted by the compiler, etc., is uniquely generated for each instruction branch serial number in the program, and is executed when called (coverage passing symbol). This is achieved by providing means such as a function for storing the function (herein referred to as a coverage passing function).
[0007]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, the present invention will be described in detail based on an embodiment.
FIG. 1 is a block diagram showing the configuration of a computer that implements the present invention, which comprises a
[0008]
FIG. 2 is a schematic diagram of this embodiment. 202 refers to a
[0009]
[0010]
[0011]
209 is a coverage passing function described later as the description of FIG. 7 by executing the coverage passing function described later as the description of FIG. 7 and the description added to the coverage test
[0012]
FIG. 3 is a diagram showing a test target program storage file that is a file for storing the
[0013]
FIG. 4 is a flowchart showing a processing procedure for carrying out 202 of FIG. 2 and will be described below.
[0014]
[0015]
402, an existing completed or semi-completed program stored in the coverage test
[0016]
403 is extracted in units of instruction statements in 402 step, and “instruction sentence” and “instruction sentence including branch etc.” to which the instruction branch serial number in the program is added are C0. As data named the target C1 target classification symbol, C0 meaning C0 known to those skilled in the art as C0 coverage is assigned to “command sentence” as data, and “branch unit within the command sentence” is assigned to this “command sentence”. A process of allocating C1 known as C1 coverage to the trader as data and a process of storing in the coverage
[0017]
404 is a program that is added to the existing completed or semi-completed program stored in the coverage test
[0018]
405 determines whether there is a statement that has not completed all 401, 402, 403, 404 for the existing completed or semi-completed program stored in the coverage test
It repeats processing from. Reference numeral 405 is referred to as a statement analysis completion determination process.
[0019]
FIG. 5 shows the structure of the coverage
[0020]
In the instruction
[0021]
The
[0022]
The C0 target C1 target classification
[0023]
In the coverage passage symbol storage field 504, the coverage passage function embedded in the coverage test
[0024]
FIG. 6 is a diagram showing a test case file. Reference numeral 601 records the overall configuration, 602 records the test case symbols described above, and 603 records test case management comments. A method for creating a file or the like to be created for a test case during a program execution test is obvious to those skilled in the art, and is omitted here to avoid complications.
[0025]
FIG. 7 shows an example of a source program stored in the test target program storage file.
[0026]
FIG. 8 shows an example of a portion corresponding to FIG. 7 of the coverage test ready program file that is copied from the source program stored in the test target program storage file including the example of FIG. 7 and stored together with the coverage passing function. The shaded portion indicates the coverage passing function. The coverage passing function corresponds to the instruction branch sequence number in the program. “The instruction branch sequence number information in the program is stored internally, and the above-mentioned coverage
[0027]
FIG. 9 is an example of the coverage
[0028]
FIG. 10 is an example of the
[0029]
In FIG. 10, the execution result of the test indicated by 209 is recorded. In addition to 1201 in-program instruction branch serial number, 1202 test case symbol, 1203 C0 target C1 target classification symbol data, 1204 coverage passing symbol is also stored.
[0030]
Here, C0 test coverage is defined as a percentage in which the numerator is the number of test executed instructions and the denominator is the total number of instructions, and the calculation of C1 test coverage is the number of test executed branches and the denominator is the total number of branches. It is defined by percentage. Accordingly, it is obvious to those skilled in the art that the C0 test coverage and the C1 test coverage can be easily calculated from the elements shown in FIG. For this reason, the description regarding the calculation and display method for deriving the C0 test coverage and the C1 test coverage from FIG. 10 is omitted to avoid complexity.
[0031]
As described above, (1) means such as a file for storing an existing completed or semi-completed program composed of a declaration statement, a command statement, a comment, etc. corresponding to one compiler specification (herein called a test target program storage file) And (2) means such as a file to copy and store the contents of the test target program storage file (herein called the coverage test ready program file), and (3) the existing completion stored in the coverage test ready program file Or, the semi-completed program is analyzed into “instruction sentence” and “instruction sentence including branch” as “instruction sentence and branch unit in the inside”, and the “instruction sentence” and “instruction sentence including branch” are A unique identification symbol in the program (herein referred to as an instruction branch serial number in the program) Is stored in the coverage information storage file together with a symbol indicating the result of classification such as an instruction or an instruction internal branch (herein referred to as C0 target C1 target classification symbol) (herein referred to as a source analysis function) and the coverage test. A means for generating a coverage passing function in a format that can be interpreted by the compiler described in (5) below for each instruction branch sequence number in the program in the ready program file and embedding it as a part of the program (here called the source analysis / embedding program) And (4) means such as a file (herein referred to as a coverage information storage file) for recording the C0 target C1 target classification symbol and the execution result of the following coverage passing function in association with the instruction branch serial number in the program. (5) exists in a format that can be interpreted by the compiler, etc. A function that stores a symbol (here called the coverage passing symbol) in the coverage information storage file when it is generated and executed uniquely for each serial number is realized (here called the coverage passing function). is doing.
[0032]
According to the present embodiment, according to (1), (2) and (3), in the coverage information accumulation file, together with the instruction branch serial number in the program and the C0 target C1 target classification symbol (herein called the source analysis function) Thus, it is possible to automatically cover and extract test coverage objects. In addition, in (1), (2), (3), (4), and (5), in the test debugging of the system development work, the test execution status check of the target program is manually performed to obtain C0 coverage and C1 coverage. Instead, it is possible to improve the productivity of program development by reducing the number of man-hours for test debugging by mechanically executing it with a compiler or the like.
[0033]
In addition, it is possible to determine whether the test case is good or bad by managing the coverage passing symbols for each test case symbol.
[0034]
【The invention's effect】
According to the present invention, software debugging can be supported more easily.
[Brief description of the drawings]
[Fig. 1] Device configuration diagram of this embodiment [Fig. 2] Overview diagram of this embodiment [Fig. 3] Test target program storage file of this embodiment [Fig. 4] Analysis recording program of this embodiment [Fig. Coverage information accumulation file of embodiment [FIG. 6] Test case file [FIG. 7] Example of test target program of this embodiment [FIG. 8] Example of coverage test program file of this embodiment [FIG. 9] Coverage of this embodiment An example of an information storage file (after executing the analysis recording program)
FIG. 10 is an example of a missing number of coverage information accumulation file according to the present embodiment (after performing coverage data acquisition processing).
[Explanation of symbols]
101 CPU
102 Memory 103
Claims (2)
前記テスト対象プログラム格納ファイルの内容を複写して格納するカバレージテストレディープログラムファイルと、
前記カバレージテストレディープログラムファイルに格納された既存の完成又は半完成プログラムに含まれる各命令文について、当該命令文単位に、また当該命令文に命令内部分岐が含まれる場合には前記命令文単位および当該命令内部分岐単位に、前記既存の完成又は半完成プログラム内でユニークな識別記号であるプログラム内命令分岐一連番号を付加する手段と、
カバレージ情報蓄積ファイルに、前記命令文もしくは前記命令内部分岐を識別するC0対象C1対象分類記号に前記プログラム内命令分岐一連番号を関連付けて格納することで、前記テスト対象プログラム格納ファイルの内容についての前記カバレージテストレディープログラムファイルへの格納と共に前記カバレージ情報蓄積ファイルへの格納を実現する手段と、
前記カバレージテストレディープログラムファイル内に、前記プログラム内命令分岐一連番号ごとにコンパイラが解釈できる形式でカバレージ通過関数を生成して、当該カバレージ通過関数を前記既存の完成又は半完成プログラムに当該既存の完成又は半完成プログラムの一部として埋め込み、コンパイラに解釈可能な形式で存在するソース解析・埋め込みプログラムを格納する手段と、
前記ソース解析・埋め込みプログラムにより、該プログラム内命令分岐一連番号単位にユニークに生成されるカバレージ通過関数であって、当該ソース解析・埋め込みプログラムが実行されたことを示す記号であるカバレージ通過記号をカバレージ情報蓄積ファイルに格納するカバレージ通過関数を算出する手段とを有し、
前記カバレージ情報蓄積ファイルには、前記ソース解析・埋め込みプログラムにおける前記プログラム内命令分岐一連番号対応に該C0対象C1対象分類記号と前記カバレージ通過関数の実行結果を関連付けて記録することを特徴とするプログラムテストデバッグ装置。A test target program storage file for storing an existing completed or semi-completed program including at least a declaration statement, a command statement, and a comment corresponding to one compiler specification;
A coverage test ready program file for copying and storing the contents of the test target program storage file;
For each instruction sentence included in an existing completed or semi-completed program stored in the coverage test ready program file, and in the case where the instruction sentence includes an instruction internal branch, the instruction sentence unit and in the instruction inside the branch unit, and means for adding program within the instruction branches sequence number is a unique identification symbol within the existing finished or semi-finished program,
The coverage information storage file, by storing in association with the program within the instruction branches sequence number C0 object C1 target classification symbol identifying the statement or the instruction inner branch, said about the contents of the test program storage file Means for realizing storage in the coverage information accumulation file together with storage in the coverage test ready program file ;
In the coverage test ready program file, a coverage passing function is generated in a format that can be interpreted by the compiler for each instruction branch serial number in the program, and the coverage passing function is converted into the existing completed or semi-completed program. Or means for storing a source analysis / embedding program that is embedded as a part of a semi-finished program and exists in a format that can be interpreted by a compiler;
A coverage passing function that is uniquely generated for each instruction branch sequence number in the program by the source analysis / embedding program, and is a symbol indicating that the source analysis / embedding program has been executed. Means for calculating a coverage passing function to be stored in the information accumulation file,
In the coverage information accumulation file, the C0 target C1 target classification symbol and the execution result of the coverage passing function are recorded in association with the instruction branch sequence number in the program in the source analysis / embedding program. Test debug device.
予め、前記既存の完成又は半完成プログラムの言語仕様に存在する分岐が含まれる命令文である分岐文の種類のすべてを格納する手段をさらに設け、
前記分割する手段は、分割された前記命令文に対し、格納された前記分岐文の種類と一致するかを比較し、当該比較が一致するか否かにより、当該命令文に分岐が含まれるかを判断することを特徴とするプログラムテストデバッグ装置。 In the program test debugging apparatus according to claim 1 ,
A means for storing in advance all types of branch statements that are imperative statements including branches existing in the language specification of the existing completed or semi-completed program,
The means for dividing compares whether the instruction statement divided matches the type of the stored branch statement, and whether the instruction statement includes a branch depending on whether the comparison matches. A program test debugging apparatus characterized by determining
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002264896A JP4483163B2 (en) | 2002-09-11 | 2002-09-11 | Program test debugging device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002264896A JP4483163B2 (en) | 2002-09-11 | 2002-09-11 | Program test debugging device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004102742A JP2004102742A (en) | 2004-04-02 |
JP4483163B2 true JP4483163B2 (en) | 2010-06-16 |
Family
ID=32264184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002264896A Expired - Lifetime JP4483163B2 (en) | 2002-09-11 | 2002-09-11 | Program test debugging device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4483163B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5682109B2 (en) * | 2009-11-30 | 2015-03-11 | 富士通株式会社 | Coverage information generation program, coverage information generation apparatus, and coverage information generation method |
JP5764521B2 (en) * | 2012-04-17 | 2015-08-19 | 株式会社日立製作所 | Coverage information acquisition method |
-
2002
- 2002-09-11 JP JP2002264896A patent/JP4483163B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2004102742A (en) | 2004-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9898387B2 (en) | Development tools for logging and analyzing software bugs | |
CN101739339B (en) | Program dynamic dependency relation-based software fault positioning method | |
US20090187892A1 (en) | Apparatus and program for test case generation | |
US20120185669A1 (en) | Program inspection method and non-transitory, computer readable storage medium storing inspection program | |
US8145992B2 (en) | Validation assisted document conversion design | |
Krüger | Understanding the re-engineering of variant-rich systems: an empirical work on economics, knowledge, traceability, and practices | |
US20090217259A1 (en) | Building Operating System Images Based on Applications | |
JP6651977B2 (en) | Information processing apparatus, compiling method, and compiling program | |
JP4874277B2 (en) | Automated test execution system | |
JP4791660B2 (en) | Data flow automatic generation apparatus, data flow automatic generation method, and computer-readable recording medium | |
JP4483163B2 (en) | Program test debugging device | |
JP5405684B1 (en) | Source program programming language converter | |
JP2005338987A (en) | Exception test support program and device | |
JP6812637B2 (en) | Programmable controller system, its development support device, target device | |
JP2000357097A (en) | Program managing method | |
JP5764521B2 (en) | Coverage information acquisition method | |
JPH10293683A (en) | Device for comparatively analyzing program, method therefor and mechanically readable recording medium recording comparative analytic program for program | |
JP3094475B2 (en) | Program verification method | |
JP2004192139A (en) | Debug device, debug method and recording medium | |
WO2024195336A1 (en) | Traceability information extraction device and traceability information verification device | |
JP3608993B2 (en) | Compiler device and recording medium recording compiler program | |
JP2002014847A (en) | Device for checking program and method for the same and recording medium with checking program stored | |
JP2008071065A (en) | Compile device, method, program and storage medium for performing in-line expansion | |
JP2002082811A (en) | Compiling method and recording medium | |
US20030167457A1 (en) | System and method for providing an optimizer display tool |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050701 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060419 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080207 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081104 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081224 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090127 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090324 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090421 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090710 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20090728 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090908 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091104 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100126 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100205 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100302 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100315 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4483163 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130402 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140402 Year of fee payment: 4 |
|
EXPY | Cancellation because of completion of term |