(57)【特許請求の範囲】
【請求項１】
コンピュータの情報処理を用いて対象論理のテスト・検証の処理を行う論理検証システムであって、
テスト条件情報に基づき乱数テストデータを生成する処理を行う乱数テストデータ生成部と、
前記乱数テストデータを入力データとして対象論理の論理シミュレーション処理を実行しカバレッジ情報を出力する論理シミュレータと、
前記カバレッジ情報の出力と、カバレッジの網羅率を示すカバレッジ蓄積情報とを用いて、テスト時のカバレッジの変化の判定処理を行い、カバレッジが向上した部分に対応する前記乱数テストデータまたはそのテスト条件情報をテスト条件蓄積情報として蓄積する処理を行うカバレッジ判定部と、
前記カバレッジ蓄積情報と前記テスト条件蓄積情報とをもとに作成されたテスト条件生成判定情報を用いて、追加テスト条件を生成するか判定処理し、その結果、追加テスト条件情報を生成して格納する処理を行う、追加テスト条件生成判定部と、を有し、
前記追加テスト条件生成判定部は、前記テスト条件生成判定情報を参照し、前回のテスト時のカバレッジ情報と、今回のテスト時のカバレッジ情報とを比較し、前回のテスト時にはカバーできていたが今回のテスト時にはカバーできていないテストケースを抜き出し、前記追加テスト条件として生成する処理を行い、
前記乱数テストデータ生成部により前記追加テスト条件を用いたテストを可能とすること、を特徴とする論理検証システム。
【請求項２】
請求項１記載の論理検証システムにおいて、
第１のテストとして、第１のテスト条件による乱数テストデータ群により、論理修正前の対象論理に対するテストを実行し、
第２のテストとして、前記第１のテスト条件による乱数テストデータ群により、論理修正後の対象論理に対するテストを実行し、前記カバレッジが減少した場合、
第３のテストとして、前記追加テスト条件による乱数テストデータ群により、前記論理修正後の対象論理に対するテストを実行すること、を特徴とする論理検証システム。
【請求項３】
請求項１記載の論理検証システムにおいて、
前記追加テスト条件生成判定部は、前記追加テスト条件として、前記前回のテスト時にはカバーできていたテストケースの乱数テストデータに対する乱数値のバリエーションの乱数テストデータを生成するテスト条件を生成する処理を行うこと、を特徴とする論理検証システム。
【請求項４】
請求項１記載の論理検証システムにおいて、
前記カバレッジ判定部は、前記テスト条件蓄積情報として、重複データや不要データを削除し最適な状態に近付けるテストケースに改善されたテスト条件のデータ情報を生成して蓄積する処理を行うこと、を特徴とする論理検証システム。
【請求項５】
コンピュータの情報処理を用いて対象論理のテスト・検証の処理を行う論理検証システムを構成するプログラムであって、
テスト条件情報に基づき乱数テストデータを生成する処理を行う乱数テストデータ生成部のプログラムと、
前記乱数テストデータを入力データとして対象論理の論理シミュレーション処理を実行しカバレッジ情報を出力する論理シミュレータのプログラムと、
前記カバレッジ情報の出力と、カバレッジの網羅率を示すカバレッジ蓄積情報とを用いて、テスト時のカバレッジの変化の判定処理を行い、カバレッジが向上した部分に対応する前記乱数テストデータまたはそのテスト条件情報をテスト条件蓄積情報として蓄積する処理を行うカバレッジ判定部のプログラムと、
前記カバレッジ蓄積情報と前記テスト条件蓄積情報とをもとに作成されたテスト条件生成判定情報を用いて、追加テスト条件を生成するか判定処理し、その結果、追加テスト条件情報を生成して格納する処理を行う、追加テスト条件生成判定部のプログラムと、を有し、
前記追加テスト条件生成判定部のプログラムは、前記テスト条件生成判定情報を参照し、前回のテスト時のカバレッジ情報と、今回のテスト時のカバレッジ情報とを比較し、前回のテスト時にはカバーできていたが今回のテスト時にはカバーできていないテストケースを抜き出し、前記追加テスト条件として生成する処理を行い、
前記乱数テストデータ生成部のプログラムにより前記追加テスト条件を用いたテストを可能とすること、を特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ情報処理に関し、ハードウェアを検証する論理検証の技術に関する。
【背景技術】
【０００２】
大規模・高機能なハードウェアの論理検証において、１つの方式として、テスト用入力データの乱数生成機能とカバレッジ計測機能とを組み合わせた論理検証システム・方法がある。
【０００３】
先行技術例として、特開２０１０−１４６０３７号公報（特許文献１）に示される検証システム・方法がある。
【０００４】
特許文献１では、「ハードウェア及びソフトウェアの協調検証においては、ソフトウェアを実行するために大量のテストデータが論理シミュレータまたはエミュレータで処理されることとなるため、論理検証に非常に長い時間を要していた。また、ハードウェア及びソフトウェアが変更されると、テストの再実行にも多大な時間を要しており、検証期間長期化の要因となっていた。」と記載されている。また「ハードウェア及びソフトウェアの協調検証時にハードウェア及びソフトウェアのカバレッジ情報を出力し、カバレッジ情報が変化するテストケースと変化しないテストケースを分類し、カバレッジ情報が向上するテストケースのみを蓄積してテストの再実行時に利用することにより、効率良くテストを実行するハードウェア、ソフトウェア協調検証システムを実現する」と記載されている。
【０００５】
またカバレッジテスト手法では、命令全体のうちテストできる割合の比率（命令網羅率）、コード内の分岐のうちテストできる割合の比率（分岐網羅率）、コード内に記述された条件のうちテストできる割合の比率（条件網羅率）、対象コードの考える経路のうちテストできる割合の比率（経路網羅率）などのカバレッジ（網羅率）をテスト・検証する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１４６０３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前記特許文献１の技術では、テストを再実行する際は、再実行前に収集した乱数によるランダムなテストデータ生成とカバレッジ情報から最適化されたテストケース（カバレッジ情報が向上するテストケース）を使用し、テスト期間の短縮を図る手段を持っている。
【０００８】
しかし、テストの再実行の要因が仕様変更や不具合改訂などによる論理修正である場合、再実行前に蓄積したテストケースだけではカバレッジ網羅率が１００％になるとは限らない。そのため、新たなテストケースを追加して再実行する必要があり、論理修正後に、最適化したテストケースを初めから作りなおす必要がある。
【０００９】
以上を鑑み、本発明の主な目的は、ハードウェア論理検証（乱数テストデータ生成機能とカバレッジ計測機能（カバレッジテスト手法）とを組み合わせた論理検証システム）に関して、テスト・検証の時間短縮を図ることができる技術を提供することである。
【課題を解決するための手段】
【００１０】
本発明のうち代表的な形態は、論理検証システム及びプログラム等であって、以下に示す構成を有することを特徴とする。
【００１１】
本形態の論理検証システムでは、乱数テストデータ生成を用いた入力テストデータを使用して、検証実行時のカバレッジ情報により最適化したテストケースを抜粋して運用する。本システムでは、対象論理の仕様変更や不具合改訂などによる論理修正後のテスト再実行時には、上記最適化したテストケースでカバレッジによるテスト網羅率が１００％にならない場合、カバレッジの羅網率が減少した箇所を網羅していた前回のテストケースを抜き出し、このテストケースの乱数テストデータの生成条件を追加する。そして、再度、カバレッジによるテスト網羅率が最終的に１００％になるように、最適化（重複したテストケースや不要になったテストケースの削除などの、最適な状態に近付けるテストケースに改善すること）の自動更新（最適化されたテストケースの蓄積）を行う。
【００１２】
本形態の論理検証システムは、例えば、テスト条件情報に基づき乱数テストデータを生成する処理を行う乱数テストデータ生成部と、前記乱数テストデータを入力データとして対象論理の論理シミュレーション処理を実行しカバレッジ情報を出力する論理シミュレータと、前記カバレッジ情報の出力と、カバレッジの網羅率を示すカバレッジ蓄積情報とを用いて、テスト時のカバレッジの変化の判定処理を行い、カバレッジが向上した部分に対応する前記乱数テストデータまたはそのテスト条件情報をテスト条件蓄積情報として蓄積する処理を行うカバレッジ判定部と、前記カバレッジ蓄積情報と前記テスト条件蓄積情報とをもとに作成されたテスト条件生成判定情報を用いて、追加テスト条件を生成するか判定処理し、その結果、追加テスト条件情報を生成して格納する処理を行う、追加テスト条件生成判定部とを有する。前記追加テスト条件生成判定部は、前記テスト条件生成判定情報を参照し、前回のテスト時のカバレッジ情報と、今回のテスト時のカバレッジ情報とを比較し、前回のテスト時にはカバーできていたが今回のテスト時にはカバーできていないテストケースを抜き出し、前記追加テスト条件として生成する処理を行い、前記乱数テストデータ生成部により前記追加テスト条件を用いたテストを可能とする。
【発明の効果】
【００１３】
本発明のうち代表的な形態によれば、ハードウェア論理検証（乱数テストデータ生成機能とカバレッジ計測機能とを組み合わせた論理検証システム）に関して、テスト・検証の時間短縮を図ることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施の形態の論理検証システムの概略構成を示す図である。
【図２】本発明の一実施の形態の論理検証システムの処理フローを示す図である。
【図３】本発明の一実施の形態のテスト条件生成判定情報のテーブルを示す図である。
【図４】本発明の一実施の形態でのテスト条件定義リスト／追加テスト条件定義リストのテーブル構成例を示す図である。
【図５】本発明の一実施の形態でのカバレッジ出力及びカバレッジ蓄積情報のテーブル構成例を示す図である。
【図６】本発明の一実施の形態でのテスト条件情報及びテスト条件蓄積情報のテーブル構成例を示す図である。
【図７】（ａ）は従来でのテスト（検証）の例、（ｂ）は本実施の形態でのテスト（検証）の例を示す説明図である。
【発明を実施するための形態】
【００１５】
以下、本発明の一実施の形態（論理検証システム等）を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
【００１６】
［概要等］
従来システムでは、図７（ａ）のように、第１のテスト条件による第１のテストデータ（群）を与えて対象論理（Ｘ）の検証（第１のテスト）を実行し、カバレッジ（網羅率）が１００％になれば終了する。なおテスト（検証）は、詳細には、乱数テスト方式の場合、テスト条件に基づく複数の乱数テストデータ（テストケース）の集まりによる複数のテストから構成される。ここで例えば対象論理（Ｘ）の内容に改変などの修正が発生した場合、修正後の対象論理（Ｘ’）に対して、再度、検証（テスト）を実行する必要がある。即ち、第２のテスト（検証）として、第１のテスト条件（第１のテスト時と同じもの）による第１のテストデータ（群）を与えて修正後の対象論理（Ｘ’）の検証を実行する。すると、修正部分が存在するため、カバレッジ（網羅率）が１００％にならない。例えば８０％に減少したとする。
【００１７】
その場合、１００％を達成するためには、テストデータ（対応するテスト条件）をすべて作り直す必要がある。即ち、第１のテスト条件の第１のテストデータをすべて作り直すことで第２のテスト条件の第２のテストデータを得て、第３のテスト（検証）を実行する必要がある。上記のように、従来システムでは上記テスト条件（テストデータ）の作り直しを含む全体的な検証（テスト）の作業に手間や時間を要するという問題がある。
【００１８】
一方、本実施の形態のシステムでは、図７（ｂ）に示すように、上記テスト条件・テストデータの作り直しを含む検証（テスト）の作業に要する全体的な手間・時間を削減する手段を備える。即ち、テスト条件・テストデータの最適化の自動更新の機能を有する。
【００１９】
図７（ｂ）で、本システムは、第１のテスト（検証）として、第１のテスト条件に基づく第１のテストデータ（群）により、対象論理（Ｘ）に対する検証（テスト）を実行し、その結果（テスト条件及びカバレッジ出力情報など）を蓄積する。また、対象論理（Ｘ）の修正後、第２のテスト（検証）として、第１のテスト条件（第１のテスト時と同じもの）に基づく第１のテストデータ（群）により、修正後の対象論理（Ｘ’）に対する検証（テスト）を実行し、その結果（テスト条件及びカバレッジ出力情報など）を蓄積する。上記蓄積では、同一のテスト条件・テストデータを重複せずに保持するように、及び不要なテスト条件・テストデータを保持しないように、最適化して蓄積する。なお上記第１、第２のテストの際、対象論理（Ｘ）の修正が発生していなくてもよいが、ここでは修正有りの場合とする。
【００２０】
本システムは、上記第１のテストの結果と第２のテストの結果とを比較・判定し、カバレッジ（網羅率）が変化（特に減少）している場合、上記蓄積情報から、その変化部分に対応するテストケースの差分、即ち当該変化部分をカバー（網羅）できていた前回（第１）のテスト条件・テストデータを自動的に抜き出す。そして、本システムは、上記抜き出したテストケースの差分に対応して最適化した、新たな追加的なテスト条件・テストデータ（乱数テストデータ生成条件）を生成し、第２のテスト条件として追加する。例えば前回（第１）のテストの乱数テストケースに近い乱数テストケースを第２のテストデータとして生成する。そして第３のテスト（検証）として、上記第２のテスト条件に基づく第２のテストデータ（群）により、対象論理（Ｘ’）に対する検証（テスト）を実行し、その結果を蓄積し、カバレッジが１００％になれば終了する。
【００２１】
上記のように、本システムでは、従来システムのようにテスト条件・テストデータをすべて作り直す必要が無く、有効なテスト条件・テストデータを素早く作成（自動生成・更新）することができ、テスト（検証）の作業の手間・時間を削減できる。本システムは、上記追加テスト条件の生成による、最終的にカバレッジ（網羅率）が１００％となるような、最適化されたテスト条件・テストデータをＤＢ等に蓄積しておく。これによりその後の検証（テスト）の際に当該蓄積情報を有効利用できるので、作業の手間・時間が削減できる。
【００２２】
［システム］
図１において、本実施の形態のシステムの構成例を示している。本論理検証システムは、乱数テストデータ生成部１０１と、論理シミュレータ１０３（対象論理）と、カバレッジ判定部１０５と、追加テスト条件生成判定部１０８とを有する構成である。
【００２３】
乱数テストデータ生成部１０１は、論理シミュレータ１０３（対象論理）で使用するテストデータを生成する機能であり、テスト条件定義リスト１０２及び追加テスト条件定義リスト１１０によるテスト条件情報を用いて、論理シミュレータ１０３（対象論理）に対するテスト（検証）のための入力データ（乱数テストデータ）を生成し、論理シミュレータ１０３（対象論理）へ与える。
【００２４】
テスト条件定義リスト１０２及び追加テスト条件定義リスト１１０の構成例については後述の図４に示す。
【００２５】
第１に（図７（ｂ）の第１のテスト）、乱数テストデータ生成部１０１は、最初にカバレッジ網羅率が１００％になるまでは、テスト条件定義リスト１０２を読み込んで乱数によるテストデータ生成を繰り返す。第２に（図７（ｂ）の第２のテスト）、乱数テストデータ生成部１０１は、対象論理の機能変更などによる論理修正後のテストの再実行時には、テスト条件蓄積情報１０６（前回に実行したテストデータを最適化（重複削除等）したテスト条件・テストデータ）を読み込んで、同様に乱数テストデータを生成する。また第３に（図７（ｂ）の第３のテスト）、乱数テストデータ生成部１０１は、上記再実行時のテスト条件蓄積情報１０６を使用してもカバレッジ網羅率が１００％にならない場合は、追加テスト条件定義リスト１１０を読み込んで新たな乱数テストデータを生成して、カバレッジ網羅率が１００％になるような論理検証を行う。
【００２６】
論理シミュレータ１０３は、論理回路情報を展開した論理シミュレータであり、検証対象論理と、乱数テストデータ生成部１０１からの入力データ（テストデータ）とをもとに、論理シミュレーション処理を実行し、その結果としてカバレッジ出力１０４（カバレッジ出力情報）が得られる。カバレッジ出力１０４は、テスト（対象論理）のうちのどのカバレッジポイントをカバーしたか等を示す情報である。カバレッジ出力１０４の構成例については後述の図５に示す。
【００２７】
カバレッジ判定部１０５では、上記論理シミュレーション結果のカバレッジ出力１０４と、前回までに実行し蓄積したカバレッジ蓄積情報１０７（網羅率などがわかる情報）とをもとに、カバレッジ（網羅率）が変化したかどうかのカバレッジ判定処理を行い、カバレッジ（網羅率）が向上した場合は、カバレッジ蓄積情報１０７を更新する。カバレッジ蓄積情報１０７の構成例については後述の図６に示す。
【００２８】
更に、カバレッジ判定部１０５では、上記カバレッジ（網羅率）が向上した場合は、上記乱数テストデータ生成部１０１で生成したテスト条件情報（即ち網羅率が向上した箇所・範囲に対応したテスト条件・テストデータ）を受け取り、テスト条件蓄積情報１０６に蓄積する。なおこの蓄積の際は、重複データや不要なデータは削除して蓄積（最適化）する。またカバレッジ判定部１０５は、上記カバレッジ（網羅率）が１００％に達した場合は、本論理検証システムの実行（論理検証）を終了する。
【００２９】
上記再実行時にカバレッジ（網羅率）が１００％に達しなかった場合、追加テスト条件生成判定部１０８において、カバレッジ蓄積情報１０７とテスト条件蓄積情報１０６とをもとに、テスト条件生成判定情報１０９を更新する処理を行う。また、追加テスト条件生成判定部１０８は、更新したテスト条件生成判定情報１０９を解析して、追加テスト条件定義リスト１１０を作成し格納する。この追加テスト条件定義リスト１１０により、乱数テストデータ生成部１０１からの追加テストの実行を可能にする。
【００３０】
なお図１のシステムは、例えば一般的なコンピュータ情報処理で実現できる。即ち、ＰＣ等のコンピュータ装置（プロセッサ、メモリ（ＲＯＭ，ＲＡＭ）、ディスク、通信インタフェース、入力装置、出力装置、及びバスなどの一般的な要素を備える構成）において、プロセッサによりメモリ上の本実施の形態のプログラムを実行することにより、図１の各処理部（１０１，１０３，１０５，１０８等）を実現し、メモリやディスク等に図１の各データ情報を格納する。またこれに限らず通信網を介したクライアントサーバ構成やクラウド構成などでも同様に実現できる。
【００３１】
［処理］
図２は、本論理検証システムの処理フローを示す。Ｓ１等は処理ステップを示す。
【００３２】
（Ｓ１，Ｓ２）  本システムは、最初にＳ１では、今回のテスト（検証）が、対象論理の論理修正等によるテスト（検証）の再実行（図７（ｂ）の第２のテストに相当する）かどうか判断し、再実行でない場合（Ｎ）はＳ２に進み、再実行である場合（Ｙ）はＳ５に進む。またＳ２では、追加テスト実行（図７（ｂ）の第３のテストに相当する）かどうか判断し、追加テスト実行ではない場合（Ｎ）はＳ３に進み、追加テスト実行である場合はＳ４に進む。
【００３３】
（Ｓ３，Ｓ４，Ｓ５）  Ｓ３では、再実行前のテスト（図７（ｂ）の第１のテストに相当する）であるため、入力データとして、テスト条件定義（１０２）を読み込む。Ｓ４では、追加テストであるため、入力データとして、追加テスト条件定義（１１０）を読み込む。Ｓ５では、再実行であるため、入力データとして、テスト条件蓄積情報１０６を読み込む。
【００３４】
（Ｓ６，Ｓ７）  Ｓ６では、上記入力データ（テスト条件情報）を用いて、乱数テストデータ生成部１０１により、乱数テストデータの生成処理を行う。そして生成したテストデータ（群）を、Ｓ７で、論理シミュレータ１０３による論理シミュレーション実行の入力データとして使用して論理シミュレーション処理を実行し、その結果、カバレッジ出力１０４が得られる。
【００３５】
（Ｓ８，Ｓ９）  Ｓ８では、カバレッジ判定部１０５により、カバレッジ出力１０４とカバレッジ蓄積情報１０７とをもとに、今回のテストでカバレッジ（網羅率）が向上したかどうかを判定する。カバレッジ（網羅率）が向上した場合（Ｙ）は、Ｓ９で、当該カバレッジ情報（網羅率などがわかる情報）を１０７へ蓄積し、また当該テスト条件情報（１０１から取得）をテスト条件蓄積情報１０６へ蓄積する処理を行う。上記カバレッジが向上しなかった場合（Ｎ）は、Ｓ９の処理をスキップする。
【００３６】
（Ｓ１０）  Ｓ１０では、１０５は、上記カバレッジ（網羅率）が１００％に達したかどうか判断し、１００％に達した場合（Ｙ）は、本処理フロー（論理検証）を終了する。１００％に達していない場合（Ｎ）は、次（Ｓ１１）に進む。
【００３７】
（Ｓ１１）  Ｓ１１では、前記Ｓ５の入力データ（テスト条件蓄積情報１０６）による再実行の場合かどうかを判断する。再実行ではない場合（Ｎ）はＳ１２に進み、再実行である場合（Ｙ）はＳ１３に進む。
【００３８】
（Ｓ１２）  Ｓ１２では、本システムは、テスト条件定義リスト１０２内で設定されているテスト条件におけるテストデータ生成指定回数と指定実行回数を判定し、当該指定回数に達した場合（Ｙ）は、本処理フロー（論理検証）を終了する。当該指定回数に達していない場合（Ｎ）は、先頭（Ｓ１）に戻り、同様にテスト実行を繰り返す。
【００３９】
（Ｓ１３，Ｓ１４）  Ｓ１３では、本システムは、蓄積テスト条件（１０６）によるテストが終了したかどうか判定し、終了していない場合（Ｎ）は、先頭（Ｓ１）に戻り、同様にテスト実行を繰り返す。終了した場合（Ｙ）は、Ｓ１４では、追加テスト条件生成判定部１０８により、テスト条件生成判定情報１０９をもとに追加テスト条件定義（１１０）を生成して追加テストの準備を行い、先頭（Ｓ１）に戻って、追加テスト条件定義１１０（Ｓ４）による追加テストを実行する流れとなる。
【００４０】
［テスト条件生成判定情報テーブル］
図３は、本実施の形態におけるテスト条件生成判定情報１０９のテーブル例である。本テーブルは、テスト番号３０１、乱数定義値３０２、乱数マスク値３０３、カバレッジ・ポイント３０４、前カバレッジ情報３０５、新カバレッジ情報３０６、等の項目（列）から成る。本テーブルは、追加テスト条件生成判定部１０８がテスト条件蓄積情報１０６から情報を取得して作成される。
【００４１】
テスト番号３０１は、乱数テストデータ生成部１０１で生成したテストケース（テストデータ）に対応した番号であり、カバレッジ（網羅率）の向上に有効なテスト回数相当値を表す。乱数定義値３０２は、当該テストデータを乱数テストデータ生成部１０１で生成したときの乱数値を表す。乱数マスク値３０３は、当該フィールド（値）毎に、入力データの種別や機能に括り付けされている乱数値（３０２）が、テスト条件（テストケース）毎にどのフィールド（値）を乱数でバリエーションを生成したかを制御する値を表す。例えば０はマスク無し、ｆはマスク有りである。前述の前回テスト時に網羅できていた差分のテストテストケースを抜き出してそれに類似する乱数テストデータを生成するための追加テスト条件（１１０）を生成する際の制御情報である。
【００４２】
カバレッジ・ポイント３０４は、カバレッジ（網羅率）を計測するためのカバレッジ計測ポイント情報であり、テスト条件毎に管理している情報を表す。例えば対象論理のパスにおける各箇所がカバレッジ・ポイント３０４として設定される。前カバレッジ情報３０５は、一世代前（前回）のテスト時のカバレッジ情報結果（カバー有無）を表し、新カバレッジ情報３０６は、テストの再実行時（今回）のカバレッジ情報結果（カバー有無）を表す。カバレッジ情報結果（カバー有無）は、例えば０は対応カバレッジ・ポイント３０４をカバーしていないことを示し、１はカバーしたことを示す。
【００４３】
追加テスト条件生成判定部１０８では、上記のようなテスト条件生成判定情報１０９をもとに、前カバレッジ情報３０５と新カバレッジ情報３０６とを比較して、新カバレッジ情報３０６で網羅されなかったテスト条件（テストケース）（テスト番号の行）を抜き出し、当該抜き出したテスト条件（テストケース）の乱数定義値３０２と乱数マスク値３０３を使用して、新たなテスト条件（テストケース）を追加テスト条件定義リスト１１０として生成する。
【００４４】
上記追加テスト条件（１１０）は、前述の図７（ｂ）のようにカバレッジ網羅率（状態）が変化した部位（差分）に対応したテストケースの乱数定義値３０２を解析して、一世代前（３０５）の網羅した条件に近い乱数テストデータを生成することで得られる。そのため、本システムでは、有効な追加テスト条件（１１０）を素早く作成することができる。
【００４５】
［テスト条件定義リスト／追加テスト条件定義リスト］
図４は、テスト条件定義リスト１０２、または、追加テスト条件定義リスト１１０で使用するテーブル構成例（同様形式）を示す。本テーブル４０１は、“ＳＥＥＤ”（回数）値と、６４ビットのデータをＡパターン（Length），Ｂパターン（Row），Ｃパターン（Repeat）と、３２ビットのデータをＡパターン，Ｂパターン（Row），Ｃパターンとでデータ生成させる記述である。“ＳＥＥＤ”値は、前述（Ｓ１２）の指定回数に相当する。
【００４６】
［カバレッジ出力・カバレッジ情報］
図５は、カバレッジ出力１０４、カバレッジ蓄積情報１０７のテーブル例を示す。カバレッジ出力１０４は、論理シミュレータ１０３の処理結果出力として、例えば「テスト１実行」４０２、及び「テスト２実行」４０３を示す（図７（ｂ）の第１、第２のテストに対応する）。「テスト１実行」４０２及び「テスト２」実行４０３のカバレッジ出力１０４をもとに、カバレッジ判定部１０５で、カバレッジ判定した結果に応じて、カバレッジ蓄積情報１０７のテーブル４０４にカバレッジ結果が蓄積される。
【００４７】
４０２，４０３では、前述のカバレッジ・ポイント（チェックポイント）のカバー有無（０／１）、総チェック数、総チェックポイント数などの情報が記述されており、本情報からテストのカバレッジ（網羅率）がわかる。４０４では、４０２，４０３からの各カバレッジ・ポイントにおけるテスト１実行，テスト２実行の結果がまとめられて記述されている。
【００４８】
［テスト条件情報・テスト条件蓄積情報］
図６は、入力データとなるテスト条件情報、及びテスト条件蓄積情報１０６のテーブル例を示す。４０５，４０６のテーブルのテスト条件情報は、乱数テストデータ生成部１０１により生成されるテスト条件の情報であり、それぞれ「テスト１実行」及び「テスト２実行」のテスト条件であり、前述の乱数定義値、乱数マスク値、回数（テストケースの番号）などで記述されている。４０７のテーブルのテスト条件蓄積情報１０６は、４０５，４０６のテスト条件情報と、カバレッジ出力１０４のデータとをもとに、カバレッジ判定部１０５で判定した結果によるテスト条件情報（網羅率が向上した部位に対応した最適化されたテストケース）が蓄積される。
【００４９】
［効果等］
以上説明したように、本形態の論理検証システムでは、乱数テストデータを入力としたテスト（検証）の実行時のカバレッジ情報により最適化したテストケース（テスト条件蓄積情報）を抜き出して運用する。本システムでは、対象論理の仕様変更や不具合改訂などによる論理修正後のテスト再実行時には、網羅率が１００％にならない場合、カバレッジの変化（減少）部分に対応したテストケース（前回テスト時は網羅できていた部分に対応した最適化されたテストケース）を抜き出してこのテストケースから乱数テストデータ生成条件を追加テスト条件（１１０）として生成・格納し、追加テストを実行可能としている。即ち本システムでは、再実行でカバレッジ（網羅率）が最終的に１００％になるように、テストケースの最適化（重複削除等）の自動更新（生成・蓄積）を行っている。したがって、乱数テストデータ生成機能とカバレッジ計測機能とを組み合わせた本実施の形態の論理検証システムにおいて、テスト・検証の作業時間短縮などを実現できる。特に、蓄積テスト条件（テストケース）による論理修正後のテスト再実行の場合にカバレッジが１００％にならない場合でも、カバレッジが向上する可能性の高いテストケースを追加テスト条件（１１０）として優先的に自動生成して追加・蓄積することにより、論理修正後に最適化したテストケースの更新を素早く作成することができる。
【００５０】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【産業上の利用可能性】
【００５１】
本発明は、回路シミュレーションが必要な、電子回路・半導体などの開発・設計に用いる情報処理システムやソフトウェア等に利用可能である。
【符号の説明】
【００５２】
１０１…乱数テストデータ生成部、１０２…テスト条件定義リスト、１０３…論理シミュレータ、１０４…カバレッジ出力、１０５…カバレッジ判定部、１０６…テスト条件蓄積情報、１０７…カバレッジ蓄積情報、１０８…追加テスト条件生成判定部、１０９…テスト条件生成判定情報、１１０…追加テスト条件定義リスト。
【図１】
0005876344.tif 000002
【図２】
0005876344.tif 000003
【図３】
0005876344.tif 000004
【図４】
0005876344.tif 000005
【図５】
0005876344.tif 000006
【図６】
0005876344.tif 000007
【図７】
0005876344.tif 000008