JP4483163B2 - Program test debugging device - Google Patents

Program test debugging device Download PDF

Info

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
Application number
JP2002264896A
Other languages
Japanese (ja)
Other versions
JP2004102742A (en
Inventor
辰弥 三好
立夫 大里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2002264896A priority Critical patent/JP4483163B2/en
Publication of JP2004102742A publication Critical patent/JP2004102742A/en
Application granted granted Critical
Publication of JP4483163B2 publication Critical patent/JP4483163B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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 CPU 101, a memory 102, an external storage device 103, an input device 104, a display device 105, and a printer 106.
[0008]
FIG. 2 is a schematic diagram of this embodiment. 202 refers to a source program 201 that is an existing completed or semi-completed program to be tested, which is stored in a test target program storage file, which will be described later with reference to FIG. 3, and copies the contents of the source program 201. FIG. 4 explains the function stored in the coverage test ready program file 203, which will be described later as an explanation of FIG. 7, and the source program that is an existing completed or semi-completed program stored in the coverage test ready program file 203 by the function. As will be described later, the source program which is the existing completed or semi-completed program is analyzed, and “instruction sentence” and “instruction sentence including branch etc.” are described in “instruction sentence and branch unit in the inside”. An internal instruction branch sequence number is added, and the program internal instructions For each serial number, a coverage passing function is generated in a format that can be interpreted by the compiler, added to the coverage test ready program file 203 as a part of the program, and existing completion or stored in the coverage test ready program file 203 As a result of analysis for the semi-completed program, the program includes a program that realizes a function of storing an instruction branch serial number and a C0 target C1 target classification symbol in a coverage information accumulation file 206 described later as an explanation of FIG. Here, 202 is referred to as an analysis recording program.
[0009]
Reference numeral 207 denotes an object module generation procedure. Here, the object module 208 is generated using a compiler with reference to the coverage test ready program file 203. Since a method for generating an object module using a compiler is well known to those skilled in the art, a description thereof will be omitted to avoid complication, but here it is referred to as a compilation process.
[0010]
Reference numeral 209 denotes a test execution procedure. This is a procedure for executing the object module 208 by linking the generated object module 208 with the environment corresponding to the test case. Since it is considered easy for those skilled in the art to create an environment corresponding to a test case, a description thereof is omitted here.
[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 ready program file 203 as described above and FIG. The above-described and later-described test case symbols, the above-described and later-described C0 target C1-target classification symbols, and the execution result of the coverage passing function are associated and recorded in the coverage information accumulation file 206 in correspondence with the instruction branch sequence numbers described later. . Here, 209 is referred to as a coverage data acquisition process.
[0012]
FIG. 3 is a diagram showing a test target program storage file that is a file for storing the source program 201, 301 is a test target program storage file, and 302 is an existing completed or test target indicated as 201 in FIG. A source program that is a semi-finished program is shown.
[0013]
FIG. 4 is a flowchart showing a processing procedure for carrying out 202 of FIG. 2 and will be described below.
[0014]
Reference numeral 401 denotes processing for copying the source program 201 stored in the test target program storage file and storing it in the coverage test ready program file 203. This processing method is obvious to those skilled in the art. This process is called a command sentence copy process.
[0015]
402, an existing completed or semi-completed program stored in the coverage test ready program file 203 is extracted in units of command statements, and “command statement” and “command statement including branch etc.” are “command statement and branch in it” This is a process of adding an instruction branch serial number in a program to an “instruction sentence” unit and an “instruction sentence including a branch or the like, an instruction sentence and a branch unit within the instruction sentence” unit. Here, in advance, all the branch sentence types existing in the language specification are identified and stored, and for the command sentence extracted here, all the branch statements existing in the stored language specification are stored. By identifying according to whether or not they match, in the case of a branch statement, an instruction branch sequence number in the program and the C0 target C1 target classification symbol described above and below will be added, so that “instruction statement” and “instruction including branch etc.” The “sentence” is processed to be analyzed into “an imperative sentence and a unit of branch in the instruction sentence”. The process of adding the serial number to the analysis result is considered to be easily performed by those skilled in the art, and is therefore omitted to avoid complicating the explanation. This process is called an in-program instruction branch serial number addition process.
[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 information accumulation file 206 simultaneously with the above-described in-program instruction branch serial number are performed. In this case, C0C1 data including the meanings of both C0 coverage and C1 coverage is assigned to the unit of one command statement and one command statement that can branch, and the branch unit. It is considered that a program for realizing this processing can be easily created by those skilled in the art if only this description is read. Therefore, a detailed description of the creation method is omitted to avoid complication. The process 403 is called C0 object C1 object classification symbol storage process.
[0017]
404 is a program that is added to the existing completed or semi-completed program stored in the coverage test ready program file 203 to “instruction sentence” and “an instruction sentence including a branch etc. is an instruction sentence and a unit of branch in the instruction sentence”. Corresponding to the internal instruction branch serial number, “the internal instruction branch serial number information in the program is stored internally, and the above-mentioned coverage information accumulation file 206 is referred to the internal internal program branch serial number correspondence at the time of execution. This is a process of generating and appending a coverage passing function that has a function of recording a single symbol called a symbol and exists in a format that can be interpreted by the above-described compiler or the like. If the specifications described here are presented, it is considered that those skilled in the art can easily program the coverage passing function. 404 is referred to as a coverage passing function additional recording process.
[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 ready program file 203. If not, exit; otherwise
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 information accumulation file 206 of this embodiment. The coverage information storage file 505 is composed of four items: an instruction branch sequence number 501, a test case symbol 502, a C0 target C1 target classification symbol 503, and a coverage passing symbol 504.
[0020]
In the instruction branch sequence number 501 in the program, “instruction sentence” unit or “instruction sentence including a branch” in the existing completed or semi-completed program stored in the coverage test ready program file 203 is “instruction sentence and its internal part”. Stores the in-program instruction branch sequence number added to the “branch unit in”.
[0021]
The test case symbol 502 is known as a test case by those skilled in the art in order to test the source program 201, and stores the symbol name of the test case necessary for executing the object module 208. Here, since the method of inputting a test case correspondence symbol for one test case is not directly related to the description of the claims, the description is omitted.
[0022]
The C0 target C1 target classification symbol storage field 503 stores the C0 target C1 target classification symbol.
[0023]
In the coverage passage symbol storage field 504, the coverage passage function embedded in the coverage test ready program file 203 is used for entering the above-described coverage passage symbol when the test is executed.
[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 information storage file 206 is referred to the internal program instruction branch sequence number at the time of execution. It has a function of recording one symbol called a coverage passing symbol and exists in a format that can be interpreted by the above-mentioned compiler or the like.
[0027]
FIG. 9 is an example of the coverage information accumulation file 206 generated as a result of executing the analysis recording program indicated by 202 with respect to the example of the source program stored in the test target program storage file shown in FIG. Here, data 1, 2, 3, 4, 5, 6, and 7 are generated for the instruction branch sequence number in the 1101 program, and data 2, 2, 2, 2, 2, 2, and 2 are pre-assigned for the 1102 test case symbol. Stored in As described above, the analysis record program stores the C0 target C1 target classification symbols 1103 as C0, C1, and C0C1 for the instruction branch sequence numbers in the program. No data is input to the coverage passing symbol 1104 when the analysis recording program is executed.
[0028]
FIG. 10 is an example of the information accumulation file 206 as a result of executing the coverage data acquisition process indicated by 209.
[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 External Storage Device 104 Input Device 105 Display Device 106 Printer 201 Source Program 202 Analysis Recording Program 203 Coverage Test Ready Program Storage File 206 Coverage Information Accumulation File 207 Compile Processing 208 Object Module 209 Coverage Data Acquisition Processing 301 Test Target Program Storage File 302 Source program 401 Instruction copy processing 402 In-program instruction branch sequence number addition processing 403 C0 target C1 target classification symbol storage processing 404 Coverage passing function additional processing 405 Command sentence analysis completion determination processing 501 In-program instruction branch sequence number 502 Test case symbol 503 C0 target C1 target classification symbol 504 Coverage passage symbol 505 Coverage information storage file 601 Stroke file 602 Test case symbol 603 Test case management comment 1101 In-program instruction branch sequence number 1102 Test case symbol 1103 C0 target C1 target classification symbol 1104 Coverage passing symbol 1201 In-program instruction branch sequence number 1202 Test case symbol 1203 C0 target C1 Target classification symbol 1204 Coverage passage symbol

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.
請求項1に記載のプログラムテストデバッグ装置において、
予め、前記既存の完成又は半完成プログラムの言語仕様に存在する分岐が含まれる命令文である分岐文の種類のすべてを格納する手段をさらに設け、
前記分割する手段は、分割された前記命令文に対し、格納された前記分岐文の種類と一致するかを比較し、当該比較が一致するか否かにより、当該命令文に分岐が含まれるかを判断することを特徴とするプログラムテストデバッグ装置。
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
JP2002264896A 2002-09-11 2002-09-11 Program test debugging device Expired - Lifetime JP4483163B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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