JPH0588939A - 副プログラム単体テスト方式 - Google Patents

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

Info

Publication number
JPH0588939A
JPH0588939A JP3074335A JP7433591A JPH0588939A JP H0588939 A JPH0588939 A JP H0588939A JP 3074335 A JP3074335 A JP 3074335A JP 7433591 A JP7433591 A JP 7433591A JP H0588939 A JPH0588939 A JP H0588939A
Authority
JP
Japan
Prior art keywords
subprogram
program
variable
input
output
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
JP3074335A
Other languages
English (en)
Inventor
Hiroshi Funaki
洋 船木
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 JP3074335A priority Critical patent/JPH0588939A/ja
Publication of JPH0588939A publication Critical patent/JPH0588939A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 副プログラムを実行可能な主プログラムとし
て出力することにより、単体テストの作成時間を減ら
す。 【構成】 副プログラムにおいて、仮引数と大域的変数
を解析し入力変数と出力変数とに分類する変数解析手段
21と、入力変数を入力する手続きを最初の実行文の前
に挿入する仮引数入力手順挿入手段22と、出力変数を
計算結果として出力する手続きを副プログラムから制御
が戻る直前に挿入する副プログラム計算結果出力手順挿
入手段23および、この副プログラムを主プログラムに
変換する主プログラム生成手段24から構成される。 【効果】 新しくプログラムを書き足さずに副プログラ
ムの単体テストを行える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、副プログラムの単体テ
ストに関するものである。
【0002】
【従来の技術】副プログラムの単体をテストするため
に、その副プログラムを呼び出し、テストするための仮
の主プログラムを作らなくてはいけなかった。
【0003】副プログラムを単体でテストする場合、従
来の方法だと、いちいち実引数を与え、副プログラムの
結果を出力するような仮の主プログラムを作らなくては
いけなかった。そのため、フィルムがよけいに必要とな
り、また手間も多く掛かっていた。
【0004】
【発明が解決しようとする課題】本発明はテストしたい
副プログラム以外の原始プログラムを作ることなく、仮
引数の値および大域的変数の値の入力だけでその副プロ
グラムの実行結果を知ることが出来る副プログラム単体
テスト方式を提供することにある。
【0005】
【課題を解決するための手段】主プログラムと副プログ
ラムとに分割してコンパイルが可能な言語処理系を有す
る情報処理システムにおいて、副プログラム内の仮引数
と大域的変数を解析し、副プログラムの外で定義され副
プログラムの中では参照のみされる入力変数と、副プロ
グラムの中で定義され副プログラムの外で参照される出
力変数と、副プログラムの外で定義され副プログラム内
で参照され、その後再定義され、再び副プログラム外で
参照される入出力変数とに分類する変数解析手段と、上
記の変数解析手段において、入力変数または入出力変数
と判断された仮引数または大域的変数の値を入力する手
続きを副プログラムの原始プログラムの最初の実行文の
前に挿入する仮引数入力手続き挿入手段と、変数解析手
段において出力変数または入出力変数と判断された仮引
数または大域的変数について、その副プログラムの計算
結果として出力する手続きを副プログラムから制御が戻
る直前に挿入する副プログラム計算結果出力手続き挿入
手段と、副プログラムを主プログラムに変換する主プロ
グラム生成手段とを含む単体テストプログラム生成手段
と、単体テストプログラム生成手段により生成された副
プログラムを実行することにより副プログラムの単体テ
ストを行うことを特徴とする。
【0006】
【実施例】以下、本発明をその実施例を示す図面に基づ
き詳細に説明する。
【0007】図1は、本発明の一実施例を示す構成図で
ある。
【0008】図1を参照すると、本発明の実施例は、原
始プログラム1と単体テストプログラム生成手段2と、
コンパイラ3と、リンカ4と、入出力ライブラリ5と実
行可能プログラム6から構成される。
【0009】原始プログラム1は、単体テストを行いた
い副プログラムである。単体テストプログラム生成手段
2は、副プログラムが必要としている情報や計算した結
果を示す変数を解析する変数解析手段21と、上記の変
数解析手段21において入力変数あるいは入出力変数と
判断された変数について、副プログラムの開始時点に、
その変数の値の入力を行うように文を挿入する仮引数入
力手続き挿入手段22と、上記の変数解析手段21にお
いて出力変数あるいは入出力変数と判断された変数につ
いて、その変数の値を出力する文を、副プログラムから
制御が戻る直前に挿入する副プログラム計算結果出力手
続き挿入手段23と、副プログラムを主プログラムに変
換する主プログラム生成手段24から構成される。コン
パイラ3は、本方式の対象としている副プログラムをコ
ンパイルできるコンパイラである。リンカ4はコンパイ
ラ3によって生成されたオブジェクト・プログラムをリ
ンクし、実行可能プログラムを生成するリンカである。
入出力ライブラリ5はコンパイラ3用の入出力ルーチン
のライブラリである。実行可能プログラム6は、本方式
によって実行可能となった副プログラムの単体テストプ
ログラムである。
【0010】次に、本発明の実施例を、図1を用いて説
明する。ただし、用いる言語はFORTRAN77 とする。
【0011】まず、変数解析手段21において、原始プ
ログラム1を入力し、その仮引数並びとCOMMON文に現れ
る変数名を表に登録し、副プログラム中の実行文で変数
の代入、引用のある文を探し、上記の表中の変数で、そ
のプログラム中において、引用のみに使われているなら
ば、入力の印、代入されるのみに使われているならば、
出力の印、両方に使われているならば、入出力の印を付
ける。
【0012】次いで仮引数入力手続き挿入手段22で、
入力の印と入出力の印のついた変数について各々、その
変数名と入力を喚起する文字列を出力した後、その変数
の値を入力するようにWRITE 文とREAD文を挿入する。
【0013】次は副プログラム計算結果出力手続き挿入
手段23で、出力の印と入出力の印のついた変数につい
て各々、その変数名と適当な注釈、例えば、関数値であ
れば関数値であることが分かるような注釈と、その変数
の値を出力するようなWRITE文を挿入する。
【0014】最後に主プログラム生成手段24で、SUBR
OUTINE文をPROGRAM 文に、またRETURN文をSTOP文に置換
した後、コンパイラ3を呼び出し、挿入、置換の行われ
た原始プログラム1をコンパイルし、リンカ4によって
入出力ライブラリ5とリンクすることにより、単体テス
トプログラム6を得る。
【0015】また実際に本方式を用いてFORTRAN77 のサ
ブルーチンを単体テストした場合の例を、図2、図3、
図4、図5、図6を用いて示す。
【0016】図2のようなFORTRAN77 のSUBROUTINE副プ
ログラムがあったとする。この副プログラムに対して、
本方式を適用すると、まず、変数解析手段21によっ
て、図3の表を得る。次に仮引数入力手続き挿入手段2
2によって、図4のが挿入され、副プログラム計算結
果出力手続き挿入手段23によって、図4の、が挿
入される。最後に主プログラム生成手段24によって、
図4のの様にSUBROUTINE文はPROGRAM 文に、RETURN文
はSTOP文に置換される。
【0017】図4のプログラムを実行することにより、
実行の開始時点に図5が表示され、実行の終了直前に図
6が表示される。
【0018】
【本発明の効果】本発明により、新しくプログラムを書
かずに、副プログラムの単体テストを行うことができ
る。
【図面の簡単な説明】
【図1】本発明の実施例を示す構成図である。
【図2】図1の示す実施例における適用例であるFORTRA
N77 のサブルーチン副プログラムである。
【図3】上記適用例における変数の表である。
【図4】上記適用例における本方式の適用結果である。
【図5】上記適用例実行したときの表示結果である。
【図6】上記適用例実行したときの表示結果である。
【符号の説明】
1 原始プログラム 2 単体テストプログラム生成手段 3 コンパイラ 4 リンカ 5 入出力ライブラリ 6 単体テストプログラム 21 変数解析手段 22 仮引数入力手続き挿入手段 23 副プログラム計算結果出力手続き挿入手段 24 主プログラム生成手段

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 主プログラムと副プログラムとに分割し
    てコンパイルが可能な言語処理系を有する情報処理シス
    テムにおいて、 副プログラム内の仮引数と大域的変数を解析し、副プロ
    グラムの外で定義され副プログラムの中では参照のみさ
    れる入力変数と、副プログラムの中で定義され副プログ
    ラムの外で参照される出力変数と、副プログラムの外で
    定義され副プログラム内で参照され、その後再定義さ
    れ、再び副プログラム外で参照される入出力変数とに分
    類する変数解析手段と、上記の変数解析手段において、
    入力変数または入出力変数と判断された仮引数または大
    域的変数の値を入力する手続きを副プログラムの原始プ
    ログラムの最初の実行文の前に挿入する仮引数入力手続
    き挿入手段と、変数解析手段において出力変数または入
    出力変数と判断された仮引数または大域的変数につい
    て、その副プログラムの計算結果として出力する手続き
    を副プログラムから制御が戻る直前に挿入する副プログ
    ラム計算結果出力手続き挿入手段と、副プログラムを主
    プログラムに変換する主プログラム生成手段とを含む単
    体テストプログラム生成手段と、単体テストプログラム
    生成手段により生成された副プログラムを実行すること
    により副プログラムの単体テストを行うことを特徴とす
    る、副プログラム単体テスト方式。
JP3074335A 1991-03-15 1991-03-15 副プログラム単体テスト方式 Pending JPH0588939A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3074335A JPH0588939A (ja) 1991-03-15 1991-03-15 副プログラム単体テスト方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3074335A JPH0588939A (ja) 1991-03-15 1991-03-15 副プログラム単体テスト方式

Publications (1)

Publication Number Publication Date
JPH0588939A true JPH0588939A (ja) 1993-04-09

Family

ID=13544150

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3074335A Pending JPH0588939A (ja) 1991-03-15 1991-03-15 副プログラム単体テスト方式

Country Status (1)

Country Link
JP (1) JPH0588939A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008269184A (ja) * 2007-04-18 2008-11-06 Mitsubishi Electric Corp プログラムレビュー支援装置
JP2011170512A (ja) * 2010-02-17 2011-09-01 Nec Corp 転送プログラム生成装置、処理システム、転送プログラム生成方法およびプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008269184A (ja) * 2007-04-18 2008-11-06 Mitsubishi Electric Corp プログラムレビュー支援装置
JP2011170512A (ja) * 2010-02-17 2011-09-01 Nec Corp 転送プログラム生成装置、処理システム、転送プログラム生成方法およびプログラム

Similar Documents

Publication Publication Date Title
US6895578B1 (en) Modularizing a computer program for testing and debugging
US20050015751A1 (en) Automated program debugging tool
JPH05257709A (ja) 並列化判別方法およびそれを用いた並列化支援方法
Kirner et al. Fully automatic worst-case execution time analysis for Matlab/Simulink models
US6314557B1 (en) Hybrid computer programming environment
Resler et al. VCOCO: a visualisation tool for teaching compilers
Lúcio et al. EARS-CTRL: Generating Controllers for Dummies.
Rybicki et al. Interactive model-based compilation continued–incremental hardware synthesis for SCCharts
JPH0588939A (ja) 副プログラム単体テスト方式
JP3196675B2 (ja) 言語処理方式
Turner et al. A suite of tools for the state-based testing of object-oriented programs
Parreaux Type-Safe Metaprogramming and Compilation Techniques For Designing Efficient Systems in High-Level Languages
Bülow Proof visualization for the lean 4 theorem prover
JP4055197B2 (ja) プログラムに含まれる手続きの解析装置
Xavier et al. Type checking Circus specifications
Henry et al. Complexity measurement of a graphical programming language
JP2004287869A (ja) プログラム実行監視装置および方法
Villadsen et al. Bridging the Requirements-Specification Gap using Behaviour-Driven Development
Goldsby et al. Enabling a roundtrip engineering process for the modeling and analysis of embedded systems
de Miguel et al. A Pragmatic Approach to Verification, Validation and Compilation
Staron Improving modeling with UML by stereotype-based language customization
JPH08212105A (ja) プログラム管理装置
Ahmed et al. CodeVisions: Static Code Analysis for Creating Education-Oriented Applications.
JPH04307630A (ja) 簡易デバック・オプション付きコンパイラ
KR100250484B1 (ko) 병렬프로그램 성능 감시기에서 사건 표현식에 의한 사건데이터 처리 방법