JPH06103113A - 差分テストデバック支援方法 - Google Patents
差分テストデバック支援方法Info
- Publication number
- JPH06103113A JPH06103113A JP4252730A JP25273092A JPH06103113A JP H06103113 A JPH06103113 A JP H06103113A JP 4252730 A JP4252730 A JP 4252730A JP 25273092 A JP25273092 A JP 25273092A JP H06103113 A JPH06103113 A JP H06103113A
- Authority
- JP
- Japan
- Prior art keywords
- program
- test
- executed
- statement
- coverage information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
(57)【要約】
【目的】 既に信頼性が保証されているプログラムの全
部または一部分をテストデバッグの対象から外して効率
的にデバッグすること。 【構成】 既に信頼性が保証されているプログラムにつ
いては、そのカバレジ情報蓄積ファイルに全命令文別に
テスト実行済みの情報を設定し、当該プログラムに変更
を加えた場合、変更部分のカバレジ情報についてのみテ
スト未実行状態に設定し、変更部分の命令文のみをテス
ト対象として実行させる。
部または一部分をテストデバッグの対象から外して効率
的にデバッグすること。 【構成】 既に信頼性が保証されているプログラムにつ
いては、そのカバレジ情報蓄積ファイルに全命令文別に
テスト実行済みの情報を設定し、当該プログラムに変更
を加えた場合、変更部分のカバレジ情報についてのみテ
スト未実行状態に設定し、変更部分の命令文のみをテス
ト対象として実行させる。
Description
【0001】
【産業上の利用分野】本発明は、プログラムの信頼性を
テストするための差分テストデバッグ支援方法に係り、
特に、既存の完成または半完成のプログラムの再利用や
保守を行う際に、既に信頼性が保証されている部分のテ
ストデバッグを省力化することにより、作業効率の向上
を図るようにした差分テストデバッグ支援方法に関する
ものである。
テストするための差分テストデバッグ支援方法に係り、
特に、既存の完成または半完成のプログラムの再利用や
保守を行う際に、既に信頼性が保証されている部分のテ
ストデバッグを省力化することにより、作業効率の向上
を図るようにした差分テストデバッグ支援方法に関する
ものである。
【0002】
【従来の技術】従来において、作成したプログラムの信
頼性を効率良くテストするための方法の一つとして、
「COBOL85/TD」と呼ばれるテストデバッグ支援用プログ
ラムがある。
頼性を効率良くテストするための方法の一つとして、
「COBOL85/TD」と呼ばれるテストデバッグ支援用プログ
ラムがある。
【0003】この「COBOL85/TD」には、テストカバレジ
情報を取得し、蓄積する機能がある。テストカバレジ情
報とは、プログラム実行後における各命令文の実行回数
などの情報である。
情報を取得し、蓄積する機能がある。テストカバレジ情
報とは、プログラム実行後における各命令文の実行回数
などの情報である。
【0004】このようなテストデバッグ支援用プログラ
ムを用いたテストでは、テストカバレジ情報を解析し、
被テストプログラムの命令文の実行状況をカバレジメジ
ャとして、デバッグの進捗状態を定量的に表す機能があ
る。そこで、テストデバッグを行う場合、カバレジ情報
を基に、各命令文の実行状況を把握し、今後テストを行
う必要がある命令文を認識することが一般的となってい
る。
ムを用いたテストでは、テストカバレジ情報を解析し、
被テストプログラムの命令文の実行状況をカバレジメジ
ャとして、デバッグの進捗状態を定量的に表す機能があ
る。そこで、テストデバッグを行う場合、カバレジ情報
を基に、各命令文の実行状況を把握し、今後テストを行
う必要がある命令文を認識することが一般的となってい
る。
【0005】しかし、この場合、プログラムを修正した
場合に、修正以前までのカバレジ情報を蓄積しておくこ
とが重要である。それは、プログラムのごく僅かな部分
の修正によって、既テスト(確認)部分の情報を失う場
合には、プログラムを修正する度に、プログラムの全命
令文に対しテストを行う必要が生じるためである。も
し、修正以前までのカバレジ情報を蓄積しておかなかっ
た場合は、同じ命令文についてのテストを重複して行う
ことを意味するものであり、テストデバッグの効率を向
上させる上で、大きな障害となる。
場合に、修正以前までのカバレジ情報を蓄積しておくこ
とが重要である。それは、プログラムのごく僅かな部分
の修正によって、既テスト(確認)部分の情報を失う場
合には、プログラムを修正する度に、プログラムの全命
令文に対しテストを行う必要が生じるためである。も
し、修正以前までのカバレジ情報を蓄積しておかなかっ
た場合は、同じ命令文についてのテストを重複して行う
ことを意味するものであり、テストデバッグの効率を向
上させる上で、大きな障害となる。
【0006】この問題を解決する一つの方法として、プ
ログラムを修正した場合、未修正部分のカバレジ情報を
既存情報に加えて蓄積しておき、修正部分のカバレジ情
報についてのみ既存情報と置き換えることによって、未
修正の既実行済み命令文に関しては、そのカバレジ情報
を保存するようにしてテストの重複を防ぎ、テストデバ
ッグの効率を向上させるようにしたものがある。
ログラムを修正した場合、未修正部分のカバレジ情報を
既存情報に加えて蓄積しておき、修正部分のカバレジ情
報についてのみ既存情報と置き換えることによって、未
修正の既実行済み命令文に関しては、そのカバレジ情報
を保存するようにしてテストの重複を防ぎ、テストデバ
ッグの効率を向上させるようにしたものがある。
【0007】一方、プログラムを効率良く開発する方法
の一つとして、データ項目やデータ名称を定義したディ
クシュナリを用いたプログラムジェネレータを使用する
方法がある。
の一つとして、データ項目やデータ名称を定義したディ
クシュナリを用いたプログラムジェネレータを使用する
方法がある。
【0008】一般に、この種のプログラムジェネレータ
は、プログラムの骨格として、標準パターンを用意し、
これを基に、プログラム仕様情報を付加することによ
り、目的とするプログラムを自動的に生成する。
は、プログラムの骨格として、標準パターンを用意し、
これを基に、プログラム仕様情報を付加することによ
り、目的とするプログラムを自動的に生成する。
【0009】しかし、この生成方法では、プログラムの
入出力の単位という点から考えた場合、ファィルおよび
レコード単位の処理の生成は可能であるが、最小単位で
ある項目単位の処理の生成が不可能である。このため、
一般のプログラムジェネレータは、プログラムの自動生
成率が低く、プログラム開発の作業効率を向上させるこ
とが困難である。
入出力の単位という点から考えた場合、ファィルおよび
レコード単位の処理の生成は可能であるが、最小単位で
ある項目単位の処理の生成が不可能である。このため、
一般のプログラムジェネレータは、プログラムの自動生
成率が低く、プログラム開発の作業効率を向上させるこ
とが困難である。
【0010】この問題を解決する一つの方法として、情
報処理学会第41回(平成2年後期)全国大会講演論文
集第5分冊第5−205頁から第5−206頁において
論じられているように、項目に関する処理を定義するデ
ィクショナリを開発し、プログラム生成時にこのディク
ショナリの情報を取得することによって、項目単位の処
理を自動生成するプログラムジェネレータがある。
報処理学会第41回(平成2年後期)全国大会講演論文
集第5分冊第5−205頁から第5−206頁において
論じられているように、項目に関する処理を定義するデ
ィクショナリを開発し、プログラム生成時にこのディク
ショナリの情報を取得することによって、項目単位の処
理を自動生成するプログラムジェネレータがある。
【0011】このプログラムジェネレータによれば、完
成度が高く、信頼性が高度に保証されたプログラムが生
成される。
成度が高く、信頼性が高度に保証されたプログラムが生
成される。
【0012】
【発明が解決しようとする課題】しかしながら、修正部
分のカバレジ情報についてのみ既存情報と置き換えると
いう上記従来のテストデバッグ支援用プログラムによれ
ば、テスト対象の被プログラムが、上記情報処理学会誌
で提案されているようなプログラムジェネレータで生成
された完成度が高く、信頼性が高度に保証された完成ま
たは半完成プログラム、あるいは既存の信頼性が確認さ
れた完成または半完成プログラムを再利用する場合であ
っても、その被生成部および再利用部分の信頼性が既に
保証されているにもかかわらず、テストデバッグの対象
とし、全命令文を実行する必要が生じるため、「保証済
みのプログラムのデバッグを行う」という点では、テス
トデバッグ作業の重複を避けることができなかった。
分のカバレジ情報についてのみ既存情報と置き換えると
いう上記従来のテストデバッグ支援用プログラムによれ
ば、テスト対象の被プログラムが、上記情報処理学会誌
で提案されているようなプログラムジェネレータで生成
された完成度が高く、信頼性が高度に保証された完成ま
たは半完成プログラム、あるいは既存の信頼性が確認さ
れた完成または半完成プログラムを再利用する場合であ
っても、その被生成部および再利用部分の信頼性が既に
保証されているにもかかわらず、テストデバッグの対象
とし、全命令文を実行する必要が生じるため、「保証済
みのプログラムのデバッグを行う」という点では、テス
トデバッグ作業の重複を避けることができなかった。
【0013】本発明の目的は、既に信頼性が保証されて
いるプログラムの全部または一部分をテストデバッグの
対象から外して効率的にデバッグすることができる差分
テストデバッグ支援方法を提供することである。
いるプログラムの全部または一部分をテストデバッグの
対象から外して効率的にデバッグすることができる差分
テストデバッグ支援方法を提供することである。
【0014】
【課題を解決するための手段】上記目的を達成するため
に、本発明の差分テストデバッグ支援方法は、既存の完
成または半完成のプログラムに対し、カバレジ情報蓄積
ファイルを設け、このカバレジ情報蓄積ファイルに全命
令文別にテスト実行済みの情報を設定した後、当該プロ
グラムの変更に対しては、変更部分のカバレジ情報につ
いてのみテスト未実行状態に設定し、変更部分の命令文
のみをテスト対象として実行させるようにしたものであ
る。
に、本発明の差分テストデバッグ支援方法は、既存の完
成または半完成のプログラムに対し、カバレジ情報蓄積
ファイルを設け、このカバレジ情報蓄積ファイルに全命
令文別にテスト実行済みの情報を設定した後、当該プロ
グラムの変更に対しては、変更部分のカバレジ情報につ
いてのみテスト未実行状態に設定し、変更部分の命令文
のみをテスト対象として実行させるようにしたものであ
る。
【0015】
【作用】上記手段によれば、プログラムの自動生成ある
いは既存プログラムの再利用を行う場合、そのカバレジ
情報蓄積ファイルに、全命令文別にテスト実行済みの情
報が設定される。
いは既存プログラムの再利用を行う場合、そのカバレジ
情報蓄積ファイルに、全命令文別にテスト実行済みの情
報が設定される。
【0016】したがって、生成直後あるいは再利用のた
めに既存プログラムを複写した直後におけるテスト対象
のプログラムのカバレジ情報では、全命令文が実行済み
であると認識され、自動生成部分あるいは未修正部分の
テストは省略される。
めに既存プログラムを複写した直後におけるテスト対象
のプログラムのカバレジ情報では、全命令文が実行済み
であると認識され、自動生成部分あるいは未修正部分の
テストは省略される。
【0017】この結果、プログラムの自動生成あるいは
既存プログラムの再利用を行う場合のテスト作業の効率
を向上させることが可能になり、ひいては、プログラム
の開発を効率化することができる。
既存プログラムの再利用を行う場合のテスト作業の効率
を向上させることが可能になり、ひいては、プログラム
の開発を効率化することができる。
【0018】さらに、自動生成したプログラム、または
既存プログラムを複写したプログラムに修正を加えた場
合、未修正部分に対してはこれまでのカバレジ情報を蓄
積しておき、修正部分については、修正の内容に応じ
て、以前までのカバレジ情報を例えば無効、消去、ある
いは追加することによってテスト未実行状態に設定す
る。したがって、プログラム修正後には、修正部分の命
令文のみがカバレジ情報を持たないため、修正部分のみ
の命令文がテスト対象として実行され、テストデバッグ
を効率化、ひいては、プログラム開発を効率化すること
ができる。
既存プログラムを複写したプログラムに修正を加えた場
合、未修正部分に対してはこれまでのカバレジ情報を蓄
積しておき、修正部分については、修正の内容に応じ
て、以前までのカバレジ情報を例えば無効、消去、ある
いは追加することによってテスト未実行状態に設定す
る。したがって、プログラム修正後には、修正部分の命
令文のみがカバレジ情報を持たないため、修正部分のみ
の命令文がテスト対象として実行され、テストデバッグ
を効率化、ひいては、プログラム開発を効率化すること
ができる。
【0019】
【実施例】以下、本発明を図示する実施例に基づいて詳
細に説明する。
細に説明する。
【0020】図1は本発明を実施する計算機の一般的な
機器構成図であり、CPU1,メモリ2、外部記憶装置
3、入力装置4、表示装置5、プリンタ6とから構成さ
れている。
機器構成図であり、CPU1,メモリ2、外部記憶装置
3、入力装置4、表示装置5、プリンタ6とから構成さ
れている。
【0021】図2は本発明の第1の実施例の処理手順を
示すフローチャートであり、図3は本実施例を実現する
ための機能概要図であり、図2のフロチャートに基づき
図3の各ステップを説明する。
示すフローチャートであり、図3は本実施例を実現する
ための機能概要図であり、図2のフロチャートに基づき
図3の各ステップを説明する。
【0022】まず、オブジェクトモジュール生成ステッ
プ202では、ソースプログラム201を入力情報と
し、既存のコンパイラを用いてオブジェクトモジュール
203を生成する(図2のステップ101)。
プ202では、ソースプログラム201を入力情報と
し、既存のコンパイラを用いてオブジェクトモジュール
203を生成する(図2のステップ101)。
【0023】次に、カバレジ情報蓄積ファイル生成ステ
ップ204では、オブジェクトモジュール203を入力
情報とし、既存のテストデバッグ支援用プログラムを起
動することにより、カバレジ情報蓄積ファイル205を
生成する(図2のステップ102)。これは、既存のテ
ストデバッグ支援用プログラムに内蔵された「起動時に
被テストプログラムのカバレジ情報蓄積ファイルがない
場合には、これを自動的に生成するという機能」を用い
たものである。
ップ204では、オブジェクトモジュール203を入力
情報とし、既存のテストデバッグ支援用プログラムを起
動することにより、カバレジ情報蓄積ファイル205を
生成する(図2のステップ102)。これは、既存のテ
ストデバッグ支援用プログラムに内蔵された「起動時に
被テストプログラムのカバレジ情報蓄積ファイルがない
場合には、これを自動的に生成するという機能」を用い
たものである。
【0024】さらに、実行回数セット処理ステップ20
6では、カバレジ情報蓄積ファイル205に、全命令文
に対してその実行回数として、「1」以上の値を命令種
別に応じてセットする(図2のステップ103)。これ
は、カバレジ情報蓄積ファイル205の生成直後におい
て、全命令文に実行済みの情報を設定したことを意味す
る。
6では、カバレジ情報蓄積ファイル205に、全命令文
に対してその実行回数として、「1」以上の値を命令種
別に応じてセットする(図2のステップ103)。これ
は、カバレジ情報蓄積ファイル205の生成直後におい
て、全命令文に実行済みの情報を設定したことを意味す
る。
【0025】そして、プログラムを修正する必要の有無
を判定し(図2のステップ104)、修正の必要がない
場合は終了し、修正の必要がある場合は以下のステップ
に続く。
を判定し(図2のステップ104)、修正の必要がない
場合は終了し、修正の必要がある場合は以下のステップ
に続く。
【0026】まず、ソースプログラムの修正ステップ2
08では、ソースプログラム207を入力情報として、
既存のエディタを用いてソースプログラムを修正する
(図2のステップ105)。
08では、ソースプログラム207を入力情報として、
既存のエディタを用いてソースプログラムを修正する
(図2のステップ105)。
【0027】次に、オブジェクトモジュール生成ステッ
プ210では、修正したソースプログラム209を入力
情報として、コンパイラを用いて、修正したプログラム
のオブジェクトモジュール211を生成する(図2のス
テップ106)。
プ210では、修正したソースプログラム209を入力
情報として、コンパイラを用いて、修正したプログラム
のオブジェクトモジュール211を生成する(図2のス
テップ106)。
【0028】本コンパイラ実行時には、コンパイラが持
つ「差分カバレジ機能」を使用する。これにより、オブ
ジェクトモジュール211には、カバレジ情報蓄積ファ
イル205に対して、未修正部分に対しては既存のカバ
レジ情報を保存し、修正部分に対しては既存のカバレジ
情報を削除するという指示情報が生成される。
つ「差分カバレジ機能」を使用する。これにより、オブ
ジェクトモジュール211には、カバレジ情報蓄積ファ
イル205に対して、未修正部分に対しては既存のカバ
レジ情報を保存し、修正部分に対しては既存のカバレジ
情報を削除するという指示情報が生成される。
【0029】さらに、テスト実行ステップ212では、
既存のテストデバッグ支援プログラムを用いて、テスト
を行う(図2のステップ107)。この場合、テスト実
行前のカバレジ情報では、オブジェクトモジュール21
1で生成された指示情報により、カバレジ情報蓄積ファ
イル205の生成直後にセットした実行回数の値のう
ち、未修正部分に対するものはコンパイルした後も保存
され、修正部分の命令文に対しては削除されるため、修
正部分の命令文のみが実行される。この結果、テスト実
行後のカバレジ情報蓄積ファイル213では、全命令文
の実行回数の値が「1」以上にセットされ、全て実行済
みの状態とになり、プログラム全体の命令文を既実行と
認識できる。
既存のテストデバッグ支援プログラムを用いて、テスト
を行う(図2のステップ107)。この場合、テスト実
行前のカバレジ情報では、オブジェクトモジュール21
1で生成された指示情報により、カバレジ情報蓄積ファ
イル205の生成直後にセットした実行回数の値のう
ち、未修正部分に対するものはコンパイルした後も保存
され、修正部分の命令文に対しては削除されるため、修
正部分の命令文のみが実行される。この結果、テスト実
行後のカバレジ情報蓄積ファイル213では、全命令文
の実行回数の値が「1」以上にセットされ、全て実行済
みの状態とになり、プログラム全体の命令文を既実行と
認識できる。
【0030】最後に、テストデバッグが完了しているか
どうかを判断し(図2のステップ108)、完了してい
れば終了する。
どうかを判断し(図2のステップ108)、完了してい
れば終了する。
【0031】テストデバッグが完了していない場合に
は、未実行の命令文がある場合とプログラムの修正をす
る必要がある場合の2つがある。
は、未実行の命令文がある場合とプログラムの修正をす
る必要がある場合の2つがある。
【0032】未実行の命令文がある場合には、未実行の
命令文がなくなるまでテストを繰返し、プログラムの修
正が必要である場合は、プログラムの修正からテストに
到る工程を繰り返す。
命令文がなくなるまでテストを繰返し、プログラムの修
正が必要である場合は、プログラムの修正からテストに
到る工程を繰り返す。
【0033】図4は、カバレジ情報蓄積ファイル205
の構造例を示す図であり、カバレジ情報蓄積ファイル2
05はマスタテーブル401とカウントテーブル404
の2つのテーブルより構成される。
の構造例を示す図であり、カバレジ情報蓄積ファイル2
05はマスタテーブル401とカウントテーブル404
の2つのテーブルより構成される。
【0034】このうち、マスタテーブル401は図5に
示すように、プログラム名称501、テスト回数502
といった情報の他に、テストデバッグの進捗状況を示す
情報として、プログラム全体における、実行可能な命令
文の数である実行可能文数503、実行された命令文の
数である実行済文数504、実行可能な分岐の数である
実行可能分岐数505、実行された分岐の数である実行
済分岐数506、実行済文数の実行可能文数に対する割
合であるC0メジャ507、実行済分岐数の実行可能分
岐数に対する割合であるC1メジャ508から構成され
る。
示すように、プログラム名称501、テスト回数502
といった情報の他に、テストデバッグの進捗状況を示す
情報として、プログラム全体における、実行可能な命令
文の数である実行可能文数503、実行された命令文の
数である実行済文数504、実行可能な分岐の数である
実行可能分岐数505、実行された分岐の数である実行
済分岐数506、実行済文数の実行可能文数に対する割
合であるC0メジャ507、実行済分岐数の実行可能分
岐数に対する割合であるC1メジャ508から構成され
る。
【0035】一方、カウントテーブル402は図6に示
すように、各命令文毎の情報を格納するエレメント60
1,602…の集合体である。このため、カウントテー
ブル402の大きさは、プログラムの命令文数により左
右されるため、固定ではない。
すように、各命令文毎の情報を格納するエレメント60
1,602…の集合体である。このため、カウントテー
ブル402の大きさは、プログラムの命令文数により左
右されるため、固定ではない。
【0036】エレメント601は、プログラムにおける
命令文の位置を示すロケーション番号を格納するロケー
ション欄603、命令の種類を示すコードを格納する命
令種別欄604、命令文の実行回数を格納するカウント
エントリ欄605から構成される。カバレジ情報蓄積フ
ァイル205の生成時点におけるカウントエントリ欄6
05には、実行回数の初期値として「0」がセットされ
ている。尚、命令文には、種別によって実行回数をカウ
ントする必要がないものがあり、このような命令文のた
めのエレメント602は、カウントエントリ欄を持た
ず、ロケーション欄606と命令種別欄607のみより
構成される。
命令文の位置を示すロケーション番号を格納するロケー
ション欄603、命令の種類を示すコードを格納する命
令種別欄604、命令文の実行回数を格納するカウント
エントリ欄605から構成される。カバレジ情報蓄積フ
ァイル205の生成時点におけるカウントエントリ欄6
05には、実行回数の初期値として「0」がセットされ
ている。尚、命令文には、種別によって実行回数をカウ
ントする必要がないものがあり、このような命令文のた
めのエレメント602は、カウントエントリ欄を持た
ず、ロケーション欄606と命令種別欄607のみより
構成される。
【0037】図7は、ソースプログラムの一例を示すも
のであり、図8は図7のソースプログラムに対するカバ
レジ情報蓄積ファイル205のカウントテーブル402
の例を示すものである。
のであり、図8は図7のソースプログラムに対するカバ
レジ情報蓄積ファイル205のカウントテーブル402
の例を示すものである。
【0038】この例において、図3の実行回数セット処
理ステップ206では、初期値「0」が設定されたカウ
ントエントリ欄605の値を、ソースプログラムを解析
し、各命令文の命令種別に応じた値にリセットし、図8
に示すようなカウントエントリにする。本処理は、カウ
ントエントリが、実行回数をカウントする必要なある命
令文の実行の有無を判断する際には、カウントエントリ
の値を基にすることに着目したものである。
理ステップ206では、初期値「0」が設定されたカウ
ントエントリ欄605の値を、ソースプログラムを解析
し、各命令文の命令種別に応じた値にリセットし、図8
に示すようなカウントエントリにする。本処理は、カウ
ントエントリが、実行回数をカウントする必要なある命
令文の実行の有無を判断する際には、カウントエントリ
の値を基にすることに着目したものである。
【0039】例えば、図7においては、9つの命令文7
01〜709がある。このため、図8のカウントテーブ
ルには、9つのエレメント801〜809が生成され
る。この9つのエレメント501〜809のうち、4,
6,8番めのエレメント804,806,808は命令
種別により、実行回数をカウントする必要がないと判断
とれ、カウントエントリ欄を持たない。これ以外のエレ
メント801,802,803,805,807,80
9では、ソースプログラムを解析した上で、各エレメン
トの命令種別欄の値に応じ、「1」以上の値をカウント
エントリ欄に各々設定する。
01〜709がある。このため、図8のカウントテーブ
ルには、9つのエレメント801〜809が生成され
る。この9つのエレメント501〜809のうち、4,
6,8番めのエレメント804,806,808は命令
種別により、実行回数をカウントする必要がないと判断
とれ、カウントエントリ欄を持たない。これ以外のエレ
メント801,802,803,805,807,80
9では、ソースプログラムを解析した上で、各エレメン
トの命令種別欄の値に応じ、「1」以上の値をカウント
エントリ欄に各々設定する。
【0040】本処理により、プログラムのテストを実際
に行なうことなく、全命令文を実行済みと認識できる。
に行なうことなく、全命令文を実行済みと認識できる。
【0041】図9は、図7に示したソースプログラムを
修正した例を示し、図10は図9のソースプログラムに
対するカバレジ情報蓄積ファイル205のカウントテー
ブル402の内容例を示すものである。
修正した例を示し、図10は図9のソースプログラムに
対するカバレジ情報蓄積ファイル205のカウントテー
ブル402の内容例を示すものである。
【0042】図3のオブジェクトモジュール生成処理ス
テップ210では、全命令を既実行と設定した図8のカ
ウントテーブル402の各カウントエントリのうち、修
正した命令文に対応するカウントエントリについては
「未実行」に設定する。
テップ210では、全命令を既実行と設定した図8のカ
ウントテーブル402の各カウントエントリのうち、修
正した命令文に対応するカウントエントリについては
「未実行」に設定する。
【0043】本発明は、テストデバッグ支援用プログラ
ムが持つ差分カバレジ機能、すなわち「未修正部分のカ
バレジ情報は保存し、修正部分の既存カバレジ情報は削
除あるいは無効にして新たに取得する」ことに着目した
ものである。
ムが持つ差分カバレジ機能、すなわち「未修正部分のカ
バレジ情報は保存し、修正部分の既存カバレジ情報は削
除あるいは無効にして新たに取得する」ことに着目した
ものである。
【0044】例えば、図9のソースプログラムは、図7
のソースプログラムに、2番目の命令文702の削
除、5および7番目の命令文705,707の変更、
8番目の命令文708の後に1命令文を追加する、と
いう修正を加えたものである。
のソースプログラムに、2番目の命令文702の削
除、5および7番目の命令文705,707の変更、
8番目の命令文708の後に1命令文を追加する、と
いう修正を加えたものである。
【0045】このプログラムの修正にともない、図8に
示したカウントテーブル402には、2番目のエレメ
ント802の削除、5および7番目のエレメント80
5,807の変更、8番目のエレメントの後に新らた
なエレメントの追加、という変更が生じ、その結果、図
8に示したカウントテーブル402は図10に示すよう
なカウントテーブル402に変更される。
示したカウントテーブル402には、2番目のエレメ
ント802の削除、5および7番目のエレメント80
5,807の変更、8番目のエレメントの後に新らた
なエレメントの追加、という変更が生じ、その結果、図
8に示したカウントテーブル402は図10に示すよう
なカウントテーブル402に変更される。
【0046】ここで、図8のエレメント1(801),
3(803),4(804),5(805),6(80
6),7(807),8(808),9(809)は、
各々、図10のエレメント1(1001),2(100
2),3(1003),4(1004),5(100
5),6(1006),7(1007),9(100
9)に対応する。
3(803),4(804),5(805),6(80
6),7(807),8(808),9(809)は、
各々、図10のエレメント1(1001),2(100
2),3(1003),4(1004),5(100
5),6(1006),7(1007),9(100
9)に対応する。
【0047】一方、図8のエレメント2(802)に対
応するエレメントは、命令文が削除されたために図10
には存在しない、また、図10のエレメント8(100
8)は、命令文の追加により新たに作成されたものであ
るために、対応するエレメントが図8には存在しない。
そして、図10のカウントテーブル402では、変更お
よび追加された命令文に対するエレメントのカウントエ
ントリの値(1012,1013,1014)が「0」
に設定され、未修正の命令文に対するエレメントのカウ
ントエントリの値(1010,1011,1015)は
保存されている。
応するエレメントは、命令文が削除されたために図10
には存在しない、また、図10のエレメント8(100
8)は、命令文の追加により新たに作成されたものであ
るために、対応するエレメントが図8には存在しない。
そして、図10のカウントテーブル402では、変更お
よび追加された命令文に対するエレメントのカウントエ
ントリの値(1012,1013,1014)が「0」
に設定され、未修正の命令文に対するエレメントのカウ
ントエントリの値(1010,1011,1015)は
保存されている。
【0048】このように、カウントテーブル402で
は、削除した命令文に対応するエレメントは削除され
る。また、変更した命令文に対応するエレメントのカウ
ントエントリの値は、以前の実行回数の値が無効を示す
値「0」に設定される。さらに、追加した命令文につい
ては、対応するエレメントが新たに作成され、カウント
エントリの値には初期値「0」がセットされる。そし
て、未修正部分のカウントエントリについては、前から
セットされていた情報がそのまま保存される。
は、削除した命令文に対応するエレメントは削除され
る。また、変更した命令文に対応するエレメントのカウ
ントエントリの値は、以前の実行回数の値が無効を示す
値「0」に設定される。さらに、追加した命令文につい
ては、対応するエレメントが新たに作成され、カウント
エントリの値には初期値「0」がセットされる。そし
て、未修正部分のカウントエントリについては、前から
セットされていた情報がそのまま保存される。
【0049】したがって、本処理では、カバレジ情報蓄
積ファイル205の生成直後にセットした実行回数の値
の中で、修正した命令の実行回数の値のみが「0」にな
る。
積ファイル205の生成直後にセットした実行回数の値
の中で、修正した命令の実行回数の値のみが「0」にな
る。
【0050】図11は、図9で示したのソースプログラ
ムのテスト実行後のカウントテーブル402の内容例を
示すものであり、図3のテスト実行ステップ212で
は、テストデバッグ支援用プログラムが持つ差分カバレ
ジ機能により、実際に実行された各命令文の実行回数
を、カウントテーブルの該当する各エレメントのカウン
トエントリに加算する。
ムのテスト実行後のカウントテーブル402の内容例を
示すものであり、図3のテスト実行ステップ212で
は、テストデバッグ支援用プログラムが持つ差分カバレ
ジ機能により、実際に実行された各命令文の実行回数
を、カウントテーブルの該当する各エレメントのカウン
トエントリに加算する。
【0051】例えば、図3のテスト実行ステップ212
により、図9に示した1,2,4,8,9番目の命令文
901,902,904,908,909は1回ずつ実
行され、6番目の命令文906は実行されていない場
合、図10のプログラム修正後のカウントテーブル40
2では、実行された命令文に対応する1,2,4,8,
9番目のエレメント1101,1102,1104,1
108,1109のカウントエントリの値1110,1
111,1112,1114,1115はすべて‘1’
ずつ加算され、実行されていない命令文に対応する6番
目のエレメント1106のカウントエントリの値111
3のみがテスト実行前と変わらず、「0」である。つま
り、図10に示したカウントテーブル402では、修正
部分に相当し、かつ、実際に実行されていない6番目の
命令文906に対応するエレメント1106のカウント
エントリの値1113のみが「0」である。
により、図9に示した1,2,4,8,9番目の命令文
901,902,904,908,909は1回ずつ実
行され、6番目の命令文906は実行されていない場
合、図10のプログラム修正後のカウントテーブル40
2では、実行された命令文に対応する1,2,4,8,
9番目のエレメント1101,1102,1104,1
108,1109のカウントエントリの値1110,1
111,1112,1114,1115はすべて‘1’
ずつ加算され、実行されていない命令文に対応する6番
目のエレメント1106のカウントエントリの値111
3のみがテスト実行前と変わらず、「0」である。つま
り、図10に示したカウントテーブル402では、修正
部分に相当し、かつ、実際に実行されていない6番目の
命令文906に対応するエレメント1106のカウント
エントリの値1113のみが「0」である。
【0052】このように、実際にテストを行い、修正部
分に相当する命令文を実行することにより、すべての命
令文に対するエレメントのカウントエントリに‘1’以
上の数値を設定することが可能となる。したがって、修
正部分に相当する命令文のみを実行することにより、全
命令文を既実行と認識できることになる。
分に相当する命令文を実行することにより、すべての命
令文に対するエレメントのカウントエントリに‘1’以
上の数値を設定することが可能となる。したがって、修
正部分に相当する命令文のみを実行することにより、全
命令文を既実行と認識できることになる。
【0053】本実施例によれば、テストを実行する前
に、カウントテーブル402の各エレメントのカウント
エントリに命令文の実行回数として‘1’以上の値をセ
ットすることにより、全命令文を既実行と認識させる処
理と、既存の差分カバレジ機能を組み合わせることによ
って、修正した命令文だけを実際に実行するだけで、全
命令文を既実行と認識することが可能になり、プログラ
ム開発におけるテストデバッグの効率化を図ることがで
きる。
に、カウントテーブル402の各エレメントのカウント
エントリに命令文の実行回数として‘1’以上の値をセ
ットすることにより、全命令文を既実行と認識させる処
理と、既存の差分カバレジ機能を組み合わせることによ
って、修正した命令文だけを実際に実行するだけで、全
命令文を既実行と認識することが可能になり、プログラ
ム開発におけるテストデバッグの効率化を図ることがで
きる。
【0054】図12は第2の実施例を示すフローチャー
トであり、本実施例は、図1の例で示すステップ101
の前のステップとして、ステップ100を追加した以外
は、図1の例で示した実施例と同じである。
トであり、本実施例は、図1の例で示すステップ101
の前のステップとして、ステップ100を追加した以外
は、図1の例で示した実施例と同じである。
【0055】本実施例において、ステップ100は、既
存のプログラム生成ツールである。実施例によれば、既
存のプログラム自動生成ツールと第1の実施例を連動さ
せることによって、プログラムの新規開発において、生
成からテストに到る一連の工程を連動させることによる
操作の省力化を図れ、さらに、プログラムの高い生成率
を活かした効率的なテストデバッグによって開発の効率
化を図ることができる。
存のプログラム生成ツールである。実施例によれば、既
存のプログラム自動生成ツールと第1の実施例を連動さ
せることによって、プログラムの新規開発において、生
成からテストに到る一連の工程を連動させることによる
操作の省力化を図れ、さらに、プログラムの高い生成率
を活かした効率的なテストデバッグによって開発の効率
化を図ることができる。
【0056】なお、前述した実施例においては、カウン
トエントリの値を「1」以上にした場合を実行済みとし
たが、フラグによって実行済みかどうかを表わすように
してもよい。
トエントリの値を「1」以上にした場合を実行済みとし
たが、フラグによって実行済みかどうかを表わすように
してもよい。
【0057】
【発明の効果】以上説明したように、本発明の差分テス
トデバッグ支援方法は、既に信頼性が保証されているプ
ログラムについては、そのカバレジ情報蓄積ファイルに
全命令文別にテスト実行済みの情報を設定し、当該プロ
グラムに変更を加えた場合、変更部分のカバレジ情報に
ついてのみテスト未実行状態に設定し、変更部分の命令
文のみをテスト対象として実行させるようにしたもので
あるため、プログラムの自動生成あるいは既存プログラ
ムの再利用を行う場合、自動生成部分あるいは未修正部
分のテストは省略され、修正部分のみの命令文がテスト
対象として実行される。この結果、プログラムの自動生
成あるいは既存プログラムの再利用を行う場合のテスト
作業の効率を向上させることができる。
トデバッグ支援方法は、既に信頼性が保証されているプ
ログラムについては、そのカバレジ情報蓄積ファイルに
全命令文別にテスト実行済みの情報を設定し、当該プロ
グラムに変更を加えた場合、変更部分のカバレジ情報に
ついてのみテスト未実行状態に設定し、変更部分の命令
文のみをテスト対象として実行させるようにしたもので
あるため、プログラムの自動生成あるいは既存プログラ
ムの再利用を行う場合、自動生成部分あるいは未修正部
分のテストは省略され、修正部分のみの命令文がテスト
対象として実行される。この結果、プログラムの自動生
成あるいは既存プログラムの再利用を行う場合のテスト
作業の効率を向上させることができる。
【図1】 本発明を実施する計算機システムの概略構成
図である。
図である。
【図2】 本発明の第1の実施例における処理手順を示
すフローチャートである。
すフローチャートである。
【図3】 第1の実施例を実現するためのシステム構成
を示す機能概要図である。
を示す機能概要図である。
【図4】 カバレジ情報蓄積ファイルの構造例を示す説
明図である。
明図である。
【図5】 マスタテーブルの構造例を示す説明図であ
る。
る。
【図6】 カウントテーブルの構造例を示す説明図であ
る。
る。
【図7】 ソースプログラムの例を示す説明図である。
【図8】 図7のソースプログラムに対するカバレジ情
報蓄積ファイルのカウントテーブルの例を示す説明図で
ある。
報蓄積ファイルのカウントテーブルの例を示す説明図で
ある。
【図9】 修正後のソースプログラムの例を示す説明図
である。
である。
【図10】 図9のソースプログラムに対するカバレジ
情報蓄積ファイルのカウントテーブルの例を示す説明図
である。
情報蓄積ファイルのカウントテーブルの例を示す説明図
である。
【図11】 テスト実行後のカウントテーブルの例を示
す説明図である。
す説明図である。
【図12】 本発明の第2の実施例における処理手順を
示すフローチャートである。
示すフローチャートである。
201…ソースプログラム、205…カバレジ情報蓄積
ファイル、206…実行回数セット処理ステップ、21
2…テスト実行ステップ、401…マスタテーブル、4
02…カウントテーブル、606,607…カウントエ
ントリ。
ファイル、206…実行回数セット処理ステップ、21
2…テスト実行ステップ、401…マスタテーブル、4
02…カウントテーブル、606,607…カウントエ
ントリ。
フロントページの続き (72)発明者 森岡 洋介 神奈川県川崎市幸区鹿島田890番地の12 株式会社日立製作所情報システム開発本部 内
Claims (1)
- 【請求項1】 既存の完成または半完成のプログラムに
対し、カバレジ情報蓄積ファイルを設け、このカバレジ
情報蓄積ファイルに全命令文別にテスト実行済みの情報
を設定した後、当該プログラムの変更に対しては、変更
部分のカバレジ情報についてのみテスト未実行状態に設
定し、変更部分の命令文のみをテスト対象として実行さ
せることを特徴とする差分テストデバック支援方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4252730A JPH06103113A (ja) | 1992-09-22 | 1992-09-22 | 差分テストデバック支援方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4252730A JPH06103113A (ja) | 1992-09-22 | 1992-09-22 | 差分テストデバック支援方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH06103113A true JPH06103113A (ja) | 1994-04-15 |
Family
ID=17241468
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4252730A Pending JPH06103113A (ja) | 1992-09-22 | 1992-09-22 | 差分テストデバック支援方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH06103113A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009048442A (ja) * | 2007-08-21 | 2009-03-05 | Hitachi Software Eng Co Ltd | 構成管理システム |
| US9740592B2 (en) | 2011-10-27 | 2017-08-22 | International Business Machines Corporation | Supporting debugging of program and graphical user interface for supporting debugging |
-
1992
- 1992-09-22 JP JP4252730A patent/JPH06103113A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009048442A (ja) * | 2007-08-21 | 2009-03-05 | Hitachi Software Eng Co Ltd | 構成管理システム |
| US9740592B2 (en) | 2011-10-27 | 2017-08-22 | International Business Machines Corporation | Supporting debugging of program and graphical user interface for supporting debugging |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5918037A (en) | Generating tests for an extended finite state machine using different coverage levels for different submodels | |
| US6954747B1 (en) | Methods for comparing versions of a program | |
| US7178135B2 (en) | Scope-based breakpoint selection and operation | |
| CN106469049B (zh) | 一种文件扫描的方法及装置 | |
| WO2016026328A1 (zh) | 一种信息处理方法、装置及计算机存储介质 | |
| CN113792026B (zh) | 数据库脚本的部署方法、装置及计算机可读存储介质 | |
| CN112732300A (zh) | 一种数据包更新方法、装置、电子设备及可读存储介质 | |
| US7624381B1 (en) | Portable detection of start and completion of object construction | |
| JP2009104252A (ja) | デバッグ支援装置およびデバッグ支援方法 | |
| CN114741360A (zh) | 汽车零件文件重建方法、装置、终端设备及存储介质 | |
| JPH06103113A (ja) | 差分テストデバック支援方法 | |
| JP4675639B2 (ja) | データ処理システム、アプリケーションプログラムのカスタマイズパラメータを表示する方法およびコンピュータプログラム製品 | |
| JPH0667871A (ja) | プログラム自動更新方式 | |
| JP3461185B2 (ja) | ロードモジュールへのソースコード行番号登録方法および装置 | |
| JPH06110733A (ja) | プログラムのテストケース生成装置 | |
| JP4782315B2 (ja) | 影響解析装置および方法、記録媒体、プログラム | |
| JPH11154093A (ja) | プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体 | |
| JPH11338686A (ja) | プログラム開発支援装置及びプログラム開発支援方法並びにプログラム開発支援プログラムを記録した記録媒体 | |
| JPH0510692B2 (ja) | ||
| JP2001216139A (ja) | メイク情報解析によるプロジェクト内容解析方法及びそのシステム並びに情報記録媒体 | |
| JPH05274126A (ja) | プログラム合成システム | |
| JP6888336B2 (ja) | スタブ生成装置、方法、及びプログラム | |
| JP3210203B2 (ja) | プログラム試験方法及びsqlシミュレータ | |
| CN116185488A (zh) | 一种系统重构的方法、装置、设备及存储介质 | |
| JPH09274570A (ja) | コンパイル方法及びコンパイラシステム |