JPS61169944A - プログラムのテスト機構 - Google Patents
プログラムのテスト機構Info
- Publication number
- JPS61169944A JPS61169944A JP60011262A JP1126285A JPS61169944A JP S61169944 A JPS61169944 A JP S61169944A JP 60011262 A JP60011262 A JP 60011262A JP 1126285 A JP1126285 A JP 1126285A JP S61169944 A JPS61169944 A JP S61169944A
- Authority
- JP
- Japan
- Prior art keywords
- branch
- instruction
- branch instruction
- program
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はプログラムのテスト網羅率を測定するテスト機
構に関する。
構に関する。
計算機システムが社会の基盤となるにつれて、近年ソフ
トウェアの品質に対する要求が増大化している。プログ
ラムは、通常、コーディング終了後にテスト実行中な行
なうことC:よって品質の十全さを期すが、テストの充
分さを示す指標としてテストカバレージ指標C1を用い
る方法が知られている(杉田義明、高村賢治=「C1に
よるソフトウェアの品質保証」ソフトウエアシンポジク
ム′80論文集A−3,1)。この方法は、プログラム
において論理判断による分岐点、スタート点および停止
点の内のいずれか2点で区分される直列プログラム部分
中に含まれる命令群は全体が一度に実行されるか、され
ないかのいずれかであるという事実に基づいて、プログ
ラムを構成する直列プログラム部分のうち、テスト実行
過程中に少なくとも1回は実行されたものの個数を数え
ることによってプログラムのテスト網羅率を測定しよう
とするものである。
トウェアの品質に対する要求が増大化している。プログ
ラムは、通常、コーディング終了後にテスト実行中な行
なうことC:よって品質の十全さを期すが、テストの充
分さを示す指標としてテストカバレージ指標C1を用い
る方法が知られている(杉田義明、高村賢治=「C1に
よるソフトウェアの品質保証」ソフトウエアシンポジク
ム′80論文集A−3,1)。この方法は、プログラム
において論理判断による分岐点、スタート点および停止
点の内のいずれか2点で区分される直列プログラム部分
中に含まれる命令群は全体が一度に実行されるか、され
ないかのいずれかであるという事実に基づいて、プログ
ラムを構成する直列プログラム部分のうち、テスト実行
過程中に少なくとも1回は実行されたものの個数を数え
ることによってプログラムのテスト網羅率を測定しよう
とするものである。
従来この稲のテスト網羅率測定は、分岐命令の直前に測
定機能を持つサブルーチン呼び出し命令またはマクロ命
令を組み込んで実施されていた。
定機能を持つサブルーチン呼び出し命令またはマクロ命
令を組み込んで実施されていた。
このサブルーチン呼び出し等はオペレータによってソー
スプログラムに直接追加されるか、プリコンパイラによ
って追加されるか、またはコンパイラによってオブジェ
クトプログラム上に追加される。
スプログラムに直接追加されるか、プリコンパイラによ
って追加されるか、またはコンパイラによってオブジェ
クトプログラム上に追加される。
このような従来技術では、テストされるオブジェクトプ
ログラムと製品として出荷されるオブジェクトプログラ
ムとでは内容が異るため、テスト終了後に再コンパイル
および再リンクして製品となるオブジェクトプログラム
を作り直さねばならない。大規模なプログラムではこの
工程自体に入り込むミスによる品質の低下は避けられな
いという問題点がある。
ログラムと製品として出荷されるオブジェクトプログラ
ムとでは内容が異るため、テスト終了後に再コンパイル
および再リンクして製品となるオブジェクトプログラム
を作り直さねばならない。大規模なプログラムではこの
工程自体に入り込むミスによる品質の低下は避けられな
いという問題点がある。
本発明の目的は、製品そのままのプログラムを使ってテ
スト網羅率を測定できるプログラムのテスト機構を提供
することにある。
スト網羅率を測定できるプログラムのテスト機構を提供
することにある。
本発明はテスト前にすべての分岐命令を第1の状態にセ
ットし、分岐命令通過時に条件成立・不成立(一応じて
この分岐命令を第2の状態あるいは通常の状態に書き替
え、テスト終了後に第1.第2の状態の分岐命令の数を
計数することによりプログラムのテスト網羅率を測定す
るものである。
ットし、分岐命令通過時に条件成立・不成立(一応じて
この分岐命令を第2の状態あるいは通常の状態に書き替
え、テスト終了後に第1.第2の状態の分岐命令の数を
計数することによりプログラムのテスト網羅率を測定す
るものである。
本発明のテスト機構は、テストに先立って、プログラム
に含まれる全ての分岐命令の数を計数して表示し、分岐
命令を割込みを引き起こす第1の状態にセカトするテス
ト開始状態設定・表示手段と、テスト実行中に割込みが
発生したとき、割込みを引き起こした分岐命令の条件成
立あるいは不成立に応じてこの分岐命令を割込みを引き
起こす第2の状態あるいは通常の状態にセットし直す分
岐状態セット手段と、セットし直された分岐命令に対応
する通常の状態の分岐命令を実行する命令復元手段と、
テスト終了後、プログラムに含まれる第1の状態および
第2の状態の分岐命令の数を計数して表示するテスト状
況計測・表示手段を有している。
に含まれる全ての分岐命令の数を計数して表示し、分岐
命令を割込みを引き起こす第1の状態にセカトするテス
ト開始状態設定・表示手段と、テスト実行中に割込みが
発生したとき、割込みを引き起こした分岐命令の条件成
立あるいは不成立に応じてこの分岐命令を割込みを引き
起こす第2の状態あるいは通常の状態にセットし直す分
岐状態セット手段と、セットし直された分岐命令に対応
する通常の状態の分岐命令を実行する命令復元手段と、
テスト終了後、プログラムに含まれる第1の状態および
第2の状態の分岐命令の数を計数して表示するテスト状
況計測・表示手段を有している。
以下、本発明の実施例(:ついて図面を参照して説明す
る。
る。
第1図は本発明の一実施例に係るプログラムのテスト機
構の構成図である。プログラム1はテストの対象となる
プログラムであり、アドレス部20ビットを含む32ビ
ツト構成の分岐命令10,11.・・・・・・を有して
いる。なお、このプログラム1を実行させる不図示のC
PUは取込んだ分岐命令10.11. 川・・・のアド
レス部の最下位ビットが″1″のときには1命令位置異
常”と認識して割込みを発生し、アドレス部の最上位ビ
ットが′″1”のときには1アドレス空間外指定異常″
と認識して、同様に割込みを発生する。また、分岐命令
中アドレス部の最上位ビットおよび最下位ビットからな
る2ビツトフラグの組み合せによつて、分岐命令10,
11.・・・・・・を次のように呼ぶことにする。
構の構成図である。プログラム1はテストの対象となる
プログラムであり、アドレス部20ビットを含む32ビ
ツト構成の分岐命令10,11.・・・・・・を有して
いる。なお、このプログラム1を実行させる不図示のC
PUは取込んだ分岐命令10.11. 川・・・のアド
レス部の最下位ビットが″1″のときには1命令位置異
常”と認識して割込みを発生し、アドレス部の最上位ビ
ットが′″1”のときには1アドレス空間外指定異常″
と認識して、同様に割込みを発生する。また、分岐命令
中アドレス部の最上位ビットおよび最下位ビットからな
る2ビツトフラグの組み合せによつて、分岐命令10,
11.・・・・・・を次のように呼ぶことにする。
フラグ値OO: 正常な分岐命令(本来のプログラム
lに含まれる命令)、 フラグ値11: テスト開始分岐命令、フラグ値璋:
成立記憶分岐命令、 フラグ値10: 不成立記憶分岐命令すなわち、 C
PUは正常な分岐命令以外の分岐命令を取込むと割込み
を発生する。テスト開始状態設定手段2は、プログラム
1の直列プログラム部分の数に対応している分岐命令1
0,11.・・・・・・の数(以下、条件分岐点計数値
とする) N、を計数するとともに、すべての分岐命令
10,11.・・・・・・の2ビツトフラグをともに′
″1”にして分岐命令10,11.・・・・・・をテス
ト開始分岐命令とする。分岐状態セット手段4はCPU
による割込みが発生するとその割込みに応答して分岐命
令を次の(1)〜(4)のいずれかのように書き替える
。
lに含まれる命令)、 フラグ値11: テスト開始分岐命令、フラグ値璋:
成立記憶分岐命令、 フラグ値10: 不成立記憶分岐命令すなわち、 C
PUは正常な分岐命令以外の分岐命令を取込むと割込み
を発生する。テスト開始状態設定手段2は、プログラム
1の直列プログラム部分の数に対応している分岐命令1
0,11.・・・・・・の数(以下、条件分岐点計数値
とする) N、を計数するとともに、すべての分岐命令
10,11.・・・・・・の2ビツトフラグをともに′
″1”にして分岐命令10,11.・・・・・・をテス
ト開始分岐命令とする。分岐状態セット手段4はCPU
による割込みが発生するとその割込みに応答して分岐命
令を次の(1)〜(4)のいずれかのように書き替える
。
(1)分岐命令がテスト開始分岐命令または成立記憶分
岐命令であって、割込み発生時のCPUか条件成立を示
していれば、分岐命令を成立記憶分岐命令に書き替える
。
岐命令であって、割込み発生時のCPUか条件成立を示
していれば、分岐命令を成立記憶分岐命令に書き替える
。
(2) 分岐命令が不成立記憶分岐命令であって、割
込み発生時のCPUが条件成立を示していれば、分岐命
令を正常な分岐命令に書き替える。
込み発生時のCPUが条件成立を示していれば、分岐命
令を正常な分岐命令に書き替える。
(3)分岐命令がテスト開始分岐命令または不成立記憶
分岐命令であって、割込み発生時のCPUが条件不成立
を示していれば、分岐命令を不成立記憶分岐命令に書き
替える。
分岐命令であって、割込み発生時のCPUが条件不成立
を示していれば、分岐命令を不成立記憶分岐命令に書き
替える。
(4)分岐命令が成立記憶分岐命令であって、割込み発
生時CPUが条件不成立を示していれば、分岐命令を正
常な分岐命令に書き替える。
生時CPUが条件不成立を示していれば、分岐命令を正
常な分岐命令に書き替える。
命令復元実行手段5は分岐状態セット手段4で書き替え
られた分岐命令をさらに正常な分岐命令に復元して実行
する。テスト状況計測手段6はテスト終了後プログラム
1に残っている成立記憶分岐命令および不成立記憶分岐
命令を重み1で、テスト開始分岐命令を重み2で計数し
、未通過分岐点計数値N、とする。条件分岐点マツプ3
および未通過分岐点マツプ7はそれぞれ条件分岐点計数
値N8.未通過分岐点計数値べを表示する。
られた分岐命令をさらに正常な分岐命令に復元して実行
する。テスト状況計測手段6はテスト終了後プログラム
1に残っている成立記憶分岐命令および不成立記憶分岐
命令を重み1で、テスト開始分岐命令を重み2で計数し
、未通過分岐点計数値N、とする。条件分岐点マツプ3
および未通過分岐点マツプ7はそれぞれ条件分岐点計数
値N8.未通過分岐点計数値べを表示する。
次に、本実施例の動作を説明する。
まず、プログラムlがテスト実行される前にテスト開始
状態設定手段2によってすべての分岐命令10,11.
・・・・・・がテスト開始分岐命令に書き替えられると
ともに、条件分岐点マツプ3上に条件分岐点計数値N、
が表示される、 以上の準備の後1ニテストデータを投入しテストを実施
する。プログラム1における命令の実行が進み分岐命令
10(二至るとCPUによる割込みが発生してCPUか
ら分岐状態セット手段4に通知が入る。
状態設定手段2によってすべての分岐命令10,11.
・・・・・・がテスト開始分岐命令に書き替えられると
ともに、条件分岐点マツプ3上に条件分岐点計数値N、
が表示される、 以上の準備の後1ニテストデータを投入しテストを実施
する。プログラム1における命令の実行が進み分岐命令
10(二至るとCPUによる割込みが発生してCPUか
ら分岐状態セット手段4に通知が入る。
分岐命令状態セット手段4は、この割込みに応答して分
岐命令lOを正常な分岐命令、成立記憶分岐命令、不成
立記憶分岐命令のいずれかに書き替える。さらに、書き
替えられた分岐命令10は命令復元実行手段5で正常な
分岐命令に復元され実行される。この分岐命令の実行は
CPUにおける実行と同様に行われる。すなわち、分岐
条件が成立する場合には飛び先アドレスを命令力クンタ
にセットし、分岐条件が不成立の場合には割込みを起こ
した分岐命令の次の命令のアドレスを命令力クンタにセ
ットし、いずれの場合も制御権をプログラム1に戻す。
岐命令lOを正常な分岐命令、成立記憶分岐命令、不成
立記憶分岐命令のいずれかに書き替える。さらに、書き
替えられた分岐命令10は命令復元実行手段5で正常な
分岐命令に復元され実行される。この分岐命令の実行は
CPUにおける実行と同様に行われる。すなわち、分岐
条件が成立する場合には飛び先アドレスを命令力クンタ
にセットし、分岐条件が不成立の場合には割込みを起こ
した分岐命令の次の命令のアドレスを命令力クンタにセ
ットし、いずれの場合も制御権をプログラム1に戻す。
テストが進行してプログラム1中の分岐命令が実行条件
に応じて次々と書き替えられて行く。1つの分岐命令が
1口実行されただけでは、この分岐命令を起点とする2
つの直列プログラム部分が共に実行されることはないが
、プログラム1の同一データまたは異なるテストデータ
によるテストの進行につれて、CPUの条件が成立およ
び不成立の両ケースで分岐命令が実行され、分岐状態セ
ット手段4によって正常な分岐命令に戻される分岐命令
の数が増える。
に応じて次々と書き替えられて行く。1つの分岐命令が
1口実行されただけでは、この分岐命令を起点とする2
つの直列プログラム部分が共に実行されることはないが
、プログラム1の同一データまたは異なるテストデータ
によるテストの進行につれて、CPUの条件が成立およ
び不成立の両ケースで分岐命令が実行され、分岐状態セ
ット手段4によって正常な分岐命令に戻される分岐命令
の数が増える。
このようにして、テスト実行前にテスト開始分岐命令に
セットされた分岐命令が次々と正常な分岐命令に復元さ
れるため、テストが進行していくうち:二側込みを発生
することが次第に少なくなり、テスト実行効率の低下が
防止される。
セットされた分岐命令が次々と正常な分岐命令に復元さ
れるため、テストが進行していくうち:二側込みを発生
することが次第に少なくなり、テスト実行効率の低下が
防止される。
そしてテスト終了後、テスト状況計測手段6によって未
通過分岐点計数値Nが未通過分岐点マツプ7に表示され
る。条件分岐点マツプ3上の条件分岐点計数値N、と未
通過分岐点計数値Nの比Nt /べが未網羅車であるか
ら、100チからこれを減算して容易に網羅率が得られ
る。
通過分岐点計数値Nが未通過分岐点マツプ7に表示され
る。条件分岐点マツプ3上の条件分岐点計数値N、と未
通過分岐点計数値Nの比Nt /べが未網羅車であるか
ら、100チからこれを減算して容易に網羅率が得られ
る。
本実施例では連続するテストについて説明しであるが、
テスト実行したプログラムをテスト終了のたびにオブジ
ェクトプログラムファイル中へ書き戻し、断続的にテス
トを実施する場合でも同様にテスト網羅率を測定できる
。
テスト実行したプログラムをテスト終了のたびにオブジ
ェクトプログラムファイル中へ書き戻し、断続的にテス
トを実施する場合でも同様にテスト網羅率を測定できる
。
また、本実施例では分岐命令の状態表現法としてアドレ
ス部のフラグビットを用いているが、計算機の命令体系
に応じて、命令コードを変える等の変化形を考えること
もできる他、この変化形をフラグビットによる方法と混
在させることも可能である。
ス部のフラグビットを用いているが、計算機の命令体系
に応じて、命令コードを変える等の変化形を考えること
もできる他、この変化形をフラグビットによる方法と混
在させることも可能である。
本発明によれば以上に説明したように、プログラム中の
分岐命令を割込みの発生する分岐命令に置換する構成と
したため、 (1)プログラム自体の加工が不要化し、製品そのまま
のプログラムを用いてテスト網羅率を測定できる。
分岐命令を割込みの発生する分岐命令に置換する構成と
したため、 (1)プログラム自体の加工が不要化し、製品そのまま
のプログラムを用いてテスト網羅率を測定できる。
また、本発明はテスト対象となるプログラム中の分岐命
令を書き替える操作のみであり、制御表等を付帯しない
ため、 (2) テスト操作は実使用と変わりなく、集計処理
もプログラム自体を指定することから操作が容易で誤り
が少ない (3) 大規模なソフト9エアシステムに対しても適
用できる という効果がある。
令を書き替える操作のみであり、制御表等を付帯しない
ため、 (2) テスト操作は実使用と変わりなく、集計処理
もプログラム自体を指定することから操作が容易で誤り
が少ない (3) 大規模なソフト9エアシステムに対しても適
用できる という効果がある。
第1図は本発明の一実施例に係るプログラムのテスト機
構の構成図である。 1・・・プログラム 2・・・テスト開始状態設定手段 3・・・条件分岐点マツプ 4・・・分岐状態セット手段 5・・・命令復元実行手段 6・・・テスト状況計測手段 7・・・未通過分岐点マツプ N・・・条件分岐点計数値 凡・・・未通過分岐点計数値 10.11・・・分岐命令
構の構成図である。 1・・・プログラム 2・・・テスト開始状態設定手段 3・・・条件分岐点マツプ 4・・・分岐状態セット手段 5・・・命令復元実行手段 6・・・テスト状況計測手段 7・・・未通過分岐点マツプ N・・・条件分岐点計数値 凡・・・未通過分岐点計数値 10.11・・・分岐命令
Claims (1)
- 【特許請求の範囲】 テストに先立って、プログラムに含まれる全ての分岐命
令の数を計数して表示し、前記分岐命令を割込みを引き
起こす第1の状態にセツトするテスト開始状態設定・表
示手段と、 テスト実行中に割込みが発生したとき、割込みを引き起
こした分岐命令の条件成立あるいは不成立に応じてこの
分岐命令を割込みを引き起こす第2の状態あるいは通常
の状態にセツトし直す分岐状態セツト手段と、 該分岐状態セツト手段でセツトし直された分岐命令に対
応する通常の状態の分岐命令を実行する命令復元実行手
段と、 テスト終了後、前記プログラムに含まれる前記第1の状
態および前記第2の状態の分岐命令の数を計数して表示
するテスト状況計測・表示手段とを有することを特徴と
するプログラムのテスト機構
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60011262A JPS61169944A (ja) | 1985-01-24 | 1985-01-24 | プログラムのテスト機構 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60011262A JPS61169944A (ja) | 1985-01-24 | 1985-01-24 | プログラムのテスト機構 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS61169944A true JPS61169944A (ja) | 1986-07-31 |
Family
ID=11773035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP60011262A Pending JPS61169944A (ja) | 1985-01-24 | 1985-01-24 | プログラムのテスト機構 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS61169944A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6436343A (en) * | 1987-07-31 | 1989-02-07 | Nec Corp | System for confirming program running route |
JP2008192533A (ja) * | 2007-02-07 | 2008-08-21 | Dialight Japan Co Ltd | 電界放射型照明ランプの製造用治具 |
-
1985
- 1985-01-24 JP JP60011262A patent/JPS61169944A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6436343A (en) * | 1987-07-31 | 1989-02-07 | Nec Corp | System for confirming program running route |
JP2008192533A (ja) * | 2007-02-07 | 2008-08-21 | Dialight Japan Co Ltd | 電界放射型照明ランプの製造用治具 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5038348A (en) | Apparatus for debugging a data flow program | |
US5935006A (en) | Debug apparatus and method for debugging game program in ROM cartridge | |
GB2375200A (en) | Monitoring execution of privileged instructions | |
US4652997A (en) | Method and apparatus for minimizing overhead when executing nested do loops | |
JPS61169944A (ja) | プログラムのテスト機構 | |
CN116909819A (zh) | 一种处理器调试方法、装置、计算机设备及处理器 | |
US20050050524A1 (en) | Generating software test information | |
US6772372B2 (en) | System and method for monitoring unaligned memory accesses | |
JP2007058588A (ja) | プログラム保護機能を持つプロセッサ | |
JPH0581070A (ja) | プログラマブルコントローラ、およびプログラマブルコントローラにおけるユーザプログラム実行方法 | |
JPH02211535A (ja) | コンピュータプロセッサ実行装置 | |
US20240037221A1 (en) | Processor and attack detection method thereof | |
JPS6376028A (ja) | 仮想計算機システムにおける命令ステツプ実行制御方式 | |
JPH0283749A (ja) | マイクロプロセッサの内部割込み制御方式 | |
JPS6191733A (ja) | プログラムのテスト機構 | |
JPS6155749A (ja) | 情報処理装置 | |
JPS5924355A (ja) | ブランチトレ−スヒストリ処理方式 | |
JPH0340143A (ja) | パイプライン方式計算機におけるデバッグ方式 | |
JP2899009B2 (ja) | 情報処理装置 | |
JPS61235955A (ja) | プログラムのデバツグ方式 | |
JPH0695910A (ja) | 異常処理のための対話型デバッグ制御方式 | |
JPS6240550A (ja) | プログラムデバツク装置 | |
JPH02226441A (ja) | ソフトウェアテスト装置 | |
JPH01166228A (ja) | 末通過チェックポイント自動検出デバッグ方式 | |
JPH0552969B2 (ja) |