JPS61127044A - プログラムの単体テスト方式 - Google Patents

プログラムの単体テスト方式

Info

Publication number
JPS61127044A
JPS61127044A JP59250174A JP25017484A JPS61127044A JP S61127044 A JPS61127044 A JP S61127044A JP 59250174 A JP59250174 A JP 59250174A JP 25017484 A JP25017484 A JP 25017484A JP S61127044 A JPS61127044 A JP S61127044A
Authority
JP
Japan
Prior art keywords
module
test
under test
program
module under
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
Application number
JP59250174A
Other languages
English (en)
Other versions
JPH0619731B2 (ja
Inventor
Minoru Yanagisawa
実 柳沢
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP59250174A priority Critical patent/JPH0619731B2/ja
Publication of JPS61127044A publication Critical patent/JPS61127044A/ja
Publication of JPH0619731B2 publication Critical patent/JPH0619731B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00—Error detection; Error correction; Monitoring
    • G06F11/36—Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668—Testing of software
    • G06F11/3672—Test management

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)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、41数のモジュールでs成されるプログラム
の各モジュールプログラムを単体でテストするプログラ
ムの単体テスト方式に関し、′#に関連する他のモジュ
ールが作成されていなくてもテストできるプログラムの
単体テスト方式に関する。
一般に大きなシステムにおいては、プログラムが1本の
モジュール〔コンパイル単位〕で構成されているものは
少なく複数の七ジュールが集まって一つの処理を行なう
ように階層的に構成されている。
例えば、矛5図に示すようにモジュールAのサブルーチ
ンとしてモジュールBが、−1ニジエールBのサブルー
チンとしてモジュール0.Dが構成されて1つのプログ
ラムラ溝底するようにしている。
このような階層的なプログラムを開発するには。
テストの効率を考慮してモジュールの作成順序等が決定
され、一般に矛6図で示す如くシステム設計された後、
各モジュールA、B、O,Dが作成される。
この開発の手順としては、上位のモジュールAから作成
するトップダウン方式と、下位のモジュールC又はDか
ら作成するボトムアップ方式とがある。
〔従来の技術〕
このような各モジュールが階層的に構成されたプログラ
ムをテストするには、全てのモジュールが充放してから
プログラムをテストすることが望ましいが、各モジュー
ルが順次作成されていくような場合には、各モジュール
の作成毎にそのモジュールを単体でテストするほうが開
発手順上効率がよい。
しかしながら、モジュールを単体でテストするにしても
9階層的なプログラムの構成では、関連する他のモジュ
ールが存在しないとテストで@なするときは、モジュー
ルA、O,Dが必要となる。
このため、従来は、テストするモジュールに関連する仮
モジュールをテスト担当者が作成し、係る七ジュールの
単体テストを行っていた。
例えば、モジュールBThテストするため上位のモジュ
ールAの仮モジュール(ドライバという)及ヒ下位のモ
ジュールO,Dの仮モジュール(スタブという)を作成
していた。
〔発明が解決しようとする問題点〕
このようなモジュールのテストで必まとなるドライバや
スタブは仮モジュールなので小さく簡単に作成できるが
9通常のプログラム作成と同様にコーディングやこれの
テストの工数全豪し、単体テストのためのドライバやス
タブの開発全モジュール個々に要するという問題があっ
た。
〔問題点を解決するための手段〕
本発明は、テストされるモジュールの必女とするドライ
バ又はスタブ全自動的に発生させ、仮モジュールの作成
全必要としないで単体テストできるプログラムのテスト
方式を提供するにある。
このため1本発明は、複数のモジュールが階層的に構成
されるプログラムのモジュール単体をプロセッサが実行
してテスト全行うプログラムの単体テスト方式において
、該被テストモジュール全解析して該被テストモジュー
ルに対する上位又は下位のモジュールの代替機能を行う
テスト支援ツールを設け、該テスト支援ツールは該被テ
ストモジュールが該上位モジエールから呼出される場合
には、該被テストモジュールに渡すパラメータの領域を
メモリに確保してテストデータをセット後該被テストモ
ジュールを起動せしめ、該被テストモジュールが該下位
モジュールを呼出す場合には。
該被テストモジュールのテスト実行中に該下位モジュー
ルが呼出されたことに応じて被テストモジュールに渡す
テストデータを該メモリにセットして該被テストモジュ
ールに渡すこと全特徴としている。
〔作用〕
本発明では、テスト支援ツール(プログラム)が設けら
れるが、この支援ツールがドライバ又はスタブ機能を自
動的に実行するようにしている。
即ち、支援ツールは被テストモジュールを解析し。
これに含まれる上位又は下位モジュールのインターフェ
イス(接続)情報を抽出し、上位又は下位モジュールの
存在を検出し、上位モジュールが存在する時は被テスト
モジュールの起動に先立ち。
インターフェイス情報?基にパラメータ領域をメモリに
確保し、更にこの領域に外部から与えられたテストデー
タをセットして被テストモジエールのテスト起動全行な
い、又下位モジュールが存在するときは、該被テストモ
ジュールのテスト実行中に下位モジュールを呼出すこと
に応じてインターフェイス情報から外部から与えられた
テストデータ全メモリにセットして被テストモジエール
に渡すようにして被テストモジュールのテストを続行さ
せるようにしている。
〔実施例〕
以下1本発明を実施例によシ詳細に説明する。
矛1図は本発明の一実施例ブロック図であり。
図中、lはコンピュータ(プロセッサ)であシ。
プログラム全実行して所望の処理全行なうもの。
10はそのO8(オペレーティングシステム)部でアシ
、コンビエータ1全体の制御を行なうもの。
11はモジュール解析部であ)、後述する7口〈論理設
計言語で記述された論理設計情報を解析して00BOL
のソースプログラムを作成し、且つインターフェイス(
デバッグ)情報を抽出するもの。
12は0OBOLコンパイラであシ、ソースプログラム
をコンビエータの実行できる形式のa−トモジュールに
変換するもの、13はテスト支援ツール部であシ、後述
する如くインターフェイス情報からドライバ/スタブ機
能を行なうものである。
淘、OSSi20モジュール解析部11.C0BOLコ
ンパイラ12及びテスト支援ツール部13はコンビ為−
タlの実行する機能全ブロック化したものである。2は
ファイルメモリであシ、各覆ファイル全格納しておくも
の、20は論理設計情報ファイルであシ、プログラマ−
が作成した後述する論理設計情報を格納しておくもの、
21はC0BOLソースフアイルであシ、モジュール解
析部11によって作成された0OBOLソースグロダラ
ムを格納しておくもの、22はデパック情報ファイルで
あシ、モジュール解析部11で抽出されたインターフェ
イス情報を格納しておくもの。
23はロードモジュールファイルでアb、  C0BO
Lコンパイラ12が作成したロードモジュールを格納し
ておくもの、24はテストデータファイルであ)、オペ
レータが入力したテストデータ全格納しておくもの、3
はコンソールであシ、ディスプレイとキーボードから成
シ、オペレータが操作して論理設計情報やテストデータ
を入力するものである。
次に9才1図実施例構成の動作について矛2図の処理フ
ロー図、矛3図の論理設計情報説明図及び矛4図のテス
ト支援ツールの動作説明図音用いて説明する。
以下。周知の高級言語である論理設計言語によシブログ
ラミングされたものについてその動作を説明する。
■ 論理設計言語によるプログラミングは、矛3図に示
す如く各モジュールA、B、O,Dで共通なフォーマッ
ト定義書(矛3図(4))、各モジュールのインターフ
ェイス定義書(,1′73図@)、各モジュールのモジ
ュール定義書(矛3図0)等を作成することによシ行な
う。この共通フォーマット定義書は各モジュールで共通
な項目(データフの形式1桁数等の定義を行なうもので
あシ、インターフェイス定義書は各モジュールの入出力
項目。
モジュール劣等?定義するためのものであシ、基本設計
段階で決定され、コンソール3よp=xンピ纂−タ1t
−介しファイルメモリ2の論理設計情報ファイルに格納
されている。
一方、モジュール定義書は各モジュール毎に作成され、
当該モジュールの処理や論理、その条件が手順に従って
羅列されたものであシ、プログラマ−は各モジュールに
心象な処理等を順医記述してプログラミングし、これが
当該モジュールの処理同容を示す。オペレータはこのモ
ジュール定義書を完成する毎にコンソール3からコンビ
瓢−タl′ft介し論理設計情報ファイル20に格納せ
しめる。
例えば、モジュールBのモジュール定義書が完成し、論
理設計情報ファイル20に格納され、他のモジュールA
、O,Dは完成していないとする。
■ オペレータはコンソールよシコンピユータlにO8
部l0のジョブ制御機能を働かせ、モジュールBの0O
BOLソ一スプログラム全作成するように指令する。こ
れによってコンパイラの一種であるモジニール解析部l
lは論理設計情報ファイル20の論理設計情報を読出し
、0OBOLで記述されたソースプログラムTh作成1
.、OOB゛OLソースファイル21に格納する。この
0OBOLで記述されたソースプログラムは1例えば、
1−4図の被テストモジュールとして示すものであシ、
論理設計言語全用いずプログラマ−が0OBOLでプロ
グラミングしたものに相当する。
■ これとともにモジュール解析部11は論理設計情報
からインターフェイス情報全抽出する。例えば、矛3図
の例では、モジュールBはモジュールAに呼び出され、
パラメータの数はGl、G2の2ツでその領域はAI 
、A2であることがモジニールBのインターフェイス定
義書よシ抽出され。
そのパラメータGl、G2の長さは共通フォーマット定
義書よシ抽出される。又、モジュールBのモジュール定
義書よシモジュールC(日数=%日数計算)、モジュー
ルDt−呼び出すことが抽出され、その使用領域はモジ
ュールO,Dのインターフェイス定義書より抽出される
。
これを0OBOLソースプログラムの記述から見ると1
才4図の被テストモジュールの記述の如く、モジュール
AのAI、A2を用い9%ジュールC(DB 1. モ
ジュールDのB2t−用いることになる。
モジュール解析部11はモジュールBが呼び出されると
きのインターフェイス(モジュール名。
パラメータの数、パラメータの領域名、その長さ等)及
びモジュールBが呼び出す時のインターフェイス全論理
設計情報から抽出し、デバッグ情報ファイル22に格納
する。
このようにしてモジュールBに対する0OBOLソース
プログラムが作成され、且つモジュール間のインターフ
ェイス情報が抽出される。
■ 次に、モジュールBの単体テス)を行なう。
このため、オペレータはコンソール3よシコンピユータ
1を介しモジュールBのテストの定めのテストデータ全
テストデータファイル24に格納する。そして、オペレ
ータはテスト実行指令全コンビエータlに入力する。コ
ンビエータlでは。
O8!l5IOが0OBOLコンパイラ12t?動作せ
しめ、0OBOLソースフアイル21のモジュールBの
°0OBOLソースプログラムをコンビエータlの実行
できるロードモジュールに翻訳してロードモジュールフ
ァイル23に格納する。仄に08部10はテスト支援ツ
ール部13を起動し、デバッグ情報ファイル22のイン
ターフェイス情報を解析せしめる。
■ テスト支援ツール部13は、矛2図の処理フロー図
の如く前述のインターフェイス情報を解析し、上位モジ
ュールが存在するか全検出する。上位モジュールが存在
するとドライバ機能、即ち上位モジュール代替機能を実
行する。先づ、被テストモジュールBに渡すパラメータ
の受は渡し領域全コンビーータ1の図示しない内部メそ
りに確保する。前述の例では、牙4図に示す如く内部メ
モリにA1及びA2の入出力領域を確保し、そのアドレ
ス全セットしておく。
次に、コンソール3よ勺オペレータにテストデータの指
示全表示し、オペレータはテストデータファイル24の
どのテストデータ全セットするか全コンソール3より指
示する。これによって内部メモリのA1の領域にテスト
データファイル24の必まなテストデータ(上位モジュ
ールからの入力データ)がセットされることになる。
これによってモジュールBはパラメータAIを用いて処
理を実行できる。伺、A2は七ジュールBの実行結果の
出力のためのものである。
■ 仄に、テスト支援ツール部13は051110に対
し被テストモジュールの起動全指示する。
08部10はロードモジュールファイル23のモジュー
ルBのロードモジュールを実行し、その中でモジュール
AのパラメータAlTh用いて行なう。
■ このようにしてモジュールBのテスト金実行してい
くうちに、モジュールC又はl) (1) @catt
 ’(呼び出し)命令があ6.os部10がロードモジ
