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
Application number
JP60011262A
Other languages
English (en)
Inventor
Masamitsu Hamada
濱田 眞美
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP60011262A priority Critical patent/JPS61169944A/ja
Publication of JPS61169944A publication Critical patent/JPS61169944A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing 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回は実行されたものの個数を数え
ることによってプログラムのテスト網羅率を測定しよう
とするものである。
従来この稲のテスト網羅率測定は、分岐命令の直前に測
定機能を持つサブルーチン呼び出し命令またはマクロ命
令を組み込んで実施されていた。
このサブルーチン呼び出し等はオペレータによってソー
スプログラムに直接追加されるか、プリコンパイラによ
って追加されるか、またはコンパイラによってオブジェ
クトプログラム上に追加される。
〔発明が解決しようとする問題点〕
このような従来技術では、テストされるオブジェクトプ
ログラムと製品として出荷されるオブジェクトプログラ
ムとでは内容が異るため、テスト終了後に再コンパイル
および再リンクして製品となるオブジェクトプログラム
を作り直さねばならない。大規模なプログラムではこの
工程自体に入り込むミスによる品質の低下は避けられな
いという問題点がある。
本発明の目的は、製品そのままのプログラムを使ってテ
スト網羅率を測定できるプログラムのテスト機構を提供
することにある。
〔問題点を解決するための手段〕
本発明はテスト前にすべての分岐命令を第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.・・・・・・を次のように呼ぶことにする。
フラグ値OO:  正常な分岐命令(本来のプログラム
lに含まれる命令)、 フラグ値11:  テスト開始分岐命令、フラグ値璋:
 成立記憶分岐命令、 フラグ値10:  不成立記憶分岐命令すなわち、 C
