JP5269450B2 - 試験システム及びバックアノテーション方法 - Google Patents

試験システム及びバックアノテーション方法 Download PDF

Info

Publication number
JP5269450B2
JP5269450B2 JP2008072401A JP2008072401A JP5269450B2 JP 5269450 B2 JP5269450 B2 JP 5269450B2 JP 2008072401 A JP2008072401 A JP 2008072401A JP 2008072401 A JP2008072401 A JP 2008072401A JP 5269450 B2 JP5269450 B2 JP 5269450B2
Authority
JP
Japan
Prior art keywords
test
source file
debugging
module
test system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008072401A
Other languages
English (en)
Other versions
JP2009230272A (ja
Inventor
優 横山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advantest Corp
Original Assignee
Advantest Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advantest Corp filed Critical Advantest Corp
Priority to JP2008072401A priority Critical patent/JP5269450B2/ja
Priority to US12/407,202 priority patent/US7975198B2/en
Publication of JP2009230272A publication Critical patent/JP2009230272A/ja
Application granted granted Critical
Publication of JP5269450B2 publication Critical patent/JP5269450B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31903Tester hardware, i.e. output processing circuits tester configuration
    • G01R31/31907Modular tester, e.g. controlling and coordinating instruments in a bus based architecture

Description

本発明は自動試験装置の技術分野に関する。特に、本発明は、自動試験装置における試験プログラムのデバッグの際のバックアノテーション処理技術に関する。
従来、自動試験装置(以下「ATE」という。)は、ATEメーカー各社各様の仕様で提供されていたため、ピン構成や測定ユニット等の構成の自由度が低く、また、試験プログラム資産の再利用が困難であった。このような背景から、デバイスの機能に応じて最適な構成にシステムを変更できるようなスケーラブルで柔軟なATEを実現すべく、標準化されたインタフェースを持つオープン・アーキテクチャATEが提案されている。
例えば、OPENSTAR(登録商標)は、このようなオープン・アーキテクチャATEの規格の一つである(非特許文献1参照)。そして、T2000テスト・システムは、OPENSTAR規格のオープン・アーキテクチャを採用した試験システムである。このT2000テスト・システムでは、デバイス試験のプログラムを、C++言語のクラスとして記述している(以下、この試験プログラムを「テストプラン」という。)。
「Semiconductor Test Consortium」、[online]、[平成20年3月19日検索]、インターネット<URL:http://www.semitest.org/jp/home>
ところで、ユーザが作成したテストプランをデバッグする際、自動試験装置にテストプランをロードして、GUIツール等を使用しながらテストプランをデバッグするのが一般的である。ところが、ツールを使用してデバッグをする場合には、テストプラン・オブジェクトに対してデバッグするため、デバッグした内容はそのままでは元のソースファイルに反映されない。そのため、修正内容をソースファイルに反映させるためには、ユーザが自らソースを修正する必要があり、煩雑である。
また、デバッグ後のオブジェクトをリコンパイルして修正済みのソースファイルを得ることも可能ではあるが、この場合には、元のソースファイルで記述した内容が保持されないため、ユーザが記述していたコメント等が破棄されてしまうという問題がある。
本発明は、かかる事情に鑑みてなされたものであり、GUIツール等を用いてテストプランをデバッグしたとき等に、修正内容を元のソースファイルに自動的に反映させることのできるバックアノテーション処理機能を備えた試験システムを提供することを目的とする。
上記課題を解決するため、本発明に係る試験システムは、デバイスの試験を行うための試験システムであって、試験を行うためのプログラムを記述したテストプランのソースファイルと、ソースファイルを一以上のブロックに分割した単位で形成される一以上のエレメントと、ソースファイルのオブジェクトをデバッグしたときに、当該デバッグによる修正内容を、当該デバッグの箇所に対応するエレメントに関連付けて管理するアノテータブル・オブジェクトと、デバッグ後に、エレメント及びアノテータブル・オブジェクトに基づいて、エレメント単位でソースファイルをデバッグ後の内容に書き換えるコントローラと、を備える。
好適には、テストプランは、一以上のソースファイルを備え、一以上のソースファイルのそれぞれについて、一以上のエレメントが形成される。また、一以上のソースファイルの各ファイル名と対応付けられ、かつ、当該ソースファイルに対応する一連のエレメントを管理するソースファイル情報と、を備えることが好ましい。
また、好適には、エレメントが形成される単位となるブロックは、ソースファイルに記述される分割子に基づいてブロックの区切りが決定される。さらに、デバッグは、GUIツールを用いて行われることが好ましい。
また、本発明に係るバックアノテーション方法は、デバイスの試験を行うための試験システムにおいて、デバッグによる修正内容を元のソースファイルに反映させるための方法である。ここで、試験システムのコントローラは、試験を行うためのプログラムを記述したテストプランのソースファイルをロードするステップと、ロード後に、ソースファイルを一以上のブロックに分割した単位で、一以上のエレメントと形成するステップと、ソースファイルのオブジェクトをデバッグしたときに、当該デバッグによる修正内容を、当該デバッグの箇所に対応するエレメントに関連付けられたアノテータブル・オブジェクトで管理するステップと、デバッグ後に、エレメント及びアノテータブル・オブジェクトに基づいて、エレメント単位でソースファイルをデバッグ後の内容に書き換えるステップと、を備える。
本発明のプログラムは、本発明に係るバックアノテーション方法の各処理ステップをコンピュータに実行させることを特徴とする。本発明のプログラムは、CD−ROM等の光学ディスク、磁気ディスク、半導体メモリなどの各種の記録媒体を通じて、又は通信ネットワークなどを介してダウンロードすることにより、コンピュータにインストール又はロードすることができる。
本発明によると、ツール等を用いてテストプランをデバッグしたとき等に、修正内容を元のソースファイルに自動的に反映させることのできるバックアノテーション処理機能を備えた試験システムを提供することができるようになる。また、本発明によると、デバッグにより修正された箇所のみソースファイルを書き換えることができるため、修正後に得られるソースファイルには、元のソースファイルで記述したコメントが原則保持されるという格別の効果を有する。
以下、本発明の実施の形態について詳細に説明する。なお、同一の要素には同一の符号を付し、重複する説明を省略する。また、以下の実施の形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。さらに、本発明は、その要旨を逸脱しない限り、さまざまな変形及び応用が可能である。
図1は、本発明の一実施形態による試験システム100のシステムアーキテクチャを示す。試験システム100は、試験信号を生成して被試験デバイス(Device under Test。以下「DUT」という。)112に供給し、DUT112が試験信号に基づいて動作した結果出力する結果信号が期待値と一致するか否かに基づいてDUT112の良否を判断する。なお、本実施形態に係る試験システム100は、オープン・アーキテクチャにより実現されるものとして説明するが、本発明は、オープン・アーキテクチャの試験システムに限定されるものではない。
本実施形態では、システムコントローラ(SysC)102がネットワークを介して複数のサイトコントローラ(SiteC)104に接続される。システムコントローラ102は、エンド・ユーザが通常作業を行うホストコンピュータであり、試験システム100全体を管理する役割を果たす。また、システムコントローラ102は、サイトコントローラ104に対する処理の要求の発行や、サイトコントローラ104間の処理の調停を行う。ユーザのアプリケーションや標準のGUIツールは、システムコントローラ102上で動作し、サイトコントローラ104と通信を行って機能を実現する。
また、システムコントローラ102は、サイトコントローラ104上でモジュール108の制御を行うモジュール・ソフトウェアや、ユーザの試験プログラムやパターン・プログラムなどを保管するストレージを備える。これらは、必要に応じてサイトコントローラ104に送られ、実行される。
各サイトコントローラ104は、試験サイト110に配置される1つ又は複数のモジュール108を制御して試験を実行するために、モジュール接続イネーブラ106を通して、モジュール108に接続される。この試験は、ユーザの作成する試験プログラムに基づいて実行される。なお、サイトコントローラ104は、一つのDUT112を試験する試験サイト110を複数個、同時に制御するようにしてもよい。
サイトコントローラ104の主な役割として、次の3つが挙げられる。まず、試験プログラムが指定する試験サイト110の構成に従い、モジュール接続イネーブラ106を構成し、サイトコントローラ104とモジュール108間のバス107の接続を確立する。また、試験サイト110内のモジュール108の制御を行うモジュール・ソフトウェアを実行する。さらに、試験プログラムを実行し、各試験サイト110のDUT112の試験を実行する。
なお、動作環境によっては、システムコントローラ102は、サイトコントローラ104の動作とは別のCPU(中央演算装置)上に配置することができる。別法では、システムコントローラ102及びサイトコントローラ104は、共通のCPUを共有することができる。同様に、各サイトコントローラ104は、その専用のCPU上に配置することができるし、また、同じCPU内の別個のプロセス又はスレッドとして配置することもできる。
モジュール接続イネーブラ106は、サイトコントローラ104とモジュール108とのバス107の接続を任意に構成することのできるスイッチである。モジュール接続イネーブラ106は、接続されるハードウェアモジュール108の構成を変更できるようにするとともに、データ転送用(パターンデータのロード用、応答データの収集用、制御用等)のバスとしての役割も果たす。実現可能なハードウェアの実装形態は、専用接続、交換接続、バス接続、リング接続及びスター接続を含む。モジュール接続イネーブラ106は、たとえばスイッチマトリクスとして実装することができる。
モジュール108は、DUT112に試験信号を供給する計測機器のハードウェアである。本実施形態においては、モジュール108として、オープン・アーキテクチャに基づく各種のモジュールを用いることができる。また、モジュール・ハードウェア108を動作させるためのソフトウェアをモジュール・ソフトウェアという。モジュール・ソフトウェアは、デバイス測定時にモジュール108の制御をつかさどるモジュール・ドライバ、モジュール108の校正と診断を行う校正診断ソフトウェア、モジュール108の動作をソフトウェアでエミュレートするエミュレーション・ソフトウェア、モジュール108固有のパターン・コンパイラ、およびGUIツールなどを含む。
各試験サイト110は、それぞれ一つのDUT112に関連付けられる。DUT112は、ロードボード114を通して、対応する試験サイト110のモジュール108に接続される。
図2は、試験サイト110及びロードボード114のハードウェアの概略構成と各種設定用ファイルとの関係の一例を示す図である。図2に示すように、モジュール108は、試験システム100のテストヘッド132内のモジュール・スロットに差し込まれる。
試験サイト110の構成は、テキスト形式で記述されるソケットファイル118で指定される。このソケットファイル118には、DUT112ごとに、DUTソケット120のDUTピン122とロードボード114上のコネクタピン124との接続が記述される。コネクタピン124は、ブロック番号とコネクタ番号が付けられており、例えば、「12.3」のように、「(ブロック番号).(コネクタ番号)」の形式で表記される。ロードボード114のコネクタピン124は、テスタ・インタフェース・ユニット(Tester Interface Unit。以下「TIU」という。)126を介してモジュール108のピン128と接続される。
一方、ロードボード114は試験対象となるデバイスによって異なる場合が多い。そのため、モジュール・ソフトウェアが個々のロードボード114の実装に依存しないようにするためには、試験システム100において、モジュール108が実装するピン128そのものを定義できるようにし、それをもとにモジュール108の制御ができるようにしなければならない。本試験システム100では、これはモジュール設定ファイル(Module Configuration File。以下「MCF」という。)130によって達成される。
MCF130には、モジュール108のリソースとロードボード114のコネクタピン124との接続関係が指定される。これにより、論理的なピンの表現であるリソースと、モジュール108の物理ピン128、さらにはそれが接続されているロードボード114のコネクタピン124との関係が定められる。MCF130は、システムだけが設定可能であることが望ましい。
なお、本実施形態において、モジュール108の機能は、主にモジュール108の全体的な制御に関わる機能を提供するモジュール・オブジェクトと、モジュールのピン毎の機能を提供するリソース・オブジェクトによって表現される。本実施形態に係る試験システム100では、これらは全て、MCF130に記述される内容に従って、実際のハードウェアのエンティティと対称に結び付けられる。なお、これらのソフトウェアのオブジェクトを提供するモジュール・ソフトウェアを、ここではモジュール・ドライバと呼ぶ。
また、本実施形態において、リソースとは、試験システム100のモジュール108が備える物理的なピン128とその機能とを、オブジェクトで抽象化して表現したものである。モジュール108の一つの物理ピン128は、一つのリソースとして表現されてもよいし、機能的に分割された複数のリソースとして表現されてもよい。
リソースの機能的な分類はリソース・タイプと呼ばれ、その機能の定義はモジュール108のベンダが提供するリソース定義ファイルによって示される。論理的なピンを指すリソースは、リソース・タイプと、モジュール108内でピン128を特定する番号(リソースID)と、試験システム100内でモジュール108を特定するバス107のポート番号との3つ組で表現される。リソース・タイプとリソースIDの組と、それに対応するモジュール108内の物理ピン128の関係は固定的であるため、リソースが与えられたときに、それを物理的なピン128に対応付けることが可能となる。なお、リソースが物理ピン128と対応付けられることはアーキテクチャ上必須ではなく、モジュール108の持つ機能を仮想的なピンに見立てて表現し、制御することも可能である。
図3は、試験システム100のソフトウェア・アーキテクチャ200の一例を示す。ソフトウェア・アーキテクチャ200は分散オペレーティングシステムを表しており、関連するハードウェアシステム要素102、104、108に対応する、システムコントローラ・ソフトウェア220(以下、単に「システムコントローラ220」ともいう。)、少なくとも1つのサイトコントローラ・ソフトウェア240(以下、単に「サイトコントローラ240」ともいう。)及び少なくとも1つのモジュールを含むテストヘッド・ソフトウェア260(以下、単に「テストヘッド260」ともいう。)のための構成要素を有する。
一つの例示的な選択として、試験システム100は、ソフトウェアのプラットフォームとしてMicrosoft Windows(登録商標)を使用し、実装言語としてANSI/ISO標準C++を使用することができる。プラットフォームの全てのシステム・インタフェースもまた、C++のクラスまたはインタフェースとして提供され、ユーザの試験プログラムやモジュール・ソフトウェアはC++で実装することができる。
システムコントローラ220は、ユーザのための一次的なインタラクションポイントであり、サイトコントローラ240へのゲートウェイと、マルチサイト/DUT環境におけるサイトコントローラ240の同期とを提供する。ユーザアプリケーション及びツールは、グラフィカルユーザインターフェース(GUI)に基づくものでも、そうでないものでも、システムコントローラ220上で実行される。
また、システムコントローラ220は、テストプラン、試験パターン及び試験パラメータファイルを含む、全てのテストプラン関連情報のためのリポジトリとしての役割も果たす。これらのファイルを記憶するメモリは、システムコントローラ220に対してローカルに存在することができるか、又は、ネットワークを介してシステムコントローラ220に接続されることができる。
さらに、システムコントローラ220は、フレームワーククラス221と、システムツール222と、外部ツール223と、サイトコントローラへの標準インタフェース224と、通信ライブラリ230とを含む。
システムコントローラ220に関連するフレームワーククラス221は、オブジェクトと対話するための仕組みを提供し、標準インタフェース224の参照インプリメンテーションを提供する。また、サイトコントローラ240へのゲートウェイを提供し、且つマルチサイト/DUT環境におけるサイトコントローラ240の同期を提供するソフトウェア構成要素を構成する。実効的には、フレームワーククラス221は、システムコントローラ220をサポートするOSとしての役割を果たすことができる。
第三者の開発者は、標準システムツール222に加えて、又は、標準システムツール222に換えて、一以上のツール223を提供することができる。システムコントローラ220上の標準インタフェース224は、テスタ及び試験オブジェクトにアクセスするためにそれらのツールが用いるインタフェースを含む。ツール(アプリケーション)222、223によって、テスタ及び試験オブジェクトをインタラクティブに、且つバッチで制御できる。また、標準インタフェース224は、システムコントローラ220上で実行されるフレームワークオブジェクトへのオープンインタフェースや、サイトコントローラ240に基づくモジュール・ソフトウェアがパターンデータにアクセスし、それらを検索できるようにするインタフェース等を含む。
システムコントローラ220上に存在する通信ライブラリ230は、ユーザアプリケーション及び試験プログラムに対してトランスペアレントであるように、サイトコントローラ240と通信するための仕組みを提供する。
サイトコントローラ240は、試験機能の大部分が提供される。サイトコントローラ240は、テストプラン(試験プログラム)241と、試験クラス242と、サイトコントローラフレームワーククラス243と、特定モジュール拡張インタフェース244と、標準インタフェース245と、モジュール・ソフトウェア・インプリメンテーション246と、バックプレーン通信ライブラリ247と、バックプレーンドライバ248とを含む。
テストプラン241はユーザによって記述される。テストプランプログラムは、C++のようなオブジェクト指向コンポーネントを用いて、標準的なコンピュータ言語において直に記述するか、又は、C++コードを生成するための、さらに高いレベルの試験プログラミング言語において記述することができ、後に実行可能な試験プログラムにコンパイルすることができる。
テストプラン241は、標準的な又はユーザによって供給される試験クラス242及び/又はそのサイトコントローラ240に関連するフレームワーククラス243を用いることにより試験オブジェクトを作成し、標準インタフェース245を用いてハードウェアを構成し、テストプランフローを規定する。テストプランはいくつかの基本的なサービスをサポートし、デバッグサービス(たとえば、ブレークポイント生成)のような、下層のオブジェクトのサービスへのインタフェースを提供し、下層のフレームワーク及び標準クラスにアクセスできるようにする。
試験クラス242は、標準試験インタフェースの1つのインプリメンテーションであり、テストプランプログラムにおいて指定される。各試験クラスは通常、特定のタイプのデバイス試験、又はデバイス試験のための設定を実装する。
フレームワーククラス243は、共通の試験関連動作を実装する1組のクラス及びメソッドである。フレームワーククラス243は、実効的には、各サイトコントローラ240をサポートするローカルOSとしての役割を果たすことができる。
モジュール・ソフトウェアは、テストの実行時に必要に応じて動的に試験システム100のプロセスにロードできるように、DLL(Dynamic Link Library)形式であることが望ましい。これは、テストプラン241が指定する試験サイト110の構成に応じて、試験システム100が実行時に動的に制御対象のモジュール261を決定するからである。また、全てのモジュール・ソフトウェアは、モジュール261の機能に応じて、システムOSが規定するモジュール・ソフトウェアの標準インタフェース245を実装することが求められる。
特定モジュール拡張インタフェース244は、必要に応じてモジュール固有のより複雑で専門的な機能を持つインタフェース階層をモジュール・ソフトウェアに付加して実装する。例えば、C++では、標準インタフェース245を継承するインタフェースクラスをモジュール・ソフトウェアで定義することによって、インタフェースを拡張することができる。
標準インタフェース245は、システムフレームワークが規定する必要最小限の、一般的で普遍的に適用可能なインタフェースである。標準インタフェース245を用いて、全てのオブジェクトを画一的に扱うことができる。これにより、システムOSを変更することなく、新しいモジュールのソフトウェアをシームレスに、プラグ・アンド・プレイ方式でシステムに導入することが可能となる。
一例として、標準インタフェース245は、C++の純粋仮想インタフェースクラスとして定義される。このとき、ユーザ向けの機能を定義するサブクラスと、システムだけが使用する機能を定義するサブクラスと、リソースの機能を定義するサブクラスとによって構成されることが好ましい。また、標準インタフェース245の階層は、モジュールの最も基本的な機能を定義する階層、パターン・プログラムを実行する機能を持つモジュールを表現する階層、複数のピン間で共有されるテスト周期という概念を導入する階層、デジタル・モジュール特有の機能を加える階層、の4階層により構成されることが好ましい。このとき、各モジュール・ドライバは、モジュールの機能に応じて、4階層のインタフェースのいずれかを実装する。しかし、標準インタフェース245の構成は、これらの構成に限定されるものではない。
バックプレーン通信ライブラリ247は、バックプレーンにわたる標準的な通信のためのインタフェースを提供し、それによりテストヘッド260内のモジュール108と通信するために必要な機能を提供する。これにより、ベンダ固有のモジュール・ソフトウェアが、バックプレーンドライバ248を用いて、対応するモジュール108と通信できる。バックプレーン通信プロトコルはパケットに基づくフォーマットを用いることができる。
テストヘッド260は、デバイスに対する測定機能が提供される。テストヘッド260は、モジュール261と、TIU262と、ロードボード263と、DUT264とを含む。
また、ソフトウェア・アーキテクチャ200は、ソフトウェアの名目的な供給元に基づいて、システムフレームワーク290、ユーザコンポーネント292、テスタオペレーティングシステム294、モジュール・ハードウェア・ベンダコンポーネント296、及び、ツール・ソフトウェア・ベンダコンポーネント298に分類することができる。
システムフレームワーク290は、試験システム100の開発ベンダにより供給され、フレームワーククラス221と、標準インタフェース224と、フレームワーククラス243と、標準インタフェース245と、バックプレーン通信ライブラリ247とを含む。
ユーザコンポーネント292は、試験を実施するユーザによって供給され、テストプラン241と、テストクラス242と、ロードボード263と、DUT264とを含む。
テスタオペレーティングシステム294は、基本的な接続性及び通信のためのソフトウェアインフラストラクチャとして供給され、システムツール222と、通信ライブラリ230と、バックプレーンドライバ248とを含む。
モジュール・ハードウェア・ベンダコンポーネント296は、モジュール108の開発元によって供給され、特定モジュール拡張インタフェース244と、モジュール・ソフトウェア・インプリメンテーション246と、モジュール261と、TIU262を含む。
ツール・ソフトウェア・ベンダコンポーネント298は、外部ツールの開発元によって供給され、外部ツール223を含む。
次に、以上のように構成される試験システム100における、バックアノテーション処理について説明する。ここで、バックアノテーションとは、GUIツール(ツール222,223)等を使ってデバッグしたテストプランやパターンデータ等の修正内容を、テストプランやパターンデータ等のソースファイルに反映させる機能をいう。なお、バックアノテーションは、汎用デバッガによりソースコードを直接開いて行うデバッグとは異なる。汎用デバッガの場合、ソースを直接開いてプログラムをデバッグするため、そのソースを保存するだけでデバッグの結果を反映させることができる。一方、バックアノテーションの場合、デバッグの対象はデータであり、データ毎にデバッグ用のツールが用意されているのであって、元のソースを直接修正するものではない。
例えば、テストプランを開発するとき、ユーザはGUIツール等を使ってテストプランのフロー、テスト条件、パターンデータなどを修正しながらデバッグする。バックアノテーション機能を使用しない場合、種々のパラメータの修正を、手作業でテストプランやパターンデータのソースファイルに反映させなければならない。一方、バックアノテーション機能を使用すると、パラメータの修正内容をテストプランやパターンデータのソースファイルに自動的に反映させて保存できる。そして、保存されたソースファイルをコンパイル、ロードすることにより、デバッグ結果が反映されたテストプランが実行できる。本実施形態に係るバックアノテーション機能を使用したとき、ソースファイルに記述されたコメントや、GUIツールで修正できないパラメータの値は、元の修正前の状態のまま保持される。修正内容としては、ユーザ変数の値、スペシフィケーション・セット、テスト条件、リソース・パラメータの設定、タイミングの設定、フロー・アイテム、テスト内容等の追加、削除、及び実行順序の変更などがある。
また、パターンデータのバックアノテーションの場合、パターン・エディタを使ってデバッグしたパターン・プログラムの修正内容を、パターン・オブジェクトのメタファイルに反映させる。例えば、パターン・プログラムを開発するとき、ユーザはパターン・エディタを使用して、パターン・ジェネレータにロードされたパターン・プログラムを修正しながらデバッグする。バックアノテーションを使用しない場合、パターン・プログラムの修正を、手作業でパターン・プログラムのソースファイルに反映させなければならず、デバッグ済みのパターン・オブジェクトのメタファイルを得るには、さらに、修正したパターン・ソースファイルをコンパイルする必要がある。一方、バックアノテーションを使用すると、デバッグしたパターン・プログラムをパターン・オブジェクトのメタファイルに保存できる。保存されたパターン・オブジェクトのメタファイルを再ロードすることにより、デバッグ結果が反映されたパターン・プログラムを実行できる。
バックアノテーションを使用することにより、テストプランやパターン・プログラムを開発するときの、ターン・アラウンド・タイムを短縮できるが、本発明は特に、テストプランのバックアノテーション処理に特徴を有するものである。すなわち、ユーザがロードされたテストプランのランタイム・オブジェクトを修正すると、修正された情報は、バックアノテーション機能によって、テストプラン言語で記述されたソースに反映された後、保存される。
なお、バックアノテーションを実現するためには、新規ソース保存方式と、差分保存方式と、オリジナルソース保存方式に分けられる。新規ソース保存方式は、新たなテストプランを記述したファイルとして、テストプランのオブジェクトを新たに生成して保存するが、元のソースファイル内のコメント、余白、順序等は失われる。差分保存方式は、実行しているランタイム・オブジェクトに加えた変更の差分を保存する。この方式の場合、修正されたテストプランを取得するためには、変更の差分に沿って、元のテストプランをロードする必要がある。また、オリジナルソース保存方式では、オリジナルのソースファイルに変更を加える。この方式の場合、コメントや余白が維持される。本発明は、オリジナルソース保存方式に基づいて、バックアノテーションを実現するものである。
以下、本発明に係るバックアノテーション処理について説明する。
図4は、本試験システム100において、テストプランのバックアノテーション処理を行うためのデータ構造を示す図である。図4に示すように、バックアノテーション処理のデータ構造10は、テストプランを構成する各ソースファイル名12とそのソースファイル情報14とを対応付けるマップ16を含んでいる。各ソースファイル情報14はそれぞれ、ソースファイルを所定単位で分割したエレメント20のリストと関連付けられている。そして、テストプランのランタイム・オブジェクトが修正されたとき、修正された箇所に対応するエレメント20に関連付けられるアノテータブル・オブジェクト18が形成され、当該修正された内容が管理される。なお、テストプランは一以上のソースファイルにより構成され、各ソースファイルには、試験を行うためのプログラムが記述されている。
データ構造10は、ユーザがバックアノテーション・タスクを開始するファイル保存オペレーションを呼び出すことによって生成される。
ソースファイル名12は、システムにロードされたテストプランのソースファイルの名称である。本試験システム100では、サイトコントローラ104がテストプランをロードし、サイトコントローラ104上でバックアノテーションを実施するためのデータ構造10が構築される。
ソースファイル情報14は、対応するソースファイル名12に関する情報と、ネットワークのファイルパスと、関連付けられるエレメント20のリストと、を含んでいる。これにより、テストプランを構成する一以上のソースファイル名12と対応付けられ、かつ、当該ソースファイルに対応する一連のエレメント20を管理する。このエレメント20のリストは、エレメント20へのポインタにより構成される。このように、テストプラン内のオブジェクトはオブジェクトが宣言されたエレメントへのポインタを有している。これらのポインタは、エレメントが挿入されたり削除されたりしても、無効とされてはならないので、エレメント20が存続している間は、ポインタが制御される。
マップ16は、システムにロードされたテストプランに関する一以上のソースファイル名12と、当該ソースファイルのソースファイル情報14とを対応付けを示すものである。
アノテータブル・オブジェクト18は、個々のエレメント20と一対一に対応するオブジェクトであり、アノテータブルクラスは、フレームワーククラスと対になって用意され、ブロックごとにオブジェクトが作成される。デバッグによりデータに変更が加えられると、当該変更内容を管理し、バックアノテーションを実施するために必要なオペレーションを特定する。このオペレーションは、オブジェクトが修正されたか否かを判断し、修正された場合には、エレメント20に修正されたことを示す所定のマークを付けたり、修正内容に基づいてエレメント20のテキストを表現したりする等の処理を含む。また、アノテータブル・オブジェクト18は、必要な場合に、エレメント20のテキストを表現するためのメソッドの実装を提供する。バックアノテーション実行時に、フレームワーククラスから最新のデータを取得して、ソースファイルに書き戻すためのテキストデータを作成する。
エレメント20は、テストプランのソースファイルを一以上のブロックに分割した単位で形成され、プログラムの記述位置などを管理するソースファイル情報14と関連付けられる。これにより、ソースファイルは、一続きのエレメント20のリストとして表される。そして、ソースファイルを構成するブロックごとやブロック内に記述する要素ごとにエレメント20が作成され、対応するデータに変更が加えられたとき、その変更内容をソースファイルのどの位置に書き戻せばよいかを示す。本実施形態において、エレメントが形成される単位となるブロックは、ソースファイルに記述される“;”、“}”等の分割子に基づいてブロックの区切りが決定される。ソースファイル内の宣言に関する情報が捕捉され、ネストの無い単純なオブジェクトの宣言が、一つのエレメント20として表される。また、ネストされた宣言を有するオブジェクトの宣言は、一つのエレメント内にヘッダ又はフッタを有するエレメント20として表される。エレメント20は、例えば、宣言されたオブジェクトの名称と、アイテムテキスト長と、アノテータブル・オブジェクト18へのポインタとを備える。そして、バックアノテーション処理においては、デバッグによりテストプランが修正されたとき、エレメント単位でソースファイルが修正される。
図5は、エレメント20の一例を示す図である。図5(A)はテストプランのソースファイルの一例である。そして、図5(B)は、図5(A)に示すソースファイルに基づいて形成されるエレメント20を示す図である。
図5(B)に示すように、この例におけるソースファイルは、5つのエレメント21,22,23,24,25に分割される。エレメント21は、宣言DUTTypeに関するエレメントである。エレメント22は、宣言SpecificationSetに関するエレメントである。エレメント23は、宣言Voltageに関するエレメントである。エレメント24は、宣言Currentに関するエレメントである。エレメント25は、宣言SpecificationSetの後書きエレメントである。
ソースファイルがコメントや改行を含むとき、通常これらのコメントや改行のみでは、エレメントを形成しない。コメントや改行等は、これらに続いて現れる宣言に関するエレメントに関連付けられる。例えば、エレメント22に示すように、エレメントのヘッダとして構成される。また、エレメント20が入れ子状に構成されることはない。ネストされた宣言を有するオブジェクトは、エレメントのヘッダ又はフッタとして表現される。
あるエレメント20が修正されても、そのコメントや改行は保持される。例えば、エレメント22のSpecificationSetが修正されても、エレメント22内のコメント1〜3は変化しない。同様に、エレメント23のVoltage Vの値が1.0から1.1に修正されても、エレメント23内のコメント4は変化しない。
しかしながら、エレメント23のVoltage Vの値が1.0から1.1に修正された場合、内部コメント1及び2は保持されずに破壊されてしまう。そして、エレメント23のVoltage Vの宣言は、次のようにソースファイルに書き戻されて修正される。
Voltage V = 1.1,2.0,1.5;
ソースファイル内のコメントは、当該コメントに続くエレメントに関連付けられる。そして、エレメントと同じ文法レベルのコメントは保持される。しかし、宣言に対してネストされたレベルのコメント、すなわち、例えばエレメント23内の内部コメント1及び内部コメント2は、表現が修正されたとき保持されない。また、各エレメントの最後のセミコロンの後にコメントがある場合、当該コメントは、次のエレメントに含まれることになる。また、エレメント20は、ファイルの名称を備えることが好ましい。
図6は、試験システム100においてテストプランのデバッグをする際の、バックアノテーション処理の流れを示すフローチャートである。
まず、テストプランがサイトコントローラ104上でロードされる(S31)。このとき、ソースファイルのブロックごとに、そのブロック内に記述したデータを管理するためのフレームワーククラスが用意されている。例えば、UserVarsブロックの記述内容を管理するため、クレームワーククラスの一つであるUserVarsクラスのオブジェクトが作成される。ユーザが、バックアノテーション・タスクを開始するファイル保存オペレーションを呼び出している場合には、テストプランのロード時にコードが生成され、ソースファイル名12からソースファイル情報14へのマップ16が形成される。また、ソースファイル情報14に関連付けられる一連のエレメント20が生成される(S32)。なお、ロードされたテストプランのオブジェクトは、マップ16と、対応するエレメント20へのポインタを含む。
ここで、ユーザは、GUIツール等を使用しながら、テストプランやパターンデータのデバッグを行う(S33)。このGUIツール等を用いたデバッグにより、データが編集されたり、削除されたり、新たに挿入されたりしてデータに変更が加えられると、変更された箇所に対応するアノテータブル・オブジェクト18に、その変更内容が管理される(S34)。
例えば、ユーザ変数の初期値を変更するなどして、オブジェクトが編集されたとき、編集された箇所を示すエレメントに、編集されたことを示すマークが付される。また、データが削除されたとき、削除された箇所に対応するエレメントに削除されたことを示すマークが付される。このとき、当該エレメントに結び付けられたコメントも削除される。データが新たに挿入されたとき、新たに挿入されたデータに対応するエレメント20を新たに生成し、当該エレメント20にて、新たに挿入されたオブジェクトに関するデータが管理される。
そして、デバッグ後にバックアノテーションが要求されたとき、エレメント20により変更された箇所を特定し、エレメント20が示すソースファイルの位置のテキストを、アノテータブル・オブジェクト18から取得した変更後のテキストデータに書き換える(S35)。例えば、編集されたことを示すマークが付されたエレメント20については、アノテータブル・オブジェクト18の内容に基づいて、ソースファイルが書き換えられる。このとき、ソースファイル中のコメント等は書き換えられずに保持される。なお、生成されるソースは、言語モジュールを使って、テストプラン・オブジェクトから生成される。
なお、テストプランのデバッグが済んで実際にDUT112の試験を行う場合など、テストプランを修正しない場合には、テストプランをロードしたときに、ステップS32に示すようなエレメント20等の生成処理は不要である。
また、バックアノテーション機能は、テストプランDLLからテストプログラムをロードした場合、またはテストプラン・ローダを使用してソースファイルから直接テストプログラムをロードした場合のいずれでも使用可能である。
なお、本発明は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において、他の様々な形で実施することができる。このため、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。例えば、上述の各処理ステップは処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
本発明の一実施形態による試験システム100のシステムアーキテクチャを示す。 試験サイト110及びロードボード114のハードウェアの概略構成と各種設定用ファイルとの関係の一例を示す図である。 試験システム100のソフトウェア・アーキテクチャ200の一例を示す。 テストプランのバックアノテーション処理を行うためのデータ構造を示す図である。 エレメント20の一例を示す図である。 バックアノテーション処理の流れを示すフローチャートである。
符号の説明
10 データ構造
12 ソースファイル名
14 ソースファイル情報
16 マップ
18 アノテータブル・オブジェクト
20 エレメント
100 試験システム
102 システムコントローラ
104 サイトコントローラ
106 モジュール接続イネーブラ
107 バス
108 モジュール
110 試験サイト
112 被試験デバイス(DUT)
114 ロードボード
118 ソケットファイル
120 ソケット
122 ピン
124 コネクタピン
126 テスタ・インタフェース・ユニット(TIU)
128 ピン
130 モジュール設定ファイル(MCF)
132 テストヘッド

Claims (8)

  1. デバッグによる修正内容を元のソースファイルに反映させるためのバックアノテーション処理機能を有する、デバイスの試験を行うための試験システムであって、
    試験を行うためのプログラムを記述したテストプランのソースファイルと、
    前記ソースファイルを一以上のブロックに分割した単位で形成される一以上のエレメントと、
    前記ソースファイルのオブジェクトをデバッグしたときに、当該デバッグによる修正内容を、当該デバッグの箇所に対応するエレメントに関連付けて管理するアノテータブル・オブジェクトと、
    デバッグ後に、前記エレメント及び前記アノテータブル・オブジェクトに基づいて、前記エレメント単位でソースファイルを前記デバッグ後の内容に書き換えるコントローラと、
    を備える試験システム。
  2. 前記テストプランは、一以上のソースファイルを備え、
    前記一以上のソースファイルのそれぞれについて、前記一以上のエレメントが形成される、
    ことを特徴とする請求項1記載の試験システム。
  3. 前記一以上のソースファイルの各ファイル名と対応付けられ、かつ、当該ソースファイルに対応する一連のエレメントを管理するソースファイル情報と、
    を備えることを特徴とする請求項2記載の試験システム。
  4. 前記エレメントが形成される単位となるブロックは、前記ソースファイルに記述される分割子に基づいてブロックの区切りが決定される、
    ことを特徴とする請求項1乃至3のいずれか1項に記載の試験システム。
  5. 前記デバッグは、GUIツールを用いて行われる、
    ことを特徴とする請求項1乃至4のいずれか1項に記載の試験システム。
  6. デバイスの試験を行うための試験システムにおいて、デバッグによる修正内容を元のソースファイルに反映させるためのバックアノテーション処理を行う方法であって、
    前記試験システムのコントローラが、
    試験を行うためのプログラムを記述したテストプランのソースファイルをロードするステップと、
    前記ロード後に、前記ソースファイルを一以上のブロックに分割した単位で、一以上のエレメントと形成するステップと、
    前記ソースファイルのオブジェクトをデバッグしたときに、当該デバッグによる修正内容を、当該デバッグの箇所に対応するエレメントに関連付けられたアノテータブル・オブジェクトで管理するステップと、
    デバッグ後に、前記エレメント及び前記アノテータブル・オブジェクトに基づいて、前記エレメント単位でソースファイルを前記デバッグ後の内容に書き換えるステップと、
    を備えるバックアノテーション方法。
  7. 請求項6に記載のバックアノテーション方法をコンピュータに実行させるためのプログラム。
  8. 請求項7に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2008072401A 2008-03-19 2008-03-19 試験システム及びバックアノテーション方法 Expired - Fee Related JP5269450B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008072401A JP5269450B2 (ja) 2008-03-19 2008-03-19 試験システム及びバックアノテーション方法
US12/407,202 US7975198B2 (en) 2008-03-19 2009-03-19 Test system and back annotation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008072401A JP5269450B2 (ja) 2008-03-19 2008-03-19 試験システム及びバックアノテーション方法

Publications (2)

Publication Number Publication Date
JP2009230272A JP2009230272A (ja) 2009-10-08
JP5269450B2 true JP5269450B2 (ja) 2013-08-21

Family

ID=41090065

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008072401A Expired - Fee Related JP5269450B2 (ja) 2008-03-19 2008-03-19 試験システム及びバックアノテーション方法

Country Status (2)

Country Link
US (1) US7975198B2 (ja)
JP (1) JP5269450B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8952628B1 (en) 2009-11-05 2015-02-10 Musco Corporation Apparatus, system and method for providing intermittent uplighting
CN101853204A (zh) * 2010-06-01 2010-10-06 华南理工大学 一种windows环境下的复杂控件测试系统
US10282283B2 (en) * 2016-01-28 2019-05-07 Accenture Global Solutions Limited Orchestrating and providing a regression test

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5243603A (en) * 1991-03-26 1993-09-07 Hewlett-Packard Company Method for online modification of compressed digital test vectors
JPH05324302A (ja) * 1992-05-15 1993-12-07 Nec Corp 言語処理プログラム処理装置
JPH086824A (ja) * 1994-06-15 1996-01-12 Sekisui Chem Co Ltd Scsiアナライザ
US6581191B1 (en) * 1999-11-30 2003-06-17 Synplicity, Inc. Hardware debugging in a hardware description language
US6907546B1 (en) * 2000-03-27 2005-06-14 Accenture Llp Language-driven interface for an automated testing framework
JP2002014841A (ja) * 2000-06-30 2002-01-18 Esol Co Ltd デバッグカーネルシステム
US7209851B2 (en) * 2003-02-14 2007-04-24 Advantest America R&D Center, Inc. Method and structure to develop a test program for semiconductor integrated circuits
US7694249B2 (en) * 2005-10-07 2010-04-06 Sonics, Inc. Various methods and apparatuses for estimating characteristics of an electronic system's design
JP2007265089A (ja) * 2006-03-29 2007-10-11 Fujitsu Ltd ソフトウェア保守支援プログラム,処理方法および装置
US20090119542A1 (en) * 2007-11-05 2009-05-07 Advantest Corporation System, method, and program product for simulating test equipment