ュールファイル23t−探索した結果モジュール0、D
のロードモジュールが見付からなかったとすると、エラ
ーをテスト支援ツール部13に通知する。
■ これによってテスト支援ツール部13は、被テスト
モジュールが下位モジュール全呼ぶために用意した内部
メモリのパラメータ領域(BlやB2〕のアドレスを得
、コンソール3よシオペレータにテストデータの指示を
表示する。オペレータはテストデータファイル24のど
のテストデータをセットするかをコンソール3より指示
する。これによって内部メモリのパラメータ領域にテス
トデータファイル24の必要なテストデータ(下位モジ
ュールの出力データ)がセットされることになる。
従って被テストモジュールBはこのテストデータを下位
モジュールの出力データとして受は取シ。
更にテストを続行していく。
このようにして、テスト支援ツール部13が。
インターフェイス情報から上位又は下位モジュールの代
替機能を自動的に実行し、被テストモジュールのテスト
を行なわしめる。
上述の実施例では、論理設計言語でプログラムした例に
ついて説明したが、0OBOLによりてプログラムして
ソースプログラムを作成してもよく、この場合00BO
Lソースプログラムからインターフェイス情報が抽出さ
れる。又、テストデータf ハラメータ領域にセットす
るのにコンソール3よ)オペレータが指示しているが、
これ全自動的に行なってもよい。更にソースプログラム
の言語も0OBOLに限らず、他の言語を用いてもよい
。
以上不発明を一実施例によ)説明したが1本発明は本発
明の主旨に従い種々の変形が可能であシ。
本発明からこれらを排除するものではない。
〔発明の効果〕
以上説明した様に1本発明によれば、仮数のモジュール
が階層的に構成されるプログラムのモジュール単体をプ
ロセッサが実行してテス)Th行うプログラムの単体テ
スト方式において、該被テストモジュールを解析して該
被テストモジュールに対する上位又は下位のモジュール
の代替機能全行ウテスト支援ツール全設け、該テスト支
援ツールは該被テストモジュールが該上位モジュールか
ら呼出される場合には、該被テストモジュールに渡すパ
ラメータの領域全メモリに確保してテストデータをセッ
ト後筬被テストモジュール全起動せしめ、該被テストモ
ジュールが該下位モジュールを呼出す場合には、該被テ
ストモジュールのテスト笑行中に該下位もジュールが呼
出されたことに応じて被テストモジュールに渡すテスト
データ全該メモリにセットして該被テストモジュールに
渡すことを特徴としているので、関連する他のモジュー
ルが完成していなくても被テストモジュールのテス)T
h自動的に実行できるという効果を奏し。
係るモジュールが階層的に構成されたプログラムの開発
効率を高めることができる。又、被テストモジュールに
対するドライバ、スタブをプログラミングしなくてよい
ため、ドライバやスタブのテストのための作業をしなく
て済むという効果も奏し、一層プログラム作成を容易に
且つ短期間で完成せしめることに寄与するところが大き
い。
【図面の簡単な説明】
矛1図は本発明の一実施例ブロック図、 、t−2図は
矛1図実施側構成のテスト支援ツールの処理フロー図、
 、tFa図は矛1図笑厖例構成に用いられる論理設計
