(57)【要約】      （修正有）【課題】複数のユーザ間で共有され、且つ、複数のテスタスライスを含むテスト環境を提供する。【解決手段】自動テストを行うためのシステムは、テストプログラムをユーザから制御サーバにロードすることが可能なユーザコンピュータを備える。当該テストプログラムは複数のテストフローを含む。当該システムはさらに、複数のプリミティブを配置するテスタを備える。制御サーバは、ユーザコンピュータおよびテスタに通信可能に接続され、複数のプリミティブのうちの一プリミティブにテストプログラムをダウンロードすることが可能である。制御サーバはさらに、当該一プリミティブ内の第１のＤＵＴに対して複数のテストフローのうちの第１のテストフローを実行し、同時に、当該一プリミティブ内の第２のＤＵＴに対して複数のテストフローのうちの第２のテストフローを実行することも可能である。【選択図】図５
2018200305.tif 000002
【特許請求の範囲】
【請求項１】
自動テスト装置（ＡＴＥ）を使用してテストを行うための方法であって、
テストプログラムをユーザコンピュータから制御サーバにロードする段階であって、前記制御サーバは、テスタ内の複数のプリミティブと通信し、前記テストプログラムは、複数のテストフローを含む、段階と、
前記テストプログラムを前記複数のプリミティブのうちの一プリミティブにダウンロードする段階と、
前記一プリミティブ内の第１のＤＵＴに対して前記複数のテストフローのうちの第１のテストフローを実行する段階と、
前記一プリミティブ内の第２のＤＵＴに対して前記複数のテストフローのうちの第２のテストフローを同時に実行する段階と
を備える方法。
【請求項２】
前記一プリミティブ内の各ＤＵＴに対して異なるテストフローを同時に実行する段階
をさらに備える、請求項１に記載の方法。
【請求項３】
前記テストプログラムは、標準テストインタフェース言語（ＳＴＩＬ）ファイルを含み、前記複数のテストフローは、前記ＳＴＩＬファイル内で定義される、請求項１または２に記載の方法。
【請求項４】
各テストフローは、複数のプログラムシーケンスを有し、前記複数のプログラムシーケンスの段階は、前処理段階、テスト段階、後処理段階、およびデバッグ段階からなる群から選択され得る、請求項１から３のいずれか一項に記載の方法。
【請求項５】
各プログラムシーケンスは、複数のセグメントを含み、前記複数のセグメントの各々は、タグ付けされ、識別番号を使用して識別されるよう動作可能であり、前記識別番号は、前記複数のテストフローに実行順序の付番を行うために使用される、請求項４に記載の方法。
【請求項６】
前記複数のテストフローは、前記ユーザコンピュータにおいて動作するグラフィカルユーザインタフェース（ＧＵＩ）を使用してユーザが編集できる、請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記複数のテストフローは、前記制御サーバにおいて動作するＧＵＩを使用して、ユーザが編集できる、請求項１から５のいずれか一項に記載の方法。
【請求項８】
前記複数のテストフローは、前記ユーザコンピュータにおいて動作するＧＵＩを使用して、ユーザが実行できる、請求項１から５のいずれか一項に記載の方法。
【請求項９】
自動テストを行うためのシステムであって、
テストプログラムをユーザから制御サーバにロードするよう動作可能なユーザコンピュータであって、前記テストプログラムは、複数のテストフローを含む、ユーザコンピュータと、
複数のプリミティブを配置するテスタと、
制御サーバであって、前記ユーザコンピュータおよび前記テスタに通信可能に接続され、前記テストプログラムを前記複数のプリミティブのうちの一プリミティブにダウンロードするよう動作可能であり、さらに、前記一プリミティブ内の第１のＤＵＴに対して前記複数のテストフローのうちの第１のテストフローを実行し、同時に、前記一プリミティブ内の第２のＤＵＴに対して前記複数のテストフローのうちの第２のテストフローを実行するよう動作可能な制御サーバと
を備えるシステム。
【請求項１０】
前記制御サーバはさらに、前記一プリミティブ内の各ＤＵＴに対して異なるテストフローを同時に実行するよう動作可能である、請求項９に記載のシステム。
【請求項１１】
前記テストプログラムは、標準テストインタフェース言語（ＳＴＩＬ）ファイルを含み、前記複数のテストフローは、前記ＳＴＩＬファイル内で定義される、請求項９または１０に記載のシステム。
【請求項１２】
各テストフローは、複数のプログラムシーケンスを有し、前記複数のプログラムシーケンスの段階は、前処理段階、テスト段階、後処理段階、およびデバッグ段階からなる群から選択され得る、請求項９から１１のいずれか一項に記載のシステム。
【請求項１３】
各プログラムシーケンスは、複数のセグメントを含み、前記複数のセグメントの各々は、タグ付けされ、識別番号を使用して識別されるよう動作可能であり、前記識別番号は、前記複数のテストフローに実行順序の付番を行うために使用される、請求項１２に記載のシステム。
【請求項１４】
前記複数のテストフローは、前記ユーザコンピュータにおいて動作するグラフィカルユーザインタフェース（ＧＵＩ）を使用してユーザが編集でき、前記ユーザコンピュータは、標準ＩＰ接続を使用して前記制御サーバと通信可能に接続される、請求項９から１３のいずれか一項に記載のシステム。
【請求項１５】
前記複数のテストフローは、前記制御サーバにおいて動作するＧＵＩを使用して、ユーザが編集できる、請求項９から１３のいずれか一項に記載のシステム。
【請求項１６】
前記複数のテストフローは、前記制御サーバにおいて動作するＧＵＩを使用して、ユーザが実行できる、請求項９から１３のいずれか一項に記載のシステム。
【請求項１７】
自動テストを行うためのシステムであって、
テストプログラムをユーザから制御サーバにロードするよう動作可能なユーザコンピュータであって、前記テストプログラムは、複数のテストフローを含む、ユーザコンピュータと、
複数のテスタスライスを配置するテスタと、
制御サーバであって、前記ユーザコンピュータおよび前記テスタに通信可能に接続され、前記テストプログラムを前記複数のテスタスライスのうちの一テスタスライスにダウンロードするよう動作可能であり、さらに、前記一テスタスライス内の各ＤＵＴに対して異なるテストフローを同時に実行するよう動作可能な制御サーバと
を備えるシステム。
【請求項１８】
前記テストプログラムは、標準テストインタフェース言語（ＳＴＩＬ）ファイルを含み、前記複数のテストフローは、前記ＳＴＩＬファイル内で定義される、請求項１７に記載のシステム。
【請求項１９】
各テストフローは、複数のプログラムシーケンスを有し、前記複数のプログラムシーケンスの段階は、前処理段階、テスト段階、後処理段階、およびデバッグ段階からなる群から選択され得る、請求項１７または１８に記載のシステム。
【請求項２０】
各プログラムシーケンスは、複数のセグメントを含み、前記複数のセグメントの各々は、タグ付けされ、識別番号を使用して識別されるよう動作可能であり、前記識別番号は、前記複数のテストフローに実行順序の付番を行うために使用される、請求項１９に記載のシステム。
【請求項２１】
自動テスト装置（ＡＴＥ）を使用してテストを行うための方法であって、
第１のテストプランを第１のユーザコンピュータ上のグラフィカルユーザインタフェースから制御サーバにロードする段階であって、前記制御サーバは、テスタ内の複数のプリミティブと通信し、前記複数のプリミティブは、前記テスタ内の単一のラック内に配置される、段階と、
前記第１のテストプランを前記複数のプリミティブのうちの第１サブセットのプリミティブにダウンロードする段階であって、前記第１のテストプランは、複数のテストフローを含む、段階と、
第２のテストプランを第２のユーザコンピュータのグラフィカルユーザインタフェースから前記制御サーバにロードする段階と、
前記第２のテストプランを前記複数のプリミティブのうちの第２サブセットのプリミティブにダウンロードする段階と、
前記第１のテストプランおよび前記第２のテストプランを同時に実行する段階と、
前記第１サブセットのプリミティブ内の第１のＤＵＴに対して、前記複数のテストフローのうちの第１のテストフローを実行する段階と、
前記第１サブセットのプリミティブ内の第２のＤＵＴに対して、前記複数のテストフローのうちの第２のテストフローを同時に実行する段階と
を備える方法。
【請求項２２】
前記第１のテストプランが動作中であり、前記第２のテストプランが実行を完了している間、
第３のテストプランを第３のユーザコンピュータのグラフィカルユーザインタフェースから前記制御サーバにロードする段階と、
前記第３のテストプランを前記複数のプリミティブのうちの第３サブセットのプリミティブにダウンロードする段階と、
前記第１のテストプランおよび前記第３のテストプランを同時に実行する段階と
をさらに備える、請求項２１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願］
【０００２】
［関連出願の相互参照］
本出願は、発明者としてＲｏｔｅｍ  Ｎａｈｕｍ、Ｒｅｂｅｃｃａ  Ｔｏｙ、Ｐａｄｍａｊａ  Ｎａｌｌｕｒｉ、およびＬｅｏｎ  Ｃｈｅｎを挙げ、代理人整理番号ＡＴＳＹ−００５２−０１．０１ＵＳを有する、「ＴＥＳＴ  ＳＹＳＴＥＭ  ＳＵＰＰＯＲＴＩＮＧ  ＭＵＬＴＩＰＬＥ  ＵＳＥＲＳ  ＵＳＩＮＧ  ＤＩＦＦＥＲＥＮＴ  ＡＰＰＬＩＣＡＴＩＯＮＳ」と題する２０１７年４月２８日に出願された米国特許出願第１５／５８２，３１６号に関連するものである。当該出願は、その全体が参照によって、全ての目的のために本明細書に組み込まれる。
【０００３】
本開示は概して、自動テスト装置の分野に関し、より具体的には、そのような装置を制御する技術に関する。
【背景技術】
【０００４】
自動テスト装置（ＡＴＥ）は、半導体ウエハもしくはダイ、集積回路（ＩＣ）、回路基板、またはソリッドステートドライブなどのパッケージングされたデバイスに対してテストを行う任意のテスト組立体であり得る。ＡＴＥ組立体は、測定を迅速に行い、次に分析され得るテスト結果を生成する自動テストを実行するために使用されてよい。ＡＴＥ組立体は、計測器に接続されたコンピュータシステムから、特注の専用コンピュータ制御システムと、電子部品を自動的にテストすること、および／またはシステムオンチップ（ＳＯＣ）のテストもしくは集積回路のテストなどの半導体ウエハのテストが可能な多数の異なるテスト機器とを含んでよい複雑な自動テスト組立体までのいずれであってもよい。ＡＴＥシステムは、デバイスのテストに費やす時間を削減してデバイスが設計されたとおりに機能することを保証し、消費者に届く前に所与のデバイス内に故障部品がないか判断するための診断ツールとして機能しもする。
【０００５】
典型的なＡＴＥシステムがデバイス（一般に被テストデバイス、またはＤＵＴと呼ばれる）をテストするとき、ＡＴＥシステムは刺激（例えば、電気信号）をデバイスに印加し、デバイスの反応（例えば、電流および電圧）をチェックする。通常、テストの最終結果は、事前に決められた許容範囲内の特定の予期される反応をデバイスが問題なく提供する場合の「合格」、または、事前に決められた許容範囲内の予期される反応をデバイスが提供しない場合の「不合格」のいずれかである。より洗練されたＡＴＥシステムは、故障したデバイスを評価して、故障の１または複数の原因を潜在的に判断することが可能である。 
【０００６】
ＡＴＥシステムが、ＡＴＥシステムの動作を指示するコンピュータを含むことは一般的なことである。通常、コンピュータは１または複数の特殊なソフトウェアプログラムを実行して、（ｉ）テスト開発環境、および、（ｉｉ）デバイステスト環境を提供する。テスト開発環境では、ユーザは通常、例えば、ＡＴＥシステムの様々な部分を制御する１または複数のファイルのソフトウェアベースの構成体（ｃｏｎｓｔｒｕｃｔ）といったテストプログラムを作成する。デバイステスト環境では、ユーザは通常、ＡＴＥシステムにテスト用の１または複数のデバイスを提供し、テストプログラムにしたがって各デバイスをテストするようＡＴＥシステムに指示する。ユーザは、ＡＴＥシステムに追加のデバイスを単に提供し、テストプログラムにしたがって追加のデバイスをテストするようＡＴＥシステムに指示することによって追加のデバイスをテストできる。したがって、ＡＴＥシステムは、ユーザが、テストプログラムに基づいて、一貫した、自動化された方式で多数のデバイスをテストすることを可能にする。
【０００７】
典型的な従来技術のテスト環境では、ＤＵＴは、制御された環境チャンバまたは「オーブン」の中に置かれる。ＤＵＴはテストヘッドのスライスに接続される。いくつかのＤＵＴが単一のスライスに接続され得て、単一のテストチャンバがいくつかのスライスを含んでよい。スライスは、テストプランにしたがってＤＵＴに対してテストを行うテスト回路を含む。オーブン内にあるとき、チャンバの制御された環境を乱さないよう、ＤＵＴはユーザにとってアクセス可能ではない。複数のスライスは概して、複数のＤＵＴに対して同一のテストプランを実行するロックステップで動作する。さらに、テストヘッドは通常、テストヘッドに直接接続され、このやり方でテストヘッドのスライスの全てを制御する単一の制御用コンピュータシステムによって制御される。制御用コンピュータは通常、ＤＵＴに対して単一のテストプランを実行する単一ユーザによって操作される。
【０００８】
このテスト環境の課題は、各テストの間、所与のテストヘッドのスライスを完全に満たすだけの十分なＤＵＴがないことが多いということである。したがって、テストの間の空きスライスは、そのような条件下では、いかなる有用な作業も行わないという点で無駄である。これらの空きは、全体的なテストスループットを低減することがある。なぜなら、非常に高価な電子機器が未使用状態だからである。これらの未使用スライスは、異なる用途には供され得ない。なぜなら、１）テストの間、チャンバ内部はアクセス可能ではないから、２）制御コンピュータはいつでも一人のユーザのみをサポートするから、および、３）スライス（それらの全て）は、一度に、通常１つのタイプのＤＵＴのみに割り当てられる１つのテストプランについてのみ動作するからである。 
【０００９】
テストチャンバは、嵩高く、高価でもある。従来のテスト環境の別の欠点は、テストチャンバを十分に利用するべく、例えば製造、エンジニアリングなどのいくつかの異なるユーザグループ間でテストチャンバを同時に共有したいと望む典型的な顧客が、それを行うことができないということである。テストスライスは、典型的なテスト環境において、一度に単一のテストプランについてのみ動作し、単一ユーザ体験のみをサポートするので、顧客は、いかなるときもテストチャンバを十分に利用できず、したがって、追加の装置を購入するか、または効率を犠牲にするかのいずれかを強いられる。要するに、従来のテストチャンバは非常に柔軟性に欠けている。
【発明の概要】
【００１０】
したがって、複数のユーザ間で共有され得るテスト環境が必要とされる。さらには、複数のテスタスライスを含み得るテスト環境が必要である。ここで、スライスの各々は、独立したテストプランを実行でき、または、テストチャンバの残りのスライスとは独立して利用され得る。また、チャンバが同時に複数のユーザによって十分に利用され得るように、テストがチャンバ内で動作している間のチャンバの内部へのアクセスを可能にするテストチャンバが必要である。最後に、テスタスライスの各々内の異なるＤＵＴが、システムにおけるその他のＤＵＴとは独立してテストフローを実行できるテスト環境が必要である。説明されたシステムの有益な態様を使用することで、それらのそれぞれに限定することなく、本発明の実施形態は、これらの課題に対処するための新規な解決手段を提供する。
【００１１】
本明細書において開示される本発明は、複数のプリミティブ（またはテスタスライス）と、関連付けられるＤＵＴインタフェースボード（ＤＩＢ）とを利用してＤＵＴをテストする。各プリミティブはモジュール式であり、それが他のプリミティブとは独立して動作することが可能であることを意味する。したがって、ラック内の複数のプリミティブのセットはそれぞれ、異なるテストプランの下で動作し、異なるＤＵＴタイプに対して動作していることさえ可能である。プリミティブは、命令、制御、管理などのために制御サーバと通信する。制御サーバは、それがサポートする様々なプリミティブのための複数のアプリケーションプログラムまたはテストプランをホストすることが可能である。プリミティブは、標準ＩＰネットワークを介してサーバと通信できる。遠隔配置され得る様々なコンピュータシステムは、標準ＩＰネットワーク接続を介してサーバにアクセスできる。加えて、１つの実施形態において、プリミティブのラックと関連付けられたＤＵＴをテストするとき、環境チャンバはもはや必要ない。したがって、いつでもＤＵＴおよびプリミティブに対して、有利に直接的なユーザ操作が可能となる。 
【００１２】
したがって、このテストプラットフォームの下では、１）プリミティブのモジュール性と、２）標準ＩＰネットワークの使用とによって、複数のプリミティブが一人のユーザにしたがって所与のテストプランの下で複数のＤＵＴをテストしている一方で、同一ラックの第２の複数のプリミティブが第２のユーザによって指示される完全に異なるアプリケーションを行っているなどのことが可能である。したがって、従来技術の未使用テスト回路と関連付けられる上述の課題は解消される。
【００１３】
さらに、本発明の１つの実施形態において、任意の所与のプリミティブ（もしくはテスタスライス）におけるＤＵＴの各々は、そのプリミティブ内のその他のＤＵＴとは異なるテストフローを実行することが可能になり、それにより、ユーザにさらなる柔軟性を提供し、テストプロセスをより効率的にする。換言すると、テスタ内の全てのＤＵＴに対して同一のテストプログラムおよび同一のテストフローを実行することが必要とされた従来のテスタとは異なり、本発明の実施形態は、プリミティブ（もしくはテスタスライス）内のＤＵＴの各々が、同一のプリミティブ内のその他のＤＵＴとは異なるテストフローを実行することを可能にする。
【００１４】
１つの実施形態において、自動テストを行うためのシステムが開示される。当該システムは、ユーザから制御サーバにテストプログラムをロードするよう動作可能なユーザコンピュータを備える。ここで、当該テストプログラムは、複数のテストフローを含む。当該システムはさらに、複数のプリミティブを配置するテスタを備える。さらに、制御サーバは、ユーザコンピュータおよびテスタに通信可能に接続され、制御サーバは、複数のプリミティブのうちの一プリミティブにテストプログラムをダウンロードするよう動作可能であり、制御サーバはさらに、当該一プリミティブ内の第１のＤＵＴに対して複数のテストフローのうちの第１のテストフローを実行し、同時に、当該一プリミティブ内の第２のＤＵＴに対して複数のテストフローのうちの第２のテストフローを実行するよう動作可能である。
【００１５】
別の実施形態において、自動テストを行うためのシステムが開示される。当該システムは、ユーザから制御サーバにテストプログラムをロードするよう動作可能なユーザコンピュータを備える。ここで、テストプログラムは複数のテストフローを含む。当該システムはさらに、複数のテスタスライスを配置するテスタを備える。さらに、制御サーバは、ユーザコンピュータおよびテスタに通信可能に接続され、制御サーバは、複数のテスタスライスのうちの一テスタスライスにテストプログラムをダウンロードするよう動作可能であり、制御サーバはさらに、当該一テスタスライス内の各ＤＵＴに対して異なるテストフローを同時に実行するよう動作可能である。
【００１６】
異なる実施形態において、自動テスト装置（ＡＴＥ）を使用してテストを行うための方法が開示される。当該方法は、ユーザコンピュータから制御サーバにテストプログラムをロードする段階であって、制御サーバは、テスタ内の複数のプリミティブと通信し、テストプログラムは、複数のテストフローを含む、段階を備える。当該方法はまた、複数のプリミティブのうちの一プリミティブにテストプログラムをダウンロードし、当該一プリミティブ内の第１のＤＵＴに対して複数のテストフローのうちの第１のテストフローを実行する段階を備える。最後に、当該方法は、当該一プリミティブ内の第２のＤＵＴに対して複数のテストフローのうちの第２のテストフローを同時に実行する段階を備える。
【００１７】
以下の詳細な説明を添付図面と併せ読むことにより、本発明の本質および利点をより良く理解できるであろう。
【図面の簡単な説明】
【００１８】
添付図面の図において、本発明の実施形態が限定としてではなく例として説明されており、図中、同様の参照番号は同様の要素を指す。
【００１９】
【図１Ａ】本発明の１つの実施形態に係る、本発明の自動テストシステムの実施形態が実装され得るコンピュータシステムである。
【００２０】
【図１Ｂ】本発明の実施形態に係る、クライアントシステムおよびサーバがネットワークに接続されてよいネットワークアーキテクチャの例のブロック図である。
【００２１】
【図２】制御された環境チャンバの中にＤＵＴが置かれた典型的なテスト環境を示す。
【００２２】
【図３】テスタスライスと、システムコントローラおよびＤＵＴとのその相互接続とについての例示的な実施形態を示す詳細な概略ブロック図である。
【００２３】
【図４Ａ】本発明の一実施形態に係る、ＤＵＴインタフェースボード（ＤＩＢ）４００とインタフェースで接続されるプリミティブを示す。
【００２４】
【図４Ｂ】複数のプリミティブを備える作業セルを示す。
【００２５】
【図５】本発明の一実施形態に係る、異なるアプリケーションを使用する複数のユーザをサポートするテストシステムを示す。
【００２６】
【図６】従来のテスタに対する、本発明の実施形態が提供する新規な改善を示す大まかな概観図である。
【００２７】
【図７】本発明の一実施形態に係るテストプログラムの様々な構成要素を示す。
【００２８】
【図８】本発明の１つの実施形態に係る、同一のテスタにおいて複数のテストプログラムを同時に実行するための例示的なコンピュータ実装プロセスのフローチャートを示す。
【００２９】
【図９】本発明の１つの実施形態に係る、同一のテスタにおいて単一のプリミティブ内部で複数のテストフローを同時に実行するための例示的なコンピュータ実装プロセスのフローチャートを示す。
【００３０】
図中、同一の記号表示を有する要素は、同一もしくは同様の機能を有する。
【発明を実施するための形態】
【００３１】
ここで、本開示の様々な実施形態を詳細に参照する。当該実施形態の例は添付図面において示されている。これらの実施形態と併せて説明するが、それらは、本開示をこれらの実施形態に限定することを意図しないことが理解されるであろう。反対に、本開示は、添付の特許請求の範囲によって定義される本開示の主旨および範囲内に含まれ得る代替例、修正例、および均等物を網羅することが意図される。さらに、本開示の以下の詳細な説明では、本開示への深い理解を提供するべく、多数の具体的な詳細が記載されている。しかしながら、本開示はこれらの具体的な詳細事項なく実施されてよいことが理解されるであろう。他の例では、本開示の態様を不必要に曖昧にしないよう、周知の方法、手順、構成要素、および回路は詳細には説明されていない。
【００３２】
以下の詳細な説明のいくつかの部分は、手順、論理ブロック、処理、および、コンピュータメモリ内のデータビットに対する演算の他の記号表現に関して提示される。これらの説明および表現は、データ処理分野の当業者によって、彼らの研究の本質を他の当業者に最も効果的に伝えるために使用される手段である。本出願において、手順、論理ブロック、プロセス、または同様のものは、所望の結果をもたらす首尾一貫した一連の段階または命令であると考えられる。段階は、物理量の物理的操作を利用するものである。通常、必ずではないが、これらの量は、コンピュータシステムにおいて格納され、転送され、組み合わせられ、比較され、および、そうでなければ操作されることが可能な電気信号もしくは磁気信号の形をとる。主に一般的用法であるという理由で、これらの信号をトランザクション、ビット、値、要素、シンボル、文字、サンプル、ピクセル、または同様のものと呼ぶことが場合によっては便利であることが分かっている。
【００３３】
しかしながら、これらのおよび同様の用語の全ては、適切な物理量と関連付けられるべきであり、これらの量に適用される便宜的なラベルに過ぎないことが留意されるべきである。別途具体的に述べられない限り、以下の説明から明らかなように、本開示を通じて、「構成する」、「提供する」、「実行する」「伝送する」、「取得する」、「実装する」、「プログラムする」「割り当てる」、「関連付ける」、「設定する」、「アクセスする」、「制御する」、「判断する」、「識別する」、「キャッシュする」、「維持する」、「比較する」、「除去する」、「読み出す」、「書き込む」、または同様のものなどの用語を利用する説明は、コンピュータシステムまたは同様の電子コンピューティングデバイスもしくはプロセッサ（例えば、図１Ａのシステム１１０）の動作およびプロセス（例えば、図８のフローチャート８００）を指すことを理解されたい。コンピュータシステムまたは同様の電子コンピューティングデバイスは、コンピュータシステムのメモリ、レジスタ、または、他のそのような情報記憶デバイス、伝送デバイス、もしくはディスプレイデバイス内で物理（電子）量として表されるデータを操作および変換する。
【００３４】
本明細書において説明される実施形態は、１または複数のコンピュータまたは他のデバイスによって実行される、プログラムモジュールなどの何らかの形式のコンピュータ可読記憶媒体に存在するコンピュータ実行可能命令の一般的文脈において説明されてよい。限定としてではなく例として、コンピュータ可読記憶媒体は、非一時的コンピュータ可読記憶媒体および通信媒体を含んでよく、非一時的コンピュータ可読媒体は、一時的な伝播信号を除く全てのコンピュータ可読媒体を含む。概して、プログラムモジュールは、特定のタスクを行い、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。プログラムモジュールの機能は、様々な実施形態において要望通りに組み合わせられ、または分散されてよい。
【００３５】
コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの、情報の記憶のための任意の方法または技術で実装される揮発性および不揮発性、取り外し可能および取り外し不可能な媒体を含む。コンピュータ記憶媒体は、限定はされないが、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリもしくは他のメモリ技術、コンパクトディスクＲＯＭ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または所望の情報を格納するために使用でき、該情報を読み出すためにアクセスできる任意の他の媒体を含む。
【００３６】
通信媒体は、コンピュータ実行可能命令、データ構造、およびプログラムモジュールを具現化でき、任意の情報配信媒体を含む。限定としてではなく例として、通信媒体は、有線ネットワークもしくは直接有線接続などの有線媒体、ならびに、音波、無線周波数（ＲＦ）、赤外線などの無線媒体、および他の無線媒体を含む。上記のうちの任意のものの組み合わせもまた、コンピュータ可読媒体の範囲内に含まれ得る。
【００３７】
図１Ａは、異なるアプリケーションを有する複数のユーザをサポートすることが可能なテスタ制御システム１１０の例のブロック図である。一実施形態において、システム１１０は、本発明のプリミティブの動作を制御する。例えば、システム１１０は、（図５に示すような）サーバ５２５の機能を行ってよい。テスタ制御システム１１０は、コンピュータ可読命令を実行することが可能な任意のシングルプロセッサまたはマルチプロセッサのコンピューティングデバイスまたはシステムを幅広く表す。制御システム１１０の例は、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、ハンドヘルドデバイス、または、任意の他のコンピューティングシステムもしくはデバイスを含むが、それらに限定されない。その最も基本的な構成において、制御システム１１０は、少なくとも１つのプロセッサ１１４とシステムメモリ１１６とを備えてよい。
【００３８】
プロセッサ１１４は、データを処理すること、または命令を解釈および実行することが可能な任意のタイプまたは形態の処理ユニットを概して表す。特定の実施形態において、プロセッサ１１４は、ソフトウェアアプリケーションまたはモジュールから命令を受信してよい。これらの命令は、本明細書において説明および／または示される例示的な実施形態のうちの１または複数のものの機能をプロセッサ１１４に行わせてよい。
【００３９】
システムメモリ１１６は、データおよび／もしくは他のコンピュータ可読命令を格納することが可能な任意のタイプもしくは形態の揮発性もしくは不揮発性の記憶デバイスまたは媒体を概して表す。システムメモリ１１６の例は、ＲＡＭ、ＲＯＭ、フラッシュメモリ、または任意の他の適切なメモリデバイスを含むが、それらに限定されない。必須というわけではないが、特定の実施形態では、制御システム１１０は、揮発性メモリユニット（例えばシステムメモリ１１６など）および不揮発性記憶デバイス（例えば主記憶デバイス１３２など）の両方を含んでよい。
【００４０】
プロセッサ１１４およびシステムメモリ１１６に加えて、テスタ制御システム１１０はまた、１または複数の構成要素もしくは要素も含んでよい。例えば、図１Ａの実施形態では、制御システム１１０は、メモリコントローラ１１８、入出力（Ｉ／Ｏ）コントローラ１２０、および通信インタフェース１２２を含み、その各々は、通信インフラストラクチャ１１２を介して相互接続されてよい。通信インフラストラクチャ１１２は、コンピューティングデバイスの１または複数の構成要素の間の通信を容易にすることが可能な任意のタイプまたは形態のインフラストラクチャを概して表す。通信インフラストラクチャ１１２の例は、通信バス（業界標準アーキテクチャ（ＩＳＡ）、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）、ＰＣＩエクスプレス（ＰＣＩｅ）、もしくは同様のバスなど）、およびネットワークを含むが、それらに限定されない。
【００４１】
メモリコントローラ１１８は、メモリもしくはデータを処理すること、または制御システム１１０の１または複数の構成要素の間の通信を制御することが可能な任意のタイプまたは形態のデバイスを概して表す。例えば、メモリコントローラ１１８は、通信インフラストラクチャ１１２を介して、プロセッサ１１４、システムメモリ１１６、およびＩ／Ｏコントローラ１２０の間の通信を制御してよい。
【００４２】
Ｉ／Ｏコントローラ１２０は、コンピューティングデバイスの入力機能および出力機能を調整および／または制御することが可能な任意のタイプまたは形態のモジュールを概して表す。例えば、Ｉ／Ｏコントローラ１２０は、プロセッサ１１４、システムメモリ１１６、通信インタフェース１２２、ディスプレイアダプタ１２６、入力インタフェース１３０、およびストレージインタフェース１３４などの制御システム１１０の１または複数の要素の間のデータ転送を制御してよく、または容易にしてよい。
【００４３】
通信インタフェース１２２は、例示的な制御システム１１０と１または複数の追加のデバイスとの間の通信を容易にすることが可能な、任意のタイプまたは形態の通信デバイスまたはアダプタを幅広く表す。例えば、通信インタフェース１２２は、制御システム１１０と、追加の制御システムを含むプライベートネットワークまたはパブリックネットワークとの間の通信を容易にしてよい。通信インタフェース１２２の例は、有線ネットワークインタフェース（ネットワークインタフェースカードなど）、無線ネットワークインタフェース（無線ネットワークインタフェースカードなど）、モデム、および任意の他の適切なインタフェースを含むが、それらに限定されない。１つの実施形態において、通信インタフェース１２２は、インターネットなどのネットワークへの直接リンクを介して、リモートサーバへの直接接続を提供する。通信インタフェース１２２はまた、任意の他の適切な接続を通じてそのような接続を間接的に提供してよい。
【００４４】
通信インタフェース１２２はまた、外部バスまたは通信チャネルを介して、制御システム１１０と、１または複数の追加のネットワークまたは記憶デバイスとの間の通信を容易にするよう構成されるホストアダプタを表してよい。ホストアダプタの例は、スモールコンピュータシステムインタフェース（ＳＣＳＩ）ホストアダプタ、ユニバーサルシリアルバス（ＵＳＢ）ホストアダプタ、ＩＥＥＥ（米国電気電子技術者協会）１３９４ホストアダプタ、シリアルアドバンスドテクノロジアタッチメント（ＳＡＴＡ）および外部ＳＡＴＡ（ｅＳＡＴＡ）ホストアダプタ、アドバンスドテクノロジアタッチメント（ＡＴＡ）およびパラレルＡＴＡ（ＰＡＴＡ）ホストアダプタ、ファイバチャネルインタフェースアダプタ、イーサネット（登録商標）アダプタ、または同様のものを含むが、それらに限定されない。通信インタフェース１２２はまた、制御システム１１０が分散コンピューティングまたはリモートコンピューティングに携わることを可能にしてよい。例えば、通信インタフェース１２２は、リモートデバイスから命令を受信してよく、または、実行のために命令をリモートデバイスに送信してよい。
【００４５】
図１Ａに示すように、制御システム１１０はまた、ディスプレイアダプタ１２６を介して通信インフラストラクチャ１１２に接続される少なくとも１つのディスプレイデバイス１２４を備えてよい。ディスプレイデバイス１２４は、ディスプレイアダプタ１２６によって転送された情報を視覚的に表示することが可能な任意のタイプまたは形態のデバイスを概して表す。同様に、ディスプレイアダプタ１２６は、ディスプレイデバイス１２４上で表示するために、グラフィックス、テキスト、および他のデータを転送するよう構成される任意のタイプまたは形態のデバイスを概して表す。
【００４６】
図１Ａに示すように、制御システム１１０はまた、入力インタフェース１３０を介して通信インフラストラクチャ１１２に接続される少なくとも１つの入力デバイス１２８を備えてよい。入力デバイス１２８は、コンピュータまたは人間のいずれかが生成した入力を制御システム１１０に提供することが可能な任意のタイプまたは形態の入力デバイスを概して表す。入力デバイス１２８の例は、キーボード、ポインティングデバイス、音声認識デバイス、または任意の他の入力デバイスを含むが、それらに限定されない。
【００４７】
図１Ａに示すように、制御システム１１０はまた、ストレージインタフェース１３４を介して通信インフラストラクチャ１１２に接続される主記憶デバイス１３２およびバックアップ記憶デバイス１３３を含んでよい。記憶デバイス１３２および１３３は、データおよび／または他のコンピュータ可読命令を格納することが可能な任意のタイプまたは形態の記憶デバイスまたは媒体を概して表す。例えば、記憶デバイス１３２および１３３は、磁気ディスクドライブ（例えば、いわゆるハードドライブ）、フロッピー（登録商標）ディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブ、または同様のものであってよい。ストレージインタフェース１３４は、記憶デバイス１３２および１３３と、制御システム１１０の他の構成要素との間でデータを転送するための任意のタイプまたは形態のインタフェースまたはデバイスを概して表す。
【００４８】
１つの例では、データベース１４０は、主記憶デバイス１３２に格納されてよい。データベース１４０は、単一のデータベースもしくはコンピューティングデバイスの一部を表してよく、または、データベース１４０は、複数のデータベースもしくはコンピューティングデバイスを表してよい。例えば、データベース１４０は、制御システム１１０の一部、および／または、（下記の）図２の例示的ネットワークアーキテクチャ２００の一部を表して（に格納されて）よい。あるいは、データベース１４０は、制御システム１１０および／またはネットワークアーキテクチャ２００の一部などのコンピューティングデバイスがアクセス可能な１または複数の物理的に別個のデバイスを表して（に格納されて）よい。
【００４９】
引き続き図１Ａを参照すると、記憶デバイス１３２および１３３は、コンピュータソフトウェア、データ、または他のコンピュータ可読情報を格納するよう構成される取り外し可能記憶ユニットから読み出す、および／またはそれに書き込むよう構成されてよい。適切な取り外し可能記憶ユニットの例は、フロッピー（登録商標）ディスク、磁気テープ、光ディスク、フラッシュメモリデバイス、または同様のものを含むが、それらに限定されない。記憶デバイス１３２および１３３はまた、コンピュータソフトウェア、データ、または他のコンピュータ可読命令が制御システム１１０にロードされることを可能にするための他の同様の構造またはデバイスを含んでよい。例えば、記憶デバイス１３２および１３３は、ソフトウェア、データ、または他のコンピュータ可読情報を読み出し、および書き込むよう構成されてよい。記憶デバイス１３２および１３３は、制御システム１１０の一部であってもよく、または、他のインタフェースシステムを通じてアクセスされる別個のデバイスであってよい。
【００５０】
多数の他のデバイスまたはサブシステムが、制御システム１１０に接続されてよい。逆に、本明細書において説明される実施形態を実施するために、図１Ａに示される構成要素およびデバイスの全てが存在する必要はない。上述のデバイスおよびサブシステムはまた、図１Ａに示すものとは異なるやり方で相互接続されてよい。制御システム１１０はまた、任意の数のソフトウェア、ファームウェア、および／またはハードウェアの構成を採用してよい。例えば、本明細書において開示される例示的な実施形態は、コンピュータ可読媒体上でコンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、またはコンピュータ制御ロジックとも呼ばれる）として符号化されてよい。
【００５１】
コンピュータプログラムを含むコンピュータ可読媒体は、制御システム１１０にロードされてよい。次に、コンピュータ可読媒体に格納されたコンピュータプログラムの全部または一部は、システムメモリ１１６、および／または記憶デバイス１３２および１３３の様々な部分に格納されてよい。プロセッサ１１４によって実行されたとき、制御システム１１０にロードされたコンピュータプログラムは、プロセッサ１１４に、本明細書において説明および／または示される例示的な実施形態の機能を行わせてよく、および／またはそれを行うための手段であってよい。追加的または代替的に、本明細書において説明および／または示される例示的な実施形態は、ファームウェアおよび／またはハードウェアにおいて実装されてよい。
【００５２】
図１Ｂは、クライアントシステム１５１、１５２および１５３とサーバ１４１および１４５とがネットワーク１５０に接続されてよいネットワークアーキテクチャ１００の例のブロック図である。クライアントシステム１５１、１５２および１５３は、図１Ａのテスタ制御システム１１０などの任意のタイプまたは形態のコンピューティングデバイスまたはシステムを概して表す。
【００５３】
同様に、サーバ１４１および１４５は、様々なデータベースサービスを提供し、および／または特定のソフトウェアアプリケーションを実行するよう構成される、アプリケーションサーバまたはデータベースサーバなどのコンピューティングデバイスまたはシステムを概して表す。ネットワーク１５０は、例えばイントラネット、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、またはインターネットなどを含む任意の電気通信網またはコンピュータネットワークを概して表す。
【００５４】
図１Ａの制御システム１１０を参照すると、通信インタフェース１２２などの通信インタフェースは、各クライアントシステム１５１、１５２および１５３とネットワーク１５０との間に接続を提供するために使用されてよい。クライアントシステム１５１、１５２および１５３は、例えばウェブブラウザまたは他のクライアントソフトウェアなどを使用して、サーバ１４１または１４５上の情報にアクセスすることが可能であってよい。そのようなソフトウェアは、サーバ１４０、サーバ１４５、記憶デバイス１６０（１）〜（Ｌ）、記憶デバイス１７０（１）〜（Ｎ）、記憶デバイス１９０（１）〜（Ｍ）、またはインテリジェントストレージアレイ１９５によってホストされるデータに、クライアントシステム１５１、１５２、および１５３がアクセスすることを可能にし得る。図１Ｂは、データ交換のためのネットワーク（インターネットなど）の使用を描写しているが、本明細書において説明される実施形態は、インターネット、または任意の特定のネットワークベース環境に限定されない。
【００５５】
１つの実施形態において、本明細書において開示される例示的な実施形態のうちの１または複数のものの全部または一部は、コンピュータプログラムとして符号化され、サーバ１４１、サーバ１４５、記憶デバイス１６０（１）〜（Ｌ）、記憶デバイス１７０（１）〜（Ｎ）、記憶デバイス１９０（１）〜（Ｍ）、インテリジェントストレージアレイ１９５、またはこれらの任意の組み合わせにロードされ、それによって実行される。本明細書において開示される例示的な実施形態のうちの１または複数のものの全部または一部はまた、コンピュータプログラムとして符号化され、サーバ１４１に格納され、サーバ１４５によって実行され、ネットワーク１５０を介してクライアントシステム１５１、１５２および１５３に配布されてよい。
【００５６】
異なるアプリケーションを使用する複数のユーザをサポートするテストシステム
【００５７】
図２は、制御された環境チャンバ１０または「オーブン」の中にＤＵＴが置かれた典型的なテスト環境を示す。ＤＵＴは、テストヘッド２０のテスタスライスに接続される。多数のＤＵＴが単一のテスタスライス４０に接続され得る。テスタスライス（図３に関連してさらに詳細に説明される）は、テストプランにしたがってＤＵＴに対してテストを行うテスト回路を含む。１つのテストヘッド２０につき多数のテスタスライスがあり得る。ＤＵＴは、オーブン１０の中に挿入されるとき、トレイ３０の中に置かれる。オーブン１０内にあるとき、チャンバ１０の制御された環境を乱さないよう、ＤＵＴは通常、ユーザにとってアクセス可能ではない。典型的な環境チャンバにおいては、複数のテスタスライスは、複数のＤＵＴに対して同一のテストプランを実行するロックステップで動作する。さらに、テストヘッドは通常、テストヘッドに直接接続され、このやり方でテストヘッド２０のスライスの全てを制御する単一の制御用コンピュータシステム（図示せず）によって制御される。制御用コンピュータは通常、ＤＵＴに対して単一のテストプランを実行する単一ユーザによって操作される。
【００５８】
このテスト環境の課題は、各テストの間、所与のテストヘッドのテスタスライスを完全に満たすだけの十分なＤＵＴがないことが多いということである。したがって、テストの間の空きスライスは、そのような条件下では、いかなる有用な作業も行わないという点で無駄である。このため全体的なテストスループットが低減することがあり、非常に高価な電子機器は未使用状態となる。これらの未使用スライスは、異なる用途には供され得ない。なぜなら、１）テストの間、チャンバ内部はアクセス可能ではないから、２）制御コンピュータはいつでも一人のユーザのみをサポートするから、および、３）スライス（それらの全て）は、一度に１つのテストプランについてのみ動作するからである。
【００５９】
テストチャンバは通常、嵩高く、高価でもある。テスト環境の別の欠点は、テストチャンバを十分に利用するべく、例えば製造、エンジニアリングなどのいくつかの異なるユーザグループ間でテストチャンバを同時に共有したいと望む典型的な顧客が、それを行うことができないということである。テストスライスは、典型的なテスト環境において、一度に単一のテストプランについてのみ動作し、単一ユーザ体験のみをサポートするので、顧客は、いかなるときもテストチャンバを十分に利用できず、したがって、追加の装置を購入するか、または効率を犠牲にするかのいずれかを強いられる。
【００６０】
図３は、テスタスライスと、システムコントローラおよびＤＵＴとのその相互接続とについての例示的な実施形態を示す詳細な概略ブロック図である。
【００６１】
図３を参照すると、各テスタスライスはサイトモジュールを備える。サイトモジュールは、１つの実施形態において、テスタスライス３４０Ａ〜３４０Ｎ上に機械的に構成され得る。ここで、各テスタスライスは少なくとも１つのサイトモジュールを備える。特定の典型的な実施形態において、各テスタスライスは、２つのサイトモジュールと２つのデバイス電源ボードとを備え得る。他の実施形態においては、テスタスライスは、それより多い、またはそれより少ないサイトモジュールおよび／または電源ボードを備えてよい。図３のテスタスライス３４０Ａは、例えば、サイトモジュール３１０Ａおよび３１０Ｂと、デバイス電源ボード３３２Ａおよび３３２Ｂとを備える。しかしながら、テスタスライス上に構成され得るデバイス電源ボードまたはサイトモジュールの数に対する制限はない。テスタスライス３４０は、ネットワークスイッチ３０２を介してシステムコントローラ３０１に接続される。ネットワークスイッチ３０２は、３２ビット幅のバスを有するサイトモジュールの各々に接続され得る。 
【００６２】
１つの実施形態において、システムコントローラ３０１は、例えば、ＡＴＥのユーザがテストプログラムをロードし、ＡＴＥ３００に接続されたＤＵＴに対してテストを実行するためのユーザインタフェースを提供するパーソナルコンピュータ（ＰＣ）といったコンピュータシステムであってよい。Ａｄｖａｎｔｅｓｔ  Ｓｔｙｌｕｓ（商標）  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍは、デバイステストの間に通常使用されるテストソフトウェアの１つの例である。それは、ユーザにグラフィカルユーザインタフェースを提供し、当該グラフィカルユーザインタフェースから、テストは構成され、制御される。それはまた、テストフローを制御し、テストプログラムの状態を制御し、どのテストプログラムが実行中であるかを判断し、テスト結果と、テストフローに関連する他のデータとのログを取る機能を備え得る。１つの実施形態において、システムコントローラは、５１２もの数のＤＵＴに接続され、それらを制御し得る。
【００６３】
１つの実施形態において、システムコントローラ３０１は、イーサネット（登録商標）スイッチなどのネットワークスイッチを介してサイトモジュールボード３１０Ａ〜３１０Ｂに接続され得る。他の実施形態において、ネットワークスイッチは、例としてファイバチャネル、８０２．１１、またはＡＴＭなどの異なるプロトコルと互換性のあるものであってよい。 
【００６４】
デバイス電源ボード３３２Ａ〜３３２Ｂの各々は、サイトモジュール３１０Ａ〜３１０Ｂのうちの１つから制御され得る。テスタプロセッサ３０４上で動作するソフトウェアは、特定のサイトモジュールにデバイス電源をあてがうよう構成され得る。１つの実施形態において、サイトモジュール３１０Ａ〜３１０Ｂおよびデバイス電源３３２Ａ〜３３２Ｂは、例えば、例としてペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）、シリアルＡＴアタッチメント（ＳＡＴＡ）、またはシリアルアタッチドＳＣＳＩ（ＳＡＳ）といった高速シリアルプロトコルを使用して互いに通信し合うよう構成される。 
【００６５】
１つの実施形態において、各サイトモジュールは、図３に示すように２つのＦＰＧＡで構成される。図３の実施形態のＦＰＧＡ３１６および３１８の各々は、テスタプロセッサ３０４によって制御される。テスタプロセッサ３０４は、図３においてシステムバス３３０および３３２によって示される、ＰＣＩｅなどの８レーンの高速シリアルプロトコルインタフェースを使用してＦＰＧＡの各々と通信できる。他の実施形態において、テスタプロセッサ３０４はまた、例えばシリアルＡＴアタッチメント（ＳＡＴＡ）またはシリアルアタッチドＳＣＳＩ（ＳＡＳ）といった異なる高速シリアルプロトコルを使用してＦＰＧＡと通信できる。 
【００６６】
ＦＰＧＡ３１６および３１８は、それぞれメモリモジュール３０８および３０６に接続される。メモリモジュールは、ＦＰＧＡデバイスおよびテスタプロセッサ３０４の両方と接続され得て、それらによって制御され得る。 
【００６７】
ＦＰＧＡ３１６および３１８は、それぞれバス３５２および３５４を介してロードボード３８０上のＤＵＴ３７２Ａ〜３７２Ｍに接続され得る。ロードボード３８０は、ライン３５２および３５４に関係するＤＵＴへの通信に使用されるプロトコルにとらわれない、サイトモジュール端における汎用高速接続を可能にする物理的なハーネスである。しかしながら、ＤＵＴ端では、ロードボードは、ＤＵＴによって使用されているプロトコルに特有のコネクタを有するよう設計される必要がある。 
【００６８】
図３はテスタスライスの例示的な実施形態のみを示していることに留意すべきである。さらに、本発明の実施形態は、図３に示すテスタスライスのタイプのみに限定されないことに留意されたい。本発明の実施形態は、下記でさらに説明される異なるタイプのテスタスライスおよびプリミティブを含み得る。
【００６９】
本発明の１つの実施形態において、ＤＵＴ３７２Ａ〜３７２Ｍは、テストのために、サーマルチャンバ３９０の内部に置かれたロードボード３８０に積まれる。ＤＵＴ３７２Ａ〜３７２Ｍおよびロードボード３８０は、デバイス電源３３２Ａおよび３３２Ｂから電力を得る。
【００７０】
各ＦＰＧＡに接続され得るＤＵＴの数は、ＦＰＧＡ内のトランシーバの数と、各ＤＵＴによって必要とされるＩ／Ｏレーンの数とで決まる。１つの実施形態において、ＦＰＧＡ３１６および３１８はそれぞれ、３２個の高速トランシーバを備えることができ、バス３５２および３５４はそれぞれ、３２ビット幅であり得る。しかしながら、用途に応じてそれより多い、またはそれより少ないものが実装され得る。例えば、各ＤＵＴが８個のＩ／Ｏレーンを必要とする場合、そのようなシステムでは各ＦＰＧＡに４つのＤＵＴのみが接続され得る。 
【００７１】
図４Ａは、本発明の一実施形態に係る、ＤＵＴインタフェースボード（ＤＩＢ）４００とインタフェースで接続されるプリミティブ４１０を示す。図２に示すテスタスライス４０と同様に、図４Ａのプリミティブは、テストヘッド２０に適合する一タイプの個別のテストモジュールであり、テストプランにしたがってＤＵＴに対してテストを行うテスト回路を備える。プリミティブは、例えばサイトモジュール、電源などの全ての様々な電子機器がその内に収容される筐体４５０を備える。ＤＩＢ４００は、ＤＵＴ４２０に合わせた寸法の特注のコネクタを使用して複数のＤＵＴ４２０を含み得る。ＤＩＢ４００はまた、筐体４７０を備え得る。ＤＩＢ４００は、図３に示すロードボード３８０と同様のロードボード（図示せず）を介してプリミティブ４１０のユニバーサルバックプレーン（図示せず）にインタフェースで接続する。プリミティブ４１０は、ＤＵＴ４２０に対してテストプランを行うための（図３に示すテスタスライス３４０Ａと同様の）テスト回路を含む。プリミティブ４１０は、任意の他のプリミティブとは独立して動作でき、（図３に示すシステムコントローラ３０１と同様の）制御サーバに接続される。 
【００７２】
図４Ｂは、複数のプリミティブ４９１を備える作業セルを示す。本発明の実施形態は、（図４Ｂに示すプリミティブと同様の）複数のプリミティブと、関連付けられるＤＩＢとを利用してＤＵＴをテストする。本発明の実施形態はまた、（図２のテスタスライス４０と同様の）テスタスライスを使用してＤＵＴをテストできる。各プリミティブ（またはテスタスライス）はモジュール式であり、それが他のプリミティブ（またはテスタスライス）とは独立して動作することが可能であることを意味する。したがって、（図４Ｂに示すような）ラック内の複数のプリミティブのセットはそれぞれ、異なるテストプランの下で動作することができる。プリミティブは、命令、制御、管理などのために制御サーバと通信する。制御サーバは、それがサポートする様々なプリミティブのための複数のアプリケーションプログラムまたはテストプランをホストすることが可能である。プリミティブは、標準ＩＰネットワークを介してサーバと通信できる。遠隔配置され得る様々なコンピュータシステムは、標準ＩＰネットワーク接続を介してサーバにアクセスできる。
【００７３】
したがって、このテストプラットフォームの下では、１）プリミティブのモジュール性と、２）標準ＩＰネットワーク接続の使用とによって、複数のプリミティブまたはテスタスライスが一人のユーザにしたがって所与のテストプランの下で複数のＤＵＴをテストしている一方で、同一ラックの第２の複数のプリミティブが第２のユーザによって指示される完全に異なるアプリケーション（または異なるテストプラン）を行っている、などのことが可能である。したがって、従来のテストシステムの未使用テスト回路と関連付けられる上述の課題は解消される。例えば、６個のプリミティブを備えるテストヘッドにおいて、当該プリミティブのうちの２個をＳＡＴＡタイプのデバイスをデバッグするためにエンジニアリング部専用とする一方で、当該プリミティブのうちの４個が製造部によるＳＳＤドライブのボリュームテスト専用にされ得ることが可能であってよい。 
【００７４】
１つの実施形態において、テストシステムが図４Ａに示すプリミティブを使用する場合、プリミティブのラックと関連付けられたＤＵＴをテストするとき、環境チャンバはもはや必要ではない。なぜなら、プリミティブは効率的なやり方で分割されるよう設計されるからである。この実施形態において、プリミティブの筐体４５０は、ＤＵＴからの熱が筐体内部に保持されることを可能にし、したがって、別個の加熱チャンバは必要ない。その結果、ＤＵＴおよびプリミティブに対していつでも直接的なユーザ操作が可能となる。換言すると、ＤＵＴは、（筐体内でより長い間電源が投入されるとき）より高い温度でＤＵＴをテストするために必要な熱を供給する。さらに、プリミティブの筐体４５０は、空気がプリミティブ内部を循環してＤＵＴを冷却し、結果的にプリミティブの内部温度を下げることを可能とするファンおよび／または通気口を含んでよい。
【００７５】
異なる実施形態において、テストシステムが図２に示すテスタスライスを使用する場合、環境チャンバは依然として必要だが、システムのモジュール性により、異なるユーザが環境チャンバの個々のセクションの排他的制御を有することが可能である。したがって、ＤＵＴおよびテスタスライスに対していつでも直接的なユーザ操作が可能となる。例えば、第１のユーザが第１セットのテスタスライスで環境チャンバにおいてテストを実行中であってよい一方で、第２のユーザが、第２のユーザの排他的制御の下にある第２セットのテスタスライス内のＤＵＴを操作してよい。 
【００７６】
図５は、本発明の一実施形態に係る、異なるアプリケーションを使用する複数のユーザをサポートするテストシステム５００を示す。図５に示すように、制御サーバ５２５は、異なるプリミティブ５４０ａおよび５４０ｂと通信する。これらの２つのプリミティブは、（図４Ｂに示すような）単一のラック内に配置され得る。図５の例示的なテストシステムはプリミティブを使用するが、本発明の原理は、テスタスライスを使用するテストシステムにも等しく適用可能であることに留意されたい。 
【００７７】
プリミティブ５４０ａは、テストプラン「ＴＰ１」を使用して（ＤＩＢを介して）複数のＤＵＴ５５０ａをテストするように示されている。プリミティブ５４０ｂは、テストプラン「ＴＰ２」と呼ばれる別個のアプリケーションを使用して（ＤＩＢを介して）複数のＤＵＴ５５０ｂをテストするように示されている。２つの異なる標準ＩＰネットワーク接続を通じて、第１のユーザコンピュータ５１０および第２のユーザコンピュータ５２０は共に制御サーバ５２５に接続される。 
【００７８】
例えば、第１のユーザコンピュータを顧客のエンジニアリング部専用とすることができる一方、第２のユーザコンピュータは製造部専用とすることができる。これらのユーザコンピュータは、互いに遠く離れていてよく、サーバ５２５から遠く離れていてよい。さらに多くのプリミティブおよび／またはテスタスライスがサーバ５２５と通信でき、説明のために２つのみが示されていることが理解されよう。
【００７９】
図５に示す例では、第２のユーザコンピュータ５２０は、プリミティブ５４０ｂによる実行を介して、複数のＤＵＴ５５０ｂに対する製造テストプランを制御している。この製造テストプランは、制御サーバ５２５にロードされ、次に、ＤＵＴ５５０ｂ上で実行するためにプリミティブ５４０ｂにダウンロードされ得る。次にテスト結果がその反対方向に通信され得る。この例では、ユーザコンピュータ５２０は、ＤＵＴ５５０ｂの大量生産テストの間、生産の専門家の管理下であり得る。
【００８０】
このように、本発明の実施形態は、同一のテスタを使用して完全に異なる機能をサポートできる。例えば、製造テストの間、テスタは、テストヘッド内のプリミティブのサブセットを使用して固定の作業フローを実行していてよい。例として、製造作業フローは、ＳＳＤドライブにバーコードを付けること、それらをテストすること、それらに「合格」または「不合格」のタグ付けをすることを備えてよい。同時に、エンジニアリングチームのメンバが、テストヘッド内の異なるセットのプリミティブを使用して、ＳＡＴＡドライブの不合格結果をデバッグすることなどの完全に異なる機能を行っていてよい。
【００８１】
上記のテストと同時に、第１のユーザコンピュータ５１０は、プリミティブ５４０ａを介して、複数のＤＵＴ５５０ａに適用するためのエンジニアリングテストプランを制御できる。エンジニアリングテストプランは、まだ最終決定されていない、開発中のテストプランであり得る。あるいは、エンジニアリングテストプランは単に、例えば、ＤＵＴタイプｘに対してＤＵＴタイプｙといった、異なるプロトコルを使用した異なるＤＵＴのテスト用の異なるタイプの製造テストプランであり得る。このエンジニアリングテストプランは、制御サーバ５２５にロードされ、次に、ＤＵＴ５５０ａ上で実行するためにプリミティブ５４０ａにダウンロードされ得る。次にテスト結果がその反対方向に通信され得る。この例では、ユーザコンピュータ５１０は、将来使用するための、現在はプロトタイプに属するテストプランを開発するテストエンジニアの管理下であり得る。
【００８２】
１つの実施形態において、ユーザコンピュータ５１０および５２０は、１つの実施形態において、例えばＡｄｖａｎｔｅｓｔ  Ｓｔｙｌｕｓ（商標）といったテストソフトウェアを実行するシステムコントローラであり得る。異なる実施形態において、ユーザコンピュータ５１０および５２０は、例えばＩＰネットワークといった通信ネットワークを介してサーバ５２５に接続されるユーザ端末であり得る。ここで、サーバ５２５は、例えばＡｄｖａｎｔｅｓｔ  Ｓｔｙｌｕｓ（商標）といったテストソフトウェアを実行するシステムコントローラである。 
【００８３】
１つの実施形態において、サーバ５２５は、全ての接続されたプリミティブ（またはテスタスライス）に対するテストをモニタするコントローラであり、ユーザにＧＵＩを提供しもする。他の実施形態において、ユーザは、図５に示すようにＩＰ接続を介してサーバに接続する。ここで、サーバに接続されたユーザコンピュータの各々は、関連付けられたユーザに別個のＧＵＩを提供して、関連付けられたセットのプリミティブを制御する。 
【００８４】
１つの実施形態において、サーバ５２５は、ユーザ間でリソースを割り当てる割り当てスキームを実行できる。例えば、サーバは、ユーザの用途に応じて、プリミティブおよび／またはテスタスライスをユーザに割り当てることができる。１つの実施形態において、サーバは、異なるユーザに、異なる目的のための異なるプリミティブおよび／またはテスタスライスを動的に割り当て、管理できる。サーバはまた、ユーザコンピュータの各々と、サーバ５２５に接続された様々なプリミティブ（およびそれらの関連付けられたＤＵＴ）との間の双方向通信を可能にする。サーバはまた、様々な接続されたプリミティブにおいて実行する同時の作業フローを管理でき、接続されたプリミティブおよび／またはテスタスライスにおける様々な作業フローを追跡できる。 
【００８５】
本発明の実施形態は、同一のテストヘッド２０を使用して同時に（異なる寸法、タイプ、およびフォームファクタを含む）異なるタイプのデバイスをテストするために有利に使用され得ることに留意されたい。例えば、同一のテスタは、異なるプリミティブまたはテスタスライスを使用して同時にＳＡＴＡドライブとＳＳＤドライブとをテストするために使用され得る。 
【００８６】
さらに、テストされている異なるタイプのデバイスの各々に対して、または、テストヘッド内の各プリミティブまたは各テスタスライスに対して、異なるテストプランが実行され得る。これにより、単一の顧客が、複数の機能を並行して行うのに単一のテスタを使用することが有利に可能になり、機能ごとの専用のテスタの必要性をなくす。本発明の実施形態をサポートするべく、１つの実施形態において、テスタソフトウェアは、同時に複数のテストプログラムをロードする能力を有する。ここで、各テストプログラムは、同時に異なるプリミティブにおいて実行し得る。例えば、ユーザは、１つのグループにつき１つのテストプログラムをロードすることが可能であってよい。ここで、グループとは、１つのトレイスロット上の全てのＤＵＴと定義される。１つの実施形態において、テスタソフトウェアは、テスタシステム内にあるプリミティブと同数の、同時に実行されるテストプログラムをサポートする能力を有し得る。 
【００８７】
したがって、プリミティブ５４０ａが複数のＤＵＴをテストする複数のプリミティブを表すと仮定すると、同一ラックの第２の複数のプリミティブ５４０ｂが異なるユーザによって異なる目的のために使用されることが可能であり、それにより、いかなる未使用の構成要素をもなくす。より具体的には、エンジニアリングチームによってＤＵＴ５５０ａに対して第１のテストが行われている一方で、製造チームは、後に使用するためのその後のテストに備えるべくプリミティブ５５０ｂを並行して有利に使用していてよい。 
【００８８】
制御サーバ５２５とユーザコンピュータとの間で標準ＩＰネットワーク通信が使用されるので、複数のユーザコンピュータがいつでも制御サーバ５２５にアクセスしていてよく、遠く離れていてよい。これにより、複数の異なるテストプランが、ラックの様々なプリミティブにロードされ、異なるユーザによるサーバの制御を介して互いに独立して動作することが可能となる。 
【００８９】
プリミティブの設計のおかげで環境チャンバが取り除かれる実施形態において、プリミティブ５４０ａは直接手動で相互作用される一方で、プリミティブ５４０ｂのテストプランが動作中であることが可能であり、逆も同様である。 
【００９０】
同様に、環境チャンバが依然として使用される、テスタスライスを有する実施形態においてでさえ、複数の異なるユーザは、環境チャンバの個々のセクションの排他的制御を有し得る。なぜなら、テスタスライスは、互いに独立して使用され得るからである。 
【００９１】
本発明の利点は、各プリミティブが独立して動作できるという点で、より大きなテスタの柔軟性を備える。本発明の別の利点は、未使用テスト回路をなくすことによってテスタ効率を増大させることである。本発明の別の利点は、複数のユーザが、プリミティブの所与のラックの内で同時に異なるＤＵＴに対して異なるテストプランを実行していてよいことである。 
【００９２】
テストプログラムフロー制御
【００９３】
１つの実施形態において、ユーザは、プリミティブまたはテスタスライスに接続されたＤＵＴの各々に対して異なるテストフローを実行できる。図６は、従来のテスタに対する、本発明の実施形態が提供する新規な改善を示す大まかな概観図である。
【００９４】
図６に示し、上述したように、従来のテスタには限界があった。なぜなら、それらは、テストヘッドの内部に含まれる全てのテスタスライスにおいて単一のテストプラン（またはテストプログラム）のみを実行し得るからである。 
【００９５】
さらに、上記で詳述したように、本発明の実施形態は、一部には１）プリミティブのモジュール性と、２）標準ＩＰネットワーク接続の使用との結果、従来のテスタを改善した。したがって、図６に示すように、複数のプリミティブまたはテスタスライスが一人のユーザにしたがって所与のテストプランの下で複数のＤＵＴをテストしている一方で、同一ラックの第２の複数のプリミティブが第２のユーザによって指示される完全に異なるアプリケーション（または異なるテストプラン）を行っている、などのことが可能である。例えば、テスタ６２０が８個のプリミティブを含む場合、プリミティブの各々は、異なるテストプログラム（ＴＰ０、ＴＰ１、・・・ＴＰ８）を実行することが可能である。さらに、プリミティブの各々は、異なるプロトコルを実行するＤＵＴをテストできる。例えば、１つのプリミティブまたはプリミティブのセットがＳＳＤドライブをテストできる一方で、別のプリミティブまたはプリミティブのセットはＳＡＴＡドライブをテストできる。 
【００９６】
本発明の実施形態はまた、プリミティブ（またはテスタスライス）に接続されたＤＵＴの各々に対してユーザが異なるテストフローを実行することを可能にすることによって、従来のテスタを改善する。同一のプリミティブに接続された全てのＤＵＴは同一のプロトコルを実行してよいが、本発明の実施形態は、各プリミティブにおけるＤＵＴが、異なるテストフローを実行することを可能にする。図６のテスタ６３０に示すように、テストプログラムＴＰ０を実行するプリミティブに接続されたＤＵＴ０はフローＡを実行し、ＤＵＴ２はフローＢを実行し、ＤＵＴ７はフローＣを実行する。換言すると、プリミティブ内の各ＤＵＴは、それ自身のテストフローを実行でき、当該プリミティブ内の全ての他のＤＵＴと同一のテストフローを実行することを要求されない。 
【００９７】
図７は、本発明の一実施形態に係るテストプログラムの様々な構成要素を示す。テストプログラムは通常、標準テストインタフェース言語（Ｓｔａｎｄａｒｄ  Ｔｅｓｔ  Ｉｎｔｅｒｆａｃｅ  Ｌａｎｇｕａｇｅ）（ＳＴＩＬ）およびテスト法（．ｓｏ）ファイルの２つのファイルから構成される。テスト法（．ｓｏ）ファイルは通常、テスタのサイトモジュール上で動作してＤＵＴを直接テストするコンピュータコードを含む。一方、ＳＴＩＬファイルは、（他の構成情報の中でも特に）テストプログラムを作成するべくどのようにテスト法が編成されるかについての情報を備える。 
【００９８】
テスト法は、テストプログラムの基本的な構成単位を備える。例えば、図７に示すように、テスト法７１０は、デバイスをオープンする動作、ＤＵＴに対してリセットを行う動作、または任意の他のテストに関連した動作を備え得る。テスト法は、直接ＤＵＴと通信する。テスト法は、図７を使用して下記で詳述される階層で、ＳＴＩＬファイルにおいて編成される。
【００９９】
本発明の１つの実施形態において、テスト法は、テストパラメータ７３０において呼び出される。テストパラメータ７３０は、特定の順序で実行されるテスト法のセットである。テストパラメータは通常、テスト法のリストを備える。 
【０１００】
テストセグメント７４０は通常、単一のテストパラメータ７３０と関連付けられる。テストパラメータ７３０は、テストセグメントにおいて呼び出され得る。複数のセグメントにおいて同一のテストパラメータが使用され得ることに留意されたい。また、テストセグメントは、テストパラメータだけでなくＤＵＴのビン情報も備えることにさらに留意されたい。ビン番号は、ＤＵＴが属する物理的ビンに関連していてよい。したがって、テストセグメントは、テストパラメータ内のテスト法を、テストパラメータからのテスト法が実行されることになっている物理的ＤＵＴに結び付ける。プログラムシーケンスを作るべく、複数のテストセグメントが組み合わせられ得る。 
【０１０１】
プログラムシーケンス７６０は、特定の順序で実行されるセグメントのセットである。（ａ）スタート−前処理の段階、（ｂ）メイン−実際のテストの段階、（ｃ）フィニッシュ−後処理の段階、例えばデバイスの電源オフ、クリーンアップなど、および（ｄ）デバッグ−デバッグ目的で、手動で実行され得るセグメント（オプションであってよい）、という４つの異なるプログラムシーケンスがある。全てのテストプログラムは、スタート、メイン、フィニッシュのプログラムシーケンスを有する。デバッグ目的に利用可能な、オプションのデバッグプログラムシーケンスもある。
【０１０２】
従来のテスタは通常、１つのＳＴＩＬファイルにつき１セットのプログラムシーケンスのみを許容する。本発明の１つの実施形態において、テストフロー構成体は、４つのプログラムシーケンスのセットを備えるテスタソフトウェア（例えばＡｄｖａｎｔｅｓｔ  Ｓｔｙｌｕｓ（商標））内で定義される。例えば、図７に示すように、テストフローＡＢＣは、スタート、メイン、フィニッシュ、およびデバッグの４つのプログラムシーケンスを備える。同様に、テストフローＤＥＦはまた、スタート、メイン、フィニッシュ、およびデバッグの４つのプログラムシーケンスを備える。さらに、テストスイート構成体が作成される。テストスイート７２０は、テストフローの集まりとして定義される。 
【０１０３】
本発明の１つの実施形態において、ユーザは１つのＳＴＩＬファイル内で複数のテストフローを定義することが有利に可能である。本発明の実施形態は、１つのＳＴＩＬファイル内で複数のテストフローをユーザが定義することを可能にすることと、プリミティブ（またはテスタスライス）に接続されたＤＵＴの各々に対して異なるテストフローを実行することとによって、従来のテスタを改善する。プリミティブ内の各ＤＵＴは、ＳＴＩＬファイル内の定義されたテストフローのうちの１つを実行してよい。同一のプリミティブに接続された全てのＤＵＴは同一のプロトコルを実行してよく、同一ユーザの制御下にあってよいが、本発明の実施形態は、各プリミティブにおけるＤＵＴが、異なるテストフローを実行することを可能にする。したがって、本発明の実施形態は、（上述したプリミティブごとの柔軟性に加えて）ＤＵＴごとの柔軟性を可能にする。さらに、本発明の実施形態は、各デバイスが複数の挿入を有することを可能にする。ここで、全ての挿入は異なるテストフローを必要とする。ＳＴＩＬファイルは、全ての挿入を処理するよう構成される。 
【０１０４】
プリミティブ内のＤＵＴの各々が、テストプロセスの間、異なる点または段階にあることを可能にすることによって、本発明の実施形態は、１つのテストプログラムにおいて単一のテストフローのみを許容した従来のテスタに比べて、テストを有利により効率的にする。従来のテスタは、テスタ内の全てのＤＵＴに対して同一のテストフローを実行することに限定されていた。複数のテストフローへのサポートがなければ、製造プロセスおよびエンジニアリングプロセスの両方は概してより複雑である。なぜなら、リソースが効率的に使用され得ないからである。 
【０１０５】
したがって、本発明の実施形態は、異なるテスト法が異なるＤＵＴに対していかなるときも実行されることを可能にする。これにより、ユーザがテスタのリソースを十分に利用することが可能になる。複数のテストフローをサポートする能力がなければ、テストプロセスの異なる段階にあるＤＵＴは、いくつかテスタの間で分離される必要があるであろう。例として、テスタ内の各ＤＵＴが３つの異なるテストプログラムを実行する必要がある場合を考えられたい。以前ならば、顧客は、第１のテストプログラムをロードし、第２のテストプログラムを開始する前に、テスタ内の全てのＤＵＴを終了させる必要があったであろう。第１のテストプログラムを完了するまで実行した後、次に、ユーザは、第２のテストプログラムをロードし、完了するまで全てのデバイスを終了させる必要がある、などとなったであろう。 
【０１０６】
本発明の実施形態を使用して、顧客は、マルチフローＳＴＩＬファイルにおいて、３個のテストプログラムの各々を単一のテストフローに統合できる。次に、ＤＵＴ１２がＤＵＴ０よりかなり前に終了した場合、顧客は、ＤＵＴ０が依然として第１のテストフローの実行の最中である間に、ＤＵＴ１２に対して第２のテストフローを実行できる。したがって、本発明の実施形態は、顧客が各プリミティブにおいて異なるテストプログラムを実行することを可能にするのみならず、顧客が各ＤＵＴに対して異なるテストプログラムを実行することを可能にもする。したがって、本発明の実施形態は、ユーザに多大な柔軟性を提供し、システムリソースのより効率的な活用を助ける。
【０１０７】
１つの実施形態において、ユーザは２つの既存のＳＴＩＬファイルを組み合わせることが可能であってよい。ＳＴＩＬファイルにおいて定義された全てのテストフローは、同一セットのテスト法（例えば、テスト法７１０）に依存するので、ユーザは、個々のテストプログラムのテスト法（．ｓｏ）ファイルにおいて利用可能なテスト法の全てが、組み合わせられたテストプログラムのテスト法ファイルにおいても利用可能であることを保証しなければならない。 
【０１０８】
本発明の実施形態はまた、テストフローを編集するグラフィカルユーザインタフェース（ＧＵＩ）を可能にする。例えば、図７に示すように、ＧＵＩは、例えばプライマリ、ＡＢＣ、ＤＥＦ、ＧＨＩなどの様々なテストフローのためのタブを有する。さらに、各フローは、例えば図７に示すようなスタート、メイン、フィニッシュ、デバッグといった、該フロー内のプログラムシーケンスの各々のための別個のタブを有する。図７の例では、テストフローウィンドウ７９５は、テストフロープライマリのメインシーケンスを示している。メインシーケンスは、テストフロープライマリの実際のテスト段階を含む。本発明の実施形態は、図７の例において示すＧＵＩを使用したテストフローの編集を可能にする。テストフロープライマリのメインシーケンスを編集するべく、例えば、ユーザは、テストフローウィンドウ７９５に示されるセグメントを、図表を用いて編集できる。
【０１０９】
本発明の実施形態はまた、ＧＵＩがテストフローを実行することを可能にする。ＧＵＩからテストプログラムを実行するとき、ユーザは、１つのテストフローを実行するか、または、テストスイート全体を実行するかを選択できる。特定のテストフローを実行するべく、ユーザは、実行したいテストフローを選択する。次に、ユーザはテストプログラムの実行を開始できる。選択されたフローは、ＤＵＴツールにおいて選択された全てのＤＵＴについて実行される。テストスイートを実行するべく、ユーザは、プログラムが動作することを望むＤＵＴを選択し、次に、ＧＵＩのＤＵＴツールの実行ボタンを押すことができる。テストスイートを実行するとき、何か故障がある場合、テストスイートは動作を停止でき、ＧＵＩは故障を報告する（その後のフローは故障品に対しては実行されない）。
【０１１０】
本発明の実施形態はまた、実行順序の付番を可能にする。テストフローの各々は、上述されたような基本的なセグメントに基づく。本発明の実施形態は、セグメントの各々に識別番号をあてがう。これにより、テスト進捗のより良好な視認性がユーザに提供される。ランタイムの間、ユーザは、識別番号を使用して、テストがどの段階にあるのかを判断することが可能となる。図７に示されている実行番号７６１は、ユーザが編集できる。さらに、実行番号はオプションであり、全てのセグメントが、実行番号が必要とするわけではない。実行番号が定義されない場合、それは表示されない。 
【０１１１】
１つの実施形態において、テスタソフトウェアは、特定のランタイムの段階をサポートする。例えば、デバイスごとに、テスタソフトウェアは、ＤＵＴに対してどのテストフローが動作するべきかを自動的に判断してよい。テストフローが終了したとき、自動化されたシステムはまた、関連付けられたＤＵＴに対して、次のテストフローを続けるか、またはテストプロセスを終了するかを判断してよい。 
【０１１２】
図８は、本発明の１つの実施形態に係る、同一のテスタにおいて複数のテストプログラムを同時に実行するための例示的なコンピュータ実装プロセスのフローチャートを示す。しかしながら、本発明は、フローチャート８００によって提供された説明に限定されない。むしろ、本明細書において提供される教示から当業者には明らかなように、他の機能フローが本発明の範囲および主旨内に含まれる。フローチャート８００は、上述した例示的な実施形態を引き続き参照して説明されるが、当該方法はそれらの実施形態に限定されない。
【０１１３】
段階８０２において、第１のテストプランが、第１のユーザコンピュータ、例えばユーザコンピュータ５１０から、制御サーバ、例えばサーバ５２５にロードされる。ここで、制御サーバは、テスタ内の複数のプリミティブと通信する。上述したように、本発明の実施形態は、テスタスライスにも適用される。制御サーバは通常、制御サーバがプリミティブと通信し、プリミティブ内部のＤＵＴに対してテストプランを実行することを可能にする、例えばＡｄｖａｎｔｅｓｔ  Ｓｔｙｌｕｓ（商標）  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍといったテスタソフトウェアを実行している。 
【０１１４】
段階８０４において、第１セットのプリミティブと関連付けられたＤＵＴに対する実行のために、複数のプリミティブのうちの第１セットのプリミティブに第１のテストプランがダウンロードされる。図５と関連付けられた例において言及したように、第１のユーザコンピュータは、エンジニアリンググループによって制御されてよく、第１セットのプリミティブは、エンジニアリンググループのテストプランを実行していてよい。
【０１１５】
段階８０６において、第２のテストプランが、第２のユーザコンピュータ、例えばユーザコンピュータ５２０から制御サーバにロードされる。第２のユーザコンピュータは、例えば、顧客サイトの製造グループの制御下にあってよい。
【０１１６】
段階８０８において、第２セットのプリミティブと関連付けられたＤＵＴに対する実行のために、複数のプリミティブ中の第２セットのプリミティブに第２のテストプランがダウンロードされる。
【０１１７】
段階８１０において、サーバは、第１サブセットのプリミティブに対して第１のテストプランを、第２サブセットのプリミティブに対して第２のテストプランを同時に実行する。 
【０１１８】
図９は、本発明の１つの実施形態に係る、同一のテスタにおいて単一のプリミティブ内部で複数のテストフローを同時に実行するための例示的なコンピュータ実装プロセスのフローチャートを示す。しかしながら、本発明は、フローチャート９００によって提供された説明に限定されない。むしろ、本明細書において提供される教示から当業者には明らかなように、他の機能フローが本発明の範囲および主旨内に含まれる。フローチャート９００は、上述した例示的な実施形態を引き続き参照して説明されるが、当該方法はそれらの実施形態に限定されない。
【０１１９】
段階９０２において、テストプランが、ユーザコンピュータ、例えばコンピュータ５１０から、制御サーバ、例えばサーバ５２５にロードされる。ここで、制御サーバは、テスタ内の例えばプリミティブ５４０ａ〜５４０ｂといった複数のプリミティブと通信する。制御サーバは通常、制御サーバがプリミティブと通信し、プリミティブ内部のＤＵＴに対してテストプランを実行することを可能にする、例えばＡｄｖａｎｔｅｓｔ  Ｓｔｙｌｕｓ（商標）  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍといったテスタソフトウェアを実行している。
【０１２０】
段階９０４において、複数のプリミティブのうちの一プリミティブに、当該一プリミティブと関連付けられたＤＵＴに対する実行のために、テストプランがダウンロードされる。上述したように、本発明の１つの実施形態において、ユーザは、テストプランの１つのＳＴＩＬファイル内で複数のテストフローを定義することが可能である。
【０１２１】
段階９０６において、複数のテストフローのうちの第１のテストフローが、当該一プリミティブ内部の第１のＤＵＴに対して実行される。段階９０８において、複数のテストフローのうちの第２のテストフローが、当該一プリミティブ内部の第２のＤＵＴに対して実行される。ここで、第１のテストフローおよび第２のテストフローは同時に実行される。上述したように、本発明の実施形態は、１つのＳＴＩＬファイル内で複数のテストフローをユーザが定義することを可能にすることと、プリミティブ（またはテスタスライス）に接続されたＤＵＴの各々に対して異なるテストフローを実行することとによって、従来のテスタを改善する。プリミティブ内の各ＤＵＴは、ＳＴＩＬファイル内の定義されたテストフローのうちの１つを実行してよい。同一のプリミティブに接続された全てのＤＵＴは同一のプロトコルを実行してよく、同一ユーザの制御下にあってよいが、本発明の実施形態は、各プリミティブにおけるＤＵＴが、異なるテストフローを実行することを可能にする。
【０１２２】
前述の説明は、説明することを目的としており、具体的な実施形態に関連して説明されてきた。しかしながら、例示された上記説明は、網羅的であることも、開示された厳密な形態に本発明を限定することも意図していない。上記教示に照らして、多くの修正および変形が可能である。実施形態は、本発明の原理とその実際の適用を最も良く説明するべく選択され、説明された。それにより、他の当業者が、本発明と、予期される特定の用途に適し得る様々な修正を加えた様々な実施形態とを最もよく利用することを可能にする。
【図１Ａ】
2018200305.tif 000003
【図１Ｂ】
2018200305.tif 000004
【図２】
2018200305.tif 000005
【図３】
2018200305.tif 000006
【図４Ａ】
2018200305.tif 000007
【図４Ｂ】
2018200305.tif 000008
【図５】
2018200305.tif 000009
【図６】
2018200305.tif 000010
【図７】
2018200305.tif 000011
【図８】
2018200305.tif 000012
【図９】
2018200305.tif 000013
【外国語明細書】
2018200305000001.pdf