JPH05282177A - テストカバレージ測定方式 - Google Patents

テストカバレージ測定方式

Info

Publication number
JPH05282177A
JPH05282177A JP4106220A JP10622092A JPH05282177A JP H05282177 A JPH05282177 A JP H05282177A JP 4106220 A JP4106220 A JP 4106220A JP 10622092 A JP10622092 A JP 10622092A JP H05282177 A JPH05282177 A JP H05282177A
Authority
JP
Japan
Prior art keywords
program
branch
segment
execution
test
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
Application number
JP4106220A
Other languages
English (en)
Inventor
Takeo Ikeda
丈男 池田
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP4106220A priority Critical patent/JPH05282177A/ja
Publication of JPH05282177A publication Critical patent/JPH05282177A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】プログラムをテスト用に加工せずに、通常の検
査工程でテストカバレージを自動的に測定できるように
する。 【構成】言語翻訳過程においてテスト対象プログラム1
0がその分岐点によって複数のセグメントに分割され、
その分岐点を示すアドレス情報が各セグメント毎に求め
られる。そして、実行プログラム12は所定のテストデ
ータによって実行される。この場合、実行された命令が
分岐命令の際には、その分岐命令のアドレス情報が分岐
命令検出器13−3で採取される。プログラムの実行が
終了すると、先に求められた各セグメントのアドレス情
報とプログラム実行時に採取された分岐命令のアドレス
情報とが分岐アドレス照合器16によって比較され、こ
の比較結果によって各セグメントのテスト達成度合いが
測定される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は情報処理システムのソ
フトウェア検査過程におけるテストカバレージの計測方
式に関する。
【0002】
【従来の技術】一般に、プログラム開発の過程において
は、そのプログラム中のエラーを検出するためのテスト
が実行される。このテストは、テスト対象のプログラム
に実際にデータを与えて実行し、その際の結果や過程を
調べることによって行なわれるものである。ところが、
プログラムの実行経路は分岐命令によって分割されるの
で、与えられるデータによつてその実行部分は変化され
る。このため、プログラムのテストを行なった場合に
は、実際にテストされた部分とテストされない部分とが
生じる。
【0003】そこで、実際のプログラムテスト作業にお
いては、エラーを検出する処理だけでなく、プログラム
の制御の流れの中で全ての流れについてテストされたか
どうかを調べるための処理も行なわれる。このようなテ
スト達成度を調べるための指標としては、テストカバレ
ージが良く使用されている。このテストカバレージは、
テスト対象のプログラムが一連の実行過程でどの程度網
羅的にテストされたかを示す尺度である。
【0004】従来、このようなテストカバレージを求め
るために用いられている主な方式は、テスト対象プログ
ラムを分岐点等によって複数のセグメントに分割し、各
セグメントの開始位置に外部サブルーチンを呼び出すた
めの命令を予め挿入して、テスト対象プログラムの実行
時にその外部サブルーチンで実行状況を監視しながらは
テストカバレージを計測するための情報の採取を行なう
ものである。この方式においては、テスト対象プログラ
ムを実行しながらテストカバレージを求めることができ
る。
【0005】しかしながら、この方式の場合には、各セ
グメントの開始位置に外部サブルーチンを呼び出すため
の命令が挿入されたテスト専用の実行プログラムを、実
際に運用されるプログラムとは別に作成する必要がある
ので、そのプログラム作成の作業に多くの時間が要され
るという問題がある。また、各セグメント毎に外部サブ
ルーチンを呼び出すための命令が挿入されていることか
ら、その作成されたテスト専用の実行プログラムのサイ
ズが大きくなってしまう問題もある。
【0006】
【発明が解決しようとする課題】従来では、各セグメン
ト毎に外部サブルーチンを呼び出すための命令を挿入し
ていたため、テスト専用のプログラムを実際に運用され
るテスト対象のプログラムとは別個に作成しなければな
らない欠点があった。
【0007】この発明はこのような点に鑑みてなされた
もので、実際に運用されるテスト対象のプログラムには
一切手を加えることなく、そのテスト対象プログラムの
実行によってテストカバレージを自動的に求められるよ
うにし、ソフトウェア検査過程における作業の軽減を十
分に実現することができるテストカバレージ測定方式を
提供することを目的とする。
【0008】
【課題を解決するための手段および作用】この発明のテ
ストカバレージ測定方式は、テスト対象プログラムを実
行プログラムに変換する言語翻訳過程で前記テスト対象
プログラムをその分岐点により複数のセグメントに分割
し、その分岐点を示すアドレス情報を各セグメント毎に
求める言語処理手段と、実行プログラムを所定のテスト
データによって実行し、その実行過程で実行された分岐
命令のアドレス情報を採取するプログラム実行手段と、
前記テスト対象プログラムの実行終了時に、前記言語処
理手段によって求められた各セグメントのアドレス情報
と前記プログラム実行手段で採取された分岐命令のアド
レス情報とを照合し、その照合結果に基づいて各セグメ
ントのテスト達成度合いを測定する手段とを具備するこ
とを特徴とする。
【0009】このテストカバレージ測定方式において
は、言語翻訳過程でテスト対象プログラムがその分岐点
によって複数のセグメントに分割され、その分岐点を示
すアドレス情報が各セグメント毎に求められる。そし
て、実行プログラムに変換されたテスト対象プログラム
は所定のテストデータによって実行される。この場合、
実行された命令が分岐命令の際には、その分岐命令のア
ドレス情報が採取される。テスト対象プログラムの実行
が終了すると、先に求められた各セグメントのアドレス
情報とプログラム実行時に採取された分岐命令のアドレ
ス情報とが照合される。アドレス情報が一致するものは
テストされた部分であり、不一致のものはテストされな
かった部分であるので、この照合結果によって各セグメ
ントのテスト達成度合いが測定される。
【0010】このため、テスト対象プログラムに対して
テストカバレージ測定のための加工を何ら施すことな
く、そのテスト対象プログラムを言語翻訳およびプログ
ラム実行といった通常の検査工程を通すだけでテストカ
バレージを自動的に測定できるようになり、テスト作業
の軽減を図ることができる。
【0011】
【実施例】以下、図面を参照してこの発明の実施例を説
明する。
【0012】図1にはこの発明の一実施例に係わるテス
トカバレージ測定方式を実現するためのコンピュータシ
ステムの構成が示されている。このコンピュータシステ
ムは、言語プロセッサ11、演算制御装置13、記憶装
置14、データベースファイル装置15、分岐アドレス
照合器16、および表示装置17から構成されている。
【0013】言語プロセッサ11はテスト対象のソース
プログラム10を測定用実行プログラム12に変換する
言語翻訳機構であり、この言語プロセッサ11はその言
語翻訳の過程でテスト対象プログラム内の分岐点に着目
してそれを複数のセグメントに分割し、各セグメントの
開始アドレス等の情報をデータベース15に格納する機
能を有している。
【0014】この言語プロセッサ11によって作成され
た測定用実行プログラム12は、カバレージ測定を行な
うためのプログラムであり、通常の実行可能形式のプロ
グラムと同様にカバレージ測定のための情報は保有して
ない。
【0015】演算制御装置13は、実行プログラムの命
令に対応した実際の演算処理を実行するプログラム実行
機構である。このプログラム実行は通常のプログラム実
行と同じ方法で行なわれるものであるので、ここではそ
の機構については説明を省略し、カバレージ測定に関す
る処理系統のみを説明する。すなわち、演算制御装置1
3は命令デコーダ13−1を有しているが、この命令デ
コーダ13−1のデコード出力は図示しない演算回路に
供給されるほか、スイッチ13−2を介して分岐命令検
出器13−3にも供給される。これらスイッチ13−2
および分岐命令検出器13−3は、カバレージ測定のた
めに設けられたものである。
【0016】命令解読器13−1は、測定用実行プログ
ラム12の各命令コードをデコードしてその命令の内容
を解読するものであり、その命令に応じた各種演算制御
を行なうための制御コードを発生する。分岐命令検出器
13−3は、スイッチ13−2を介して供給される制御
コードを受信して命令解読器13−1で解読された命令
が分岐命令か否かを検出し、分岐命令の際にはその分岐
命令のアドレスを記憶装置14に格納する。スイッチ1
3−2はスイッチ信号が投入された場合にのみ制御コー
ドを分岐命令検出器13−3に供給し、スイッチ信号が
投入されない場合には分岐命令検出器13−3には制御
コードを渡さない。
【0017】このスイッチ信号は、図示しないキーボー
ドからのキー操作や、専用の操作スイッチの操作に応じ
て発生されるものであり、カバレージ測定を実施するか
否かを指示するためのモード指示信号として使用され
る。
【0018】記憶装置14は、分岐命令検出器13−3
によって検出されたアドレス情報を蓄積するものであ
る。データベースファイル装置15はカバレージ情報格
納データベースを蓄積するものであり、このカバレージ
情報格納データベースは言語プロセッサ11によって作
成される。
【0019】このカバレージ情報格納データベースに格
納されるカバレージ情報の一例を図2に示す。
【0020】図2に示されているように、カバレージ情
報は、分割された各セグメントの出現順に付与されたセ
グメント番号、分割位置、セグメント開始命令アドレ
ス、実行回数、実行日時などの詳細な情報から構成され
る。この場合、セグメント開始アドレスは、測定用実行
プログラム12内でのハードウェア命令に対応したアド
レス値を有している。また、分割位置は、ソースプログ
ラム10上における分割位置である。
【0021】図3には、記憶装置14に採取されるアド
レス情報の一例が示されている。
【0022】記憶装置14には、各実行セグメントの分
岐命令毎に、そのオペレーションコード(OPコード)
と、分岐命令の分岐条件設立の有無を示す情報(真/
偽)と、分岐先のアドレス(分岐アドレス)が、登録さ
れる。例えば、図に斜線で示されているように、セグメ
ント1,3,4,6の順でプログラムが実行されたとす
ると、セグメント1の分岐命令1については、分岐条件
設立(真)を示す情報と、その分岐アドレス(A3)が
格納される。また、セグメント3の分岐命令3について
は、分岐条件設立(偽)を示す情報と、その分岐アドレ
ス(A5)が格納される。さらに、セグメント4の分岐
命令4については、分岐条件設立(真)を示す情報と、
その分岐アドレス(A6)が格納される。
【0023】このようにして、分岐命令のアドレス情報
を採取した場合には、分岐条件設立(真)の時は、その
分岐アドレスが実行されたセグメントの開始アドレスを
示し、また、分岐条件不設立(偽)の時は、1つ前のエ
ントリに格納されている分岐アドレスの値+1が、実行
されたセグメントの開始アドレスを示すことになる。す
なわち、図3の例では、開始アドレスがA3,A4(A
3+1),A6,…のセグメントが実行されたことにな
る。
【0024】分岐アドレス照合器16は、記憶装置14
に格納されている分岐命令のアドレス情報とデータベー
スファイル装置15のセグメント開始アドレスとを照合
して、その一致の有無に応じて各セグメントのテスト達
成度合いを調べるためのものである。すなわち、記憶装
置14に格納されている分岐命令のアドレス情報と等し
い値のセグメント開始アドレスを発見した場合には、分
岐アドレス照合器16は、そのセグメント開始アドレス
に対応したセグメント情報の実行回数、および実行日時
を更新する。
【0025】一方、記憶装置14に格納されている分岐
命令のアドレス情報と等しい値のセグメント開始アドレ
スがデータベースファイル装置15内のセグメント情報
にない場合には、分岐アドレス照合器16は、セグメン
ト情報の更新は行なわずに、その一致しなかった分岐命
令のアドレス情報を記憶装置14から削除する。このよ
うな処理は記憶装置14に蓄積されている全てのアドレ
ス情報について実行され、これによってテスト実行され
たセグメントの情報だけが更新されることになる。
【0026】表示装置17は、データベースファイル装
置15に登録されているセグメント情報を画面表示する
ためのものであり、その表示画面によってテストの達成
の度合いを容易に利用者に認識させることができる。
【0027】次に、図4のフローチャートを参照して、
図1のシステムにおけるカバレージ測定の動作手順を説
明する。
【0028】まず、テスト対象プログラム10が言語プ
ロセッサ11に入力されると、そこでそのテスト対象プ
ログラム10の分岐位置に着目した分割処理が実行され
る(ステップS11)。この分割処理では分割されたプ
ログラムの各セグメント毎にそのセグメント開始アドレ
スが求められ、その各セグメント開始アドレスは図2,
図3で説明した対応するセグメント番号、分割位置の情
報と一緒にデータベースファイル装置15に格納され
る。また、このような分割処理と並行して、テスト対象
プログラム10を実行プログラムに変換するための翻訳
処理が実行されて、実行可能形式の実行プログラム12
が作成され専用のプログラムファイルに格納される。
【0029】この実行プログラム12は演算制御装置1
3に送られ、そこで所定のテストデータのもとに実行さ
れる(ステップS12)。このテストデータは、プログ
ラムファイル内に予め用意されている。この演算制御装
置13によるプログラム実行過程では、命令解読器13
−1によって各命令が解読されて順次実行される。この
場合、各命令の終了時には命令解読器13−1で解読さ
れた制御コードがスイッチ13−2に出力される。
【0030】スイッチ13−2がスイッチ信号によって
オンされている場合には、カバレージ測定実施モードと
なり、命令解読器13−1で解読された制御コードは分
岐命令検出器13−3に渡される(ステップS13,S
14)。分岐命令検出器13−3では、受けとった制御
コードつまり実行された命令が分岐命令であるか否かの
判定が行なわれる。
【0031】分岐命令でない場合には何も実行されず、
分岐命令の時にはその分岐命令のアドレスが採取され
て、記憶装置14に格納される。このステップS14に
おける分岐命令のアドレス採取は、プログラムの実行が
終了するまで繰り返し実行される。
【0032】一方、スイッチ13−2がスイッチ信号に
よってオフされている場合には、カバレージ測定不実施
モードとなり、分岐命令のアドレス採取は実行されな
い。
【0033】プログラム実行が終了すると(ステップS
15)、分岐アドレス照合器16によるアドレス照合処
理が実行される(ステップS16)。このアドレス照合
処理においては、記憶装置14に蓄積されている分岐命
令のアドレスとデータベース装置15のセグメント開始
アドレスとの比較が行なわれ、分岐命令のアドレスと等
しいアドレスがデータベース装置15内に見つかったと
きにそのセグメント情報の実行回数および実行日時が更
新される。そして、この後、データベース装置15内の
情報が表示装置17に画面表示される(ステップS1
7)。
【0034】以上のように、この実施例においては、言
語翻訳過程においてテスト対象プログラム10がその分
岐点によって複数のセグメントに分割され、その分岐点
を示すアドレス情報が各セグメント毎に求められる。そ
して、実行プログラム12は所定のテストデータによっ
て実行される。この場合、実行された命令が分岐命令の
際には、その分岐命令のアドレス情報が分岐命令検出器
13−3で採取される。プログラムの実行が終了する
と、先に求められた各セグメントのアドレス情報とプロ
グラム実行時に採取された分岐命令のアドレス情報とが
分岐アドレス照合器16によって比較される。アドレス
情報が一致するものはテストされた部分であり、不一致
のものはテストされなかった部分であるので、この比較
結果によってデータベースファイル装置15のカバレー
ジ情報の更新がなされ、各セグメントのテスト達成度合
いが測定される。
【0035】このため、テスト対象プログラムに対して
テストカバレージ測定のための加工を何ら施すことな
く、そのテスト対象プログラムを言語翻訳およびプログ
ラム実行といった通常の検査工程を通すだけでテストカ
バレージを自動的に測定できるようになり、テスト作業
の軽減を図ることができる。
【0036】また、更新されたカバレージ情報が画面表
示されるので、利用者は容易にテストカバレージを認識
することができる。
【0037】尚、ここでは、プログラムにおける各セグ
メントのテスト実行度合いを測定したが、同様の手法
で、セグメント間の各実行経路についてのテスト達成の
度合い(パスカバレージ)を測定することも可能であ
る。
【0038】
【発明の効果】以上のように、この発明によれば、実際
に運用されるテスト対象のプログラムには一切手を加え
ることなく、そのテスト対象プログラムの実行によって
テストカバレージを自動的に求められるようになり、ソ
フトウェア検査過程における作業の軽減を十分に実現す
ることができる。
【図面の簡単な説明】
【図1】この発明の一実施例に係わるカバレージ測定方
式を実現するためのコンピュータシステムの構成の一例
を示すブロック図。
【図2】同実施例に設けられたデータベースファイルに
蓄積されるカバレージ情報の一例を示す図。
【図3】同実施例に設けられた記憶装置に採取されるア
ドレス情報の一例を示す図。
【図4】同実施例において実行されるカバレージ測定処
理の動作手順を説明するフローチャート。
【符号の説明】
10…テスト対象プログラム、11…言語プロセッサ、
12…測定用実行プログラム、13…演算制御装置、1
4…記憶装置、15…データベースファイル装置、16
…分岐アドレス照合器、17…表示装置、13−1…命
令解読器、13−2…スイッチ、13−3…分岐命令検
出器。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 テスト対象プログラムをそのプログラム
    内の分岐点で複数のセグメントに分割し、各セグメント
    の先頭アドレスを検出する手段と、 前記テスト対象プログラムを所定のテストデータによっ
    て実行し、その実行過程で分岐命令が実行された際にそ
    の分岐命令のアドレスを採取する手段と、 前記テスト対象プログラムの実行終了時に前記各セグメ
    ントの先頭アドレスと前記分岐命令のアドレスとを照合
    し、その照合結果に基づいて前記テスト対象プログラム
    のテスト達成度合いを求める手段とを具備することを特
    徴とするテストカバレージ測定方式。
JP4106220A 1992-03-31 1992-03-31 テストカバレージ測定方式 Pending JPH05282177A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4106220A JPH05282177A (ja) 1992-03-31 1992-03-31 テストカバレージ測定方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4106220A JPH05282177A (ja) 1992-03-31 1992-03-31 テストカバレージ測定方式

Publications (1)

Publication Number Publication Date
JPH05282177A true JPH05282177A (ja) 1993-10-29

Family

ID=14428067

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4106220A Pending JPH05282177A (ja) 1992-03-31 1992-03-31 テストカバレージ測定方式

Country Status (1)

Country Link
JP (1) JPH05282177A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8312433B2 (en) 2008-12-15 2012-11-13 International Business Machines Corporation Operating system aided code coverage

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8312433B2 (en) 2008-12-15 2012-11-13 International Business Machines Corporation Operating system aided code coverage

Similar Documents

Publication Publication Date Title
JPH05282177A (ja) テストカバレージ測定方式
JPH08305609A (ja) プログラムのテスト方法および装置
US11880681B2 (en) Software analysis apparatus
JP3687203B2 (ja) クロマトグラフ質量分析用データ処理装置
US20050235266A1 (en) System and method for business rule identification and classification
JPH0678998B2 (ja) 定性分析装置
JPH09288595A (ja) 演算処理装置
JPH0553865A (ja) プログラム返却情報自動解析装置
JPH09101880A (ja) プログラム分析装置
JP2752827B2 (ja) デバッガ処理方式
JP2795332B2 (ja) ループ処理誤り検出装置
JPH0934754A (ja) プログラムの性能測定装置と方法
JPH09319611A (ja) プログラム開発支援装置
JPH08272649A (ja) プログラムモジュールの単体試験に用いる試験項目票の作成方法
JPH05151031A (ja) オーバーヘツド情報算出方式
JPH10232795A (ja) ソフトウェア部品組み合わせテスト方法
JPH04281536A (ja) 会話型ツールにおけるプログラム再テスト方式
JPH09297680A (ja) アプリケーション開発環境に於けるパラメータ入力方法及びパラメータ入力方式
JPH06250876A (ja) 対話型デバック支援システム
JP3213792B2 (ja) 論理シミュレ−ション検証方式
JPH07134669A (ja) 警告メッセージ処理方式
JPS6324425A (ja) テスト網羅状態検出方式
JPH0695780A (ja) 操作自動実行装置
JPH10207740A (ja) デバッグシステム
JPH02236626A (ja) ソースプログラム解析装置