(57)【要約】【課題】テスト番号の割り当てに際し、テスト番号の衝突を識別するための方法を提供する。【解決手段】テスト番号を割り当てる方法（９００）において、現在のテストフローコンテキスト情報は、テストフロー２００の実行中維持される（９０２）。テストフロー内のサブテストの結果に対して新しいテスト番号が生成されると（９０４）、新しいテスト番号を使用してテスト番号のデータベース７００にインデックスを付ける（９０６）。新しいテスト番号がデータベース７００内でエントリとして現われた場合、エントリに関連づけられた一意的な識別子を、（１）サブテストの識別子と（２）現在のテストフローコンテキスト情報３００とを含むインデックス情報と比較する（９０８）。一意的な識別子がインデックス情報と一致しない場合、テスト番号の衝突が識別される（９１０）。一致する場合は、新しいテスト番号をサブテストに割り当てる。【選択図】図９
2005321400.tif 000002
【特許請求の範囲】
【請求項１】
テスト番号を割り当てる方法であって、
テストフローの実行中、現在のテストフローコンテキスト情報を維持するステップと、
前記テストフロー内のサブテストの結果に対して新しいテスト番号が生成されると、
前記新しいテスト番号を使用してテスト番号のデータベースにインデックスをつけるステップと、
前記新しいテスト番号が前記データベース内のエントリとして現れる場合、該エントリと関連づけられた一意的な識別子を、（ｉ）前記サブテストの識別子と（ｉｉ）前記現在のテストフローコンテキスト情報とを含むインデックス情報と比較するステップと、
前記一意的な識別子が前記インデックス情報と一致しない場合は、テスト番号の衝突を識別し、一致する場合は、前記新しいテスト番号を前記サブテストに割り当てるステップと、
を含む、方法。
【請求項２】
テスト番号の衝突を識別したことに応答して該テスト番号の衝突の通知を表示するようにグラフィカルユーザインタフェースをプログラミングするステップをさらに含む、請求項１に記載の方法。
【請求項３】
テスト番号の衝突を識別したことに応答して該衝突に関連するテスト番号のうちの１つを置き換えるようにユーザに促すステップをさらに含む、請求項１に記載の方法。
【請求項４】
テスト番号の衝突を識別したことに応答して該テスト番号の衝突の詳細を衝突ログに記録するステップをさらに含む、請求項１に記載の方法。
【請求項５】
テスト番号の衝突を識別したことに応答して、
新しい追加のテスト番号を生成するステップと、
前記新しい追加のテスト番号を使用して、前記インデックスを付けるステップと、比較するステップと、識別するステップとを繰り返すステップと、
をさらに含む、請求項１に記載の方法。
【請求項６】
新しいテスト番号を前記サブテストに割り当てた場合、前記新しいテスト番号とインデックス情報とを前記データベース内で関連づけるステップであって、前記インデックス情報は前記新しいテスト番号の一意的な識別子として機能する、ステップ、をさらに含む、請求項１に記載の方法。
【請求項７】
前記テストフローコンテキスト情報が、テストスイート指定子を含む、請求項１に記載の方法。
【請求項８】
前記テストフローコンテキスト情報が、いくつかのループ・レイヤの各々に対するループ反復指定子を含む、請求項１に記載の方法。
【請求項９】
テスト番号を割り当てる方法であって、
テストフローの実行中、現在のテストフローコンテキスト情報を維持するステップと、
前記テストフロー内のサブテストが実行されると、（ｉ）該サブテストの識別子と（ｉｉ）前記現在のテストフローコンテキスト情報とを含むインデックス情報を使用してテスト番号のデータベースにインデックスをつけるステップと、
前記データベース内に前記インデックス情報に対応するテスト番号が存在する場合、該テスト番号を前記サブテストの結果に割り当てるステップと、
前記インデックス情報に対応するテスト番号が前記データベース内に存在しない場合、
現在のテストフローコンテキストの１つまたは複数のレベルに対して１つまたは複数のテスト番号ファクタが指定されている場合、該テスト番号ファクタを使用して、現在のテスト番号範囲に関するベース番号を決定し、そうでない場合は、ベース番号をデフォルトのベース番号に設定し、
新しいテスト番号を現在のテスト番号範囲内の次のテスト番号に設定する、
ことによって、前記新しいテスト番号を生成するステップと、
前記新しいテスト番号を使用して前記テスト番号のデータベースにインデックスを付けるステップと、
前記新しいテスト番号が前記データベース内のエントリとして現れる場合、前記インデックス情報と、前記エントリに関連づけられた一意的な識別子を比較するステップと、
前記インデックス情報が前記一意的な識別子と一致しない場合、テスト番号の衝突を識別し、一致する場合は、前記新しいテスト番号を前記サブテストに割り当てるステップと、
を含む、方法。
【請求項１０】
コンピュータ読み取り可能媒体と、
前記コンピュータ読み取り可能媒体上に記憶されたプログラムコードと、
を含み、
前記プログラムコードは、
テストフロー内のサブテストの結果に対して新しいテスト番号を生成するコードと、
前記新しいテスト番号をテスト番号のデータベース内へのインデックスとして使用し、前記新しいテスト番号が前記データベース内のエントリとして現れる場合、該エントリと関連づけられた一意的な識別子を、（ｉ）前記サブテストの識別子と（ｉｉ）現在のテストフローコンテキスト情報とを含むインデックス情報と比較するコードと、
前記一意的な識別子とインデックス情報とが一致しない場合、テスト番号の衝突を識別し、一致する場合は、前記新しいテスト番号を前記サブテストに割り当てるコードと、
を含む、テスト番号エンジン。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、テスト番号の割り当てに関し、特に、テスト番号の衝突の識別に関する。
【背景技術】
【０００２】
一部の形態の回路テストは、大量のテスト結果を技術者に提供する。技術者がこれらのテスト結果を管理、参照することを支援するために、各テスト結果をテスト番号に関連づけることができる。好ましくは、テスト番号は重複しない。しかし、テスト番号を手動で割り当てたり、原始的な「自動」手段で割り当てると、テスト番号の重複を避けたり見つけ出すことが難しい場合がある。
【発明の開示】
【０００３】
本発明の１つの態様はテスト番号を割り当てる方法で具体化される。本方法に従うと、現在のテストフローコンテキスト情報はテストフローを実行する間維持される。テストフロー内のサブテストの結果に対して新しいテスト番号が生成されると、新しいテスト番号を使用してテスト番号のデータベースにインデックスを付ける。新しいテスト番号がデータベース内でエントリとして現われた場合、エントリに関連づけられた一意的な識別子を、（１）サブテストの識別子と（２）現在のテストフローコンテキスト情報とを含むインデックス情報と比較する。一意的な識別子がインデックス情報と一致しない場合、テスト番号の衝突（collision）が識別される。一致する場合は、新しいテスト番号をサブテストに割り当てる。
本発明の別の態様もテスト番号を割り当てる方法で具体化される。本方法に従うと、現在のテストフローコンテキスト情報はテストフローの実行中維持される。テストフロー内のサブテストが実行されると、テスト番号のデータベースに、（１）サブテストの識別子と（２）現在のテストフローコンテキスト情報とを含むインデックス情報を使用してインデックスを付ける。インデックス情報に対応するテスト番号がデータベースに存在する場合、そのテスト番号をサブテストの結果に割り当てる。インデックス情報に対応するテスト番号がデータベースに存在しない場合、新しいテスト番号を以下のように生成する。現在のテストフローコンテキストの１つまたは複数のレベルに対して１つまたは複数のテスト番号ファクタが指定されている場合、テスト番号ファクタを使用して、現在のテスト番号範囲に関するベース番号を決定する。そうでない場合は、ベース番号はデフォルトのベース番号に設定する。ついで、新しいテスト番号を、現在のテスト番号範囲内の次のテスト番号に設定する。新しいテスト番号を生成した後に、新しいテスト番号を使用して、テスト番号のデータベースにインデックスを付ける。新しいテスト番号がデータベースにエントリとして現われた場合、上記のインデックス情報と、エントリに関連づけられた一意的な識別子とを比較する。インデックス情報が一意的な識別子と一致しない場合、テスト番号の衝突が識別される。一致する場合、その新しいテスト番号をサブテストに割り当てる。
【０００４】
本発明のさらに別の態様はテスト番号エンジンで具体化される。テスト番号エンジンは、コンピュータ読み取り可能媒体、および、コンピュータ読み取り可能媒体上に記憶されたプログラムコードを含む。プログラムコードは、テストフロー内のサブテストの結果に対して新しいテスト番号を生成するコードを含む。プログラムコードはまた、テスト番号のデータベースへのインデックスとして新しいテスト番号を使用し、新しいテスト番号がデータベース内のエントリとして現われた場合、このエントリと関連づけられた一意的な識別子を、（１）サブテストの識別子と（２）現在のテストフローコンテキスト情報とを含むインデックス情報と比較するコードを含む。このエンジンはさらに、一意的な識別子とインデックス情報が一致しない場合はテスト番号の衝突を識別し、一致する場合はサブテストにその新しいテスト番号を割り当てるコードを含む。
【０００５】
本発明の他の様態も示す。
【発明を実施するための最良の形態】
【０００６】
本発明の例示的で現在好ましい実施例を図面に示す。
テスト番号衝突を識別するための種々の方法と装置について記述する前に、本発明を適用できるいくつかの例としてのコンテキストを説明する。この目的のために、図１は、テスト番号を割り当てる第１の例としての方法１００を示す。方法１００によれば、現在のテストフローコンテキスト情報はテストフローの実行中維持される（１０２）。
【０００７】
本明細書では、「テストフロー」という用語は、回路テストの間に実行できるテストのタイプ、番号、または順序を指定するために使用するテストプログラムの任意の部分であると定義する。テストフローコンテキスト情報は、テストプログラムのどの部分が実行されているかを定義することを補助する任意の情報を含むことができる。例として、テストフローコンテキスト情報は、テストスイート（test suite）指定子、または、ポート指定子、ベクトルラベル、ベクトル指定子、ピン指定子などの情報を含むことができる。また、テストフローコンテキスト情報は、テストフローの実行中に入力された、たとえばネストループなどのいくつかのループ・レイヤの各々についてループ指定子および／またはループ反復指定子を含むこともできる。本明細書では、「指定子」という用語は、テストスイート、ループ、または他のテストフローコンテキストを指定するのに使用することのできる、文字列、番号、または任意の他の手段を包含する。
【０００８】
現在のテストフローコンテキストの１つまたは複数のレベルに対して１つまたは複数のテスト番号ファクタが指定されている場合には、方法１００はテスト番号ファクタを使用し、現在のテスト番号範囲について、たとえば開始番号または基準番号であるベース番号を決定する（１０４）。それ以外の場合には、ベース番号はデフォルトのベース番号に設定される。
【０００９】
方法１００の一実施形態では、ベース番号は、現在のテストフローコンテキストの種々のレベルについて指定された複数のテスト番号ファクタを総計（たとえば合計または乗算）することによってコンパイルされる（compiled）。例として、テスト番号ファクタは、ループレベル、テストスイートレベル、サブテストレベルのうち任意のレベルまたはすべてのレベルで指定されるインクリメントまたは加数を含むことができる。
【００１０】
方法１００の別の実施形態では、ユーザは、テストフローコンテキストごとに単一のベース番号しか指定できない。この実施形態では、現在のテスト番号範囲に関するベース番号は、ユーザ指定ベース番号と等しいベース番号を設定するだけで決定される。この方法では、テスト番号ファクタの集合はない。しかしたとえばユーザは、テストフロー中の種々のポイントでベース番号を提供し、これによって、一部のテスト番号をグループ化することができる。さらに、ベース番号がコンテキストで（contextually）設定されるので、後のテストスイートに割り当てられるテスト番号は、前のテストスイートに割り当てられたテスト番号から続いている必要はない。さらに、ベース番号が１つのテストスイートに対して指定される場合、そのベース番号は、次のテストスイートでの使用のために自動的に保存されることはない。
【００１１】
テストフロー中のサブテストが実行されると、現在のテスト番号範囲内の次のテスト番号をサブテストの結果に割り当てる（１０６）。本明細書では「サブテスト」という用語は、多数のテスト結果を生成するテストであってもよいが、好ましくは単一のテスト結果だけを生成するテストまたはテストの一部として定義することができる。
【００１２】
図２は、テストフローコンテキスト情報を維持できる、例としてのテストフロー２００を示す。例として、テストフロー２００は、アジレント９３０００ＳＯＣシリーズテスタのシステムオンチップテストフローであることができる。これは、米国カリフォルニア州パロアルトのアジレントテクノロジー社が製造するものである。テストフロー２００は、それぞれ、ＡＡＡ、ＢＢＢ、ＣＣＣ、ＤＤＤ、ＥＥＥと名づけられた５つのテストスイート２０２、２０４、２０６、２０８、２１０を含む。テストスイート２０２〜２１０の各々は、いくつかのサブテストを含むおよび／または指定する役割を果たし、たとえばテスト方法、テスト機能、ユーザプロシージャなど１つまたは複数のテスト制御を含むことができる。さらにテストフロー２００は、それぞれＬｏｏｐ＿Ｘ、Ｌｏｏｐ＿Ｙと名づけられた２つのループ２１２、２１４を含む。例として、各ループ２１２、２１４は、そのループを３回（すなわち１から３）繰り返すべきことを指定する。
【００１３】
図３は、テストフロー２００を実行する間、方法１００が維持することができるテストフローコンテキスト情報３００の進行を示す。最初のテストフローコンテキスト３０２は単に「ＡＡＡ」、あるいは最初に遭遇したテストスイートの名前であることに注意されたい。テストスイートＡＡＡが実行された後、ついで、テストフローコンテキストは「Ｌ１」に変わり、Ｌｏｏｐ＿Ｘの第１の反復を示す。
【００１４】
テストスイートＢＢＢに入ると、テストフローコンテキストは「ＢＢＢ：Ｌ１」に変わる。読み取りやすくするために、図３に示されるテストフローコンテキストは、現在のテストスイートの名前を常にコンテキストの最初におくという慣例を採用することに注意されたい。しかし、方法１００では必ずこうしなければならないということではないし、又その必要もない。
【００１５】
最初にＬｏｏｐ＿Ｙに入ると、テストフローコンテキストは「Ｌ１：Ｌ１」に変わる。したがってＬｏｏｐ＿ＸとＬｏｏｐ＿Ｙのアイデンティティは、テストフローコンテキストの中で維持されているループの繰り返しの数および順序から推論される。しかし、ループのアイデンティティは、コンテキストを「Ｘ１：Ｙ１」と示すなどして、特定性によって呼び出すこともできる。
【００１６】
テストフロー２００の種々のコンテキストはテスト番号ファクタに関連づけられる。すなわち、Ｌｏｏｐ＿Ｘは加数１００００、テストスイートＢＢＢは加数２００、テストスイートＣＣＣは加数２２０、Ｌｏｏｐ＿Ｙは加数２０００、テストスイートＤＤＤはインクリメント５と、それぞれ関連づけられる。図３では各テストフローコンテキストに隣接して、コンテキストに関する合計のベース番号を示す。したがって、テストスイートＢＢＢのベース番号は１０２００（１００００＋２００）、Ｌｏｏｐ＿Ｘの第１の反復中のテストスイートＣＣＣのベース番号は１０２２０（１００００＋２２０）、Ｌｏｏｐ＿Ｘの第１の反復とＬｏｏｐ＿Ｙの第１の反復中のテストスイートＤＤＤのベース番号は１２０００（１００００＋２０００）、テストスイートＥＥＥのベース番号は１２００である。しかし、テストスイートＡＡＡのベース番号は１であり、デフォルトのベース番号である。
【００１７】
テスト番号ファクタが、たとえばＬｏｏｐ＿Ｘに関連づけられた加数１００００などループレベルで提供される場合、このループのテスト番号ファクタはベース番号反復回数に掛けられる（factored into）ことができる。たとえば、Ｌｏｏｐ＿Ｘの第２の反復とＬｏｏｐ＿Ｙの第３の反復中にテストスイートＤＤＤが実行された場合を考える。このコンテキストのベース番号は（１００００＊２）＋（２０００＊３）、すなわち２６０００として計算することができる。
【００１８】
次に、図２に示すテストスイート２０２〜２１０の各々が、Ｓｕｂｔｅｓｔ１、Ｓｕｂｔｅｓｔ２、Ｓｕｂｔｅｓｔ３と識別される３つのサブテストを含むと仮定する。同じ名前のサブテストが各テストスイート２０２〜２１０の中で現れることはあるが、これらは同じサブテストである必要がなく、またその可能性も低いことに注意されたい。テストフロー２００の実行中に、テストスイートＡＡＡに割り当てられるテスト番号は１、２、３である。Ｌｏｏｐ＿Ｘの第１の反復中にテストスイートＢＢＢに割り当てられるテスト番号は、１０２００、１０２０１、１０２０２となる。同様に、Ｌｏｏｐ＿Ｘの第１の反復中にテストスイートＣＣＣに割り当てられるテスト番号は、１０２２０、１０２２１、１０２２２となる。Ｌｏｏｐ＿ＸとＬｏｏｐ＿Ｙの第１の反復中にテストスイートＤＤＤに割り当てられるテスト番号は、１２０００、１２００５、１２０１０、すなわち５ずつインクリメントされた数になる。最後に、テストスイートＥＥＥに割り当てられるテスト番号は整数１２００、１２０１、１２０２を含む。
【００１９】
一部のテストフローについては、テストフロー中の異なるコンテキストが故意または故意ではなく、同じテスト番号範囲を共有してもよいことに注意されたい。他のテストスイートがすでに範囲から番号を引き出したかどうかにかかわらず、各サブテストは範囲から「次の数」を引き出すので、２つのテストスイートに割り当てられるテスト番号は衝突しない。
【００２０】
さらに、２つまたは２つ以上のテストスイートは同じベース番号を有してよいだけでなく、重なるかまたは挟み込まれたテスト番号範囲と関連づけてもよいことに注意されたい。たとえば、２つのテストスイートがそれぞれベース番号１２００と１２０１に関連づけられ、インクリメントが５である場合、１つのテストスイートはテスト番号１２００、１２０５、１２１０と関連づけられ、別のテストスイートは１２０１、１２０６、１２１１と関連づけられる。ベース番号１２００と１３０１にそれぞれ関連づけられ、インクリメントが２であるテストスイートでも、同様なテスト番号の重なりが起きる。
【００２１】
現在のテスト番号範囲向けにコンパイルされるベース番号が新しい場合、ベース番号を使用して、テスト番号範囲のデータベース４００中の新しいテスト番号範囲を初期化することができる。ついで、データベース４００中の各テスト番号範囲について、テスト番号範囲から割り当てられたテスト番号をトラッキングすることができる。これを行う１つの方法は、各範囲４０２を、その範囲から割り当てられた最大のテスト番号４０４と共に記憶することである。ついで、新しいテスト番号が範囲から割り当てられるごとに、その前の最大のテスト番号をインクリメントすることができる。ユーザがテストフローに割り当てたテストファクタに依存して、インクリメントはデフォルトのインクリメントであってもよいし、テストフローの特定のレベル（複数可）についてユーザが指定したインクリメントであってもよい。たとえば、インクリメントは現在のテストフローコンテキストのレベルと関連づけてもよい。
【００２２】
テスト番号を結果に割り当てた後、各テスト番号を導出元のベース番号と共に記憶することによって、テスト番号データベースをコンパイルすることができる。オプションとしては、テストの結果、そのテスト番号、そのテスト番号が導出された元のベース番号をすべて同じデータベースに記憶するように、テスト番号データベースを結果データベースに統合することもできる。そのようなデータベース５００の一部を図５に示す。別法としては、テスト番号、そのテストフローコンテキスト情報、そのテスト番号が導出された元のベース番号をすべて同じデータベースに記憶するように、テスト番号データベースをテストフローコンテキスト情報と統合してもよい。後者のデータベースの形式は図７に示す。
【００２３】
データベース５００または７００を記憶した後で、次のテストフロー実行の前に、データベース５００または７００を読み出し、中に記憶された種々のベース番号を識別することができる。各識別されたベース番号について、テスト番号範囲が初期化され、データベース５００または７００を解析して、テスト番号範囲からすでに導出されたテスト番号の範囲を決定することができる。ついで次のテストフロー実行の間、初期化されたテスト番号範囲を使用し、初期化されたテスト番号範囲に対応する任意の新しいテスト番号を割り当てることができる。
【００２４】
一実施形態では、方法１００は、Ｒｏｂｅｒｔ  Ｓ．Ｋｏｌｍａｎらによる「テスト番号を割り当てる方法および装置」という題名の米国特許出願（代理人整理番号第１００４０４３３−１号、本出願と同じ日に提出されている）の中に開示されたテスト番号を割り当てる方法と組み合わせることができる。図６はこの組合せに従って、テスト番号を割り当てる第２の例としての方法６００を示す。方法６００では、現在のテストフローコンテキスト情報は、テストフローの実行中維持される（６０２）。テストフロー中のサブテストが実行されると、（１）サブテストの識別子と（２）現在のテストフローコンテキスト情報とを含むインデックス情報を使用して、テスト番号のデータベースにインデックスをつける（６０４）。インデックス情報に対応するテスト番号がデータベースに存在する場合には、サブテストの結果にテスト番号を割り当てる（６０６）。インデックス情報に対応するテスト番号がデータベースに存在しない場合には、新しいテスト番号を生成する（６０８）。新しいテスト番号は以下のように生成される。現在のテストフローコンテキストの１つまたは複数のレベルに対して１つまたは複数のテスト番号ファクタが指定されている場合には、テスト番号ファクタを使用して現在のテスト番号範囲のベース番号を決定する（６１０）。これ以外の場合には、ベース番号はデフォルトのベース番号に設定する。ついで、新しいテスト番号を現在のテスト番号範囲の中の次のテスト番号に設定する（６１２）。
【００２５】
再び例としてのテストフロー２００に戻ると、テストフロー２００の中の第１のサブテストを実行すると、サブテストの識別子（Ｓｕｂｔｅｓｔ１）と、現在のテストフローコンテキスト情報（ＡＡＡ）とを含むインデックス情報を使用して、テスト番号のデータベースにインデックスをつける。これがテストフロー２００の第１の実行であればデータベースは空であり、新しいテスト番号（たとえば１）をＳｕｂｔｅｓｔｌの結果に割り当てる。また、新しいテスト番号（１）とインデックス情報（ＡＡＡ：Ｓｕｂｔｅｓｔｌ）をデータベースの中で関連づける。テストフロー２００の第１の実行中、データベース「ミス（ｍｉｓｓ）」が生ずることになる各連続したインデックスを使用して、これらのステップは継続し、新しいテスト番号、これに関連づけられたインデックス情報がデータベースに追加される。データベースには導出元のベース番号を追加してもよい。したがって、テストフロー２００の第１の実行の後、図７に示すテスト番号のデータベース７００が作成されている。同時に、新しく生成された各テスト番号は、対応するサブテストのテスト結果に割り当てられ、この結果、図８に示すテスト結果のデータベース８００が生成される。図８に示したテスト結果はすべて「ｐａｓｓ（合格）」または「ｆａｉｌ（不合格）」の用語で示されるが、実際のテスト実行の結果は電圧測定値、および、電流測定値、インピーダンス測定値、その他の種類のテスト結果をも同時に含むかまたは二者択一的に含むことができる。
【００２６】
好ましくは、テストスイート内の各サブテストに一意的なサブテスト名を与え、十分なテストフローコンテキスト情報を維持して、テスト番号のデータベース７００内の各インデックスが必ず一意的なサブテスト識別子を形成するようにする。データベース７００に入力された新しい各テスト番号は、データベース内の他のすべてのテスト番号から一意的であればさらに好ましい。
【００２７】
上記の方法１００、６００、および、テスト番号を割り当てる他の方法において、２つのテスト番号が「衝突する」可能性が存在する。すなわち、方法１００、６００は、２つまたは２つ以上の異なるサブテストに同じテスト番号を割り当てようとする場合がある。同じテスト番号が割り当てられるとあいまいになり、テスト番号データベースが破損する場合もある。したがって図９は、衝突を識別することができるテスト番号割り当て方法９００を示す。
【００２８】
方法９００に従うと、現在のテストフローコンテキスト情報はテストフローの実行中維持される（９０２）。テストフロー中のサブテストの結果に対する新しいテスト番号が生成されると（９０４）、テスト番号のデータベース（例えばデータベース７００）に、新しいテスト番号を使用して、インデックスを付ける（９０６）。新しいテスト番号がデータベースにエントリとして現われると、エントリに関連づけられた一意的な識別子を、（１）サブテストの識別子と（２）現在のテストフローコンテキスト情報とを含むインデックス情報と比較する（９０８）。一意的な識別子がインデックス情報と一致しない場合、テスト番号衝突を識別する（９１０）。一致する場合、その新しいテスト番号をサブテストに割り当てる。新しいテスト番号をサブテストに割り当てると、新しいテスト番号とインデックス情報はデータベース内で関連づけられ、インデックス情報は新しいテスト番号の一意的な識別子として機能する。
【００２９】
方法９００では、テスト番号衝突が識別されると、これに応答して種々の処置を取ることができる。たとえば、方法９００は、テスト番号衝突の通知を表示するようにグラフィカルユーザインタフェースをプログラミングするだけでもよい。また方法９００は、テスト番号のうちの１つを置き換えるようにユーザに促すこともできる。別法または追加としては、方法９００は、テスト番号衝突の詳細を衝突ログに記録することができる。ついで、衝突ログをユーザに出力してもよいし、またはユーザが見てもよい。
【００３０】
一実施形態では、方法９００は、別の新しいテスト番号を自動的に生成し、ついで、追加された新しいテスト番号を使用してインデックスをつける動作（９０６）、比較動作（９０８）、識別動作（９１０）を繰り返すことによって、テスト番号の衝突に応答する。
【００３１】
図６のボックス９０６ａ、９０８ａ、９１０ａは、方法９００を方法６００の一部として機能するように適応させる例を示す。
【００３２】
上記の方法のうち任意の方法がプログラムコードを使用して実装できる。例として、図１０は、方法１００を実装するために使用できるテスト番号エンジン１０００を示す。テスト番号エンジン１０００は、たとえば磁気ディスクまたは光ディスク、固定式ディスクまたはリムーバブルディスク、ランダムアクセスメモリまたはリードオンリーメモリ（ＲＡＭまたはＲＯＭ）などのコンピュータ読み取り可能媒体上に記憶されたプログラムコード内で具体化される。一部の実施形態では、テスト番号エンジン１０００のプログラムコードは、１つまたは複数のコンピュータシステムに関連づけられた種々のコンピュータ読み取り可能媒体の間で分散させてもよい。
【００３３】
図示するように、テスト番号エンジン１０００は、テストフロー中のサブテストの結果に対して新しいテスト番号を生成するコード１００２を含む。エンジン１０００はまた、新しいテスト番号をテスト番号データベース１００６内へのインデックスとして使用し、新しいテスト番号がデータベース１００６内でエントリとして現れる場合、エントリと関連づけられた一意的な識別子を、（１）サブテストの識別子と（２）現在のテストフローコンテキスト情報とを含むインデックス情報と比較するコード１００４を含む。このエンジンはさらに、一意的な識別子とインデックス情報が一致しない場合にテスト番号の衝突を識別し、一致する場合にサブテストに新しいテスト番号を割り当てるコード１００８を含む。
【００３４】
本明細書では本発明の例示的で現在好ましい実施形態を詳細に説明したが、本発明の概念は他の種々の方法で具体化および使用でき、付随する請求項は、関連技術による限定を除いては、このような変形例を含むものと解釈すべきである。
【図面の簡単な説明】
【００３５】
【図１】テスト番号を割り当てる例としての方法を示す図である。
【図２】例としてのテストフローを示す図である。
【図３】図２のテストフローのテストフローコンテキスト情報の経過を示す図である。
【図４】テスト番号範囲の例としてのデータベースを示す図である。
【図５】図２のテストフロー実行中に形成されるテスト番号データベースの例としての一部を示す図である。
【図６】テスト番号を割り当てる第２の例としての方法を示す図である。
【図７】図２のテストフローの実行に応答して生成されるテスト番号のデータベースを示す図である。
【図８】図２のテストフローの実行に応答して生成されるテスト結果のデータベースを示す図である。
【図９】テスト番号を割り当てる第３の例としての方法を示す図である。
【図１０】例としてのテスト番号エンジンを示す図である。
【符号の説明】
【００３６】
２００：テストフロー
２０２：テストスイート
２０４：テストスイート
２０６：テストスイート
２０８：テストスイート
２１０：テストスイート
２１２：ループ
２１４：ループ
３００：テストフローコンテキスト情報
４００、５００、７００：データベース
【図１】
2005321400.tif 000003
【図２】
2005321400.tif 000004
【図３】
2005321400.tif 000005
【図４】
2005321400.tif 000006
【図５】
2005321400.tif 000007
【図６】
2005321400.tif 000008
【図７】
2005321400.tif 000009
【図８】
2005321400.tif 000010
【図９】
2005321400.tif 000011
【図１０】
2005321400.tif 000012