言語の説明図1才4図は、?1図実施例構成のテスト支
援ツールの動作説明図、矛5図は階層的モジュール構成
プログラムの説明図、矛6図は、31F5図構成のプロ
グラムの開発手順説明図である。 図中、1・・・コンピュータ(プロセッサ)、2・・・
ファイルメモリ、3・・・コンソール、13・・・テス
ト支援ツール。 第1図 第2図 第3図

Claims (1)

    【特許請求の範囲】
  1. 複数のモジュールが階層的に構成されるプログラムのモ
    ジュール単体をプロセッサが実行してテストを行うプロ
    グラムの単体テスト方式において、該被テストモジュー
    ルを解析して該被テストモジュールに対する上位又は下
    位のモジュールの代替機能を行うテスト支援ツールを設
    け、該テスト支援ツールは該被テストモジュールが該上
    位モジュールから呼出される場合には、該被テストモジ
    ュールに渡すパラメータの領域をメモリに確保してテス
    トデータをセット後該被テストモジュールを起動せしめ
    、該被テストモジュールが該下位モジュールを呼出す場
    合には、該被テストモジュールのテスト実行中に該下位
    モジュールが呼出されたことに応じて被テストモジュー
    ルに渡すテストデータを該メモリにセットして該被テス
    トモジュールに渡すことを特徴とするプログラムの単体
    テスト方式。
