JPH09511853A - 相互作用のある要素を有するシステムのための効率的なテスト・ケースの自動生成方法およびシステム - Google Patents

相互作用のある要素を有するシステムのための効率的なテスト・ケースの自動生成方法およびシステム

Info

Publication number
JPH09511853A
JPH09511853A JP8512765A JP51276596A JPH09511853A JP H09511853 A JPH09511853 A JP H09511853A JP 8512765 A JP8512765 A JP 8512765A JP 51276596 A JP51276596 A JP 51276596A JP H09511853 A JPH09511853 A JP H09511853A
Authority
JP
Japan
Prior art keywords
test case
test
fields
deterministic
values
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.)
Granted
Application number
JP8512765A
Other languages
English (en)
Other versions
JP2882687B2 (ja
Inventor
コーエン,デイヴィッド,モーデカイ
ダラル,シドハーサ,ラマンラル
フレッドマン,マイケル,ローレンス
パットン,ガードナー,コンド
Original Assignee
ベル コミュニケーションズ リサーチ,インコーポレイテッド
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 ベル コミュニケーションズ リサーチ,インコーポレイテッド filed Critical ベル コミュニケーションズ リサーチ,インコーポレイテッド
Publication of JPH09511853A publication Critical patent/JPH09511853A/ja
Application granted granted Critical
Publication of JP2882687B2 publication Critical patent/JP2882687B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

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)【要約】 相互作用のある要素を有するシステムのための最小数のテスト・ケースを列挙する本方法およびシステムは、要素と各要素について評価された特性数との間の関係に対し作用する。コンピュータ・システムで実行される本発明の方法(16)においては、ユーザは、各要素に値を入力し、要素間の関係(18)を定義する。そして、本方法では、適用できる場合は決定論手続を使用して、決定論手続を適用できない場合はランダム手続を使用して、各要素間の関係に対しテスト・ケース表を列挙する(14)。各関係に対しテスト・ケース表を生成した後、本方法では、関係を結合して単一のテスト・ケース表とする(20)。

Description

【発明の詳細な説明】 相互作用のある要素を有するシステムのための効率的な テスト・ケースの自動生成方法およびシステム 発明の属する技術分野 本発明は、コンピュータ・ソフトウェアのテストに関する。より具体的には、 本発明は、ソフトウェア・システムを頑健に(robustly)テストするために必要な 最小の数のテスト・ケース(test case)を効率的に生成し、列挙するシステムお よびプロセスに関する。 従来の技術 トランザクショナル・コンピュータ・システム(transactional computer syst ems)は、より大型に、かつ、より複雑になってきている。電話会社は、トランザ クション処理(transaction processing)を実装し、自己の操作支援システムの効 率を高めている。ユーザが、それらのトランザクション処理システムとやりとり をする場合は、CRTスクリーン上のフィールドにデータを入力し、スクリーン 上の他のフィールドの応答を待つのが一般的である。新しいソフトウェアが開発 されると、それらのソフトウェア・システムは、エンド・ユーザに提供される前 に、テストを受ける必要がある。 ソフトウェアをテストする者は、スクリーンへ入力される組合せを特定してい るテスト・ケースを開発し、それをシステムに入力して、システムの応答が入力 に対する結果として適切であるか否かを調べることによりテストを行う。テスト の一方法は、スクリーンへ入力する値のすべてについての、すべての組合せのテ スト・ケースを生成することであろう。ほとんどのシステムにおいて、多数のス クリーンが存在し、そのスクリーンは多様なフィールドを有し、それぞれのフィ ールドは多様な値を有することから、生成されるテスト・ケース数は、極め て大きなものとなることがある。それに応じて、そのようなテストを行うコスト も、法外なものとなることがある。そのため、現在の技術においては、テスト・ ケース数の削減を、各フィールドのサンプル値をとることにより行っている。サ ンプル値は、数のフィールドについては、最小値、最大値、および、いくつかの 中間値のようなものである。この場合でも、現在の技術においては、スクリーン ・テストを行うコストは、ソフトウェアの開発コストを最大30%増加させるこ とがある。これらの問題は、スクリーンを用いたソフトウェア・システムに特有 のものではない。プロトコル適合性(protocol conformance)テストの分野におい ては、プロトコルおよび機能を有限状態機械(finite state machine)としてモデ ル化することが一般的である。しかしながら、n個の状態を有する有限状態機械 をテストするためのテスト・ケース数は、nの多項式(polynomial in n)となる 。プロトコルは、何千個もの状態を有することが一般的であり、何百万個の状態 を有することもあるので、従来の有限状態機械を用いたテストでは、過度の数の テストを生成することとなる。以下の例により、いくつかの問題が明らかとなる 。 1つのスクリーンを有し、そのスクリーン上にn個のフィールドが存在するシ ステムについて考える。また、ソフトウェア製作で用いられたシステム要求を分 析した結果、テストにおいては、限られた数(i)の入力のみが考慮されるとす る。すると、可能性のあるテスト・ケースの数は、スクリーン上のすべてのフィ ールドに対応する値を含むので、in個である。これは、スクリーンが1つの場 合であっても、非常に大きな数となり得る。例えば、各フィールドにつき、3個 の値(i=3)のみが考慮され、スクリーン上に13個のフィールド(n=13 )があるとすると、徹底的なテスト・ケースの数は、313=1,594,323 個である。明らかに、この数は非常に大きく、徹底的なテストでは、いかなる者 の使用可能な資源をも、はるかに超えてしまう。そのため、テストをする者は、 さまざまな方法を見つけて組合せ数を削減するのが一般的である。その方法は、 例えば、直感による方法、または、単に、他のすべてのフィールドをデフォルト 値(default values)として、1個のフィールドごとに、すべての値を試みる方法 である。残念ながら、このデフォルト・テ ストの方法は、さまざまなフィールド間の相互作用(interactions)または従属(d ependencies)は考慮されない。 当該分野における何人かの研究者は、計画実験(planning experiments)のため に使用される実験計画法を、ソフトウェア・テストの分野に適用することを調べ た(Phadke,M.S.,"Quality Engineering Using Robust Design",Prentice Hal l,Englewood Cliffs,NJ.,1989)。特に、Pahdkeは、ソフトウェアのテ ストに直交配列構成(orthogonal array designs)を使用することを提案する。直 交配列構成は、任意のペア(pair)のフィールドに対して、入力レベルのすべての 組合せが、正確に同じ回数だけ現れるようなテスト集合である。例えば、1個の スクリーンが3個のフィールド(n=3)を有し、各フィールドが2個の入力を とり得る場合を考える。考え得るすべての組合せに関する徹底的な(exhowitive) テストでは、下記の表1に示す8個のテスト集合という結果になる。 実験計画法を使用すると、同一のフィールドおよび値についての対応する直交配 列は、下記の表2に示す4個のテスト・ケースという結果になる。 表2では、すべての対の入力が正確に一回ずつ現れており、テスト・ケースは4 つのみである。この場合、表1に示す完全に列挙されたテスト・ケースの集合と 比べ、テスト・ケースが50%削減されている。 直交配列は、すべてのペアの入力をカバーし、かつ、完全なテスト集合よりも 大幅に少ないテスト集合を提供するが、この先行技術による解決手段には、多く の問題が存在する。まず第一に、全てのフィールドと入力の組合せが、対応する 直交配列を有してはいない。例えば、フィールドが7個あり、各フィールドが6 入力の可能性を有する場合は、直交配列は存在しない。直交配列の別の問題は、 構成することが難しいことである。直交配列を生成するための統一された方法は 1つもない。この困難性は、各フィールドのとる値の個数が等しくない場合には 、より大きなものとなる。また、直交配列の無駄な点は、ペアの入力のそれぞれ が、正確に同じ回数だけ現れることを必要とする点である。このバランス特性は 、均等な正確さが要求される統計的実験において、しばしば必要とされるもので ある。しかしながら、ソフトウェア・テストにおいては、均等な繰り返しを要求 する必要はない。 従って、本発明の目的は、自動化された方法およびシステムにより、従来技術 の限界を克服し、フィールド間の相互作用を取り入れる一方、ソフトウェア・シ ステムを頑健にテストするために必要なテスト・ケースの数を削減することであ る。 発明の概要 本発明は、相互作用のある要素を有するシステムのための最小の数のテスト・ ケースを列挙する方法およびシステムである。ここでは、スクリーンを用いたソ フトウェア・システムを対象として説明されているが、本発明は、フィールド、 フィールド値の個数、および、フィールド間の関係により構成されたものに対し 働くものである。本方法は、コンピュータ・システムで実行されるが、ユーザは 各フィールドに値を入力し、フィールド間の関係を定義し、そして、フィールド 間の相互作用の度合を定義する。それから、本方法では、適用できる場合は決定 論手続(deterministic procedures)を使用し、決定論手続が適用できない場合は ランダム手続(random procedures)を使用して、フィールド間の各関係に対して テスト・ケース表を列挙する。各関係に対してテスト・ケース表を生成した後、 本発明の方法では、異なる関係に対するテスト・ケースを結合して、単一のテス ト・ケース表とする。システムが異なる特性を有する構成要素から構成される場 合の本発明の適用においては、構成要素をフィールドに類似したものとして、構 成要素の特性をフィールド値に類似したものとして扱う。 図面の簡単な説明 図1は、本発明のシステムを示す。 図2は、本サンプル・システムの実施形態における、サンプルの入力スクリー ンを示す。 図3は、関係の例、および、本射影平面アルゴリズム(projective plane algo rithm)を使用して生成したテスト・ケース表の例を表す。 図4は、本積規則手続(product rule procedures)を使用して生成したテス ト・ケース表を表す。 図5は、本縮小積規則手続(reduced product rule procedures)に従って生成 した2つの表を表す。 図6は、3種類の関係に対するテスト・ケース表を表す。 図7は、本テスト・ケース併合プロセスを使用して生成したテスト・ケースの 統合表(consolidated table)を表す。 発明の詳細な説明 本発明は、最小の数のテスト・ケースを列挙し、フィールド間の相互作用を取 り入れ、従来技術の限界を克服する方法およびシステムである。 本発明の実施態様の例を図1に示すが、これには、図2に示すスクリーンを表 示するスクリーン表示装置10が含まれる。ユーザは、スクリーン28上の(ま たは、複数のスクリーンにわたる)フィールドの値を入力し、これらのフィール ド間の関係(以下「関係(relation)」という)を定義する。この関係により、フ ィールドのグループに関する正当性規則(validation rules)が確立される。また 、ユーザは、制約、および、各関係についてのフィールドの相互作用の程度を指 定するパラメータを入力する。また、ユーザは、関係から生成される入力の組合 せに対するシステムの正しい応答を指定することもできる。例えば、入力に対す るシステムの適切な応答は、入力が適法であるという単純なメッセージかもしれ ないし、また、電話をかけるというようなアクションかもしれない。表示制御プ ロセス12は、これらのフィールドの関係、および、正当性規則を、関係データ ベース(relation database)18に格納する。各関係に対するテスト・ケース表 は、プロセス14において生成され、そして、データベース18にまた格納され る。すべてのデータが入力され、フィールドの関係が定義され、個々のテスト・ ケース表が生成された後、ユーザは、統合された単一のテスト・ケース表の生成 を要求する。次に、テスト・スクリプト併合プロセス(test script merger proc ess)20は、プロセス14によって生成されたテスト・ケース表を結合して、単 一のテスト・ケース表を生成する。生成された単一のテスト・ケース表 は、データベース22に格納される。その後、単一のテスト・ケース表を、フィ ルタ・プロセス24(当該技術において多くのものが知られている)への入力と して使用し、テスト・スクリプト生成プロセス26(これも当該技術において知 られている)で読みとれる形に変換し、ソフトウェア・システムで実行できるテ スト・スクリプトを生成することができる。 上記システムは、本発明の最小数のテスト・ケースを列挙する方法を実現する ものである。本発明の方法は、2つの概括的な手続の集合により構成される。1 つは、個々の関係のそれぞれについて、テスト・ケース表を生成するもので、プ ロセス14において具現化され、もう1つは、個々の表を結合して単一の表とす るもので、プロセス20において具現化されている。それぞれの手続の集合にお いて使用されている構成要素(building blocks)は、本発明のシステムのユーザ により入力されたフィールド、フィールド値、関係、および、フィールドの相互 作用の程度である。また、本システムおよび方法を使用して、ソフトウェアのプ ロトコル適合性、および、機能の相互作用をテストするためのテスト・ケースを 生成することもできる。スクリーンを用いたデータベースへの適用においては、 フィールドは、スクリーン上のフィールドに対応する。プロトコル適合性への適 用においては、フィールドは、パラメータの選択やイベントの順序づけ(orderin gs of events)のような、テストのシナリオを決定する決定ポイント(decision p oints)に対応する。 関係を生成するために、ユーザは、関係中のフィールド、各フィールドの有効 な値および無効な値、並びに、制約を特定する。特定されたフィールドは、すべ てが1つのスクリーンから生じるものであることもあるし、複数のスクリーンに 及ぶこともある。スクリーン28の内部には、3つのフィールド(DEST30 、MODE31、および、PRI32)の例がある。下記の表3は、それらのフ ィールドの有効な値(DESTについてはcolorまたはblank、MOD Eについては600dpiまたはblank、PRIについてはD、D+、また は、D−)の関係を表す。 この関係は、データベース検索(database query)の出力の印刷に関するものであ る。これらのフィールド値は、共に関係を定義する。DESTは宛先プリンタ(d estination printer)を、MODEはモードを、PRIは優先度(priority)を表 す。つまり、関係1により、優先度がデファードの値(deferred values)(D、 D−、D+)の1つである場合は、DESTの有効な値はcolorまたはbl ankであり、MODEの有効な値は、600dpiかblankである。 表4は、フィールドDEST、MODE、および、PRIについての別の関係 を表す。表4により、PRIの有効な値がI(イミーディエト(immediate))の場 合、フィールドDESTの有効な値はmyprinterまたはblankであ り、MODEの有効な値はblankである。これらの2つの関係は、一緒にな って、ユーザとプリンタとをインターフェースするソフトウェアは、優先度が イミーディエトの場合にローカル・プリンタを使用することができ、優先度がデ ファードの場合に、カラー・プリンタ、および、600dpiモードを使用でき るという要件を強制していることをチェックしている。 ユーザは、フィールドおよび値の間の関係を指定したら、さらに、テストを望 むフィールド間の相互作用の程度も指定する。相互作用は、いかなるnの組合せ (例えば、ペア(pair-wise)、トリプル(triples)、徹底的など)としても、指定 することができる。例えば、ペアの組合せとは、2個のフィールドf1とf2に対 して、および、値、f1に対するv1とf2に対するv2の正当な値に対して、f1 が値v1をとり、かつ、f2が値v2をとるテスト・ケースがいくつか存在するこ とを意味する。関係1を例として使用すると、正当な値のペアの組合せのテスト では、図6に示すテスト・ケース61という結果となる。徹底的なテストでは、 12個のテスト・ケースを必要とする。関係2については、徹底的なテストでも ペアのテストでも同様に、図6に示す2つのテスト・ケース62となる。従って 、両関係についての徹底的なテストでは、14個のテスト・ケースを必要とする 一方、ペアのテストでは、合計8個のテスト・ケースを必要とする。 図6に示す関係1についての6つのテスト・ケース61は、テスト・ケース生 成プロセス14において実現された、本テスト・ケース表を生成する手続を使用 して生成されたものである。このプロセスでは、既知の決定論アルゴリズム(det erministic algorithms)に基づく決定論手続の新規な集合を、我々が開発したラ ンダム・アルゴリズム(random algorithm)に基づくランダム手続とともに使用し ている。我々が具現化したプロセス14では、まず、決定論手続を使用して、表 の生成を試みる。もし、フィールドの個数および相互作用が決定論アプローチに 不向きであるために、決定論手続を直接使用できない場合は、関係を下位部分(s ub-parts)に分解して、決定論手続を使用したテスト・ケースの生成ができるよ うにする。プロセス14では、下位部分について生成したテスト・ケースを、本 ランダム手続におけるシード・テスト・ケース(seed test cases)として使用し 、当該関係についてのテスト・ケース表の生成を完成させる。決定論手続 本決定論プロセスにおける第1のステップは、関係を調べ、フィールド値の個 数の最も大きいフィールドのグループ、または、フィールド値の個数が同じであ るフィールドのグループのうち最大のものを決定することである。そして、次の ステップは、このフィールドのグループを調べ、決定論アルゴリズムを使用して テスト・ケース表が作成できるか否かを調べることである。本実施形態において は、決定論アルゴリズムは、本射影平面手続、本一般的積規則手続の適用、また は、フィールド値のすべての組合せの単なる徹底列挙(exhaustive enumeration) のいずれかである。もし、フィールド値の個数が最大であるフィールドが1個し か存在しない場合は、本決定論手続では、単に、当該技術においてよく知られた 徹底列挙法を使用して、フィールド値の個数が最大であるフィールドの選択され た部分集合について、すべてのn通りの(n-way)組合せを生成する。そして、こ れらのテスト・ケースは、共通の値を有するフィールドの個数が最大であるフィ ールドに関する関係の部分集合から、本射影平面または積規則手続を用いて生成 されたテスト・ケースと比較される。このフィールドの部分集合を使用して、ラ ンダム・アルゴリズムをシード(seed)し、ランダム・アルゴリズムを使用して、 残りのフィールドの値を埋めて表を完成させる。 本一般化された射影平面手続が使用されるのは、値の個数が固定された素数の ベキ乗(fixed prime power)qであり、かつ、フィールド数がq+1である場合 である。当該技術において知られている古典的な射影平面構成(projective plan e construction)は、射影平面幾何学(the geometry of the projective plane) に基づくものである(Hall Jr.,M.,Combinatorial Theory,Wiley Interscien ce,New York,1986を見よ)。それは、ペアの相互作用についての実験計画に使 用されてきたものである。一般化された射影平面構成により、qn個のテスト・ ケース表が与えられる。ここで、qはフィールド値の個数であり、nは相互作用 の程度であり、n≦q+1である。本一般化された射影平面手続では、n通りの カバレッジ(coverage)を、以下のようにして生成する。 フィールド値の個数がq個のn通りの相互作用をカバーするために必要なテス ト・ケースの個数は、qn個である。本手続では、(0,....,0)を最初と し、(n−1,....,n−1)を最後とする(α1,....,αn)という形で、n 通りの組合せの数を列挙する。そして、本手続では、fをフィールドの個数とし て、(a1,....af)という形でテスト・ケースを決定する。λを0からq ベル付けされたテスト・ケースのフィールドλの値である。もし、f=q+1で あれば、afの値はαnである。フィールドq+1を「無限遠直線」("line at i nfinity")と呼ぶ。qが素数ではないが、素数のベキ乗である場合は、1からq までの数と、q要素を有する有限フィールド(finite field)との間で照合が必要 である。 本手続を関係に適用した例として、図3に示すようなフィールドを4個有し、 それぞれのフィールドが3個の値を有する関係30を考える。さらに、ユーザは 、フィールドのペアの組合せにつき、テスト・ケースの生成を望んでいるものと して考える。本手続では、列35に表すように、生成されるペアの組合せの個数 に従って、テスト・ケースに番号をつける。各フィールドの値が3レベルの場合 は、生成されるペアの組合せ(n=2)の個数は、9(32)個である。従って 、ペアの相互作用についての(a1,a2,a3,a4)という形をした9個のテス ト・ケースのうちの第1個目を生成するために、我々は、公式 36の第1の値であり、λは、フィールドの数を表すベクトル(1,....,q) からのフィールドの位置37を表す数である。それゆえ、a1の値は、フィール ド1(λ=0)においてα1掛けるλ1-1足すα2掛けるλ2-1で、38に示すよう に0となる。a2の値は、フィールド2(λ=1)においてα1掛けるλ1-1足す α2掛けるλ2-1で、39に示すように、これも0となる。このプロセスを、9個 の各テスト・ケースの各aiにつき繰り返す。その結果得られる表が、図3に示 す9個のテスト・ケース表34である。一見して、表34が、関係30とどのよ うに関係しているかは、明らかではないかもしれない。表34において、各列3 3はフィールドを表し、各列中の各セルの中の各数はフィールド値を表す。例え ば、(0,1)とラベル付けされた第4のテスト・ケース40に注目すると、列 a1の下の0は、フィールド1の第1のフィールド値を示し、列 a3の下の2は、フィールド3の第3のフィールド値を示す。従って、表30の である。 射影平面アルゴリズムを直接適用できるのは、フィールド値の個数がq(素数 または素数のベキ乗)個であり、かつ、フィールドの個数がq+1個以下である 場合のみである。(値の個数が素数のベキ乗に近い場合も効果的である。例えば 、11に近い10の場合である。)関係が射影平面構成に簡単に適合しないこと は、しばしばある。そのような状況において、本テスト・ケース列挙プロセスで は、関係を部分的な関係に分解し、射影平面手続を使用し、または、それが十分 小さい場合は徹底列挙により、部分的な関係についてのテスト・ケースを決定論 的に生成できるか否かを決定する。もしそうであれば、部分的な関係は、積規則 を使用して結合される。積規則を直接適用できるのは、各フィールドが同じ個数 のフィールド値を有し、かつ、フィールドの相互作用の程度がペアである場合の みである。 例えば、図4に示すような9個のフィールドを有し、各フィールドが2個のフ ィールド値を有する関係43を考える。本手続では、本射影平面アルゴリズムを 適用できる関係の部分集合44をとり、その部分集合のテスト・ケースを生成す る。この例においては、各フィールドが2個のフィールド値を有する3個のフィ ールドについてのペアのカバレッジについて、関係44に対し4つのテスト・ケ ース45が生成される。本積規則では、9個のフィールドについての8個のテス ト・ケース表46を生成する。これらのテスト・ケース46は、4個のテスト・ ケース45自身を結合した、それらのテスト・ケースの積である。それを実行す るプロセスは、第1の表の各要素を、第2の表のフィールドの個数だけ繰り返し 、そして、第2の表のフィールドの各一連の要素を、第1の表のフィールドの個 数だけ繰り返すことである。そして、本プロセスでは、得られたテスト・ケース 表に重複がないかを調べ、冗長なテスト・ケースをすべて除去する。上記の本例 においては、第5のテスト・ケース42が、第1のテスト・ケース41と重複す るので、除去される。 本積規則の実現は、以下のように一般化することができる。SおよびTのそれ ぞれを、各フィールドの値の個数が同じであるテスト・ケースの集合とする。フ ィールドの個数は任意である。例えば、Sはm個のフィールドを有し、Tはr個 のフィールドを有するものとする。Sのテスト・ケースは、一般に、(s1,... .,sm)と書ける。Tのテスト・ケースは、一般に、(t1,....,tr)と書け る。m*r個のフィールドのためのテスト・ケースの積は、(s1,....s1,s2 ,....,s2,.....sm,....sm)で各siをr回繰り返したもの、および、 (t1,....,tr,......,t1,....,tr,)で各テスト・ケース(t1,. ...,tr)をm回繰り返したものという形となる。 縮小積規則という他のアプローチを選択して、適用することができる状況もあ る。その状況とは、射影平面アプローチにより生成されたテスト集合T、および 、Tと同じ個数のフィールド値を有し、フィールドの個数は任意であるテスト集 合Sが存在する状況である。縮小積規則によるアプローチでは、テスト・ケース 表における最後のフィールドの値を削除し、さらに、すべての要素の値が同じで あるテスト・ケースを削除することにより、Tを縮小する。そして、本積規則を 使用して、T′とSを結合する。得られたテスト・ケースのうち、Sから得られ たテスト・ケースに対し、0により構成された1列を付加し、T′から得られた 各テスト・ケースに対し、上記の1列の削除の際に、Tから削除した要素の値を 付加する。 例えば、図5に示す表50をTとする。表50は、本射影平面アルゴリズムに より、4個のフィールドおよび3個のフィールド値を有する関係について生成さ れたテスト・ケース表である。もし、本目的が、フィールドが16個であり、各 フィールドのフィールド値が3個であり、かつ、相互作用がペアである場合のテ スト・ケース表の生成であれば、本プロセスでは、積規則を使用して、16個の フィールドについての17個のテスト・ケースを有する表を生成する。本縮小積 規則を使用すると、図5に示すように、13個のフィールド54についての15 個のテスト・ケース53を有する表51が生成される。かかるテスト・ケース表 の生成は、表50について、最後の列55を削除し、さらに、残りの各値が同じ であるから、最初の3行56を削除して、修正することにより行う。そして、修 正された表50について、本積規則を使用して、もとの表50と結合し、15個 のテスト・ケース表51を生成する。ランダム・プロセス 関係についての完全なテスト・ケース表を生成するために決定論手続を使用で きない場合は、テスト・ケース表を完成させるために本ランダム手続を使用する 。新たな各テスト・ケースに対し、本ランダム手続では、下記の局所貪欲アルゴ リズム(locally greedy algorithm)を使用して、テスト・ケース候補の集合を生 成することから始める。このテスト・ケース候補の集合が与えられると、本アル ゴリズムでは、評価関数を使用して、各テスト・ケース候補に点数をつけ、次の テスト・ケースを選び出す。表に付加されるテスト・ケースは、最高点のテスト ・ケース候補である。2つの基本的な評価関数は、「枝貪欲」("edge-greedy") 評価関数、および、「均衡貪欲」("balanced greedy")評価関数である。 本局所貪欲ランダム法を構成する基本的なステップは、以下の通りである。 1.最も優先度の高い、(n−1)個の組(n=相互作用の程度)を、ラン ダムに選択する。例えば、ペアのカバレッジの場合は、これは、カバーされない ペアの最大の個数に属する1個の(フィールド、値)となる。 2.残りのフィールドに対する順序をランダムに選択する。その順序で働き 、新たなフィールドのそれぞれについて、ユーザが実行のために選択した評価関 数に関し、最高点を与えるフィールド値を見つける。それらの中からランダムに 1個を選択し、次のフィールドに進む。 例えば、関係1を使用すると、もし、フィールドDEST、および、M ODEについて、それぞれcolor、および、600dpiが見つかっている とすると、フィールドPRIの各値について、評価関数の1つを使用して、DE STについて値color、MODEについて値600dpi、PRIについて 値Dをとるものを含むテスト集合に対 し、点数が付与される。 3.それぞれの要素について値を選択した後、生成されたテスト・ケースが すべての制約に適合することを確認する。もし、得られたテスト・ケースが制約 に反している場合は、特定の値と関連のあるようにフィールド・ラベルを交換(p ermute)して、得られたテスト・ケースが制約に反するか否かを調べる。もし、 これがうまくいかない場合は、そのテスト・ケースを捨てて、別のテスト・ケー スを生成する。もし、生成されたテスト・ケースのいずれもが制約を満たさない 場合は、本アルゴリズムでは、徹底サーチにより、テスト・ケースを見つける。 もし、制約が、多くの割合のテスト・ケースを排除するものでなければ、生成さ れたテスト・ケース候補の1つがその制約を満たす可能性は高い。他の制約は、 それに反する部分的なテスト・ケースに対し、評価関数が低い点数を与えるよう にすることにより、満たすことができる。 本枝貪欲アルゴリズムに従って、サンプルのテスト・ケースを評価することに より、各テスト・ケースによりカバーされる新たなn個の組の個数についての局 所的な最適化が完成する。すなわち、部分的なテスト・ケースに付与される評価 は、その部分的なテスト・ケースに含まれる、それまでにまだカバーされていな いn個の組の個数である。例えば、ペアのカバレッジにおいて、テスト・ケース {(DEST,color),(MODE,600dpi),(PRI,D)} の評価は、それまでに選択されたテスト・ケースが、このテスト・ケースによっ てカバーされる2個のペア{(DEST,color),(MODE,600d pi)},{(MODE,600dpi)、(PRI,D)}をカバーしていな い場合は、2点である。 もう1つの評価関数は、本均衡貪欲アルゴリズムである。ペアのカバレッジに ついて、均衡貪欲アルゴリズムでは、グラフ空間のポテンシャル関数に対し、最 急降下法(steepest descent)を使用する。頂点(f,1)を有するグラフを考え る。ここで、fはフィールドであり、1は値である。もし、ペア(f,1), (f′,1′)がカバーされていない場合は、グラフは、(f,1)と(f′, 1′)との間に辺を有する。次に、各頂点(f,1)にタプル(tuple)(n1,.. ..,nv)を割り当てる。ここで、vはフィールド数であり、niは考えられるす べてのカバーされていないペア{(f,1),(i,1′)}の個数である。ポ テンシャル関数は、タプル中の要素の2乗の和である。 本ランダム法の別の側面は、テスト・ケース・ブロックを生成するために、循 環ブロック法(cyclical block methods)をも取り入れていることである。テスト ・ケースの循環ブロック(mod l)は、テスト・ケース(a1,....,af) をヘッダとする、1≦i≦lについてのテスト・ケース(a1+i,....,af+ i)mod lの集合である(任意のグループGについて、Gブロックとは、G 中のgについてのテスト・ケース(a1g,.....,afg)の集合である)。こ のブロック・モードにおいては、ランダムに生成したテスト・ケースを、ヘッダ のテスト・ケースとして使用し、循環法を使用してテスト・ケース・ブロックを 生成する。ブロック・モードで動作しているときは、本プロセスは、フィールド 数に応じて、循環手続を限られた回数だけ使用する。その限度は、ユーザが定義 可能なシステム・パラメータである。もし、テスト・ケースの集合がブロック構 造を有する場合は、テスト・ケース数を増やすことなく、フィールドを付加する ことができる。表50に示す「無限遠直線」と同様に、付加されたフィールドに は、テスト・ケース・ブロックごとに、異なった値が割り当てられる。 さらに、ユーザは、本システムにより許されないテスト・ケースとして扱われ る制約を指定することもできる。ユーザは、許されないテスト・ケースの集合を 、ワイルド・カード(wild cards)*、または、明確な値を用いて指定することが できる。テスト・ケースは、他の制約によっても、正当な関係から除外される。 例えば、ユーザが起こるはずのないテスト・ケースを特定した場合は、そのテス ト・ケースはテスト集合から除外される。 各関係につき、特定された相互作用についての適切な個数のテスト・ケースが 生成されると、本発明の方法では、ユーザに対し、相互作用のないフィールドを 特定するように要求する。すなわち、どのクロス正当性規則(cross-validation rule)にも含まれないフィールドである。例えば、図6に示す表60は、相互作 用のない2個のフィールドを表す。WCは、値WC38をとるワイヤ・センタ(w ire center)を表し、HEADは、2個の値TOTAL1、および、TOTAL 2をとり得る。テスト・ケース生成手続の適用例 図8に示す、15個のフィールドを有し、いくつかのフィールド82は3個の フィールド値82を有し、いくつかのフィールド83は2個のフィールド値を有 する関係81について考える。本プロセス14では、フィールド値の個数が最も 大きいフィールドの個数を決定する。この例においては、3個のフィールド値を 有するフィールドが10個存在する。フィールドは3個のフィールド値を有し、 かつ、3という数字は素数であるので、本プロセス14では、射影平面手続の適 用を調べ、10個のフィールド82についてのテスト・ケース表を生成する。本 プロセス14では、3個の値を有する4個のフィールドについて、射影平面アル ゴリズムを使用し、その結果、図5の表50に表すテスト・ケース表を得る。次 に、プロセスでは、テスト・ケース表50に本積規則を適用する。本プロセスで は、縮小積規則を適用することで13個のフィールドをカバーすると認識するが 、この例では10個のフィールドをカバーすることのみを必要とする。しかしな がら、プロセス14では、余分な3個のフィールドを使用して、2個のフィール ド値を有するフィールド83のうち2個のフィールドについて列挙する。表への 入力は、関数MOD[2]により評価され変更される。これを図8に示す3列8 6の中に表す。これらの3列86を、表51のテスト・ケース表の3列57と比 較すれば、この変更は容易に分る。そして、表81を使用して、ランダム・アル ゴリズムをシードし、残りの2列87を埋めることにより、表を完成させる。テスト・ケース併合手続 本発明した方法の別の側面は、本発明のテスト・スクリプト併合プロセス20 が、プロセス14により生成されたすべての表に対し動作するプロセスである。 上で定義した関係を使用すると、本テスト・ケース併合プロセス20では、以下 の規則に従って、各関係について生成された個々のテスト・ケース表を結合する 。 1.2つ以上の関係が共通のフィールドを有する場合は、個々の関係につい て生成されたテスト集合の合併(union)を、結合されたテスト集合とする。 2.共通のフィールドを有しない関係については、小さい方のテスト集合を 大きい方のテスト集合にたたみ込むこと(folding)により、結合されたテスト集 合を生成する。 図6に示す関係1(表61)、関係2(表62)、および、関係3(表63)に ついて生成されたテスト・ケースに対し、これらの規則を適用すると、以下のよ うになる。関係1と関係2は、共通のフィールドを有するので、結合され、図7 の表71に示すテスト・ケースの合併が生成される。本第2の規則を使用して、 関係3 63をテスト・ケース71と結合すると、統合された8個のテスト・ケ ース表72が生成される。付加機能 本発明は、関係に含まれるフィールドについて、1個又は2個以上の正当でな い値を特定することにより、テストの対象であるシステムの正当ではない値に対 する反応をテストする機能を提供する。値は、ある関係の中でのみ正当ではない ものであり、他の関係の中では正当なものかもしれないということを記憶に留め ておくことが重要である。スクリーン・テストのアプリケーションにおいては、 1個の正当ではない値を含むテスト・ケースは、適切なエラー・メッセージを生 成するべきである。本システムでは、エラー・メッセージの原因を特定できるこ とを保証するために、1個のテスト・ケースにつき、1個の正当ではない値を指 定するのみである。あるシステムのn通りの誤りに対する反応は、n通りの関係 において、それぞれの誤った入力を有効な値とすることにより、テストすること ができる。多数の誤りに対するシステムの反応は、nを誤りの個数とした場合、 n通りの相互作用を有する関係を使用することにより、テストすることができる 。 また、ユーザは、それぞれの関係について、シード・テスト・ケースを特定す ることもできる。シードされたケースは、テスト・ケースを必要なもの、又は、 許されないものとすることができる。必要なシード・テスト・ケースは、最終的 なテスト集合の中に含まれることが保証され、一方、許されないシード・テスト ・ケースは、最終的なテスト集合の中に現れないことが保証される。許されない シード・テスト・ケースは制約として扱われ、一方、必要なシード・テスト・ケ ースは、ランダム貪欲アルゴリズムのシードとして使用される。いくつかの相互 作用は、必要なシード・テスト・ケースによりすでにカバーされているので、シ ステムは、より少ない数の追加のテスト・ケースを生成する。 また、ユーザは、別の制約を定義することもできる。その制約とは、フィール ド間の関係が、特有なフィールドの組合せであるもの、または、特有なフィール ド間の値の順序(例えば、増加または減少)であるものについての、必要な組合 せ、または、許されない組合せである。これらの制約は、本システムおよび方法 において、ランダム・アルゴリズムのシードとして使用される。 本発明の方法の別の側面は、フィールドのグループを単一の仮想フィールド(v irtual field)(以下「複合(compounds)」という)として定義し、本方法の処理 の対象である関係を定義する際に、これらの複合物を他のフィールドとともに使 用することである。処理する際には、複合物は、単一のフィールドと同様に扱わ れる。複合物を含むこれらの関係は、データベース18に格納され、システムで は、関係に組み込まれた単一のフィールドとして使用され、本発明のプロセスで は、単一のフィールドとして扱われる。 本発明のシステムの別の側面は、スクリーンを用いたソフトウェア・システム に適用し、関係をソフトウェア開発の要件として定義することである。そして、 これらの関係を保存し、開発されたソフトウェアのテストに使用して、システム が定義された要件に従って動作することを確かめることができる。 最後に、本システムおよび方法は、ここでは、ソフトウェアに対する適用の観 点から説明されているが、本発明は、相互作用のある複数の構成要素または要素 が存在し、かつ、すべての相互作用についてテストすることができない、あらゆ るシステムまたはプロセス(例えば、製造、ハードウェアの相互作用など)に対 し、容易に適用できるものである。各構成要素は、上記のフィールドに類似する ものであり、また、各構成要素は、本フィールド値に類似する特性または機能を 有するものである。本システムおよび方法を使用することにより、相互作用のあ るこれらの構成要素の組合せを列挙したテスト・ケース表を生成することができ る。それゆえ、テスト・ケースの自動生成を提供する本システムおよび方法は、 開示し、および、例示された特定の形式に限定されるものではなく、添付の請求 の範囲にのみ限定された他の実施形態をとることもできることが理解される。
【手続補正書】特許法第184条の8 【提出日】1996年11月5日 【補正内容】 請求の範囲 1.複数の値をとり得る複数のデータ・フィールドを有するソフトウェアを備え たソフトウェア・システムをテストするための最小数のテスト・ケースを生成す る方法において、 データベースにすべてのフィールド、フィールド値、および、ユーザが定義し た制約を入力するステップと、 関係あるフィールド値を含む複数の表を定義するステップと、 ユーザが特定した値をフィールド間の相互作用の程度に使用して、前記フィー ルド値の表のそれぞれに対しテスト・ケース表を生成するステップと、 相互作用のないフィールド値の複数の表を定義するステップと、 前記テスト・ケース表を単一のテスト・ケース表に併合するステップと、 前記相互作用のないフィールドの表を前記単一のテスト・ケース表と併合する ステップと を備えたことを特徴とする方法。 2.請求項1に記載の方法において、前記テスト・ケース表を併合するステップ は、 前記関係あるフィールドを含む表の2つ以上が共通のフィールドを有する場合 は、前記表の合併を生成するステップと、 任意の2つの前記表について共通のフィールドが1個もない場合は、小さい方 のテスト・ケース表を大きい方のテスト・ケース表にたたみ込むステップと を備えることを特徴とする方法。 3.請求項2に記載の方法において、前記テスト・ケース表を生成するステップ は、 決定論アルゴリズムを使用して前記表を生成することを試みるステップと、 前記決定論アルゴリズムを使用してテスト・ケース表を生成できない場合は、 ランダム・アルゴリズムを使用して前記表を生成するステップと を備えることを特徴とする方法。 4.請求項3に記載の方法において、前記決定論アルゴリズムは、フィールド値 の個数が最大であるフィールドのフィールド値の個数が素数のベキ乗であり、か つ、前記フィールドの個数が前記素数のベキ乗に1を加えた数よりも小さい数で ある場合は、射影平面アルゴリズムであることを特徴とする方法。 5.請求項4に記載の方法において、前記決定論アルゴリズムは、さらに、積規 則アルゴリズムを含むことを特徴とする方法。 6.請求項5に記載の方法において、前記ランダム・アルゴリズムは、 表のフィールド総数よりも少ないフィールド数による部分集合で構成され、か つ、カバーされていない組合せが最大数である基準を満たす1つのテスト・ケー スをランダムに選択するステップと、 前記部分集合で使用されていない残りのフィールドをランダムな順序で選択す るステップと、 前記選択された残りのフィールドのそれぞれについて、評価関数を使用して評 価するときに最高点となるフィールド値を見つけるステップと、 生成されたテスト・ケースが、ユーザが指定したすべての制約を満たすことを 確認するステップと を備えることを特徴とする方法。 7.請求項6に記載の方法において、前記評価関数は、新しいn個の組のカバー する組合せの個数を局所的に最適化することを特徴とする方法。 8.請求項6に記載の方法において、前記評価関数は、グラフ平面上で最急降下 関数を使用する関数であることを特徴とする方法。 9.請求項1に記載の方法において、複数の表を定義するステップは、ユーザが 生成したスクリーンを取り込むことによって生成されることを特徴とする方法。 10.ソフトウェア・システムをテストするための最小数のテスト・ケースを自 動生成するシステムにおいて、 ユーザが、前記スクリーン上のフィールドに値を入力し、フィールド間の複数 の関係およびユーザが定義する制約を定義することができるためのスクリーン表 示を有する表示端末と、 前記複数の関係を格納するデータベースと、 前記関係内の相互作用のあるフィールドの個数を特定するためにユーザが指定 した値に基づき、前記関係のそれぞれに対しテスト・ケースの集合を生成する第 1のコンピュータ手段と、 相互作用のある値を有する前記複数の関係のそれぞれに対するテスト・ケース を、相互作用のない値を有する前記関係と結合し、単一の併合されたテスト・ケ ース表を提供する第2のコンピュータ手段と、 前記併合されたテスト・ケース表をデータベースに書き込む出力手段と を備えたことを特徴とするシステム。 11.請求項10に記載のシステムにおいて、さらに、前記出力手段から前記併 合されたテスト・ケース表を受け取り、実行によりソフトウェアを自動的にテス トできるテスト・スクリプトを生成するテスト・スクリプト生成手段を備えるこ とを特徴とするシステム。 12.請求項10に記載のシステムにおいて、さらに、スクリーン上でのユーザ の活動を取り込み、関係データベースを生成する取り込み手段を備えることを特 徴とするシステム。 13.請求項10に記載のシステムにおいて、 前記テスト・ケースの集合を生成する第1のコンピュータ手段は、 関係からテスト・ケース表を生成する決定論手段と、 前記決定論手段が適用できない場合に、関係からテスト・ケース表を生成する ランダム手段と を備えることを特徴とするシステム。 14.データ要素およびデータ要素値から構成され、それらに作用するコンピュ ータ・システムをテストするためのテスト・ケース表を自動的に生成する方法に おいて、前記方法を実行するコンピュータは、 データ要素間の関係、および、ユーザが特定した制約を識別するステップと、 前記識別されたデータ要素間の関係、および、ユーザが指定した前記関係の値 間のnタプルの組合せに基づく前記識別された関係に基づき、前記データ要素の それぞれに対しテスト・ケース表を決定するステップであって、前記決定するス テップは、 決定論手続を使用して前記テスト・ケース表を決定するステップと、 前記決定論手続を使用して前記表を生成できない場合に、ランダム手続を 使用して前記テスト・ケース表を決定するステップと を備え、 前記表が2個以上の共通のデータ要素を有する場合は、テスト・ケース表の合 併を生成することにより、また、テスト・ケースが共通のフィールドを有しない 場合は、2つの表のうち小さい方の表を大きい方の表にたたみ込むことにより、 前記テスト・ケース表を単一の生成されたテスト・ケースの表に併合するステッ プと を備えることを特徴とする方法。 15.請求項14に記載の方法において、前記決定論手続は、射影平面アルゴリ ズムを取り入れていることを特徴とする方法。 16.請求項15に記載の方法において、前記ランダム手続は、さらに、 表のデータ要素総数よりも少ないデータ要素数による部分集合で構成されるテ スト・ケースであって、カバーされていない組合せが最大数である基準を満たす テスト・ケースをランダムに1個選択するステップと、 前記部分集合で使用されていない残りのデータ要素をランダムな順序で選択す るステップと、 前記選択された残りのデータ要素のそれぞれについて、評価関数を使用して評 価する場合に最高点となるデータ要素値を見つけるステップと、 最高点となるデータ要素値を有する前記テスト・ケースを、上記生成されたテ スト・ケースの表に含まれる生成されたテスト・ケースとして選択するステップ と、 前記生成されたテスト・ケースが、ユーザが指定したすべての制約を満たすこ とを確認するステップと を備えることを特徴とする方法。 17.請求項16に記載の方法において、前記評価関数は、局所最適値を決定す ることを特徴とする方法。 18.請求項16に記載の方法において、前記評価関数は、グラフ空間のポテン シャル関数についての最急降下法に基づき、値を決定することを特徴とする方法 。 19.各構成要素が複数の特性を有する相互作用のあるプロセスの構成要素、ま たは、システムの構成要素についてのテストの組合せを表すテスト・ケース表を 自動的に生成する方法において、前記方法を実行するコンピュータは、 構成要素のnタプルの組合せを特定することにより、前記構成要素間の関係を 識別するステップと、 前記複数の特性に関してユーザが定義したすべての制約を識別するステップと 、 決定論手続を使用して、前記識別された構成要素間の関係のそれぞれに対し、 特性値に関するテスト・ケース表を決定するステップと、 前記決定論手続を使用して前記表を生成できない場合に、ランダム手続を使用 して前記テスト・ケース表を決定するステップと、 前記表が2個以上の共通の構成要素を有する場合は、テスト・ケース表の合併 を生成することにより、また、テスト・ケースが共通の構成要素を有しない場合 は、小さい方の表を大きい方の表にたたみ込むことにより、前記テスト・ケース 表を単一の生成されたテスト・ケースの表に併合するステップと を備えることを特徴とする方法。 20.請求項19に記載の方法において、前記決定論手続は、射影平面アルゴリ ズムを取り入れていることを特徴とする方法。 21.請求項19に記載の方法において、前記ランダム手続は、さらに、 表の構成要素総数よりも少ない構成要素数による部分集合で構成されるテスト ・ケースであって、カバーされていない組合せが最大数である基準を満たすテス ト・ケースの一つをランダムに選択するステップと、 前記部分集合で使用されていない残りの構成要素を、ランダムな順序で選択す るステップと、 前記選択された残りの構成要素のそれぞれについて、評価関数を使用して評価 するときに最高点となる構成要素の特性を見つけるステップと、 最高点となる構成要素値を有する前記テスト・ケースを、上記生成されたテス ト・ケースの表に含まれる生成されたテスト・ケースとして選択するステップと 、 前記生成されたテスト・ケースが、ユーザが指定したすべての制約を満たすこ とを確認するステップと を備えることを特徴とする方法。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ダラル,シドハーサ,ラマンラル アメリカ合衆国 08807 ニュージャージ ー州 ブリッジウォーター カボット ヒ ル ロード 592 (72)発明者 フレッドマン,マイケル,ローレンス アメリカ合衆国 08817 ニュージャージ ー州 エディソン ブルックフォール ロ ード 9 (72)発明者 パットン,ガードナー,コンド アメリカ合衆国 08807 ニュージャージ ー州 ブリッジウォーター スタニーブル ック ドライブ 497

Claims (1)

  1. 【特許請求の範囲】 1.複数の値をとり得る複数のデータ・フィールドを有するソフトウェアを備え たソフトウェア・システムをテストするための最小数のテスト・ケースを生成す る方法において、 データ・ベースにすべてのフィールドおよびフィールド値を入力するステップ と、 関係あるフィールド値を含む複数の表を定義するステップと、 フィールド間の相互作用の程度に対してユーザが特定した値を使用して、前記 フィールド値の表のそれぞれに対してテスト・ケース表を生成するステップと、 相互作用のないフィールド値の複数の表を定義するステップと、 前記テスト・ケース表を単一のテスト・ケース表に併合するステップと、 前記相互作用のないフィールドの表を前記単一のテスト・ケース表と併合する ステップと を備えることを特徴とする方法。 2.請求項1に記載の方法において、 前記テスト・ケース表を併合するステップは、 前記関係あるフィールドを含む表の2つ以上が共通のフィールドを有する場合 は、前記表の合併を生成するステップと、 共通のフィールドが1個も存在しない場合は、テスト・スクリプト表を最も大 きいテスト・スクリプトの表にたたみ込むステップと を備えることを特徴とする方法。 3.請求項2に記載の方法において、 前記テスト・ケース表を生成するステップは、 決定論アルゴリズムを使用して前記表を生成することを試みるステップと、 前記決定論アルゴリズムにより解を生成できない場合は、ランダム・アルゴリ ズムを使用して前記表を生成するステップと を備えることを特徴とする方法。 4.請求項3に記載の方法において、 前記決定論アルゴリズムは、フィールド値の個数の最大値が素数のベキ乗であ り、かつ、フィールドの個数が前記素数のベキ乗に1を加えた数よりも小さい数 である場合は、射影平面アルゴリズムであることを特徴とする方法。 5.請求項4に記載の方法において、 前記決定論アルゴリズムは、既知の構成をシード・テスト・ケースとして使用 する積規則アルゴリズムであることを特徴とする方法。 6.請求項5に記載の方法において、 前記ランダム・アルゴリズムは、 カバーされていない組合せの最大数に属するテスト・ケースの1つをランダム に選択するステップと、 残りのフィールドをランダムな順序で選択するステップと、 選択された新たなフィールドのそれぞれについて、評価関数に対し最高点を与 えるフィールド値を見つけるステップと、 生成されたテスト・ケースが、ユーザが指定したすべての制約を満たすことを 確認するステップと を備えることを特徴とする方法。 7.請求項5に記載の方法において、 前記評価関数は、新たに選択するd個の組の個数を局所的に最適化することを 特徴とする方法。 8.請求項5に記載の方法において、 前記評価関数は、グラフ平面上で最急降下関数を使用する関数であることを特 徴とする方法。 9.請求項1に記載の方法において、 データはスクリーンを通じて入力され、関係データベースが生成されることを 特徴とする方法。 10.請求項1に記載の方法において、 データは、ユーザが生成したスクリーンを取り込むコンピュータ・システムに より入力され、このスクリーン取り込み機能から関係データベースが生成される ことを特徴とする方法。 11.ソフトウェア・システムをテストするための最小数のテスト・ケースを自 動生成するシステムにおいて、 スクリーン上のフィールドに値を入力し、フィールド間の複数の関係を定義す るための表示端末と、 前記複数の関係を格納するデータベースと、 関係内の相互作用のあるフィールドの個数に関するユーザが特定した値に基づ き、前記関係のそれぞれに対しテスト・ケースの集合を生成するコンピュータ手 段と、 前記複数の関係のそれぞれに対するテスト・ケースと、前記相互作用のない値 の関係に対するテスト・ケースとを結合する第2のコンピュータ手段と、 すべてのテスト・ケースを列挙する併合表をデータベースに書き込む出力手段 と を備えたことを特徴とするシステム。 12.請求項11に記載のシステムにおいて、 さらに、前記出力手段から前記テスト・ケース表を受け取り、ソフトウェアを 自動的にテストすることを実行できるテスト・スクリプトを生成するテスト・ス クリプト生成手段を備えることを特徴とするシステム。 13.請求項10に記載のシステムにおいて、 さらに、スクリーン上でのユーザの行動を取り込み、フィールド、値、および 、関係のデータベースを生成する取り込み手段を備えることを特徴とするシステ ム。 14.請求項10に記載のシステムにおいて、 前記テスト・ケースの集合を生成するコンピュータ手段は、 関係からテスト・ケース表を計算する決定論的手段と、 前記決定論的手段が適用できない場合に、関係からテスト・ケース表を生成す るランダム手段と を備えることを特徴とするシステム。 15.データ要素およびデータ要素値から構成され、それらに作用するコンピュ ータ・システムをテストするためのテスト・ケース表を自動的に生成する方法に おいて、前記方法を実行するコンピュータは、 データ要素間の関係を識別するステップと、 ユーザが指定した前記関係の値間のnタプルの組合せに基づき、前記識別され た関係のそれぞれに対しテスト・ケース表を決定するステップであって、前記決 定するステップは、 決定論手続を使用して前記テスト・ケース表を決定するステップと、 前記決定論手続が解を生成できない場合に、ランダム手続を使用して前記 テスト・ケース表を決定するステップと を備え、 前記表が2個以上の共通のデータ要素を有する場合は、テスト・ケース表の合 併を生成することにより、また、テスト・ケースが共通のフィールドを有しない 場合は、小さい方の表を大きい方の表にたたみ込むことにより、前記テスト・ケ ース表を単一の表に併合するステップと を備えることを特徴とする方法。 16.請求項15に記載の方法において、 前記決定論手続は、射影平面アルゴリズムを取り入れることを特徴とする方法 。 17.請求項15に記載の方法において、 前記ランダム手続は、さらに、 カバーされていない組合せの最大数に属する1つのテスト・ケースをランダム 選択するステップと、 残りのデータ要素をランダムな順序で選択するステップと、 選択された新たなデータ要素のそれぞれについて、評価関数に対し最高点を与 えるデータ要素値を見つけるステップと、 生成されたテスト・ケースが、ユーザが指定したすべての制約を満たすことを 確認するステップと を備えることを特徴とする方法。 18.請求項16に記載の方法において、 前記評価関数は、局所最適値を決定することを特徴とする方法。 19.請求項16に記載の方法において、 前記評価関数は、グラフ空間のポテンシャル関数についての最急降下法に基づ き値を決定することを特徴とする方法。 20.各構成要素が複数の特性を有する相互作用のあるプロセスの構成要素、ま たは、システムの構成要素についてのテストの組合せを表すテスト・ケース表を 自動的に生成する方法において、前記方法を実行するコンピュータは、 構成要素間の関係を識別するステップと、 ユーザが指定した前記関係内の前記構成要素のnタプルの組合せに基づき、前 記識別された関係のそれぞれに対し、特性値に関するテスト・ケース表を決定す るステップであって、前記決定論のステップは、 決定論手続を使用して前記テスト・ケース表を決定するステップと、 前記決定論手続が解を生成できない場合に、ランダム手続を使用して前記 テスト・ケース表を決定するステップと を備え、 前記表が2個以上の共通のデータ要素を有する場合は、テスト・ケース表の合 併を生成することにより、また、テスト・ケースが共通のフィールドを有しない 場合は、小さい方の表を大きい方の表にたたみ込むことにより、前記テスト・ケ ース表を単一の表に併合するステップと を備えることを特徴とする方法。 21.請求項20に記載の方法において、 前記決定論手続は、射影平面アルゴリズムを取り入れることを特徴とする方法 。 22.請求項21に記載の方法において、 前記ランダム手続は、さらに、 カバーされていない組合せの最大数に属する一つのテスト・ケースをランダム に選択するステップと、 残りの構成要素をランダムな順序で選択するステップと、 選択された新たな構成要素のそれぞれについて、評価関数に対し最高点を与え る構成要素の特性値を見つけるステップと、 生成されたテスト・ケースが、ユーザが指定したすべての制約を満たすことを 確認するステップと を備えることを特徴とする方法。 23.請求項22に記載の方法において、 前記評価関数は、局所最適値を決定することを特徴とする方法。 24.請求項22に記載の方法において、 前記評価関数は、グラフ空間のポテンシャル関数についての最急降下法に基づ き、値を決定することを特徴とする方法。
JP8512765A 1994-10-11 1995-10-10 相互作用のある要素を有するシステムのための効率的なテスト・ケースの自動生成方法およびシステム Expired - Fee Related JP2882687B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US321,185 1989-03-09
US08/321,185 US5542043A (en) 1994-10-11 1994-10-11 Method and system for automatically generating efficient test cases for systems having interacting elements
US08/321,185 1994-10-11
PCT/US1995/014283 WO1996011438A1 (en) 1994-10-11 1995-10-10 Method and system for automatically generating efficient test cases for systems having interacting elements

Publications (2)

Publication Number Publication Date
JPH09511853A true JPH09511853A (ja) 1997-11-25
JP2882687B2 JP2882687B2 (ja) 1999-04-12

Family

ID=23249558

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8512765A Expired - Fee Related JP2882687B2 (ja) 1994-10-11 1995-10-10 相互作用のある要素を有するシステムのための効率的なテスト・ケースの自動生成方法およびシステム

Country Status (8)

Country Link
US (1) US5542043A (ja)
EP (1) EP0786110B1 (ja)
JP (1) JP2882687B2 (ja)
AT (1) ATE204088T1 (ja)
CA (1) CA2200557C (ja)
DE (1) DE69522114T2 (ja)
ES (1) ES2163533T3 (ja)
WO (1) WO1996011438A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019532429A (ja) * 2016-11-02 2019-11-07 日立オートモティブシステムズ株式会社 計算機システム、テスト方法、および記録媒体

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5671351A (en) * 1995-04-13 1997-09-23 Texas Instruments Incorporated System and method for automated testing and monitoring of software applications
US5956478A (en) * 1995-09-11 1999-09-21 Digital Equipment Corporation Method for generating random test cases without causing infinite loops
US5675731A (en) * 1995-09-22 1997-10-07 Sun Microsystems, Inc. Scatter load for system test
US5740353A (en) * 1995-12-14 1998-04-14 International Business Machines Corporation Method and apparatus for creating a multiprocessor verification environment
US5864660A (en) * 1996-03-12 1999-01-26 Electronic Data Systems Corporation Testing the integration of a plurality of elements in a computer system using a plurality of tests codes, each corresponding to an alternate product configuration for an associated element
US5754760A (en) * 1996-05-30 1998-05-19 Integrity Qa Software, Inc. Automatic software testing tool
US5870539A (en) * 1996-07-01 1999-02-09 Sun Microsystems, Inc. Method for generalized windows application install testing for use with an automated test tool
US5831998A (en) * 1996-12-13 1998-11-03 Northern Telecom Limited Method of testcase optimization
US6263376B1 (en) 1997-02-24 2001-07-17 Novell, Inc. Generic run-time binding interpreter
US6002869A (en) * 1997-02-26 1999-12-14 Novell, Inc. System and method for automatically testing software programs
US5913023A (en) * 1997-06-30 1999-06-15 Siemens Corporate Research, Inc. Method for automated generation of tests for software
US6141630A (en) 1997-08-07 2000-10-31 Verisity Design, Inc. System and method for automated design verification
US6378088B1 (en) * 1998-07-14 2002-04-23 Discreet Logic Inc. Automated test generator
US6182245B1 (en) 1998-08-31 2001-01-30 Lsi Logic Corporation Software test case client/server system and method
GB2353610A (en) 1999-08-21 2001-02-28 Ibm Computerised testcase management system
US6826549B1 (en) * 1999-11-04 2004-11-30 Mitsubishi Electric Research Laboratories, Inc. Interactive heuristic search and visualization for solving combinatorial optimization problems
US6615163B1 (en) 1999-12-13 2003-09-02 Dell Usa, L.P. System and method for developing testing configurations
US6728641B1 (en) 2000-01-21 2004-04-27 General Electric Company Method and system for selecting a best case set of factors for a chemical reaction
US6957420B2 (en) * 2001-08-30 2005-10-18 E M Pirix Inc. Method of generating test scripts for systems having dynamic behavior
US7058857B2 (en) 2001-10-10 2006-06-06 International Business Machines Corporation Method and system for testing a software product
CA2366344A1 (en) * 2001-12-27 2003-06-27 Ibm Canada Limited - Ibm Canada Limitee Organization of test cases
US7024589B2 (en) * 2002-06-14 2006-04-04 International Business Machines Corporation Reducing the complexity of finite state machine test generation using combinatorial designs
US6918098B2 (en) * 2002-07-16 2005-07-12 Hewlett-Packard Development Company, L.P. Random code generation using genetic algorithms
JP4355525B2 (ja) * 2002-10-09 2009-11-04 富士通マイクロエレクトロニクス株式会社 検証支援方法、検証支援プログラムおよび検証支援装置
US7237231B2 (en) * 2003-03-10 2007-06-26 Microsoft Corporation Automatic identification of input values that expose output failures in a software object
US20050144529A1 (en) * 2003-10-01 2005-06-30 Helmut Gotz Method for defined derivation of software tests from use cases
DE102004014290A1 (de) * 2004-03-24 2005-10-06 Iav Gmbh Ingenieurgesellschaft Auto Und Verkehr Verfahren zur Erstellung von Abläufen zum Testen einer Software
US20060010426A1 (en) * 2004-07-09 2006-01-12 Smartware Technologies, Inc. System and method for generating optimized test cases using constraints based upon system requirements
US7506211B2 (en) * 2005-09-13 2009-03-17 International Business Machines Corporation Automated atomic system testing
US7694181B2 (en) 2005-12-12 2010-04-06 Archivas, Inc. Automated software testing framework
US7844955B2 (en) 2005-12-24 2010-11-30 International Business Machines Corporation Performance computer program testing after source code modification using execution conditions
US8473913B2 (en) * 2006-01-11 2013-06-25 Hitachi Data Systems Corporation Method of and system for dynamic automated test case generation and execution
US20080172655A1 (en) * 2007-01-15 2008-07-17 Microsoft Corporation Saving Code Coverage Data for Analysis
US20080172652A1 (en) * 2007-01-15 2008-07-17 Microsoft Corporation Identifying Redundant Test Cases
US20080172651A1 (en) * 2007-01-15 2008-07-17 Microsoft Corporation Applying Function Level Ownership to Test Metrics
US8019049B2 (en) * 2007-03-27 2011-09-13 Avaya Inc. Method for generating reliability tests based on orthogonal arrays and field data
US7805635B2 (en) * 2007-04-09 2010-09-28 International Business Machines Corporation Constraint programming for reduction of system test-configuration-matrix complexity
US8336102B2 (en) 2007-06-01 2012-12-18 Microsoft Corporation Delivering malformed data for fuzz testing to software applications
US7873945B2 (en) * 2007-06-29 2011-01-18 Microsoft Corporation Automatically generating test cases for binary code
US20090077537A1 (en) * 2007-09-18 2009-03-19 International Business Machines Corporation method of automatically generating test cases to test command line interfaces
US20090077538A1 (en) * 2007-09-18 2009-03-19 Michael Paul Keyes Methods for testing software using orthogonal arrays
US7865780B2 (en) * 2007-10-05 2011-01-04 Sap Ag Method for test case generation
US10877874B2 (en) * 2007-12-28 2020-12-29 Federal Home Loan Mortgage Corporation (Freddie Mac) Systems and methods for modeling and generating test requirements for software applications
FI20080095A0 (fi) * 2008-02-11 2008-02-11 Codenomicon Oy Menetelmä ja järjestelmä testitapausten muodostamiseksi
US20090300587A1 (en) * 2008-05-27 2009-12-03 Microsoft Corporation Determining domain data coverage in testing database applications
US20100070231A1 (en) * 2008-09-05 2010-03-18 Hanumant Patil Suhas System and method for test case management
US8069375B2 (en) * 2008-12-08 2011-11-29 Kreativtek Software Lund Ab Cover lover
US9141518B2 (en) * 2008-12-10 2015-09-22 Microsoft Technology Licensing, Llc GUI testing
US8458664B2 (en) * 2009-02-23 2013-06-04 International Business Machines Corporation Command line interface permutation executor
US20100257211A1 (en) * 2009-04-07 2010-10-07 International Business Machines Corporation Generating semi-structured schemas from test automation artifacts for automating manual test cases
US8271950B2 (en) 2009-07-06 2012-09-18 Microsoft Corporation Test generation from captured user interface status
US8549045B2 (en) * 2010-12-30 2013-10-01 International Business Machines Corporation Test data generation and scale up for database testing using unique common factor sequencing
US9239777B1 (en) * 2011-05-08 2016-01-19 Panaya Ltd. Generating test scenario templates from clusters of test steps utilized by different organizations
US9104815B1 (en) * 2011-05-08 2015-08-11 Panaya Ltd. Ranking runs of test scenarios based on unessential executed test steps
JP5648186B2 (ja) * 2011-08-22 2015-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation トランザクションを再生するためのデータを生成する装置及び方法
US20130090911A1 (en) * 2011-10-05 2013-04-11 International Business Machines Corporation Modeling Test Space for System Behavior Using Interchangeable Designations
US9323650B2 (en) 2012-07-23 2016-04-26 Infosys Limited Methods for generating software test input data and devices thereof
US8938646B2 (en) * 2012-10-24 2015-01-20 International Business Machines Corporation Mutations on input for test generation
US8930767B2 (en) 2012-12-07 2015-01-06 Software Ag Techniques for test automation in emergent systems
US20140200951A1 (en) 2013-01-11 2014-07-17 International Business Machines Corporation Scalable rule logicalization for asset health prediction
US9710366B2 (en) * 2013-01-29 2017-07-18 Hewlett Packard Enterprise Development Lp Generating test code to test executable code
GB2508447B (en) * 2013-03-28 2014-10-22 Randomize Ltd Method and apparatus for testing electronic systems
CN104346276B (zh) * 2013-08-08 2018-12-11 腾讯科技(深圳)有限公司 软件测试的方法及装置
CN104407976B (zh) * 2014-11-28 2018-08-07 联动优势电子商务有限公司 一种接口健壮性测试用例生成方法及装置
US10061685B1 (en) 2016-08-31 2018-08-28 Amdocs Development Limited System, method, and computer program for high volume test automation (HVTA) utilizing recorded automation building blocks
CN106407117A (zh) * 2016-09-27 2017-02-15 浪潮软件集团有限公司 一种通用的接口测试方法
US10248550B2 (en) 2016-12-16 2019-04-02 Oracle International Corporation Selecting a set of test configurations associated with a particular coverage strength using a constraint solver
US10204033B2 (en) * 2017-03-11 2019-02-12 Wipro Limited Method and system for semantic test suite reduction
KR102271857B1 (ko) * 2019-06-21 2021-07-01 주식회사 엘지씨엔에스 테스트 자동화 시스템
US11194704B2 (en) 2020-03-16 2021-12-07 International Business Machines Corporation System testing infrastructure using combinatorics
US11194703B2 (en) 2020-03-16 2021-12-07 International Business Machines Corporation System testing infrastructure for analyzing soft failures in active environment
US11593256B2 (en) 2020-03-16 2023-02-28 International Business Machines Corporation System testing infrastructure for detecting soft failure in active environment
US11436132B2 (en) 2020-03-16 2022-09-06 International Business Machines Corporation Stress test impact isolation and mapping
US11609842B2 (en) 2020-03-16 2023-03-21 International Business Machines Corporation System testing infrastructure for analyzing and preventing soft failure in active environment
DE102021132827A1 (de) 2021-12-13 2023-06-15 Continental Automotive Technologies GmbH Verfahren zur automatischen Untersuchung von Zuständen und Übergängen einer Mensch- Maschine-Schnittstelle ( HMI)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4231087A (en) * 1978-10-18 1980-10-28 Bell Telephone Laboratories, Incorporated Microprocessor support system
US4696003A (en) * 1986-03-10 1987-09-22 International Business Machines Corporation System for testing interactive software
US4819233A (en) * 1987-04-08 1989-04-04 Westinghouse Electric Corp. Verification of computer software
US5159600A (en) * 1990-01-02 1992-10-27 At&T Bell Laboratories Arrangement for generating an optimal set of verification test cases
US5390325A (en) * 1992-12-23 1995-02-14 Taligent, Inc. Automated testing system
US5394347A (en) * 1993-07-29 1995-02-28 Digital Equipment Corporation Method and apparatus for generating tests for structures expressed as extended finite state machines

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019532429A (ja) * 2016-11-02 2019-11-07 日立オートモティブシステムズ株式会社 計算機システム、テスト方法、および記録媒体
US10810111B2 (en) 2016-11-02 2020-10-20 Hitachi Automotive Systems, Ltd. Computer system, test method, and recording medium

Also Published As

Publication number Publication date
EP0786110A1 (en) 1997-07-30
ATE204088T1 (de) 2001-08-15
CA2200557A1 (en) 1996-04-18
CA2200557C (en) 2000-04-18
EP0786110A4 (en) 1998-01-07
WO1996011438A1 (en) 1996-04-18
EP0786110B1 (en) 2001-08-08
JP2882687B2 (ja) 1999-04-12
DE69522114D1 (de) 2001-09-13
US5542043A (en) 1996-07-30
ES2163533T3 (es) 2002-02-01
DE69522114T2 (de) 2002-04-18

Similar Documents

Publication Publication Date Title
JPH09511853A (ja) 相互作用のある要素を有するシステムのための効率的なテスト・ケースの自動生成方法およびシステム
US11270364B1 (en) Consolidation of product data models
CN108846659B (zh) 基于区块链的转账方法、装置及存储介质
Van der Aalst Formalization and verification of event-driven process chains
De Medeiros et al. Process mining: extending the alpha-algorithm to mine short loops
Chen et al. A choice relation framework for supporting category-partition test case generation
US7464064B1 (en) Configuration model consistency checking using flexible rule space subsets
Van der Aalst et al. Process mining and security: Detecting anomalous process executions and checking process conformance
CN102063595B (zh) 通过确定性自然数据的替换扰乱数据结构的方法和系统
Durgin et al. A compositional logic for protocol correctness
US7350107B2 (en) Method and apparatus for performing network diagnostics
US20070100781A1 (en) Conditional CSP solving using constraint propagation
US20140059086A1 (en) Test data generation and scale up for database testing using unique common factor sequencing
Rowe et al. Unbiased black box search algorithms
Ostrovsky et al. Efficient consistency proofs for generalized queries on a committed database
US20130174118A1 (en) Optimizing Source Code
CN110825718B (zh) 一种信息系统数据架构模型及其构建方法
CN111475402A (zh) 程序功能的测试方法及相关装置
US20120131543A1 (en) Method and system for capturing user interface structure in a model based software system
Mitsyuk et al. Process model repair by detecting unfitting fragments?
Blundell et al. Parameterized interfaces for open system verification of product lines
Lim et al. Vertical fragmentation and allocation in distributed deductive database systems
Daniels et al. Measuring the effectiveness of method test sequences derived from sequencing constraints
CN113612725A (zh) 数据转换方法、装置、电子设备及可读存储介质
Kohli et al. Realizing network control policies using distributed action plans

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees