JPH08504526A - コンピュータにてオブジェクト指向プログラムの少なくとも1つのクラスのテストをする方法 - Google Patents
コンピュータにてオブジェクト指向プログラムの少なくとも1つのクラスのテストをする方法Info
- Publication number
- JPH08504526A JPH08504526A JP6513773A JP51377394A JPH08504526A JP H08504526 A JPH08504526 A JP H08504526A JP 6513773 A JP6513773 A JP 6513773A JP 51377394 A JP51377394 A JP 51377394A JP H08504526 A JPH08504526 A JP H08504526A
- Authority
- JP
- Japan
- Prior art keywords
- class
- test
- command
- computer
- program
- 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
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
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
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)
- Stored Programmes (AREA)
Abstract
(57)【要約】
本発明によりはじめてオブジェクト指向プログラムのクラスのテストのための方法が提供される。クラスがテストされ、ここで、テスト者によりメソッド呼出を可能にするテストコマンドがインタラクティブに入力されることにより当該クラステストが行われる。テスト性は次のようにして達成される、即ち、あらかじめ、クラス内に許容されたすべてのメソッドに対して所要の呼出パラメータが求められ、そして、コンピュータメモリにて可能なパラメータを記憶し、変化させ得るための事前措置が施される。利点とするところはインタラクティブにテストされ得ることであり、そして、従来のようにテスト評価後に時間をかけて改めて補正して変換しバインドしなければならないということをしなくてもよいようになる。有利には本発明はコミュニケーションソフトウエアの開発の際使用され得る。
Description
【発明の詳細な説明】
コンピュータにてオブジェクト指向プログラムの
少なくとも1つのクラスのテストをする方法
産業上の大型プロジェクトの枠内におけるシステム解法(手法)の規模の増大
と共にソフトウエアが当該解法(手法)に寄与する度合いも増大する。大きなソ
フトウエアプロジェクトを有効に展開処理し得るためには当該プロジェクトを部
分プロジェクトに細分化し、個々のプログラムをモジュラー式に作成することが
有利であることが明らかになっている。プログラムのモジュラー式作成の場合の
際立った側面はまた、個々のプログラムモジュールが他のプロジェクトによって
も同様に容易に利用され得ることである。過去何年間に亘って、これに関して特
にオブジェクト指向プログラミングの技術が有利であることが判明している。オ
ブジェクト指向プログラミングの基礎及びネーミングに対する導入、紹介は例え
ば[1]に掲載ざれている。
個々のプログラムの再利用可能性に関連して、特に当該プログラムモジュール
の品質保全の重要性が高まっている。特に個々のプログラム構造の誤りのない品
質は特に開発されたテスト方式により考慮される。ソフトウエアテストの重要な
関心事項はテストでカバーされる枠内でソフトウエアの品質を検証することであ
る。その作業の際のテスト実行者を支援するため種々のテスト方式が可能である
。それらのテスト方式によっては個々のプログラムモジュールからシステム方式
全体一揃いまでソフトウエアの連続一貫したテストを可能にするものである。こ
こで殊に3つの相互に依拠しあうテストを区別する、即ちコンポーネント、統合
化テスト、システムテストである。コンポーネントは個々のプログラムコンポー
ネント内のエラーを見出すことを目的とする。コンポーネントとは従来は1つ又
は複数のモジュールであり、例えばオブジェクト指向プログラミングではクラス
である。コンポーネントは統合化テストにより補充される。上記統合化テストに
よってはテスはインターフェースにて、及び被テストコンポーネント間の通信に
てのエラー(誤り)が発見される。終わりに、システムテストが実施され、該テ
ストはカストマの観点からのテストである(例えば交換機全体一揃い一式のテス
ト)。それの目的はプログラムシステム全体の安定性を“負荷”状態のもとで、
換言すれば現実的かつ極端な条件のもとでテストすることである。
オブジェクト指向プログラミングの技術の枠内ではコンポーネントテストはク
ラスに対するテスト方式により準備される。有利には個々のプログラムコンポー
ネントのテスト、即ちクラスのテストから開始する。プログラムのテストの際、
テストされていないクラス
に基づく場合、クラスインプリメンテーションの際なされた誤りは見出すのが極
めて困難又は見出されず、従って克服するのが困難である。その根拠はプログラ
ム全体の見通しの悪さのほかに当該の機能上の誤りが、個々のオブジェクトの共
働の際生じる誤り(通信−ないしインターフェース誤り)と混合することにある
。良好にテストされたクラスに対するさらなる重要な理由は当該クラスを再び使
用し得る可能性に存する。定性的に劣悪なソフトウエアは明らかに再使用には不
適である。
クラスは被テスト対象(体)としてはそれ自体のみでは処理不能であり、もっ
て、付加的コストをかけずにはOSのデバッガによりデバッグできない。それら
の被テスト対象(体)は単にプログラム構造をなすに過ぎないので、それのテス
トのためにはオブジェクトをそれから導出することがどうしても必要である。そ
の際クラスは次のようにしてテストされる、即ちオブジェクトにて相応のメソッ
ドを呼び出し、実行するのである。呼出さるべきオブジェクトのデータコンポー
ネントの値と共に行うメソッド呼出のパラメータはテストデータを成す。
オブジェクト指向プログラミングの技術は比較的若い。従って、オブジェクト
指向ソフトウエアのクラスのテストのための技術的手法は存在しない。プログラ
マが従来手法で1つのクラスをテストしようとする場
合、先ず或1つのテストケースを生成し、即ち、1つのプログラム(これは1つ
のクラスから1つのオブジェクトを実現値化する)を生成しなければならなくな
る。更にプログラマはテストのプリフィールドにてメソッド呼出を当該オブジェ
クトに対するパラメータ値を含めて当該プログラム内に組み込まなければならな
くなり、ここで上記パラメータはできるだけ精確に、自分が見出すべきエラーに
適合されるべきものである。それに引き続いて、プログラマは当該プログラムを
翻訳変換し、バインドしなければならない。テスト実行後、評価が行われること
となる。テスト実行により当該クラスの動作機能性について情報データが得られ
る。場合によっては当該過程全体を改めて実施しなければならない。
本発明の基礎を成す課題とするところはコンピュータにてオブジェクト指向プ
ログラムの少なくとも1つのクラスのテストのための相互作用的(インタラクテ
ィブ)方法を提供することに存する。
上記課題は請求の1の構成要件により解決される。
本発明の他のすべての発展形態はサブクレームから明らかである。
上記の方法において特に有利であるのはクラスが時間的にそれの本来の適用前
に且つそれに無関係にオブジェクト指向プログラムテストされ得ることである。
本発明の方法の適用上特に有利であるのは、テスト
のプリフィールドにて既に、テストにとって規定的なすべての特性量が求められ
、そして、テストプログラムはただ1度翻訳変換(トランスレート)され、バイ
ンドされればよいということである。
亦複数クラスの共働動作をも有効にテストし得るため本発明の方法では関与す
るクラスの外部メソッドインターフェースにて規定されたメソッドに対するすべ
てのテストに関与するクラスを生成するのである。
特に有利には、本発明の方法にてプリフィールドにてオブジェクト初期化又は
メソッド呼出のためメモリ割当を行う。
メモリ割当の有利な形態は例えばポインタを介するものであり、該ポインタは
テスト作動中定義替えされ得る。
更に有利には本発明の方法はオブジェクト内部のデータコンポーネントに対す
るアクセスを行う、それというのは当該データコンポーネントは、通常オブジェ
クト指向プログラミングの際通常のデータ隠蔽(Hiding)のためテスト実
行者にはアクセス不能であるからである。
更に本発明の方法において有利にはデバッガが接続され、その結果テストの際
発見されたエラーが付加的にデバッガを用いて分析され、局所化され得ることで
ある。
1つのクラスの動作機能(の様子)をできるだけ完
全にテストし得るため、本発明の方法は有効にジェネリック及び継承クラスに対
するメソッド情報の生成を行う。
次ぎに図を用いて本発明を詳述する。
図1は本発明の方法の1実施例を示す。この実施例は例えば交換装置に係わる
。プログラミング言語(この言語にてコンピュータはプログラミングされる)は
例えばオブジェクトCHILL([2])である。
図2は例えばプログラムリスティング(リスト状態)を示す。
図3は本発明の方法のブロックダイヤグラムを示す。
図1に示すように例えばクラス仕様化(特化)からジェネレータ(生成プログ
ラム)Gを用いてメソッド情報が生成され、そして、当該メソッド情報はメソッ
ド呼出の相応のパラメータのための変数メモリ及び被テスト対象(体)クラスの
オブジェクトを用意するために用いられる。それに引き続いて、トランスレータ
Uを用いてテストフレームTRがコマンドインタプリタKIと共に翻訳変換され
、それにより、仕上がりのテストプログラムTPが形成される。当該のコマンド
インタプリタKIは例えばテストコマンド言語(命令シンタクス)は、更に以降
の明細書記載中“入力”のところに説明する)にて作成される。而して、例えば
テスト終端にてテストシナリオを簡単に作成し得る。例えばコマンドインタプリ
タは次のような命令を可能にする。
例えば本発明の方法では2種類の変数が区別される。1つは純然たるIDS変
数(Interactive Debugging System)であり、こ
れは慣用のように宣言され利用され得るものである。もう1つは被テスト対象(
体)−又はパラメータクラスのインスタンスとしてコマンドDCL_OBJを介
して宣言される。
例えば共にバインド(リンク)されたモジュールからの変数はIDSを介して
、また、ループ及び分岐の
ブール式(論理的)条件にて、または右辺でのIDSを以ての割当により使用さ
れ得る。DCL_OBJで仕様化(宣言)された、IDSのバインディング(結
合リンク)は例えばモード“REF被テストクラス”(これはDCL_REF_
OBJで仕様化されるべきものである)及び2つのコマンドASSIGN_RE
F_OBJ及びASSIGN_DEREF_PTRにより形成される。例えばテ
ストシステムコマンド言語のオペレータはIDSオペレータにて写像される。
本発明の方法では例えば次のような命令(該命令はテスト者(端)より相互作
用的に入力され、テストの際高い信頼性を確保する)をオブジェクト処理のため
用意し得る。テスト者(端)によるテスト入力及びそれによりなされる呼出は有
効に別個に管理される。例えばオブジェクト管理部はコンピュータオブジェクト
へのコマンド言語でのテストオブジェクトの割当を確保するため設けられる。更
に、ハードウエア的に経過処理されるプログラムとのテストメソッド呼出の一貫
性を確保する呼出処理部をも有利に設け得る。このためにテストプログラムを新
たに生成する必要はない。
オブジェクト処理用のコマンド
モジュールクラスのオブジェクトの仕様化(宣言)DCL
_OBJオブジェクト名クラス名“(“パラメータリスト”)”
当該コマンドによっては1つのオブジェクトがコマ
ンド言語の平面レベルで用意される。パラメータリストはコンストラクタ呼出に
対するパラメータを表す。それは脱落し得る。その際、標準コンストラクタが呼
出される。そうでないと、メソッド呼出の場合と同じ規則が適用される。
オブジェクト名は記号(シンボル)&(これには大文字、次いでせいぜい更に
29の大文字、数字又はアンダラインが続く)からならなければならない。そう
でないとエラー通報“ILLEGAL OBJECT NAME”が出力される
。クラスはテストフレームの生成の際、共に考慮されていなければならず、そう
でないとエラー通報“UNKNOWN CLASS”が出力される。或1つのオ
ブジェクトが指定(指示)された名で仕様化(宣言)されている場合はエラー通
報“OBJECT ALREADY DECLARED”が出力される。コマン
ドDCL_OBJはIDSコマンドDCLの区別のため選ばれたものである。
オブジェクトに対するボインタの仕様化(宣言)
DCL_REF_OBJボインタ名REFクラス名
仕様化(宣言)されたポインタはIDS変数であり、それの存在についてはオ
ブジェクト管理部が知識を得ているIDSの規則は遵守されるべきである。
クラス(それについてはオブジェクトが仕様化(宣言)され得る)に対するポ
インタモードはテストシステムにて内部的に宣言される。DISPOSE_OB
J_コマンドによるオブジェクトの消去の際、次のことがチェックされる、即ち
消去さるべきオブジェクトのクラスに対してDIL_EF_OBJで仕様化(宣
言)されたポインタが当該オブジェクトを指し示すか否かがチェックされる(参
照 DISPOSE_OBJコマンド)。
モジュールークラスのオブジェクトの消去
DISPOSE_OBJオブジェクト名
当該コマンドによっては先にDCL_OBJで実現値化されたオブジェクトが
再び消去される。オブジェクトはあらかじめ生成されていなければならず、そう
でないエラーケースが生じる。これは“OBJECT UNDFFINED”で
通報される。消去さるべきオブジェクトのクラスに対してDC_LREF_OB
Jで仕様化(宣言された)が当該オブジェクトを指し示す場合にはコマンドは実
行されず、エラー通報YET REFERENCEDが出力される。但し、DC
L_REF_BJで仕様化(宣言)されたポインタとは別のポインタがオブジェ
クトに対して存在するか否かはチェックされない。
オブジェクトのアドレスの転送
ASSIGN_REF_OBJオブジェクト名IDS変数
コマンドはIDS変数内へ指定されたオブジェクトのアドレスを記述し表す。
当該IDS変数はDCL_
REF_OBJを以て指定されたオブジェクトのクラスに対するポインタとして
仕様化(宣言)されていなければならない。そうでないと、誤り通報“UNKN
OWN IDS−POINTER”が出力される。(DCL_REF_OBJ)
ポインタを有するクラスに対するポリモアヒズムのない)。オブジェクトはあら
かじめDCL_OBJで生成されていなければならない、そうでないと、誤り通
報“UNKNOWN OBJECT”が出力される。
コマンドの後でIDS変数はオブジェクトを指し示す。当該コマンドによりテ
スト実行者に対してコマンド言語のオブジェクトとIDSとの間のバインディン
グないしリング(連結)が形成される。
非参照化ポインタのデータの転送
ASSIGN_DEREF_PTR IDS変数オブジェクト名
コマンドはボインタの指し示すオブジェクトのデータを指定されたオブジェク
ト内にコピーする。当該コマンドによってはテスト実行者に対してコマンド言語
のオブジェクトとIDSとの間のバインディングないしリング(連結)が形成さ
れる。
当該IDS変数はDCL_REF_OBJを以て指定されたオブジェクトのクラ
スに対するポインタとして仕様化(宣言)されていなければならない。そうでな
いと、誤り通報“UNKNOWN IDS−POIN
TER”が出力される。(DCL_REF_OBJ)ポインタを有するクラスに
対するポリモアヒズムのない)。IDS変数は亦実際に当該クラスの1つのオブ
ジェクトを指し示していなければならない。このことはテストシステムによって
はチェックされ得ない。
指定されたオブジェクトはあらかじめDCL_OBJで生成されていなければ
ならない、そうでないと、誤り通報“UNKNOWN OBJECT”が出力さ
れる。
オブジェクトのデータの出力
SHOW OBJ オブジェクト名
コマンドによってはプロトコルデータALL,OUT内へ及びターミナルへ(
これが起動された場合このためのコマンドのPROTSTATUS)指定された
オブジェクトのデータアトリビュート(属性)の出力が生ぜしめられる。上記コ
マンドはIDSコマンドDISPLAYで実現される。指定されたオブジェクト
はあらかじめDCL_OBJで生成されていなければならない、そうでないと、
誤り通報“UNKNOWN OBJECT”が出力される。
オブジェクトデータを出力するもう1つの手法(可能性)はコマンドSAY及
びWRITFを用いての、オブジェクトを指し示す非参照的IDSポインタの指
示である。
通常メソッドの呼出
オブジェクト名メソッド名“(“パラメータリスト”)”
指定されたオブジェクトの場合メソッドはパラメータリストのパラメータで呼
出される。当該オブジェクトはあらかじめDCL_OBJで生成されていなけれ
ばならない。パラメータとしてはたんにIDS変数又はオブジェクト(これはコ
マンド言語で仕様化(宣言)されている)のみが許容されている。誤ったモード
の場合、誤り通報“PARAMETERMODES DO NOT FIT T
O METHODNAME”が出力される。被テスト対象(体)クラスのメソッ
ドにおける可能なオーバーロードのためモード誤り(エラー)は一般に比較的精
確には局在(所)化され得ない。パラメータはカンマにより分離されるべきであ
り、ここで2つの直ぐ順次連続するパラメータ間で、それぞれ精確に1つのカン
マが存在するように分離されるべきである。
結果によるメソッドの呼出
変数:=オブジェクト名、メソッド名“(“パラメータリスト”)”
通常のメソッドの呼出の際におけると同じ規則が適用される(上記参照)。結
果の割り当てられる変数はIDS変数又はあらかじめDCL−OBJで仕様化(
宣言)されたオブジェクトは適当モードでなければ
ならない。
そうでなければ誤り(エラー)通報が出力される
オブジェクトについての割当
Obj:=Obj;2
Obj1のデータコンポーネントにはObj2の相応の値が割り当てられる。
両オブジェクトはあらかじめDVL−OBJで仕様化(宣言)されていなければ
ならず、そうでなければ誤り(エラー)通報“UNKNOWN OBJECT
Objektname”ないし“MODE−MISSMATCH”が出力される
。
オブジェクトについての情報
OBJ LISTクラス名
当該コマンドによっては実際に指定されたクラスに対して仕様化(宣言)され
たすべてのオブジェクトの名前の出力が生ぜしめられる。クラス名の代わりにA
LLを指定してもよく、そこでそれに対してオブジェクト管理部の存在するすべ
てのクラスへオブジェクト名が出力される。指定された名前を有するクラスに対
してオブジェクト管理が生成されなかった場合には誤リ(エラー)通報“UNK
NOWN CLASS”が出力される。
オブジェクトポインタについての情報
OBJ_REF_LISTクラス名
当該コマンドによっては実際に指定されたクラスにたいしてコマンドDCL_
REF_OBJにより仕様
化(宣言)されたすべてのポインタ名の出力が生ぜしめられる。クラス名の代わ
りにALLを指定してもよく、そこで、DCL REF OBJで仕様化(宣言
)されたオブジェクト名が出力される。指定された名前を有するクラスに対して
オブジェクト管理が生成されなかった場合には誤り(エラー)通報“UNKNO
WN CLASS”が出力される。
クラスについての情報
CLASS LIST
当該コマンドによってはそれに対してオブジェクト管理(機能)の生成された
すべてのクラス名の出力が生ぜしめられる。
ここで述べられたことはたんに本発明の方法の実施のための例として解される
べきものであり、オブジェクトーCHLLの特別なネーミングを考慮している。
上記事項は他のオブジェクト指向プログラミング言語、例えばC=++,Eif
fel,SIMULA 又はSmalltalkにも直接転用可能である。当該
の手法(方法)は例えば一般性を制限せずに実施することもできる。特に重要で
あるのは、唯一度テストプログラムを変換しさえすればよく、テスト実行者は本
発明の方法により、クラステストに必要なすべてのテスト機能を相互作用的に(
インタラクティブに)トリガし得ることである。ここで“インタラクティブ”は
つぎのことも意味し得る、即ちテストコマンドデータを生成し、これをスタート
し、そして、相応の中断のための判定基準を付与することである。
図2には本発明の方法のテスト例をプログラムリストとして示してある。これ
はクラス仕様化(宣言)及びテストインタープリタに対する相応のコマンドを含
む。この例ではジェネリッククラスSTAGENLSはそれの2つの標識(マー
キング)STAINTLSおよびSTATEXLSを介してテストされる。
生成プログラムのためには3つのクラス仕様化(宣言)メンバー1),2),
3)を図示のように含む入力としてのデータ集合体が用いられる(データ集合体
におけるメンバーの順序は重要でない)。
クラスSTATEXLSはCHILL−モジュールからTEXMODEをイン
ポートする。エキスポートをするモジュールは生成プログラム実行のための入力
部ではない。
当該例では2つのオブジェクト管理クラスOMCL001S及びOMCLOO
2S及び2つの呼出処理クラスOMCL001S及びOMCL002Sが生成さ
れる、それというのは唯2つのクラスのみが生ぜしめられるからであり、それら
のうちのオブジェクトは実現値化され、そこでメソッドが呼出され得、即ちST
AINTLS及びSTATEXLSが呼出される。メンバーデータ集合体の上述
の順序の場合、クラ
ス...00ISはSTAINTLSに属し、そして、クラス...002Sは
STATEXLSに属する。
図3は例として本発明の方法の実施の際の種々のコンポーネントの共働の様子
を示す。
一番上方の個所にはテスト者の入力を解釈変換(インタープリット)するKI
が存在するオブジェクト管理(部)OV及び呼出管理(部)AVは被テスト対象
(体)と、テスト者(端)のテストシナリオとの一貫性(整合性)を確保する。
このことは次のようにして行われる、即ち当該管理(部)は例えばポインタを介
してコンピュータにおけるメモリ領域を割り当てるか又は当該メモリ領域に名前
を割り付けるのである。斯くてそれにより実行さるべきメソッドの確実なシーケ
ンス経過が確保される。
4.入力
4.1テストシステムのコマンド言語
4.11一般的規則
テストシステムのコマンド言語は(HILL及びIDSに依拠している。つま
り下記のことを意味する。
−−同じ記号(シンボル)セットが使用される、換言すればキーワード及び指
示子(記述子)に対して大文字のみが許容される。
――すべてのコマンドをヤミコロンにより終了する。
――空ら記号(ブランク)のようなコメントが扱い処理される。
――キーワード又は記述子間のブランクを指定しなければならず、一方オペレ
ータ間では省かれ得る。
付加的に次のようなセッティングが行われる。
―行(ライン)分離(子)はブランクのように扱われ、換言すれば、多行のコ
マンドの場合80番目の記号(MVS行に相応)の後1つのブランクが挿入され
る。よって遅くとも行終端にて1つの語が終わる。
−以下述べる長さは最大値として解される。
指示子は最大31行長である。ストリングは1行(80記号)の長さであり得
る(コマンドSAYないしWRITEで指定される場合)。ループ及び分岐にお
けるブール的(論理的条件)ステートメント(式、表現)変数宣言は190の記
号を越えてはならない、それというのはIDSを用いて評価ないし宣言されるか
らである。
有効に入力されたコマンドは明示的は受領確認されないで、次のコマンドの入
力が予期される。それの例外を成すのはたんにコマンドEND,REGTSTS
TART 及びREGTESTENDである。
誤りのある場合コマンドは相応の通報により指示され、ここで、誤り訂正は暗
示的には実施されない。誤りのあるコマンドの後インタプリタはターミナルモー
ドで次のコマンドを予期し換言すればコマンドデータ集合体は誤りの後に(アク
ティブ)状態を脱する。コントロール構造にて誤りが生じると、当該コントロー
ル構造はコマンドと全く同じように中断される。同じ行における更なるコマンド
は無視される。回帰テスト中の誤ったコマンドによっては回帰テストの中断が生
ぜしめられる(参照6章)。
4.1.2
コマンド言語の記述
コマンドの記述は拡大されたBackus−Naurform(EBNF)に
依拠しており、ここで次の規則が成立つ。
――コマンド言語のキーワードは大文字で記述される。
―選択肢は′1′により表示され、例えばComは下記のフオームを有する、
:FORM1|FORM2......、換言すればコマンドComはFORM
1またはFORM2のフォーム(形態)で入力され得る。
――省略し得る部分は括弧′[′及び′]′に入れられ得る。
例えばComは下記のフォームを有するTELL1[TEIL2]換言すれば
コマンドComはTEIL1又はTEIL1 TEIL2のフォームで表示され
得る。
――相関する部分は括弧′(′及び′)′の中に入れられ得る。例えばComは
(TEIL1|TEIL2)TEIL3のフォームを有し、換言すればコマンド
ComはTEIL1 TEIL3又はTEIL
2 TEIL3のフオームで表示され得る。
――簡略化され得るコマンド又はコマンドパラメータは名前のアンダーラインを
引いた部分である。例えばKURZFORMはKURFにより簡略化され得る。
4.1.3シンタクスに対する概説
コマンド言語のシンタクスは個々のコマンドと同様に次の章にてEBNFを用
いて記述される。
――非(ノン)―ターミナルシンボル(これは文法を構造化して文節し得るため
用いられる)は尖った括弧内に納められ表示され得る。
――ターミナルシンボルはTeSコマンド言語に所属するシンボルである。キー
ワードは大文字で記述され、その他のシンボルは引用記号(例えば(′<′及び
′>′)内に入れられる。
――メタ記号′::=′の左側にある非(ノン)ターミナルシンボルは右辺によ
り置換され得る。文法はコンテキストがない、換言すれば左辺部は付加的なター
ミナルシンボルが存在しない。
――任意の頻度で(0回も含む)繰り返されてよいシンボルは括弧′{′及び′
}′の中に入れられる。閉じられた′+′が続く場合、このことの意味するとこ
ろはシンボルは少なくとも1回は繰り返さなければならないことである。数Xが
つづく場合は括弧に入れられた部分はX回繰り返さなければならないという
ことである。
――メタシンボル′.′は規則の終端を指示する。
――非(ノン)―ターミナルシンボル<chars>の代わりに、任意の記号列
(これは評価のためIDSへ転送される)が予期される。当該記号列はテストシ
ステムによりシンタックス的に分析される。
モジュール−クラス−テストに対するコマンド言語の文法
【手続補正書】特許法第184条の8
【提出日】1994年11月8日
【補正内容】
請求の範囲
1. コンピュータにてオブジェクト指向プログラムの1つのクラスのテストを
する方法において、
a)少なくとも1つのクラス仕様から、少なくとも1つのメソッド及びそれの
所属の呼出パラメータについてメソッド情報を形成し、
b)該メソッド情報を用いてテストフレームを生成し、該テストフレームによ
ってはオブジェクトをダイナミックに印加し得るようになり、および/又はオブ
ジェクトをスタチックに備え、また当該のメソッドを呼出パラメータで呼び出し
得るようになり、
c)1構成部分としてコマンドインタプリタを含むテストプログラムを生成し
、該インプリタはテスト実行者により入力されるテストコマンドを翻訳変換(イ
ンタープリット)し、また前記テストプログラムはさらなる構成部分として
b)にて生成されたテストフレームを含むものであり、ここにおいて、当該の
テストプログラムは唯1度変換され、バインドされるようにして当該テストプロ
グラムは生成されるものであり、
d)テストプログラムはクラスのテストのために使用されるようにし、ここに
おいて、入力されたテストコマンドはその中に含まれているコマンドインプリタ
により解釈変換され、それにより種々異なるテ
ストシナリオによっても新たな変換翻訳及びバインディングが必要とされないよ
うにしたことを特徴とするコンピュータにてオブジェクト指向プログラムの1つ
のクラスのテストをする方法。
2.前記メソッド情報は少なくとも、共にテストさるべきそれぞれの個々のクラ
スについて、外部メソッドインターフェースを介してエキスポート(expor
t)されるすべてのメソッドに対して生成される請求の範囲1記載の方法。
3.前記テストフレームは変数メモリを有し、および/又は利用する請求の範囲
1又は2記載の方法。
4.前記変数メモリに対してポインタを介してアクセスを行う請求の範囲1から
3までのうちいずれか1項記載の方法。
5.コマンドインプリタはコンピュータ上に設けられている少なくともデバッガ
を利用する請求の範囲1記載の方法。
6.少なくとも1つのデータコンポーネントは1つのクラスから導出される少な
くとも1つのオブジェクトにより読出され、および/又は書込まれる請求の範囲
1から5までのうちいずれか1項記載の方法。
7.少なくとも1つのクラスに対するメソッド情報が少なくとも1つの継承され
たメソッドにより少なくとも1つの継承されたクラスからも形成される請求の範
囲1かた6までのうちいずれか1項記載の方法。
8.ジェネリッククラスから導出される少なくとも1つのクラスに適用される方
法において、当該メソッド情報は少なくとも1つのメソッドに対してもジェネリ
ッククラスから生成される請求の範囲1から7までのうちいずれか1項記載の方
法。
Claims (1)
- 【特許請求の範囲】 1. コンピュータにてオブジェクト指向プログラムの1つのクラスのテストを する方法において、 a)少なくとも1つのクラス仕様から、少なくとも1つのメソッド及びそれの 所属の呼出パラメータについてメソッド情報を形成し、 b)該メソッド情報を用いてテストプログラムの所定構成部分を生成し、該所 定テストプログラム構成部分によってはテストの際に必要なコンピュータ作動手 段の少なくとも1つの割当が行われ得るものであり、 c)1構成部分としてコマンドインタプリタを含むテストプログラムを生成し 、該インプリタはテスト実行者により入力されるテストコマンドを翻訳変換(イ ンタープリット)し、また前記テストコマンドはさらなる構成部分としてb)に て生成されたテストプログラムの構成部分を含むものであり、 d)テストプログラムはテストコマンドを用いてクラスのテストのために使用 されることを特徴とするコンピュータにてオブジェクト指向プログラムの1つの クラスのテストをする方法。 2.前記メソッド情報は少なくとも、共にテストさるべきそれぞれの個々のクラ スについて、外部メソッ ドインターフェースを介してエキスボート(export)されるすべてのメソ ッドに対して生成される請求の範囲1記載の方法。 3.コンピュータ作動手段はメモリである請求の範囲1又は2記載の方法。 4.前記作動手段の割当をポインタを介して行う請求の範囲1から3までのうち いずれか1項記載の方法。 5.コマンドインプリタはコンピュータのOS内に設けられている少なくとも1 つのデバッガを利用する請求の範囲1記載の方法。 6.少なくとも1つのデータコンポーネントは1つのクラスから導出される少な くとも1つのオブジェクトにより読出され、および/又は書込まれる請求の範囲 1から5までのうちいずれか1項記載の方法。 7.少なくとも1つのクラスに対するメソッド情報が少なくとも1つの継承され たメソッドにより少なくとも1つの継承されたクラスからも形成される請求の範 囲1かた6までのうちいずれか1項記載の方法。 8.ジェネリッククラスから導出される少なくとも1つのクラスに適用される方 法において、当該メソッド情報は少なくとも1つのメソッドに対してもジェネリ ッククラスから生成される請求の範囲1から7までのうちいずれか1項記載の方 法。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP92121511.7 | 1992-12-17 | ||
| EP92121511 | 1992-12-17 | ||
| PCT/EP1993/003450 WO1994014117A1 (de) | 1992-12-17 | 1993-12-08 | Verfahren zum testen mindestens einer klasse eines objektorientierten programmes auf einem rechner |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08504526A true JPH08504526A (ja) | 1996-05-14 |
Family
ID=8210303
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6513773A Pending JPH08504526A (ja) | 1992-12-17 | 1993-12-08 | コンピュータにてオブジェクト指向プログラムの少なくとも1つのクラスのテストをする方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5794043A (ja) |
| EP (1) | EP0674784B1 (ja) |
| JP (1) | JPH08504526A (ja) |
| DE (1) | DE59307182D1 (ja) |
| WO (1) | WO1994014117A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004318887A (ja) * | 2003-04-14 | 2004-11-11 | Microsoft Corp | オブジェクトをテストするための方法 |
Families Citing this family (27)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6069890A (en) | 1996-06-26 | 2000-05-30 | Bell Atlantic Network Services, Inc. | Internet telephone service |
| US6154445A (en) | 1996-04-18 | 2000-11-28 | Bell Atlantic Network Services, Inc. | Telephony communication via varied redundant networks |
| KR100212465B1 (ko) * | 1996-08-14 | 1999-08-02 | 정선종 | 객체지향 칠을 칠로 변환시 모레타 모드에 대한 그랜트/시즈 처 리 방법 |
| US5983016A (en) * | 1996-11-12 | 1999-11-09 | International Business Machines Corporation | Execution engine in an object modeling tool |
| DE19650293C1 (de) * | 1996-12-04 | 1998-04-09 | Siemens Ag | Verfahren zum Testen von Systemkomponenten eines objektorientierten Programms |
| US6157636A (en) * | 1997-03-06 | 2000-12-05 | Bell Atlantic Network Services, Inc. | Network session management with gateway-directory services and authorization control |
| US6574216B1 (en) | 1997-03-11 | 2003-06-03 | Verizon Services Corp. | Packet data network voice call quality monitoring |
| US6870827B1 (en) | 1997-03-19 | 2005-03-22 | Verizon Services Corp. | Voice call alternative routing through PSTN and internet networks |
| US6031990A (en) * | 1997-04-15 | 2000-02-29 | Compuware Corporation | Computer software testing management |
| US6353897B1 (en) * | 1999-01-06 | 2002-03-05 | International Business Machines Corporation | Object oriented apparatus and method for testing object oriented software |
| US20030009544A1 (en) * | 2000-06-05 | 2003-01-09 | Wach Raymond S. | Method of performing distributed load testing |
| US6904594B1 (en) | 2000-07-06 | 2005-06-07 | International Business Machines Corporation | Method and system for apportioning changes in metric variables in an symmetric multiprocessor (SMP) environment |
| US7389497B1 (en) | 2000-07-06 | 2008-06-17 | International Business Machines Corporation | Method and system for tracing profiling information using per thread metric variables with reused kernel threads |
| US6662359B1 (en) | 2000-07-20 | 2003-12-09 | International Business Machines Corporation | System and method for injecting hooks into Java classes to handle exception and finalization processing |
| US7150007B2 (en) * | 2000-09-11 | 2006-12-12 | Microsoft Corporation | Universal routine for reviewing and exercising software objects |
| US20060265475A9 (en) * | 2001-03-19 | 2006-11-23 | Thomas Mayberry | Testing web services as components |
| JP2004213053A (ja) * | 2002-12-26 | 2004-07-29 | Toshiba Corp | オブジェクト状態分類方法とシステム、およびそのためのプログラム |
| TWI262383B (en) * | 2003-01-10 | 2006-09-21 | Univ Nat Cheng Kung | A generic software testing system and method |
| US7340725B1 (en) * | 2004-03-31 | 2008-03-04 | Microsoft Corporation | Smart test attributes and test case scenario in object oriented programming environment |
| US7484145B1 (en) | 2005-09-23 | 2009-01-27 | At&T Intellectual Property Ii, L.P. | Method for embedded integrated end-to-end testing |
| US20070168973A1 (en) * | 2005-12-02 | 2007-07-19 | Sun Microsystems, Inc. | Method and apparatus for API testing |
| US8763007B1 (en) | 2006-08-29 | 2014-06-24 | At&T Intellectual Property Ii, L.P. | Open application interface for complex systems |
| US8539474B2 (en) * | 2006-09-28 | 2013-09-17 | International Business Machines Corporation | Method and system for management of interim software fixes |
| US8969415B2 (en) | 2006-12-01 | 2015-03-03 | Allergan, Inc. | Intraocular drug delivery systems |
| US8311794B2 (en) * | 2007-05-04 | 2012-11-13 | Sap Ag | Testing executable logic |
| US20100104654A1 (en) | 2008-10-27 | 2010-04-29 | Allergan, Inc. | Prostaglandin and prostamide drug delivery systems and intraocular therapeutic uses thereof |
| US10204034B2 (en) * | 2017-04-06 | 2019-02-12 | At&T Intellectual Property I, L.P. | System and method for testing software applications in a software defined network |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4989132A (en) * | 1988-10-24 | 1991-01-29 | Eastman Kodak Company | Object-oriented, logic, and database programming tool with garbage collection |
| EP0546682A3 (en) * | 1991-12-12 | 1993-12-08 | Ibm | Parent class shadowing |
| US5421016A (en) * | 1991-12-12 | 1995-05-30 | International Business Machines Corporation | System and method for dynamically invoking object methods from an application designed for static method invocation |
| JPH06103075A (ja) * | 1992-07-06 | 1994-04-15 | Internatl Business Mach Corp <Ibm> | オブジェクト指向適用業務 |
| US5339433A (en) * | 1992-11-19 | 1994-08-16 | Borland International, Inc. | Symbol browsing in an object-oriented development system |
| US5390325A (en) * | 1992-12-23 | 1995-02-14 | Taligent, Inc. | Automated testing system |
-
1993
- 1993-12-08 EP EP94902713A patent/EP0674784B1/de not_active Expired - Lifetime
- 1993-12-08 DE DE59307182T patent/DE59307182D1/de not_active Expired - Fee Related
- 1993-12-08 WO PCT/EP1993/003450 patent/WO1994014117A1/de not_active Ceased
- 1993-12-08 US US08/454,279 patent/US5794043A/en not_active Expired - Fee Related
- 1993-12-08 JP JP6513773A patent/JPH08504526A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004318887A (ja) * | 2003-04-14 | 2004-11-11 | Microsoft Corp | オブジェクトをテストするための方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0674784B1 (de) | 1997-08-20 |
| EP0674784A1 (de) | 1995-10-04 |
| WO1994014117A1 (de) | 1994-06-23 |
| US5794043A (en) | 1998-08-11 |
| DE59307182D1 (de) | 1997-09-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH08504526A (ja) | コンピュータにてオブジェクト指向プログラムの少なくとも1つのクラスのテストをする方法 | |
| US6067641A (en) | Demand-based generation of symbolic information | |
| US7051316B2 (en) | Distributed computing component system with diagrammatic graphical representation of code with separate delineated display area by type | |
| US7516441B2 (en) | Method and system for program editing and debugging in a common language runtime environment | |
| US5812850A (en) | Object-oriented symbolic debugger using a compiler driven database and state modeling to control program execution | |
| EP0539120B1 (en) | Source code analyzer | |
| US9916134B2 (en) | Methods and systems for accessing distributed computing components through the internet | |
| US8448152B2 (en) | High-level language, architecture-independent probe program compiler | |
| US7426717B1 (en) | System and method for debugging files in a runtime environment | |
| Lehmann et al. | Feedback-directed differential testing of interactive debuggers | |
| Furia et al. | AutoProof: auto-active functional verification of object-oriented programs | |
| JPH03188535A (ja) | プログラム・エラー検出方法 | |
| Hunt | A beginner's guide to Scala, object orientation and functional programming | |
| Fang | Using a coding standard to improve program quality | |
| Hoffman et al. | API documentation with executable examples | |
| Larsen et al. | Overture vdm-10 tool support: User guide | |
| Lee et al. | Debugging mixed‐environment programs with Blink | |
| Ousterhout | Tcl/Tk Engineering Manual | |
| Elovitz | An experiment in software engineering: The architecture research facility as a case study | |
| Allevato et al. | Dereferee: Instrumenting C++ pointers with meaningful runtime diagnostics | |
| Strein et al. | Design and Implementation of a high-level multi-language .NET Debugger | |
| Schenk | Development of a Java Debugger Framework Based on the Espresso VM and Its Compilation to JavaScript/Author Felix Schenk, BSc | |
| JP2659366B2 (ja) | デバッグ方法及びその装置 | |
| Reiss | The FIELD Debugger | |
| Fluri | Reflection for Eiffel |