Also Published As

Publication number Publication date
US7975198B2 (en) 2011-07-05
US20090240989A1 (en) 2009-09-24
JP2009230272A (ja) 2009-10-08

Similar Documents

Publication Publication Date Title
US8010839B2 (en) Test system and method which can use tool during debugging
JP4249309B2 (ja) コンピュータプログラムをテストし、デバッグするための再配置可能計測タグ
US7809520B2 (en) Test equipment, method for loading test plan and program product
TWI514130B (zh) 一用於啟用並行測試之電腦裝置、方法、電腦程式產品及設備
EP2724235B1 (en) N-way runtime interoperative debugging
US9489184B2 (en) Adaptive selection of programming language versions for compilation of software programs
US9720703B2 (en) Data driven hardware chips initialization via hardware procedure framework
US20080320071A1 (en) Method, apparatus and program product for creating a test framework for testing operating system components in a cluster system
JP2009544012A (ja) 試験システムで処理を実行するシステムおよび方法
JP2009116876A (ja) 試験装置のシミュレーションシステム、方法、及びプログラム製品
US9262299B1 (en) Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system
JP2000181725A (ja) 実行可能なコ―ドを改変し、追加機能を付与するための方法およびシステム
JP2014532914A (ja) プログラム可能な試験機器
JP2009116878A (ja) 試験装置のシミュレーションシステム、方法、及びプログラム製品
JP7262818B2 (ja) エンジンデバッグ、テスト、較正、及び調節を制御するためのソフトウェア環境
Rodriguez et al. Increasing automation in the backporting of Linux drivers using Coccinelle
JP2007057541A (ja) 試験エミュレート装置
JP5269450B2 (ja) 試験システム及びバックアノテーション方法
US8365154B2 (en) Multi-language software development
Bucher et al. RTAI-Lab tutorial: Scilab, Comedi, and real-time control
US20020129336A1 (en) Automatic symbol table selection in a multi-cell environment
JP2009229304A (ja) 試験システム及びモジュール制御方法
CN108614704A (zh) 代码编译方法及装置
US10339229B1 (en) Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system
Liu et al. A real-time UEFI functional validation tool with behavior Colored Petri Net model

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130401

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130417

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130508

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees