(57)【要約】      （修正有）【課題】容易にカスタマイズされ得るアプリケーションプログラミングインタフェースを備えたテスト開発環境を提供する。【解決手段】自動テストを行うためのシステムであって、アプリケーションプログラミングインタフェース（ＡＰＩ）をプログラムして、デフォルトの生産フローをテスタ上で制御する段階７０２を含み、この生産フローは、テスタに接続されたテスト対象デバイス（ＤＵＴ）に対するテストの実行に関連した複数のテストシーケンスを含む。さらに、ユーザ固有のＡＰＩに従って、デフォルトの生産フローをカスタマイズされた複数のテストシーケンスに修正するようにＡＰＩを構成する段階７０４を含み、ユーザ固有のＡＰＩは、ユーザのテスト要件による生産フローの修正を含む。最後に、ユーザに合わせてＡＰＩをカスタマイズするために、当該ＡＰＩとユーザ固有のＡＰＩとを統合する段階７０６を含む。【選択図】図７
2018189641.tif 000002
【特許請求の範囲】
【請求項１】
自動テスト装置（ＡＴＥ）を用いてテストを行うための方法であって、
デフォルトの生産フローをテスタ上で制御するようにアプリケーションプログラミングインタフェース（ＡＰＩ）をプログラムする段階であって、前記生産フローは、前記テスタに接続された複数のテスト対象デバイス（ＤＵＴ）に対するテストの実行に関連した複数のテストシーケンスを含む、段階と、
ユーザ固有のＡＰＩに従って、前記デフォルトの生産フローを修正して、前記複数のテストシーケンスをカスタマイズするように前記ＡＰＩを構成する段階であって、前記ユーザ固有のＡＰＩは、ユーザのテスト要件による前記生産フローの修正を含む、段階と、
前記ユーザに合わせて前記ＡＰＩをカスタマイズするために、前記ユーザ固有のＡＰＩを前記ＡＰＩと統合する段階とを備える、方法。
【請求項２】
前記ＡＰＩは、サーバ及びグラフィカルユーザインタフェースを実行するコンピュータ処理装置に通信可能に接続されており、前記サーバ及びグラフィカルユーザインタフェースを通じて、前記生産フローを制御する、請求項１に記載の方法。
【請求項３】
前記ユーザ固有のＡＰＩは、前記ＡＰＩと通信可能に接続されたユーザライブラリに、動作可能に格納される、請求項１又は２に記載の方法。
【請求項４】
前記生産フローの前記修正は、前記ユーザに固有のテスト中に、追加のテストデータを前記複数のＤＵＴから収集する段階を有する、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記追加のテストデータは、ユーザ指定のフロア管理モジュールにおいて前記ユーザに報告され、前記フロア管理モジュールは、ユーザの生産フロアにサーバを有し、前記フロア管理モジュールは、前記追加のデータを保管するように動作可能なデータベースと通信可能に接続される、請求項４に記載の方法。
【請求項６】
前記フロア管理モジュールは、前記ユーザと、前記複数のＤＵＴに対する前記テストの前記実行とに関連した独自の情報を含む、請求項５に記載の方法。
【請求項７】
前記複数のテストシーケンスは、前記ユーザ固有のＡＰＩに従ってカスタマイズされ、テストプランをサーバにロードすること、プリミティブに挿入されたＤＵＴを前記ＤＵＴに関連付けられた識別情報に基づいて認識すること、ＤＵＴパラメータをユーザステーション及び前記サーバに提供すること、カスタマイズされたＧＵＩ表示をユーザに提供すること、テストプラン実行を開始すること、前記テストプランをＤＵＴに対して実行した結果を受信すること、及びテスト結果の整理及び記録を行うことからなる群から選択された動作を行うように動作可能である、請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記複数のテストシーケンスは、前記ユーザ固有のＡＰＩに従ってカスタマイズされ、複数のテスト対象デバイス（ＤＵＴ）に対するテストの前記実行に関連した情報を暗号化するように動作可能である、請求項１から７のいずれか一項に記載の方法。
【請求項９】
自動テスト装置（ＡＴＥ）を用いてテストを行うための方法をコンピュータシステムに実行させるためのプログラムであって、前記方法は、
アプリケーションプログラミングインタフェース（ＡＰＩ）をプログラムして、デフォルトの生産フローをテスタ上で制御する段階であって、前記生産フローは、前記テスタに接続された複数のテスト対象デバイス（ＤＵＴ）に対するテストの実行に関連した複数のテストシーケンスを含む、段階と、
ユーザ固有のＡＰＩに従って、前記デフォルトの生産フローを修正して、前記複数のテストシーケンスをカスタマイズするように前記ＡＰＩを構成する段階であって、前記ユーザ固有のＡＰＩは、ユーザのテスト要件による前記生産フローの修正を含む、段階と、
前記ユーザに合わせて前記ＡＰＩをカスタマイズするために、前記ユーザ固有のＡＰＩを前記ＡＰＩと統合する段階とを備える、プログラム。
【請求項１０】
前記ＡＰＩは、サーバ及びグラフィカルユーザインタフェースを実行するコンピュータ処理装置に通信可能に接続されており、前記サーバ及び前記グラフィカルユーザインタフェースを通じて、前記生産フローを制御する、請求項９に記載のプログラム。
【請求項１１】
前記ユーザ固有のＡＰＩは、前記ＡＰＩと通信可能に接続されたユーザライブラリに、動作可能に格納される、請求項９又は１０に記載のプログラム。
【請求項１２】
前記生産フローの前記修正は、前記ユーザに固有のテスト中に、追加のテストデータを前記複数のＤＵＴから収集する段階を有する、請求項９から１１のいずれか一項に記載のプログラム。
【請求項１３】
前記追加のテストデータは、ユーザ指定のフロア管理モジュールにおいて前記ユーザに報告され、前記フロア管理モジュールは、ユーザの生産フロアにサーバを有し、前記フロア管理モジュールは、前記追加のデータを保管するように動作可能なデータベースと通信可能に接続される、請求項１２に記載のプログラム。
【請求項１４】
前記フロア管理モジュールは、独自のユーザ関連情報を含む、請求項１３に記載のプログラム。
【請求項１５】
前記複数のテストシーケンスは、前記ユーザ固有のＡＰＩに従ってカスタマイズされ、テストプランをサーバにロードすること、プリミティブに挿入されたＤＵＴを前記ＤＵＴに関連付けられた識別情報に基づいて認識すること、ＤＵＴパラメータをユーザステーション及び前記サーバに提供すること、カスタマイズされたＧＵＩ表示をユーザに提供すること、テストプラン実行を開始すること、前記テストプランをＤＵＴに対して実行した結果を受信すること、及びテスト結果の整理及び記録を行うことからなる群から選択された動作を行うように動作可能である、請求項９から１４のいずれか一項に記載のプログラム。
【請求項１６】
前記複数のテストシーケンスは、前記ユーザ固有のＡＰＩに従ってカスタマイズされ、複数のテスト対象デバイス（ＤＵＴ）に対するテストの前記実行に関連した情報を暗号化するように動作可能である、請求項９から１５のいずれか一項に記載のプログラム。
【請求項１７】
自動テスト装置（ＡＴＥ）を用いてテストを行うためのシステムであって、
複数のプリミティブに通信可能に接続されたサーバであって、前記複数のプリミティブのそれぞれは、複数のＤＵＴを含む、サーバと、
前記サーバに通信可能に接続された、グラフィカルユーザインタフェース（ＧＵＩ）を実行する第１のコンピュータ処理装置であって、前記グラフィカルユーザインタフェースは、ユーザが前記複数のプリミティブにアクセスすることを可能にする、第１のコンピュータ処理装置と、
前記サーバ及び前記第１のコンピュータ処理装置と通信可能に接続された第２のコンピュータ処理装置とを備え、
前記第２のコンピュータ処理装置は、
デフォルトの生産フローを制御するようにアプリケーションプログラミングインタフェース（ＡＰＩ）をプログラムすることであって、前記生産フローは、前記サーバに接続された前記複数のＤＵＴに対するテストの実行に関連した複数のテストシーケンスを含む、プログラムすることと、
ユーザ固有のＡＰＩに従って、前記デフォルトの生産フローを修正して、前記複数のテストシーケンスをカスタマイズするように前記ＡＰＩを構成することであって、前記ユーザ固有のＡＰＩは、ユーザのテスト要件による前記生産フローの修正を含む、構成することと、
前記ユーザに合わせて前記ＡＰＩをカスタマイズするために、前記ユーザ固有のＡＰＩを前記ＡＰＩと統合することとを行う、システム。
【請求項１８】
前記ユーザは、前記ＧＵＩを用いて、前記デフォルトの生産フローを修正するように前記ＡＰＩを構成する、請求項１７に記載のシステム。
【請求項１９】
前記ユーザ固有のＡＰＩは、前記第２のコンピュータ処理装置と通信可能に接続されたユーザライブラリに、動作可能に格納される、請求項１７又は１８に記載のシステム。
【請求項２０】
前記生産フローの前記修正は、前記ユーザに固有のテスト中に、追加のテストデータを前記複数のＤＵＴから収集することを有する、請求項１７から１９のいずれか一項に記載のシステム。
【請求項２１】
前記追加のテストデータは、ユーザ指定のフロア管理モジュールにおいて前記ユーザに報告され、前記フロア管理モジュールは、ユーザの生産フロアにサーバを有し、前記フロア管理モジュールは、前記追加のデータを保管するように動作可能なデータベースと通信可能に接続される、請求項２０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
【０００２】
［関連出願］
本出願は、２０１７年４月２８日に出願された「異なるアプリケーションを用いる複数のユーザをサポートするテストシステム（ＴＥＳＴ  ＳＹＳＴＥＭ  ＳＵＰＰＯＲＴＩＮＧ  ＭＵＬＴＩＰＬＥ  ＵＳＥＲＳ  ＵＳＩＮＧ  ＤＩＦＦＥＲＥＮＴ  ＡＰＰＬＩＣＡＴＩＯＮＳ）」と題する米国特許出願第１５／５８２，３１６号に関連している。当該特許出願は、Ｒｏｔｅｍ  Ｎａｈｕｍ、Ｒｅｂｅｃｃａ  Ｔｏｙ、Ｐａｄｍａｊａ  Ｎａｌｌｕｒｉ、及びＬｅｏｎ  Ｃｈｅｎを発明者とし、代理人整理番号は、ＡＴＳＹ−００５２−０１．０１ＵＳである。当該特許出願は、その全体を参照することにより、また全ての目的のために本明細書に組み込まれる。
【０００３】
本開示は概して、自動テスト装置の分野に関し、より具体的には、そのような装置を制御する手法に関する。
【背景技術】
【０００４】
自動テスト装置（ＡＴＥ）は、半導体ウエハ若しくはダイ、集積回路（ＩＣ）、回路基板、又はソリッドステートドライブなどのパッケージ化された装置上でテストを行う、あらゆるテストアセンブリであってよい。ＡＴＥアセンブリは、測定を迅速に行う自動テストを実行し、その後解析され得るテスト結果を生成するのに用いられてよい。ＡＴＥアセンブリは、計測器に接続されたコンピュータシステムから、複雑な自動テストアセンブリまで何であってもよく、そのような複雑な自動テストアセンブリには、システムオンチップ（ＳＯＣ）テスト又は集積回路テストなどの、電子部品テスト及び／又は半導体ウエハテストを自動的に行うことが可能な、特注の専用コンピュータ制御システムや多くの異なるテスト装置が含まれてよい。ＡＴＥシステムは、所与のデバイスが消費者に届けられる前に、デバイスが設計通りに機能するのを保証すること、及びそのデバイス内の不良コンポーネントの有無を判定する診断ツールとして機能を果たすことの両方のために費やされるデバイスのテスト時間を低減する。
【０００５】
典型的なＡＴＥシステムがデバイス（一般に、テスト対象デバイス又はＤＵＴと呼ばれる）をテストする場合、ＡＴＥシステムは、デバイスに刺激（例えば、電気信号）を与え、デバイスからの応答（例えば、電流や電圧）を検査する。通常、テストの最終結果は、デバイスが期待される特定の応答を事前に設定された許容範囲内で提供できた場合は「合格」、デバイスが期待される応答を事前に設定された許容範囲内で提供できなかった場合は「不良」のいずれかである。より高度なＡＴＥシステムは、不良デバイスを評価し、場合によっては１つ又は複数の故障原因を判定することが可能である。
【０００６】
ＡＴＥシステムでは、ＡＴＥシステムのオペレーションを管理するコンピュータを含むことが一般的である。通常、コンピュータは、１つ又は複数の専用ソフトウェアプログラムを実行して、（ｉ）テスト開発環境、及び（ｉｉ）デバイステスト環境を提供する。テスト開発環境では、ユーザが通常、テストプログラムを作成する。このテストプログラムは、例えば、１つ又は複数のファイルからなる、ＡＴＥシステムの様々な部分を制御するソフトウェアベースの構成体である。デバイステスト環境では、ユーザは通常、テストするための１つ又は複数のデバイスをＡＴＥシステムに提供し、テストプログラムに従って各デバイスをテストするようＡＴＥシステムに命令する。ユーザは、追加のデバイスをＡＴＥシステムに提供し、その追加のデバイスをテストプログラムに従ってテストするようＡＴＥシステムに命令するだけで、追加のデバイスをテストすることができる。したがって、ＡＴＥシステムは、テストプログラムに基づいて、ユーザが多くのデバイスを一貫した自動化方式でテストすることを可能にする。
【０００７】
典型的な従来技術によるテスト環境では、テスト開発環境は、テスタの高レベルの機能性及び特性の多くを制御するアプリケーションプログラミングインタフェース（ＡＰＩ）を含む場合がある。ＡＰＩは、テストプラットフォームの高レベルの機能性及び特性を管理するための制御サーバと、インタフェースで接続する。そのようなＡＰＩに関する１つの典型的な問題点は、テストシステムを所与のアプリケーション又は所与の顧客に合わせてカスタマイズするために、ＡＰＩを手動で変更し再プログラムしなければならないという点である。これは、高度な訓練を受けた専門職の人を伴う、難しい、時間と費用のかかる、複雑で間違いを起こしやすいプロセスになり得る。特定の顧客のニーズに合ったＡＰＩの機能性及び特性をカスタマイズするために、より簡単で、より速く、より自動化されて合理的な方法が提供できれば、有益であろう。
【発明の概要】
【０００８】
したがって、異なる顧客のテストシステムに容易に適応し得るテスト開発環境のニーズが存在する。さらに、必要とされるのは、異なる顧客のＡＴＥシステムの要件に適合させるために、容易にカスタマイズされ得るアプリケーションプログラミングインタフェースを備えたテスト開発環境である。説明されるシステムの有益な態様を用いて、そのような態様のそれぞれを限定することなく、本発明の実施形態が、これらの課題に取り組むために今までにない解決手段を提供する。
【０００９】
本明細書において開示される本発明は、複数のプリミティブ（又は、複数のテスタスライス）及び関連するＤＵＴインタフェースボード（ＤＩＢ）を利用して、ＤＵＴをテストする。各プリミティブは、他のプリミティブから独立して動作することが可能であることを意味するモジュール方式である。したがって、ラック内に配置された複数のプリミティブはそれぞれ、異なるテストプランに従って動作することができる。プリミティブは、命令、制御、管理などのために、制御サーバと通信する。制御サーバは、制御サーバがサポートする様々なプリミティブの複数のアプリケーションプログラム又はテストプランをホストすることが可能である。プリミティブは、標準的なＩＰネットワークを介してサーバと通信することができる。遠く離れて位置する可能性がある様々なコンピュータシステムは、標準的なＩＰネットワーク接続を介してサーバにアクセスすることができる。
【００１０】
したがって、このテストプラットフォームの下では、１）プリミティブのモジュール性、及び２）標準的なＩＰネットワークの使用によって、複数のプリミティブが、同じユーザによる所与のテストプランに基づいて複数のＤＵＴをテストすることが可能であり、同じラックの第２の複数のプリミティブが、第２のユーザなどによって管理される全く異なるアプリケーションを実行する。したがって、アイドル状態のテスト回路と関連した、従来技術のこれまでの課題は取り除かれる。
【００１１】
アプリケーションプログラミングインタフェース（ＡＰＩ）が、テスタシステムの高レベルの機能性及び特性を制御し、サーバを通じてプリミティブと通信する。カスタム統合生産プロセス（ＣＩＭ）と呼ばれるＡＰＩは、１）どのテストプランが用いられるか、２）ユーザインタフェースがユーザステーションを介してテスタ上で見える方式及び動作する方式、３）次のプロセスをテストし制御するために新たなＤＵＴが挿入された場合の処理、４）テストのテスト結果が収集され格納される方式などに関して、テストシステムの多くの高レベルの機能及び特性を制御する。
【００１２】
本発明の態様によれば、ユーザは、ユーザコードを格納し、テスタシステムと関連付けられたライブラリ内のＡＰＩを用いることができる。ユーザコードは、ＣＩＭ開発者によって提供される情報及び構文に基づいて顧客が開発し、その後ライブラリにロードされてよい。次にＣＩＭは、ユーザコード及びユーザＡＰＩを統合し、これにより統合ＣＩＭは、特定の顧客のニーズに合わせて自動的にカスタマイズされ、ユーザライブラリのコンテンツに従って、特定の機能及び特性を採用する。このように、本発明の実施形態が、ＣＩＭをカスタマイズするための自動機構を効果的に提供し、その結果、各顧客のニーズに合わせてＣＩＭを手動で書き直したり、設計し直したりすることが不要になる。これにより、新たなＣＩＭを開発するためのターンアラウンドタイムを増やし、また、ソフトウェアの全体コスト、及びＣＩＭ修正によって生じるエラーを減らす。
【００１３】
１つの実施形態において、自動テスト装置（ＡＴＥ）を用いてテストを行うための方法が示される。本方法は、アプリケーションプログラミングインタフェース（ＡＰＩ）をプログラムして、デフォルトの生産フローをテスタ上で制御する段階を含み、この生産フローは、テスタに接続されたテスト対象デバイス（ＤＵＴ）に対するテストの実行に関連した複数のテストシーケンスを含む。本方法はさらに、ユーザ固有のＡＰＩに従って、デフォルトの生産フローを修正して、複数のテストシーケンスをカスタマイズするようにＡＰＩを構成する段階を含み、ユーザ固有のＡＰＩは、ユーザのテスト要件による生産フローの修正を含む。最後に、本方法は、ユーザに合わせてＡＰＩをカスタマイズするために、当該ＡＰＩとユーザ固有のＡＰＩとを統合する段階を含む。
【００１４】
別の実施形態において、自動テスト装置（ＡＴＥ）を用いてテストを行うための方法をコンピュータシステムに実行させるために、具現化されたコンピュータ可読プログラムコードを内部に有する非一時的コンピュータ可読媒体が開示される。本方法は、アプリケーションプログラミングインタフェース（ＡＰＩ）をプログラムして、デフォルトの生産フローをテスタ上で制御する段階を含み、この生産フローは、テスタに接続されたテスト対象デバイス（ＤＵＴ）に対するテストの実行に関連した複数のテストシーケンスを含む。本方法はさらに、ユーザ固有のＡＰＩに従って、デフォルトの生産フローをカスタマイズされた複数のテストシーケンスに修正するようにＡＰＩを構成する段階を含み、ユーザ固有のＡＰＩは、ユーザのテスト要件による生産フローの修正を含む。最後に、本方法は、ユーザに合わせてＡＰＩをカスタマイズするために、当該ＡＰＩとユーザ固有のＡＰＩとを統合する段階を含む。
【００１５】
異なる実施形態において、自動テスト装置（ＡＴＥ）を用いてテストを行うためのシステムが開示される。本システムは、複数のプリミティブに通信可能に接続されたサーバを含み、複数のプリミティブのそれぞれは、複数のＤＵＴを含む。本システムは、グラフィカルユーザインタフェース（ＧＵＩ）を実行する第１のコンピュータ処理装置も含み、このコンピュータ処理装置は、サーバに通信可能に接続されており、グラフィカルユーザインタフェースによって、ユーザは、複数のプリミティブにアクセスすることが可能になり、第２のコンピュータ処理装置が、サーバ及び第１のコンピュータ処理装置と通信可能に接続されている。第２のコンピュータ処理装置は、（ａ）デフォルトの生産フローを制御するようにアプリケーションプログラミングインタフェース（ＡＰＩ）をプログラムすることであって、当該生産フローは、サーバに接続された複数のＤＵＴに対するテストの実行に関連した複数のテストシーケンスを含む、プログラムすることと、（ｂ）ユーザ固有のＡＰＩに従って、デフォルトの生産フローを修正して、複数のテストシーケンスをカスタマイズするようにＡＰＩを構成することであって、ユーザ固有のＡＰＩは、ユーザのテスト要件による生産フローの修正を含む、構成することと、（ｃ）ユーザに合わせてＡＰＩをカスタマイズするために、ユーザ固有のＡＰＩを当該ＡＰＩと統合することとを行うように構成される。
【００１６】
添付図面と共に以下の詳細な説明が、本発明の本質及び利点に関する、さらなる理解を提供するであろう。
【図面の簡単な説明】
【００１７】
本発明の実施形態が、限定するためでなく例として添付図面の各図に示される。これらの図面において、同じ参照番号は同様の要素を指す。
【００１８】
【図１Ａ】本発明の自動テストシステムの実施形態が、本発明の１つの実施形態に従って実装され得るコンピュータシステムである。
【００１９】
【図１Ｂ】本発明の実施形態に従って、クライアントシステム及びサーバがネットワークに接続され得るネットワークアーキテクチャの一例のブロック図である。
【００２０】
【図２Ａ】本発明の一実施形態に従ってＤＵＴインタフェースボード（ＤＩＢ）とインタフェースで接続されたプリミティブを示す。
【００２１】
【図２Ｂ】ラックに保持された複数のプリミティブを含むワークセルを示す。
【００２２】
【図３】ＣＩＭが本発明の実施形態に従って動作する、例示的なシステム環境を示すブロック図である。
【００２３】
【図４】ＣＩＭが本発明の実施形態に従って動作する、例示的なテスト環境の別の高レベルアーキテクチャの概要を示す。
【００２４】
【図５】本発明の実施形態に従ってＣＩＭのデフォルトの生産フローを修正した、顧客用の例示的な作業命令シーケンスを示す。
【００２５】
【図６】本発明の実施形態に従って顧客がＣＩＭのデフォルトの生産フローを修正し得る方式を示す、例示的な状態図を示す。
【００２６】
【図７】本発明の実施形態に従ってテスタを制御するアプリケーションプログラミングインタフェース（ＡＰＩ）を修正するための、例示的なコンピュータ実装プロセスのフローチャートを示す。
【００２７】
これらの図において、同じ名称を有する要素は、同じ又は類似の機能を有する。
【発明を実施するための形態】
【００２８】
ここで、本開示の様々な実施形態が詳細に参照されることになり、これらの実施形態の実施例が添付図面に示されている。実施例がこれらの実施形態と共に説明されるが、それによって、本開示がこれらの実施形態に限定されることは意図していないことが理解されるであろう。それどころか、本開示は、代替例、修正例、及び均等例をカバーすることが意図されており、これらの例は、添付された特許請求の範囲によって定められる本開示の精神及び範囲の中に含まれ得る。さらに、本開示の以下の詳細な説明では、本開示の十分な理解を提供するために、数多くの具体的な詳細が記載されている。しかしながら、本開示は、これらの具体的な詳細を用いずに実施され得ることが理解されるであろう。他の例では、よく知られた方法、手順、コンポーネント、及び回路が、本開示の態様をむだに不明瞭にしないように、詳細に説明されてはいない。
【００２９】
続く詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対するオペレーションの手順、論理ブロック、処理、及び他の記号を用いた表現の観点で示されている。これらの説明及び表現は、データ処理技術の当業者が自分の研究の主旨を他の当業者に最も効果的に伝達するために用いる手段である。本出願では、手順、論理ブロック、プロセスなどが、必要な結果をもたらす筋の通った一連の段階又は命令であると考えられている。これらの段階は、物理量の物理的操作を利用するものである。これらの量は、必ずではないがたいてい、コンピュータシステムにおいて、格納され、転送され、組み合わされ、比較され、あるいは操作されることが可能な、電気信号又は磁気信号の形態を取る。これらの信号を、トランザクション、ビット、値、要素、記号、文字、サンプル、ピクセルなどと呼ぶことが、主に一般的に用いられているという理由で、場合によっては簡便であると分かっている。
【００３０】
しかしながら、これらの用語及び同様の用語の全ては、適切な物理量と関連付けられることになり、これらの量に適用される単に簡便な名称であることに留意されたい。特に記述されない限り、以下の説明から明らかであるように、本開示の全体にわたって、「構成する（ｃｏｎｆｉｇｕｒｉｎｇ）」、「プログラムする（ｐｒｏｇｒａｍｍｉｎｇ）」、「統合（ｉｎｔｅｇｒａｔｉｏｎ）」、「提供する（ｐｒｏｖｉｄｉｎｇ）」、「実行する（ｅｘｅｃｕｔｉｎｇ）」などの用語を利用する説明が、コンピュータシステム又は同様の電子コンピュータ処理装置又はプロセッサ（例えば、図１Ａのシステム１１０）の動作及びプロセス（例えば、図７のフローチャート７００）を指すことが理解される。コンピュータシステム又は同様の電子コンピュータ処理装置は、コンピュータシステムメモリ、レジスタ又は他のそのような情報の記憶装置、送信装置又は表示装置内の、物理（電子）量として表されるデータを操作し変換する。
【００３１】
本明細書において説明される実施形態が、１つ又は複数のコンピュータ又は他の装置によって実行されるプログラムモジュールなどの、何らかの形態のコンピュータ可読記憶媒体上に存在するコンピュータ実行可能命令の一般的文脈で論じられることがある。限定目的ではなく例として、コンピュータ可読記憶媒体は、非一時的コンピュータ可読記憶媒体及び通信媒体を含んでよく、非一時的コンピュータ可読媒体は、一時的な伝播信号を除く、全てのコンピュータ可読媒体を含む。概して、プログラムモジュールには、特定のタスクを行うか、又は特定の抽象データ型を実現する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。プログラムモジュールの機能は、様々な実施形態において必要なように、組み合わされても分散されてもよい。
【００３２】
コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータなどの情報を記憶するためのあらゆる方法又は技術で実装される、揮発性及び不揮発性の、着脱可能及び着脱不可能な媒体が含まれる。コンピュータ記憶媒体には、限定されないが、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリなどのメモリ技術、コンパクトディスクＲＯＭ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）などの光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置若しくは他の磁気記憶装置、又は必要な情報を格納するのに用いられ得る、且つその情報を引き出すためにアクセスされ得る任意の他の媒体が含まれる。
【００３３】
通信媒体は、コンピュータ実行可能命令、データ構造、及びプログラムモジュールを具現化することができ、あらゆる情報送達媒体を含む。限定目的ではなく例として、通信媒体には、有線ネットワーク又は有線による直接接続などの有線媒体、並びに音響媒体、無線周波数（ＲＦ）媒体、赤外線媒体、及び他の無線媒体などの無線媒体が含まれる。上記のいずれかの組み合わせも、コンピュータ可読媒体の範囲内に含まれ得る。
【００３４】
図１Ａは、本発明の実施形態に従って、アプリケーションプログラミングインタフェース（ＡＰＩ）によって制御されるように動作可能な、クライアントのテスト要件を満たすようにカスタマイズ可能である、テスタ制御システム１１０の一例のブロック図である。例えば、ＡＰＩ制御システム１１０は、デフォルトのＡＰＩで読み出されない特定のデータを、テスト中にテスト対象デバイス（ＤＵＴ）から読み出すようにカスタマイズされてよい。テスタ制御システム１１０は概して、コンピュータ可読命令を実行することが可能な、あらゆる単一プロセッサ又は複数プロセッサのコンピュータ処理装置又はシステムを表す。制御システム１１０の例には、限定されないが、ワークステーション、ラップトップ、クライアント側の端末、サーバ、分散演算処理システム、ハンドヘルド型装置、又は任意の他の演算処理システム若しくは装置が含まれる。最も基本的な構成において、制御システム１１０は、少なくとも１つのプロセッサ１１４と、システムメモリ１１６とを含んでよい。
【００３５】
プロセッサ１１４は概して、データを処理することが可能な、又は命令を解釈して実行することが可能な、あらゆる種類又は形態の処理ユニットを表す。特定の実施形態において、プロセッサ１１４は、ソフトウェアアプリケーション又はモジュールから命令を受信してよい。これらの命令は、本明細書において説明される及び／又は示される例示的な実施形態のうち１つ又は複数の機能を、プロセッサ１１４に実行させてよい。
【００３６】
システムメモリ１１６は概して、データ及び／又は他のコンピュータ可読命令を格納することが可能な、あらゆる種類又は形態の揮発性又は不揮発性の記憶装置若しくは媒体を表す。システムメモリ１１６の例には、限定されないが、ＲＡＭ、ＲＯＭ、フラッシュメモリ、又は任意の他の適切な記憶装置が含まれる。必須ではないが、特定の実施形態において、制御システム１１０は、揮発性記憶装置（例えば、システムメモリ１１６など）及び不揮発性記憶装置（例えば、主記憶装置１３２など）の両方を含んでよい。
【００３７】
テスタ制御システム１１０は、プロセッサ１１４及びシステムメモリ１１６に加えて、１つ又は複数のコンポーネント又は要素も含んでよい。例えば、図１Ａの実施形態において、制御システム１１０は、メモリ制御装置１１８、入力／出力（Ｉ／Ｏ）制御装置１２０、及び通信インタフェース１２２を含み、これらはそれぞれ、通信インフラストラクチャ１１２を介して相互接続されてよい。通信インフラストラクチャ１１２は概して、コンピュータ処理装置の１つ又は複数のコンポーネント間の通信を容易にすることが可能な、あらゆる種類又は形態のインフラストラクチャを表す。通信インフラストラクチャ１１２の例には、限定されないが、通信バス（業界標準アーキテクチャ（ＩＳＡ）、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）、ＰＣＩエクスプレス（ＰＣＩｅ）、又は類似のバスなど）及びネットワークが含まれる。
【００３８】
メモリ制御装置１１８は概して、メモリ若しくはデータを扱うことが可能な、又は制御システム１１０の１つ若しくは複数のコンポーネント間の通信を制御することが可能な、あらゆる種類又は形態の装置を表す。例えば、メモリ制御装置１１８は、通信インフラストラクチャ１１２を介して、プロセッサ１１４、システムメモリ１１６、及びＩ／Ｏ制御装置１２０の間の通信を制御してよい。
【００３９】
Ｉ／Ｏ制御装置１２０は概して、コンピュータ処理装置の入力及び出力機能を調整及び／又は制御することが可能な、あらゆる種類又は形態のモジュールを表す。例えば、Ｉ／Ｏ制御装置１２０は、プロセッサ１１４、システムメモリ１１６、通信インタフェース１２２、ディスプレイアダプタ１２６、入力インタフェース１３０、及び記憶装置インタフェース１３４などの、制御システム１１０の１つ又は複数の要素間のデータ転送を制御してよく又は容易にしてよい。
【００４０】
通信インタフェース１２２は概して、例示的な制御システム１１０と１つ又は複数の追加の装置との間の通信を容易にすることが可能な、あらゆる種類又は形態の通信装置又はアダプタを表す。例えば、通信インタフェース１２２は、制御システム１１０と、追加の制御システムを含むプライベートネットワーク又はパブリックネットワークとの間の通信を容易にしてよい。通信インタフェース１２２の例には、限定されないが、有線ネットワークインタフェース（ネットワークインタフェースカードなど）、無線ネットワークインタフェース（無線ネットワークインタフェースカードなど）、モデム、及び任意の他の適切なインタフェースが含まれる。１つの実施形態において、通信インタフェース１２２は、インターネットなどのネットワークへの直接リンクを介して、リモートサーバへの直接接続を提供する。通信インタフェース１２２は、任意の他の適切な接続を通じて、そのような接続を間接的に提供してもよい。
【００４１】
通信インタフェース１２２は、外部バス又は通信チャネルを介して、制御システム１１０と１つ又は複数の追加のネットワーク装置若しくは記憶装置との間の通信を容易にするように構成された、ホストアダプタを表してもよい。ホストアダプタの例には、限定されないが、スモールコンピュータシステムインタフェース（ＳＣＳＩ）ホストアダプタ、ユニバーサルシリアルバス（ＵＳＢ）ホストアダプタ、ＩＥＥＥ（米国電気電子技術者協会）１３９４ホストアダプタ、シリアルアドバンスドテクノロジアタッチメント（ＳＡＴＡ）及び外部ＳＡＴＡ（ｅＳＡＴＡ）ホストアダプタ、アドバンスドテクノロジアタッチメント（ＡＴＡ）及びパラレルＡＴＡ（ＰＡＴＡ）ホストアダプタ、ファイバチャネルインタフェースアダプタ、イーサネット（登録商標）アダプタなどが含まれる。通信インタフェース１２２は、制御システム１１０が、分散演算処理又はリモート演算処理を行うことも可能にしてよい。例えば、通信インタフェース１２２は、命令をリモート装置から受信してよく、又は命令を実行のためにリモート装置へ送信してもよい。
【００４２】
図１Ａに示されるように、制御システム１１０は、ディスプレイアダプタ１２６を介して通信インフラストラクチャ１１２に接続された少なくとも１つの表示装置１２４を含んでもよい。表示装置１２４は概して、ディスプレイアダプタ１２６によって転送された情報を視覚的に表示することが可能な、あらゆる種類又は形態の装置を表す。同様に、ディスプレイアダプタ１２６は概して、表示装置１２４に表示するために、グラフィック、テキスト、及び他のデータを転送するように構成された、あらゆる種類又は形態の装置を表す。
【００４３】
図１Ａに示されるように、制御システム１１０は、入力インタフェース１３０を介して通信インフラストラクチャ１１２に接続された、少なくとも１つの入力装置１２８を含んでもよい。入力装置１２８は概して、コンピュータ又は人が生成する入力を制御システム１１０に提供することが可能な、あらゆる種類又は形態の入力装置を表す。入力装置１２８の例には、限定されないが、キーボード、ポインティングデバイス、音声認識装置、又は任意の他の入力装置が含まれる。
【００４４】
図１Ａに示されるように、制御システム１１０は、記憶装置インタフェース１３４を介して通信インフラストラクチャ１１２に接続された、主記憶装置１３２及びバックアップ記憶装置１３３を含んでもよい。記憶装置１３２及び１３３は概して、データ及び／又は他のコンピュータ可読命令を格納することが可能な、あらゆる種類又は形態の記憶装置又は媒体を表す。例えば、記憶装置１３２及び１３３は、磁気ディスクドライブ（例えば、いわゆるハードドライブ）、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどであってよい。記憶装置インタフェース１３４は概して、記憶装置１３２及び１３３と制御システム１１０の他のコンポーネントとの間でデータを転送するための、あらゆる種類又は形態のインタフェース又は装置を表す。
【００４５】
１つの例において、データベース１４０が、主記憶装置１３２に格納されてよい。データベース１４０は、単一のデータベース又はコンピュータ処理装置の一部を表してよく、複数のデータベース又はコンピュータ処理装置を表してもよい。例えば、データベース１４０は、制御システム１１０の一部、及び／又は図１Ｂの例示的なネットワークアーキテクチャ１００の一部（下記）を表してよい（そこに格納されてよい）。あるいは、データベース１４０は、制御システム１１０及び／又はネットワークアーキテクチャ１００の一部などのコンピュータ処理装置によってアクセスされることが可能な、１つ又は複数の物理的に別個の装置を表してよい（そこに格納されてよい）。
【００４６】
続いて図１Ａを参照すると、記憶装置１３２及び１３３は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を格納するように構成された着脱可能な記憶装置との間で、読み出し及び／又は書き込みを行うように構成されてよい。好適な着脱可能な記憶装置の例には、限定されないが、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが含まれる。記憶装置１３２及び１３３は、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令を制御システム１１０にロードすることを可能にするための、他の類似の構造又は装置を含んでもよい。例えば、記憶装置１３２及び１３３は、ソフトウェア、データ、又は他のコンピュータ可読情報を読み出し、書き込むように構成されてよい。記憶装置１３２及び１３３は、制御システム１１０の一部であってもよく、又は他のインタフェースシステムを通じてアクセスされる別個の装置であってもよい。
【００４７】
多くの他の装置又はサブシステムが、制御システム１１０に接続されてよい。反対に、図１Ａに示されるコンポーネント及び装置の全てが、本明細書において説明される実施形態を実施するために存在する必要はない。上述されたこれらの装置及びサブシステムは、図１Ａに示されるのと異なる方法で相互接続されてもよい。制御システム１１０は、任意の数のソフトウェア、ファームウェア、及び／又はハードウェア構成を利用してもよい。例えば、本明細書において開示される例示的な実施形態は、コンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも呼ばれる）として、コンピュータ可読媒体上に符号化されてよい。
【００４８】
コンピュータプログラムを含むコンピュータ可読媒体は、制御システム１１０にロードされてよい。コンピュータ可読媒体に格納されたコンピュータプログラムの全て又は一部は、その後、システムメモリ１１６並びに／又は記憶装置１３２及び１３３の様々な部分に格納されてよい。制御システム１１０にロードされるコンピュータプログラムは、プロセッサ１１４によって実行される場合、本明細書において説明される及び／又は示される例示的な実施形態の機能をプロセッサ１１４に実行させてよく、及び／又はこれらの機能を実行する手段であってもよい。追加的に又は代替的に、本明細書において説明される及び／又は示される例示的な実施形態は、ファームウェア及び／又はハードウェアにより実装されてよい。
【００４９】
図１Ｂは、クライアントシステム１５１、１５２、及び１５３、並びにサーバ１４１及び１４５がネットワーク１５０に接続され得る、ネットワークアーキテクチャ１００の一例のブロック図である。クライアントシステム１５１、１５２、及び１５３は概して、図１Ａのテスタ制御システム１１０などの、あらゆる種類又は形態のコンピュータ処理装置又はシステムを表す。
【００５０】
同様に、サーバ１４１及び１４５は概して、様々なデータベースサービスを提供する及び／又は特定のソフトウェアアプリケーションを実行するように構成された、アプリケーションサーバ又はデータベースサーバなどのコンピュータ処理装置又はシステムを表す。ネットワーク１５０は概して、例えば、イントラネット、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、又はインターネットを含む、あらゆる電気通信ネットワーク又はコンピュータネットワークを表す。
【００５１】
図１Ｂの制御システム１００を参照すると、通信インタフェース１２２などの通信インタフェースが、各クライアントシステム１５１、１５２、及び１５３とネットワーク１５０との間の接続を提供するのに用いられてよい。クライアントシステム１５１、１５２、及び１５３は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを用いて、サーバ１４１又は１４５上の情報にアクセスすることが可能であってよい。そのようなソフトウェアによって、クライアントシステム１５１、１５２、及び１５３は、サーバ１４０、サーバ１４５、記憶装置１６０（１）〜（Ｌ）、記憶装置１７０（１）〜（Ｎ）、記憶装置１９０（１）〜（Ｍ）、又はインテリジェント記憶装置アレイ１９５によってホストされるデータにアクセスすることが可能であってよい。図１Ｂは、データを交換するためにネットワーク（インターネットなど）を用いることを示しているが、本明細書において説明される実施形態は、インターネット又はあらゆる特定のネットワークベースの環境に限定されない。
【００５２】
１つの実施形態において、本明細書に開示される例示的な実施形態のうち１つ又は複数の全て又は一部は、コンピュータプログラムとして符号化され、サーバ１４１、サーバ１４５、記憶装置１６０（１）〜（Ｌ）、記憶装置１７０（１）〜（Ｎ）、記憶装置１９０（１）〜（Ｍ）、インテリジェント記憶装置アレイ１９５、又はこれらのあらゆる組み合わせにロードされ、これらによって実行される。本明細書に開示される例示的な実施形態のうち１つ又は複数の全て又は一部はまた、コンピュータプログラムとして符号化され、サーバ１４１に格納され、サーバ１４５によって実行され、ネットワーク１５０を介してクライアントシステム１５１、１５２、及び１５３に分散されてもよい。
【００５３】
［ソフトウェアアプリケーションプログラミングインタフェース（ＡＰＩ）を用いた自動テスト機能のユーザによる制御］
【００５４】
従来のテスト環境では、テスト開発環境は、テスタの高レベルの機能性及び特性の多くを制御するアプリケーションプログラミングインタフェース（ＡＰＩ）を含む場合がある。ＡＰＩは、テストプラットフォームの高レベルの機能性及び特性を管理するための制御サーバと、インタフェースで接続する。そのようなＡＰＩに関する１つの典型的な問題点は、テストシステムを所与のアプリケーション又は所与の顧客に合わせてカスタマイズするために、ＡＰＩを手動で変更し再プログラムしなければならないという点である。これは、高度な訓練を受けた専門職の人を伴う、難しい、時間と費用のかかる、複雑で間違いを起こしやすいプロセスになり得る。
【００５５】
有利なことに、本発明の実施形態が、特定の顧客のニーズに合ったＡＰＩの機能性及び特性をカスタマイズするために、より簡単で、より速く、より自動化されて合理的な方法を提供する。
【００５６】
一実施形態において、テスト開発環境は、複数のプリミティブに接続された制御サーバを含む。これらのプリミティブは、テストプランを複数のＤＵＴに適用するのに必要なテスタ回路を含む。所与のプリミティブによってテストされるＤＵＴは、ＤＵＴを含むＤＩＢを用いてプリミティブに接続される。ＡＰＩは、テストプラットフォームの高レベルの機能性及び特性を管理するための制御サーバとインタフェースで接続し、テストプラットフォームには、いくつかある機能のうち特に、テスト結果の出力をテスタから受信すること、及び、今後のために、顧客データベース内にデータを保管することができるフロア管理モジュールにデータを格納することが含まれる。
【００５７】
一実施形態において、本発明は、カスタマイズ可能なＡＰＩを備え、それは例えば、デフォルトの挙動を提供するが、専用のユーザライブラリに格納されているユーザコード及びユーザＡＰＩも受け入れるような方法で開発されている、顧客統合生産プロセス（ＣＩＭ）である。ユーザコード及びユーザＡＰＩは、それらがＣＩＭ内で自動的に統合され、それにより、顧客の特定の生産プロセス、ＧＵＩ表示要件、ＤＵＴに合わせてＣＩＭをカスタマイズするようにＣＩＭのオペレーション並びに機能及び特性を変更し得るような方法で書かれている。ＣＩＭは、顧客によって供給されるユーザコード及びユーザＡＰＩによって自動的に変更されるような方法で開発されているので、ＣＩＭはカスタマイズするのがはるかに容易であり、修正しても間違いを起こしにくく、時間やコストをあまりかけずにカスタマイズすることができる。これにより、顧客のテストスループットが増加し、同時にテストソフトウェアコストが低減する。
【００５８】
図２Ａは、本発明の一実施形態に従って、ＤＵＴインタフェースボード（ＤＩＢ）４００とインタフェースで接続されたプリミティブ４１０を示す。図２Ａに示されるプリミティブは、テストヘッドに挿入され得るディスクリートテストモジュールの一種であり、テストプランに従ってＤＵＴに対してテストを行うテスト回路を備える。プリミティブは筐体４５０を有し、その中に、例えば、サイトモジュール、電源などの様々な電子部品が全て収納されている。ＤＩＢ４００は、ＤＵＴ４２０の大きさに合わせた特注のコネクタを用いて、複数のＤＵＴ４２０を含み得る。ＤＩＢ４００は、筐体４７０も含み得る。ＤＩＢ４００は、ロードボード（不図示）を通じて、プリミティブ４１０の汎用バックプレーン（不図示）にインタフェースで接続されている。プリミティブ４１０は、ＤＵＴ４２０に対してテストプランを実行するためのテスト回路を含む。プリミティブ４１０は、任意の他のプリミティブから独立して動作することができ、制御サーバに接続されている。
【００５９】
図２Ｂは、ラックに保持された複数のプリミティブ４９１を含むワークセルを示す。本発明の実施形態は、（図２Ａに示されるプリミティブと類似した）複数のプリミティブ及び関連するＤＩＢを利用して、ＤＵＴをテストする。各プリミティブは、他のプリミティブから独立して動作することが可能であることを意味するモジュール方式であり、したがって、（図２Ｂに示されるように）ラック内に配置された複数のプリミティブはそれぞれ、異なるテストプランに従って動作することができる。プリミティブは、命令、制御、管理などのために、制御サーバと通信する。制御サーバは、制御サーバがサポートする様々なプリミティブの複数のアプリケーションプログラム又はテストプランをホストすることが可能である。プリミティブは、標準的なＩＰネットワークを介してサーバと通信することができる。遠く離れて位置する可能性がある様々なコンピュータシステムは、標準的なＩＰネットワーク接続を介してサーバにアクセスすることができる。
【００６０】
したがって、このテストプラットフォームの下では、１）プリミティブのモジュール性、及び２）標準的なＩＰネットワーク接続の使用によって、複数のプリミティブが、同じユーザによる所与のテストプランに基づいて複数のＤＵＴをテストすることが可能であり、同じラックの第２の複数のプリミティブが、第２のユーザなどによって管理される全く異なるアプリケーション（又は、異なるテストプラン）を実行する。例えば、６つのプリミティブを含むテストヘッドにおいて、これらのプリミティブのうち２つが、ＳＡＴＡ型の装置をデバッグするために技術部署専用とすることが可能であってよく、これらのプリミティブのうち４つが生産部署によるＳＳＤドライブの大量テスト専用としてよい。
【００６１】
図３は、ＣＩＭが本発明の実施形態に従って動作する、例示的なシステム環境を示すブロック図である。システム３００は、複数のユーザステーション１０及び２０に接続された制御サーバ３０を含む。ユーザステーションは、標準的なＩＰ通信ネットワークを介して制御サーバ３０に接続される。この例では、１つのユーザステーション１０は、技術テストを行う技術ツールであり、ユーザステーション２０は、ＤＵＴテストを制御する生産ツールである。ユーザステーション１０は、サーバ３０を通じてプリミティブ４０ａを制御し、プリミティブ４０ａは、ＤＵＴ５０ａに対してテストプランＴＰ１を実行することが示されている。ユーザステーション２０は、サーバ３０を通じてプリミティブ４０ｂを制御し、プリミティブ４０ｂは、ＤＵＴ５０ｂに対してテストプランＴＰ２を実行することが示されている。
【００６２】
２つのプリミティブ、４０ａ及び４０ｂは、（図２Ｂの示されるように）単一のラック内に配置され得る。プリミティブ４０ａは、テストプラン「ＴＰ１」を用い、（ＤＩＢを介して）複数のＤＵＴ５０ａをテストすることが示されている。プリミティブ４０ｂは、テストプラン「ＴＰ２」と呼ばれる別個のアプリケーションを用い、（ＤＩＢを介して）複数のＤＵＴ５０ｂをテストすることが示されている。２つの異なる標準的なＩＰネットワーク接続を介して、第１のユーザコンピュータ１０及び第２のユーザコンピュータ２０が両方とも、制御サーバ３０に接続される。
【００６３】
例えば、図３に示されるように、第１のユーザコンピュータは、顧客の技術部署専用としてよく、第２のユーザコンピュータは、生産部署専用としてよい。１つの例において、これらのユーザコンピュータは、互いに遠く離れていてよく、且つサーバ３０から遠く離れていてもよい。さらに多くのプリミティブが、サーバ３０と通信状態にあってよく、説明のために２つだけが示されていることが理解される。さらに、バーコードスキャナなどの他のテスト装置が、サーバ３０に接続されてもよく、生産ツール２０及びＣＩＭ６０を用いてアクセス可能であってよい。
【００６４】
図３に示される例において、第２のユーザコンピュータ２０は、プリミティブ４０ｂによる実行を介して複数のＤＵＴ５０ｂに対する生産テストプランを制御している。この生産テストプランは、制御サーバ３０にロードされ、次に、ＤＵＴ５０ｂに対して実行するために、プリミティブ４０ｂにダウンロードされてよい。テスト結果は、その後、反対方向に伝達され得る。この例において、ユーザコンピュータ２０は、ＤＵＴ５０ｂの大量生産テストの間、生産専門職の管理下にあってよい。
【００６５】
このように、本発明の実施形態は、同じテスタを用いて、全く異なる機能をサポートすることができる。例えば、生産テスト中に、テスタは、テスタ内のプリミティブのサブセットを用いて、一定のワークフローを実行してよい。例として、生産ワークフローには、ＳＳＤドライブにバーコードを付けること、これらのＳＳＤドライブをテストすること、及び各ＳＳＤドライブに「合格」又は「不良」としてタグを付けることが含まれてよい。同時に、技術チームの一員が、テストヘッド内の異なるセットのプリミティブを用いて、ＳＡＴＡドライブの不良結果をデバッグするなどの全く異なる機能を実行してよい。
【００６６】
上記テストと同時に、第１のユーザコンピュータ１０は、プリミティブ４０ａを介して、複数のＤＵＴ５０ａに適用する技術テストプランを制御することができる。技術テストプランは、まだ完成していない開発中のテストプランであってよい。あるいは、技術テストプランは、異なるプロトコルを用いて異なるＤＵＴをテストするための、単に異なる種類の生産テストプラン、例えば、ＤＵＴタイプｘに対してＤＵＴタイプｙであってもよい。この技術テストプランは、制御サーバ３０にロードされ、次に、ＤＵＴ５０ａに対して実行するために、プリミティブ４０ａにダウンロードされてよい。テスト結果は、その後、反対方向に伝達され得る。この例において、ユーザコンピュータ１０は、今後使うために現在試作中のテストプランを開発するテストエンジニアの管理下にあってよい。
【００６７】
１つの実施形態において、ユーザコンピュータ１０及び２０は、テストソフトウェア、例えば、Ａｄｖａｎｔｅｓｔ  ＳＬＡＴＥ又はＡｄｖａｎｔｅｓｔ  Ｓｔｙｌｕｓを実行するシステム制御装置であってよい。異なる実施形態において、ユーザコンピュータ１０及び２０は、通信ネットワーク、例えばＩＰネットワークを通じてサーバ３０に接続されたユーザ端末であってよく、サーバ３０は、テストソフトウェア、例えば、Ａｄｖａｎｔｅｓｔ  Ｓｔｙｌｕｓを実行するシステム制御装置であってよい。
【００６８】
１つの実施形態において、サーバ３０は、接続されたプリミティブ全てのテストを監視する制御装置であり、ユーザにＧＵＩも提供する。他の実施形態において、図３に示されるように、ユーザはＩＰ接続を通じてサーバに接続し、サーバに接続されたユーザコンピュータのそれぞれは、別個のＧＵＩを関連するユーザに提供し、関連するプリミティブのセットを制御する。
【００６９】
サーバ３０は、１つの実施形態において、ユーザ間にリソースを割り当てる割り当てスキームを実行することができる。例えば、サーバは、ユーザの用途に応じて、ユーザにプリミティブを割り当てることができる。１つの実施形態において、サーバは、異なる目的の異なるプリミティブを異なるユーザに動的に割り当て、且つ管理することができる。サーバは、ユーザコンピュータのそれぞれと、サーバ３０に接続された様々なプリミティブ（及び、それらの関連ＤＵＴ）との間の双方向通信も可能にする。サーバはまた、接続された様々なプリミティブ上で同時に実行されるワークフローを管理し、接続されたプリミティブ及び／又はテスタスライス上で、様々なワークフローを追跡することができる。
【００７０】
さらに重要なことには、ＣＩＭ６０が、システム１００の高レベルの機能性及び特性を制御する。例えば、ＣＩＭ６０は、テストプランのサーバ３０へのロードを制御する。ＣＩＭ６０は、新たなＤＵＴがいつプリミティブに挿入されたかをテスト中に記録することができ、ＤＵＴに関連付けられた識別情報に基づいてＤＵＴを認識することができる。ＣＩＭ６０は、新たなＤＵＴの搭載に関する情報を、例えばサーバ３０から受信し、サーバ３０は、接続されたプリミティブからその情報を受信する。ＣＩＭは、様々なＤＵＴパラメータを、ユーザステーション及び／又は制御サーバ３０に提供する。これにより、ＣＩＭは、専用のＤＵＴテストパラメータを制御サーバ３０に任意選択で提供することが可能になる。
【００７１】
ＣＩＭは、カスタマイズされたＧＵＩ表示情報を生産ツール２０に提供することもできる。ＣＩＭは、テストプラン実行を開始することができ、様々なＤＵＴに対するテストプランの実行結果も受信する。ＣＩＭは、テスト結果に関して、機能性の整理及び記録を行うことができる。ＣＩＭは、テスト結果データを適切なＤＵＴに関連付けし、この情報を顧客又はプロセス固有のフロア管理モジュール７０に報告することができ、フロア管理モジュール７０は、後の参照のためにＤＵＴごとに、データベース、例えば顧客データベース８０にデータを保管することができる。ＣＩＭはまた、テスト情報が暗号化されているかどうか、且つ特定の顧客のテストに用いられるべき暗号化の種類であるかどうかを管理する。ＣＩＭは、ステーションと関連付けられたテストの間に、ユーザステーション１０及び２０に表示されるグラフィカルユーザインタフェースも制御することができる。
【００７２】
１つの実施形態において、ＣＩＭは、サーバ３０上で実行され得るＡＰＩである。別の実施形態において、ＣＩＭは、異なる制御装置（又はコンピュータ）上で実行され得る。
【００７３】
つまり、ＣＩＭ６０は、１）どのテストプランが用いられるか、２）ユーザインタフェースがユーザステーションを介してテスタ上でどのように見えて、どのように動作するか、３）次のプロセスをテストし制御するために新たなＤＵＴが挿入された場合の処理、４）テストのテスト結果がどのように収集され格納されるかなどに関して、テストシステム１００の多くの高レベルの機能及び特性を制御することができる。
@プリミティブ又はＤＵＴと通信するために、ＣＩＭは、サーバ３０を経由しなければならない。例えば、テストを実行する又はＤＵＴステータスを読み出すために、ＣＩＭは、中間装置としてサーバ３０を用いなければならないであろう。
【００７４】
本発明の態様によれば、ユーザは、ユーザコードを格納し、システム１００と関連付けられたライブラリ９０内のＡＰＩを用いることができる。ユーザコードは、ＣＩＭ開発者、例えばＡｄｖａｎｔｅｓｔ  Ｃｏｒｐ．によって提供される情報及び構文に基づいて顧客が開発し、その後ライブラリ９０にロードされてよい。次にＣＩＭ６０は、ユーザコード及びユーザＡＰＩを統合し、これによりＣＩＭ６０は、特定の顧客のニーズに合わせて自動的にカスタマイズされ、ユーザライブラリ９０のコンテンツに従って、特定の機能及び特性を採用する。このように、本発明は、ＣＩＭ６０をカスタマイズするための自動機構を効果的に提供し、その結果、各顧客のニーズに合わせてＣＩＭ６０を手動で書き直したり、設計し直したりすることが不要になる。これにより、新たなＣＩＭを開発するためのターンアラウンドタイムを増やし、また、ソフトウェアの全体コスト、及びＣＩＭ修正によって生じるエラーを減らす。
【００７５】
本発明の実施形態の利点には、特定の顧客のテストニーズ及び必要な特性に合わせてＣＩＭをカスタマイズするための手法が、より効率的で、自動化されて、より簡単であることが含まれる。これにより、ＤＵＴの大量テストに関して、テストスループットがより速くなり、コスト及び複雑性が低減されることになる。他の利点には、ＣＩＭをカスタマイズするのに、高度な訓練を受けたプログラムの専門家及び設計者が必ずしも必要ではないことが含まれる。
【００７６】
従来のテスタシステムでは、上述のように、テスタの高レベルの機能性及び特性の多くを制御するＡＰＩは、各顧客のニーズに合わせて手動で書き直したり、設計し直したりすることが必要であった。
本発明の実施形態のＡＰＩ、例えばＣＩＭは、顧客ごとに標準化された生産フローを提供することで、こうしたことを不要にする。顧客ごとに標準化された生産フローは、その後、顧客が、顧客自身の目的に適合するように、簡単な方法又は大がかりな方法でカスタマイズすることができる。例えば、大部分の顧客は、生産フロー内の様々なパラメータに関して類似した要件を有する。例えば、テストプログラムをどこに、どのようにしてロードする必要があるか、テストプログラムはどこから開始するか、エラーが発生した場合に出力される警告の種類、ＤＵＴをどこに挿入するかをユーザに示すための表示灯の種類などである。しかしながら、特定の顧客が、生産フローのデフォルトの挙動に対して、簡単な変更又は大がかりな変更を行うことを望む場合がある。
【００７７】
本発明の実施形態は、個々の顧客のニーズに適合するようにカスタマイズされ得る標準化されたインタフェース（例えば、ＣＩＭ）を提供することで、大部分の顧客の類似したプロセス要件を活用する。これが、顧客のニーズに基づいて顧客ごとに専用のＡＰＩを開発するという、手間を要し且つ骨の折れるプロセスに取って変わる。これにより、各ユーザが、独自の生産フローに合った新たなＡＰＩ又はコードの開発にリソースを費やすことなく、デフォルトの生産フローの独自の構成を有することが可能になる。
【００７８】
ＣＩＭは、デフォルトの挙動を全ての顧客に提供するが、専用のユーザライブラリに格納されているユーザコード及びユーザＡＰＩを受け入れることも有利である。換言すれば、デフォルトの生産フローは、事前にプログラムされたユーザライブラリの独自のセットにアクセスする。しかしながら、ＣＩＭのデフォルトの生産フローは、デフォルトの挙動と異なるように生産フローを構成し得るユーザ提供の専用のライブラリにアクセスするように、個々のユーザによってカスタマイズされ得る。したがって、ＣＩＭは、ユーザによるいくつかのルーチンのカスタマイズを可能にし、且つユーザによって完全に定義された機能も可能にするフレームワークを提供する。
【００７９】
ＣＩＭによって提供されるデフォルトのフレームワークは、全ての顧客に適用され得るデフォルトの生産フローを含む。しかしながら、専用の要件を有する顧客は誰でも、自身の生産フローに特有の段階を、追加、編集、又は削除するように、デフォルトの生産フローをカスタマイズすることができる。
【００８０】
上述のように、ユーザコード及びユーザＡＰＩは、それらがＣＩＭ内で自動的に統合され、それにより、顧客の特定の生産プロセス、ＧＵＩ表示要件、ＤＵＴに合わせてＣＩＭをカスタマイズするように、ＣＩＭのオペレーション並びに機能及び特性を変更し得るような方法で書かれている。ＣＩＭは、顧客によって供給されるユーザコード及びユーザＡＰＩによって自動的に変更されるような方法で開発されているので、ＣＩＭはカスタマイズするのがはるかに容易であり、修正しても間違いを起こしにくく、時間やコストをあまりかけずにカスタマイズすることができる。
【００８１】
例えば、ユーザステーション２０（生産ツール）の顧客が、テストが自分の生産フローで行われる方式を構成するのに、ＡＰＩ（例えば、ＣＩＭ）を用いてよい。ＣＩＭにおけるデフォルトの生産フローは、ユーザがＤＵＴをプリミティブに挿入したときに、テストシステム上の赤色ＬＥＤを表示するように構成されてよい。顧客が赤色ＬＥＤを点滅光に変更するようにＣＩＭをカスタマイズすることを望む場合、顧客は、代わりに点滅光を表示するようにＣＩＭを変更するＡＰＩ又はユーザコードを用いて、ＣＩＭを容易にカスタマイズすることができる。これにより、新たな顧客が自分の生産フローをデフォルトのＣＩＭと統合することがより簡単になる。したがって、自分の生産フローを扱うために、独自のユーザコード及びＡＰＩを開発する必要がある新たな顧客の骨の折れるプロセスが、本発明の実施形態により回避されるのは有利である。
【００８２】
１つの例において、顧客は、プリミティブ４０ａ又は４０ｂのファンの挙動を制御する必要があり得る。サーバ３０が起動すると、ファンは通常、デフォルトの速度及びデフォルトの温度制御に設定されることになる。本発明の実施形態により、ユーザは、生産フローのデフォルトの挙動の一部であり得るデフォルトのファン速度及び温度制御のルーチンを、異なる速度に変更することが可能になる。ユーザは、例えば、（下記にさらに論じられることになるＳＬＡＴＥインタフェースを用いる）生産ツール２０上のＧＵＩを用いてファン速度を変更することが可能であってよい。ユーザは、ＣＩＭをカスタマイズし、新たなファン速度及び温度制御をカスタマイズされたＣＩＭに組み込むことが可能であってよい。例えば、ユーザは、ファン速度をイベントに依存させることが可能であってよく、例えば、テストテストが始まるとファンが高速で回転してよく、テストが終わるとファンが低速で回転してよい。
【００８３】
別の例では、新たな顧客がＣＩＭの一部であるデフォルトの生産フローを用いることを望む場合がある。しかしながら、これらの顧客は、デフォルトのＣＩＭレベルでさらされたくない場合がある機密データのために、特定のセキュリティ対策を利用する必要があり得る。上述のように、ＣＩＭはまた、テスト情報が暗号化されているかどうか、且つ特定の顧客のテストに用いられるべき暗号化の種類であるかどうかを管理する。新たな顧客は、顧客に固有である特定の種類の暗号化を用いるようにＣＩＭをカスタマイズすることが可能であってよい。換言すれば、新たな顧客は、デフォルトの暗号化挙動を顧客固有の暗号化スキームと取り替える（ライブラリ９０に格納された）ユーザ指定のライブラリにアクセスするように、ＣＩＭのデフォルトの挙動を変更することが可能であってよい。したがって、本発明の実施形態により、顧客は、ユーザ指定の暗号化手法を用いてテストデータが暗号化されたままになるように、ＣＩＭをカスタマイズすることが可能になる。
【００８４】
異なる例において、新たな顧客が、生産ツール２０とプリミティブ４０ｂとの間でセットアップ中に交換されるデフォルトの情報を変更することを望む場合がある。例えば、顧客が、元の生産フローの一部ではないセットアップ中に、プリミティブ４０ｂに関する何らかの追加情報を必要とする場合がある。本発明の実施形態により、顧客は、プリミティブ４０ｂから追加情報を取得するために、（ライブラリ９０に格納された）ユーザ指定のライブラリで、デフォルトの生産フローを変更することが可能になることは有利である。ＣＩＭ６０は、ライブラリ９０に格納されたユーザコード及びユーザＡＰＩを統合し、これによりＣＩＭ６０は、特定の顧客のニーズに合わせて自動的にカスタマイズされ、ユーザライブラリ９０のコンテンツに従って、特定の機能及び特性を採用する。
【００８５】
上述のように、ＣＩＭはまた、テスト結果データを適切なＤＵＴに関連付けて、この情報を顧客又はプロセス固有のフロア管理モジュール７０に報告することができ、フロア管理モジュール７０は、後の参照のためにＤＵＴごとに、顧客データベース８０にデータを保管することができる。例として、顧客は、フロア管理モジュール７０の一部である独自の情報又はプロセスを有してよい。顧客は、ＤＵＴをテストしている間に、より多くの情報をＤＵＴから取得するようにデフォルトの生産フローを変更することを望む場合がある。顧客は、ＤＵＴ５０ｂとフロア管理モジュール７０との間のデータ交換をより厳密に管理するために、（ＣＩＭライブラリ６０へのアクセスを可能にする）生産ツール２０を用いてデフォルトの生産フローを修正するであろう。さらに、顧客は、個々のＤＵＴ処理を管理することが可能であってよく、それにより、顧客は各ＤＵＴのテスト及び処理をさらに管理することが可能になる。例えば、顧客は、ＤＵＴに対してテストプログラム内で、特定のテストプログラムを実行するようにＣＩＭを修正してよく、顧客は、ＤＵＴに対して実行する特定のテストフローを望み、そのテストの結果をフロア管理モジュール７０に戻してよい。顧客によるデフォルトの生産フローの修正はまた、テストプロセスの結果に基づいて決定を行うことを含んでもよい。ＣＩＭはまた、顧客がデフォルトの生産フローの修正に意思決定段階をプログラムすることを可能にする。
【００８６】
ＣＩＭはまた、新たなＤＵＴがテスト及びそれに続く任意の処理のために挿入されると行われる処理に対して、さらに多くの管理を可能にし得る。さらに、ＣＩＭは、テストのテスト結果が収集され格納される方式の修正を可能にし得る。顧客はまた、このデータを暗号化して、フロア管理モジュール７０の一部である独自の情報を保護することを選択してもよい。
【００８７】
生産ツール２０は通常、デフォルトのサービスプロバイダソフトウェア、例えば、ＭＰＴ３０００ＨＶＭ製品用のＳＬＡＴＥインタフェース（Ａｄｖａｎｔｅｓｔ  Ｓｔｙｌｕｓソフトウェアパッケージの一部）を含み、これが、大量生産環境での非同期の単一ＤＵＴテスト用に最適化される。生産ツール２０はまた、顧客によって構成された、顧客にとっては独自のものである、補助的な顧客固有のＡＰＩ又はプロセスも含むことになる。ＣＩＭは、デフォルトの生産フローを含むサービスプロバイダソフトウェアと、生産ツール２０でも実行される顧客固有のＡＰＩ及びプロセスとの間の橋渡しを提供する。換言すれば、ＣＩＭは、デフォルトの生産フローを実行するソフトウェアが、生産ツール２０において顧客固有のカスタマイズと統合することを可能にする。
【００８８】
ＣＩＭは、カスタマイズされたＧＵＩ表示情報を生産ツール２０に提供することもできる。換言すれば、顧客は、デフォルトのサービスプロバイダのＧＵＩ、例えば、ＳＬＡＴＥインタフェースソフトウェアが見える方式を変更するようにＣＩＭをカスタマイズしてよい。顧客は、顧客に固有の、ユーザに合った特定の生産フロー及び任意の関連するメッセージ又は命令を用いて、ＧＵＩをカスタマイズすることが可能であってよい。換言すれば、ＣＩＭは、ユーザインタフェースがユーザステーション２０を介してテスタ上で見える方式及び動作する方式に合った修正を可能にする。ＧＵＩのカスタマイズは、ここでも、ユーザ固有のカスタマイズがデフォルトのサービスプロバイダソフトウェアと統合されることを可能にするＣＩＭの結果として可能である。
【００８９】
図４は、ＣＩＭが本発明の実施形態に従って動作する、例示的なテスト環境の別の高レベルアーキテクチャの概要を示す。
【００９０】
図４に示されるように、ユーザは、テスタソフトウェア、例えばＳＬＡＴＥのＧＵＩ４２０と対話する。例えば、図３の生産ツール２０は、ＧＵＩ４２０でテスタソフトウェアを実行してよい。生産ツール２０は、顧客に合わせたカスタマイズを提供するのにテスタソフトウェア、例えばＳＬＡＴＥを用い、（図３のサーバ３０に対応する）サーバ４３０を通じて、基本的なテスタリソース及びプロセスにアクセスすることも可能である。ユーザは、ＣＩＭ４６９を記録、実行、又は停止するコマンドをＧＵＩ４２０から入力することができる。上述のように、ＣＩＭ４６９は、ワークフロー命令を用いて、カスタマイズされたＧＵＩ表示情報をＧＵＩ４２０に提供することができる。
【００９１】
さらに、ＧＵＩを用いる生産ツール２０は、ＵＩコマンドをサーバ４３０へ送信することができる。生産ツール２０は、サーバ４３０を用いて、基本的なテスタリソース例えばプリミティブ、及びプロセスにアクセスすることが可能である。
【００９２】
顧客は、顧客ＣＩＭのダイナミックリンクライブラリ（ＤＬＬ）４７０として、図４に示されるＣＩＭを修正してよい。顧客が生成するコード又はＡＰＩは、ＣＩＭ開発者によって提供される情報及び構文に基づいて顧客が開発し、その後（図３に見られるように）ライブラリ９０にロードされてよい。ＣＩＭ４６９は次に、ユーザコード及びユーザＡＰＩを統合し、これによりＣＩＭ４６９は、特定の顧客のニーズに合わせて自動的にカスタマイズされ、ユーザライブラリ９０のコンテンツに従って特定の機能及び特性を採用する。顧客による修正により、検証ＤＬＬ４７２が生成され、これは生産サーバ４７３によって検証される。一実施形態において、ライブラリ９０はＤＬＬ４７２に対応する。
【００９３】
上述のように、ＣＩＭ４６９は、テストプランのサーバ４３０へのロードを制御する。ＣＩＭ４６９は、新たなＤＵＴがいつプリミティブに挿入されたかをテスト中に記録することができ、ＤＵＴに関連付けられた識別情報に基づいてＤＵＴを認識することができる。ＣＩＭ４６９は、新たなＤＵＴの搭載に関する情報を、例えばサーバ４３０から受信し、サーバ４３０は、接続されたプリミティブからその情報を受信する。ＣＩＭは、様々なＤＵＴパラメータを、ユーザステーション及び／又は制御サーバ４３０に提供する。これにより、ＣＩＭは、専用のＤＵＴテストパラメータを制御サーバ４３０に任意選択で提供することが可能になる。ＣＩＭはまた、特定のプリミティブを選択するために、又は特定のＤＵＴを実行するために、コマンドをサーバ３０へ送信することもできる。ＤＵＴのテストフローは、ＧＵＩ４２０又はＣＩＭ４６９から開始されてよいが、プリミティブへの情報のフローに関するコンパイルは、常にサーバ４３０を用いて行われる。
【００９４】
顧客は、これらの特性のいずれかを顧客固有のコードを用いてカスタマイズし、顧客ＣＩＭのＤＬＬ４７０を用いてＣＩＭ４６９に組み込むように、デフォルトの生産フローを修正することができる。サーバ４３０は、テスタリソース、例えばプリミティブにアクセスして利用するために、何らかの機能性を提供するが、ＣＩＭは、サーバ４３０のデフォルトの機能性を異なる方法で用いるか、又はデフォルトの生産フローに加えて若しくはデフォルトの生産フローの代わりに異なるテストフローを実行することができるカスタマイズが行われることを可能にする。
【００９５】
図５は、本発明の実施形態に従ってＣＩＭのデフォルトの生産フローを修正した、顧客用の例示的な作業命令シーケンスを示す。図５の作業命令シーケンスは、顧客が、独自のテストプロセスのニーズに適合させるために、ＣＩＭ５６９に行うことができるいくつかの例示的な修正を示す。例えば、顧客は、シーケンス「ｓｔａｒｔＷｏｒｋＯｒｄｅｒ」５８０によって示される特定の作業命令を開始するボタンで、生産ツール５２０（ＳＬＡＴＥソフトウェアを含む）においてＧＵＩを修正してよい。顧客がＧＵＩの適切なボタンを押すことによって特定の作業命令を開始した場合、ＣＩＭに通知され、ＣＩＭは次に、作業命令の開始を顧客インタフェース（例えば、図３のフロア管理モジュール７０）に報告する。これは、「初期化」シーケンス５８１として図５に示されている。
【００９６】
図５の例において、顧客は、ＤＵＴが入っている生産フロアのあらゆる受け入れ箱のシリアルナンバ及びバーコードデータをスキャンするようにＣＩＭを修正してよい。これにより、作業命令が単一又はいくつかのバーコードナンバーと関連付けられているかどうかに関して、顧客に通知されることになり得る。この例のバーコードスキャナは、サーバ５３０に接続されてよい。修正されたＣＩＭは、シーケンス５８２の間にサーバ５３０と通信してバーコードデータを取得し、その後、ＣＩＭはさらに、シーケンス５８３の間にバーコードデータのＧＵＩへの報告を返すように修正される。
【００９７】
同様に、シーケンス５８４は、顧客による、作業命令情報を設定するための修正である。顧客は、シーケンス５８３及び５８４の間にＧＵＩを修正することで作業命令に関する何らかの情報を入力することが可能であってよい。作業命令情報は、シーケンス５８４の間に設定され且つ検証される。次にＣＩＭは、シーケンス５８５の間に、検証された作業命令に合ったテストプランデータを得る。（また、シーケンス５８５では、ユーザは、ＴｈｅｒｍａｌＣｏｎｔｒｏｌ  ＤＬＬを用いることを選択した場合、サーマルアルゴリズム及びサーマルセットポイントを指定することもできる）。ＣＩＭは、例えば（図３に示されるように）フロア管理モジュール７０を通じて、顧客にテストプランを入力させることができる。シーケンス５８６の間に、作業命令は設定されてＧＵＩに報告される。テストされるＤＵＴは、シーケンス５８７の間にＣＩＭによって検証され、ＤＵＴに対して実行されるテストフロー名がフロア管理モジュール７０から取得される。
【００９８】
同様に、図５に示される各シーケンスは、ＣＩＭのデフォルトの生産フローに対して顧客によって作成された修正の一例である。例えば、シーケンス５７２は、テストプランデータを設定するためにサーバ４３０と通信するＣＩＭ４６９を含み、シーケンス５７３は、ＤＵＴとの接続を確立するためにサーバ４３０と通信するＣＩＭ４６９を含み、シーケンス５７４は、イベントをＧＵＩに報告するＣＩＭ４６９を含む。
【００９９】
図６は、本発明の実施形態に従って顧客がＣＩＭのデフォルトの生産フローを修正し得る方式を示す、例示的な状態図を示す。図６は、顧客用のデフォルトの生産フローを示し、顧客は、特定の段階において生産フローに合わせた特定のカスタマイズが可能である。例えば、さらに下記で論じられるように、段階６２２（作業命令のカスタマイズ）及び段階６２３（ＤＵＴのカスタマイズ）が、統合ポイントを顧客に提供し、ＣＩＭの修正によって、デフォルトのＣＩＭにより提供される標準的な生産フローのカスタマイズが可能になる。換言すれば、段階６２２及び６２３は、顧客が生産ワークフローを入力し、それを自分の特定のニーズに基づいてカスタマイズするためのエントリポイント段階である。
【０１００】
したがって、他の段階のいずれかで行われる顧客によるあらゆる修正は、段階６２２又は６２３を経由する必要があることになる。例えば、ユーザが、段階６０３でテストプランをダウンロードすることに関連した、何らかの手順を修正することを望んだ場合、カスタマイズ統合プロセスが、ユーザを段階６２２に戻すように関連付けることになるであろう。同様に、ユーザが、テストサイトの選択（例えば、プリミティブの選択）に関連した何らかの手順を修正することを望んだ場合、ユーザは、段階６２３に戻るように関連付けられる必要があるであろう。
【０１０１】
作業命令が用意されて処理された後、作業命令に関するイベントはこれ以上なく、代わりに、ＣＩＭが、特定のＤＵＴに関するイベントを処理し始める。したがって、段階６２２では、作業命令処理に関連するあらゆる修正が検討され、段階６２３では、ＤＵＴ処理に関連するあらゆる修正が検討される。段階６２２及び６２３は、ＣＩＭを修正する顧客にとって、作業命令処理及びＤＵＴ処理がそれぞれ行われる主要な統合ポイントである。しかしながら、他の段階はまた、ユーザが追加の構成を実行するためにカスタマイズ統合段階（例えば、６２２及び６２３）に戻ることを可能にする割り込みポイントを提供する。
【０１０２】
段階６０１において、例えば、バーコード、ＤＵＴのシリアルナンバなどのデータが、作業命令のためにスキャンされ、作業命令が用意される。（段階６０１は、図５のシーケンス５８０〜５８４におおよそ対応し得る）。例えば、作業命令には、ＳＡＴＡディスクドライブのバケットと関連付けられた品番をスキャンし且つテストすることが含まれてよい。スキャンされたデータは、次の段階、作業命令のカスタマイズ６２２へ伝達される。上述のように、段階６２２（作業命令のカスタマイズ）は、顧客による作業命令処理に関連した修正を可能にする。カスタマイズに続いて、段階６０２で、テストされるＤＵＴを含むプリミティブが選択される（又は搭載される）。この時点で、セットアップされたプリミティブの何らかの修正を顧客が行う必要がある場合、このカスタマイズを行うために、ＣＩＭは段階６２２に戻る割り込みポイントを顧客に与える。
【０１０３】
段階６２２の間にユーザによって示されたテストプログラムは、段階６０３で、プリミティブにダウンロードされる。段階６０２と同様に、あらゆる修正を行うために、顧客には、ここでも割り込みポイントが提供される。段階６０４で、ＤＵＴバーコードはスキャンされ、ユーザは、このプロセスのカスタマイズを段階６２２に戻ることによって行うという選択肢を有する。作業命令をセットアップして処理する各段階で、ユーザは、段階６２２に戻ることでカスタマイズを行うことができる。
【０１０４】
作業命令が処理されると、次に個々のＤＵＴテストのカスタマイズが、ＤＵＴバーコードがスキャンされた後、段階６０４に引き続いて始まる。ＤＵＴバーコードが段階６０４でスキャンできた場合、生産フローは段階６２３へ進み、そうではなく、間違ったデバイスがスキャンされたか、又はスキャンに失敗した場合、生産フローは段階６０４にループバックする。例えば、ユーザは、最初の作業命令の一部ではないかもしれないデバイス、又はその作業命令の一部としてテストされるはずのデバイスのトレイに間違って置かれたかもしれないデバイスをスキャンすることがある。換言すれば、デバイスは、段階６０１の間にスキャンされたバケットの品番と関連しないシリアルナンバを有することがある。この場合、ユーザに対してエラーメッセージがＧＵＩ上に表示され、生産フローは段階６０４に戻ることになる。
【０１０５】
段階６２３において、ユーザは、ＤＵＴ処理に関連したカスタマイズを行うことができる。段階６０５で、テストサイトの選択、例えばプリミティブの選択が行われる。テストサイト選択は、テストサイト選択をカスタマイズする機会を顧客に提供し得る。例えば、テスタがＤＵＴを搭載する準備ができたときに、顧客は、特定の色の光を表示することを望むことがある。さらに、カスタマイズを行うために、段階６０５では、段階６２３に戻る割り込みポイントが提供される。
【０１０６】
段階６０６で、ＤＵＴが検出される。顧客は、ＤＵＴ検出に関連した特定のカスタマイズを行う必要があり得る。例えば、顧客は、ＤＵＴが検出されたことをユーザに通知するＧＵＩメッセージを望むことがある。さらに、カスタマイズを行うために、段階６０６では、段階６２３に戻る割り込みポイントが提供される。ＤＵＴが検出されると、ＤＵＴデータはサーバ４３０及びＧＵＩ４２０へ送信され、ＤＵＴデータに従ってサイト表示がＧＵＩで変更される。最後に、段階６０７で、ＤＵＴがテストされ得る。
【０１０７】
図７は、本発明の実施形態に従ってテスタを制御するアプリケーションプログラミングインタフェース（ＡＰＩ）を修正するための、例示的なコンピュータ実装プロセスのフローチャートを示す。
【０１０８】
段階７０２で、アプリケーションプログラミングインタフェース、例えばＣＩＭは、テスタ上で生産フローを実行するようにプログラムされる。つまり、ＣＩＭ６０は、１）どのテストプランが用いられるか、２）ユーザインタフェースがユーザステーションを介してテスタ上でどのように見えて、どのように動作するか、３）次のプロセスをテストし制御するために新たなＤＵＴが挿入された場合の処理、４）テストのテスト結果がどのように収集され格納されるかなどに関して、テストシステム１００の多くの高レベルの機能及び特性を制御することができる。
【０１０９】
上述のように、ＣＩＭ６０は、システム３００の高レベルの機能性及び特性を制御する。例えば、一実施形態において、ＣＩＭ６０は、テストプランのサーバ３０へのロードを制御する。別の実施形態において、ＣＩＭ６０は、新たなＤＵＴがいつプリミティブに挿入されたかをテスト中に感知することができ、ＤＵＴに関連付けられた識別情報に基づいてＤＵＴを認識することができる。さらに別の実施形態において、ＣＩＭは、様々なＤＵＴパラメータを、ユーザステーション及び／又は制御サーバ３０に提供する。これにより、ＣＩＭは、専用のＤＵＴテストパラメータを制御サーバ３０に任意選択で提供することが可能になる。
【０１１０】
１つの実施形態において、ＣＩＭは、カスタマイズされたＧＵＩ表示情報を生産ツール２０に提供することもできる。さらに、一実施形態において、ＣＩＭは、テストプラン実行を開始することができ、様々なＤＵＴに対するテストプランの実行結果も受信する。さらに、一実施形態において、ＣＩＭは、テスト結果に関して、機能性の整理及び記録を行うことができる。異なる実施形態において、ＣＩＭは、テスト結果データを適切なＤＵＴに関連付けて、この情報を顧客又はプロセス固有のフロア管理モジュール７０に報告することができ、フロア管理モジュール７０は、後の参照のためにＤＵＴごとに、顧客データベース８０にデータを保管することができる。
【０１１１】
段階７０４で、ＣＩＭは、ユーザ固有のプロセスを実行するために生産フローを修正するように構成され得る。本発明の態様によれば、ユーザは、ユーザコードを格納し、システム１００と関連付けられたライブラリ９０内のＡＰＩを用いることができる。ユーザコードは、ＣＩＭ開発者によって提供される情報及び構文に基づいて顧客が開発し、その後ライブラリ９０にロードされてよい。
【０１１２】
最後に、段階７０６で、修正はＣＩＭと統合されて、特定のユーザに合わせてカスタマイズされたＡＰＩを提供する。ＣＩＭ６０は、ユーザコード及びユーザＡＰＩを統合し、これによりＣＩＭ６０は、特定の顧客のニーズに合わせて自動的にカスタマイズされ、ユーザライブラリ９０のコンテンツに従って、特定の機能及び特性を採用する。このように、本発明の実施形態が、ＣＩＭ６０をカスタマイズするための自動機構を効果的に提供し、その結果、各顧客のニーズに合わせてＣＩＭ６０を手動で書き直したり、設計し直したりすることが不要になる。
【０１１３】
上述の説明は、説明を目的に、特定の実施形態を参照して説明されている。しかしながら、上記の実例となる説明は、包括的であることも、本発明を開示されたまさにその形態に限定することも意図していない。上記の教示を考慮すると、多くの修正及び変形があり得る。本発明の原理及びその現実的な応用を最も適切に説明し、それによって、本発明及び企図される特定の使用に適しているかもしれない様々な修正を伴った様々な実施形態を当業者が最も適切に利用することを可能にするために、これらの実施形態が選択され、説明された。
【図１Ａ】
2018189641.tif 000003
【図１Ｂ】
2018189641.tif 000004
【図２Ａ】
2018189641.tif 000005
【図２Ｂ】
2018189641.tif 000006
【図３】
2018189641.tif 000007
【図４】
2018189641.tif 000008
【図５】
2018189641.tif 000009
【図６】
2018189641.tif 000010
【図７】
2018189641.tif 000011
【外国語明細書】
2018189641000001.pdf