JPH05143393A - テストプログラム作成装置 - Google Patents

テストプログラム作成装置

Info

Publication number
JPH05143393A
JPH05143393A JP3308720A JP30872091A JPH05143393A JP H05143393 A JPH05143393 A JP H05143393A JP 3308720 A JP3308720 A JP 3308720A JP 30872091 A JP30872091 A JP 30872091A JP H05143393 A JPH05143393 A JP H05143393A
Authority
JP
Japan
Prior art keywords
function
driver
test
argument
recognizes
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
JP3308720A
Other languages
English (en)
Inventor
Hidenori Oriyama
英則 折山
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP3308720A priority Critical patent/JPH05143393A/ja
Publication of JPH05143393A publication Critical patent/JPH05143393A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 プログラマ自身が考えて作成しなければなら
なドライバ関数を自動生成し、単体テスト、結合テスト
をおこなうまでの前準備の時間を短縮する。 【構成】 関数のソースファイル1を入力とし、宣言関
数認識部2、戻り値認識部3、引き数認識部4において
関数宣言された関数自身やその戻り値、引き数を認識し
関数テーブル7に情報を格納する。さらに、関数の階層
構造認識部6で関数テーブル7の情報から関数の階層構
造を認識し、最上位関数を求める。その最上位関数に対
して、ドライバ関数作成部8がドライバ関数を作成し、
ドライバ関数おソースファイルを出力する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明はテストプログラム作成
装置に関し、例えば、ウソフトウエア開発システムにお
いて、関数の単体、結合テストを行う際に必要となるド
ライバ関数を作成するドライバ関数作成装置に関するも
のである。
【0002】
【従来の技術】図6は従来の開発プロセスの中で関数の
単体テスト、結合テストを行う作業手順を示したもので
ある。ステップ37でプログラマがテストを行う関数を
認識し、ステップ38でその関数の引き数の数と方を認
識する。さらにステップ39で関数の戻り値を認識し、
ステップ40でデータの与え方や出力のさせ方考慮して
入出力を決めドライバ関数を作成する。
【0003】このように、ソフトウエアの開発プロセス
において、関数の単体、結合テストを行う場合、その関
数単体では実行する事ができず、その関数を呼出し実行
させるドライバ関数が必要である。例えばC言語の場合
はメイン関数を作成してテストを行いたい関数を呼び出
し実行させる必要がある。
【0004】たとえば、ソースプログラムに関数のプロ
グラムが列記されているファイルがあるとすると、プロ
グラマがこれらの関数の単体テストを行う場合、各関数
を呼び出すドライバ関数を作成する必要がある。その
時、テストを行う関数の引き数の数や引き数の型を調
べ、ドライバ関数からデータを与えるようにする。更に
関数の型をチェックし、その関数が返す値がどうなるか
を表示させるようにしている。このドライバ関数作成は
従来ではすべて人手で行っている。
【0005】
【発明が解決しようとする課題】以上の様に、関数の単
体、結合テストを行いたい場合、プログラマ自身で関数
の引き数や関数の型をチェックする必要があり、データ
の与え方などを考慮して人手でドライバ関数を作成しな
ければならない。従って、テストを行うまでの前準備の
時間が必要となる。
【0006】この発明は上記のような課題を解決するた
めになされたものであり、プログラマ自身が作成しなけ
ればならないドライバ関数等のテストプログラムを自動
作成することを目的としており、さらに関数の単体、結
合テストを行うまでの時間の短縮を提供することを目的
とする。
【0007】
【課題を解決するための手段】この発明に係るテストプ
ログラム作成装置は、たとえばソースプログラムを入力
とし、記述されている関数やその関数の引き数を自動認
識するとともに、人手を介さずにドライバ関数を自動作
成するものであり、以下の要素を有するものである。 (a)被テストプログラムの中から被テストルーチンを
認識するルーチン認識部、(b)認識された被テストル
ーチンを動作させるためのパラメータ情報を認識するパ
ラメータ認識部、(c)認識されたパラメータ情報に基
づいて被テストルーチンをテストするテストプログラム
を作成するテストプログラム作成部。
【0008】
【作用】この発明において、ルーチン認識部は、ソース
プログラムを入力し、ソースファイル内にある関数やサ
ブルーチン等の被テストルーチンをその関数宣言やサブ
ルーチン名等から認識する。パラメータ認識部は、被テ
ストルーチンの入力用引き数と型と出力用引き数と型等
のパラメータ情報を認識する。テストプログラム作成部
はパラメータ情報に基づいて、被テストプログラムを動
作させるための入力用パラメータ情報のデータを準備す
るルーチンと、その被テストルーチンを呼ぶルーチン
と、被テストルーチンの動作結果が格納された出力用パ
ラメータ情報の内容を出力するルーチンを備えたテスト
プログラムを作成する。
【0009】
【実施例】
実施例1.以下にこの発明の一実施例について述べる。
図1の1は関数が宣言されている関数のソースファイ
ル、2は関数のソースファイルから関数宣言部分を認識
し、親関数(自関数内で他の関数(子関数)を宣言して
いる関数)を抽出する宣言関数認識部、3は関数のソー
スファイル内で、関数宣言部分に記述されている親関数
の戻り値を認識する戻り値認識部、4は親関数の引き数
の数や型を認識する引き数認識部、5は親関数内で呼ば
れている子関数を認識する呼び出し関数認識部、6は最
上位関数を求めるために関数のソースファイル内に記述
されている関数の階層構造を認識する関数の階層構造認
識部、7は親関数、親関数の戻り値、親関数の引き数、
子関数などの情報が蓄えられている関数テーブル、8は
関数テーブルの情報をもとにドライバ関数を作成するド
ライバ関数作成部、9はドライバ関数を作成するために
必要な入出力記述に関する情報が蓄えられている入出力
記述テーブル、10は本発明により作成されたドライバ
関数が記述してあるドライバ関数のソースファイル、1
1は従来のコンパイラである。
【0010】つぎに、上記実施例1の動作の説明を図2
〜図5を参照しながら作成する。図2はドライバ関数を
作成するためのフローチャート、図3は図2におけるフ
ローチャートのなかの「ドライバ関数を作成する」18
の詳細なフローチャート、図4は関数のソースファイル
1の例、図5は本発明によって作成されたドライバ関数
のソースファイル10の例である。
【0011】まず、関数のソースファイル1を入力する
とステップ12において、宣言関数認識部2により親関
数を認識する。同時にステップ13で戻り値認識部3に
より戻り値の型を認識する。図4の例では親関数「pare
nt_func()」26の戻り値「int」を認識する。つぎにス
テップ14で親関数の引き数を引き数認識部4により引
き数の数、型を認識する。図4の例では2つの引き数2
7、28とそれぞれの型「int」と「int *」を認識す
る。さらに、ステップ15で呼び出し関数認識部5によ
り子関数を認識する。図4の例では子関数「child_func
()」29を認識する。それぞれステップ12〜15まで
で認識された情報を関数テーブル20に格納する。つぎ
にステップ16で関数テーブル20の情報をもとに関数
の階層構造認識部8で関数の階層構造を認識し、ステッ
プ17で最上位関数を求める。図4の例では「parent_f
unc() 」26が最上位関数となる。求められた最上位関
数に対して、ステップ18でドライバ関数作成部8がド
ライバ関数を作成し、ドライバ関数のソースファイル1
0を作成する。図4の例では図5のようなドライバ関数
を作成する。
【0012】ドライバ関数作成部8においては、ステッ
プ22で親関数の引き数の入出力タイプを調べ、入力と
入出力のみ標準入力から引き数の値を要求する文をドラ
イバ関数内に記述する。つぎにステップ22で最上位関
数を呼び出す文を記述し、ステップ23で親関数の引き
数の入出力タイプを調べ、出力と入出力のみ標準出力に
出力する文を記述する。最後にステップ24で関数の戻
り値を標準出力する文を記述する。
【0013】以上、この実施例では、ソフトウエアのソ
ースプログラムの中に記述されている関数定義部分を認
識する部分と、その関数定義部分から関数の引き数の
数、引き数の型および関数の型を認識する部分と、その
認識した情報をもとに関数の単体、結合テストを行うた
めのドライバ関数を作成する部分を備えた関数ドライバ
作成装置を説明した。この実施例におけるドライバ関数
作成装置は、関数のソースファイルを入力とし、関数の
ソースファイル内で関数宣言している関数を認識する。
続いて、認識した親関数における引き数の数と型を認識
し、関数テーブルに格納する。また、同時に親関数の、
戻り値も認識し、関数テーブルに格納する。さらに、親
関数によって呼び出される関数を認識して関数テーブル
に格納する。つぎに、関数テーブルに格納された親関数
と子関数をもとに、関数の階層構造を認識し、ソースプ
ログラムに記述してある親関数の最上位関数を認識す
る。この認識された親関数の引き数や戻り値をもとにド
ライバ関数を作成する。
【0014】実施例2.なお、上記実施例ではドライバ
関数のソースファイルを出力するが、関数の階層構造を
図にして階層構造図を出力してもよく、プログラムのデ
バッグ時などに有効となる。
【0015】実施例3.また、上記実施例では引き数及
び戻り値の数や型を認識する場合を示したが、その他の
パラメータ情報を認識する場合でもかまわない。また、
C言語の関数をテストする場合を示したが、その他の言
語の関数やファンクションやサブルーチン等の所定のル
ーチンをテストする場合でもかまわない。また、上記実
施例では、ひとつのテストプログラムを作成する場合を
示したが、ひとつの完成されたプログラムではなく、テ
ストプログラムの一部となるテストモジュールやテスト
用サブルーチンを作成する場合でもかまわない。
【0016】
【発明の効果】以上のように、この発明は人手を介する
事なくテストプログラムを自動作成するため、単体テス
トや結合テストを行うときに、プログラマが関数や引き
数の型のチェックやデータの与え方などを考慮してテス
トプログラムを作成する前準備の時間を必要としないと
いう効果がある。
【図面の簡単な説明】
【図1】この発明によるドライバ関数作成装置の構造
図。
【図2】この発明によるドライバ関数作成のフローチャ
ート図。
【図3】この発明によるドライバ関数作成部のフローチ
ャート図。
【図4】関数のソースファイルの例を示す図。
【図5】この発明により作成されたドライバ関数のソー
スファイルの例を示す図。
【図6】従来のドライバ関数作成のフローチャート図。
【符号の説明】
1 関数のソースファイル 2 宣言関数認識部 3 戻り値認識部 4 引き数認識部 5 呼び出し関数認識部 6 関数の階層構造認識部 7 関数テーブル 8 ドライバ関数作成部 10 ドライバ関数のソースファイル

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 以下の要素を有するテストプログラム作
    成装置。 (a)被テストプログラムの中から被テストルーチンを
    認識するルーチン認識部、(b)認識された被テストル
    ーチンを動作させるためのパラメータ情報を認識するパ
    ラメータ認識部、(c)認識されたパラメータ情報に基
    づいて、被テストルーチンをテストするテストプログラ
    ムを作成するテストプログラム作成部。
JP3308720A 1991-11-25 1991-11-25 テストプログラム作成装置 Pending JPH05143393A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3308720A JPH05143393A (ja) 1991-11-25 1991-11-25 テストプログラム作成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3308720A JPH05143393A (ja) 1991-11-25 1991-11-25 テストプログラム作成装置

Publications (1)

Publication Number Publication Date
JPH05143393A true JPH05143393A (ja) 1993-06-11

Family

ID=17984474

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3308720A Pending JPH05143393A (ja) 1991-11-25 1991-11-25 テストプログラム作成装置

Country Status (1)

Country Link
JP (1) JPH05143393A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008176793A (ja) * 2007-01-19 2008-07-31 Suresoft Technologies Inc ソフトウェアテストシステム、ソフトウェアのテスト方法、および、そのテスト方法を実行するためのプログラムを記録したコンピュータ読取り可能な記録媒体
JP2009152790A (ja) * 2007-12-19 2009-07-09 Fujitsu Microelectronics Ltd 動的再構成支援プログラム、動的再構成支援方法、動的再構成回路、動的再構成支援装置および動的再構成システム
JP2012073778A (ja) * 2010-09-28 2012-04-12 Yahoo Japan Corp WebAPI作成支援装置及びWebAPI作成支援方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008176793A (ja) * 2007-01-19 2008-07-31 Suresoft Technologies Inc ソフトウェアテストシステム、ソフトウェアのテスト方法、および、そのテスト方法を実行するためのプログラムを記録したコンピュータ読取り可能な記録媒体
JP2009152790A (ja) * 2007-12-19 2009-07-09 Fujitsu Microelectronics Ltd 動的再構成支援プログラム、動的再構成支援方法、動的再構成回路、動的再構成支援装置および動的再構成システム
JP2012073778A (ja) * 2010-09-28 2012-04-12 Yahoo Japan Corp WebAPI作成支援装置及びWebAPI作成支援方法

Similar Documents

Publication Publication Date Title
US8429627B2 (en) Asynchronous preemptive edit time semantic analysis of a graphical program
US7503027B1 (en) Hardware description language code generation from a state diagram
Vahid et al. SpecCharts: A VHDL front-end for embedded systems
US5724589A (en) Development system with a property-method-event programming model for developing context-free reusable software components
US5794043A (en) Method for testing at least one class of an object-oriented program on a computer
WO2007139840A2 (en) Method and tool for automatic verification of software protocols
US7237223B2 (en) Apparatus and method for real-time caution and warning and system health management
JPH05143393A (ja) テストプログラム作成装置
CN107589940A (zh) 一种基于Lua脚本语言的软件开发辅助系统
JPH0554277A (ja) プラント監視装置
JPH0736734A (ja) アーギュメント値のチェック方法
JP2815178B2 (ja) コンパイラ装置
JPH0778076A (ja) プログラム自動生成装置
JP3124000B2 (ja) 構造型の利用者定義演算のインライン展開装置
Börger et al. Introduction: The Role of Modeling
JP2000076056A (ja) 入力仕様が拡張可能であるコード自動生成システム
JPH05127880A (ja) 電子制御用プログラム開発支援装置
KR100205023B1 (ko) 모레타 모드의 변환 방법
JPH0285981A (ja) ソフトウェア開発支援装置
Creasman et al. Design, implementation, and case study of a function level unit test environment
Isenstein et al. Middleware for realtime multicomputer tool development
Rybicki Interactive Incremental Hardware Synthesis
JPH03235135A (ja) プログラムの自動検査方式
Duval et al. Developing safe concurrent and distributed applications with an architectural environment
JPH08106487A (ja) 機能設計支援装置