PUは正常な分岐命令以外の分岐命令を取込むと割込み
を発生する。テスト開始状態設定手段2は、プログラム
1の直列プログラム部分の数に対応している分岐命令1
0,11.・・・・・・の数(以下、条件分岐点計数値
とする) N、を計数するとともに、すべての分岐命令
10,11.・・・・・・の2ビツトフラグをともに′
″1”にして分岐命令10,11.・・・・・・をテス
ト開始分岐命令とする。分岐状態セット手段4はCPU
による割込みが発生するとその割込みに応答して分岐命
令を次の(1)〜(4)のいずれかのように書き替える
(1)分岐命令がテスト開始分岐命令または成立記憶分
岐命令であって、割込み発生時のCPUか条件成立を示
していれば、分岐命令を成立記憶分岐命令に書き替える
(2)  分岐命令が不成立記憶分岐命令であって、割
込み発生時のCPUが条件成立を示していれば、分岐命
令を正常な分岐命令に書き替える。
(3)分岐命令がテスト開始分岐命令または不成立記憶
分岐命令であって、割込み発生時のCPUが条件不成立
を示していれば、分岐命令を不成立記憶分岐命令に書き
替える。
(4)分岐命令が成立記憶分岐命令であって、割込み発
生時CPUが条件不成立を示していれば、分岐命令を正
常な分岐命令に書き替える。
命令復元実行手段5は分岐状態セット手段4で書き替え
られた分岐命令をさらに正常な分岐命令に復元して実行
する。テスト状況計測手段6はテスト終了後プログラム
1に残っている成立記憶分岐命令および不成立記憶分岐
命令を重み1で、テスト開始分岐命令を重み2で計数し
、未通過分岐点計数値N、とする。条件分岐点マツプ3
および未通過分岐点マツプ7はそれぞれ条件分岐点計数
値N8.未通過分岐点計数値べを表示する。
次に、本実施例の動作を説明する。
まず、プログラムlがテスト実行される前にテスト開始
状態設定手段2によってすべての分岐命令10,11.
・・・・・・がテスト開始分岐命令に書き替えられると
ともに、条件分岐点マツプ3上に条件分岐点計数値N、
が表示される、 以上の準備の後1ニテストデータを投入しテストを実施
する。プログラム1における命令の実行が進み分岐命令
10(二至るとCPUによる割込みが発生してCPUか
ら分岐状態セット手段4に通知が入る。
分岐命令状態セット手段4は、この割込みに応答して分
岐命令lOを正常な分岐命令、成立記憶分岐命令、不成
立記憶分岐命令のいずれかに書き替える。さらに、書き
替えられた分岐命令10は命令復元実行手段5で正常な
分岐命令に復元され実行される。この分岐命令の実行は
CPUにおける実行と同様に行われる。すなわち、分岐
条件が成立する場合には飛び先アドレスを命令力クンタ
にセットし、分岐条件が不成立の場合には割込みを起こ
した分岐命令の次の命令のアドレスを命令力クンタにセ
ットし、いずれの場合も制御権をプログラム1に戻す。
テストが進行してプログラム1中の分岐命令が実行条件
に応じて次々と書き替えられて行く。1つの分岐命令が
1口実行されただけでは、この分岐命令を起点とする2
つの直列プログラム部分が共に実行されることはないが
、プログラム1の同一データまたは異なるテストデータ
によるテストの進行につれて、CPUの条件が成立およ
び不成立の両ケースで分岐命令が実行され、分岐状態セ
ット手段4によって正常な分岐命令に戻される分岐命令
の数が増える。
このようにして、テスト実行前にテスト開始分岐命令に
セットされた分岐命令が次々と正常な分岐命令に復元さ
れるため、テストが進行していくうち:二側込みを発生
することが次第に少なくなり、テスト実行効率の低下が
防止される。
そしてテスト終了後、テスト状況計測手段6によって未
通過分岐点計数値Nが未通過分岐点マツプ7に表示され
る。条件分岐点マツプ3上の条件分岐点計数値N、と未
通過分岐点計数値Nの比Nt /べが未網羅車であるか
ら、100チからこれを減算して容易に網羅率が得られ
る。
本実施例では連続するテストについて説明しであるが、
テスト実行したプログラムをテスト終了のたびにオブジ
ェクトプログラムファイル中へ書き戻し、断続的にテス
トを実施する場合でも同様にテスト網羅率を測定できる
また、本実施例では分岐命令の状態表現法としてアドレ
ス部のフラグビットを用いているが、計算機の命令体系
に応じて、命令コードを変える等の変化形を考えること
もできる他、この変化形をフラグビットによる方法と混
在させることも可能である。
〔発明の効果〕
本発明によれば以上に説明したように、プログラム中の
分岐命令を割込みの発生する分岐命令に置換する構成と
したため、 (1)プログラム自体の加工が不要化し、製品そのまま
のプログラムを用いてテスト網羅率を測定できる。
また、本発明はテスト対象となるプログラム中の分岐命
令を書き替える操作のみであり、制御表等を付帯しない
ため、 (2)  テスト操作は実使用と変わりなく、集計処理
もプログラム自体を指定することから操作が容易で誤り
が少ない (3)  大規模なソフト9エアシステムに対しても適
用できる という効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例に係るプログラムのテスト機
構の構成図である。 1・・・プログラム 2・・・テスト開始状態設定手段 3・・・条件分岐点マツプ 4・・・分岐状態セット手段 5・・・命令復元実行手段 6・・・テスト状況計測手段 7・・・未通過分岐点マツプ N・・・条件分岐点計数値 凡・・・未通過分岐点計数値 10.11・・・分岐命令

Claims (1)

  1. 【特許請求の範囲】 テストに先立って、プログラムに含まれる全ての分岐命
    令の数を計数して表示し、前記分岐命令を割込みを引き
    起こす第1の状態にセツトするテスト開始状態設定・表
    示手段と、 テスト実行中に割込みが発生したとき、割込みを引き起
    こした分岐命令の条件成立あるいは不成立に応じてこの
    分岐命令を割込みを引き起こす第2の状態あるいは通常
    の状態にセツトし直す分岐状態セツト手段と、 該分岐状態セツト手段でセツトし直された分岐命令に対
    応する通常の状態の分岐命令を実行する命令復元実行手
    段と、 テスト終了後、前記プログラムに含まれる前記第1の状
    態および前記第2の状態の分岐命令の数を計数して表示
    するテスト状況計測・表示手段とを有することを特徴と
    するプログラムのテスト機構
JP60011262A 1985-01-24 1985-01-24 プログラムのテスト機構 Pending JPS61169944A (ja)

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)

* Cited by examiner, † Cited by third party
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 電界放射型照明ランプの製造用治具

Cited By (2)

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