(57)【要約】    【課題】  論理回路の機能検証用のテスト項目、テスト仕様、テスト群を高品質かつ高効率に作成すること等を可能とした機能検証システムを提供する。    【解決手段】  機能検証システム１は、データ入力／編集部１０、データベース部２０、検証要素抽出部３０、検証要素群４０、検証環境構築部５０、検証環境６０から構成される。データベース部２０は、検証対象ＤＵＴ仕様２１、各種ＤＵＴ仕様ライブラリ２６、テスト項目ライブラリ２２、テスト仕様ライブラリ２７、検証ライブラリ２４、テストテンプレート群２５、対応情報２８、ＤＵＴライブラリ２９の電子データを格納する。検証要素抽出部３０は、検証対象ＤＵＴ仕様２１と各種ＤＵＴ仕様ライブラリ２６内の個々のＤＵＴの機能仕様とを比較し、所定の近似度以上の機能仕様を抽出し、対応情報２８に基づき、抽出された機能仕様に対応するテスト項目を抽出し、検証対象ＤＵＴの全機能仕様に関するテスト項目群を生成する。【選択図】      図１
2006119922.tif 000002
【特許請求の範囲】
【請求項１】
論理回路の機能検証を行う機能検証システムであって、
検証対象の論理回路の機能仕様と、各種論理回路の機能仕様の集合と、前記各種論理回路の機能仕様に関して機能検証すべきテスト項目の集合とを格納する格納手段と、
前記検証対象の論理回路の個々の機能仕様と、前記各種論理回路の機能仕様の集合における個々の機能仕様とを比較し、所定以上の近似度の機能仕様と該機能仕様に対応するテスト項目を抽出し、前記検証対象の論理回路の全機能仕様に関するテスト項目群を生成するテスト項目抽出手段とを備えることを特徴とする機能検証システム。
【請求項２】
前記テスト項目抽出手段は、
論理回路の機能仕様のデータ構造を解析して個々の機能仕様を抽出する機能仕様抽出手段と、
前記抽出した論理回路の個々の機能仕様のデータ構造を解析する解析手段と、
前記解析した機能仕様のデータ構造の部分毎に機能仕様の特徴を示すキーワードを抽出するキーワード抽出手段と、
前記抽出したキーワードに関して近似度を評価する評価手段と、所定以上の近似度の機能仕様を抽出する類似仕様抽出手段とを備えることを特徴とする請求項１記載の機能検証システム。
【請求項３】
前記テスト項目抽出手段は、所定以上の近似度の機能仕様が抽出できなかった機能仕様の情報を前記格納手段に登録することを特徴とする請求項２記載の機能検証システム。
【請求項４】
前記格納手段は、前記機能仕様とテスト項目との対応情報を更に格納し、
前記テスト項目抽出手段は、前記対応情報に基づき、前記抽出した機能仕様に対応するテスト項目を抽出することを特徴とする請求項１記載の機能検証システム。
【請求項５】
前記格納手段は、前記論理回路の機能仕様に関して機能検証すべきテスト項目のテスト仕様の集合と、機能検証に必要な検証モジュールの集合と、前記テスト項目に対応するテストテンプレートの集合とを更に格納し、
前記テスト項目群、前記検証対象の論理回路の機能仕様を解析し、テスト仕様群を生成するテスト仕様生成手段と、
前記検証対象の論理回路の機能仕様、前記テスト項目群、前記テスト仕様群、前記検証モジュールの集合を解析し、前記検証対象の論理回路の機能検証に必要な検証モジュール群を抽出する検証モジュール群抽出手段と、
前記検証対象の論理回路の機能仕様、前記テスト項目群、前記テストテンプレートの集合を解析し、前記検証対象の論理回路の機能検証に必要なテスト群を生成するテスト群生成手段とを更に備えることを特徴とする請求項１記載の機能検証システム。
【請求項６】
前記検証対象の論理回路の検証に必要なベースハードウエアに前記検証モジュール群を接続すると共に、前記検証モジュール群に前記検証対象の論理回路と前記テスト群を接続した検証環境を構築する構築手段を更に備えることを特徴とする請求項５記載の機能検証システム。
【請求項７】
前記テスト仕様生成手段は、前記テスト項目に関連する前記検証対象の論理回路の仕様を解析し、前記論理回路の仕様の制約条件を付加したテスト仕様を生成することを特徴とする請求項５記載の機能検証システム。
【請求項８】
前記検証モジュール群抽出手段は、前記テスト項目に関連する前記検証対象の論理回路の仕様と前記テスト仕様を解析し、前記テスト項目に関する機能検証時にテスト側に実装すべき部分と前記検証モジュール側に実装すべき部分との切り分けを行い、必要な検証モジュールを前記格納手段から抽出し、必要に応じてテスト実行時に前記検証モジュールに設定すべきパラメータ情報を保持することを特徴とする請求項５記載の機能検証システム。
【請求項９】
前記テスト群生成手段は、前記格納手段のテストテンプレートの集合を解析して前記テスト項目に対応するテストテンプレートを抽出し、関連する前記検証対象の論理回路の仕様と前記テスト仕様と前記パラメータ情報を解析し、必要なパラメータを前記テストテンプレートに追加してテスト群を生成することを特徴とする請求項５又は８記載の機能検証システム。
【請求項１０】
前記テスト群生成手段により生成したテスト群を実行する実行手段を更に備えることを特徴とする請求項５乃至９記載の機能検証システム。
【請求項１１】
前記実行手段により実行したテストの実行結果のカバレッジを解析するカバレッジ解析手段を更に備え、
前記テスト群生成手段は、所定のテスト項目に対してカバレッジを取得するテストを生成し、前記実行手段は、前記カバレッジ解析手段の解析結果に基づき、実行するテストを制御することを特徴とする請求項１０記載の機能検証システム。
【請求項１２】
論理回路の機能検証を行う機能検証システムであって、
検証対象の論理回路の機能仕様と、各種論理回路の機能仕様に関して機能検証すべきテスト項目の集合と、前記各種論理回路の機能仕様に関して機能検証するプロパティのプロパティ仕様の集合と、前記各種論理回路の機能仕様に関して機能検証するプロパティテンプレートの集合とを格納する格納手段と、
前記検証対象の論理回路の個々の機能仕様と、前記各種論理回路の機能仕様の集合における個々の機能仕様とを比較し、所定以上の近似度の機能仕様と該機能仕様に関わるテスト項目を抽出し、前記検証対象の論理回路の全機能仕様に関するテスト項目群を生成するテスト項目抽出手段と、
前記テスト項目群、前記検証対象の論理回路の機能仕様を解析し、プロパティ仕様群を生成するプロパティ仕様生成手段と、
前記検証対象の論理回路の機能仕様、前記テスト項目群、前記プロパティ仕様群、前記プロパティテンプレートの集合を解析し、前記検証対象の論理回路の機能検証に必要なプロパティ群を生成するプロパティ群生成手段とを備えることを特徴とする機能検証システム。
【請求項１３】
前記プロパティ仕様生成手段は、前記テスト項目に関連する前記検証対象の論理回路の仕様を解析し、前記検証対象の論理回路の仕様の制約条件を付加したプロパティ仕様を生成することを特徴とする請求項１２記載の機能検証システム。
【請求項１４】
前記プロパティ群生成手段により生成したプロパティ群を実行する実行手段を更に備えることを特徴とする請求項１２記載の機能検証システム。
【請求項１５】
検証対象の論理回路の機能仕様と、各種論理回路の機能仕様の集合と、前記各種論理回路の機能仕様に関して機能検証すべきテスト項目の集合とを格納した格納手段を備えた機能検証システムの制御方法であって、
前記検証対象の論理回路の個々の機能仕様と、前記各種論理回路の機能仕様の集合における個々の機能仕様とを比較し、所定以上の近似度の機能仕様と該機能仕様に対応するテスト項目を抽出し、前記検証対象の論理回路の全機能仕様に関するテスト項目群を生成することを特徴とする制御方法。
【請求項１６】
検証対象の論理回路の機能仕様と、各種論理回路の機能仕様に関して機能検証すべきテスト項目の集合と、前記各種論理回路の機能仕様に関して機能検証するプロパティのプロパティ仕様の集合と、前記各種論理回路の機能仕様に関して機能検証するプロパティテンプレートの集合とを格納した格納手段を備えた機能検証システムの制御方法であって、
前記検証対象の論理回路の個々の機能仕様と、前記各種論理回路の機能仕様の集合における個々の機能仕様とを比較し、所定以上の近似度の機能仕様と該機能仕様に関わるテスト項目を抽出し、前記検証対象の論理回路の全機能仕様に関するテスト項目群を生成し、
前記テスト項目群、前記検証対象の論理回路の機能仕様を解析し、プロパティ仕様群を生成し、
前記検証対象の論理回路の機能仕様、前記テスト項目群、前記プロパティ仕様群、前記プロパティテンプレートの集合を解析し、前記検証対象の論理回路の機能検証に必要なプロパティ群を生成することを特徴とする制御方法。
【請求項１７】
検証対象の論理回路の機能仕様と、各種論理回路の機能仕様の集合と、前記各種論理回路の機能仕様に関して機能検証すべきテスト項目の集合とを格納した格納手段を備えた機能検証システムの制御方法をコンピュータに実行させるプログラムであって、
前記検証対象の論理回路の個々の機能仕様と、前記各種論理回路の機能仕様の集合における個々の機能仕様とを比較するモジュールと、
所定以上の近似度の機能仕様と該機能仕様に対応するテスト項目を抽出するモジュールと、
前記検証対象の論理回路の全機能仕様に関するテスト項目群を生成するモジュールとを備えることを特徴とするプログラム。
【請求項１８】
検証対象の論理回路の機能仕様と、各種論理回路の機能仕様に関して機能検証すべきテスト項目の集合と、前記各種論理回路の機能仕様に関して機能検証するプロパティのプロパティ仕様の集合と、前記各種論理回路の機能仕様に関して機能検証するプロパティテンプレートの集合とを格納した格納手段を備えた機能検証システムの制御方法をコンピュータに実行させるプログラムであって、
前記検証対象の論理回路の個々の機能仕様と、前記各種論理回路の機能仕様の集合における個々の機能仕様とを比較し、所定以上の近似度の機能仕様と該機能仕様に関わるテスト項目を抽出し、前記検証対象の論理回路の全機能仕様に関するテスト項目群を生成するモジュールと、
前記テスト項目群、前記検証対象の論理回路の機能仕様を解析し、プロパティ仕様群を生成するモジュールと、
前記検証対象の論理回路の機能仕様、前記テスト項目群、前記プロパティ仕様群、前記プロパティテンプレートの集合を解析し、前記検証対象の論理回路の機能検証に必要なプロパティ群を生成するモジュールとを備えることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路の必要十分な機能検証項目の設定及び機能検証項目に関わる機能検証を行う機能検証システム、制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、各種電子機器に搭載される例えば割り込み回路やタイマ回路等の、論理回路の機能検証（以下ＤＵＴ（Design Under Test）の機能検証と表記する）においては、当該ＤＵＴが機能仕様書に記載された機能仕様通りに機能するかどうかを、動的或いは静的な検証手法によって機能検証を実施していた。通常、検証対象のＤＵＴの機能検証を実施する検証者は、実際にＤＵＴの各機能がどのように実装されているかという部分には踏み込まずに、ＤＵＴの観測可能な端子の信号の状態を調べることで、ＤＵＴが機能仕様通りに機能するかどうかをブラックボックス的に検証する。
【０００３】
ＤＵＴの機能検証にあたっては、検証者がＤＵＴの機能仕様書から機能検証すべきテスト項目を抽出してテスト仕様書を作成し、設計者が前記作成されたテスト仕様書に関してテスト項目の抽出抜けが無いかどうかをレビュー等で確認した上で、検証者が完成されたテスト仕様書に基づきテストを作成し、機能検証を実施していた。
【０００４】
機能検証すべきテスト項目の抽出にあたっては、予め準備された各機能毎に抽出すべきテスト項目を網羅したテスト項目一覧を参照することで、テスト項目の抽出抜けが無いかどうかを確認する場合もあった。また、設計者が検証者からテスト項目のレビューを受けることにより、検証者が抽出したテスト項目に抜けが無いかどうかを確認する場合もあった。これらの場合はテスト項目の抽出抜け回避にある程度効果は出ていた。
【０００５】
近年、ソフトウエア開発の分野において、構造化手法やオブジェクト指向方法論に基づき、仕様からプログラムを自動生成することが可能となってきている。また、グラフィカルユーザインタフェースを介して入力されたソフトウエア要求仕様に基づいて、ソフトウエアコードを自動生成させる技術が開示されている（例えば、特許文献１参照）。
【０００６】
また、本発明の執筆者は、ＤＵＴの機能検証に関して、実績のあるテスト項目一覧、パラメタライズ化されたモデルやモニタ等の検証モジュール、テスト項目に対応したテストテンプレートを有効活用することにより、当該ＤＵＴの機能検証用のテスト項目、テスト仕様、テストを高品質かつ高効率に作成可能とする機能検証システム及び方法を提案している。
【特許文献１】特開２００２−０７３３３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述したように、従来のＤＵＴの機能検証に際しては、ＤＵＴの機能仕様書から機能検証すべきテスト項目を抽出する工程、テスト仕様書を作成する工程、テスト仕様をレビューする工程、テストを作成する工程、テストを実行する工程に要する負荷が、ＤＵＴの大規模化に伴い大幅に増大し、ＤＵＴの機能検証期間の増大を招いているという問題点があった。
【０００８】
また、機能仕様書からの機能検証すべきテスト項目の抽出が、担当する検証者のスキルに依存し、機能検証の品質を大きく左右するという問題点があった。
【０００９】
また、機能検証すべきテスト項目の抽出抜けを回避するために、予め準備された各機能毎に抽出すべきテスト項目を網羅したテスト項目一覧を参照する作業を検証者が行った場合でも、不注意等により発生する検証漏れは回避できなかった。
【００１０】
また、検証者によるテスト項目抽出後に設計者と検証者とが対となってテストレビューを実施しても、機能検証すべきテスト項目の一部が抜けてしまう場合も少なくなかった。
【００１１】
また、上記の機能検証に関わる工程のうち、最も上流の工程である、機能検証すべきテスト項目を抽出する工程において、いかに必要十分なテスト項目を抽出するかが、その後の検証品質を大きく左右するため、機能検証すべきテスト項目抽出の信頼性と生産性の向上を両立させることは大きな課題であった。
【００１２】
また、抽出したテスト項目に関する適切なテストを作成することも検証品質の観点から重要なポイントであり、その信頼性と生産性の向上を両立させることも大きな課題であった。
【００１３】
また、上述したように、仕様からプログラムを自動生成することが可能となってきており、適用分野は主にアプリケーション或いは組込みソフトウエアの開発の分野であるが、ハードウエアの開発の分野でも一部適用が試みられてきている。即ち、実現すべきソフトウエアの仕様から当該ソフトウエアのプログラムを自動生成するものや、実現すべきハードウエアの機能仕様から当該ハードウエアの機能をハードウエア記述向けの拡張Ｃ言語等で記述したプログラムを自動生成するものである。
【００１４】
また、実現すべきソフトウエアの仕様或いはプログラムから、当該ソフトウエアのテスト項目、そしてテストプログラムを自動生成する技術も提案されてきている。
【００１５】
しかし、ハードウエアの機能検証の分野において、機能検証用のテスト仕様、テストプログラムを自動生成する技術は開示されておらず、ＤＵＴの機能仕様から、当該機能に関する機能検証用のテスト項目、テスト仕様、テストを作成する工程を高品質に効率化する必要性が高まっている。
【００１６】
上述した、本発明の執筆者が提案した機能検証システム及び方法は、各種論理回路の機能検証に関わるテスト項目一覧を前提にしており、テストの実行、テスト実行結果のフィードバックに関しては考慮していないと課題があった。
【００１７】
本発明の目的は、論理回路の機能検証用のテスト項目、テスト仕様、テスト群を高品質かつ高効率に作成すること等を可能とした機能検証システム、制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１８】
上述の目的を達成するために、本発明は、論理回路の機能検証を行う機能検証システムであって、検証対象の論理回路の機能仕様と、各種論理回路の機能仕様の集合と、前記各種論理回路の機能仕様に関して機能検証すべきテスト項目の集合とを格納する格納手段と、前記検証対象の論理回路の個々の機能仕様と、前記各種論理回路の機能仕様の集合における個々の機能仕様とを比較し、所定以上の近似度の機能仕様と該機能仕様に対応するテスト項目を抽出し、前記検証対象の論理回路の全機能仕様に関するテスト項目群を生成するテスト項目抽出手段とを備えることを特徴とする。
【００１９】
上述の目的を達成するために、本発明は、論理回路の機能検証を行う機能検証システムであって、検証対象の論理回路の機能仕様と、各種論理回路の機能仕様に関して機能検証すべきテスト項目の集合と、前記各種論理回路の機能仕様に関して機能検証するプロパティのプロパティ仕様の集合と、前記各種論理回路の機能仕様に関して機能検証するプロパティテンプレートの集合とを格納する格納手段と、前記検証対象の論理回路の個々の機能仕様と、前記各種論理回路の機能仕様の集合における個々の機能仕様とを比較し、所定以上の近似度の機能仕様と該機能仕様に関わるテスト項目を抽出し、前記検証対象の論理回路の全機能仕様に関するテスト項目群を生成するテスト項目抽出手段と、前記テスト項目群、前記検証対象の論理回路の機能仕様を解析し、プロパティ仕様群を生成するプロパティ仕様生成手段と、前記検証対象の論理回路の機能仕様、前記テスト項目群、前記プロパティ仕様群、前記プロパティテンプレートの集合を解析し、前記検証対象の論理回路の機能検証に必要なプロパティ群を生成するプロパティ群生成手段とを備えることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、検証対象の論理回路の個々の機能仕様と、各種論理回路の機能仕様の集合における個々の機能仕様とを比較し、所定以上の近似度の機能仕様と該機能仕様に対応するテスト項目を抽出し、検証対象の論理回路の全機能仕様に関するテスト項目群を生成するので、論理回路の機能検証用のテスト項目を高品質かつ高効率に作成可能とすることができ、検証工数削減、検証期間短縮、検証品質向上を同時に実現することができるという顕著な効果を奏する。
【００２１】
また、本発明によれば、更に、テスト項目群、検証対象の論理回路の機能仕様を解析してテスト仕様群を生成し、検証対象の論理回路の機能仕様、テスト項目群、テストテンプレートの集合を解析して検証対象の論理回路の機能検証に必要なテスト群を生成するので、論理回路の機能検証用のテスト項目に加えて、テスト仕様、テストを高品質かつ高効率に作成可能とすることができ、検証工数削減、検証期間短縮、検証品質向上を同時に実現することができるという顕著な効果を奏する。
【００２２】
また、本発明によれば、実行したテストの実行結果のカバレッジを解析するカバレッジ解析手段の解析結果に基づき、実行するテストを制御するので、テスト実行に関しても、検証ゴール達成に向けて高品質化及び効率化を達成することができるという顕著な効果を奏する。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態を図面に基づき説明する。
【００２４】
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係る機能検証システムの構成を示すブロック図である。
【００２５】
図１において、機能検証システム１は、論理回路の機能検証を行うものであり、データ入力／編集部１０、データベース部２０、検証要素抽出部３０、検証要素群４０、検証環境構築部５０、検証環境６０から構成されている。
【００２６】
本実施の形態では、機能検証システム１の各構成要素は、ワークステーション或いはパーソナルコンピュータ（ＰＣ）上において主記憶装置或いは補助記憶装置に保存され、中央演算処理装置の制御に基づき機能するものとする。また、本実施の形態では、ＤＵＴとＤＵＴ検証用のテストベンチ及びテストをソフトウエアシミュレータ上でシミュレーションを実行することにより動的な機能検証を行うことを想定している。
【００２７】
データ入力／編集部１０は、データベース部２０内の各種データの入力及び編集を行うものであり、データベース部２０にネットワーク接続されたワークステーション或いはＰＣ等から構成される、ＧＵＩ（Graphical User Interface）等を有するマンマシンインタフェースである。
【００２８】
データベース部２０は、検証対象ＤＵＴ仕様２１、各種ＤＵＴ仕様ライブラリ２６、テスト項目ライブラリ２２、テスト仕様ライブラリ２７、検証ライブラリ２４、テストテンプレート群２５、ＤＵＴ仕様とテスト項目の対応情報２８、ＤＵＴライブラリ２９の電子データを格納している。データベース部２０は、具体的には、上記電子データを格納するワークステーション或いはＰＣ上のハードディスク等の電子データ蓄積デバイスとして構成されており、上記電子データのバージョン管理等を行う。
【００２９】
各種ＤＵＴ仕様ライブラリ２６は、既存の各種ＤＵＴの機能仕様（機能毎に分類される例えば割り込み回路やタイマ回路等の各種論理回路の仕様）のライブラリ（集合）である。テスト項目ライブラリ２２は、上記既存の各種ＤＵＴの機能仕様に関して機能検証すべきテスト項目のライブラリである。テスト仕様ライブラリ２７は、上記既存の各種ＤＵＴの機能仕様に関して機能検証すべきテスト項目に関するテスト仕様のライブラリである。
【００３０】
検証ライブラリ２４は、予め用意された、様々なＤＵＴの機能検証に必要となるモデルやモニタ等の検証モジュールのライブラリである。テストテンプレート群２５は、予め用意された、テスト項目一覧の各テスト項目に対応するテストのテンプレートのデータである。ＤＵＴ仕様とテスト項目の対応情報２８は、上記既存の各種ＤＵＴの機能仕様と、対応するテスト項目の対応に関する情報である。ＤＵＴライブラリ２９は、下記のＤＵＴ６１の情報を含むライブラリである。
【００３１】
検証要素抽出部３０は、テスト項目抽出部３１、テスト仕様生成部３２、検証モジュール群抽出部３３、テスト群生成部３４から構成されており、データベース部２０内の各種データを解析して、当該ＤＵＴの機能検証に必要な検証要素群４０を抽出する。
【００３２】
テスト項目抽出部３１は、図２に示すように、個別機能仕様抽出部３０１、データ構造解析部３０２、キーワード抽出部３０３、近似度評価部３０４、類似仕様抽出部３０５、テスト項目選択部３０６から構成されている。
【００３３】
個別機能仕様抽出部３０１は、検証対象ＤＵＴ仕様２１及び各種ＤＵＴ仕様ライブラリ２６を入力して、各々について、例えば、各機能仕様の記述部分に記載されるキーワード（”specification”等）、或いは、データ構造を示す識別子（”1.1”）を基に判断することにより、データ構造を解析して各個別機能仕様の記述を抽出する。データ構造解析部３０２は、個別機能仕様抽出部３０１により抽出された各個別機能仕様の記述に対して、例えば、データ構造の部分毎の特徴を示すキーワード（”name”、”contents”等）、或いは、データ構造を示す識別子（”1.1.1”）を基に判断することにより、個々の機能仕様のデータ構造を解析する。
【００３４】
キーワード抽出部３０３は、データ構造解析部３０２により解析された各個別機能仕様のデータ構造の各部分毎に、当該機能仕様のカテゴリ（”arbiter”等）や特徴（”one hot”等）を示すキーワード自体、或いは、カテゴリや特徴を示すキーワードに対応する識別子（”A-1-1”等）の抽出を行う。近似度評価部３０４は、キーワード抽出部３０３により抽出されたキーワード（或いはキーワードに対応した識別子）に関して、検証対象ＤＵＴ仕様２１と各種ＤＵＴ仕様ライブラリ２６内の機能仕様の近似度を評価する。
【００３５】
類似仕様抽出部３０５は、近似度評価部３０４により評価された近似度が所定以上の場合、各種ＤＵＴ仕様ライブラリ２６内の当該機能仕様を抽出する。尚、類似仕様抽出部３０５は、検証対象ＤＵＴ仕様２１の或る機能仕様に関して、各種ＤＵＴ仕様ライブラリ２６の何れの機能仕様も所定以上の近似度とならなかった場合は、適切な機能仕様が抽出不能であった旨をワークステーション或いはＰＣの表示部を介してユーザに通知するものとし、また、所定以上の近似度の機能仕様が抽出できなかった機能仕様の情報をデータベース部２０に登録する。
【００３６】
テスト項目選択部３０６は、テスト項目ライブラリ２２と、ＤＵＴ仕様とテスト項目の対応情報２８を用いて、類似仕様抽出部３０５により抽出された各種ＤＵＴ仕様ライブラリ２６内の当該機能仕様に対応するテスト項目をテスト項目ライブラリ２２から抽出する。
【００３７】
尚、検証要素抽出部３０のテスト仕様生成部３２、検証モジュール群抽出部３３、テスト群生成部３４の機能については、検証要素群４０の後に説明する。
【００３８】
検証要素群４０は、テスト項目群４１、テスト仕様４２、検証モジュール群４３、テスト群４４から構成されている。
【００３９】
テスト項目群４１は、テスト項目抽出部３１により抽出された、検証対象ＤＵＴ仕様２１の機能検証に必要なテスト項目の集合である。テスト仕様４２は、当該ＤＵＴの機能検証に必要な各テスト項目毎にＤＵＴ仕様に基づく制約条件を考慮したテスト仕様が抽出されたものである。検証モジュール群４３は、当該ＤＵＴの機能検証に必要となる検証モジュールの集合である。テスト群４４は、当該ＤＵＴの機能検証に必要となるテストの集合である。
【００４０】
上記のテスト項目抽出部３１は、検証対象ＤＵＴ仕様２１と各種ＤＵＴ仕様ライブラリ２６内の個々のＤＵＴの機能仕様とを比較して、所定の近似度以上の機能仕様を抽出し、ＤＵＴ仕様とテスト項目の対応情報２８に基づき、上記抽出された機能仕様に対応するテスト項目を抽出し、検証対象ＤＵＴの全機能仕様に関するテスト項目群を生成する。
【００４１】
テスト仕様生成部３２は、当該ＤＵＴの機能検証として実施すべきテスト項目群のテスト項目毎に、関連する検証対象ＤＵＴ仕様２１を解析して、当該対応ＤＵＴ仕様の制約条件を付加した各テスト仕様を生成し、全てのテスト項目群に対応するテスト仕様４２を生成する。
【００４２】
検証モジュール群抽出部３３は、当該ＤＵＴの機能検証として実施すべきテスト項目群の各テスト項目毎に、関連する検証対象ＤＵＴ仕様２１と当該テスト仕様４２を解析して、当該テスト項目に関する機能検証時にテスト側に実装すべき部分と、モデルやモニタ等の検証モジュールの機能として実装すべき部分との切り分けを行い、当該テスト項目に関する機能検証に必要なモデルやモニタ等の検証モジュールを検証ライブラリ２４から抽出し、必要に応じてテスト実行時に検証モジュールに設定すべきパラメータ情報を保持し、全てのテスト項目群に対応する検証モジュール群４３を抽出する。
【００４３】
テスト群生成部３４は、テスト項目群の各テスト項目毎にテストテンプレート群２５を解析して、対応するテストテンプレートを抽出し、関連する検証対象ＤＵＴ仕様２１、テスト仕様４２、及び検証モジュール抽出部３３に保持されたテスト側から検証モジュールに設定すべきパラメータ情報を解析し、必要なパラメータを当該テストテンプレートに追加して、当該ＤＵＴの機能検証として実施すべきテストを生成し、これを全てのテスト項目に対して実行し、テスト項目群に対応するテスト群４４を生成する。また、テスト群生成部３４は、所定のテスト項目に対して下記のカバレッジを取得するテストを生成する。
【００４４】
検証環境構築部５０は、上記の検証要素群４０を組合せて下記の検証環境６０を構築する。
【００４５】
検証環境６０は、テスト群４４、ＤＵＴ６１、テストベンチ６３、検証部／シミュレータインタフェース（以下Ｉ／Ｆと略称）６４、ソフトウエアシミュレータ６５、テスト実行制御部６７、カバレッジ解析部６８から構成されている。尚、検証環境６０内の検証モジュール群４３とテスト群４４は、検証要素群４０を構成しているものであるため、図１では検証環境６０内と検証要素群４０内とで同一符号を付すものとする。
【００４６】
テストベンチ６３は、検証モジュール群抽出部３３により抽出された検証モジュール群４３と、検証対象ＤＵＴの機能検証に必要なベースハードウエア（以下Ｈ／Ｗと略称）６２から構成される。ベースＨ／Ｗ６２は、ＤＵＴ６１を包含するＨ／Ｗのトップ階層であり、検証モジュール群４３と接続されることでテストベンチ６３を構成し、ソフトウエアシミュレータ６５上でシミュレーション実行が可能である。検証モジュール群４３には、テスト群４４とＤＵＴ６１が接続される。
【００４７】
ソフトウエアシミュレータ６５は、ハードウエア記述言語等で機能記述されたハードウエアのプログラムを実行可能な論理シミュレータである。検証部／シミュレータＩ／Ｆ６４は、テスト群４４及び検証モジュール群４３等の検証言語等で記述された検証部をソフトウエアシミュレータ６５上で実行させるためのインタフェースである。
【００４８】
テスト実行制御部６７は、検証環境６０において、ソフトウエアシミュレータ６５を起動してテストベンチ６３上でテスト群４４の実行を司る。また、テスト実行制御部６７は、下記のカバレッジ解析部６８の解析結果を受けて、所定のカバッレジ条件が満足されなかった場合は対応するテストを制約条件等を制御した上で実行する。カバレッジ解析部６８は、テスト群４４内の所定のテスト項目に関連して対応するテストに記述されたカバレッジ取得の機構によって、テスト実行時に取得されたカバレッジを解析し、所定の条件を満足したか否かを判断し、テスト実行制御部６７に解析結果を通知する。
【００４９】
次に、上記構成を有する本実施の形態の機能検証システムの主要構成要素である検証要素抽出部３０と検証環境構築部５０の動作を説明する。
【００５０】
尚、本実施の形態では、データベース部２０に、検証対象ＤＵＴ仕様２１、各種ＤＵＴ仕様ライブラリ２６、テスト項目ライブラリ２２、テスト仕様ライブラリ２７、検証ライブラリ２４、テストテンプレート群２５、ＤＵＴ仕様とテスト項目の対応情報２８、ＤＵＴ６１に加えて、抽出／生成される、テスト仕様４２、検証モジュール群４３、テスト群４４を保持する構成を想定している。
【００５１】
図３及び図４は、機能検証システムの検証要素抽出部３０及び検証環境構築部５０の動作を示すフローチャートである。
【００５２】
図３及び図４において、まず、検証要素抽出部３０は、最初の工程として、当該ＤＵＴに対応するテスト項目群のテスト項目Ｎｏ．の初期化処理（i=1）を行う（ステップＳ１００）。次に、検証要素抽出部３０は、検証対象ＤＵＴ仕様２１と各種ＤＵＴ仕様ライブラリ２６とを比較して、所定の近似度以上と評価された各種ＤＵＴ仕様ライブラリ２６内の機能仕様をピックアップし、ＤＵＴ仕様とテスト項目の対応情報２８を参照して、当該ピックアップされた機能仕様に対応するテスト項目を抽出する（ステップＳ１１３）。
【００５３】
次に、検証要素抽出部３０は、当該テスト項目に関連する検証対象ＤＵＴ仕様２１を解析して、検証対象ＤＵＴ仕様２１の制約条件を付加してテスト仕様４２を生成する（ステップＳ１０１）。次に、検証要素抽出部３０は、当該テスト項目に関連する検証対象ＤＵＴ仕様２１とテスト仕様４２を解析して、当該テスト項目に関する機能検証時にテスト側に実装すべき部分と検証モジュール側に実装すべき部分との切り分けを行った上で、必要な検証モジュールを検証ライブラリ２４より抽出し、必要に応じてテスト実行時に検証モジュールに設定すべきパラメータ情報を保持する（ステップＳ１０２）。
【００５４】
次に、検証要素抽出部３０は、テストテンプレート群２５を解析して当該テスト項目に対応するテストテンプレートを抽出し、関連する検証対象ＤＵＴ仕様２１と、テスト仕様４２と、検証モジュール抽出部３３に保持されたパラメータ情報を解析して、必要な制約条件を当該テストテンプレートに付加してテスト群４４を作成する（ステップＳ１０３）。次に、検証要素抽出部３０は、次のテスト項目を選択するためにテスト項目Ｎｏ.（i）をインクリメントする（i=i+1）（ステップＳ１０４）。
【００５５】
次に、検証要素抽出部３０は、テスト項目Ｎｏ．（i）が当該ＤＵＴのテスト項目群の総テスト項目数n以下の場合（i≦n）（ステップＳ１０５でＮＯ）、上記ステップＳ１０１に進んで、検証要素抽出の工程を続行する。他方、検証要素抽出部３０は、テスト項目Ｎｏ．（i）が当該ＤＵＴのテスト項目群の総テスト項目数nを超えた場合（i>n）（ステップＳ１０５でＹＥＳ）、検証要素抽出の工程を終了し、ステップＳ１０６に進む。検証要素抽出部３０は、上記ステップＳ１０１で生成したテスト仕様４２をデータベース部２０に格納し（ステップＳ１０６）、上記ステップＳ１０２で抽出した検証モジュール群４３をデータベース部２０に格納し（ステップＳ１０７）、上記ステップＳ１０３で生成したテスト群４４をデータベース部２０に格納する（ステップＳ１０８）。
【００５６】
次に、検証環境構築部５０は、最初の工程として、ＤＵＴ６１をテストベンチ６３に接続するためのＤＵＴ６１の上位階層のモジュールとなるベースＨ／Ｗ６２を生成し、ＤＵＴ６１を接続する（ステップＳ１０９）。次に、検証環境構築部５０は、上記ステップＳ１０２で抽出された検証モジュール群４３をベースＨ／Ｗ６２とＤＵＴ６１に接続し、テストベンチ６３を構成する（ステップＳ１１０）。次に、検証環境構築部５０は、上記ステップＳ１０３で生成されたテスト群４４をテストベンチ６３に接続する（ステップＳ１１１）。最後に、検証環境構築部５０は、全接続情報をデータベース部２０に格納し、シミュレータ環境にテスト群４４、テストベンチ６３、ＤＵＴ６１を組込んで、検証環境６０を構築する（ステップＳ１１２）。
【００５７】
テスト実行制御部６７は、上記の検証環境６０において、ソフトウエアシミュレータ６５を起動してテストベンチ６３上でテスト群４４の実行を司る（ステップＳ１１４）。カバレッジ解析部６８は、テスト群４４内の所定のテスト項目に関連して対応するテストに記述されたカバレッジ取得の機構によって、テスト実行時に取得されたカバレッジを解析し、所定の条件を満足したか否かを判断し（ステップＳ１１５）、テスト実行制御部６７に解析結果を通知する。テスト実行制御部６７は、カバレッジ解析部６８の解析結果を受けて、所定のカバッレジ条件が満足されなかった場合は対応するテストを制約条件等を制御した上で実行する。
【００５８】
上記において、検証対象ＤＵＴの各テスト項目に関する機能検証に必要となるモデルやモニタ等の検証モジュールは、検証ライブラリ２４に含まれており、同様に、当該ＤＵＴの各テスト項目に関する機能検証に必要となるテストに対応するテストテンプレートも、テストテンプレート群２５に含まれていることを想定している。
【００５９】
検証対象ＤＵＴの各テスト項目に関する機能検証に必要となるモデル、モニタ、或いはテストテンプレートが抽出不可能な場合は、必要となるモデル、モニタ、或いは、テストテンプレートを新規或いは類似モジュールを編集することにより作成し、データ入力／編集部１０を介してデータベース部２０に追加登録するものとする。
【００６０】
また、検証対象ＤＵＴの機能仕様が、各種ＤＵＴ仕様ライブラリ２６内の何れの個別機能仕様とも所定以上の近似度とならなかった場合は、当該機能仕様に関わるテスト項目は新規に作成し、データ入力／編集部１０を介してデータベース部２０に追加登録するものとする。
【００６１】
本実施の形態では、検証要素抽出部３０の動作例として、各テスト項目毎に、テスト項目抽出工程、テスト仕様抽出工程、検証モジュール抽出工程、テスト生成工程を実行して、次のテスト項目に移行する場合を説明しているが、これに限定されるものではなく、次のような方法が考えられる。
【００６２】
例えば、まず全テスト項目を抽出した後、全テスト項目分のテスト仕様抽出工程を実行した後に、全テスト項目分の検証モジュール抽出工程を実行し、更に全テスト項目分のテスト生成工程を行うようにする方法、或いは、所定のテスト項目をまとめて、テスト仕様抽出工程、検証モジュール抽出工程、テスト生成工程を実行する方法、等である。即ち、検証要素抽出部３０の内部的な工程の進め方は様々な方法が考えられ、上記図３及び図５で説明した方法に限定されるものではないということは言うまでもない。
【００６３】
次に、図５に示す機能検証システムのＤＵＴ、テストベンチ及びテスト群の具体例に基づいて、検証対象ＤＵＴの機能検証に必要となる、テスト項目群、テスト仕様、検証モジュール及びテスト群の抽出／生成の方法を具体例を挙げて説明する。
【００６４】
図５は、機能検証システムのＤＵＴ６１、テストベンチ６３、テスト群４４の詳細構成を示すブロック図である。
【００６５】
図５において、ＤＵＴ６１には、バス６０２に接続されるバスアービタ６０１のみが示されているが、その他不図示の、バス６０２に接続される４つのバスマスタ、アドレスデコーダ、バスマルチプレクサ等も備えるものとする。テストベンチ６３には、検証モジュール群として、バスマスタモデル１・２０１、バスマスタモデル２・２０２、バスマスタモデル３・２０３、バスマスタモデル４・２０４、バススレーブモデル２０５、バスモニタ２０６が示されているが、その他不図示の、ＤＵＴの他の構成要素の機能検証に必要な検証モジュールも備えるものとする。テスト群４４には、バスアービタテスト５０１のみが示されているが、その他不図示の、ＤＵＴの他の構成要素の機能検証に必要なテストも備えるものとする。
【００６６】
バスマスタモデル１・２０１〜４・２０４は、各々バス６０２のバスマスタとして機能する検証モジュールであり、バスアービタ６０１は、バス６０２上の４つのバスマスタモデル１・２０１〜４・２０４のバス権を調停する検証対象ＤＵＴである。バススレーブモデル２０５は、バスマスタモデル１・２０１〜４・２０４からライト／リード等のアクセスを受ける検証モジュールである。バス６０２の状態（信号のレベル、変化）、複数の信号の状態の時間関係は、バスモニタ２０６によりモニタされる。バスアービタテスト５０１は、テストベンチ６３内の各検証モジュールに必要なデータを設定し、必要な出力データを収集し、論理シミュレータによるシミュレーションにおいてバスアービタ６０１の機能検証を実施するためのテストプログラムである。
【００６７】
図６は、検証対象のアービタのＤＵＴ仕様と各種論理回路のＤＵＴ仕様ライブラリの例を示す図である。
【００６８】
図６において、例として、X_Bus_Arbiterの仕様の Spec.xxx_2 “only one grant signal is hot. i.e.g_k=1 & g_i=0(i≠k) when k is granted (k∈{0,1,2,3})”が示されている。テスト項目抽出部３１により、検証対象ＤＵＴ仕様２１と各種ＤＵＴ仕様ライブラリ２６内の各機能仕様のデータ構造が解析され、所定の近似度以上となる機能仕様として、図６右側の、aaa_Bus_Arbiterの仕様の Spec.aaa_10 “only one grant signal is hot. i.e.g_k=1 & g_i=0(i≠k) when k is granted (k∈{0,1,2,3})”及びSpec.aaa_1 “supports master_Ii(0≦i≦k)”を抽出した例が示されている。
【００６９】
図７は、ＤＵＴ仕様ライブラリとテスト項目ライブラリの例を示す図である。
【００７０】
図７において、上記テスト項目抽出部３１により抽出された機能仕様に対して、ＤＵＴ仕様とテスト項目の対応情報２８により対応しているＤＵＴテスト項目を抽出した例を示したものであり、機能仕様の番号とテスト項目の番号が対応するようになっている。本実施の形態では、テスト項目aaaがピックアップされ、テスト項目aaaに着目して、以下のテスト仕様生成、検証モジュール抽出、テスト群抽出の説明を行うものとする。
【００７１】
テスト項目aaaにおいて、その概要”check if only one grant signal is hot. i.e. g_k=1 & g_i=0(i≠k) when k is granted)”は、同時には１つのgrant信号のみ１（許可）となることをチェックするというものである。また、関連モジュールとしては、bus_master_model、bus_slave_model、bus_monitorが挙げられている。
【００７２】
図８は、上記図７に示すテスト項目に着目した場合に検証要素抽出部３０の中で解析すべきＤＵＴ仕様の例を示す図である。
【００７３】
図８において、検証すべきテスト項目が定められると、検証要素抽出部３０の中の、テスト仕様生成部３２、検証モジュール群抽出部３３、テスト群生成部３４は、図示の直接該当するＤＵＴ仕様及び関連するＤＵＴ仕様をピックアップする。
【００７４】
直接該当するＤＵＴ仕様として、X_Bus_Arbiterの仕様の Spec.xxx_2 “only one grant signal is hot. i.e.g_k=1 & g_i=0(i≠k) when k is granted (k∈{0,1,2,3})”が示されている。また、関連するＤＵＴ仕様として、X_Bus_Arbiterの仕様のSpec.xxx_1 “support master0,master1,master2,master3.”と、X_Bus_Master0の仕様のSpec.yyy_1 “signal path=/system0/…/…/xbusarb0”とが示されている。
【００７５】
図９は、テスト項目群４１からのテスト仕様の生成例を示す図である。
【００７６】
図９において、テスト仕様生成部３２において、上記図７に示したテスト項目aaaに対して、上記図８に示した当該ＤＵＴ仕様の制約条件を付加したテスト仕様が生成される。テスト項目aaaに対応する当該ＤＵＴに対するテスト仕様として、ＤＵＴ仕様（X_Bus_Arbiterの仕様のSpec.xxx_1）に合わせてバスマスタの数が４に制約されていると共に、当該ＤＵＴのバスの種類（x_busを使用）に合わせて、関連モジュールがx_busのマスタモデルx_bus_master_model、スレーブモデルx_bus_slave_model、モニタx_bus_monitorに制約されている。
【００７７】
また、テスト項目aaa「バスアービタは同時には１つのgrant信号のみ１（許可）とすることをチェックする」に対するテスト仕様の詳細として、テストステップ” 1.Issue write access from all x_bus_master_model to x_bus_slave_model0 concurrently with ramdom delay. 2.Check if only one grant signal is hot by  x_bus_monitor.”が示されている。
【００７８】
図１０は、検証ライブラリ２４からの検証モジュール群４３の抽出例を示す図である。
【００７９】
図１０において、検証ライブラリ２４には、x_bus以外にもa_busに関連する検証モジュールが含まれているものとする。検証モジュール群抽出部３３において、検証ライブラリ２４より、テスト項目aaaの検証に必要な検証モジュール群として、x_bus_master_model、x_bus_slave_model、x_bus_monitorが抽出される。
【００８０】
図１１は、テストテンプレート群２５からのテスト群４４の生成例を示す図である。
【００８１】
図１１において、テストテンプレートとして、テスト項目aaa「バスアービタは同時には１つのgrant信号のみ1（許可）とすることをチェックする」に対するテストのテンプレート” grant_signal_for_arbitration”が含まれている。本実施の形態では、当該テストは、検証専用言語を用いて記述されているものとし、0からn-1のn個のバスマスタモデルからバススレーブモデルに対してランダムな遅延を伴って、同時にアクセスを行うという内容が記載されている。
【００８２】
テスト群生成部３４において、上記テストテンプレートより、当該テスト項目aaaの検証用のテストとして、当該ＤＵＴ仕様及びテスト仕様の制約を付加したテストが生成される。具体的には、テスト名が”sys0_x_grant_signal_for_arbitration”に変更され、struct名、クロック名、各フィールド名に、例えば”clk”が”x_clk”と変更されているように、”x_”が付加され、同時アクセスする関数write()の呼び出し数がＤＵＴ仕様のマスタ数に応じてnから4に変更されている。
【００８３】
図１２は、x_bus_moniorにおけるgrant信号チェック記述例を示す図である。
【００８４】
図１２において、” x_bus_monitor”は、上記図９のテスト仕様に示した通り、テスト項目aaaに対する機能検証を実施するのに必要となる、”check if only one grant signal is hot”のチェック機能を記述した例である。本実施の形態では、接続されるマスタ数が仕様毎に異なるといった様々なＤＵＴ仕様に対応可能とするため、マスタ数を最大１６個のマスタ数をサポートできるように記述されている。即ち、xgrantのbit数を１６としている。
【００８５】
grant信号チェックの内容としては、１６bitからなる信号xの各bitの値の算術和を計算する関数bitsum(x:int(bits:16))を用意し、あるマスタに対するgrantの発生時（これを “grant”というeventと定義）に、bitsum(xgrant)=1であることをチェックするようにしている。また、xgrantは、ＤＵＴ仕様のX_Bus_Master0の仕様のSpec.yyy_1 “signal path=/system0/…/…/xbusarb0”に応じてＤＵＴの信号をサンプルしたものである。
【００８６】
そして、検証環境構築部５０により、上記図１０に示した抽出された検証モジュール群x_bus_master_model、x_bus_slave_model、x_bus_monitorは、上記図５に示したテストベンチ構成に従って、マスタモデルはx_bus_master_model0、x_bus_master_model1、x_bus_master_model2、x_bus_master_model3の４つがインスタンスされ、スレーブモデルは１つのx_bus_slave_model0がインスタンスされ、バスモニタは１つのx_bus_monitor0がインスタンスされて、ＤＵＴとのインタフェースとして生成されるベースＨ／Ｗ６２と共にテストベンチ６３を構築し、上記テストと共にシミュレータ環境に組込まれて、テスト項目aaaの機能検証のためのテストの実行が可能となる。
【００８７】
上記のようにして、検証対象ＤＵＴ仕様２１と検証資産である各種ＤＵＴ仕様ライブラリ２６とを比較して、所定の近似度以上の各種ＤＵＴ仕様ライブラリ２６内の個別のＤＵＴ仕様を抽出し、当該ＤＵＴ仕様と対応するテスト項目を、各種ＤＵＴ仕様ライブラリ２６内の個別ＤＵＴ仕様と、テスト項目ライブラリ２２内の個別テスト項目との対応を示す対応情報２８を参照することにより、必要なテスト項目を抽出することが可能となる。
【００８８】
更に、検証資産であるテスト仕様ライブラリ２７、検証ライブラリ２４及びテストテンプレート群２５を基にして、着目するテスト項目の機能検証を実施するためのテスト仕様を生成し、必要となる検証モジュール群を抽出し、必要となるテストを生成することが可能となる。
【００８９】
更に、ＤＵＴ６１と検証モジュール群４３とテスト群４４からなる検証環境６０を構築することにより、当該テスト項目に対する機能検証を実行することが可能となる。
【００９０】
上述した本実施の形態の特徴をまとめると、テスト項目抽出部３１は、検証対象ＤＵＴ仕様２１と各種ＤＵＴ仕様ライブラリ２６とを比較し、所定以上の近似度の機能仕様を抽出し、当該機能仕様に対応するテスト項目をテスト項目群４１から抽出する。テスト仕様生成部３２は、テスト項目群４１の各テスト項目毎に、関連する検証対象ＤＵＴ仕様２１を解析してテスト仕様４２を生成する。検証モジュール群抽出部３３は、テスト項目、テスト仕様、ＤＵＴ仕様、検証ライブラリを解析して当該ＤＵＴの機能検証に必要となる検証モジュール群４３を抽出する。テスト群生成部３４は、テスト項目、テスト仕様、ＤＵＴ仕様、テストテンプレート群を解析して当該ＤＵＴの機能検証に必要となるテスト群４４を生成する。
【００９１】
検証環境構築部５０は、ＤＵＴ６１、検証対象ＤＵＴの検証に必要なベースＨ／Ｗ６２と上記抽出した検証モジュール群４３から構成されるテストベンチ６３、テスト群４４を組込んで検証環境６０を構築する。カバレッジ解析部６８は、テスト実行時に取得されたカバレッジを解析し、所定の条件を満足したか否かを判断し、テスト実行制御部６７に解析結果を通知する。テスト実行制御部６７は、カバレッジ解析部６８の解析結果を受けて、所定のカバッレジ条件が満足されなかった場合は対応するテストを制約条件等を制御した上で実行する。
【００９２】
上記制御により、実績のあるＤＵＴの機能仕様の集合、テスト項目の集合、テスト仕様の集合、パラメタライズ化されたモデルやモニタ等の検証モジュール、テスト項目に対応したテストテンプレートを有効活用して、当該ＤＵＴの機能検証用のテスト項目、テスト仕様、テストを高品質かつ高効率に作成することが可能となる。また、カバレッジ解析を行って検証ゴール達成に向け必要十分なテストを実行することが可能となる。
【００９３】
以上説明したように、本実施の形態によれば、ＤＵＴの機能検証に関して、各種ＤＵＴの実績のある仕様と対応するテスト項目との最低２つの設計資産の存在を前提として、両設計資産の再利用を図り、有効活用する。これにより、ＤＵＴの機能検証用のテスト項目、テスト仕様、テストを高品質かつ高効率に作成可能とすることができ、検証工数削減、検証期間短縮、検証品質向上を同時に実現することができるという顕著な効果を奏する。更に、テスト実行に関しても、検証ゴール達成に向けて高品質化及び効率化を達成することができるという顕著な効果を奏する。
【００９４】
［第２の実施の形態］
本発明の第２の実施の形態は、上述した第１の実施の形態がシミュレーションによる動的な機能検証を実行したことに対して、プロパティチェックによる静的な機能検証を実行する点と、機能検証システムの構成が図１３に示す点において相違する。
【００９５】
図１３は、本実施の形態に係る機能検証システムの構成を示すブロック図である。
【００９６】
図１３において、機能検証システム１００は、論理回路の機能検証を行うものであり、データ入力／編集部１０、データベース部１２０、検証要素抽出部１３０、検証要素群１４０、検証環境構築部５０、検証環境１６０から構成されている。
【００９７】
本実施の形態では、機能検証システム１００の各構成要素は、ワークステーション或いはＰＣ上において主記憶装置或いは補助記憶装置に保存され、中央演算処理装置の制御に基づき機能するものとする。また、本実施の形態では、プロパティチェックによる静的な機能検証を行うことを想定している。
【００９８】
データベース部１２０は、検証対象ＤＵＴ仕様２１、テスト項目一覧１７、プロパティ仕様ライブラリ１８、プロパティライブラリ１９、ＤＵＴライブラリ２９の電子データを格納している。検証要素抽出部１３０は、テスト項目抽出部３１、プロパティ仕様生成部３５、プロパティ群生成部３６から構成されている。検証要素群１４０は、テスト項目群４１、プロパティ仕様４５、プロパティ群４６から構成されている。検証環境１６０は、プロパティ群４６、ＤＵＴ６１、プロパティチェッカ６６、カバレッジ解析部６８、プロパティ実行部６９から構成されている。
【００９９】
本実施の形態のその他の要素（データ入力／編集部１０、検証環境構築部５０、その他同一符号を付した構成要素）は、上述した第１の実施の形態（図１）の対応するものと同一なので、説明を省略する。
【０１００】
テスト項目一覧１７は、各種ＤＵＴの機能仕様に関して機能検証すべきテスト項目の一覧（集合）である。プロパティ仕様ライブラリ１８は、ＤＵＴの機能仕様に関して機能検証するプロパティのプロパティ仕様のライブラリである。プロパティライブラリ１９は、予め用意された各種プロパティ仕様に対するプロパティのテンプレート（ＤＵＴの機能仕様に関して機能検証するプロパティのテンプレート）のライブラリである。ＤＵＴライブラリ２９は、下記のＤＵＴ６１の情報を含むライブラリである。
【０１０１】
プロパティ仕様４５は、当該ＤＵＴの機能検証に必要な各テスト項目毎にＤＵＴ仕様に基づく制約条件を考慮したプロパティ仕様が抽出されたものである。プロパティ群４６は、当該ＤＵＴの機能検証に必要となるプロパティの集合である。
【０１０２】
プロパティ仕様生成部３５は、当該ＤＵＴの機能検証として実施すべきテスト項目群の各テスト項目毎に、関連する検証対象ＤＵＴ仕様２１を解析して当該対応ＤＵＴ仕様の制約条件を付加した各プロパティ仕様をプロパティ仕様ライブラリ１８に基づき生成し、全テスト項目群に対応するプロパティ仕様群４５を生成する。
【０１０３】
プロパティ群生成部３６は、テスト項目群の各テスト項目毎にプロパティライブラリ１９を解析して、対応するプロパティテンプレートを抽出し、関連する検証対象ＤＵＴ仕様２１とプロパティ仕様４５を解析し、必要なパラメータ等の制約条件を当該プロパティテンプレートに追加し、当該ＤＵＴの機能検証として実施すべきプロパティを生成し、これを全てのテスト項目に対して実行し、テスト項目群に対応するプロパティ群４６を生成する。
【０１０４】
検証環境構築部５０は、上記の検証要素群４０を組合せて下記の検証環境６０を構築する。
【０１０５】
検証環境６０は、プロパティ群４６、ＤＵＴ６１、プロパティチェッカ６７、カバレッジ解析部６８、プロパティ実行制御部６９から構成されている。
【０１０６】
プロパティチェッカ６６は、ハードウエア記述言語等で機能記述されたハードウエアの機能を、プロパティ専用言語等で記述されたプロパティに基づいて正当性を静的に検証する静的検証ツールである。プロパティ実行制御部６９は、検証環境６０において、プロパティチェッカ６６を起動してプロパティ群４６の実行を司る。また、プロパティ実行制御部６９は、下記のカバレッジ解析部６８の解析結果を受けて、所定のカバッレジ条件が満足されなかった場合は対応するプロパティを制約条件等を制御した上で実行する。
【０１０７】
カバレッジ解析部６８は、プロパティ群４６内の所定のプロパティ項目に関連して対応するプロパティに記述されたカバレッジ取得の機構によって、プロパティ実行時に取得されたカバレッジを解析し、所定の条件を満足したか否かを判断し、プロパティ実行制御部６９に解析結果を通知する。
【０１０８】
以上説明したように、本実施の形態によれば、上述した第１の実施の形態と同様に、ＤＵＴの機能検証用のテスト項目、テスト仕様、テストを高品質かつ高効率に作成可能とすることができ、検証工数削減、検証期間短縮、検証品質向上を同時に実現することができ、検証ゴール達成に向けて高品質化及び効率化を達成することができるという顕著な効果を奏する。
【０１０９】
［他の実施の形態］
上記第１実施の形態では、各種ＤＵＴ仕様ライブラリ２６内の個別ＤＵＴ仕様と、テスト項目ライブラリ２２内の個別テスト項目との対応を示す対応情報２８を用いたが、ＤＵＴ仕様とテスト項目との対応に限定されるものではない。ＤＵＴ仕様、テスト項目、テスト仕様、検証ライブラリ、テストテンプレートの全て或いは一部を対応情報としてデータベース部２０に保持して、検証対象ＤＵＴ仕様２１と各種ＤＵＴ仕様ライブラリ２６内の個別ＤＵＴ仕様とが所定以上の近似度となった場合、上記対応情報を基にして、当該ＤＵＴ仕様に対応するテスト仕様、検証ライブラリ、テストテンプレートを決定しても良いことは言うまでもない。
【０１１０】
また、上記第１の実施の形態では、上記説明した図５から図１２のバスアービタのgrant信号に関する機能検証は一例であり、これに限定されるものではない。上記説明した検証要素抽出及び検証環境構築の方法は、他のＤＵＴ仕様、テスト項目に関しても適用可能であり、この例に限られたものではないことは言うまでもない。
【０１１１】
また、上記第１の実施の形態では、テスト項目一覧の各項目の内容として項目識番号：名称、概要、関連モジュール名が記載されているものとし、また、これらの記載事項は、特定の識別子（例においては”#”）を付加されたキーワードで識別可能に記載されているものとするとしたが、これに限定されるものではない。テスト項目の記載の形式は上記に限らず、所定の細項目毎に表形式或いは所定タグを付加されたもの等、細項目毎の識別が可能であれば、他の形式であっても良いことは言うまでもない。
【０１１２】
また、上記第１の実施の形態では、テスト項目とテスト仕様は項目識別番号及び項目名称により対応付けをしていたが、これに限定されるものではない。項目毎の対応のさせ方は、上記に限らず、項目識別符号のみ或いは所定のキーワードやタグ等、識別可能であれば、他の形式であっても良いことは言うまでもない。
【０１１３】
また、上記第１の実施の形態では、テスト項目とＤＵＴ仕様はキーワードにより関連付けを解析したが、これに限定されるものではない。両者の関連性の解析は、上記に限らず、識別符号のみ或いは所定のタグ等、識別可能であれば、他の形式であっても良いことは言うまでもない。
【０１１４】
また、上記第１の実施の形態では、ＤＵＴ仕様、テスト仕様等は細項目毎に自然言語に近い形式で記述したが、これに限定されるものではない。これらはＵＭＬ（Unified Modeling Language）等の仕様記述言語により記述したものを解析するようにしても良いことは言うまでもない。
【０１１５】
また、上記第１の実施の形態では、テスト仕様はピックアップされたテスト項目に当該ＤＵＴ仕様の制約条件を付加して生成するものとしたが、これに限定されるものではない。予め用意されたテスト項目に対するテスト仕様のテンプレートに対して、当該ＤＵＴ仕様の制約条件を付加して生成するようにしても良いことは言うまでもない。
【０１１６】
本発明は、上述した実施の形態の機能を実現するソフトウエアのプログラム（図３、図４のフローチャート）をコンピュータ又はＣＰＵに供給し、そのコンピュータ又はＣＰＵが該供給されたプログラムを読出して実行することによって、達成することができる。
【０１１７】
この場合、上記プログラムは、該プログラムを記録した記憶媒体から直接供給されるか、又はインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続される不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
【０１１８】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、ＯＳ（オペレーティングシステム）に供給されるスクリプトデータ等の形態から成ってもよい。
【０１１９】
また、本発明は、上述した実施の形態の機能を実現するソフトウエアのプログラムを記憶した記憶媒体をコンピュータ又はＣＰＵに供給し、そのコンピュータ又はＣＰＵが記憶媒体に記憶されたプログラムを読出して実行することによっても、達成することができる。
【０１２０】
この場合、記憶媒体から読出されたプログラムコード自体が上述した各実施の形態の機能を実現すると共に、そのプログラムコードを記憶した記憶媒体は本発明を構成する。
【０１２１】
プログラムコードを記憶する記憶媒体としては、例えば、ＲＯＭ、ＲＡＭ、ＮＶ−ＲＡＭ、フロッピー（登録商標）ディスク、ハードディスク、光ディスク（登録商標）、光磁気ディスク、ＣＤ−ＲＯＭ、ＭＯ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード等がある。
【０１２２】
上述した実施の形態の機能は、コンピュータから読出されたプログラムコードを実行することによるばかりでなく、コンピュータ上で稼動するＯＳ等がプログラムコードの指示に基づいて実際の処理の一部又は全部を行うことによっても実現することができる。
【０１２３】
更に、本発明は、前述した実施の形態を実現するソフトウエアのプログラムがネットワーク上のデータベース又はホームページから通信プログラムによりダウンロードされ、このプログラムを読出して実行することによって達成することができる。
【０１２４】
上記プログラムは、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページからコンピュータプログラム自体、又は自動インストール機能を含む圧縮ファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給することができる。
【０１２５】
また、上記プログラムは、プログラムコードを暗号化した上で格納したＣＤ−ＲＯＭ等の記憶媒体をユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムコードを実行してコンピュータにインストールさせることによっても供給することができる。
【０１２６】
上述した実施の形態の機能は、プログラムコードを複数のファイルに分割し、夫々のファイルを異なるホームページからダウンロードすることによっても実現することができる。即ち、本発明の機能処理をコンピュータで実現させるためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明を構成する。
【０１２７】
また、上述した実施の形態の機能は、記憶媒体から読出されたプログラムが、コンピュータに挿入された機能拡張ボード又はコンピュータに接続された機能拡張ユニットに備えられたメモリに書込まれた後、そのプログラムの指示に基づき、その機能拡張ボード又は機能拡張ユニットに備えられたＣＰＵ又はＭＰＵ等が実際の処理の一部又は全部を実行することによっても実現することができる。
【図面の簡単な説明】
【０１２８】
【図１】本発明の第１の実施の形態に係る機能検証システムの構成を示すブロック図である。
【図２】機能検証システムのデータベース部及びテスト項目抽出部の詳細構成を示すブロック図である。
【図３】機能検証システムの検証要素抽出部及び検証環境構築部の動作を示すフローチャートである。
【図４】図３のフローチャートの続きである。
【図５】機能検証システムのＤＵＴ、テストベンチ、テスト群の詳細構成を示すブロック図である。
【図６】検証対象のアービタのＤＵＴ仕様と各種論理回路のＤＵＴ仕様ライブラリの例を示す図である。
【図７】ＤＵＴ仕様ライブラリとテスト項目ライブラリの例を示す図である。
【図８】図７に示すテスト項目に着目した場合に検証要素抽出部の中で解析すべきＤＵＴ仕様の例を示す図である。
【図９】テスト項目群からのテスト仕様の生成例を示す図である。
【図１０】検証ライブラリからの検証モジュール群の抽出例を示す図である。
【図１１】テストテンプレートからのテスト群の生成例を示す図である。
【図１２】x_bus_moniorにおけるgrant信号チェック記述例を示す図である。
【図１３】本発明の第２の実施の形態に係る機能検証システムの構成を示すブロック図である。
【符号の説明】
【０１２９】
１  機能検証システム（機能検証システムに対応）
２０  データベース部（格納手段に対応）
３０  検証要素抽出部
３１  テスト項目抽出部（テスト項目抽出手段に対応）
３２  テスト仕様生成部（テスト仕様生成手段に対応）
３３  検証モジュール群抽出部（検証モジュール群抽出手段に対応）
３４  テスト群生成部（テスト群生成手段に対応）
３５  プロパティ仕様生成部（プロパティ仕様生成手段に対応）
３６  プロパティ群生成部（プロパティ群生成手段に対応）
５０  検証環境構築部（構築手段に対応）
６０  検証環境
６２  ベースＨ／Ｗ
６７  テスト実行制御部（実行手段に対応）
６８  カバレッジ解析部（カバレッジ解析手段に対応）
６９  プロパティ実行制御部（実行手段に対応）
３０１  個別機能仕様抽出部（機能仕様抽出手段に対応）
３０２  データ構造解析部（解析手段に対応）
３０３  キーワード抽出部（キーワード抽出手段に対応）
３０４  近似度評価部（評価手段に対応）
３０５  類似仕様抽出部（類似仕様抽出手段に対応）
【図１】
2006119922.tif 000003
【図２】
2006119922.tif 000004
【図３】
2006119922.tif 000005
【図４】
2006119922.tif 000006
【図５】
2006119922.tif 000007
【図６】
2006119922.tif 000008
【図７】
2006119922.tif 000009
【図８】
2006119922.tif 000010
【図９】
2006119922.tif 000011
【図１０】
2006119922.tif 000012
【図１１】
2006119922.tif 000013
【図１２】
2006119922.tif 000014
【図１３】
2006119922.tif 000015