JPH02257227A - プログラム単体テストの支援システム - Google Patents

プログラム単体テストの支援システム

Info

Publication number
JPH02257227A
JPH02257227A JP1079903A JP7990389A JPH02257227A JP H02257227 A JPH02257227 A JP H02257227A JP 1079903 A JP1079903 A JP 1079903A JP 7990389 A JP7990389 A JP 7990389A JP H02257227 A JPH02257227 A JP H02257227A
Authority
JP
Japan
Prior art keywords
program
driver
test
stub
data
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
JP1079903A
Other languages
English (en)
Inventor
Kenji Nakamura
健二 中村
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.)
Shimadzu Corp
Original Assignee
Shimadzu 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 Shimadzu Corp filed Critical Shimadzu Corp
Priority to JP1079903A priority Critical patent/JPH02257227A/ja
Publication of JPH02257227A publication Critical patent/JPH02257227A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 この発明は、ソフトウェアの開発工程において、プログ
ラムの単体テストを支援するシステムに関する。
B、従来技術 プログラムの全体は、−船釣に、第2図に示すようなツ
リー構造となっている。
最も基本となる親としてのプログラムAに対して、1つ
下位の子としてのプログラムB、(+=1、 2・・・
・)がつながっており、個々の子プログラムB!のそれ
ぞれに対して、さらに1つ下位の孫としてのプログラム
C+1(1=1.2・・・・、j−1,2・・・・)が
つながっており、さらに個々の孫のプログラムC1jに
対して、ひ孫としてのプログラムD、j、(i−1,2
・・・・、J−1,2・・・・k−1,2・・・・)が
つながっている。
親プログラムAが子プログラムロムをドライブすると、
子プログラムB直は孫プログラムC1jをドライブする
。また、子プログラムB、が孫プログラムC1jをドラ
イブすると、孫プログラムC目はひ孫プログラムDlj
kをドライブする。
プログラムの単体テストにおいては、テスト対象のプロ
グラム(テストプログラム)をドライバプログラムおよ
びスタブプログラム(両者を合わせてドライバ/スタブ
プログラムという)に基づいて正常に機能するかどうか
をチエツクする。
ここで、ドライバプログラムとは、テストプログラムを
動作させるためのプログラムのことであり、テストプロ
グラムよりも上位に位する。また、スタブプログラムと
は、テストプログラムによって動作するプログラムのこ
とであり、テストプログラムよりも下位に位する。
各段階のプログラムは、それ自体の内部に、ドライバプ
ログラムを作成する上で必要な条件を備えているととも
に、スタブプログラムを作成する上で必要な条件を備え
ている。
例えば、子プログラムB、がテストプログラムであると
き、それに対するドライバプログラムは親プログラムA
であり、スタブプログラムは孫プログラムC,,,C,
,・・・・である。
子プログラムB、は、ドライバプログラムとしての親プ
ログラムAによって動作させられるものであるから、子
プログラムB、自体の内部に、親プログラムAから各種
のコードを受は取るためのドライバプログラム作成条件
を有している。
また、子プログラムB、は、スタブプログラムとしての
孫プログラムCII+ CI!・・・・を動作させるも
のであるから、子プログラムB、自体の内部に、各孫プ
ログラムCIl+ C1g・・・・に各種のコードを与
えるためのスタブプログラム作成条件を有している。
従来、プログラムの単体テストにおいては、テスト実施
者が、テストプログラム(プログラムモジュール)から
それに含まれているドライバプログラム作成条件とスタ
ブプログラム作成条件とを読み出し、単体テストに必要
な属性データを加味しながら、それらの条件に基づいて
単体テストに必要なドライバ/スタブプログラムをその
都度作成していた。
そして、テスト実施者がキーボードとデイスプレィとか
らなる端末装置を使用して単体テストに必要なコマンド
、パラメータ、ファイル内容等のデータ(テストデータ
)を入力し、入力されたテストデータをドライバ/スタ
ブプログラムによって処理した結果、出力されて(るデ
ータが正しいかどうかを判断するのである。
C0発明が解決しようとする課題 しかし、従来においては、上記のようにテスト実施者が
テストプログラムに°含まれているドライバプログラム
作成条件とスタブプログラム作成条件を読み出してデイ
スプレィに表示し、それを目視しながら、キーボードか
らの人力操作という手作業によってドライバ/スタブプ
ログラムを作成していたために、その作成に多大な時間
を要するだけでなく、その作成段階でバグが混入する可
能性が大いにあった。
なお、出力データが誤っているときには、テストプログ
ラム、ドライバプログラムあるいはスタブプログラムを
修正し、再度単体テストを行うが、従来では、その再テ
ストのたびに前回と同一のテストデータを入力しなけれ
ばならず、単体テストの能率が悪いという問題もあった
また、出力データが正しい場合であっても、入力された
テストデータがテストプログラムの中で果たして正しい
ルートを経てきたのかどうかは不明であって、出力デー
タが本当に正しいかどうかの判断はテスト実施者の主観
に任されていたのが実情であり、単体テストの客観的な
評価がむずかしいという問題もあった。
この発明は、ドライバ/スタブプログラムの作成を効率
化するとともにバグの混入を防止することを目的とする
00課題を解決するための手段 この発明は、このような目的を達成するために、次のよ
うな構成をとる。
すなわち、この発明のプログラム単体テストの支援シス
テムは、テストプログラムからそれに含まれているドラ
イバプログラム作成条件、スタブプログラム作成条件を
ドライバ/スタブ中間データとして抽出するドライバ/
スタブ作成条件抽出手段と、単体テストに必要な属性デ
ータを入力する属性データ入力手段と、前記中間データ
と属性データとに基づいてドライバ/スタブプログラム
を生成するドライバ/スタブプログラム生成手段と、単
体テストに必要なコマンド、パラメータ。
ファイル内容等のテストデータを入力するテストデータ
入力手段と、ドライバ/スタブプログラムおよびテスト
データに基づいてテストプログラムの機能を判定するテ
スト手段とを備えたことを特徴とするものである。
81作用 この発明の構成による作用は、次のとおりである。
すなわち、ドライバ/スタブプログラム生成手段が、ド
ライバ/スタブ中間データと属性データとに基づいて単
体テストに必要なドライバ/スタブプログラムを自動的
に生成するから、テスト実施者自身がドライバプログラ
ム作成条件とスタブプログラム作成条件を目視して判断
しながら手作業によってドライバ/スタブプログラムを
作成していた従来の場合に比べて、時間の大幅な短縮が
可能でテスト実施者の負担が軽減されるとともに、バグ
の混入が防止される。
F、実施例 以下、この発明の実施例を図面に基づいて詳細に説明す
る。
第1図は、プログラム単体テストの支援システムの構成
を示すブロック図である。
テストプログラム1には、それの単体テストに必要なド
ライバプログラム作成条件とスタブプログラム作成条件
とが含まれている。これらの条件を合わせて、ドライバ
/スタブ作成条件と呼ぶ。
ドライバ/スタブ作成条件抽出手段2は、テストプログ
ラムlから前記のドライバ/スタブ作成条件を読み出し
、ドライバ/スタブ中間データ3としてドライバ/スタ
ブプログラム生成手段4に渡す。
一方、テスト実施者は、テストプログラム1の単体テス
トに必要な属性データ(例えば、変数を数偵とするかそ
れとも文字とするか等)を、キーボードとデイスプレィ
を備えた属性データ入力手段5の操作によってドライバ
/スタブプログラム生成手段4に入力する。
ドライバ/スタブプログラム生成手段4は、入力したド
ライバ/スタブ中間データ3と属性データとに基づいて
単体テストに必要なドライバ/スタブプログラム6を自
動的に生成する。これによりて、単体テストの環境が迅
速、容易に整えられる。
この点において、テスト実施者自身がドライノイブログ
ラム作成条件とスタブプログラム作成条件を目視判断し
ながらキーボード操作という手作業によってドライバ/
スタブプログラムを作成していた従来の場合に比べて、
大幅な時間の短縮を実現できるとともに、ドライバ/ス
タブプログラムへのバグの混入が防止できるのである。
テスト手段7は、テストプログラムlを読み込むととも
に、生成されたドライバ/スタブプログラム6を読み込
む、これとともに、テスト手段7は、キーボードとデイ
スプレィを備えたテストデータ入力手段8を介して入力
された単体テストに必要なコマンド、パラメータ、ファ
イル内容等のテストデータを読み込む。
読み込まれたすべてのテストデータは、テスト手段7が
らテストデータ記憶手段9に転送され、テストデータフ
ァイル10に格納され保存される。
テスト手段7は、ドライバ/スタブプログラム6とテス
トデータとに基づいてテストプログラムlが正常に機能
するかどうかを判断し、そのテスト結果をテスト結果出
力手段11に渡して、テスト結果レボ−)12としてプ
リントアウトする。
−船釣に、同一のテストプログラム1に対しては何回か
にわたって単体テストを繰り返すのであるが、その単体
テストの繰り返しに際してテストデータが同一であるな
らば、2回目以降の単体リストにおいては、従来のよう
に改めてテストデータを再入力する必要はなく、1回目
の単体テスト時においてテストデータファイル10に格
納しておいたテストデータを読み出すだけでよい。
また、テストデータの一部を修正する必要があるときは
、テストデータファイル10に付属したテストデータ更
新手段13からの入力により、すでにテストデータファ
イル10に格納されているテストデータの一部を修正す
ることができる。この場合において、修正する必要のな
いテストデータは、そのままの状態でテストデータファ
イルlOに保存されることとなる。
この点において、テスト実施者の負担が大幅に軽減され
るとともに、単体テストの能率を向上することができる
テスト手段7によるテストプログラム1の単体テストは
、入力されたテストデータに対して出力結果がどうであ
るかだけでなく、テストプログラム1内の様りな動作ル
ートのうちのどのルートを通って入力テストデータが出
力結果となったかを示す履歴をたどるとともに、個々の
テストデータについであるルートを通った割合とか、す
べてのテストデータに対して全く通らなかったルートが
どれであるか等をもチエツクする。
そして、この〔入力→動作ルート→出力〕の履歴データ
がテスト結果レボ−目2として出力されるので、それを
見ることにより、単体テストの客観的な評価が可能とな
り、信頼性の高いプログラムの作成が行えるのである。
G1発明の効果 この発明によれば、次の効果が発揮される。
すなわち、ドライバ/スタブ作成条件抽出手段がテスト
プログラムから抽出したドライバ/スタブ中間データ(
ドライバプログラム作成条件、スタブプログラム作成条
件)と、属性データ入力手段から入力された属性データ
とに基づいて、ドライバ/スタブプログラム生成手段が
自動的にドライバ/スタブプログラムを生成するから、
前記両条件を目視判断して手作業によってドライバ/ス
タブプログラムを作成していた従来の場合に比べて、大
幅な時間の短縮化とテスト実施者の負担軽減とを達成す
ることができるとともに、ドライバ/スタブプログラム
へのバグの混入を防止することができ、信転性の高いプ
ログラムの作成が可能となる。
【図面の簡単な説明】
第1図はこの発明の実施例に係るプログラム単体テスト
の支援システムのブロック図である。第2図はプログラ
ムのツリー構造の模式図である。 l・・・テストプログラム 2・・・ドライバ/スタブ作成条件抽出手段3・・・ド
ライバ/スタブ中間データ 4・・・ドライバ/スタブプログラム生成手段5・・・
属性データ入力手段 6・・・ドライバ/スタブプログラム 7・・・テスト手段 8・・・テストデータ入力手段 2m

Claims (1)

    【特許請求の範囲】
  1. (1)テストプログラムからそれに含まれているドライ
    バプログラム作成条件、スタブプログラム作成条件をド
    ライバ/スタブ中間データとして抽出するドライバ/ス
    タブ作成条件抽出手段と、単体テストに必要な属性デー
    タを入力する属性データ入力手段と、前記中間データと
    属性データとに基づいてドライバ/スタブプログラムを
    生成するドライバ/スタブプログラム生成手段と、単体
    テストに必要なコマンド、パラメータ、ファイル内容等
    のテストデータを入力するテストデータ入力手段と、ド
    ライバ/スタブプログラムおよびテストデータに基づい
    てテストプログラムの機能を判定するテスト手段とを備
    えたことを特徴とするプログラム単体テストの支援シス
    テム。
JP1079903A 1989-03-29 1989-03-29 プログラム単体テストの支援システム Pending JPH02257227A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1079903A JPH02257227A (ja) 1989-03-29 1989-03-29 プログラム単体テストの支援システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1079903A JPH02257227A (ja) 1989-03-29 1989-03-29 プログラム単体テストの支援システム

Publications (1)

Publication Number Publication Date
JPH02257227A true JPH02257227A (ja) 1990-10-18

Family

ID=13703243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1079903A Pending JPH02257227A (ja) 1989-03-29 1989-03-29 プログラム単体テストの支援システム

