JPS62216047A - リグレツシヨン防止用テストケ−スの決定方式 - Google Patents
リグレツシヨン防止用テストケ−スの決定方式Info
- Publication number
- JPS62216047A JPS62216047A JP61052111A JP5211186A JPS62216047A JP S62216047 A JPS62216047 A JP S62216047A JP 61052111 A JP61052111 A JP 61052111A JP 5211186 A JP5211186 A JP 5211186A JP S62216047 A JPS62216047 A JP S62216047A
- Authority
- JP
- Japan
- Prior art keywords
- test case
- statement
- test
- program
- sentence
- 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.)
- Granted
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 91
- 230000002265 prevention Effects 0.000 claims abstract description 14
- 238000000034 method Methods 0.000 claims description 7
- 230000004048 modification Effects 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 abstract description 6
- 238000012937 correction Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 5
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000009863 impact test Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000011179 visual inspection Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、プログラム修正時に行なわれるリグレッショ
ン防止用テストのテストケース決定方式〔従来の技術〕 データ処理システムで仕様変更や障害が発生してソース
プログラムを修正した場合、確かにその仕様変更がなさ
れたかまた障害が修正されたかの確認テストの他に、他
の機能のレベルダウンが起きていないかテスト(リグレ
ッション防止用テスト)する必要がある。このテストは
、全テストケースを再実行して行なっているのが現状で
あるが、これは時間がか\る。
ン防止用テストのテストケース決定方式〔従来の技術〕 データ処理システムで仕様変更や障害が発生してソース
プログラムを修正した場合、確かにその仕様変更がなさ
れたかまた障害が修正されたかの確認テストの他に、他
の機能のレベルダウンが起きていないかテスト(リグレ
ッション防止用テスト)する必要がある。このテストは
、全テストケースを再実行して行なっているのが現状で
あるが、これは時間がか\る。
ところであるプログラムが走ったとき、そのブログラム
の各文(命令)がどの程度実行されたかを集計するテス
トカバレージ測定ツールなるものがある。第4図にその
概要を示す。
の各文(命令)がどの程度実行されたかを集計するテス
トカバレージ測定ツールなるものがある。第4図にその
概要を示す。
これを処理順に説明すると、■あるプログラムBのテス
トケースT2を実行し、■実行したプログラム部分に関
する情報(5YSCOtlNT情報又はルート情報)を
得る。この情報は該プログラム#の各命令のうち、どれ
を、何回通った(実行した)かというもの、又は各命令
単位ではなくその複数個からなるルート(ブランチして
いる場合、どちらの経路かということ)単位でどのルー
トを何回通ったかというものである。この文またはルー
ト(こ\では単に文ともいう)はテストケースが変れば
変るものである。即ち実行されるプログラムは同じでも
テストケースが異なる(これで使用するデータが異なる
ことになる)と、if文などでルートが分れ、実行され
る命令文が異なることになる。どの文を通ったかの情報
は、コンパイラの機能などを利用して取出すことができ
る。
トケースT2を実行し、■実行したプログラム部分に関
する情報(5YSCOtlNT情報又はルート情報)を
得る。この情報は該プログラム#の各命令のうち、どれ
を、何回通った(実行した)かというもの、又は各命令
単位ではなくその複数個からなるルート(ブランチして
いる場合、どちらの経路かということ)単位でどのルー
トを何回通ったかというものである。この文またはルー
ト(こ\では単に文ともいう)はテストケースが変れば
変るものである。即ち実行されるプログラムは同じでも
テストケースが異なる(これで使用するデータが異なる
ことになる)と、if文などでルートが分れ、実行され
る命令文が異なることになる。どの文を通ったかの情報
は、コンパイラの機能などを利用して取出すことができ
る。
この情報は各テストケース毎に纏め、また各文単位でも
纏め(累計し)、このI!”J結果をカウントログファ
イルに記録する(■、■)。図示の例(Fl)ではプロ
グラムBがテストケースTl。
纏め(累計し)、このI!”J結果をカウントログファ
イルに記録する(■、■)。図示の例(Fl)ではプロ
グラムBがテストケースTl。
T2につき実行され、文番号100,200,300.
400の各命令文がテストケースT1では18.18,
4.4回実行され、テストケースT2では2,2.O,
0回実行され、従って累計は20.20,4.4である
としている。この累計結果は、当該テストによる各命令
文の実行状況(実行網羅率;カバレージ)を示す。また
このログファイルは、プログラムAもテストケースTI
T2.T3について実行され、各命令文の実行回数は図
示(F2)の如くであるとしている。カウントログファ
イルの内容はディスプレイに表示され又はプリンタによ
り用紙に打出され、目視に供される。
400の各命令文がテストケースT1では18.18,
4.4回実行され、テストケースT2では2,2.O,
0回実行され、従って累計は20.20,4.4である
としている。この累計結果は、当該テストによる各命令
文の実行状況(実行網羅率;カバレージ)を示す。また
このログファイルは、プログラムAもテストケースTI
T2.T3について実行され、各命令文の実行回数は図
示(F2)の如くであるとしている。カウントログファ
イルの内容はディスプレイに表示され又はプリンタによ
り用紙に打出され、目視に供される。
なおプログラムの命令文数は数百〜数千など多数あるの
が普通で、ログデータはその各々についてとるのが普通
であるから、カウントログファイルの文番号数は図示の
4つではなく数百〜数千と多数ある。図ではこれを簡略
化して示している。
が普通で、ログデータはその各々についてとるのが普通
であるから、カウントログファイルの文番号数は図示の
4つではなく数百〜数千と多数ある。図ではこれを簡略
化して示している。
テストケースについても同様である。
このようなテストカバレージ測定ツールを利用すれば、
リグレッション防止用テストケースを絞り込み、必要な
だけのテストにして所要時間の短縮などを図ることがで
きる。即ちカウントログファイルのFlを見るとテスト
ケースT2では文番号300と400の命令文は実行し
ていない。従って命令文300,400を修正したとき
のリグレッション防止用テストでは、テストケースT2
は実行する必要がない。
リグレッション防止用テストケースを絞り込み、必要な
だけのテストにして所要時間の短縮などを図ることがで
きる。即ちカウントログファイルのFlを見るとテスト
ケースT2では文番号300と400の命令文は実行し
ていない。従って命令文300,400を修正したとき
のリグレッション防止用テストでは、テストケースT2
は実行する必要がない。
本発明はか\る点に着目するもので、迅速、効率的なテ
ストを可能にしようとするものである。
ストを可能にしようとするものである。
本発明は、プログラム修正時に行なわれるリグレッショ
ン防止用テストのテストケース決定方式において、予め
プログラムを各テストケースにつき実行して、テストケ
ース別かつ文番号別に当該文の実行回数を記録しておき
、プログラムを修正したとき、当該文番号について前記
記録をチェックして、該修正の影響を受けるテストケー
スを検出し、これをリグレ・ツション防止用テストケー
スとすることを特徴とするものである。
ン防止用テストのテストケース決定方式において、予め
プログラムを各テストケースにつき実行して、テストケ
ース別かつ文番号別に当該文の実行回数を記録しておき
、プログラムを修正したとき、当該文番号について前記
記録をチェックして、該修正の影響を受けるテストケー
スを検出し、これをリグレ・ツション防止用テストケー
スとすることを特徴とするものである。
第1図に示すように本発明ではテストケース実行時にど
の文を通ったかという情報を採取し、これを蓄積してお
く。そしてソース修正が発生したとき、修正された文が
通過したルート上にあるテストケースを洗い出す。洗い
出されたテストケースが、実行ルートが変る可能性のあ
るテストケースである。第1図では、文番号200を修
正した時、該当するのはテストケース1であり、従って
これをリグレッション防止のためのテストケースとする
。テストケース2は該当せず、従って実行不要とする。
の文を通ったかという情報を採取し、これを蓄積してお
く。そしてソース修正が発生したとき、修正された文が
通過したルート上にあるテストケースを洗い出す。洗い
出されたテストケースが、実行ルートが変る可能性のあ
るテストケースである。第1図では、文番号200を修
正した時、該当するのはテストケース1であり、従って
これをリグレッション防止のためのテストケースとする
。テストケース2は該当せず、従って実行不要とする。
こうして実行を要するテストケースを絞り込むことがで
きる。
きる。
第4図でこれを行なうには、影響を凋査したい場所(文
、ブランチ、又はモジュール)を指定し■、指定された
場所が実行されているテストケースをカウントログファ
イルより求め、これを影響テストケース(修正の影響を
受けるテストケース、従ってリグレッション防止用テス
トケースとして採用すべきテストケース)として表示さ
せる■。
、ブランチ、又はモジュール)を指定し■、指定された
場所が実行されているテストケースをカウントログファ
イルより求め、これを影響テストケース(修正の影響を
受けるテストケース、従ってリグレッション防止用テス
トケースとして採用すべきテストケース)として表示さ
せる■。
必要部分のみ取出すと第3図のようになる。Tl。
T2.T3は各テストケースであり、これを実行すると
IF文などで各々の実行ルートが変り、必ずしも各ケー
スとも同一ではない。そこで各々の実行ルートを取出し
、実行ルートに名前(テストケース名)をつけて蓄積す
る。この蓄積(ファイル)に対して場所(文、ブランチ
など)を指定し、指定された場所を通っているテストケ
ースを探す。
IF文などで各々の実行ルートが変り、必ずしも各ケー
スとも同一ではない。そこで各々の実行ルートを取出し
、実行ルートに名前(テストケース名)をつけて蓄積す
る。この蓄積(ファイル)に対して場所(文、ブランチ
など)を指定し、指定された場所を通っているテストケ
ースを探す。
場所を■とすると、これを通っているテストケースは図
示例ではT1とT2であり、そこでこれらを影響テスト
ケースとして表示する。
示例ではT1とT2であり、そこでこれらを影響テスト
ケースとして表示する。
命令文の修正には更新の他に、新たな挿入、削除もある
。新たな挿入の場合には、当然、当該文番号はログデー
タになく、このま\では全テストケースが影響なしテス
トケースになってしまうが、熱論これは不都合である。
。新たな挿入の場合には、当然、当該文番号はログデー
タになく、このま\では全テストケースが影響なしテス
トケースになってしまうが、熱論これは不都合である。
この場合は挿入された文の番号の前後いずれか一方又は
両方の文番号の実行回数が1以上か否かをチェックし、
イエスであれば当該テストケースは影響テストケースと
する。また、挿入文番号の前、後の文番号に対応する文
が段落名、ラベルなどの非実行文(この場合には、実行
文と区別するために実行回数にはマイナス値を設定する
。)のときは、更に1つ前又は後の文番号で判定する。
両方の文番号の実行回数が1以上か否かをチェックし、
イエスであれば当該テストケースは影響テストケースと
する。また、挿入文番号の前、後の文番号に対応する文
が段落名、ラベルなどの非実行文(この場合には、実行
文と区別するために実行回数にはマイナス値を設定する
。)のときは、更に1つ前又は後の文番号で判定する。
上記の1つ前又は後の文番号も非実行文のことがあるが
、この場合は更に1つ進める。判定対象の文番号の実行
回数が0のときは影響なしテストケースとする。
、この場合は更に1つ進める。判定対象の文番号の実行
回数が0のときは影響なしテストケースとする。
削除は、更新と同じで、削除された文番号の実行回数が
1以上のテストケースは影響ありテストケース、0なら
影響なしテストケースとする。当該文番号が非実行文の
ときは、上記挿入と同様な判定処理を行なう。
1以上のテストケースは影響ありテストケース、0なら
影響なしテストケースとする。当該文番号が非実行文の
ときは、上記挿入と同様な判定処理を行なう。
第2図の例について説明すると、(alは文番号21)
0を挿入した例、(blは文番号3000などを削除し
た例である。+a)では文番号21)0の前、後の文番
号2100.2200をチェックし、これらの文番号の
実行回数値は−1(非実行文)であるからその次をチェ
ックし、文番号2000の実行回数10、文番号230
0の実行回数Oを得る。一方でもOでなければ影響あり
と考えられるので、このテストケースは影響ありテスト
ケースとみなす。
0を挿入した例、(blは文番号3000などを削除し
た例である。+a)では文番号21)0の前、後の文番
号2100.2200をチェックし、これらの文番号の
実行回数値は−1(非実行文)であるからその次をチェ
ックし、文番号2000の実行回数10、文番号230
0の実行回数Oを得る。一方でもOでなければ影響あり
と考えられるので、このテストケースは影響ありテスト
ケースとみなす。
(blでは、文番号3000を削除した場合は、この実
行回数は0であるからこのテストケースは影響なしテス
トケースになる。文番号3100を削除すると、この実
行回数は−1であるからこの前後をチェックし、これら
は共にOであるから、この場合も影響なしテストケース
になる。文番号3200を削除した場合も同様であるが
、文番号3300を削除すると、この実行回数は−1、
従って前後をチェックして0.10を得、共にOではな
いからこの場合は影響ありテストケースとなる。
行回数は0であるからこのテストケースは影響なしテス
トケースになる。文番号3100を削除すると、この実
行回数は−1であるからこの前後をチェックし、これら
は共にOであるから、この場合も影響なしテストケース
になる。文番号3200を削除した場合も同様であるが
、文番号3300を削除すると、この実行回数は−1、
従って前後をチェックして0.10を得、共にOではな
いからこの場合は影響ありテストケースとなる。
文番号3400を削除した場合も影響ありテストケース
となる。
となる。
第5図はカウントログファイルの論理構造例の一部を示
す。(alは文番号レコード、(b)は合計レコード、
(C1はテストケースレコードである。
す。(alは文番号レコード、(b)は合計レコード、
(C1はテストケースレコードである。
以上説明したように本発明によれば効率よく従って迅速
にリグレッション防止用テストを行なうことができ、プ
ログラム修正時に通用して甚だ有効である。
にリグレッション防止用テストを行なうことができ、プ
ログラム修正時に通用して甚だ有効である。
第1図は本発明の説明図、第2図は挿入、削除の場合の
判定要領の説明図、第3図はや一詳細な本発明の説明図
、第4図は測定ツールの説明図、第5図はその論理構造
の説明図である。 図面でTI、T2.・・・・・・はテストケース、F1
〜F2はログファイル内の各記録である。
判定要領の説明図、第3図はや一詳細な本発明の説明図
、第4図は測定ツールの説明図、第5図はその論理構造
の説明図である。 図面でTI、T2.・・・・・・はテストケース、F1
〜F2はログファイル内の各記録である。
Claims (2)
- (1)プログラム修正時に行なわれるリグレッション防
止用テストのテストケース決定方式において、予めプロ
グラムを各テストケースにつき実行して、テストケース
別かつ文番号別に当該文の実行回数を記録しておき、 プログラムを修正したとき、当該文番号について前記記
録をチェックして、該修正の影響を受けるテストケース
を検出し、これをリグレッション防止用テストケースと
することを特徴としたリグレッション防止用テストケー
スの決定方式。 - (2)プログラム修正の影響を受けるテストケースを、
命令文を更新又は削除したときは、該更新又は削除した
文番号の実行回数が1以上のテストケースを影響ありテ
ストケースとし、 命令文を新たに挿入したときは、該挿入文番号の前、後
の文番号をチェックし、いずれか一方又は両方の文番号
が1以上であれば影響ありテストケースとすることを特
徴とする特許請求の範囲第1項記載のリグレッション防
止用テストケースの決定方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61052111A JPH081609B2 (ja) | 1986-03-10 | 1986-03-10 | リグレッション防止用テストケースの決定方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61052111A JPH081609B2 (ja) | 1986-03-10 | 1986-03-10 | リグレッション防止用テストケースの決定方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS62216047A true JPS62216047A (ja) | 1987-09-22 |
JPH081609B2 JPH081609B2 (ja) | 1996-01-10 |
Family
ID=12905751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61052111A Expired - Fee Related JPH081609B2 (ja) | 1986-03-10 | 1986-03-10 | リグレッション防止用テストケースの決定方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH081609B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0635754A (ja) * | 1992-07-13 | 1994-02-10 | Hitachi Ltd | 再テスト方法およびそのための装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4939973B2 (ja) * | 2007-02-22 | 2012-05-30 | 富士通株式会社 | 試験制御装置、試験制御方法及び試験制御プログラム |
JP5468644B2 (ja) * | 2012-06-15 | 2014-04-09 | 日本発條株式会社 | スタビリンク |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS55163697A (en) * | 1979-06-05 | 1980-12-19 | Mitsubishi Electric Corp | Memory device |
JPS5852759A (ja) * | 1981-09-24 | 1983-03-29 | Fujitsu Ltd | パス情報の抽出方式 |
-
1986
- 1986-03-10 JP JP61052111A patent/JPH081609B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS55163697A (en) * | 1979-06-05 | 1980-12-19 | Mitsubishi Electric Corp | Memory device |
JPS5852759A (ja) * | 1981-09-24 | 1983-03-29 | Fujitsu Ltd | パス情報の抽出方式 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0635754A (ja) * | 1992-07-13 | 1994-02-10 | Hitachi Ltd | 再テスト方法およびそのための装置 |
Also Published As
Publication number | Publication date |
---|---|
JPH081609B2 (ja) | 1996-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5987250A (en) | Transparent instrumentation for computer program behavior analysis | |
US9098632B2 (en) | Computer program testing | |
US8214805B2 (en) | Method and system for graphical user interface testing | |
Göde et al. | Studying clone evolution using incremental clone detection | |
McIntosh et al. | Mining co-change information to understand when build changes are necessary | |
US20030093716A1 (en) | Method and apparatus for collecting persistent coverage data across software versions | |
US7401322B1 (en) | Software debugging tool | |
US20040078693A1 (en) | Software testing | |
US20160321586A1 (en) | Selecting tests for execution on a software product | |
Biagiola et al. | Web test dependency detection | |
Mondai et al. | Micro-clones in evolving software | |
US20070162522A1 (en) | Evidentiary enrichment of traceability links between software specification requirements | |
JP4939973B2 (ja) | 試験制御装置、試験制御方法及び試験制御プログラム | |
US20030088810A1 (en) | Methods and apparatus for determining software component sizes associated with errors | |
JP2816666B2 (ja) | バグ自動検出装置 | |
EP3113016A1 (en) | Tracing dependencies between development artifacts in a development project | |
CN114139923A (zh) | 任务关联性分析方法、装置及计算机可读存储介质 | |
JP2005228326A (ja) | データ処理システム、アプリケーションプログラムのカスタマイズパラメータを表示する方法およびコンピュータプログラム製品 | |
JPS62216047A (ja) | リグレツシヨン防止用テストケ−スの決定方式 | |
Toth et al. | Using version control history to follow the changes of source code elements | |
JPH11224186A (ja) | ソフトウェア解析装置及びソフトウェア解析方法 | |
JP5741265B2 (ja) | プログラム改善支援システム | |
US20040019885A1 (en) | Performance monitoring | |
JPH0926897A (ja) | プログラム解析装置及びプログラム解析方法 | |
JP2658065B2 (ja) | プログラムの評価方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |