(57)【要約】【課題】分岐などを多く含んでいて処理の流れが複雑なテストプログラム全体の流れを容易に理解できるテスト支援装置を提供することにある。【解決手段】テストプログラムの仮想テストを行うように構成されたテスト支援装置において、前記テストプログラムの記述を解析するテストプログラム解析部と、このテストプログラム解析部の解析結果に基づき処理の流れについての判断を行うテストプログラム解析結果判断部と、これら各部におけるテストプログラムに関連した情報を表示するテストプログラム表示部、を有することを特徴とするもの。【選択図】                    図１
2011007603.tif 000002
【特許請求の範囲】
【請求項１】
テストプログラムの仮想テストを行うように構成されたテスト支援装置において、
前記テストプログラムの記述を解析するテストプログラム解析部と、
このテストプログラム解析部の解析結果に基づき処理の流れについての判断を行うテストプログラム解析結果判断部と、
これら各部におけるテストプログラムに関連した情報を表示するテストプログラム表示部、
を有することを特徴とするテスト支援装置。
【請求項２】
前記テストプログラム解析結果判断部は、前記テストプログラムに記述されている処理の流れを、分岐、設定、測定、判定などのいずれかを含む大きな意味の有する単位にまとめることを特徴とする請求項１記載のテスト支援装置。
【請求項３】
前記プログラム表示部に表示される前記テストプログラム解析結果判断部の判断結果の大きな意味の有する単位項目を選択することにより、選択された単位項目について前記テストプログラムに記述されている具体的な内容が表示されることを特徴とする請求項１または請求項２記載のテスト支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テスト支援装置に関し、詳しくは、一連のテストプログラムの処理の流れを的確に把握できるように表示する表示の改善に関するものである。
【０００２】
ＬＳＩテスタは、テスト仕様に則って、被テスト対象物（ＤＵＴ）であるＬＳＩをテストする。テスト仕様は、デバイスメーカーが、テスタメーカーやテストハウスに対して指示するテスト内容であり、ＬＳＩテスタを構成するモジュールに設定すべき電圧値などのパラメータが文章や図で記載されているものである。テスト仕様に記載されたこれらのパラメータは、テストプログラムによって、ＬＳＩテスタに設定される。
【０００３】
ところで、作成されたテストプログラムについては、そのテストプログラムがテスト仕様を正しく反映しているか否かを確認する必要がある。
【０００４】
図３は、テストプログラムの仮想テストを行う従来のシステムの一例を示すブロック図である。図３において、ソフトウェアで記述されたＬＳＩテスタ１は、テストプログラム格納部３に格納された実機テスタで動作するのと同じテストプログラムおよびテストパターン格納部４に格納された実機テスタで動作するのと同じテストパターンに基づいて、ソフトウェアで記述されたＤＵＴ２に対してテストを行う。ＤＵＴ２には、ＨＤＬ(Hardware Description Language)で記述された設計データを用いる。
【０００５】
これにより、ＨＤＬ記述で実現可能な範囲に関しては、ＤＵＴ２の応答まで含めて、テストを実行できる。この図３の構成は、主に、テストプログラムとテストパターンの検証の用途で用いられる。
【０００６】
なお、図３のＬＳＩテスタ１は、ＤＵＴ２を用いない構成で動作させることも可能である。その場合は、ＤＵＴの応答を期待する部分では、ＬＳＩテスタ１は、予め設定された応答を受け取るように作成されている。このＤＵＴ２を用いない構成は、主に、テストプログラムの検証の用途で用いられる。
【０００７】
図４は、テストプログラムの具体例図である。
図４において、
ｉｆ  （＠ｆｌａｇ＝＝１）  ｛
のｉｆ文は、ｆｌａｇが「１」の場合には、
ｔｅｓｔｎｏ（１０００，２，１１，２）
として指定されているｔｅｓｔ２を実行し、ｆｌａｇが「１」ではない場合には、
ｔｅｓｔｎｏ（１１００，２，１１，２）；
として指定されているｅｌｓｅ文の「プログラム記述２」に基づくｔｅｓｔ１０２を実行することを指示している。
【０００８】
なお、ｔｅｓｔｎｏ（ａ，ｂ，ｃ，ｄ）のａはそれぞれのテスト番号を示し、ｂはパスビンの番号を示し、ｃはフェイルビンの番号を示し、ｄはそれぞれのテストのカテゴリを示すものであり、テスト結果のログには、ａのテスト番号とｄのテストカテゴリが記録される。テストのカテゴリとしては、タイミングテスト、電圧テスト、導通テストなどが規定されている。
【０００９】
ｆｏｒ  （＠ｃｎｔ＝０；  ＠ｃｎｔ＜１０；＠ｃｎｔ＋＋）  ｛
のｆｏｒ文は、カウント値を０からカウントアップしながら１０に達するまで、
ｔｅｓｔｎｏ（５００，１，１０，１）；
として指定されている「プログラム記述１」に基づくｔｅｓｔ１を繰り返して実行することを指示している。
【００１０】
このような
ｉｆ  （＠ｆｌａｇ＝＝１）  ｛
のｉｆ文に続き、
ｔｅｓｔｎｏ（２０００，３，１２，３）；
として指定されているｔｅｓｔ３を実行し、さらに、
ｉｆ  （＠ｆｌａｇ＝＝２）  ｛
ｔｅｓｔ４；
｝
のｉｆ文を実行することになる。
【００１１】
すなわち、図４のテストプログラムでは、ｆｏｒ文とｉｆ文とそれらの中のプログラム変数などでプログラムの処理の流れを変えている。
【００１２】
非特許文献１には、実際のテスタ（実機）でなく仮想テスタによってテストデバッグを行う技術が記載されている。
【００１３】
特許文献１には、問題の所在を迅速に切り分ける、ＩＣテスタ用デバッグ支援方法が記載されている。
【先行技術文献】
【非特許文献】
【００１４】
【非特許文献１】佐野，久保，小笠原，安斉，「ＬＳＩテスト支援システム  −仮想テスタPreTestStation−」，横河技報，横河電機株式会社，Ｖｏｌ．４７  Ｎｏ．３（２００３），ｐ．８７−９０
【特許文献】
【００１５】
【特許文献１】特開２００８−７０２９４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかし、図４のようにプログラムの処理の流れを変える文がある場合には、これらのテストプログラムの記述を見てテストプログラムの動きを的確に把握して理解するのは簡単なことではない場合が多い。
【００１７】
これに対し、単に記述を見て理解するのではなく、実際にテストプログラムを、ある区切り、たとえば値が設定される行ごとに、ステップ状に動作させて動きが見えるようにすることも行われてはいるが、それでも、テストプログラム全体の流れを見渡すのは容易ではないことがある。
【００１８】
本発明は、このような課題を解決するものであり、その目的は、分岐などを多く含んでいて処理の流れが複雑なテストプログラム全体の流れを容易に理解できるテスト支援装置を提供することにある。
【課題を解決するための手段】
【００１９】
このような課題を達成するために、本発明のうち請求項１記載の発明は、
テストプログラムの仮想テストを行うように構成されたテスト支援装置において、
前記テストプログラムの記述を解析するテストプログラム解析部と、
このテストプログラム解析部の解析結果に基づき処理の流れについての判断を行うテストプログラム解析結果判断部と、
これら各部におけるテストプログラムに関連した情報を表示するテストプログラム表示部、
を有することを特徴とする。
【００２０】
請求項２記載の発明は、請求項１記載のテスト支援装置において、
前記テストプログラム解析結果判断部は、前記テストプログラムに記述されている処理の流れを、分岐、設定、測定、判定などのいずれかを含む大きな意味の有する単位にまとめることを特徴とする。
【００２１】
請求項３記載の発明は、請求項１または請求項２記載のテスト支援装置において、
前記プログラム表示部に表示される前記テストプログラム解析結果判断部の判断結果の大きな意味の有する単位項目を選択することにより、選択された単位項目について前記テストプログラムに記述されている具体的な内容が表示されることを特徴とする。
【発明の効果】
【００２２】
本発明によれば、分岐などを多く含む処理の流れが複雑なテストプログラム全体の流れを、テストプログラム表示部に表示される各部の処理結果の表示画面に基づき、容易に理解できる。
【図面の簡単な説明】
【００２３】
【図１】本発明のテスト支援装置の一実施例を示す構成図である。
【図２】図１のテストプログラム解析部の動作説明図である。
【図３】テストプログラムの仮想テストを行う従来のシステムの一例を示すブロック図である。
【図４】テストプログラムの具体例図である。
【発明を実施するための最良の形態】
【００２４】
以下、本発明について、図面を用いて詳細に説明する。図１は本発明のテスト支援装置の一実施例を示す構成図であり、図３と共通する部分には同一の符号を付けている。
【００２５】
図１の装置では、図３の装置に、テストプログラムを解析するテストプログラム解析部５と、テストプログラム解析部５での解析結果を判断するテストプログラム解析結果判断部６と、テストプログラム表示部７が付加されている。
【００２６】
テストプログラム解析部５は、テストプログラム格納部３に格納されたテストプログラムの記述を解析し、その解析結果をテストプログラム解析結果判断部６に出力する。
【００２７】
テストプログラム解析結果判断部６は、テストプログラム解析部５から入力される解析結果に対して所定の判断を行い、図２（Ｃ）のような判断結果を出力する。
【００２８】
テストプログラム表示部７は、図２（Ａ）に示すようなテストプログラム格納部３から読み出されるテストプログラムおよび図２（Ｃ）に示すようなテストプログラム解析結果判断部６の判断結果を表示する。
【００２９】
図２（Ａ）は、テストプログラムにおけるファンクションテストのうち、「ｔｇ」と記述されているタイミングテストと「ＶＭ」と記述されている電圧測定の部分を示しているが、テストプログラムになじみのない場合には、これらの記述からテストプログラムの動きを的確に理解することは困難である。
【００３０】
図２（Ｂ）は、テストプログラム解析部５の解析結果例であり、以下のような事項を判断できる内容を含むものである。なお、これらの解析結果は、ＬＳＩの仮想テストを行うシステムが内部に一時的に持つデータでもよいし、一般的なファイルとしてハードディスクなどに記録してもよい。
・テストプログラムのファイル名
・テストプログラムのファイル中の各行の種類およびその行のファイル中の行番号
・各行が意味のある連続した記述の中に含まれるときはその範囲
【００３１】
図２（Ｂ）の解析結果の各行は、それぞれ、図２（Ａ）に記述されているテストプログラムの、「テストプログラムのファイル名：行番号：種別：範囲」を表している。
【００３２】
具体的には、「ｔｅｓｔ．ｔｄｌ：１：テストセグメント定義」により、ｔｅｓｔ．ｔｄｌの１行目が、テストセグメント定義に関する行であることを示している。
【００３３】
「ｔｅｓｔ．ｔｄｌ：２，３：設定」は、ｔｅｓｔ．ｔｄｌの２，３行目が、テストプログラム上の「設定」に関する行であることを示している。
【００３４】
「ｔｅｓｔ．ｔｄｌ：4：ＩＦ」は、ｔｅｓｔ．ｔｄｌの４行目がｉｆ文であることを示している。
【００３５】
「ｔｅｓｔ．ｔｄｌ：５，８：設定」は、ｔｅｓｔ．ｔｄｌの５，８行目が、テストプログラム上の「設定」に関する行であることを示している。
【００３６】
「ｔｅｓｔ．ｔｄｌ：９：判定：８，１０」は、ｔｅｓｔ．ｔｄｌの９行目がテストプログラム上の「判定」に関する行であることを示し、その判定に関する内容が８行目から１０行目に記述されていることを示している。
【００３７】
「ｔｅｓｔ．ｔｄｌ：１１：ＥＮＤＩＦ」は、ｔｅｓｔ．ｔｄｌの１１行目がｉｆ文の終わりであることを示している。
【００３８】
「ｔｅｓｔ．ｔｄｌ：１１：ＥＬＳＥ」は、ｔｅｓｔ．ｔｄｌの１１行目がｅｌｓｅ文であることを示している。
【００３９】
「ｔｅｓｔ．ｔｄｌ：１２，１３：設定」は、ｔｅｓｔ．ｔｄｌの１２，１３行目が、テストプログラム上の「設定」に関する行であることを示している。
【００４０】
「ｔｅｓｔ．ｔｄｌ：１４：測定：１３，１６」は、ｔｅｓｔ．ｔｄｌの１４行目がテストプログラム上の「測定」に関する行であることを示し、その測定に関する内容が１３行目から１６行目に記述されていることを示している。
【００４１】
「ｔｅｓｔ．ｔｄｌ：１５：判定：１３，１６」は、ｔｅｓｔ．ｔｄｌの１５行目がテストプログラム上の「判定」に関する行であることを示し、その判定に関する内容が１３行目から１６行目に記述されていることを示している。
【００４２】
そして、「ｔｅｓｔ．ｔｄｌ：１６：ＥＮＤＥＬＳＥ」は、ｔｅｓｔ．ｔｄｌの１６行目がｅｌｓｅ文の終わりであることを示している。
【００４３】
図２（Ｃ）は、テストプログラム表示部７に表示されるテストプログラム解析結果判断部６の判断結果例であり、図２（Ａ）のテストプログラムおよび図２（Ｂ）のテストプログラム解析部５の解析結果例に対応している。
【００４４】
すなわち、図２（Ｃ）では、その１行目に、図２（Ｂ）の解析結果の「ｔｅｓｔ．ｔｄｌ：１：テストセグメント定義」から、ファイル名として「テストセグメント定義」を表示している。
【００４５】
２行目には、図２（Ｂ）の解析結果の「ｔｅｓｔ．ｔｄｌ：２，３：設定」から、処理の種類として、「設定」を表示している。
【００４６】
３行目には、図２（Ｂ）の解析結果の「ｔｅｓｔ．ｔｄｌ：4：ＩＦ」から、処理の種類として、分岐のｉｆ文とその条件「＠ｆｌａｇ＝＝１」と始めカッコ「｛」を表示している。
【００４７】
４行目には、図２（Ｂ）の解析結果の「ｔｅｓｔ．ｔｄｌ：５，８：設定」から、ｉｆ文における処理の種類として、「設定」を表示している。
【００４８】
５行目には、図２（Ｂ）の解析結果の「ｔｅｓｔ．ｔｄｌ：９：判定：８，１０」から、ｉｆ文における処理の種類として、「判定」を表示している。
【００４９】
６行目には、図２（Ｂ）の解析結果の「ｔｅｓｔ．ｔｄｌ：１１：ＥＮＤＩＦ」および「ｔｅｓｔ．ｔｄｌ：１１：ＥＬＳＥ」から、処理の種類として、ｉｆ文の閉じカッコ「｝」と分岐の「ｅｌｓｅ文」と始めカッコ「｛」を表示している。
【００５０】
７行目には、図２（Ｂ）の解析結果の「ｔｅｓｔ．ｔｄｌ：１２，１３：設定」から、ｅｌｓｅ文における処理の種類として、「設定」を表示している。
【００５１】
８行目には、図２（Ｂ）の解析結果の「ｔｅｓｔ．ｔｄｌ：１４：測定：１３，１６」から、ｅｌｓｅ文における処理の種類として、「測定」を表示している。
【００５２】
９行目には、図２（Ｂ）の解析結果の「ｔｅｓｔ．ｔｄｌ：１５：判定：１３，１６」から、ｅｌｓｅ文における処理の種類として、「判定」を表示している。
【００５３】
そして、１０行目には、図２（Ｂ）の解析結果の「ｔｅｓｔ．ｔｄｌ：１６：ＥＮＤＥＬＳＥ」から、ｅｌｓｅ文の閉じカッコ「｝」を表示している。
【００５４】
このように、図２（Ｃ）のテストプログラム解析結果判断部６の判断結果例によれば、分岐、設定、判定などを多く含む処理の流れが複雑なテストプログラムが、ｉｆ文やｅｌｓｅ文などの分岐のそれぞれについて、設定、測定、判定などの大きな意味のある単位にまとまって表示されている。
【００５５】
なお、テストプログラム表示部７に表示される図２（Ｃ）に示すようなテストプログラム解析結果判断部６の判断結果例の表示画面上において、たとえば「設定」の文字を選択することで、その「設定」に対応する具体的な「行番号」および「範囲」を図２（Ｂ）のテストプログラム解析部５の解析結果の情報から取得し、テストプログラムに記述されている具体的な「行番号」および「範囲」を表示画面上に表示する。
【００５６】
また、テストプログラム表示部７に表示される図２（Ｃ）の各行やif文などのテストプログラムの処理の流れが変わる単位で、ステップ実行できる機能を併せ持つようにしてもよい。
【００５７】
このように構成することにより、分岐などを多く含み、処理の流れが複雑なテストプログラム全体の流れを、テストプログラム表示部に表示される各部の処理結果の表示画面に基づき、容易に理解できるテスト支援装置が実現できる。
【００５８】
なお、上記実施例では、ＬＳＩテスタで用いるテストプログラムを仮想テストにより検証する例について説明したが、ＬＳＩテスタに限るものではなく、各種のテストシステムで用いるテストプログラムの検証にも有効である。
【００５９】
以上説明したように、本発明によれば、分岐などを多く含んでいて処理の流れが複雑なテストプログラム全体の流れを容易に理解できるテスト支援装置が実現でき、テストプログラムの検証作業などを効率よく行うことができる。
【符号の説明】
【００６０】
１  ＬＳＩテスタ
２  ＤＵＴ
３  テストプログラム格納部
４  テストパターン格納部
５  テストプログラム解析部
６  テストプログラム解析結果判断部
７  テストプログラム表示部
【図１】
2011007603.tif 000003
【図２】
2011007603.tif 000004
【図３】
2011007603.tif 000005
【図４】
2011007603.tif 000006