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
Links
Landscapes
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【目的】 副プログラムを実行可能な主プログラムとし
て出力することにより、単体テストの作成時間を減ら
す。 【構成】 副プログラムにおいて、仮引数と大域的変数
を解析し入力変数と出力変数とに分類する変数解析手段
21と、入力変数を入力する手続きを最初の実行文の前
に挿入する仮引数入力手順挿入手段22と、出力変数を
計算結果として出力する手続きを副プログラムから制御
が戻る直前に挿入する副プログラム計算結果出力手順挿
入手段23および、この副プログラムを主プログラムに
変換する主プログラム生成手段24から構成される。 【効果】 新しくプログラムを書き足さずに副プログラ
ムの単体テストを行える。
て出力することにより、単体テストの作成時間を減ら
す。 【構成】 副プログラムにおいて、仮引数と大域的変数
を解析し入力変数と出力変数とに分類する変数解析手段
21と、入力変数を入力する手続きを最初の実行文の前
に挿入する仮引数入力手順挿入手段22と、出力変数を
計算結果として出力する手続きを副プログラムから制御
が戻る直前に挿入する副プログラム計算結果出力手順挿
入手段23および、この副プログラムを主プログラムに
変換する主プログラム生成手段24から構成される。 【効果】 新しくプログラムを書き足さずに副プログラ
ムの単体テストを行える。
Description
【0001】
【産業上の利用分野】本発明は、副プログラムの単体テ
ストに関するものである。
ストに関するものである。
【0002】
【従来の技術】副プログラムの単体をテストするため
に、その副プログラムを呼び出し、テストするための仮
の主プログラムを作らなくてはいけなかった。
に、その副プログラムを呼び出し、テストするための仮
の主プログラムを作らなくてはいけなかった。
【0003】副プログラムを単体でテストする場合、従
来の方法だと、いちいち実引数を与え、副プログラムの
結果を出力するような仮の主プログラムを作らなくては
いけなかった。そのため、フィルムがよけいに必要とな
り、また手間も多く掛かっていた。
来の方法だと、いちいち実引数を与え、副プログラムの
結果を出力するような仮の主プログラムを作らなくては
いけなかった。そのため、フィルムがよけいに必要とな
り、また手間も多く掛かっていた。
【0004】
【発明が解決しようとする課題】本発明はテストしたい
副プログラム以外の原始プログラムを作ることなく、仮
引数の値および大域的変数の値の入力だけでその副プロ
グラムの実行結果を知ることが出来る副プログラム単体
テスト方式を提供することにある。
副プログラム以外の原始プログラムを作ることなく、仮
引数の値および大域的変数の値の入力だけでその副プロ
グラムの実行結果を知ることが出来る副プログラム単体
テスト方式を提供することにある。
【0005】
【課題を解決するための手段】主プログラムと副プログ
ラムとに分割してコンパイルが可能な言語処理系を有す
る情報処理システムにおいて、副プログラム内の仮引数
と大域的変数を解析し、副プログラムの外で定義され副
プログラムの中では参照のみされる入力変数と、副プロ
グラムの中で定義され副プログラムの外で参照される出
力変数と、副プログラムの外で定義され副プログラム内
で参照され、その後再定義され、再び副プログラム外で
参照される入出力変数とに分類する変数解析手段と、上
記の変数解析手段において、入力変数または入出力変数
と判断された仮引数または大域的変数の値を入力する手
続きを副プログラムの原始プログラムの最初の実行文の
前に挿入する仮引数入力手続き挿入手段と、変数解析手
段において出力変数または入出力変数と判断された仮引
数または大域的変数について、その副プログラムの計算
結果として出力する手続きを副プログラムから制御が戻
る直前に挿入する副プログラム計算結果出力手続き挿入
手段と、副プログラムを主プログラムに変換する主プロ
グラム生成手段とを含む単体テストプログラム生成手段
と、単体テストプログラム生成手段により生成された副
プログラムを実行することにより副プログラムの単体テ
ストを行うことを特徴とする。
ラムとに分割してコンパイルが可能な言語処理系を有す
る情報処理システムにおいて、副プログラム内の仮引数
と大域的変数を解析し、副プログラムの外で定義され副
プログラムの中では参照のみされる入力変数と、副プロ
グラムの中で定義され副プログラムの外で参照される出
力変数と、副プログラムの外で定義され副プログラム内
で参照され、その後再定義され、再び副プログラム外で
参照される入出力変数とに分類する変数解析手段と、上
記の変数解析手段において、入力変数または入出力変数
と判断された仮引数または大域的変数の値を入力する手
続きを副プログラムの原始プログラムの最初の実行文の
前に挿入する仮引数入力手続き挿入手段と、変数解析手
段において出力変数または入出力変数と判断された仮引
数または大域的変数について、その副プログラムの計算
結果として出力する手続きを副プログラムから制御が戻
る直前に挿入する副プログラム計算結果出力手続き挿入
手段と、副プログラムを主プログラムに変換する主プロ
グラム生成手段とを含む単体テストプログラム生成手段
と、単体テストプログラム生成手段により生成された副
プログラムを実行することにより副プログラムの単体テ
ストを行うことを特徴とする。
【0006】
【実施例】以下、本発明をその実施例を示す図面に基づ
き詳細に説明する。
き詳細に説明する。
【0007】図1は、本発明の一実施例を示す構成図で
ある。
ある。
【0008】図1を参照すると、本発明の実施例は、原
始プログラム1と単体テストプログラム生成手段2と、
コンパイラ3と、リンカ4と、入出力ライブラリ5と実
行可能プログラム6から構成される。
始プログラム1と単体テストプログラム生成手段2と、
コンパイラ3と、リンカ4と、入出力ライブラリ5と実
行可能プログラム6から構成される。
【0009】原始プログラム1は、単体テストを行いた
い副プログラムである。単体テストプログラム生成手段
2は、副プログラムが必要としている情報や計算した結
果を示す変数を解析する変数解析手段21と、上記の変
数解析手段21において入力変数あるいは入出力変数と
判断された変数について、副プログラムの開始時点に、
その変数の値の入力を行うように文を挿入する仮引数入
力手続き挿入手段22と、上記の変数解析手段21にお
いて出力変数あるいは入出力変数と判断された変数につ
いて、その変数の値を出力する文を、副プログラムから
制御が戻る直前に挿入する副プログラム計算結果出力手
続き挿入手段23と、副プログラムを主プログラムに変
換する主プログラム生成手段24から構成される。コン
パイラ3は、本方式の対象としている副プログラムをコ
ンパイルできるコンパイラである。リンカ4はコンパイ
ラ3によって生成されたオブジェクト・プログラムをリ
ンクし、実行可能プログラムを生成するリンカである。
入出力ライブラリ5はコンパイラ3用の入出力ルーチン
のライブラリである。実行可能プログラム6は、本方式
によって実行可能となった副プログラムの単体テストプ
ログラムである。
い副プログラムである。単体テストプログラム生成手段
2は、副プログラムが必要としている情報や計算した結
果を示す変数を解析する変数解析手段21と、上記の変
数解析手段21において入力変数あるいは入出力変数と
判断された変数について、副プログラムの開始時点に、
その変数の値の入力を行うように文を挿入する仮引数入
力手続き挿入手段22と、上記の変数解析手段21にお
いて出力変数あるいは入出力変数と判断された変数につ
いて、その変数の値を出力する文を、副プログラムから
制御が戻る直前に挿入する副プログラム計算結果出力手
続き挿入手段23と、副プログラムを主プログラムに変
換する主プログラム生成手段24から構成される。コン
パイラ3は、本方式の対象としている副プログラムをコ
ンパイルできるコンパイラである。リンカ4はコンパイ
ラ3によって生成されたオブジェクト・プログラムをリ
ンクし、実行可能プログラムを生成するリンカである。
入出力ライブラリ5はコンパイラ3用の入出力ルーチン
のライブラリである。実行可能プログラム6は、本方式
によって実行可能となった副プログラムの単体テストプ
ログラムである。
【0010】次に、本発明の実施例を、図1を用いて説
明する。ただし、用いる言語はFORTRAN77 とする。
明する。ただし、用いる言語はFORTRAN77 とする。
【0011】まず、変数解析手段21において、原始プ
ログラム1を入力し、その仮引数並びとCOMMON文に現れ
る変数名を表に登録し、副プログラム中の実行文で変数
の代入、引用のある文を探し、上記の表中の変数で、そ
のプログラム中において、引用のみに使われているなら
ば、入力の印、代入されるのみに使われているならば、
出力の印、両方に使われているならば、入出力の印を付
ける。
ログラム1を入力し、その仮引数並びとCOMMON文に現れ
る変数名を表に登録し、副プログラム中の実行文で変数
の代入、引用のある文を探し、上記の表中の変数で、そ
のプログラム中において、引用のみに使われているなら
ば、入力の印、代入されるのみに使われているならば、
出力の印、両方に使われているならば、入出力の印を付
ける。
【0012】次いで仮引数入力手続き挿入手段22で、
入力の印と入出力の印のついた変数について各々、その
変数名と入力を喚起する文字列を出力した後、その変数
の値を入力するようにWRITE 文とREAD文を挿入する。
入力の印と入出力の印のついた変数について各々、その
変数名と入力を喚起する文字列を出力した後、その変数
の値を入力するようにWRITE 文とREAD文を挿入する。
【0013】次は副プログラム計算結果出力手続き挿入
手段23で、出力の印と入出力の印のついた変数につい
て各々、その変数名と適当な注釈、例えば、関数値であ
れば関数値であることが分かるような注釈と、その変数
の値を出力するようなWRITE文を挿入する。
手段23で、出力の印と入出力の印のついた変数につい
て各々、その変数名と適当な注釈、例えば、関数値であ
れば関数値であることが分かるような注釈と、その変数
の値を出力するようなWRITE文を挿入する。
【0014】最後に主プログラム生成手段24で、SUBR
OUTINE文をPROGRAM 文に、またRETURN文をSTOP文に置換
した後、コンパイラ3を呼び出し、挿入、置換の行われ
た原始プログラム1をコンパイルし、リンカ4によって
入出力ライブラリ5とリンクすることにより、単体テス
トプログラム6を得る。
OUTINE文をPROGRAM 文に、またRETURN文をSTOP文に置換
した後、コンパイラ3を呼び出し、挿入、置換の行われ
た原始プログラム1をコンパイルし、リンカ4によって
入出力ライブラリ5とリンクすることにより、単体テス
トプログラム6を得る。
【0015】また実際に本方式を用いてFORTRAN77 のサ
ブルーチンを単体テストした場合の例を、図2、図3、
図4、図5、図6を用いて示す。
ブルーチンを単体テストした場合の例を、図2、図3、
図4、図5、図6を用いて示す。
【0016】図2のようなFORTRAN77 のSUBROUTINE副プ
ログラムがあったとする。この副プログラムに対して、
本方式を適用すると、まず、変数解析手段21によっ
て、図3の表を得る。次に仮引数入力手続き挿入手段2
2によって、図4のが挿入され、副プログラム計算結
果出力手続き挿入手段23によって、図4の、が挿
入される。最後に主プログラム生成手段24によって、
図4のの様にSUBROUTINE文はPROGRAM 文に、RETURN文
はSTOP文に置換される。
ログラムがあったとする。この副プログラムに対して、
本方式を適用すると、まず、変数解析手段21によっ
て、図3の表を得る。次に仮引数入力手続き挿入手段2
2によって、図4のが挿入され、副プログラム計算結
果出力手続き挿入手段23によって、図4の、が挿
入される。最後に主プログラム生成手段24によって、
図4のの様にSUBROUTINE文はPROGRAM 文に、RETURN文
はSTOP文に置換される。
【0017】図4のプログラムを実行することにより、
実行の開始時点に図5が表示され、実行の終了直前に図
6が表示される。
実行の開始時点に図5が表示され、実行の終了直前に図
6が表示される。
【0018】
【本発明の効果】本発明により、新しくプログラムを書
かずに、副プログラムの単体テストを行うことができ
る。
かずに、副プログラムの単体テストを行うことができ
る。
【図1】本発明の実施例を示す構成図である。
【図2】図1の示す実施例における適用例であるFORTRA
N77 のサブルーチン副プログラムである。
N77 のサブルーチン副プログラムである。
【図3】上記適用例における変数の表である。
【図4】上記適用例における本方式の適用結果である。
【図5】上記適用例実行したときの表示結果である。
【図6】上記適用例実行したときの表示結果である。
1 原始プログラム 2 単体テストプログラム生成手段 3 コンパイラ 4 リンカ 5 入出力ライブラリ 6 単体テストプログラム 21 変数解析手段 22 仮引数入力手続き挿入手段 23 副プログラム計算結果出力手続き挿入手段 24 主プログラム生成手段
Claims (1)
- 【請求項1】 主プログラムと副プログラムとに分割し
てコンパイルが可能な言語処理系を有する情報処理シス
テムにおいて、 副プログラム内の仮引数と大域的変数を解析し、副プロ
グラムの外で定義され副プログラムの中では参照のみさ
れる入力変数と、副プログラムの中で定義され副プログ
ラムの外で参照される出力変数と、副プログラムの外で
定義され副プログラム内で参照され、その後再定義さ
れ、再び副プログラム外で参照される入出力変数とに分
類する変数解析手段と、上記の変数解析手段において、
入力変数または入出力変数と判断された仮引数または大
域的変数の値を入力する手続きを副プログラムの原始プ
ログラムの最初の実行文の前に挿入する仮引数入力手続
き挿入手段と、変数解析手段において出力変数または入
出力変数と判断された仮引数または大域的変数につい
て、その副プログラムの計算結果として出力する手続き
を副プログラムから制御が戻る直前に挿入する副プログ
ラム計算結果出力手続き挿入手段と、副プログラムを主
プログラムに変換する主プログラム生成手段とを含む単
体テストプログラム生成手段と、単体テストプログラム
生成手段により生成された副プログラムを実行すること
により副プログラムの単体テストを行うことを特徴とす
る、副プログラム単体テスト方式。
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)
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 | 転送プログラム生成装置、処理システム、転送プログラム生成方法およびプログラム |
-
1991
- 1991-03-15 JP JP3074335A patent/JPH0588939A/ja active Pending
Cited By (2)
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) | 병렬프로그램 성능 감시기에서 사건 표현식에 의한 사건데이터 처리 방법 |