(57)【要約】【課題】テストプログラムが規則に準拠しているか否かの検証を人手を介すことなく自動的に行う。【解決手段】半導体集積回路を動作試験をするために半導体集積回路試験装置が実行するテストプログラムを記憶するテストプログラム記憶手段と、テストプログラムの作成上の規則を規定する規則定義情報を記憶する規則定義情報記憶手段と、テストプログラムが規則定義情報に規定された規則に準拠しているか否かを検証するテストプログラム検証手段と、該テストプログラム検証手段の検証結果を外部に出力する出力手段とを具備する。【選択図】図１
2010044694.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路の動作を試験するために半導体集積回路試験装置が実行するテストプログラムを記憶するテストプログラム記憶手段と、
前記テストプログラムの作成上の規則を規定する規則定義情報を記憶する規則定義情報記憶手段と、
前記テストプログラムが前記規則定義情報に規定された規則に準拠しているか否かを検証するテストプログラム検証手段と、
該テストプログラム検証手段の検証結果を外部に出力する出力手段と
を具備することを特徴とするテストプログラム評価装置。
【請求項２】
前記規則定義情報を操作入力するための操作部と、
該操作部が受け付けた前記規則定義情報に基づいて規則定義ファイルを作成して前記規則定義情報記憶手段に記憶させる規則定義ファイル作成手段と
をさらに具備することを特徴とする請求項１記載のテストプログラム評価装置。
【請求項３】
前記テストプログラム検証手段は、前記テストプログラムの言語構造を解析することにより当該テストプログラムに関する言語構造データベースを生成し、該言語構造データベースと前記規則定義情報とを照合することにより前記テストプログラムを検証することを特徴とする請求項１または２記載のテストプログラム評価装置。
【請求項４】
前記テストプログラム検証手段は、前記テストプログラムのコンパイラを用いて前記テストプログラムの言語構造を解析することを特徴とする請求項３記載のテストプログラム評価装置。
【請求項５】
前記規則定義情報は、前記半導体集積回路に入力する試験用信号の入力順序を規定する規則項目を含み、
前記テストプログラム検証手段は、前記テストプログラムにおける前記試験用信号を示すプログラム言語の並び順を評価することにより、前記テストプログラムが前記規則項目に準拠するか否かを検証することを特徴とする請求項１〜４いずれか一項に記載のテストプログラム評価装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テストプログラム評価装置に関する。
【背景技術】
【０００２】
例えば下記特許文献１、２には、半導体集積回路試験装置（ＩＣテスタとも言う）が実行するテストプログラムの作成やそのデバッグに関する技術が開示されている。半導体集積回路試験装置は、周知のように半導体集積回路（被測定デバイス）の動作試験を行う装置であり、テストプログラムに基づいて半導体集積回路に所定の試験用信号を供給して出力される信号を評価することにより動作を試験する。
【０００３】
上記テストプログラムは、半導体集積回路を製造する個々のメーカや当該メーカーから委託を受けたソフトウエア開発業者によって作成されるものであるが、このようなテストプログラムの作成者は、テストプログラムの作成について各種の規則を設定し、この規則に準拠したテストプログラムを作成するようにしている。このような規則は、作成者における半導体集積回路の製造経験やテストプログラムの作成経験等を背景として設定されるものであり、作成者に経験等に応じた種々の項目が含まれる。
【特許文献１】特開２００２−１４８３１７号公報
【特許文献２】特開２００３−１６７０３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、作成されたテストプログラムが規則に準拠しているか否かの検証を人手に頼っているのが現状である。すなわち、テストプログラムの評価者は、テストプログラムを目視確認することによって当該テストプログラムが規則を満足するものでるか否かを判断する。しかしながら、半導体集積回路の大集積化や試験項目の増大に起因してテストプログラムが大規模化する傾向にあり、テストプログラムが規則に準拠しているか否かの検証を人手で行うことは非現実的になりつつある。
また、人手によるテストプログラムの検証は、評価者の熟練や注意力等に左右され易く、よって検証精度が低い手法である。したがって、テストプログラムが規則に準拠するか否かをより精度良く検証する手法の開発が切望されている。
【０００５】
本発明は、上述した事情に鑑みてなされたものであり、以下の点を目的とするものである。
（１）テストプログラムが規則に準拠しているか否かの検証を人手を介すことなく自動的に行う。
（２）テストプログラムが規則に準拠しているか否かの検証精度を向上させる。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明では、第１の解決手段として、半導体集積回路の動作を試験するために半導体集積回路試験装置が実行するテストプログラムを記憶するテストプログラム記憶手段と、テストプログラムの作成上の規則を規定する規則定義情報を記憶する規則定義情報記憶手段と、テストプログラムが規則定義情報に規定された規則に準拠しているか否かを検証するテストプログラム検証手段と、該テストプログラム検証手段の検証結果を外部に出力する出力手段とを具備する、という手段を採用する。
【０００７】
第２の解決手段として、上記第１の手段において、規則定義情報を操作入力するための操作部と、該操作部が受け付けた規則定義情報に基づいて規則定義ファイルを作成して前記規則定義情報記憶手段に記憶させる規則定義ファイル作成手段とをさらに具備する、という手段を採用する。
【０００８】
第３の解決手段として、上記第１または第２の手段において、テストプログラム検証手段は、テストプログラムの言語構造を解析することにより当該テストプログラムに関する言語構造データベースを生成し、該言語構造データベースと規則定義情報とを照合することによりテストプログラムを検証する、という手段を採用する。
【０００９】
第４の解決手段として、上記第３の手段において、テストプログラム検証手段は、テストプログラムのコンパイラを用いてテストプログラムの言語構造を解析する、という手段を採用する。
【００１０】
第５の解決手段として、上記第１〜第４いずれかの手段において、規則定義情報は、半導体集積回路に入力する試験用信号の入力順序を規定する規則項目を含み、テストプログラム検証手段は、テストプログラムにおける試験用信号を示すプログラム言語の並び順を評価することにより、テストプログラムが上記規則項目に準拠するか否かを検証する、という手段を採用する。
【発明の効果】
【００１１】
本発明によれば、テストプログラム評価装置の構成要件であるテストプログラム検証手段がテストプログラムが規則定義情報に規定された規則に準拠しているか否かを検証するので、テストプログラムが規則定義情報に規定された規則に準拠しているか否かを人手に依らず自動的に検証することができる。また、本発明によれば、人手による検証に比較して検証精度が高い。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して、本発明の一実施形態について説明する。
図１は、本実施形態に係るテストプログラム評価装置Ａの機能構成を示すシステム構成図である。本テストプログラム評価装置Ａは、図示するように、操作部１、表示部２（出力手段）、ハードディスク装置３（テストプログラム記憶手段、規則定義情報記憶手段）、メモリ４、ＣＰＵ（Central Processing Unit）５及びシステムバス６から構成されている。なお、これら各構成要素のうち、メモリ４、ＣＰＵ５及びシステムバス６は、テストプログラム検証手段及び規則定義ファイル作成手段を構成している。
【００１３】
また、図示するように、ハードディスク装置３は、テストプログラム３ａ及び規則定義ファイル３ｂを記憶する。メモリ４は、規則定義ファイル作成プログラム４ａ、コンパイラ４ｂ、評価プログラム４ｃ及び言語構造データベース４ｄを記憶する。
【００１４】
操作部１は、キーボードあるいは／及びマウス等のポインティングデバイスであり、後述する規則定義情報を本テストプログラム評価装置Ａに操作入力するためのものである。詳細については後述するが、本テストプログラム評価装置Ａのユーザは、操作部１を手操作することによって規則定義情報を本テストプログラム評価装置Ａに順次入力する。表示部２は、例えば液晶ディスプレイであり、ＣＰＵ５による制御下でテストプログラム３ａの検証結果や本テストプログラム評価装置Ａの動作状態等を表示する。
【００１５】
ハードディスク装置３は、所定の磁性体が塗布されたディスク上にテストプログラム３ａ及び規則定義ファイル３ｂを記憶する記憶装置である。テストプログラム３ａは、ＩＣ（Integrated Circuit）やＬＳＩ（Large Scale Integration）等の半導体集積回路の動作を試験するために半導体集積回路試験装置（ＩＣテスタとも言う）が実行するプログラムである。
【００１６】
ここで、周知のように、半導体集積回路試験装置は、所定の試験用信号を半導体集積回路（被測定デバイス）の各入力端子に入力して得られる半導体集積回路の出力信号（被評価信号）を期待値と比較することにより当該半導体集積回路の動作状態を評価するものである。半導体集積回路の動作状態を評価するための評価項目（試験項目）は通常多岐に亘っており、半導体集積回路試験装置は、試験項目毎に異なる試験用信号を半導体集積回路に入力し、各々の試験用信号に応じて半導体集積回路から出力される被評価信号を評価条件（期待値）を満足するか否かを評価する。
【００１７】
テストプログラム３ａは、このような半導体集積回路試験装置の試験動作（試験処理）を規定するプログラムであり、半導体集積回路試験装置の仕様に特化した専用のプログラム言語で記述されたものである。このテストプログラム３ａは、試験用信号の仕様や当該試験用信号の上記各入力端子との関係、また上記評価条件等々を試験項目毎に規定する。
【００１８】
図２は、テストプログラム３ａの内容の一例を示すものであり、予め用意されたテンプレートを用いて作成されたものである。このテストプログラム３ａは、上記試験項目に対応するテストセクションtest001，test002，……が試験順序に従って順次記述されたものであり、各テストセクションtest001，test002，……は、複数のテストセグメントから構成されている。なお、テストプログラム３ａは、テンプレートを使用することなく、テキストエディタを用いることにより文字を逐次入力して作成される場合もある。
【００１９】
このテストセグメントは、半導体集積回路（被測定デバイス）の各入力端子に供給する試験用信号の設定や半導体集積回路（被測定デバイス）から出力される被評価信号の評価条件の設定等、つまり半導体集積回路（被測定デバイス）を試験する際の各種試験条件の設定情報が記述されるものである。なお、各テストセクションtest001，test002，……の先頭には、各テストセクションtest001，test002，……で使用するテンプレートの名称（テンプレート名）が「/*  TEMPLATE : test_001.tmplt  */」のように宣言されている。
【００２０】
この図２において、「dps(1) {………}」や「pin(INPIN1) {………}」は、各々にテストセグメントである。「dps(1) {………}」は、半導体集積回路（被測定デバイス）に電源を供給するＤＰＳモジュールの設定を規定するテストセグメントであり、「pin(INPIN1) {………}」は、半導体集積回路試験装置における第１ピン（ピンエレクトロニクス）の評価信号の評価条件を規定するテストセグメントである。
【００２１】
「dps(1) {………}」では、例えば電源電圧を示す変数ｖに値として３.２Ｖ（ボルト）を設定すること、電源電流を示す変数ｉに値として１０ＭＡ（ミリアンペア）を設定すること等、ＤＰＳモジュールに関する各種設定項目の設定値がそれぞれ記述されている。また、「pin(INPIN1) {………}」では、上記評価条件の１つである上限電圧を示す変数ｖｉｈに値として３.０Ｖ（ボルト）を設定すること、下限電圧を示す変数ｖｉｌに値として０.５Ｖ（ボルト）を設定すること等の第1ピン（ピンエレクトロニクス）の評価条件に関する設定値がそれぞれ記述されている。
【００２２】
規則定義ファイル３ｂは、このようなテストプログラム３ａの作成上の規則を規定する規則定義情報が登録されたテキストファイルであり、上記操作部１が受け付けた規則定義情報に基づいてハードディスク装置３に記憶されたものである。このような規則定義ファイル３ｂに登録された規則定義情報についてさらに詳しく説明すると、当該規則定義情報は、テストプログラム３ａの作成上の約束事項を１あるいは複数の規則項目に亘って記述したものであり、一例として以下のような内容である。
【００２３】
〔規則定義情報〕
規則項目001：電圧を示す変数（電圧変数）の先頭文字は「ｖ」とする。
規則項目002：変数や値の型が「文字列」の関数については関数名の先頭文字を「ｃ」とする。
規則項目003：半導体集積回路試験装置の第３ピンに入力を設定した後に第５ピンの入力を設定する。
【００２４】
このような規則定義情報において、規則項目001は、テストプログラム３ａ内で使用する変数の名前の付与方法に関する規則を具体的に規定するものである。また、規則項目002は、関数に代入される変数や値の型に応じて関数名の付与規則を具体的に規定するものである。
【００２５】
規則項目003は、半導体集積回路（被測定デバイス）に入力する試験用信号の供給順序を具体的に規定する規則である。例えば半導体集積回路（被測定デバイス）には、電源ピン（第３ピン）に電源（試験用信号）を入力する前に制御ピン（第５ピン）に制御信号（試験用信号）を入力した場合に内部回路を破壊する場合があるので、上記規則項目003は、このような半導体集積回路（被測定デバイス）の事情に対応する規則である。なお、上記規則定義情報はあくまで一例であり、この他にも種々の規則が考えられる。
【００２６】
メモリ４は、ＲＡＭ（Random Access Memory）及びＲＯＭ（Read Only Memory）から構成されており、規則定義ファイル作成プログラム４ａ、コンパイラ４ｂ、評価プログラム４ｃ及び言語構造データベース４ｄを記憶する。規則定義ファイル作成プログラム４ａは、操作部１が受け付けた規則定義情報に基づいて規則定義ファイル３ｂを作成する一種のテキストエディタである。
【００２７】
コンパイラ４ｂは、テストプログラム３ａ（プログラム言語で記述されたもの）をＣＰＵ５が実行することが可能な機械語（２進数のビット列）に変換するプログラムである。このコンパイラ４ｂは、上記機械語の生成過程において、テストプログラム３ａの言語構造を解析することにより言語構造データベース４ｄを生成する。評価プログラム４ｃは、テストプログラム３ａが規則定義ファイル３ｂ内の規則定義情報に規定された規則に準拠しているか否かを検証するプログラムである。
【００２８】
言語構造データベース４ｄは、上述したようにコンパイラ４ｂの処理過程で生成されるデータベースであり、テストプログラム３ａの言語構造を示す。すなわち、この言語構造データベース４ｄは、テストプログラム３ａがどのようなテストセクションから構成されており、また各テストセクションがどのようなテンプレート及びテストセグメントから構成されているか、また各テストセグメントにおいてどのような変数が定義され、各変数にどのような値が設定されているかを示すものである。
【００２９】
例えば、図２に示したテストプログラム３ａに関する言語構造データベース４ｄは、テストセクションtest001で使用するテンプレートの名称が「test_001.tmplt」であること、テストセグメントがＤＰＳモジュールの設定を規定する「dps(1) {………}」、第１ピン（ピンエレクトロニクス）の評価信号の評価条件を規定する「pin(INPIN1) {………}」等であること、またＤＰＳモジュールに関する設定項目（変数）が「v」、「i」、「vrng」、「irng」、「vi」、「rly」であること、これら各変数の設定値が「3.2V」、「10MA」、「R8V」、「R250NA」、「vfm」、「dir」であることを示すものである。
【００３０】
ＣＰＵ５は、例えば６４ビットＣＩＳＣ（Complex Instruction Set Computer）プロセッサであり、上記規則定義ファイル作成プログラム４ａ、コンパイラ４ｂ及び評価プログラム４ｃを実行することにより、システムバス６を介して上記操作部１、表示部２、ハードディスク３及びメモリ４を統括的に制御する。システムバス６は、例えばＰＣＩ（Peripheral Component Interconnect）バスであり、操作部１、表示部２、ハードディスク３、メモリ４及びＣＰＵ５を通信可能に相互接続する。
【００３１】
次に、このように構成された本テストプログラム評価装置Ａの動作について、図４に示すフローチャートに沿って詳しく説明する。なお、このフローチャートは、規則定義ファイル作成プログラム４ａ、コンパイラ４ｂ及び評価プログラム４ｃを実行することによるＣＰＵ５の処理手順を示している。
【００３２】
最初に、ＣＰＵ５は、規則定義ファイル作成プログラム４ａを実行することにより、規則定義ファイル３ｂの作成と当該規則定義ファイル３ｂのハードディスク装置３への保存を行う（ステップＳ1）。すなわち、本テストプログラム評価装置Ａのユーザは、操作部１を用いて所定の操作指示を入力することにより規則定義ファイル作成プログラム４ａを起動させ、当該規則定義ファイル作成プログラム４ａに基づいてＣＰＵ５が表示部２に表示させる規則定義ファイル作成画面に、上述したような複数の規則項目に亘る規則定義情報を順次入力する。この結果、ＣＰＵ５は、規則定義ファイル作成プログラム４ａに基づいて上記規則定義情報が登録された規則定義ファイル３ｂを生成してハードディスク装置３に保存（記憶）させる。
【００３３】
続いて、ＣＰＵ５は、コンパイラ４ｂを実行することにより、テストプログラム３ａを言語解析することによりテストプログラム３ａの言語構造データベース４ｄを生成してメモリ４に記憶させる（ステップＳ2）。すなわち、ユーザは、規則定義ファイル作成プログラム４ａを用いた規則定義ファイル３ｂの作成が完了すると、操作部１を用いて所定の操作指示を入力することによりコンパイラ４ｂを起動させる。そして、ＣＰＵ５は、当該コンパイラ４ｂに基づいてテストプログラム３ａの言語構造を解析し、この解析結果を示す言語構造データベース４ｄをメモリ４に保存（記憶）させる。上記ステップＳ1，Ｓ2の処理によって、テストプログラム３ａの評価に必要な規則定義ファイル３ｂ及び言語構造データベース４ｄが本テストプログラム評価装置Ａ内に用意されたことになる。なお、言語構造データベース４ｄについては、メモリ４ではなくハードディスク装置３に記憶させるようにしても良い。
【００３４】
続いて、ＣＰＵ５は、評価プログラム４ｃを実行することにより、規則定義ファイル３ｂのメモリ４への転送（ステップＳ3）及びテストプログラム３ａの検証（ステップＳ4）を行う。すなわち、ユーザは、言語構造データベース４ｄのメモリ４への保存が完了すると、操作部１を用いて所定の操作指示を入力することにより評価プログラム４ｃを起動させる。そして、ＣＰＵ５は、評価プログラム４ｃに基づいて、ハードディスク装置３に保存されている規則定義ファイル３ｂをメモリ４に転送し、この結果何れもメモリ４に記憶された規則定義ファイル３ｂと言語構造データベース４ｄとを比較照合することによりテストプログラム３ａが規則定義ファイル３ｂ内に規則定義情報として規定された規則に準拠しているか否かを検証する。
【００３５】
例えば、図２に示されたテストプログラム３ａが上述した規則項目001に準拠しているか否かを検証する場合、ＣＰＵ５は、言語構造データベース４ｄに登録された全ての電圧変数を検索し、その名称の先頭文字は「ｖ」か否かを確認する。また、ＣＰＵ５は、テストプログラム３ａが上述した規則項目002に準拠しているか否かを検証する場合、言語構造データベース４ｄに登録された全ての関数のうち、変数や値の型が「文字列」の関数を検索し、その関数名の先頭文字が「ｃ」か否かを確認する。
【００３６】
また、ＣＰＵ５は、テストプログラム３ａが上述した規則項目003に準拠しているか否かを検証する場合、言語構造データベース４ｄに登録された全てのピン（ピンエレクトロニクス）の設定の並び順を検索し、この並び順が第３ピンの後に第５ピンの順序になっているか否かを確認する。
【００３７】
そして、ＣＰＵ５は、規則定義ファイル３ｂに登録された全ての規則項目についてテストプログラム３ａの検証が完了すると、この検証結果を表示部２に出力して表示させる（ステップＳ5）。以上のステップＳ1〜Ｓ5の一連の処理によって、テストプログラム３ａの検証処理が完了するが、ハードディスク装置３に複数のテストプログラム３ａが保存されている場合には、ステップＳ1〜Ｓ5の一連の処理を各テストプログラム３ａについて行うことにより全てのテストプログラム３ａの検証が終了する。
【００３８】
このような本実施形態によれば、ＣＰＵ５が規則定義ファイル作成プログラム４ａ、コンパイラ４ｂ及び評価プログラム４ｃを実行することにより、テストプログラム３ａが規則定義ファイル３ｂ内の規則定義情報に準拠しているか否かを自動的に検証することができる。この検証は、ユーザが指定した規則定義情報とテストプログラム３ａから作成された言語構造データベース４ｄとをＣＰＵ５が比較照合することにより行われるので、従来のように人手による検証に比較して検証精度が高く、また検証時間も短い。
【００３９】
なお、本発明は、上記実施形態に限定されるものではなく、例えば以下のような変形例が考えられる。
（１）上記実施形態のテストプログラム評価装置Ａは、規則に対するテストプログラム３ａの検証機能に加えて、規則定義ファイル３ｂの作成機能をも備えるように構成されているが、規則定義ファイル３ｂの作成機能を省略し、外部で作成された規則定義ファイル３ｂをハードディスク装置３に記憶させるようにしても良い。
【００４０】
（２）上記実施形態では、テストプログラム３ａ用のコンパイラ４ｂを用いて言語構造データベース４ｄを生成するようにしたが、これは、コンパイラ４ｂが機械語を生成する過程においてテストプログラム３ａをプログラム言語の文法に照らして言語構造解析することを利用したものである。したがって、コンパイラ４ｂをテストプログラム評価装置Ａから削除すると共に別の装置に搭載したコンパイラによって言語構造データベース４ｄを作成し、この言語構造データベース４ｄをメモリ４に記憶するようにしても良い。
【００４１】
（３）上記実施形態では、ファイルサイズが比較的大きいテストプログラム３ａ及び規則定義ファイル３ｂをハードディスク装置３に記憶し、ファイルサイズが比較的小さい規則定義ファイル作成プログラム４ａ、コンパイラ４ｂ及び評価プログラム４ｃをメモリ４に記憶させたが、ハードディスク装置３やメモリ４の使用方法はこれに限定されない。特に、上記実施形態では、高速処理を実現するために規則定義ファイル３ｂをハードディスク装置３からメモリ４に転送した上で言語構造データベース４ｄと比較照合しているので、規則定義ファイル３ｂを最初からメモリ４上に保存（記憶）させるようにしても良い。
【図面の簡単な説明】
【００４２】
【図１】本発明の一実施形態に係るテストプログラム評価装置Ａの機能構成を示すシステム構成図である。
【図２】本発明の一実施形態におけるテストプログラム３ａの一例を示す模式図である。
【図３】本発明の一実施形態に係るテストプログラム評価装置Ａの動作を示すフローチャートである。
【符号の説明】
【００４３】
Ａ…テストプログラム評価装置、１…操作部、２…表示部（出力手段）、３…ハードディスク装置（テストプログラム記憶手段、規則定義情報記憶手段）、３ａ…テストプログラム、３ｂ…規則定義ファイル、４…メモリ、４ａ…規則定義ファイル作成プログラム、４ｂ…コンパイラ、４ｃ…評価プログラム、４ｄ…言語構造データベース、５…ＣＰＵ、６…システムバス
【図１】
2010044694.tif 000003
【図２】
2010044694.tif 000004
【図３】
2010044694.tif 000005