Country Status (1)

Country Link
JP (1) JPH02257227A (ja)

Similar Documents

Publication Publication Date Title
US9389849B2 (en) Test case pattern matching
US7895575B2 (en) Apparatus and method for generating test driver
CN107481766A (zh) 一种测试方法及装置
JPH02257227A (ja) プログラム単体テストの支援システム
JPH05250218A (ja) オンラインプログラムのテスト方式
JPH0554277A (ja) プラント監視装置
JPH04260941A (ja) テストデータの自動生成装置
JP7825088B1 (ja) テストコード修正方法および装置
CN117576968A (zh) 一种模拟电气操作测试方法、计算机设备
JPH02277147A (ja) プログラム試験方法
JPH0231245A (ja) プログラムテスト方式
JPH01199240A (ja) プログラム動的テスト装置
JPH0497448A (ja) 対話型単体テスト方式
JPS63145518A (ja) キ−処理の自動テスト方式
JPH06348542A (ja) 計算機システムテスト支援装置
JPS63129433A (ja) テスト工程支援システム
JPH03119475A (ja) 論理シミュレーション結果比較方法
JPH04315255A (ja) データ処理システム用ワークベンチ/ツールボックスインターフェース
JPH01312641A (ja) オンラインのバッチテスト方式
Rodriguez et al. A Random Walk Application for Blaise Instruments
JPH04217025A (ja) 自動生成解析診断装置
Lacroix NODAL Debugger User's Guide
JPH06324855A (ja) ソースプログラムバグ解析システム
JP2001051875A (ja) ソフトウエア試験装置
JPH04312130A (ja) 言語処理プログラム