(57)【要約】【課題】テスト番号を割り当てるための方法を提供する。【解決手段】テスト番号を割り当てるための方法において、現行のテストフローコンテキスト情報３００は、テストフロー２００の実行中、維持される（１０２）。テストフロー２００内のサブテストが実行されると、テスト番号のデータベース４００が、（１）サブテストの識別子と（２）現行テストフローコンテキスト情報３００とを含む索引情報を使用して索引付けされる（１０４）。索引情報に対応するテスト番号がデータベース４００内に存在する場合、このテスト番号はサブテストの結果に割り当てられる（１０６）。索引情報に対応するテスト番号がデータベース４００内に存在しない場合は、新しいテスト番号がサブテストの結果に割り当てられ（１０８）、データベース４００内で索引情報と新しいテスト番号とが関連付けられる。【選択図】図１
2005321396.tif 000002
【特許請求の範囲】
【請求項１】
テスト番号を割り当てるための方法であって、
テストフローの実行中、現行テストフローコンテキスト情報を維持するステップと、
前記テストフロー内のサブテストを実行すると、（ｉ）該サブテストの識別子と（ｉｉ）前記現行テストフローコンテキスト情報とを含む索引情報を使用して、テスト番号のデータベースに索引を付けるステップと、
前記索引情報に対応するテスト番号が前記データベース内に存在する場合、該テスト番号を前記サブテストの結果に割り当てるステップと、
前記索引情報に対応するテスト番号が前記データベース内に存在しない場合は、新しいテスト番号を前記サブテストの結果に割り当て、前記データベース内で前記索引情報と該新しいテスト番号とを関連付けるステップと、
を含む、方法。
【請求項２】
前記索引情報が一意のテスト識別子を形成する、請求項１に記載の方法。
【請求項３】
前記テスト番号のデータベースを記憶するステップと、
後続のテストフロー実行時に、前記データベースからテスト番号を引き出すステップと、
をさらに含む、請求項１に記載の方法。
【請求項４】
前記テストフローコンテキスト情報がテストスイート指示子を含む、請求項１に記載の方法。
【請求項５】
前記テストフローコンテキスト情報が、複数のループ・レイヤの各々に対するループ反復指示子を含む、請求項１に記載の方法。
【請求項６】
前記現行テストフローコンテキスト情報を維持するステップが、
前記テストフロー実行時の、ループ内への反復入力に基づき、該ループのコンテキスト情報をインクリメントするステップ、
を含む、請求項１に記載の方法。
【請求項７】
コンピュータ可読媒体と、
前記コンピュータ可読媒体上に記憶されたプログラムコードであって、
テスト番号に対するコールに応答して、（ｉ）サブテストの識別子と（ｉｉ）現行テストフローコンテキスト情報とを含む索引情報を使用して、テスト番号のデータベースに索引を付けるためのコードと、
テスト番号を前記データベースから検索した後、該テスト番号を返すことにより前記コールに応じるためのコードと、
前記データベースに索引を付けることに失敗すると、新しいテスト番号を生成し、該新しいテスト番号を返すことにより前記コールに応じ、前記データベース内で前記索引情報と該新しいテスト番号とを関連付けるためのコードと、
を含むプログラムコードと、
を含むテスト番号エンジン。
【請求項８】
前記プログラムコードが、前記現行テストフローコンテキスト情報を維持するためのデータ構造を確立するためのコードをさらに含む、請求項７に記載のテスト番号エンジン。
【請求項９】
前記プログラムコードが、ループを再入力するテストフローの実行に応答して前記現行テストフローコンテキスト情報のループ反復数をインクリメントするためのコードをさらに含む、請求項８に記載のテスト番号エンジン。
【請求項１０】
前記プログラムコードが、（ｉ）新しいテストフローコンテキストを前記データ構造内に入れ且つ（ｉｉ）抜け出たテストフローコンテキストを前記データ構造からポップするためのコードをさらに含む、請求項８に記載のテスト番号エンジン。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テスト番号の割り当てに関する。
【背景技術】
【０００２】
回路テストの形態によっては、多量のテスト結果をエンジニアにもたらす。エンジニアが、こうしたテスト結果を管理および参照するのを支援するには、各々のテスト結果をテスト番号と対応させると良い。テスト番号は、エンジニアが、あるテスト結果を他のテスト結果と区別するのに役立ち、時には、エンジニアが、結果を生成したテストを識別するのを支援することができる。場合によっては、エンジニアは、たとえば、「５００シリーズ」テスト番号をすべての漏れテストに割り当てるなどにより、テスト番号を使用して特定のテスト結果を分類またはグループ化することができる。しかし、一般に、こうして分類またはグループ化されるテスト番号は、手動で割り当てなければならない。
場合によっては、テスト番号を自動的に生成して、各々の新しいテスト結果に次の連続したテスト番号を割り当てることができる。しかし、たとえば、異なるテスト条件を満たすため、同一テスト集合を複数回実施するが特定のテストをある回でスキップする場合、同一テストの実行別に、異なるテスト番号が当該テストのテスト結果に対応付けられることになる。さらに、場合によっては、テスト制御（たとえば、テスト方法、テスト機能、またはユーザの手順）が複数のテスト結果を生じる可能性がある。条件が異なると、異なる結果が生成される場合があるので、どの「サブテスト」がどの結果を生成したかを特定できることが望ましい。
【０００３】
しかし、従来のテスト番号付けシステムは、一般に、こうした結果の各々に同じテスト番号を割り当てるか、または異なる「自動」テスト番号を割り当てており、こうしたテスト番号は、黙示的な情報値を持たず、場合によっては、後に生成されるテスト結果とそのテスト番号との間の関係を歪曲していた。
【発明の開示】
【０００４】
本発明の一態様は、テスト番号を割り当てるための方法に具現される。この方法によると、現行のテストフローコンテキスト情報は、テストフローの実行中、維持される。テストフロー内のサブテストを実行した後、テスト番号データベースは、（１）サブテストの識別子と（２）現行テストフローコンテキスト情報とを含む索引情報を使用して索引付けされる。索引情報に対応するテスト番号がデータベース内に存在する場合、このテスト番号はサブテストの結果に割り当てられる。索引情報に対応するテスト番号がデータベース内に存在しない場合は、新しいテスト番号がサブテストの結果に割り当てられ、データベース内で索引情報と新しいテスト番号とが関連付けられる。
【０００５】
本発明のもう１つの態様は、テスト番号エンジンに具現される。テスト番号エンジンは、コンピュータ可読媒体と、コンピュータ可読媒体上に記憶されたプログラムコードとを含む。プログラムコードは、テスト番号に対するコールに応答して、（１）サブテスト識別子と（２）現行テストフローコンテキスト情報とを含む索引情報を使用して、テスト番号データベースに索引を付けるためのコードを含む。プログラムコードは、テスト番号をデータベースから検索した後、テスト番号を返すことによりコールに応じるためのコードをさらに含む。さらに、プログラムコードは、データベースに索引を付けることに失敗すると、新しいテスト番号を生成し、新しいテスト番号を返すことによりコールに応じ、データベース内で索引情報と新しいテスト番号とを関連付けるためのコードを含む。
【０００６】
本発明のその他の実施態様も開示する。
【発明を実施するための最良の形態】
【０００７】
本発明の具体的かつ現在好ましい実施態様を図示する。
【０００８】
図１は、テスト番号を割り当てるための方法１００を示す。方法１００によると、現行のテストフローコンテキスト情報は、テストフローの実行中、維持される１０２。本明細書で定義するとおり、「テストフロー」とは、回路テスト時に実行されるテストのタイプ、番号、または順序を指定するために使用されるテストプログラムの一部である。テストフローコンテキスト情報は、テストプログラムのどの部分が実行されているかを定義するのに役立つ何らかの情報を含む。一例として、テストフローコンテキスト情報は、テストスイート指示子（test suite designator）、ポート指示子、ベクトルラベル、ベクトル指示子またはピン指示子などの情報を含む。テストフローコンテキスト情報は、テストフローの実行時に入力された多数のループ・レイヤ（たとえば、入れ子状ループ）の各々に対するループ指示子および／またはループ反復指示子も含む。本明細書で使用する場合、「指示子」という用語は、テストスイート、ループ、またはその他のテストフローコンテキストを指示するために使用できる文字列、数値、またはその他の何らかの手段を含む。
【０００９】
図２は、テストフローコンテキスト情報が維持される例示的なテストフロー２００を示す。一例として、テストフロー２００は、Ａｇｉｌｅｎｔ  ９３０００  ＳＯＣシリーズテスタ（米国、カリフォルニア州、パロアルトのアジレント・テクノロジーズ・インク（Ａｇｉｌｅｎｔ  Ｔｅｃｈｎｏｌｏｇｉｅｓ，Ｉｎｃ．）が製造）のシステムオンチップテストフローであることができる。テストフロー２００は、それぞれＡＡＡ、ＢＢＢ、およびＣＣＣと命名された３つのテストスイート２０２、２０４、２０６を含む。テストスイート２０２〜２０６の各々は、多数のサブテストを含むか、および／または指定する機能を果たし、１つまたは複数のテスト制御（たとえば、テスト方法、テスト機能、またはユーザの手順）を含む。テストフロー２００は、それぞれＬｏｏｐ＿ＸおよびＬｏｏｐ＿Ｙと命名された２つのループ２０８、２１０も含む。一例として、各々のループ２０８、２１０は、そのループを３回反復するように指定する（つまり、１．．３）。
【００１０】
図３は、テストフロー２００の実行時に、方法１００により維持されるテストフローコンテキスト情報３００の進行を示す。最初のテストフローコンテキスト３０２は、単に「ＡＡＡ」であり、つまり最初に遭遇するテストスイートの名称であることに注意する。テストスイートＡＡＡが実行された後、テストフローコンテキストは「Ｌ１」に変化し、これは、Ｌｏｏｐ＿Ｘの最初の反復を示す。
【００１１】
テストスイートＢＢＢに入ると、テストフローコンテキストは「ＢＢＢ：Ｌ１」に変化する。読みやすくするために、図３に示すテストフローコンテキストは、現行テストスイートの名称をコンテキストの初めに配置するという規約を採用する。しかし、これは、方法１００では確実に不要であり、行なう必要はない。
【００１２】
最初にＬｏｏｐ＿Ｙに入ると、テストフローコンテキストは「Ｌ１：Ｌ１」に変化する。したがって、Ｌｏｏｐ＿ＸおよびＬｏｏｐ＿Ｙのアイデンティティは、テストフローコンテキスト内に維持されたループ反復数および順序から推論される。しかし、ループのアイデンティティは、コンテキストを「Ｘ１：Ｙ１」と表すなど、特定性を使って呼び出すことも可能である。
【００１３】
テストフローの実行時、最終的には、１つまたは複数のサブテストが実行される。「サブテスト」は、本明細書で定義するように、複数のテスト結果を生成するテストであるが、好ましくは、単一のテスト結果のみを生成するテストまたはテストの一部である。
【００１４】
サブテストの実行後、方法１００は次に、（１）サブテストの識別子と（２）現行テストフローコンテキスト情報を含む索引情報を使用して、テスト番号のデータベースに索引を付ける１０４。索引情報に対応するテスト番号がデータベース内に存在する場合、テスト番号はサブテストの結果に割り当てられる１０６。索引情報に対応するテスト番号がデータベース内に存在しない場合、新しいテスト番号がサブテストの結果に割り当てられ１０８、索引情報および新しいテスト番号がデータベース内で関連付けられる。
【００１５】
次に、図２に示すテストスイート２０２〜２０６の各々は、Ｓｕｂｔｅｓｔ１、Ｓｕｂｔｅｓｔ２、およびＳｕｂｔｅｓｔ３として識別される３つのサブテストを含む。同じ名称のサブテストがテストスイート２０２〜２０６の各々に現れるが、これらは必ずしも同じサブテストである必要はない（おそらく、同じサブテストではない）。テストフロー２００内の第１のサブテストを実行した後、サブテストの識別子（Ｓｕｂｔｅｓｔ１）および現行テストフローコンテキスト情報（ＡＡＡ）を含む索引情報は、テスト番号のデータベースに索引を付けるために使用される。これが、テストフロー２００の第１の実行である場合、データベースは空であり、新しいテスト番号（たとえば、１）がＳｕｂｔｅｓｔ１の結果に割り当てられる。新しいテスト番号（１）および索引情報（ＡＡＡ：Ｓｕｂｔｅｓｔ１）もまたデータベース内で関連づけられる。テストフロー２００の第１の実行時、データベース「ミス（miss）」を生ずることになる各連続する索引を使用して、これらのステップは継続し、その結果、新しいテスト番号およびその対応する索引情報がデータベースに追加される。したがって、テストフロー２００の第１の実行後、図４に示すテスト番号のデータベース４００が生成された。同時に、新たに生成された各々のテスト番号が、番号に対応するサブテストのテスト結果に割り当てられ、その結果、図５に示すテスト結果のデータベース５００が生じる。図５に示すテスト結果はすべて、「ｐａｓｓ（合格）」または「ｆａｉｌ（不合格）」の観点で提示されるが、実際のテストランのテスト結果は、電圧測定値、電流測定値、インピーダンス測定値、およびその他の種類のテスト結果をさらに、または代わりに含むことができる。
【００１６】
テストフロー２００の実行後、テスト番号のデータベース４００およびテスト結果のデータベース５００が共に記憶される。この方法では、データベース４００内のテスト番号はテストランからテストランまで持続する。後続のテストフローの実行時、テスト番号は、データベース４００から引き出されるか、および／またはデータベース４００に追加される。その後実行されるテストフローがテストフロー２００である場合、テストフローのサブテストの結果に対応するテスト番号は、テストフローのサブテストの結果に以前に対応していた同じテスト番号である。たとえば、テストスイート内の条件命令によって、そのサブテストの特定のどれかが、テストフロー２００の第２の実行時にスキップされる場合、実行されるこれらのサブテストには、依然として、テストフロー２００の以前の実行時に割り当てられた同じテスト番号が割り当てられる。つまり、テスト番号は、単に「実行順」ベースで割り当てられるのではなく、「コンテキスト」ベースで割り当てられる。
【００１７】
次に、テストフロー２００に対する編集の可能性を考える。図６に示すテストフロー６００は、図２に示すテストフロー２００の編集バージョンであり、この編集は、ＤＤＤと命名されたテストスイート６０２の追加である。テストフロー６００のテストフローコンテキスト７００の進行を図７に示す。編集されたテストフロー６００の実行時、同じテスト番号が同じサブテストに割り当てられ、新しいサブテストには新しいテスト番号が割り当てられる。次に、図８に示すように、新しいテスト番号（たとえば、テスト番号４０〜４８）をデータベース４００に追加する。したがって、２つのテストフロー２００、６００は異なるが、それぞれのテスト結果の比較は容易な作業である。テストフロー２００に対するその他の編集も可能である（たとえば、テストスイートの順序の変更）。しかし、テストスイートをループ内に移動させるか、またはループから移動させると、テストスイートのコンテキストが変化し、その結果、テストフロー２００をその後実行した後、テストスイートは異なる１つ（または複数）のコンテキストに関連付けられる。したがって、テストフローを異なるコンテキスト内で実行させると、新しいテスト番号がデータベース４００に追加される。
【００１８】
好ましくは、テストスイート内のサブテストの各々に一意のサブテスト名を与え、十分なテストフローコンテキスト情報を維持して、テスト番号のデータベースに入力される各々の索引が、一意のサブテスト識別子を形成するようにする。また、データベースに入力される各々の新しいテスト番号は、データベース内のその他のすべてのテスト番号とは異なることが好ましい。しかし、方法１００は、多くの場合、上記の制御が維持されない場合でも、有用なテスト番号を提供することが多い。
【００１９】
図９は、一例として、方法１００を実施するために使用できるテスト番号エンジン９００を示す。テスト番号エンジン９００は、コンピュータ可読媒体（たとえば、磁気もしくは光ディスク、固定もしくは取外し可能ディスク、またはランダムアクセスメモリもしくは読出し専用メモリ（ＲＡＭもしくはＲＯＭ））上に記憶されたプログラムコードに具現される。実施態様によっては、テスト番号エンジン９００のプログラムコードは、１つまたは複数のコンピュータシステムに対応する様々なコンピュータ可読媒体間に分散させることができる。
【００２０】
図示のとおり、テスト番号エンジン９００は、テスト番号に対するコールに応答し、（１）サブテストの識別子と（２）現行テストフローコンテキスト情報とを含む索引情報を使用して、テスト番号のデータベース９０４に索引を付けるコード９０２を含む。テスト番号エンジン９００は、テスト番号をデータベース９０４から検索した後、テスト番号を返すことによりコールに応じるためのコード９０６も含む。テスト番号エンジン９００は、データベース９０４に索引を付けるのに失敗すると、新しいテスト番号を生成し、新しいテスト番号を返すことによりコールに応じ、データベース内で索引情報と新しいテスト番号とを関連付けるコード９０８を更に含む。任意に、テスト番号エンジン９００は、現行テストフローコンテキスト情報を維持するためのデータ構造を確立するコード９１０も含むことができる。
【００２１】
方法１００およびテスト番号エンジン９００は、多くの方法で現行テストフローコンテキスト情報を維持することができる。そのための１つの方法は、新しいテストフローコンテキストが入力されるごとに、新しいテストフローコンテキストをデータ構造内に入れることである（たとえば、「Ｐｕｓｈ（）」操作を介して）。テストフローコンテキストを去ると、当該テストフローコンテキストはデータ構造からポップされる（たとえば、「Ｐｏｐ（）」操作を介して）。したがって、テストフローコンテキスト情報は、同様にデータスタックに維持される。しかし、データ構造への入力によっては、インクリメントするか、さもなければ操作する必要がある。たとえば、ループ内への反復入力に基づき、当該ループのコンテキスト情報（たとえば、ループ反復回数）をインクリメントする必要のある場合がある。
【００２２】
本発明の具体的な実施態様および現在好ましい実施態様について、本明細書で詳細に説明したが、本発明のコンセプトは、他の方法で様々に実施および使用することができると考えるべきであり、添付の請求の範囲は、先行技術により制限されない限り、こうした変形を含むことを意図している。
【図面の簡単な説明】
【００２３】
【図１】テスト番号を割り当てるための例示的な方法を示す図である。
【図２】例示的なテストフローを示す図である。
【図３】図２のテストフローに関するテストフローコンテキスト情報の進行を示す図である。
【図４】図２のテストフローの実行に応じて生成されるテスト番号のデータベースを示す図である。
【図５】図２のテストフローの実行に応じて生成されるテスト結果のデータベースを示す図である。
【図６】図２のテストフローの編集バージョンを示す図である。
【図７】図６のテストフローに関するテストフローコンテキスト情報の進行を示す図である。
【図８】図６のテストフローの実行後の、図４に示されるテスト番号のデータベースの変更を示す図である。
【図９】テスト番号に対するコールに応じて、テスト番号を返すための例示的なテスト番号エンジンを示す図である。
【符号の説明】
【００２４】
２００：テストフロー
３００：テストフローコンテキスト情報
４００：データベース
【図１】
2005321396.tif 000003
【図２】
2005321396.tif 000004
【図３】
2005321396.tif 000005
【図４】
2005321396.tif 000006
【図５】
2005321396.tif 000007
【図６】
2005321396.tif 000008
【図７】
2005321396.tif 000009
【図８】
2005321396.tif 000010
【図９】
2005321396.tif 000011