(57)【要約】【課題】システム本体の改修無しで新たなテスト手法に適応できるテストプログラム生成装置及びテストプログラム生成システムを得る。【解決手段】プログラム生成機能１４は、テストスペック２に記述されているテンプレート名に基づいて、対応する能動的テンプレート１２を雛形ライブラリデータベース１３から起動する。能動的テンプレート１２と中間パラメータ１０との関連付はテストスペック編集機能７によってなされており、起動された能動的テンプレート１２は、中間パラメータ群の中から必要な中間パラメータ１０を取り込むことによって、テストプログラム５を生成する。【選択図】図１
2006031354.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置のテスタ用のテストプログラムを生成するテストプログラム生成装置であって、
前記半導体装置に応じたテストスペックを入力し、前記テストスペックを必要に応じて前記テスタごとの仕様に合わせて編集可能なテストスペック編集機能と、
前記テストスペック編集機能から入力された前記テストスペックを登録するテストスペックデータベースと、
前記テストスペックデータベースに登録されている前記テストスペックを形式変換することにより中間パラメータを生成するパラメータ生成機能と、
前記テスタに依存する複数の能動的テンプレートを登録する雛形ライブラリデータベースと、
前記雛形ライブラリデータベースに登録されている前記複数の能動的テンプレートの中から、前記テスタ及びテスト内容に応じて必要な前記能動的テンプレートを起動させ、起動した前記能動的テンプレートに必要な前記中間パラメータを取り込ませることによって前記テストプログラムを生成させる、プログラム生成機能と
を備える、テストプログラム生成装置。
【請求項２】
前記雛形ライブラリデータベースには、新たな能動的テンプレートを追加して登録可能であり、
前記テストスペック編集機能は、前記新たな能動的テンプレートを起動させる場合に、前記新たな能動的テンプレートに対応する新たなテストスペックを前記テストスペックデータベースに追加して登録する、請求項１に記載のテストプログラム生成装置。
【請求項３】
前記能動的テンプレートは、所定のシーケンスの繰り返しとして記述されている部分を含んでおり、
前記テストスペック編集機能によって前記シーケンスの繰り返しの中から所望のものを選択することにより、テストシーケンスを任意に設定可能である、請求項１に記載のテストプログラム生成装置。
【請求項４】
前記テストスペック編集機能は、任意のテスト実行条件を設定可能であり、
前記プログラム生成機能は、前記テスト実行条件が満たされた場合にのみ所定のテストを実行するように記述された前記テストプログラムを生成する、請求項１に記載のテストプログラム生成装置。
【請求項５】
前記テストスペックはテーブルとして記述されており、
前記テストスペック編集機能は、前記テーブルごとに個別の識別番号を付与し、
前記プログラム生成機能は、前記識別番号が同一である第１及び第２のテーブルが一の前記プログラム内でこの順に連続する場合、前記第２のテーブルに対応する動作を実行させないように記述された前記テストプログラムを生成する、請求項１に記載のテストプログラム生成装置。
【請求項６】
前記能動的テンプレートを前記雛形ライブラリデータベースに登録する雛形ライブラリデータベース登録機能をさらに備え、
前記雛形ライブラリデータベースには、予め登録されている汎用性のある前記能動的テンプレート（以下「標準テンプレート」）に加えて、ユーザによって作成された汎用性のない前記能動的テンプレート（以下「カスタムテンプレート」）を追加して登録可能であり、
前記雛形ライブラリデータベース登録機能は、前記標準テンプレート及び前記カスタムテンプレートの使用頻度を集計する機能を有する、請求項１に記載のテストプログラム生成装置。
【請求項７】
前記雛形ライブラリデータベース登録機能は、使用頻度の高い前記カスタムテンプレートが存在する場合、前記カスタムテンプレートの標準化を促すメッセージを関係者に通知する機能を有する、請求項６に記載のテストプログラム生成装置。
【請求項８】
前記能動的テンプレートは、特定のテスト条件の設定状況を常に監視し、この順に連続する第１及び第２の設定において前記テスト条件が同一内容である場合には、前記第２の設定に関する命令を前記テストプログラム中に記述しない、請求項１に記載のテストプログラム生成装置。
【請求項９】
前記テストスペック編集機能は、任意のテスト項目に関するプログラムの生成条件を、前記半導体装置の品種ごとに設定可能であり、
前記プログラム生成機能は、前記生成条件が満たされている場合には、前記テスト項目に関する前記プログラムが記述された前記テストプログラムを生成し、前記生成条件が満たされていない場合には、前記テスト項目に関する前記プログラムが記述されていない前記テストプログラムを生成する、請求項１に記載のテストプログラム生成装置。
【請求項１０】
前記雛形ライブラリデータベースには、テスト結果又は評価結果に関するツールが、前記能動的テンプレートの一つとして登録されており、
前記プログラム生成機能は、生成した前記テストプログラムとともに前記ツールを前記テスタに送る、請求項１に記載のテストプログラム生成装置。
【請求項１１】
前記テストスペック編集機能へアクセスするユーザの認証を行うユーザ認証機能をさらに備え、
前記テストスペックの編集を行える権限が、前記テストスペックごと及び前記ユーザごとに設定されている、請求項１に記載のテストプログラム生成装置。
【請求項１２】
前記テストスペックデータベースには、前記テストスペックを構成する複数の基本シーケンスが登録されており、
前記テストスペック編集機能は、前記半導体装置の品種に応じて前記複数の基本シーケンスの組合せを設定することによって、前記品種ごとに個別の前記テストスペックを規定する、請求項１に記載のテストプログラム生成装置。
【請求項１３】
前記テストスペック編集機能は、複数の前記品種に関する複数の前記テストスペックによって共有されている特定の基本シーケンスを変更した場合、前記品種ごとに前記特定の基本シーケンスの変更の要否を確認し、変更不要の前記品種に関しては変更前の前記特定のシーケンスの内容を維持する、請求項１２に記載のテストプログラム生成装置。
【請求項１４】
前記テストスペックデータベースに登録されている前記テストスペックは、ユーザによって更新可能であり、
前記テストスペックデータベースは、登録されている前記テストスペックが更新される度に更新履歴を保存し、前記テストスペックに不具合が発生した場合には、不具合発生前の前記テストスペックに復元する機能を有する、請求項１に記載のテストプログラム生成装置。
【請求項１５】
前記テストスペックデータベースは複数であり、
第１のテストスペックデータベースに第１のテストスペックが登録されており、第２のテストスペックデータベースに第２のテストスペックが登録されており、
前記テストスペック編集機能は、前記第１のテストスペックの内容と前記第２のテストスペックの内容とが互いに一致しない場合に、差分リストを出力する機能を有する、請求項１に記載のテストプログラム生成装置。
【請求項１６】
前記テストスペックには、前記テストスペック編集機能によって識別番号が付与されており、
同一の前記識別番号が付与された複数の前記テストスペックを含むテストスペック群が、複数の前記テストスペックデータベースにそれぞれ登録されており、
前記テストスペック編集機能は、前記テストスペック群の中で前記テストスペックの内容の不一致が生じた場合、一の前記テストスペック群に関して一の前記エラーメッセージのみを出力する、請求項１５に記載のテストプログラム生成装置。
【請求項１７】
前記テストスペック編集機能は、前記半導体装置に応じた基準値と、前記テスタごとの仕様に応じた調整値とを用いて、前記テストスペックを規定する機能を有する、請求項１に記載のテストプログラム生成装置。
【請求項１８】
前記基準値は変更可能であり、
前記基準値が変更されると、対応する前記調整値を変更し、又は対応する前記調整値の変更を促す機能を有する、請求項１７に記載のテストプログラム生成装置。
【請求項１９】
前記能動的テンプレートは、前記テスタのテスト精度の範囲に関する情報を有しており、前記テスト精度の範囲外の値が前記テストスペックとして設定された場合に、エラー処理を行う機能を有する、請求項１に記載のテストプログラム生成装置。
【請求項２０】
前記半導体装置に関して複数のテスト工程が順に実施され、
前記パラメータ生成機能は、あるテスト工程で実行される任意のテスト項目におけるテスト規格よりも、後のテスト工程で実行されるテスト項目におけるテスト条件が厳しく設定されている場合に、エラー処理を行う機能を有する、請求項１に記載のテストプログラム生成装置。
【請求項２１】
前記半導体装置は、複数のピンを有しており、
前記テストスペック編集機能は、前記複数のピンの中から任意のピングループを複数設定可能であり、前記ピングループ同士の加減算の式によって一又は複数の特定のピンを指定する機能を有し、
前記パラメータ生成機能は、前記式によって与えられた演算を実行する機能を有する、請求項１に記載のテストプログラム生成装置。
【請求項２２】
前記テストスペック編集機能は、前記テストスペックデータベースに登録されている前記テストスペックを、所定の書式でデータ出力する機能を有する、請求項１に記載のテストプログラム生成装置。
【請求項２３】
前記テストスペック編集機能は、前記半導体装置の設計ＣＡＤツールから入力されたＣＡＤデータの中から必要なデータを読み込んで、前記テストスペックとして前記テストスペックデータベースに入力する機能を有する、請求項１に記載のテストプログラム生成装置。
【請求項２４】
前記テストスペックデータベースに登録されている前記テストスペックを一部変更した場合、前記プログラム生成機能は、前記テストスペックの変更に起因して前記テストプログラムの内容を変更する必要が生じた要変更部分に対応する前記能動的テンプレートのみを起動させ、起動した前記能動的テンプレートに、前記要変更部分の前記テストプログラムを生成させる機能を有する、請求項１に記載のテストプログラム生成装置。
【請求項２５】
前記テストスペック編集機能は、前記テストスペックとして変数を設定する機能を有する、請求項１に記載のテストプログラム生成装置。
【請求項２６】
前記能動的テンプレートは、変数計算によって前記変数を実数値に書き改めて、前記テストプログラム中には前記実数値を記述する機能を有する、請求項２５に記載のテストプログラム生成装置。
【請求項２７】
前記プログラム生成機能は、所定のデバッグ又はルールチェックが実施されたオブジェクトの前記テストプログラムに対して、当該テストプログラムの量産を許可する旨のキーを作成する機能を有する、請求項１に記載のテストプログラム生成装置。
【請求項２８】
前記テストスペック編集機能は、前記テストスペックを前記テストスペックデータベースに登録する前に、前記テストスペックの書式に関するルールチェックを実施する機能を有する、請求項１に記載のテストプログラム生成装置。
【請求項２９】
前記テストスペック編集機能は、前記テストスペックを前記テストスペックデータベースに登録する前に、前記テストスペック内でのデータの整合性に関する、前記テスタごとの仕様に依存しないルールチェックを実施する機能を有する、請求項１に記載のテストプログラム生成装置。
【請求項３０】
前記能動的テンプレートは、前記テストプログラムを生成するために必要な複数の前記テストスペックに対して、複数の前記テストスペックの組合せに関する、前記テスタごとの仕様に依存するルールチェックを実施する機能を有する、請求項１に記載のテストプログラム生成装置。
【請求項３１】
請求項１〜３０のいずれか一つに記載のテストプログラム生成装置と、
ユーザによって操作可能な計算機端末と、
前記テストプログラム生成装置と前記計算機端末とを接続するネットワークと
を備える、テストプログラム生成システム。
【請求項３２】
半導体装置の設計ＣＡＤツールと、
請求項１〜３０のいずれか一つに記載のテストプログラム生成装置と、
前記テストプログラム生成装置によって生成されたソーステストプログラム用のコンパイラが存在する端末と、
前記テストプログラム生成装置と前記設計ＣＡＤツール及び前記端末とを接続するネットワークと
を備える、テストプログラム生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置のテスタ用のテストプログラムを生成するテストプログラム生成装置及びテストプログラム生成システムに関する。
【背景技術】
【０００２】
従来のテストプログラム生成システムは、半導体装置の設計ＣＡＤツールと、テストプログラム生成ツールと、雛形ライブラリとを備えて構成されている。雛形ライブラリには、テスト条件部分のみを虫食い式としたテンプレートが登録されている。テストプログラム生成ツールは、設計ＣＡＤから送られてきた設計パラメータと、雛形ライブラリに登録されているテンプレートとに基づいて、テストプログラムを生成する。
【０００３】
なお、従来のテストプログラム生成システムの一例が、下記特許文献１に開示されている。
【０００４】
【特許文献１】特開２０００−１６３２７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のテストプログラム生成システムには、以下に述べるような問題があった。
（１）テストプログラムの出力（既存と異なるテスト方法、新規製品対応）が頻繁に変更になると、度々雛形ライブラリ開発、ほとんどの場合プログラム生成ツールの改修が発生し、自動生成の適用制約が多かった。
（２）従来の自動生成では、決まったルールでテストプログラムを出力するために、設定が冗長となり、テスト時間が延びることが多かった。
（３）上記（１）で生成されたテストプログラムは、人手で調整、変更を行う必要が生じるため、スタッフには、各テスタのＨ／Ｗ、テストプログラム言語についての高度な知識が必要とされる。
（４）従来のテストプログラム生成システムでは、テストスペックにテスタ制約を盛り込む必要があったため、テストスペックを作成するチップ設計者は、評価、量産で使用するテスタの制約を細かく理解しておく必要があった。
（５）上記（３）のとおり、人手による変更、改修を行うと、テストスペックとテストプログラムとの関係が１対１で対応しなくなる。その状態で対応させるためには、テストプログラムからテストスペックへの逆変換が必要であり、逆変換の仕組みが無い場合は、生成したプログラムへの変更は、テストスペックへ戻すことができなくなる。
（６）上記（１）のシステムでは、一部の設定のみを修正した場合でも、テストプログラム全体を生成するため、余分なテストプログラム生成時間を要している。
（７）上記（１）で生成されたテストプログラムは、人手で調整、変更を行うことが可能であるため、プログラム変更、改修の際に、ミスが混入するおそれがある。
（８）従来の自動生成システムは、特定の利用者向けに、特定のＵＮＩＸ（Ｒ）サーバ上にシステム構築されており、利用したい場所（出張先等）、タイミングですぐにプログラム生成することができない。
【０００６】
本発明は、このような問題を解決するために成されたものであり、主に、システム本体の改修無しで新たなテスト手法に適応できるテストプログラム生成装置及びテストプログラム生成システムを得ることを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るテストプログラム生成装置は、半導体装置のテスタ用のテストプログラムを生成するテストプログラム生成装置であって、前記半導体装置に応じたテストスペックを入力し、前記テストスペックを必要に応じて前記テスタごとの仕様に合わせて編集可能なテストスペック編集機能と、前記テストスペック編集機能から入力された前記テストスペックを登録するテストスペックデータベースと、前記テストスペックデータベースに登録されている前記テストスペックを形式変換することにより中間パラメータを生成するパラメータ生成機能と、前記テスタに依存する複数の能動的テンプレートを登録する雛形ライブラリデータベースと、前記雛形ライブラリデータベースに登録されている前記複数の能動的テンプレートの中から、前記テスタ及びテスト内容に応じて必要な前記能動的テンプレートを起動させ、起動した前記能動的テンプレートに必要な前記中間パラメータを取り込ませることによって前記テストプログラムを生成させる、プログラム生成機能とを備える。
【発明の効果】
【０００８】
本発明に係るテストプログラム生成装置によれば、システム本体の改修無しで新たなテスト手法に適応できる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
本実施の形態１では、本発明に係るテストプログラム生成システムの基本構成について説明する。
【００１０】
本発明に係るテストプログラム生成装置及びテストプログラム生成システムは、テストプログラムの雛形ライブラリを保有する方式であり、雛形ライブラリの代わりに言語辞書を持って逐次言語変換する方式とは、生成方式が若干異なる。
【００１１】
以下、本発明の実施の形態１に係るテストプログラム生成システムについて説明する。図１を参照して、符号５は、テスト項目単位のテストプログラム（ソースプログラム）を示している。テストプログラム生成システムは、半導体装置のテスタ用のテストプログラム５を自動的に生成するものである。
【００１２】
本実施の形態１に係るテストプログラム生成システムは、半導体装置の設計ＣＡＤツール１と、テストプログラム生成装置と、コンパイラ１５が存在する端末と、テストプログラム生成装置と設計ＣＡＤツール１及び上記端末とを繋ぐネットワーク（ＬＡＮ、インターネット等）とを備えている。テストプログラム生成装置は、ユーザ認証機能６、テストスペック編集機能７、テストスペックデータベース８、パラメータ生成機能９、プログラム生成機能１４、雛形ライブラリデータベース登録機能１１、及び雛形ライブラリデータベース１３を有している。ユーザ認証機能６と、テストスペック編集機能７と、パラメータ生成機能９及びプログラム生成機能１４と、雛形ライブラリデータベース登録機能１１とは、それぞれ入力画面を有しており、ユーザは、これらの入力画面を参照しながら必要なデータの入力等を行う。
【００１３】
図１において、符号２は、設計ＣＡＤツール１から得られるデバイス情報、テストパターン情報（タイミング設定値を含む）、及び電圧値等の設計パラメータ（以下「テストスペック」と称す）を示している。テストスペック編集機能７は、半導体装置に応じたテストスペック２（全テスタに共通）を入力し、テストスペック２を必要に応じてテスタごとの仕様に合わせて編集可能である。具体的には、設計ＣＡＤツール１から得られたテストスペックに加え、テスタごとのオフセット値を含んだ設定値や、テスタ固有の機能を利用するために必要な設定値を、編集によって記述可能である。例えば、「テスタＢは設計パラメータ、テスタＡよりも若干遅いタイミングで測定する必要がある」という事実が既知である場合に、測定タイミングに関する同種のテストスペック２に関して、「テスタＡ用の測定タイミングは１０ｎｓｅｃ（設計パラメータ）」、「テスタＢ用の測定タイミングは１２ｎｓｅｃ」と設定することができる。この例において、後述のパラメータ生成機能９は、テスタＡ用のテストプログラム５を生成する際には、設計パラメータから得た基準の設定値「１０ｎｓｅｃ」を選択し、テスタＢ用のテストプログラム５を生成する際には、「１２ｎｓｅｃ」を選択する。
【００１４】
テストスペックデータベース８には、テストスペック編集機能７によって作成されたテストスペック２が登録されている。符号１０は、テストプログラム５の生成に必要な中間パラメータを示している。パラメータ生成機能９は、テストスペックデータベース８を参照し、テストスペックデータベース８に登録されているテストスペック２を形式変換することにより、中間パラメータ１０を生成する。中間パラメータ１０の段階では、テスタ言語への変換は行われていない。
【００１５】
符号１２は、必要な中間パラメータ１０を用いて、テスト項目単位に能動的にテストプログラム５を生成する能動的テンプレートを示している。能動的テンプレート１２は、それ自身が一種のプログラムであり、スクリプトで記述されている。雛形ライブラリデータベース１３には、テスト方法ごとに準備されてテスタに依存する複数の能動的テンプレート１２が登録されている。雛形ライブラリデータベース登録機能１１は、能動的テンプレート１２を雛形ライブラリデータベース１３に登録し、登録済みテンプレートの検索及び履歴管理を行う。
【００１６】
プログラム生成機能１４は、中間パラメータ１０を参照し、テスト方法にマッチした能動的テンプレート１２を起動する。具体的にプログラム生成機能１４は、雛形ライブラリデータベース１３に登録されている複数の能動的テンプレート１２の中から、テスタ及びテスト内容に応じて必要な能動的テンプレート１２（複数）を起動させる。そして、起動された能動的テンプレート１２は、テストスペックデータベース８から必要な中間パラメータ１０を取り込むことによって、テストプログラム５を生成する。
【００１７】
次に、動作について具体的に説明する。本システムを用いたテストプログラム生成処理は、大きく分けて３つの処理（能動的テンプレート１２の登録処理、テストスペック２の編集処理、及びテストプログラム５の生成処理）によって構成される。以下、図２〜４に示したフローチャートを用いて各処理の説明を行う。
【００１８】
（１）能動的テンプレート１２の登録処理
図２を用いて動作フローを説明する。まず、ユーザ認証機能６の入力画面において、ログイン、パスワードを入力し、ユーザ認証を行う（ステップＳ０２０１）。次に、雛形ライブラリデータベース登録機能１１の入力画面において、登録する雛形ライブラリ名、テンプレート名を入力する（ステップＳ０２０２）。続いて雛形ライブラリデータベース登録機能１１の入力画面において、後にテストスペック編集機能７の入力画面の表示内容を制御するための表示制御パラメータを入力する（ステップＳ０２０３）。
【００１９】
次に、雛形ライブラリデータベース登録機能１１の入力画面にて、登録対象のテンプレートファイルを選択する（ステップＳ０２０４）。最後に、表示制御パラメータと能動的テンプレート１２の本体とを雛形ライブラリデータベース１３に登録する（ステップＳ０２０５）。
【００２０】
（２）テストスペック２の編集処理
図３を用いて動作フローを説明する。まず、ユーザ認証機能６の入力画面において、ログイン、パスワードを入力し、ユーザ認証を行う（ステップＳ０３０１）。次に、テストスペック編集機能７の入力画面にテストスペック２のデータを入力し、上記の通り必要に応じてテストスペック２をテスタごとの仕様に合わせて編集する（ステップＳ０３０２）。次に、テストスペック編集機能７は、入力されたデータにエラー（以下「入力エラー」と称す）が無いか否かをチェックする（ステップＳ０３０３，Ｓ０３０４）。
【００２１】
入力エラーが発生している場合はテストスペック編集機能７の入力画面にエラーメッセージを表示し（ステップＳ０３０５）、ユーザは、エラーメッセージに従って、テストスペック２又は登録されている能動的テンプレート１２を修正し（ステップＳ０３０２）、再度入力エラーをチェックする（ステップＳ０３０３）。入力エラーが無い場合は、テストスペックデータベース８にテストスペック２を登録する（ステップＳ０３０６）。
【００２２】
（３）テストプログラム５の生成処理
図４を用いて動作フローを説明する。まず、ユーザ認証機能６の入力画面において、ログイン、パスワードを入力し、ユーザ認証を行う（ステップＳ０４０１）。次に、パラメータ生成機能９を起動し（ステップＳ０４０２）、テストプログラム５の生成に必要な中間パラメータ１０を生成する（ステップＳ０４０３）。図５は、中間パラメータ１０の生成処理を示す模式図である。テストスペック編集機能７の入力画面においてテスタ及びテスト項目（つまり能動的テンプレート１２）を選択すると、雛形ライブラリデータベース１３に登録されている上記の表示制御パラメータに基づいて、テスタ及びテスト項目に応じた入力欄が作成されて表示される。ユーザは、半導体装置に応じたデータ（テスタに非依存）を入力欄に入力可能であり、また、必要に応じてテスタごとの仕様に依存するオフセット値を考慮したデータをも入力可能である。入力欄に必要なデータが入力されたものが、テストスペック２としてテストスペックデータベース８に登録される。そして、テストスペック２の中から必要なデータを抽出して形式変換したものが、中間パラメータ１０として生成される。
【００２３】
再び図４を参照して、ステップＳ０４０３に引き続いて、プログラム生成機能１４を起動する（ステップＳ０４０４）。プログラム生成機能１４は、テストスペック２によって指定されている能動的テンプレート１２を、テスト項目ごとに順次起動していく（ステップＳ０４０６）。能動的テンプレート１２起動時、複数のテストスペック２の組合せ（テストスペック２の編集処理時にはチェックできない項目である）等の問題でエラー（以下「起動時エラー」と称す）が発生する場合があり、プログラム生成機能１４は、そのような起動時エラーが発生しているか否かをチェックする（ステップＳ０４０７）。起動時エラーが発生している場合はパラメータ生成機能９及びプログラム生成機能１４の実行画面にエラーメッセージが表示され（ステップＳ０４０８）、ユーザは、エラーメッセージに従ってテストスペック２又は能動的テンプレート１２を修正する（ステップＳ０４０９）。その後、修正された内容で中間パラメータ１０の生成が再び実行される。
【００２４】
また、能動的テンプレート１２は、マルチタスクＯＳ上で複数同時に起動されており、能動的テンプレート１２の起動時エラーが無く、全てのテスト項目単位のテストプログラム５が生成されるまで（ステップＳ０４０５の判定結果が「Ｙｅｓ」となるまで）、ステップＳ０４０２〜Ｓ０４０９の処理が繰り返し行われる。
【００２５】
図６は、テストプログラム５の生成処理を示す模式図である。プログラム生成機能１４は、テストスペック２に記述されているテンプレート名（この情報は中間パラメータ１０にも継承されている）に基づいて、対応する能動的テンプレート１２を雛形ライブラリデータベース１３から起動する。能動的テンプレート１２と中間パラメータ１０との関連付はテストスペック編集機能７によってなされており、起動された能動的テンプレート１２は、中間パラメータ群の中から必要な中間パラメータ１０を取り込むことによって、テストプログラム５を生成する。
【００２６】
テスト項目ごとのテストプログラム５の生成処理が終了すると、コンパイル処理（バイナリファイルへの変換）が行われる。以下、コンパイル処理について説明する。
【００２７】
再び図４を参照して、テストプログラム生成装置から各テスタのコンパイラ１５が存在する端末に、テストプログラム５のファイル群が転送される（ステップＳ０４１０）。ファイル転送後、コンパイル処理のためのスクリプトを起動し、コンパイルを実行する（ステップＳ０４１１）。ここで、スクリプトも能動的テンプレート１２の一つとして登録されており、テストプログラムのファイル群とともにスクリプトも、テストプログラム生成装置からコンパイラ１５が存在する端末に転送される。
【００２８】
コンパイルエラーをチェックし（ステップＳ０４１２）、コンパイルエラーが発生した場合には、コンパイラ１５が存在する端末からテストプログラム生成装置へエラーメッセージファイルが転送され、テストプログラム生成装置の画面にエラーメッセージが表示される（ステップＳ０４１３）。ユーザは、エラーメッセージに従い、テストスペック２又は能動的テンプレート１２を修正し（ステップＳ０４０９）、中間パラメータ１０の生成処理からやり直す。一方、コンパイラ１５がコンパイルを正常に終了すれば、テスタ用のバイナリファイル１６が完成する。
【００２９】
従来のテストプログラム生成ツール（パラメータ生成機能９及びプログラム生成機能１４に相当する部分の機能、以下「生成ツール」と称する）は、一般に、生成ツール前段をテスタに依存しない処理とし、生成ツール後段をテスタに依存した処理として、処理を分担していた。これにより、テスタに依存する改修については、生成ツール全体に改修を掛ける必要はなく、生成ツール後段の改修だけであったので、これにより開発工期の短縮が企図されていた。しかし、テスタ依存である雛形ライブラリを追加したい場合には、生成ツール後段で仕様の不整合が発生していないかどうかをシステム全体に渡ってチェックする必要がある。また、登録手続が分からない等、生成ツールの詳細処理を理解していない者は、雛形ライブラリを容易には追加できない。そのため、ＣＡＤ部門に依頼して生成ツールの改修を実施しなければならず、思うように工期短縮が図られていなかった。
【００３０】
本実施の形態１に係るテストプログラム生成装置では、生成ツールは、テストスペック編集機能７の入力画面に入力されたテストスペック２から中間パラメータ１０を生成する前段の処理（パラメータ生成機能９）と、外部から自由に出し入れできる、システムと独立した能動的テンプレート１２という仕組みと、能動的テンプレート１２を起動するだけの、ツール後段の処理とに、役割が分担されている。
【００３１】
このように処理を独立分離させることにより、生成ツールの通常の改修はテスト項目に対応する能動的テンプレート１２の追加、編集、削除が主なものとなるため、生成ツールの詳細処理を理解していなくても、ユーザが所望の能動的テンプレート１２を作成して雛形ライブラリデータベース１３に登録すれば、新機能等を容易に生成ツールに組み込むことが可能となる。従って、従来ならばＣＡＤ部門に依頼して生成ツールの改修に長期間を要していたのに対し、本実施の形態１に係るテストプログラム生成装置及びテストプログラム生成システムによれば、生成ツール自体の改修は不要となるので、開発工期を大幅に短縮することができる。
【００３２】
また、上記の通りテストスペック編集機能７は、テスタごとの仕様に合わせてテストスペック２を編集可能である。従って、全てのテスタに関して共通の値しか設定できないテストプログラム生成装置（例えば上記特許文献１参照）と比較すると、テスタの仕様に応じて最適な値のテストスペック２を設定することができ、各テスタの機能を最大限に活用することができる。
【００３３】
変形例として、テスタ依存の能動的テンプレート１２を、ユーザ（テスト技術者）による改修要求の頻度が多いものと少ないものとに分類して管理してもよい。改修要求の頻度が多い能動的テンプレート１２としては、テスト項目に関連するものがある。頻度が少ない能動的テンプレート１２としては、プログラムの骨格形成やデータテーブルの作成に関連するもの（具体的には、テスタ依存のプログラム記述の制限事項に対する処理、最適化処理等）がある。
【００３４】
なお、エクセルシートにテスト条件を入力してテストプログラム５又はバイナリファイル１６を生成するツールが存在し、簡易なテンプレートを登録できるテストプログラム生成装置がすでに存在する。しかし、この場合であっても、テンプレートの登録において、テスト条件の入力に対応するセルの設計をしなければならず、生成ツールの仕組みを理解しておく必要があり、生成ツールが容易に機能するとは考えにくい。これに対し、本実施の形態１に係るテストプログラム生成装置は、生成されるテストプログラム５の完成度が極めて高いシステムであるにも関わらず、ＣＡＤ部門に改修依頼をすることなく、ユーザが容易に作成できる能動的テンプレート１２を雛形ライブラリデータベース１３に登録した時点で、生成ツールを機能させることができる。
【００３５】
実施の形態２．
本実施の形態２では、システム全体を変更することなく、能動的テンプレート１２の追加によって新たな機能を追加できるテストプログラム生成装置について説明する。
【００３６】
以下、本発明の実施の形態２に係るテストプログラム生成装置を、図７〜９を用いて説明する。図７において、符号１２は、必要な中間パラメータ１０を用いて能動的に、テスト項目単位にテストプログラム５を生成する能動的テンプレートを示している。図７に示した能動的テンプレート１２が、新たに追加しようとするテンプレートである。符号１３は、テスト方法ごとに準備された能動的テンプレート１２を登録する雛形ライブラリデータベースを示している。符号１１は、能動的テンプレート１２を雛形ライブラリデータベース１３に登録する雛形ライブラリデータベース登録機能を示している。符号１７は、新たに追加しようとする能動的テンプレート１２内のヘッダ部を示している。ヘッダ部１７には、テストスペック編集機能７の入力画面の表示内容を制御するための表示制御パラメータが記述されている。符号１８は、雛形ライブラリデータベース登録機能１１の入力画面において表示制御パラメータを入力するためのパラメータ入力部を示している。
【００３７】
新規テストスペック入力欄を表示、プログラム生成する第１の方法を、図８のフローチャートを用いて説明する。まず、新たに追加したい能動的テンプレート１２を作成する。その際、図７に示したように、能動的テンプレート１２のヘッダ部１７に、予め規定した文字列によって新規に利用したいパラメータ変数名を定義しておく（ステップＳ０９０１）。次に、ユーザ認証機能６の入力画面において、ログイン、パスワードを入力し、ユーザ認証を行う（ステップＳ０９０２）。次に、雛形ライブラリデータベース登録機能１１によって、新たな能動的テンプレート１２を追加するための新規入力画面（図７参照）を表示する（ステップＳ０９０３）。
【００３８】
次に、表示された新規入力画面において、所定のテンプレート登録情報を入力する（ステップＳ０９０４）。次に、雛形ライブラリデータベース登録機能１１にて、能動的テンプレート１２に関する新設パラメータが有るか否かをチェックし（ステップＳ０９０５）、新設パラメータが有る場合は、能動的テンプレート１２のヘッダ部１７に設定されている表示制御パラメータを読み取る（ステップＳ０９０６）。その後、読み取られた表示制御パラメータを、能動的テンプレート１２の本体とともに、雛形ライブラリデータベース１３に登録する（ステップＳ０９０７）。
【００３９】
次回テストスペック編集機能７起動時、新規登録された能動的テンプレート１２が選択されると、テストスペック編集機能７の入力画面には、ステップＳ０９０７で雛形ライブラリデータベース１３に登録された表示制御パラメータに基づき、ユーザが任意のデータを入力するためのテストスペック入力欄が表示される。新規表示されたテストスペック入力欄にテストスペック２が入力された後は、上記実施の形態１で説明した通り、テストプログラム５の生成が可能である。
【００４０】
また、入力禁止事項に関する情報をヘッダ部１７に記述することによって、テストスペック入力欄の特定項目へのデータ入力をテスタごとに禁止する指定も可能である。例えば、「テスタＡに関しては新規入力画面内のパラメータＢ１の入力を禁止する」ということである。
【００４１】
次に、新規テストスペック入力欄を表示、プログラム生成する第２の方法を、図９を用いて説明する。まず、新たに追加したい能動的テンプレート１２を作成する（ステップＳ０８０１）。第２の方法では、図７に示したヘッダ部１７にはパラメータ変数名は定義されていない。次に、ユーザ認証機能６の入力画面において、ログイン、パスワードを入力し、ユーザ認証を行う（ステップＳ０８０２）。次に、雛形ライブラリデータベース登録機能１１によって、新たな能動的テンプレート１２を追加するための新規入力画面（図７参照）を表示する（ステップＳ０８０３）。
【００４２】
次に、表示された新規入力画面において、所定のテンプレート登録情報を入力する（ステップＳ０８０４）。次に、雛形ライブラリデータベース登録機能１１にて、能動的テンプレート１２に関する新設パラメータが有るか否かをチェックし（ステップＳ０８０５）、新設パラメータが有る場合は、表示されている新規入力画面において、新設する表示制御パラメータをユーザが入力する（ステップＳ０８０６）。その後、入力された表示制御パラメータを、能動的テンプレート１２の本体とともに、雛形ライブラリデータベース１３に登録する（ステップＳ０８０７）。
【００４３】
次回テストスペック編集機能７起動時、新規登録された能動的テンプレート１２が選択されると、テストスペック編集機能７の入力画面には、ステップＳ０８０７で雛形ライブラリデータベース１３に登録された表示制御パラメータに基づき、ユーザが任意のデータを入力するためのテストスペック入力欄が表示される。新規表示されたテストスペック入力欄にテストスペック２が入力された後は、上記実施の形態１で説明した通り、テストプログラム５の生成が可能である。
【００４４】
また、上記した第１の方法と同様に、入力禁止事項に関する情報をステップＳ０８０６でユーザが入力することによって、テストスペック入力欄の特定項目へのデータ入力をテスタごとに禁止する指定も可能である。
【００４５】
従来の雛形ライブラリには上記のような機能は無く、テスト項目ごとに存在する制約を持ったＳ／Ｗを作り込んでシステム全体を改修していたため、仕様の変更への対応に長期間を要していた。若しくは、少しでも改修期間を短縮するために、テスタごとの入力禁止事項を設けないこと等により、テスト項目ごとに存在する制約を持たせないようにしていた。これに対して本実施の形態２に係るテストプログラム生成装置によれば、新規テストスペック入力欄の追加、及び不要なテストスペック入力欄の入力制限を、システムＳ／Ｗの改修を伴うことなく実現でき、短納期で対応できるようになる。
【００４６】
実施の形態３．
本実施の形態３では、プログラマブルなテストシーケンスを実現し得るテストプログラム生成装置について説明する。
【００４７】
従来のライブラリ形式のテストプログラム生成装置では、テスト条件部分のみを虫食い式としたテンプレートが使用されており、テストシーケンス自体は固定されていた。従って、ユーザが実行したいテストシーケンスが既存のテンプレートでは実現できない場合には、その都度新たなテストシーケンスのテンプレートを作成して、雛形ライブラリに登録する必要があった。その結果、多数のテンプレートが登録されることによって雛形ライブラリが発散してしまうおそれがあった。
【００４８】
これに対して、本実施の形態３に係るテストプログラム生成装置においては、能動的テンプレート１２の一部を所定のテストシーケンスの繰り返しとして記述し、その繰り返しを制御する情報としてのテストシーケンス入力欄（図１０参照）を能動的テンプレート１２の外部に用意することによって、新たな能動的テンプレート１２を作成することなく、既存の能動的テンプレート１２を用いてテストシーケンス動作を自由に設定可能とした。
【００４９】
テストスペック編集機能７で能動的テンプレート１２を選択した時点で、テストシーケンス入力欄で設定可能なパラメータが制限される。これは、能動的テンプレート１２のヘッダ部に禁止又は許可されたパラメータを宣言することで、テストスペック編集機能７が表示するテストスペック入力画面が連動して入力制限が掛かるようになっている。
【００５０】
次に、図１０を用いて、テストシーケンス部分の構成を説明する。
【００５１】
テストシーケンス入力欄は複数の行を持ち、各行において、「コメント」、「テスト条件変更内容」、「テストパターン実行動作」、「待ち時間」、「テスト動作」、「テストパターン停止動作」の６種類の情報を任意に選択できるようになっている。なお、「コメント」は、現在実行されている行を表示するための項目である。
【００５２】
能動的テンプレート１２は、テストプログラム５を生成する際、これらの６パターンを１つの構成要素（テストシーケンス）とし、繰り返し実行できるような仕組みを持つ。テストシーケンスの実行順序は、図１０に示した矢印のとおりとなる。
【００５３】
テストシーケンス入力欄は、上記６パターンを１構成要素として１設定行とし、その６パターンに対する設定値及び設定行数によって、プログラマブルなテストシーケンスを実現する。また、テスト条件変更を実現することにより、動的なテスト条件の変更を実現する。能動的テンプレート１２ごとに、１構成要素内の禁止事項や、複数行に渡って設定されている場合には構成要素間の禁止事項を記述することによって、詳細な制御が可能となる。
【００５４】
また、複数の構成要素とそのテストシーケンス情報との組合せにおいて、コメントからコメントまでを１テスト単位とすることにより、半導体装置のテストとして有意義なテストを実現することができる。また、シュムプロット等のデバイス評価用の特殊な能動的テンプレート１２においても、対話型入力等の外部制御によって、これらのテスト単位を任意の組合せにて利用するような能動的テンプレート１２の作成が可能である。
【００５５】
テスタ機種ごとに異なるテストシーケンス情報（テストパターン名、スタートアドレス、ストップアドレス）については、ラベル表記とし、別途、ラベルと、テストパターン名、スタートアドレス、ストップアドレスとを関連付けるための対応表を作成することにより、異なるテスタ機種間でのテストシーケンスの共有が可能となる。
【００５６】
さらに、１構成要素単位に、オン／オフ設定を設けることにより、一時的な実施の要否を制御（マスク）することも可能となる。
【００５７】
実施の形態４．
本実施の形態４では、ダイナミックなテストフローを実現し得るテストプログラム生成装置について説明する。
【００５８】
複雑なテストフローの一つとして、条件付きテスト実行（ある条件を満たした場合のみテストを実行する）がある。テストスペックデータベース８には類似品種のテストスペック２が共有されているため、本実施の形態４では、ユーザによるテストスペック２の入力量を極力抑えるために、テストスペック編集機能７に、テストスペック２に比較演算子を記入できる機能を持たせる。また、能動的テンプレート１２に、テストスペック２に記入された比較演算子を解釈してテストプログラム５を生成できる機能を持たせる。図１１に示した例によると、テストスペック編集機能７におけるテストフロー入力画面では、テスト項目「遅延時間測定テスト」の出力変数が「変数１＝返り値」となっており、テスト項目「ＦＵＮＣ−Ｂ」の入力変数が「引数１＝変数１」となっている。また、テストスペック編集機能７におけるテスト”ＦＵＮＣ−Ｂ”の入力画面では、テスト実行条件として、「引数１＝＝ＴｅｓｔＰａｓｓ」が設定されている。
【００５９】
従来のテストプログラム生成システムにおける雛形ライブラリでは、異なるテスト実行条件ごとに個別のテンプレートを作成する必要があるため、雛形ライブラリが発散する可能性がある。これに対し、本実施の形態４に係るテストプログラム生成装置によると、テストスペック編集機能７は、比較演算子を用いた記述によって任意のテスト実行条件を設定可能であり、また、能動的テンプレート１２が比較演算子を解釈することによって、テストプログラム生成機能１４は、テスト実行条件が満たされた場合にのみテストを実行するように記述されたテストプログラム５を生成可能である。従って、異なるテスト実行条件ごとに個別の能動的テンプレート１２を作成する必要がないため、雛形ライブラリデータベース１３に登録される能動的テンプレート１２の数を削減でき、雛形ライブラリデータベース１３が発散することを防止することができる。
【００６０】
実施の形態５．
本実施の形態５では、冗長なテスト条件設定の実行を回避し得るテストプログラム生成装置について説明する。
【００６１】
従来のテストプログラム生成システムによって自動生成されたテストプログラムでは、直前に実行されたテスト内容に関わらず、該当テスト項目の全てのピンのテスト条件が再び設定されている。しかし、前回のテスト内容と設定が全く同じ条件のテストの場合にもテスト条件が再設定されるため、余分なテスト時間が費やされている。
【００６２】
本実施の形態５では、テストスペック２をテストスペックデータベース８に登録する際に、テスト条件ごとに識別番号（テーブルＩＤ）を割り付け、その識別番号を所定の変数に格納しておくとともに、テストプログラム５中にも出力させる。そして、設定された各テスト条件に基づく命令を実行する前に、上記所定の変数に基づき識別番号が直前に設定されたテスト条件の識別番号と同一であるか否かを判断し、再設定の要否を判断する仕組みとなっている。
【００６３】
図１２に示した例では、電圧テーブルＩＤが「電圧テーブル１」及び「電圧テーブル２」の２個の電圧テーブルが、テストスペック２としてテストスペックデータベース８に登録されている。また、生成されたテストプログラム５に関しては、テスト１００において、電圧テーブルＩＤが「電圧テーブル１」の電圧テーブルが設定されており、テスト１００に続くテスト２００においても、同様に電圧テーブルＩＤが「電圧テーブル１」の電圧テーブルが設定されている。つまり、電圧テーブルＩＤが同一である２個の電圧テーブルがテストプログラム５内で連続している。しかし、テストプログラム５には、テスト２００に関して「ｉｆ  電圧テーブルＩＤ＝＝１  ｒｅｔｕｒｎ」の条件が記述されているため、テスト２００についての電圧設定はスキップされ、電圧設定動作は実行されない。
【００６４】
本実施の形態５に係るテストプログラム生成装置によれば、識別番号が直前に設定されたテスト条件の識別番号と同一である場合にはテスト条件の最設定を行わないため、無駄な動作を省略でき、テスト時間の短縮化を図ることができる。
【００６５】
実施の形態６．
本実施の形態６では、テンプレートごとに使用頻度を集計することにより、テンプレートの標準化を推進するテストプログラム生成装置について説明する。
【００６６】
雛形ライブラリデータベース１３はユーザにも開放されており、雛形ライブラリデータベース１３には、予め登録されている汎用性のある能動的テンプレート１２（以下「標準テンプレート」と称す）に加えて、ユーザによって作成された汎用性のない能動的テンプレート１２（以下「カスタムテンプレート」と称す）を追加して登録可能である。
【００６７】
図１３に示すように、テストスペック編集機能７は、テストスペック２をテストスペックデータベース８に登録する際に、標準テンプレート及びカスタムテンプレートの各テンプレート名を雛形ライブラリデータベース登録機能１１に通知し、雛形ライブラリデータベース登録機能１１は、受け取ったテンプレート名を雛形ライブラリデータベース１３内に控える。雛形ライブラリデータベース登録機能１１は、標準テンプレート及びカスタムテンプレートが使用される度に、テンプレート名を用いて使用回数を集計する。その集計結果は、種々の標準化活動に利用される。
【００６８】
例えば、標準テンプレート及びカスタムテンプレートの使用頻度を電子メール等を通じて関係者（システムの開発者や管理者等）に通知することにより、関係者による各テンプレートの使用頻度の確認のために利用される。
【００６９】
あるいは、１つのソースプログラム中に使用頻度の高いカスタムテンプレートが存在する場合、雛形ライブラリデータベース登録機能１１は、そのようなカスタムテンプレートの標準化を促すメッセージを、電子メール等を通じて関係者に通知する。関係者は、カスタムテンプレートの内容を検証し、そのカスタムテンプレートの機能を有する新たな標準テンプレートを作成したり、既存の標準テンプレートを改良する等して、ユーザによってカスタムテンプレートではなく標準テンプレートが使用されるよう対策を施す。これにより、カスタムテンプレートが無尽蔵に追加されることによって雛形ライブラリデータベース１３が発散してしまう事態を回避することができる。
【００７０】
あるいは、標準テンプレートのバージョンが更新され、旧バージョンの標準テンプレートではテスト結果はＰＡＳＳであったが新バージョンではＦＡＩＬである場合、旧バージョンの標準テンプレートをカスタムテンプレートとして設定し直す。このような情報もシステム側で記録され、標準化された最新の能動的テンプレート１２の改訂内容に反映されるように対応がとられる。
【００７１】
本実施の形態６に係るテストプログラム生成装置によれば、雛形ライブラリデータベース登録機能１１は、標準テンプレート及びカスタムテンプレートの使用頻度を集計する機能を有している。従って、その集計結果に基づいて種々の標準化活動を実施することができ、カスタムテンプレートの増大に起因して雛形ライブラリデータベース１３が発散する等といった事態を回避することが可能となる。
【００７２】
実施の形態７．
本実施の形態７では、テスト条件の冗長な設定を回避し得るテストプログラム生成装置について説明する。
【００７３】
例えば特定のピンに対する電圧設定条件のみを変更して複数のテストを連続して実行する場合、従来のテストプログラム生成システムでは、全てのテストに関してその特定のピンに対する電圧設定条件が冗長に記述されたテストプログラムが生成されていた。例えば図１４の例に示すように、Ｔｅｓｔ１００でｐｉｎ１に３．５Ｖの電圧が印加され、続く測定１でもｐｉｎ１に３．５Ｖの電圧が印加される場合であっても、テストプログラム中には、Ｔｅｓｔ１００及び測定１の双方に関してｐｉｎ１に対する電圧印加条件が冗長に記述されていた。あるいは、プログラムへの冗長な記述を回避するために、汎用性の低い特殊なテスト項目用ライブラリを準備する必要があった。つまり、従来のテストプログラム生成システムでは、冗長設定が少なく、しかも汎用性の高いライブラリを実現できていなかった。
【００７４】
本実施の形態７に係るテストプログラム生成装置において、インタプリタ言語で記述された能動的テンプレート１２は、ピンや電源に関するテスト条件の設定状況を常に監視し（毎回の設定内容を特定の変数として保持している）、直前のテストから条件が変わっていない設定に関するテスタ命令はテストプログラム５に記述しない（スキップする）機能を有する。本実施の形態７に係るテストプログラム生成装置を用いた場合、図１４に示した例では、測定１のｐｉｎ１に関する電圧設定条件の記述が、テストプログラム５から省略されることになる。
【００７５】
本実施の形態７に係るテストプログラム生成装置によれば、冗長な記述を省略することによってテストプログラム５を小さくでき、かつ、テスト時間の無駄を回避することができる。しかも、特殊な雛形ライブラリを準備する必要がないため、雛形ライブラリデータベース１３の高い汎用性は確保されている。
【００７６】
実施の形態８．
本実施の形態８では、１つのテストスペックデータベース８を用いて複数の類似品種に関するテストスペック２を共有し得るテストプログラム生成装置について説明する。
【００７７】
テストスペック編集機能７においては、任意のテスト項目に関するテスト実行条件（つまりプログラムの生成条件）を、半導体装置の品種ごとに設定可能である。図１５を参照して、テストスペック編集機能７の入力画面には、テスト実行フラグに関する項目が設けられている。テスト実行フラグが「○」の場合は、半導体装置の品種に関わらずテスト項目が実行されることを意味し、テスト実行フラグが「１」の場合は、ピン数が１４４本以上の半導体装置に関してのみテスト項目が実行されることを意味する。例えば、テスト項目「ＦＵＮＣ−Ｃ」は、常温又は低温で、かつ、ピン数が１４４本以上の品種についてのみ実行されることが設定されている。
【００７８】
プログラム生成機能１４及び能動的テンプレート１２は、テストスペック２に設定されたテスト実行フラグに従ってテストプログラム５を生成する。図１５に示したテストプログラム５の出力例によると、ピン数が１００本の品種に関するテストプログラム５には、テスト項目「ＦＵＮＣ−Ｃ」に関するプログラムは記述されておらず、一方、ピン数が１４４本の品種に関するテストプログラム５には、テスト項目「ＦＵＮＣ−Ｃ」に関するプログラムが記述されている。
【００７９】
なお、以上の説明では、テスト実行の有無をテスト実行フラグの設定によって行う場合について説明したが、グラフィカル・ユーザ・インタフェースを用いて、ユーザが画面を見ながらテスト実行の有無を設定することも可能である。
【００８０】
本実施の形態８に係るテストプログラム生成装置によれば、１つのテストスペックデータベース８を用いて複数の類似品種に関するテストスペック２を共有できるため、テストスペック２を見通しよく管理することが可能となる。これにより、全ての類似品種に関してテストスペック２を一斉に変更する際の作業時間を削減することが可能となる。
【００８１】
実施の形態９．
本実施の形態９では、開発や量産で使用するテスタごとの環境に関わらず、限定書式でテスト結果や評価データを得ることができるテストプログラムを生成し得るテストプログラム生成装置について説明する。
【００８２】
本実施の形態９に係るテストプログラム生成装置において、雛形ライブラリデータベース１３には、テスト結果に関するツール（サマリ作成ツール、ウェハマップ作成ツール等）及び評価結果に関するツール（シュム作成ツール等）が、能動的テンプレート１２の１つとして予め登録されている。そして、プログラム生成機能１４は、生成したテストプログラム５とともに、これらのツールをネットワークを介してテスタに送る。テスタでは、テストプログラム生成装置から送られてきたツールを用いて評価等を実行する。
【００８３】
本実施の形態９に係るテストプログラム生成装置によれば、テスタは、テスタシステムごとに用意された（あるいは用意されていないテスタシステムもある）テスタユーティリティを使用することなく、テストプログラム生成装置から送られてきたツールを用いて評価等を実行できるため、同一手段で、同一書式のデータを採取可能である。また、ユーザにとっても、テスタシステムごとに個別に存在するテスタユーティリティの使用方法を理解する必要が無くなり、利便性の向上を図ることができる。
【００８４】
実施の形態１０．
本実施の形態１０では、入力欄ごとのユーザ制限を実現し得るテストプログラム生成装置について説明する。
【００８５】
本実施の形態１０に係るテストプログラム生成装置において、ユーザ認証機能６には、テストスペック２の編集を行える権限が、テストスペック２ごと及びユーザごとに設定・保存されている。ユーザ認証機能６は、ログイン時に入力されたユーザ名に基づいて、そのユーザに与えられた権限を確認する。そして、そのユーザが、テストスペック編集機能７の入力画面において、編集権限を与えられていないテストスペック２全体、あるいは電圧等の条件を編集しようとした場合には、編集権限が与えられていない旨のメッセージを画面に表示するとともに、データの入力や修正をできないように編集制限を掛ける。
【００８６】
テストスペック２の責任部門は複数に及び、それら複数の責任部門によって同時に同じ品種のテストスペック２が無秩序に編集されてしまうと、データの整合性がとれなく可能性がある。本実施の形態１０に係るテストプログラム生成装置によれば、テストスペック２ごと及びユーザごとにテストスペック２の編集権限を設定しているため、無秩序な編集によってデータの整合性がとれなくなる事態を回避することができる。
【００８７】
逆に、決められた複数のユーザに対して同一テストスペック２の編集権限を与えることにより、そのテストスペック２の編集作業を複数のユーザによって分担することができ、作業の効率化を図ることができる。従来のテストプログラム生成システムでは、複数のユーザが同一のデータベースを同時に編集することは不可能であり、テストスペックの編集は全てチップ設計者によって行われていたため、チップ設計者の負担が大きかった。
【００８８】
実施の形態１１．
本実施の形態１１では、テストスペックデータベース８内に登録されているテストスペック２の構成の工夫について説明する。
【００８９】
本実施の形態１１に係るテストスペックデータベース８では、テスト条件の設定、電源やドライバのパワーオン、測定の実施、設定を初期状態に戻してパワーオフ、という一連の基本シーケンスが、１つのテスト項目単位として定義されている。そして、複数のテスト項目単位の組合せによってテストスペック２が構成されている。テスト項目単位は、テストスペックデータベース８の記憶容量内で、いくつでも登録可能である。
【００９０】
また、テストスペック編集機能７は、テストスペック２をどのテスト項目単位の組合せによって構成するのか、及びその実行順序を設定するためのテストフロー定義機能を有している。テストフロー定義機能によって、選択するテスト項目単位を変えることにより、及び実行順序を変えることにより、任意のテストフローを定義することが可能である。
【００９１】
従って、テスト内容が近似している半導体装置の類似品種に対して、同一のテスト項目単位によって構成されたテストスペック２を共有させることができ、しかも、この場合であってもテスト項目単位の実行順序を設定することにより、それぞれの品種に応じたテストフローを実現できる。その結果、テストフローが異なる類似品種に対してテストスペック２を個別に設定する場合と比較すると、データ入力の負荷を軽減でき、開発工期の短縮化を図ることができる。
【００９２】
また、テストフローが異なる類似品種に対してテストスペック２が個別に設定されている場合において、複数のテストスペック２に同一内容の修正をかけたい場合は、それぞれのテストスペック２に対して同じような修正を何回も繰り返して実施しなければならない。これに対して、本実施の形態１１に係るテストプログラム生成装置によれば、１つのテストスペック２が複数の品種によって共有されているため、修正対象であるテスト項目単位を１回だけ修正すれば、それを共有している全ての品種に関するテストスペック２の修正作業が完了する。従って、修正作業に関する工期も短縮できる。
【００９３】
本実施の形態１１に係るテストスペック編集機能７は、複数の類似品種によって共有されているテストスペック２を構成する特定のテスト項目単位（以下「特定項目」と称す）を変更する場合に、品種ごとに特定項目の変更の要否を確認する機能を有している。そして、変更必要の品種に関しては上記の処理によって特定項目の内容を一括して変更し、一方、変更不要の品種に関しては、共有を解除し、変更前の特定項目の内容を維持したまま、共有されているテストスペック２とは別個の新たなテストスペック２を作成する。
【００９４】
以上では、テスト項目単位についての、共有及びその解除について説明したが、テスト項目単位内に規定されている電圧、タイミング、測定条件等の条件設定テーブルについても、上記と同様に共有及びその解除を実施する機能を持たせることも可能である。
【００９５】
テストプログラムの共通部分が多い類似品種に関しては、本実施の形態１１に係る発明の適用は特に有効である。
【００９６】
実施の形態１２．
本実施の形態１２では、スペックファイル（任意の品種で使用するテストスペック２の集合）の編集履歴の保存と復元について説明する。
【００９７】
本実施の形態１２に係るテストスペックデータベース８は、ユーザによってスペックファイルが更新される度に、更新を行ったユーザのユーザ名や更新年月日等の更新履歴情報を、テストスペックデータベース８内にログ情報として保存する機能を有する。
【００９８】
ログ情報は、スペックファイルが更新される度にテストスペックデータベース８内に追加的に保存され、削除や上書きはされない。
【００９９】
スペックファイルは、最終的な量産テストをパスして実際に量産される時点で正式登録となり、バージョンが固定される。この際、ログ情報も固定され、正式登録される。ログ情報は、スペックファイルのヘッダ部分に記述される。正式登録されたスペックファイルは、コンピュータのオペレーティングシステムのファイル管理で読み出し専用とする等の方法により、一切の変更ができないようにして保存される。これにより、ログ情報も固定され、量産に使用されているテストスペックの変更履歴が明確に保護される。
【０１００】
正式登録されたスペックファイルを変更する場合には、バージョンを更新し、前回のバージョン固定以降の過去のログ情報を消去した後、新たなログ情報の追加を行う。但し、この場合であってもスペックファイルの名称は引き継がれる。
【０１０１】
これにより、ログの肥大化を防止できるとともに、ヘッダ部に記述されているログ情報を参照することにより、どのバージョンのスペックファイルであっても、何時、誰が、どのような内容の変更を加えたかの把握が可能となる。
【０１０２】
不具合発生時には、ログ情報を参照することによってその原因のトレースが可能であり、不具合が発生しているスペックファイルを、不具合発生前のスペックファイル（例えば不具合が発生していない最新のスペックファイル）に復元する。
【０１０３】
また、スペックファイルを複製等された際にスペックファイルの名称（ファイル名）が変更された場合であっても、複製されたスペックファイルのヘッダ部に複製元のスペックファイルのファイル名を記述しておくことで、スペックファイルの変更履歴をトレースすることが可能となる。
【０１０４】
実施の形態１３．
本実施の形態１３では、テストスペックの比較機能について説明する。
【０１０５】
本実施の形態１３に係るテストプログラム生成装置は、複数のテストスペックデータベース８（説明の便宜上、「第１のテストスペックデータベース」及び「第２のテストスペックデータベース」と称す）を備えている。第１及び第２のテストスペックデータベースには、比較対象のテストスペック２がそれぞれ登録されている。
【０１０６】
本実施の形態１３に係るテストスペック編集機能７は、第１のテストスペックデータベースに登録されているテストスペック２の内容と、第２のテストスペックデータベースに登録されているテストスペック２の内容とを比較し、両者が互いに一致しない場合には、その不一致をユーザにリポートするために、所定の差分リストを出力する機能を有する。
【０１０７】
これにより、第１及び第２のテストスペックデータベースの一方に登録されているテストスペック２がユーザによって変更された場合に、ユーザが実施したいテストスペック変更に対し、過不足なく実施することができる。その結果、テストスペック２の変更ミスに起因するテストプログラム５及びテストスペックデータベース８の品質の低下を回避できる。
【０１０８】
また、各テストスペック２には、テストスペック編集機能７によって電圧等の条件ごとにテーブルＩＤ（識別番号）が付与されており、共有されている条件テーブルには、同一のテーブルＩＤが割り当てられている。同一のテーブルＩＤが付与された複数のテストスペック２が第１及び第２のテストスペックデータベースにそれぞれ登録されている場合において、そのうちの１つのテストスペック２が変更された場合には、上記のエラーメッセージが大量に出力されることになる。かかる事態を回避すべく、テストスペック編集機能７は、同一のテーブルＩＤが付与された複数のテストスペック２に関しては、１つのエラーメッセージしか出力しない。
【０１０９】
これにより、エラーメッセージの個数を最小限に抑えることができ、大量のエラーメッセージが出力されることによって本来発見すべき不具合を見落としてしまうという事態を回避できる。従来のテストプログラム生成システムでは、データベース間での設計パラメータの比較やテストプログラムの比較はＵＮＩＸ（Ｒ）コマンドによって行われており、共有されている複数のテストスペックの１つに不一致があった場合には、大量の不一致ログが出力されていた。
【０１１０】
実施の形態１４．
本実施の形態１４では、テストスペック２の誤った設定をチェックし得るテストプログラム生成装置について説明する。
【０１１１】
（１）本実施の形態１４に係るテストスペック編集機能７は、基準値と調整値とを用いてテストスペック２を規定する機能を有している。
【０１１２】
基準値は、半導体装置の品種に応じて設計ＣＡＤツール１（デバイス設計者）によって設定され、テストスペック編集機能７に入力される。例えば、あるテストＡにおける半導体装置Ｘの判定タイミングに関して、「１０ｎｓｅｃ」という値が基準値として設定される。
【０１１３】
調整値は、テストエンジニアが、テストスペック編集機能７の入力画面を用いて、基準値を考慮しつつ、テスタごとの仕様や性能に応じて設定する。例えば、テスタＰを用いたテストＡにおける半導体装置Ｘの判定タイミングに関して、「１２ｎｓｅｃ」という実数値、又は「基準値（１０ｎｓｅｃ）＋２ｎｓｅｃ」という変数値（演算式）が、調整値として設定され、テストスペック２として規定される。他のテスタＱに関しても同様に、テスタＱの仕様や性能に応じて、調整値が実数値又は変数値によって設定され、テストスペック２として規定される。
【０１１４】
これにより、各テスタの仕様や性能に応じてテストスペック２の値を規定することができる。しかも、複数のテスタに関するデータを１つのテストスペックデータベース８によって一元的に見通しよく管理することができる。複数のテスタに関するデータの比較が容易であり、また、データの分散を防止できる。
【０１１５】
上記の通り基準値及び調整値は異なる担当者によって役割分担して設定されるため、何らかのデバイス要因でデバイス設計者が基準値を後日に変更した場合、それに応じて調整値も設定し直す必要がある。変更された基準値は、設計ＣＡＤツール１からネットワークを介してテストスペック編集機能７に入力される。
【０１１６】
調整値が実数値によって定義されている場合は、調整値の変更がされたか否かを示すフラグをテストスペックデータベース８に持たせておき、テストスペック編集機能７は、そのフラグに基づいて調整値の変更がされていないと判断した場合には、調整値の変更を促すメッセージを画面上に表示する。これとともに、パラメータ生成機能９又はプログラム生成機能１４は、そのフラグに基づいて調整値の変更がされていないと判断した場合には、中間パラメータ１０又はテストプログラム５の生成を行わずに、アラームによる警告や画面上へのメッセージの表示等のエラー処理を行う。
【０１１７】
調整値が演算式によって定義されている場合は、パラメータ生成機能９、プログラム生成機能１４、又は能動的テンプレート１２が、演算式に基づいて基準値の変更に応じた調整値を再計算することで対応可能である。
【０１１８】
これにより、基準値が変更された場合に、調整値の変更がされないまま誤ったテストスペック２によってテストプログラム５が生成されてしまうことを防止できる。また、デバイス設計者からテストエンジニアへの、基準値の変更に関する連絡漏れ等のミスを防止できる。
【０１１９】
また、本実施の形態１４に係るテストプログラム生成装置は、複数のテスト項目によって共有されているテーブル等の基準値が変更された場合に、その基準値を共有している全てのテスト項目を割り出して、調整値の変更の要否を各テスト項目ごとに確認する機能を有している。調整値の変更が必要なテスト項目に関しては、上記と同様に、エラー処理や演算式に基づく再計算によって対応する。調整値の変更が不要なテスト項目に関しては、共有を解除し、そのテスト項目についての新規なテーブルを生成する。
【０１２０】
なお、基準値の変更がされていない場合であっても、テストスペック編集機能７によって調整値のみを変更することも可能である。
【０１２１】
（２）本実施の形態１４に係る能動的テンプレート１２は、テスト精度の範囲に関する情報を保持しており、テスト精度の範囲外の値がテストスペック２として設定された場合に、エラーメッセージを出力する機能を有している。
【０１２２】
能動的テンプレート１２は各テスタごとに個別に準備されているが、能動的テンプレート１２には、テスタのテスト精度の範囲に関する情報が予め記述されている。能動的テンプレート１２は、テストプログラム５を生成するために中間パラメータ１０を取り込む際、その中間パラメータ１０に記述されているテストスペック２の値と、テスタのテスト精度の範囲とを比較する。そして、テストスペック２の値がテスト精度の範囲内である場合には、そのまま処理を続行してテストプログラム５を生成する。
【０１２３】
一方、テストスペック２の値がテスト精度の範囲外である場合には、正しいテストを実行できないと判断して、アラームによる警告や画面上へのメッセージの表示等のエラー処理を行う。あるいは、テストを実行する上で問題がなければ、テスト精度の範囲外に設定されているテストスペック２の値を、テスト精度の範囲内の限界値に補正して、テストプログラム５を生成することもできる。
【０１２４】
これにより、テストが正しく行われないことに起因して不良品がテストをパスして次の工程に流出することを防止できる。
【０１２５】
（３）本実施の形態１４に係るパラメータ生成機能９は、複数のテスト工程（ウェハテスト、パッケージング後テスト等を含む）から成るテストフローにおいて、前段のテスト工程で実行されるテスト項目におけるパス条件（テスト条件、テスト規格）に関するテストスペック２よりも、後段のテスト工程で実行されるテスト項目におけるパス条件に関するテストスペック２のほうが厳しく設定されている場合に、エラー処理を行う機能を有する。
【０１２６】
複数のテスト工程が順に実行されるテストフローでは、不良品を早期の段階で取り除くべく、各テスト工程のパス条件は、前段のテスト工程ほど厳しく、後段のテスト工程ほど緩やかに設定される。このようなテストフローを実行するテストプログラム５を生成する場合、パラメータ生成機能９は、各テスト工程におけるパス条件に関するテストスペック２を比較し、パス条件が前段から後段に向けて徐々に緩やかになっている場合は正常と判断して、中間パラメータ１０の生成を続行する。
【０１２７】
一方、前段のパス条件よりも後段のパス条件のほうが厳しくなっている箇所が存在する場合には、異常と判断して、中間パラメータ１０の生成を行わず、アラームによる警告や画面上へのメッセージの表示等のエラー処理を行う。あるいは、テストフローを実行する上で問題がなければ、異常が発生している箇所のテストスペック２を補正して、中間パラメータ１０を生成することもできる。
【０１２８】
データの誤入力によって前段のテスト工程におけるパス条件が過度に緩やかに設定された場合には、本来はそのテスト工程で取り除かれるべきであった不良品が、そのテスト工程をパスして次の工程に流出してしまう。本実施の形態１４に係るテストプログラム生成装置によれば、テスト工程間でパス条件を比較することによりデータの誤入力を検出できるため、このような事態が生じることを回避できる。
【０１２９】
実施の形態１５．
本実施の形態１５では、半導体装置のピンを指定する際に、ピングループ同士の加減算によってこれを実現し得るテストプログラム生成装置について説明する。
【０１３０】
半導体装置は、データピンや電源ピン等の複数本のピンを有している。テストプログラム５の生成においてピンを指定する場合に、本実施の形態１５に係るテストスペック編集機能７は、ピンを１本ずつ指定することができるとともに、主要な複数のピンの組合せ（ピングループ）を複数設定することもできる。
【０１３１】
ピングループを用いてピンを指定する場合、テストスペック２には、ピングループ同士の加減算の式が記述され、これによって一又は複数のピンが指定される。例えば、ピンＰ１，Ｐ２，Ｐ３，Ｐ４，Ｐ５から成るピングループＰＩＮＧ＿Ａと、ピンＰ１，Ｐ３から成るピングループＰＩＮＧ＿Ｂとが設定されている場合に、ピンＰ２，Ｐ４，Ｐ５を指定したいときには、テストスペック２には「ＰＩＮＧ＿Ａ−ＰＩＮＧ＿Ｂ」なる演算式が記述される。
【０１３２】
また、本実施の形態１５に係るパラメータ生成機能９は、テストスペック２に記述されている式によって与えられた演算を実行する機能を有している。上記の例では、パラメータ生成機能９は、「ＰＩＮＧ＿Ａ−ＰＩＮＧ＿Ｂ」なる演算を実行することによってピンＰ２，Ｐ４，Ｐ５を求め、求めたピン名（Ｐ２，Ｐ４，Ｐ５）を中間パラメータ１０に記述する。
【０１３３】
テストプログラム５中で指定したいピンを全てピン名を用いてテストスペック２に記述する場合には、指定したいピンの本数が膨大になると、テストスペック２の視認性が悪くなるとともに、入力ミスの要因ともなる。これに対し、本実施の形態１５に係るテストプログラム生成装置によれば、テストスペック２にはピングループ同士の加減算の式を記述すれば足りるので、視認性が低下することはなく、入力ミスが生じる可能性を低減することもできる。
【０１３４】
実施の形態１６．
本実施の形態１６では、テストスペック出力機能について説明する。
【０１３５】
本実施の形態１６に係るテストスペック編集機能７は、テストスペックデータベース８に登録されているテストスペック２を、スペックシートとしてデータ出力（プリントアウトや、他の端末とのインタフェースを取るためのデータ出力等）する機能を有する。そのために、常に最新のスペックシートを出力できる。スペックシートとテストスペック２との比較を容易にするために、スペックシートの書式は、テストスペックデータベース８に登録されている状態でのテストスペック２の書式（図５参照）と同じにすることも可能である。
【０１３６】
本実施の形態１６に係るテストプログラム生成装置によれば、従来は人手で作成していたスペックシートを、テストスペック編集機能７のテストスペック出力機能によって自動的にデータ出力できるため、スペックシートの作成負荷を軽減できる。
【０１３７】
また、テストスペック２は主に英数字を用いて記述されており、同様にスペックシートも英数字を用いて記述されるため、翻訳によって他の言語にも容易に対応することができる。
【０１３８】
実施の形態１７．
本実施の形態１７では、テストスペック２を作成する際のデータ入力の負荷を軽減し得るテストプログラム生成装置について説明する。
【０１３９】
デバイス情報、テストパターン情報（タイミング設定値を含む）、及び電圧値等の設計パラメータが、設計ＣＡＤツール１からネットワークを介してテストスペック編集機能７に入力される。テストスペック編集機能７は、設計ＣＡＤツール１から送られてきた設計パラメータを読み込み、その中からそのままスペックデータとして使用できるデータを抽出して、抽出したそのデータを用いてテストスペック２を自動的に作成する。このデータは、上記実施の形態１４で説明した基準値に相当するものである。不足のデータは、テストスペック編集機能７の入力画面から、ユーザによって手入力される。複数の設計ＣＡＤツール１から送られてくる種々のファイル形式を特定の形式に変換しておくことで、テストスペック編集機能７は設計パラメータを読み込むことができる。
【０１４０】
従来のテストプログラム生成システムでは、デバイス設計者によって作成されたスペックシートの書類を見ながら必要なデータの全てを手入力することにより、テストスペックが作成されていた。従って、スペックシートの作成作業やデータの入力作業が繁雑であり、データの誤入力が生じる可能性も高かった。これに対し、本実施の形態１７に係るテストプログラム生成装置によれば、ＣＡＤデータを最大限に有効活用することにより、作業者の負荷を軽減し、かつデータの誤入力の可能性を低減することができる。
【０１４１】
実施の形態１８．
本実施の形態１８では、テストスペック２が修正された場合のテストプログラム５の再生成について説明する。
【０１４２】
本実施の形態１８に係るテストプログラム生成装置は、テストプログラム５を一旦生成した後にテストスペック２を変更したい場合に、テストプログラム５自体を直接デバッグするのではなく、テストスペックデータベース８に登録されているテストスペック２を変更（以下「テストスペック・デバッグ」とも称する）し、変更されたテストスペック２を用いて、変更に関連する部分のテストプログラム５のみを再度生成するものである。
【０１４３】
本実施の形態１８では、テストスペック・デバッグにおいて、テストスペック２を修正してから、修正に関連する部分のテストプログラム５の生成、コンパイル、及びリンクを経て、ロードモジュールが作成されるまでの時間（「ＴＡＴ」と称される）を短縮することが目的である。
【０１４４】
図１６には、あるテストスペック２が変更された場合に、すでに生成されているテストプログラム５内のどのファイルを修正する必要があるのかという対応関係を示した対応表が示されており、この対応表は、予め作成されてテストスペックデータベース８内に格納されている。例えば、電圧条件に関するテストスペック２が変更された場合には、電圧条件ファイルの修正だけが必要となり、ピンソケット条件に関するテストスペック２が変更された場合には、電圧条件ファイル、タイミング条件ファイル、及びピンソケットファイルを含む全てのファイルの修正が必要となる。
【０１４５】
図１７に示したフローチャートを用いて、具体的に動作を説明する。まず、テストスペック編集機能７の入力画面において、任意のテストスペック２を修正する（ステップＳ１７０１）。以下、電圧条件に関するテストスペック２が修正された場合を例にとり説明する。
【０１４６】
次に、図１６に示した対応表を参照して、更新すべきファイルを決定する（ステップＳ１７０２）。ステップＳ１７０１では電圧条件に関するテストスペック２が修正されているので、更新すべきファイルは電圧条件ファイルのみである。
【０１４７】
次に、ステップＳ１７０２で決定されたファイルに関連する部分のテストプログラム５のみを再生成する（ステップＳ１７０３）。具体的には、プログラム生成機能１４が電圧条件ファイルに対応する能動的テンプレート１２を起動し、起動された能動的テンプレート１２は、修正後の電圧条件に関するテストスペック２を、テストスペックデータベース８からパラメータ生成機能９を介して中間パラメータ１０として取り込み、電圧条件ファイルを再生成する。
【０１４８】
次に、ステップＳ１７０３で生成されたファイルをコンパイルし、他のファイルとリンクすることにより、ロードモジュールを作成する（ステップＳ１７０４）。具体的には、ステップＳ１７０３で生成された電圧条件ファイルが必要に応じてコンパイルされた後、修正に関連しない電圧条件ファイル以外のファイル（タイミング条件ファイルやピンソケットファイル等）とリンクすることにより、ロードモジュールが作成される。
【０１４９】
従来のテストプログラム生成システムでは、一部のテストスペックのみが修正された場合であってもテストプログラムの全体を再生成していたため、再生成に長時間を要していた。また、エディタを用いた人手での編集によってテストプログラム自体を直接デバッグしていたため、編集を行う作業者には、テスタやデバッグに関する知識や経験が要求されていた。
【０１５０】
これに対し、本実施の形態１８に係るテストプログラム生成装置によれば、修正されたテストスペック２に関連する部分のファイルのみを再生成し、修正されたテストスペック２に関連しないファイルは再生成されない。従って、ＴＡＴの短縮化を図ることができる。
【０１５１】
また、テストプログラム５の修正に際してユーザが行う作業としては、修正後のテストスペック２を入力することだけであり、あとはテストプログラム生成装置が自動的にテストプログラム５を修正するため、ユーザには、テスタやデバッグに関する知識・経験は要求されない。
【０１５２】
実施の形態１９．
本実施の形態１９では、変数を含んだ形式でのテストスペック２の設定について説明する。
【０１５３】
本実施の形態１９に係るテストスペック編集機能７は、電圧値やタイミング等のパラメータに関して、変数（変数そのもの、又は変数を含んだ計算式）をテストスペック２として設定する機能を有する。例えば、電源電圧の値に関して、「ＶＣＣ」なる変数そのものや、「ＶＣＣ×０．８」等の計算式を、テストスペック２として設定することが可能である。
【０１５４】
これにより、テストスペック・デバッグにおいて、基本となる変数の値を１箇所だけ修正することにより、その修正に連動して、計算式によって定義されている他のピンの電圧値やタイミングを一括して補正することが可能となる。その結果、テストスペック２の見通しがよくなり、また、テストスペック・デバッグにおける作業効率を改善することができる。
【０１５５】
能動的テンプレート１２は、変数を含んだテストスペック２を用いてテストプログラム５を生成し、その結果、テストプログラム５中にも変数を含んだ形でパラメータが記述される。
【０１５６】
ところで、テスタによっては、変数計算を行うと動作が遅くなるものが存在する。このようなテスタに関しては、たとえ静的変数（他のテスト結果に応じてその値が変化しない変数）を含んだ計算式によってテストスペック２が設定されていても、パラメータ生成機能９がその変数計算を実行し、テストプログラム５には、変数計算の結果得られた実数値が記述される。つまり、パラメータ生成機能９による変数計算によって変数が実数値に書き改められて、その実数値がテストプログラム５に記述される。これにより、変数計算に起因してテスタの動作が遅くなるという事態を回避できる。変数を含んだ形で記述するのか、あるいは実数値を記述するのかという区別は、能動的テンプレート１２によって行われる。
【０１５７】
実施の形態２０．
本実施の形態２０では、テストプログラム５を量産プログラムへ適用する際に品質を維持し得るテストプログラム生成装置について説明する。
【０１５８】
生成したテストプログラム５を量産プログラムへ適用することを許可する旨のキー（以下「量産許可キー」と称する）を、オブジェクトプログラムであるバイナリファイル１６に組み込むことで、量産プログラムの品質の維持を図る。本実施の形態２０に係るプログラム生成機能１４は、上記実施の形態１８におけるテストスペック・デバッグや、後述の実施の形態２１におけるＴＲＣ（Test Rule Check）等の、所定のデバッグ又はルールチェックが実施されたテストプログラム５に対して、量産許可キーの組み込みに関する命令を作成する。
【０１５９】
本実施の形態２０に係るコンパイラ１５は、この命令を受けると、そのテストプログラム５をコンパイルすることにより得られたバイナリファイル１６に対して、量産許可キーを組み込む。
【０１６０】
量産許可キーには、ソースプログラムであるテストプログラム５のバージョン等のプロパティに関する情報が記述されている。従って、バイナリファイル１６の量産許可キーを参照することにより、ソースプログラムとオブジェクトプログラムとの一致／不一致を、容易に確認することができる。
【０１６１】
本実施の形態２０に係るテストプログラム生成装置によれば、所定のデバッグ又はルールチェックが実施されていないテストプログラム５に対しては、そのオブジェクトプログラムへの量産許可キーの組み込みを許可しない。その結果、量産プログラムの品質を高く維持できる。
【０１６２】
また、本発明に係るテストプログラム生成システム以外のシステムを用いて生成されたプログラムには、量産許可キーは組み込まれない。そのため、他のシステムを用いて生成されたプログラムとの識別も容易である。
【０１６３】
さらに、本発明に係るシステムによって生成されたテストプログラム５であっても、人手によってソースプログラムを直接修正した場合には、その修正後のソースプログラムから得られたオブジェクトプログラムには量産許可キーが組み込まれない。従って、量産許可キーを組み込むためには、上記実施の形態１８で説明したテストスペック・デバッグによる修正が要求されるため、量産プログラムに関してはテストスペックを常に最新に保つことが可能となる。
【０１６４】
その他の効果として、誤って修正されたソースプログラム（例えば評価用プログラム）の量産への適用を防止できる。また、スペックファイルが保管されていれば、ソースファイルの管理を不要にできる。
【０１６５】
実施の形態２１．
本実施の形態２１では、ＴＲＣについて説明する。
【０１６６】
ＴＲＣには、主に、（１）設定欄入力時ルールチェック、（２）画面更新時ルールチェック、（３）プログラム生成時ルールチェックがある。
【０１６７】
まず、（１）設定欄入力時ルールチェック、及び（２）画面更新時ルールチェックについて説明する。
【０１６８】
図１８のフローチャートを参照して、まず、ユーザ認証機能６の入力画面において、ログイン、パスワードを入力し、ユーザ認証を行う（ステップＳ１８０１）。次に、テストスペック編集機能７の入力画面にテストスペック２のデータを入力し、必要に応じてテストスペック２をテスタごとの仕様に合わせて編集する（ステップＳ１８０２）。次に、テストスペック編集機能７は、設定欄入力時ルールチェックを実行し、入力されたデータにエラーが無いか否かをチェックする（ステップＳ１８０３，Ｓ１８０４）。
【０１６９】
設定欄入力時ルールチェックには、テスタ共通の一般的な入力書式チェックと、各テスタの標準仕様書（Ｈ／Ｗ，Ｓ／Ｗ）に基づいて予め作成しておいたファイルを用いての、テストスペック２の書式に関するエラーチェックとがある。通常、テストスペック編集機能７の入力画面にテストスペック２が入力されると、設定欄入力時ルールチェックがリアルタイムに実行される。例えば、電圧値を入力すべき欄に誤って電流値が入力された場合には、「入力エラー有り」と判断される。
【０１７０】
入力エラーが発生している場合はテストスペック編集機能７の入力画面にエラーメッセージを表示し（ステップＳ１８０５）、ユーザは、エラーメッセージに従って、テストスペック２を修正する（ステップＳ１８０６）。その後、設定欄入力時ルールチェックが再度実行される（ステップＳ１８０３）。
【０１７１】
設定欄入力時ルールチェックにおいて入力エラーが無い場合は、画面を更新した後（ステップＳ１８０７）、テストスペック編集機能７によって、画面更新時ルールチェックが実施される（ステップＳ１８０８）。
【０１７２】
画面更新時ルールチェックは、一画面単位で入力されたテストスペック２に含まれる複数のデータ間で、データの整合性がとれているか否かのチェックであり、テスタごとの仕様には依存しないルールチェックである。
【０１７３】
エラーが発生している場合はエラーメッセージを表示し（ステップＳ１８０５）、ユーザは、エラーメッセージに従って、テストスペック２を修正する（ステップＳ１８０６）。その後、ステップＳ１８０３以降の処理が繰り返される。
【０１７４】
画面更新時ルールチェックにおいてエラーが無い場合は、テストスペックデータベース８にテストスペック２を登録する（ステップＳ１８０９）。
【０１７５】
次に、（３）プログラム生成時ルールチェックについて説明する。
【０１７６】
図１９のフローチャートを参照して、パラメータ生成機能９が起動されると（ステップＳ０４０２）、パラメータ生成機能（ステップＳ１９０１）及び能動的テンプレート１２（図４のステップＳ０４０７）によって、プログラム生成時ルールチェックが実施される。
【０１７７】
プログラム生成時ルールチェックには、テスタに依存しない、本プログラム生成システムで定義した制限に関するルールチェックと、テスト方法に対する制限事項に基づいて実行される、テスタごとの仕様に依存するルールチェックとがある。前者はパラメータ生成機能９によって行われ、後者は能動的テンプレート１２によって行われる。プログラム生成機能１４の実行画面内にルールチェック用の起動ボタンを設け、複数のテストスペック２の組合せの不整合、テスト方法とテストスペック２との組合せの不備、テスタごとの仕様範囲の逸脱、能動的テンプレート１２によって指定されているテストシーケンスに関する制限事項の逸脱等がチェックされる。テストシーケンスに関する制限事項の逸脱に関するチェックは、特に厳密にチェックされる。
【０１７８】
また、能動的テンプレート１２自体にエラーがないか、セルフチェックの組み込みも可能である。カスタムテンプレートであれば、デバイス特有のチェックを実行することも可能である。能動的テンプレート１２のヘッダ部には、設定欄入力時ルールチェックに関する事項も記述可能であり、これにより、当該能動的テンプレート１２に関する情報を入力画面に入力する際のチェックも設定することができる。
【０１７９】
プログラム生成時ルールチェック（パラメータ生成機能９でのルールチェック）においてエラーが発生している場合は、パラメータ生成機能９の実行画面にエラーメッセージを表示し（ステップＳ１９０２）、ユーザは、エラーメッセージに従って、テストスペック２を修正する（ステップＳ１９０３）。その後、ユーザは、パラメータ生成機能９の起動から再実行する（ステップＳ０４０２）。
【０１８０】
プログラム生成時ルールチェックにおいてエラーが発生していない場合は、中間パラメータ１０が生成される（ステップＳ０４０３）。
【０１８１】
能動的テンプレート１２における、プログラム生成時ルールチェックでエラーが発生している場合は、プログラム生成機能１４の実行画面にエラーメッセージを表示し（ステップＳ０４０８）、ユーザは、エラーメッセージに従ってテストスペック２又は能動的テンプレート１２を修正する（ステップＳ０４０９）。その後、ユーザは、パラメータ生成機能９の起動から再実行する（ステップＳ０４０２）。エラーが発生しない場合には、指定された位置に生成される（ステップＳ０４１０）。
【０１８２】
ルールチェック機能をプログラム生成機能に持たせる従来のシステムでは、新たなテスト方法（テンプレート）を追加した場合、その追加したテスト方法に特有のルールチェックを実施する機能を、プログラム生成機能に追加する必要があり、適用までに長期間を要していた。また、ルールチェックに関するパラメータを別ファイルとして準備し、プログラム生成機能がそのパラメータを読み込むことによってのみのルールチェックを実行する従来のシステムでは、各テスト方法ごとの細かなチェック（複数のテストスペックの組合せチェック等）をパラメータ化できない場合がある。その場合には、プログラム生成機能にチェック機能を追加する必要があり、やはり適用までに長期間を要していた。
【０１８３】
これに対して、本実施の形態２１に係るテストプログラム生成装置によれば、テストスペック編集機能７が設定欄入力時ルールチェック及び画面更新時ルールチェックを実施し、また、能動的テンプレート１２がプログラム生成時ルールチェックを実施することにより、新たなテスト方法を追加した場合であっても、パラメータ生成機能９やプログラム生成機能１４を改修することなく、新たなテスト方法に関するＴＲＣをも実施することが可能となる。
【０１８４】
実施の形態２２．
本実施の形態２２では、上記実施の形態１〜２１に係るテストプログラム生成装置を利用するユーザの、利用環境の改善について説明する。
【０１８５】
国内外の設計拠点、テスト開発拠点、工場、テストハウス、デザインハウス等、広域での利用を可能とするために、Ｗｅｂベースのテストプログラム生成システムを構築する。これにより、ユーザが何処からでも上記実施の形態１〜２１に係るテストプログラム生成装置を利用してテストプログラムの開発を行うことを可能とする。システム構成としては、Ｗｅｂブラウザを備えるユーザの計算機端末（ＰＣ）と、上記実施の形態１〜２１に係るテストプログラム生成装置とを、ネットワークを介して相互に接続する。
【０１８６】
ネットワークは、社内ＬＡＮに限らず、インターネットであってもよい。ファイアウォール機能、ユーザＩＤ、パスワード等で、セキュリティを保つことができる。インターネットを利用することにより、計算機端末及びＷｅｂブラウザを準備するだけで、社外のユーザ（テストハウス、デザインハウス、半導体ユーザ等）からも、インターネット経由で上記実施の形態１〜２１に係るテストプログラム生成装置を利用することが可能となる。
【０１８７】
従来のテストプログラム生成装置の利用（テストスペックの作成、テストプログラムの生成）は、特定のユーザ及び特定の端末に限られていた。従って、テストプログラムの開発場所と量産場所とが地理的に遠隔地である場合等には、スタッフが双方を行き来しなければならず、不便が多かった。これに対し、本実施の形態２２に係るテストプログラム生成システムによれば、Ｗｅｂベースのテストプログラム生成システムを構築することにより、例えば量産場所のスタッフであっても、開発場所にあるテストプログラム生成装置をネットワークを介して利用でき、ユーザの利用環境が改善される。
【図面の簡単な説明】
【０１８８】
【図１】本発明に係るテストプログラム生成システムの基本構成を示すブロック図である。
【図２】本発明の実施の形態１に係るテストプログラム生成装置において、能動的テンプレートの登録処理を示すフローチャートである。
【図３】本発明の実施の形態１に係るテストプログラム生成装置において、テストスペックの登録処理を示すフローチャートである。
【図４】本発明の実施の形態１に係るテストプログラム生成装置において、テストプログラムの生成処理を示すフローチャートである。
【図５】本発明の実施の形態１に係るテストプログラム生成装置において、中間パラメータの生成処理を示す模式図である。
【図６】本発明の実施の形態１に係るテストプログラム生成装置において、テストプログラムの生成処理を示す模式図である。
【図７】本発明の実施の形態２に係るテストプログラム生成装置において、雛形ライブラリデータベースへの表示制御パラメータの入力を示す模式図である。
【図８】本発明の実施の形態２に係るテストプログラム生成装置において、雛形ライブラリデータベースへの表示制御パラメータの登録処理を示すフローチャートである。
【図９】本発明の実施の形態２に係るテストプログラム生成装置において、雛形ライブラリデータベースへの表示制御パラメータの登録処理を示すフローチャートである。
【図１０】本発明の実施の形態３に係るテストプログラム生成装置において、テストシーケンス入力欄の一例を示す図である。
【図１１】本発明の実施の形態４に係るテストプログラム生成装置において、テストプログラムの生成処理を示す模式図である。
【図１２】本発明の実施の形態５に係るテストプログラム生成装置において、テストプログラムの生成処理を示す模式図である。
【図１３】本発明の実施の形態６に係るテストプログラム生成装置において、テンプレートの標準化推進のための仕組みを示す模式図である。
【図１４】本発明の実施の形態７に係るテストプログラム生成装置において、冗長な設定命令を実行しない仕組みを示す模式図である。
【図１５】本発明の実施の形態８に係るテストプログラム生成装置において、テストプログラムの生成処理を示す模式図である。
【図１６】本発明の実施の形態１８に係るテストプログラム生成装置において、テストスペックと要修正ファイルとの対応表を示す図である。
【図１７】本発明の実施の形態１８に係るテストプログラム生成装置において、テストスペック・デバッグ処理を示すフローチャートである。
【図１８】本発明の実施の形態２１に係るテストプログラム生成装置において、ＴＲＣ処理を示すフローチャートである。
【図１９】本発明の実施の形態２１に係るテストプログラム生成装置において、ＴＲＣ処理を示すフローチャートである。
【符号の説明】
【０１８９】
１  設計ＣＡＤツール、２  テストスペック、５  テストプログラム、６  ユーザ認証機能、７  テストスペック編集機能、８  テストスペックデータベース、９  パラメータ生成機能、１０  中間パラメータ、１１  雛形ライブラリデータベース登録機能、１２  能動的テンプレート、１３  雛形ライブラリデータベース、１４  プログラム生成機能、１５  コンパイラ、１６  バイナリファイル。
【図１】
2006031354.tif 000003
【図２】
2006031354.tif 000004
【図３】
2006031354.tif 000005
【図４】
2006031354.tif 000006
【図５】
2006031354.tif 000007
【図６】
2006031354.tif 000008
【図７】
2006031354.tif 000009
【図８】
2006031354.tif 000010
【図９】
2006031354.tif 000011
【図１０】
2006031354.tif 000012
【図１１】
2006031354.tif 000013
【図１２】
2006031354.tif 000014
【図１３】
2006031354.tif 000015
【図１４】
2006031354.tif 000016
【図１５】
2006031354.tif 000017
【図１６】
2006031354.tif 000018
【図１７】
2006031354.tif 000019
【図１８】
2006031354.tif 000020
【図１９】
2006031354.tif 000021