(57)【要約】【課題】回路テストにおけるテスト番号の割り当てをそれらの衝突を回避して自動的に行う。【解決手段】テスト番号の競合を処理するための装置(100)は、コンピュータ読み取り可能媒体に記憶されたプログラムコードを含む。コード(102)は、第１のテスト番号と第２のテスト番号との衝突に応答して、第１のテスト番号に関連する衝突トラッキング値に応じて第２のテスト番号を自動的に調節し、それによって、衝突を解消する。また、衝突に応答して、コード(102)は、衝突トラッキング値を更新する。テスト番号の衝突を処理するための他の方法(900)及び装置(200,300)も開示される。【選択図】図１
2005321387.tif 000002
【特許請求の範囲】
【請求項１】
テスト番号の競合を処理するための装置（１００）であって、
コンピュータ読み取り可能媒体と、
前記コンピュータ読み取り可能媒体上に記憶されたプログラムコード
とを具備し、
前記プログラムコードは、
第１のテスト番号と第２のテスト番号の間の競合に応答して、前記第１のテスト番号に関連づけられた競合トラッキング値に応じて前記第２のテスト番号を自動的に調節し、それによって競合を除去するためのコード（１０２）と、
前記競合に応答して、前記競合トラッキング値を更新するためのコード（１０４）とを含むことからなる、装置。
【請求項２】
テスト番号と、テスト番号に対応する競合トラッキング値のデータベース（１０８）を維持するためのコード（１０６）をさらに含む、請求項１に記載の装置（１００）。
【請求項３】
前記データベース（１０８）に維持された各競合トラッキング値は競合カウントである、請求項２に記載の装置（１００）。
【請求項４】
前記データベース（１０８）に維持された各競合トラッキング値は、前記競合トラッキング値に関連づけられたテスト番号を割り当てるために行われた試行の回数を示す、請求項２に記載の装置（１００）。
【請求項５】
前記コード（１０２）は、前記第２のテスト番号をｉ）少なくとも１つの調節ファクタとｉｉ）前記競合トラッキング値と組み合わせることによって、前記第２のテスト番号を自動的に調節する、請求項１に記載の装置（１００）。
【請求項６】
前記少なくとも１つの調節ファクタは１０のファクタまたは１０の倍数を含む、請求項５に記載の装置（１００）。
【請求項７】
前記少なくとも１つの調節ファクタはユーザ指定ファクタを含む、請求項５に記載の装置（１００）。
【請求項８】
前記コード（１０２）は、前記少なくとも１つの調節ファクタと競合トラッキング値の組み合わせを前記第２のテスト番号に加算する、請求項５に記載の装置（１００）。
【請求項９】
前記第１のテスト番号と前記第２のテスト番号の間の前記競合を識別するためのコード（１１０ａ）をさらに含み、
前記コード（１１０ａ）は、前記第２のテスト番号が生成されると、
前記第２のテスト番号を使用してテスト番号のデータベース（１０８）にインデックスを付け、
前記第２のテスト番号が前記データベース（１０８）内のエントリとして現れる場合は、前記エントリに関連付けられた一意的な識別子を、ｉ）前記第２のテスト番号が生成されたサブテストの識別子及びｉｉ）前記サブテストに関するテストフローコンテキスト情報（６００）を含むインデックス情報と比較し、及び、
前記一意的な識別子が前記インデックス情報に一致しない場合は、テスト番号の競合を識別する
ことによって前記識別を行うことからなる、請求項１に記載の装置（１００）。
【請求項１０】
テスト番号を割り当てるための方法（９００）であって、
テストフロー（５００）の実行中、現在のテストフローコンテキスト情報（６００）を維持すること（９０２）と、
前記テストフロー（５００）内のサブテストが実行されると、ｉ）前記サブテストの識別子とｉｉ）前記現在のテストフローコンテキスト情報（６００）とを含むインデックス情報を使用して、テスト番号のデータベース（１０００）にインデックスを付けること（９０４）と、
前記インデックス情報に対応するテスト番号が前記データベース（１０００）内に存在する場合は、前記テスト番号を前記サブテストの結果に割り当てること（９０６）と、
前記インデックス情報に対応するテスト番号が前記データベース（１０００）内に存在しない場合は、新しいテスト番号を生成すること（９０８）であって、
前記現在のテストフローコンテキスト（６００）の１つまたは複数のレベルに対して１つまたは複数のテスト番号ファクタが指定されている場合は、前記テスト番号ファクタを使用して現在のテスト番号範囲に対するベース番号を決定し、そうでない場合には、ベース番号をデフォルトのベース番号に設定し（９１０）、及び、
前記新しいテスト番号を前記現在のテスト番号範囲内の次のテスト番号に設定すること（９１２）
によって新しいテスト番号を生成すること（９０８）と、
前記新しいテスト番号を使用して前記テスト番号のデータベース（１０００）にインデックスを付けること（９１４）と、
前記新しいテスト番号が前記データベース（１０００）内にエントリとして現れる場合は、前記インデックス情報を前記エントリに関連づけられた一意的な識別子と比較すること（９１６）と、
前記インデックス情報が前記一意的な識別子と一致する場合は、前記新しいテスト番号を前記サブテストに割り当てること（９１８）と、
前記インデックス情報が前記一意的な識別子と一致しない場合は、ｉ）前記新しいテスト番号（１１０２）によってインデックスをつけられた競合トラッキング値（１１０４）に応じて前記新しいテスト番号を自動的に調節し（９２０）、ｉｉ）前記調節された新しいテスト番号を前記サブテストに割り当て（９２０）、ｉｉｉ）前記競合トラッキング値（１１０４）を更新すること（９２０）
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テスト回路におけるテスト番号の設定に関する。
【背景技術】
【０００２】
いくつかの形式の回路テストは技術者に多くのテスト結果を提供する。技術者がこれらのテスト結果を管理、参照するのを支援するために、各テスト結果にテスト番号を関連付けることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
テスト番号は重複しないのが好ましい。しかし、テスト番号を手動で割り当てるか、基本的な「自動」手段で割り当てる場合は、テスト番号の重複を避けたり、それを検出することが困難なことがある。
【課題を解決するための手段】
【０００４】
本発明の１つの態様は、テスト番号の競合（テスト番号の衝突）を処理する装置において具現化される。本装置は、コンピュータ読み取り可能媒体、およびコンピュータ読み取り可能媒体上に記憶されるプログラムコードを含む。プログラムコードは、第１のテスト番号と第２のテスト番号の間の競合に応答して、第１のテスト番号と関連付けられた競合トラッキング値に応じて第２のテスト番号を自動的に調節し、これによって競合を除去するためのコードを含む。プログラムコードはさらに、競合に応答して競合トラッキング値を更新するためのコードを含む。
【０００５】
本発明の別の態様はテスト番号を割り当てるための方法において具現化される。本方法によると、テストフローの実行中、現在のテストフローコンテキスト情報が維持される。テストフロー中のサブテストが実行されると、１）サブテストの識別子と２）現在のテストフローコンテキスト情報とを含むインデックス情報を使用して、テスト番号のデータベースにインデックスを付ける。インデックス情報に対応するテスト番号がデータベースに存在する場合は、そのテスト番号をサブテストの結果に割り当てる。インデックス情報に対応するテスト番号がデータベースに存在しない場合は、新しいテスト番号を以下のように生成する。現在のテストフローコンテキストの１つまたは複数のレベルに対して、１つまたは複数のテスト番号ファクタが指定されている場合は、テスト番号ファクタを使用して現在のテスト番号範囲に対するベース番号（または基数ともいう。以下同じ）を決定する。これ以外の場合は、ベース番号をデフォルトのベース番号に設定する。ついで、新しいテスト番号を、現在のテスト番号範囲内の次のテスト番号に設定する。新しいテスト番号を生成した後に、新しいテスト番号を使用して、テスト番号のデータベースにインデックスを付ける。新しいテスト番号がデータベースにエントリとして現われる場合は、上記のインデックス情報をエントリに関連づけられた一意的な識別子（または固有の識別子という。以下同じ）と比較する。インデックス情報が一意的な識別子と一致する場合は、その新しいテスト番号をサブテストに割り当てる。インデックス情報が一意的な識別子と一致しない場合は、１）新しいテスト番号によってインデックスが付けられた競合トラッキング値に応じて新しいテスト番号を自動的に調整し、２）調節された新しいテスト番号をサブテストに割り当て、３）競合トラッキング値を更新する。
【０００６】
本発明の他の実施形態も開示される。
【実施例】
【０００７】
本発明の例示であって現在のところ好ましい実施形態を図面に示す。
【０００８】
本明細書では、「テストフロー」という用語を、回路テストの間に実行されるサブテストのタイプ、または、数、順序を指定するために使用されるテストプログラムの任意の部分と定義する。「サブテスト」は、複数のテスト結果を生じるテストであってもよいが、好ましくは単一のテスト結果だけを生じるテストまたはテストの一部であると定義する。
【０００９】
技術者がサブテストの結果を管理、参照することを支援するために、各テスト結果をテスト番号と関連づけることができる。テスト番号は、１つのテスト結果と別のテスト結果を区別する役に立つばかりでなく、テスト番号を使用して、どのサブテストがどの結果を生成したかを決定することができる。
【００１０】
テスト番号を生成する時に、時々２つのテスト番号が「競合する」可能性がある。すなわち、テスト番号を割り当てるためのプロセスが、２つ以上の異なるサブテストの結果に同じテスト番号を割り当てようと試みる可能性がある。この結果、テスト番号データベースが曖昧になり、データベースが破損する可能性もある。図１は、テスト番号の競合を処理するための装置１００を示す。装置１００は、たとえば磁気ディスクまたは光ディスク、固定ディスクまたはリムーバブルディスク、ランダムアクセスメモリまたはリードオンリーメモリ（ＲＡＭまたはＲＯＭ）などのコンピュータ読み取り可能媒体上に記憶されたプログラムコードで具体化される。いくつかの実施形態では、装置１００のプログラムコードは、１つまたは複数のコンピュータシステムに関連づけられた種々のコンピュータ読み取り可能媒体の間で分散させてもよい。
【００１１】
図示のように、装置１００は、第１のテスト番号と第２のテスト番号の間の競合に応答して、第１のテスト番号に関連づけられた競合トラッキング値に応じて第２のテスト番号を自動的に調節し、これによって競合を除去するためのコード１０２を含む。装置１００はさらに、競合に応答して競合トラッキング値を更新するためのコード１０４を含む。
【００１２】
競合トラッキング値は種々に具現化することができるが、好ましくは競合カウント（たとえば第１のテスト番号との過去の競合のカウント値）、または競合トラッキング値に関連づけられたテスト番号を割り当てるために行われた試行回数のインジケータである。
【００１３】
装置１００はさらに、テスト番号と、テスト番号に対応する競合トラッキング値のデータベース１０８を維持するコードための１０６を含む。このようなデータベースは例示として次のようなエントリを含むことができる。
【００１４】
【表１】
2005321387.tif 000003
【００１５】
１実施形態では、コード１０６は、サブテストの結果に割り当てられたことのあるすべてのテスト番号について競合トラッキング値を初期化する。第２のテスト番号を調節するときに、コード１０６は調節された第２のテスト番号に対応する競合トラッキング値を初期化することができる。別の実施形態では、コード１０６は、以前に競合に関係したテスト番号に対する競合トラッキング値だけを初期化する。
【００１６】
さらに装置１００は、第１のテスト番号と第２のテスト番号の競合を識別するためのコード１１０を含んでいてもよい。装置２００（図２）に示すように、コード１１０は、第１のテスト番号に関連づけられた競合トラッキング値を参照することにより、単に競合を識別するものであってもよい。例えば、競合トラッキング値が第１のテスト番号を割り当てるためになされた試行の回数のインジケータである場合は、１に等しいかまたは１より大きい任意の値は、競合が存在し、第２のテスト番号を調節する必要があることを示す。
【００１７】
コード１１０の代替のバージョンを含む装置３００を図３に示す。この代替バージョンであるコード１１０ａは、まず第２のテスト番号を使用してテスト番号のデータベースにインデックスを付けることにより、第１のテスト番号と第２のテスト番号の間の競合を識別する。第２のテスト番号がデータベース内にエントリとして現われる場合は、コード１１０ａは、エントリに関連づけられた一意的な識別子（すなわち、固有の識別子）と、１）第２のテスト番号が生成されたサブテストの識別子及び２）サブテストに関するテストフローコンテキスト情報を含むインデックス情報とを比較する。一意的な識別子がインデックス情報と一致しない場合は、コード１１０ａは、テスト番号競合を識別し、調節されたテスト番号を生成する。装置３００の１実施形態では、テスト番号、テスト番号に対応する一意的な識別子、テスト番号に対応する競合トラッキング値をすべて、同じデータベース内で維持する。しかし、テスト番号とテスト番号に対応する競合トラッキング値は、個別の競合マップに記憶してもよい。
【００１８】
装置３００が一意的な識別子と「テストフローコンテキスト情報」との比較を必要とすることを考慮し、このような情報の生成、維持、使用について後で詳述する。しかし、競合トラッキング値を使用してテスト番号を調節することが可能ないくつかの代替の方法をまず説明する。
【００１９】
コード１０２の簡単な実施形態では、調節が必要なテスト番号に競合トラッキング値を、単に、加算、または、乗算、付加することができる。
【００２０】
コード１０２の別の実施形態では、競合トラッキング値を、テスト番号と少なくとも１つの「調節ファクタ」の両方と組み合わせることができる。例として、これらの値を互いに加算、乗算、付加することができる。コード１０２の特定の１実施形態では、少なくとも１つの調節ファクタは、１０のファクタ（例えば、１０の倍数である１，０００または１０，０００など）を含み、コード１０２は、この１０のファクタと競合トラッキング値を乗算することによってこの２つを組み合わせる。ついでこの結果を、調節を必要とするテスト番号に加算することができる。例えば、第１のテスト番号「２３５」と、これに関連づけられた競合トラッキング値「１」を考える。調節ファクタが「１０，０００，０００」である場合は、番号「２３５」と競合する第１のテスト番号を調節して「１０，０００，２３５」にする。調節されたテスト番号「１０，０００，２３５」を生成した後、テスト番号「２３５」と関連づけられた競合トラッキング値を「２」にインクリメントする。ついで、テスト番号「２３５」と競合する第２のテスト番号を「２０，０００，２３５」に調節する。テスト番号「２３５」との別の競合が起きた場合には同様に処理して、「ベース」テスト番号と「調整された」テスト番号の次のような列を得ることができる。
【００２１】
【表２】
2005321387.tif 000004
【００２２】
上記のテスト番号の列を生成した後、テスト番号と競合トラッキング値のデータベース１０８は、上記に示したようになる。
【００２３】
上記の競合テスト番号調節方法により、「ベース」テスト番号に関連して容易に区別できる一連の調節されたテスト番号が得られることが理解されるであろう。
【００２４】
１実施形態では、コード１０２が用いる調節ファクタ（複数可）は１つまたは複数のユーザによって指定されたファクタ（ユーザ指定ファクタ）を含んでいてもよい。
【００２５】
次に、上記の「テストフローコンテキスト情報」の生成、維持、使用について説明する。
【００２６】
テストフローコンテキスト情報は、テストプログラムのうち実行されている部分を画定することを補助する任意の情報を含んでいてもよい。例として、テストフローコンテキスト情報は、テストスーツ指定子（テストスーツとはテストの組のこと）、ポート指定子、ベクトルラベル、ベクトル指定子、ピン指定子などの情報を含むことができる。また、テストフローコンテキスト情報はテストフロー実行中に入力された、入れ子になったループなどの複数のループレイヤの各々に関してループ指定子および／またはループ反復指定子を含んでいてもよい。本明細書では、「指定子」という用語は、テストスーツ、ループ、他のテストフローコンテキストを指定するために使用することができるストリング、番号、その他の任意の手段を包含する。
【００２７】
図４は、テスト番号を割り当てる第１の例示的な方法４００を示す。方法４００によると、テストフローの実行中、現在のテストフローコンテキスト情報が維持される（４０２）。現在のテストフローコンテキストの１つまたは複数のレベルに対して１つまたは複数のテスト番号ファクタが指定されている場合は、方法４００はテスト番号ファクタを使用して、現在のテスト番号範囲に対するベース番号（例えば開始番号または基準番号）を決定する（４０４）。そうでない場合は、ベース番号をデフォルトのベース番号に設定する。
【００２８】
方法４００の１実施形態では、現在のテストフローコンテキストの種々のレベルに関して指定されている複数のテスト番号ファクタを、たとえば加算または乗算によってまとめる（集合化する）ことによってベース番号をコンパイル（例えば、編集したりまとめたり）する。例として、テスト番号ファクタは、ループレベル、テストスーツレベル、サブテストレベルのうち任意のものまたはすべてのものにおいて指定される、インクリメント（増分）または加数を含んでいてもよい。
【００２９】
方法４００の別の実施形態では、ユーザはテストフローコンテキストごとに単一のベース番号を指定できるだけである。この実施形態では、現在のテスト番号範囲に対するベース番号は、ベース番号を単にユーザによって指定されたベース番号と等しくなるように設定することにより決定される。この方法では、テスト番号ファクタの集合はない。しかしユーザは、テストフロー内の種々のポイントにおいてベース番号を提供し、これによってたとえば、いくつかのテスト番号をグループ化することができる。さらに、ベース番号はコンテキストに関連して（例えば、テストフローの前後関係に関連して）設定されるので、それ以降のテストスーツに割り当てられるテスト番号は、それ以前のテストスーツに割り当てられたテスト番号に続いている必要はない。さらに、あるベース番号が１つのテストスーツに対して指定されている場合は、それは、次のテストスーツで使用するために自動的には保存されない。
【００３０】
テストフロー内のサブテストが実行されると、現在のテスト番号範囲中の次のテスト番号をサブテストの結果に割り当てる（４０６）。
【００３１】
図５は、テストフローコンテキスト情報を維持することができる例示的なテストフロー５００を示す。例として、テストフロー５００は、アジレント９３０００  ＳＯＣシリーズテスタ（米国カリフォルニア州パロアルト、アジレントテクノロジーズ社製造）のシステムオンチップテストフローであってもよい。テストフロー５００は５つのテストスーツ５０２、５０４、５０６、５０８、５１０を含み、これらにはそれぞれＡＡＡ、ＢＢＢ、ＣＣＣ、ＤＤＤ、ＥＥＥという名前が付いている。テストスーツ５０２から５１０は各々、いくつかのサブテストを含むかおよび／または指定する機能を有し、たとえば、テスト方法、テスト関数、ユーザプロシージャ（ユーザ手順）などの１つまたは複数のテストコントロールを含んでいてもよい。また、テストフロー５００はそれぞれＬｏｏｐ＿Ｘ、Ｌｏｏｐ＿Ｙと名前がつけられた２つのループ５１２、５１４を含む。例として、各ループ５１２、５１４は、このループを３回（つまり１．．３）繰り返すことを表している。
【００３２】
図６は、テストフロー５００の実行中に方法４００が維持することができるテストフローコンテキスト情報６００の列を示す。最初のテストフローコンテキスト６０２は「ＡＡＡ」だけ、または最初に遭遇したテストスーツの名前であることに注意されたい。テストスーツＡＡＡが実行されると、テストフローコンテキストは「Ｌ１」に変わるが、これは、Ｌｏｏｐ＿Ｘの第１の反復を示す。
【００３３】
テストスーツＢＢＢに入ると、テストフローコンテキストは「ＢＢＢ：Ｌ１」に変わる。読み取りやすくするために、図６に示すテストフローコンテキストでは、現在のテストスーツの名前を常にコンテキストの最初におくという慣例を採用していることに注意されたい。しかし、方法４００では必ずしもこうする事は要求されないし、またその必要もない。
【００３４】
Ｌｏｏｐ＿Ｙに最初に入ると、テストフローコンテキストは「Ｌ１：Ｌ１」に変わる。
したがって、Ｌｏｏｐ＿ＸとＬｏｏｐ＿Ｙのアイデンティティ（すなわち、どのループであるか）は、テストフローコンテキスト内で維持されるループ反復の回数と順序から推測される。しかし、コンテキストを「Ｘ１：Ｙ１」と示すなどにより、特定的にループのアイデンティティを呼び出してもよい。
【００３５】
テストフロー５００の種々のコンテキストをテスト番号ファクタと関連づける。すなわち、Ｌｏｏｐ＿Ｘは加数１０，０００、テストスーツＢＢＢは加数２００、テストスーツＣＣＣは加数２２０、Ｌｏｏｐ＿Ｙは加数２０００、テストスーツＤＤＤはインクリメント５と関連づけられる。図６では、各テストフローコンテキストに隣接して、コンテキストの集合ベース番号を示す。したがって、テストスーツＢＢＢのベース番号は１０，２００（１０，０００＋２００）、Ｌｏｏｐ＿Ｘの第１の反復中のテストスーツＣＣＣのベース番号は１０，２２０（１０，０００＋２２０）、Ｌｏｏｐ＿Ｘの第１の反復中とＬｏｏｐ＿Ｙの第１の反復中のテストスーツＤＤＤのベース番号は１２，０００（１０，０００＋２，０００）、テストスーツＥＥＥのベース番号は１２００である。しかし、テストスーツＡＡＡのベース番号は１、すなわちデフォルトのベース番号である。
【００３６】
たとえば、（Ｌｏｏｐ＿Ｘに関連づけられた加数１０，０００などのように）テスト番号ファクタがループレベルで提供される場合は、ループのテスト番号ファクタはベース番号の繰り返し回数に因数分解することができる。例えば、Ｌｏｏｐ＿Ｘの第２の反復およびＬｏｏｐ＿Ｙの第３の反復中の、テストスーツＤＤＤの実行を考える。このコンテキストのベース番号は（１０，０００＊２）＋（２，０００＊３）、すなわち２６，０００と計算することができる。
【００３７】
次に、図５に示すテストスーツ５０２から５１０の各々は、Ｓｕｂｔｅｓｔ１、Ｓｕｂｔｅｓｔ２、Ｓｕｂｔｅｓｔ３であると識別される、３つのサブテストを含むと仮定する。各テストスーツ５０２から５１０の中に同じ名前のサブテストが現われることもあるが、これらが同じサブテストである必要はない（及び、同じサブテストでない可能性がある）ことに注意されたい。テストフロー５００の実行中に、テストスーツＡＡＡに割り当てられるテスト番号は１、２、３となる。Ｌｏｏｐ＿Ｘの第１の反復中にテストスーツＢＢＢに割り当てられるテスト番号は、１０，２００、１０，２０１、１０，２０２となる。同様に、Ｌｏｏｐ＿Ｘの第１の反復中にテストスーツＣＣＣに割り当てられるテスト番号は、１０，２２０、１０，２２１、１０，２２２となる。Ｌｏｏｐ＿ＸとＬｏｏｐ＿Ｙの第１の反復中にテストスーツＤＤＤに割り当てられるテスト番号は、１２，０００、１２，００５、１２，０１０、すなわち５ずつインクリメントされた数になる。最後に、テストスーツＥＥＥに割り当てられたテスト番号は整数１２００、１２０１、１２０２を含む。
【００３８】
いくつかのテストフローに関しては、テストフローの異なるコンテキストが故意または偶然に、同じテスト番号範囲を共有しうることに注意されたい。しかし、他のテストスーツがすでにその範囲から番号を引き出しているかどうかにかかわらず、各サブテストはその範囲から「次の番号」を引き出すので、２つのテストスーツに割り当てられたテスト番号は競合しない。
【００３９】
さらに、２つ以上のテストスーツが同じベース番号を有することがあるばかりでなく、重複または間に挟まれたテスト番号範囲と関連づけられることもあることに注意されたい。たとえば、２つのテストスーツがそれぞれ１２００と１２０１のベース番号、５のインクリメントに関連づけられている場合は、一方のテストスーツをテスト番号１２００、１２０５、１２１０に関連づけ、他のテストスーツをテスト番号１２０１、１２０６、１２１１に関連づけることができる。また、ベース番号１２００と１３０１、２のインクリメントにそれぞれ関連づけられたテストスーツからも、同様なテスト番号の重複が起きる場合がある。
【００４０】
現在のテスト番号範囲についてコンパイルされたベース番号が新しい場合は、そのベース番号を使用してテスト番号範囲のデータベース７００中で新しいテスト番号範囲を初期化することができる。ついで、データベース７００中の各テスト番号範囲について、そのテスト番号範囲から割り当てられたテスト番号をトラッキングする（突きとめる）ことができる。このための１つの方法は、各範囲７０２をその範囲から割り当てられた最大のテスト番号７０４と共に記憶することである。ついで、ある範囲から新しいテスト番号を割り当てるたびに、以前の最大のテスト番号をインクリメントすることができる。インクリメントは、ユーザがテストフローに割り当てたテストファクタに依存して、デフォルトのインクリメントであってもよいし、たとえば、現在のテストフローコンテキストのレベルと関連づけられたインクリメントなど、テストフローの特定のレベル（複数可）についてユーザが指定したインクリメントであってもよい。
【００４１】
テスト番号を結果に割り当てると、各テスト番号と、その導出元のベース番号（すなわち、このベース番号からテスト番号が得られる）を共に記憶することによって、テスト番号データベースをコンパイルする（たとえば、まとめる）ことができる。オプションとして、テスト結果、テスト番号、テスト番号の導出元のベース番号をすべて同じデータベース内に記憶するように、テスト番号データベースと結果データベースを統合することができる。このようなデータベース８００の一部を図８に示す（図８において"pass"、"fail"は、それぞれ、「合格」、「不合格」を表す）。代替的には、テスト番号、テストフローコンテキスト情報、テスト番号の導出元のベース番号をすべて同じデータベースに記憶するように、テスト番号データベースをテストフローコンテキスト情報と統合することができる。このデータベースの形式を図１０に示す。
【００４２】
データベース８００または１０００を記憶した後でこの後のテストフローを実行する前に、データベース８００または１０００を読み出して、その中に記憶された種々のベース番号を識別することができる。各識別されたベース番号について、テスト番号範囲を初期化し、データベース８００または１０００を解析して、テスト番号範囲からすでに得られているテスト番号の範囲を決定することができる。ついで、その後のテストフロー実行中に、初期化されたテスト番号範囲を使用して、初期化されたテスト番号範囲に対応する任意の新しいテスト番号を割り当てることができる。
【００４３】
１実施形態では、方法４００は、Ｒｏｂｅｒｔ  Ｓ．Ｋｏｌｍａｎらによる、「Method and Apparatus for Assigning Test Numbers」（代理人整理番号第１００４０４３３−１号。本出願と同日に提出された）という題名の米国特許出願に開示されているテスト番号を割り当てるための方法と組み合わせることができる。図９はこの組合せに従った、テスト番号を割り当てるための第２の例示的な方法９００を示す。方法９００では、テストフローの実行中、現在のテストフローコンテキスト情報を維持する（９０２）。テストフロー内のサブテストが実行されると、１）サブテストの識別子及び２）現在のテストフローコンテキスト情報を含むインデックス情報を使用してテスト番号のデータベースにインデックスを付ける（９０４）。インデックス情報に対応するテスト番号がデータベースに存在する場合は、そのテスト番号をサブテストの結果に割り当てる（９０６）。インデックス情報に対応するテスト番号がデータベースに存在しない場合は、新しいテスト番号を生成する（９０８）。新しいテスト番号は以下のように生成される。現在のテストフローコンテキストの１つまたは複数のレベルに対して１つまたは複数のテスト番号ファクタが指定されている場合は、そのテスト番号ファクタを使用して現在のテスト番号範囲に対するベース番号を決定する（９１０）。そうでない場合は、ベース番号をデフォルトのベース番号に設定する。次に、新しいテスト番号を、現在のテスト番号範囲の中の次のテスト番号に設定する（９１２）。
【００４４】
新しいテスト番号を生成した後（９０８）、新しいテスト番号を使用して、テスト番号のデータベースにインデックスを付ける（９１４）。新しいテスト番号がデータベースにエントリとして現われる場合は、上記のインデックス情報を、そのエントリに関連づけられた一意的な識別子と比較する（９１６）。インデックス情報が一意的な識別子と一致する場合は、新しいテスト番号をサブテストに割り当てる（９１８）。インデックス情報が一意的な識子と一致しない場合は、１）新しいテスト番号によってインデックスを付けられた競合トラッキング値に応じて新しいテスト番号を自動的に調節し（９２０）、２）調節された新しいテスト番号をサブテストに割り当て（９２０）、３）競合トラッキング値を更新する（９２０）。１実施形態では、装置３００（図３）を使用して手順９１４から９２０を実行する。
【００４５】
再び例示的なテストフロー５００に戻ると、テストフロー５００の第１（または最初）のサブテストが実行されると、サブテストの識別子（Ｓｕｂｔｅｓｔ１）と現在のテストフローコンテキスト情報（ＡＡＡ）とを含むインデックス情報を使用してテスト番号のデータベースにインデックスを付ける。これがテストフロー５００の第１（または最初）の実行である場合は、データベースは空であり、新しいテスト番号（例えば１）をＳｕｂｔｅｓｔ１の結果に割り当てる。また、新しいテスト番号（１）とインデックス情報（ＡＡＡ：Ｓｕｂｔｅｓｔ１）をデータベース内で関連づける。テストフロー５００の第１の実行中にこれらのステップは進行するが、各連続的なインデックスを使用するとデータベースの「ミス」が生じ、これによって、新しいテスト番号が生成され、これに関連づけられたインデックス情報（及び、おそらくは、新しいテスト番号の導出元のベース番号）がデータベースに追加される。したがって、テストフロー５００の第１の実行の後に、図１０に示すテスト番号のデータベース１０００が生成され、図１１に示す競合トラッキングテーブル１１００も生成されている。競合トラッキングテーブル１１００は、テスト番号のリスト（たとえば１１０２）、および、これらに対応する競合トラッキング値（たとえば１１０４。各々は新しいテスト番号が生成されると「１」に初期化することができる）を含むことに注意されたい。同時に、各々の新しく生成されたテスト番号は、対応するサブテストのテスト結果に割り当てられ、この結果、図１２に示すテスト結果のデータベース１２００が生成される。図１２に示されたテスト結果はすべて「合格」または「不合格」の用語で表されているが、実際のテストを実行したテスト結果は、電圧測定値、電流測定値、インピーダンス測定値、その他の種類のテスト結果を追加または代替として含むことができる。
【００４６】
テストフロー２００の次の実行中、おそらくは、テストフロー２００の編集後に、上記のように競合トラッキングテーブル１１００を使用して、競合するテスト番号が新しいテスト番号に自動的に調節されていることを確認することができる。
【００４７】
好ましくは、テストスーツ内の各サブテストには一意的なサブテスト名を提供し、十分なテストフローコンテキスト情報を維持して、テスト番号のデータベース１０００への各インデックスが一意的なサブテスト識別子を確実に形成するようにする。また、データベース１０００に入力された各々の新しいテスト番号が、データベース中の他のすべてのテスト番号と一意的に区別されることが望ましい。
【００４８】
本発明によるテスト番号の競合を処理するための装置(100)は、コンピュータ読み取り可能媒体に記憶されたプログラムコードを含む。コード(102)は、第１のテスト番号と第２のテスト番号との衝突（上記では「競合」と記載した）に応答して、第１のテスト番号に関連する衝突トラッキング値に応じて第２のテスト番号を自動的に調節し、それによって、衝突を解消する。また、衝突に応答して、コード(102)は、衝突トラッキング値を更新する。テスト番号の衝突を処理するための他の方法(900)及び装置(200,300)も開示される。
【００４９】
上記の方法のうち任意の方法を、プログラムコードを使用して実施できることに注意されたい。
【００５０】
本明細書において、本発明の例示的かつ現在のところ好ましい実施形態について詳述したが、本発明の概念を、種々の変形態様で具現化し、使用することができること、及び、添付の特許請求の範囲は、従来技術による限定を除いて、そのような変形態様も含むことが意図されていることを理解されたい。
【図面の簡単な説明】
【００５１】
【図１】テスト番号競合を処理するための例示的な装置を示す図である。
【図２】図１に示す装置の代替実施形態を示す図である。
【図３】図１に示す装置の代替実施形態を示す図である。
【図４】テスト番号を割り当てるための例示的な方法を示す図である。
【図５】例示的なテストフローを示す図である。
【図６】図５のテストフローのテストフローコンテキスト情報の列を示す図である。
【図７】テスト番号範囲の例示的なデータベースを示す図である。
【図８】図５のテストフロー実行中に形成されうる例示的なテスト番号データベースの一部を示す図である。
【図９】テスト番号を割り当てるための第２の例示的な方法を示す図である。
【図１０】図５のテストフローの実行に応答して生成されうるテスト番号のデータベースを示す図である。
【図１１】図５のテストフローの実行に応答して生成されうる例示的な競合トラッキングテーブルを示す図である。
【図１２】図５のテストフローの実行に応答して生成されうるテスト結果のデータベースを示す図である。
【符号の説明】
【００５２】
１００、２００、３００  装置
１０２〜１０６  コード
１０８  データベース
【図１】
2005321387.tif 000005
【図２】
2005321387.tif 000006
【図３】
2005321387.tif 000007
【図４】
2005321387.tif 000008
【図５】
2005321387.tif 000009
【図６】
2005321387.tif 000010
【図７】
2005321387.tif 000011
【図８】
2005321387.tif 000012
【図９】
2005321387.tif 000013
【図１０】
2005321387.tif 000014
【図１１】
2005321387.tif 000015
【図１２】
2005321387.tif 000016