JP59250174A 1984-11-27 1984-11-27 プログラムの単体テスト方式 Expired - Fee Related JPH0619731B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP59250174A JPH0619731B2 (ja) 1984-11-27 1984-11-27 プログラムの単体テスト方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP59250174A JPH0619731B2 (ja) 1984-11-27 1984-11-27 プログラムの単体テスト方式

Publications (2)

Publication Number Publication Date
JPS61127044A true JPS61127044A (ja) 1986-06-14
JPH0619731B2 JPH0619731B2 (ja) 1994-03-16

Family

ID=17203917

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59250174A Expired - Fee Related JPH0619731B2 (ja) 1984-11-27 1984-11-27 プログラムの単体テスト方式

Country Status (1)

Country Link
JP (1) JPH0619731B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008262510A (ja) * 2007-04-13 2008-10-30 Fuji Xerox Co Ltd 電子回路装置、故障診断装置、故障診断システム、及び故障診断プログラム。
JP2014211864A (ja) * 2013-03-14 2014-11-13 富士通株式会社 未完成ソフトウェアの分析

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58175061A (ja) * 1982-04-06 1983-10-14 Toshiba Corp コンピユ−タ・プログラムのテスト装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58175061A (ja) * 1982-04-06 1983-10-14 Toshiba Corp コンピユ−タ・プログラムのテスト装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008262510A (ja) * 2007-04-13 2008-10-30 Fuji Xerox Co Ltd 電子回路装置、故障診断装置、故障診断システム、及び故障診断プログラム。
JP2014211864A (ja) * 2013-03-14 2014-11-13 富士通株式会社 未完成ソフトウェアの分析

Also Published As

Publication number Publication date
JPH0619731B2 (ja) 1994-03-16

Similar Documents

Publication Publication Date Title
Teitelman et al. The Interlisp Programming Environment.
CN111796831A (zh) 一种多芯片兼容的编译方法和装置
EP0552895B1 (en) Method for improving performance in an automated test system
JP2001034497A (ja) 逆アセンブラのバイナリコード取得方法
US6009268A (en) Device for programming a stored program controller
JPH0766342B2 (ja) プログラムテスト装置
JPH08314760A (ja) プログラム開発支援装置
JPH0619731B2 (ja) プログラムの単体テスト方式
Friedrich et al. Efficient object-oriented software with design patterns
JPH07295612A (ja) 高級言語シーケンス命令プログラム生成装置および汎用シーケンサ
Ramamoorthy Distributed techniques in software systems integration
JPH1031584A (ja) ソフトウエアの検証自動化装置
JPH08212103A (ja) マルチスレッド・プロセッサのテスト・データ作成方法
JPH01209542A (ja) 論理検証装置
TWI236626B (en) System and method for integrating programs of targeted system to save computer system resources
JPS6020275A (ja) マルチプロセサの簡易プログラミングシステム
JPH07334356A (ja) ソフトウェアの開発過程記述支援方法および装置
JPH0272407A (ja) ラダー・プログラム変換装置
JP2003076547A (ja) 制御ソフトウェア自動生成システムおよび方法
JPH06231003A (ja) 実行可能ファイルのデバッガ
CN114580325A (zh) 芯片RTL验证阶段Tarmac日志分析方法
JP2000330775A (ja) 組み込みシステム開発方法
Reid Fortran is getting more and more powerful
JPS63163636A (ja) 並列処理実行方式
JPH03186933A (ja) 言語処理システムのシンボル処理方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees