JP2011048785A - 多重イベント定義装置、多重イベント検証装置、多重イベント定義方法および多重イベント定義プログラム - Google Patents

多重イベント定義装置、多重イベント検証装置、多重イベント定義方法および多重イベント定義プログラム Download PDF

Info

Publication number
JP2011048785A
JP2011048785A JP2009198835A JP2009198835A JP2011048785A JP 2011048785 A JP2011048785 A JP 2011048785A JP 2009198835 A JP2009198835 A JP 2009198835A JP 2009198835 A JP2009198835 A JP 2009198835A JP 2011048785 A JP2011048785 A JP 2011048785A
Authority
JP
Japan
Prior art keywords
event
information
combination
double
definition
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.)
Pending
Application number
JP2009198835A
Other languages
English (en)
Inventor
Kanako Yamamoto
佳奈子 山本
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2009198835A priority Critical patent/JP2011048785A/ja
Publication of JP2011048785A publication Critical patent/JP2011048785A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】漏れなく必要十分なテスト項目を定義できるようにする。
【解決手段】多重イベント定義装置100は検証対象に同時に発生する複数の単一イベントを組み合わせた多重イベントをテスト項目として定義する。2重イベント定義部110は単一イベント情報191に定義された複数の単一イベントを組み合わせて複数の2重イベント候補を定義し、同時に発生しない排他イベントとして排他情報192bに定義された2重イベントと同じ候補を除いて2重イベントを定義する。N重イベント定義部120は(N−1)重イベントを組み合わせてN重イベント候補を定義し、排他イベントを含むN重イベント候補を除いてN重イベントを定義する。多重イベント定義部130は単一イベント、2重イベントおよびN重イベントを定義した多重イベント定義情報195を生成する。多重イベント定義情報195に定義された各イベントは検証対象のテスト項目となる。
【選択図】図1

Description

本発明は、例えば、イベントのテストパタンを生成するための多重イベント定義装置、多重イベント検証装置、多重イベント定義方法および多重イベント定義プログラムに関するものである。
従来のディジタル回路のランダム検証システムは、制約パラメータ、ランダムパタンジェネレータ、テストパタン、検証プラットフォーム、実行ログで構成されている。検証担当者は、主観で制御パラメータを作成する。ランダムパタンジェネレータは、その制約パラメータによりテストパタンを自動生成する。検証プラットフォームは、そのテストパタンを実施し論理検証を行う。実行ログは、論理検証結果を出力する。検証担当者は、実行ログで示されたテストの合否結果をもとに、次に実施するテストパタンを生成するための制御パラメータを作成する。
しかし、テストパタンが膨大なため、狙い通りのテストが全て実施されたか否かを確認することは困難である。
そこで、先行技術文献は、狙い通りのテストが実施されたか否かを確認する技術を提案している(特許文献1)。
この先行技術は、ディジタル回路の入力パラメータを予め定義されたクラスに分類し、分類に応じたランダム入力値を設定し、シミュレーションの実行および出力パラメータの確認を行う。また、分類に応じたカバレッジポイントを設定し、シミュレーションの実行、カバレッジの集計およびカバレッジ結果の確認を行う。カバレッジとは、検証の網羅率を表す指標である。カバレッジには、コードカバレッジと機能カバレッジの2種類のカバレッジがある。コードカバレッジは、コードに対してテストパタンがどこまでカバーしたかを表す指標である。機能カバレッジは、仕様に対してテストパタンがどこまでカバーしたかを表す指標である。
特開2008−97348号公報 特開2001−188810号公報
従来のディジタル回路のランダム検証は、制御パラメータをテストパタンの自動生成ツール(ランダムパタンジェネレータ)に入力することによって多量にテストパタンを自動生成し、競合試験を行うことができた。
しかし、膨大な量のテストパタンが生成されるため、検証担当者が全てのテストパタンに対して狙い通りの競合テストが実施されているか確認することは困難である。
そのため、テストの実施が不十分である場合や、不要なテストをむやみに実施してしまう場合など、カバレッジに偏りが生じてしまうという課題がある。
カバレッジに偏りが生じないようにするには、必要十分なテスト項目を定義する必要がある。
本発明は、例えば、漏れなく必要十分なテスト項目を定義できるようにすることを目的とする。
本発明の多重イベント定義装置は、
所定の状況がイベントとして発生する検証対象に発生する複数のイベントそれぞれが単一イベントとして定義された単一イベント情報と、同時に発生しない複数の単一イベントを組み合わせたイベント組み合わせが排他イベント組み合わせとして定義された排他イベント情報とを記憶するイベント情報記憶部と、
前記単一イベント情報に定義された複数の単一イベントを組み合わせて複数のイベント組み合わせそれぞれを、同時に発生する複数の単一イベントを組み合わせた多重イベント組み合わせの候補としてCPU(Central Processing Unit)を用いて定義する多重イベント候補定義部と、
前記多重イベント候補定義部により定義された複数の多重イベント組み合わせの候補のうち前記排他イベント情報に定義された排他イベント組み合わせを含まない多重イベント組み合わせの候補を多重イベント組み合わせとしてCPUを用いて特定する多重イベント特定部と、
前記多重イベント特定部により特定された多重イベント組み合わせを含む情報を多重イベント情報としてCPUを用いて生成する多重イベント情報生成部とを備える。
本発明によれば、多重イベントを漏れなく必要十分に定義することができる。そして、定義した多重イベントに基づいて漏れなく必要十分なテスト項目を定義することができる。
実施の形態1における多重イベント定義装置100の機能構成図。 実施の形態における多重イベント定義装置100、多重イベント検証装置200のハードウェア資源の一例を示す図。 実施の形態1における多重イベント定義情報生成方法を示すフローチャート。 実施の形態1における検証対象の仕様書199の一例。 実施の形態1における関連情報192aおよび排他情報192bの一例。 実施の形態1における2重イベント定義処理(S140)のフローチャート。 実施の形態1における2重イベント候補群193sおよび2重イベント情報193の一例。 実施の形態1におけるN重イベント定義処理(S150)のフローチャート。 実施の形態1におけるN重イベント候補群194sおよびN重イベント情報194の一例。 実施の形態1における多重イベント定義情報195の一例。 実施の形態2における仕様書199および単一イベント情報191の例。 実施の形態2における組み合わせ分類情報192の例。 実施の形態2における2重イベント候補群193s、2重イベント情報193、N重イベント候補群194sおよびN重イベント情報194の例。 実施の形態2における多重イベント定義情報195の例。 実施の形態3における多重イベント検証装置200の機能構成図。 実施の形態3における多重イベント検証方法を示すフローチャート。 実施の形態3における多重イベント発生情報294の一例。 実施の形態3におけるテスト実施結果情報295の一例。
実施の形態1.
所定の状況がイベントとして発生する検証対象(例えば、特定のディジタル回路、データ処理装置、計算機)について、同時に発生するイベントの組み合わせである多重イベントを定義する形態について説明する。
イベントには、例えば以下のようなものがある。
(1)検証対象の内部の状態を変化させるトリガの役割をもった事象
(2)検証対象の内部の状態変化(変化が起こる瞬間)
(3)検証対象の内部の定常状態(変化が起こらない状態)
多重イベントは、多数のイベントが同時に発生することを意味する。
図1は、実施の形態1における多重イベント定義装置100の機能構成図である。
実施の形態1における多重イベント定義装置100の機能構成について、図1に基づいて以下に説明する。
多重イベント定義装置100は、多重イベント定義情報生成部101およびイベント情報記憶部(図示省略)を備える。
多重イベント定義情報生成部101は、2重イベント定義部110(多重イベント候補定義部、多重イベント特定部の一例)、N重イベント定義部120(多重イベント候補定義部、多重イベント特定部の一例)および多重イベント定義部130(多重イベント情報生成部の一例)を備える。
イベント情報記憶部(図示省略)は、多重イベント定義装置100で使用されるデータを記憶する。
単一イベント情報191、組み合わせ分類情報192、2重イベント情報193、N重イベント情報194および多重イベント定義情報195はイベント情報記憶部に記憶されるデータの一例である。
単一イベント情報191は、検証対象に発生するイベント(以下、「単一イベント」という)が定義された情報である。
組み合わせ分類情報192は、関連情報192a(関連イベント情報の一例)および排他情報192b(排他イベント情報の一例)を含む。
関連情報192aは、同時に発生する二つの単一イベントの組み合わせが定義された情報である。以下、関連情報192aに定義された単一イベントの組み合わせを「関連イベント(関連イベント組み合わせ)」という。
排他情報192bは、同時に発生しない二つの単一イベントの組み合わせが定義された情報である。以下、排他情報192bに定義された単一イベントの組み合わせを「排他イベント(排他イベント組み合わせ)」という。
2重イベント情報193は、同時に発生する可能性がある二つの単一イベントの組み合わせが定義された情報である。以下、2重イベント情報193に定義された単一イベントの組み合わせを「2重イベント(二重イベント組み合わせ)」という。
N重イベント情報194は、同時に発生する可能性があるN個の単一イベントの組み合わせが定義された情報である。以下、N重イベント情報194に定義された単一イベントの組み合わせを「N重イベント(N重イベント組み合わせ)」という。
多重イベント定義情報195は、単一イベント、2重イベントおよびN重イベントが定義された情報である。
多重イベント定義情報195は、検証対象を漏れなく必要十分にテストするために利用される。
単一イベント情報191および組み合わせ分類情報192は検証担当者(利用者)により予め定義され記憶される。例えば、検証担当者は検証対象の仕様書などを参照して単一イベント情報191および組み合わせ分類情報192を定義する。
2重イベント情報193、N重イベント情報194および195は単一イベント情報191および組み合わせ分類情報192に基づいて多重イベント定義情報生成部101により生成される。
2重イベント定義部110は、二つの単一イベントを組み合わせて複数の2重イベント候補を定義し、複数の2重イベント候補のうち排他情報192bに定義された排他イベントと異なる2重イベント候補を特定し、特定した2重イベント候補を2重イベントとして定義した2重イベント情報193を生成する。
例えば、2重イベント定義部110は、以下のように2重イベントを特定する。
2重イベント定義部110は、複数の2重イベント候補のうち関連情報192aに定義された関連イベントと同じ2重イベント候補を2重イベントとして特定する。
2重イベント定義部110は、関連イベントと排他イベントとのいずれとも異なる2重イベント候補を出力装置に出力し、当該2重イベント候補を2重イベントとするか否かを判断した検証担当者の判断結果を入力装置から入力し、入力した検証担当者の判断結果に基づいて当該2重イベント候補を2重イベントとするか否かを判定する。
N重イベント定義部120は、単一イベント情報191に定義された複数の単一イベントを組み合わせて複数のイベント組み合わせそれぞれを、同時に発生する複数の単一イベントを組み合わせた多重イベント(多重イベント組み合わせ)の候補として定義する。
例えば、N重イベント定義部120は、(N−1)つの単一イベントが互いに共通する二つのN重イベントを組み合わせて(N+1)つの単一イベントを組み合わせた(N+1)重イベントの候補を定義する。「N」を「3」以上の整数とする。
N重イベント定義部120は、定義した複数の多重イベントの候補のうち排他情報192bに定義された排他イベントを含まない組み合わせである多重イベントの候補を多重イベントとして特定する。
例えば、N重イベント定義部120は、複数の(N+1)重イベントの候補のうち排他イベントを含まない(N+1)重イベントの候補を(N+1)重イベントとして特定する。
N重イベント定義部120は、(N+1)重イベントが有る場合、(N+2)重イベントの候補を定義し、(N+1)重イベントが無い場合、多重イベントの候補の定義を終了する。
多重イベント定義部130は、N重イベント定義部120により特定されたN重イベントを含む情報を多重イベント定義情報195(多重イベント情報)として生成する。
例えば、多重イベント定義部130は単一イベントと2重イベントとN重イベント(N≧3)とを含めて多重イベント定義情報195を生成する。
図2は、実施の形態における多重イベント定義装置100および多重イベント検証装置200のハードウェア資源の一例を示す図である。
図2において、多重イベント定義装置100および実施の形態3で説明する多重イベント検証装置200は、CPU911(Central・Processing・Unit)(マイクロプロセッサ、マイクロコンピュータともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、通信ボード915、表示装置901、キーボード902、マウス903、ドライブ装置904、プリンタ装置906、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。ドライブ装置904は、FD(Flexible・Disk・Drive)、CD(Compact Disc)、DVD(Digital・Versatile・Disc)などの記憶媒体を読み書きする装置である。
通信ボード915は、有線または無線で、LAN(Local Area Network)、インターネット、電話回線などの通信網に接続している。
磁気ディスク装置920には、OS921(オペレーティングシステム)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923には、実施の形態において「〜部」として説明する機能を実行するプログラムが含まれる。プログラムは、CPU911により読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
ファイル群924には、実施の形態において説明する「〜部」で使用される各種データ(入力、出力、判定結果、計算結果、処理結果など)が含まれる。
実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
実施の形態において「〜部」として説明するものは「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
図3は、実施の形態1における多重イベント定義情報生成方法を示すフローチャートである。
実施の形態1における多重イベント定義情報生成方法について、図3に基づいて以下に説明する。
多重イベント定義装置100の各「〜部」は以下に説明する処理(S140〜S160)をCPUを用いて実行する。
まず、多重イベント定義情報生成方法の概要について説明する。
検証担当者は単一イベントを定義し(S110)、多重イベントの最大多重度nを決定し(S120)、組み合わせ分類情報192を生成する(S130)。
2重イベント定義部110は単一イベントと組み合わせ分類情報192とに基づいて2重イベントを定義する(S140)。
N重イベント定義部120は2重イベントと組み合わせ分類情報192とに基づいてN重イベント(N≧3)を定義する(S150)。
多重イベント定義部130は単一イベント、2重イベントおよびN重イベントを含む多重イベント定義情報195を生成する(S160)。
次に、各処理(S110〜S160)の詳細について説明する。
<S110>
検証担当者は、検証対象に発生するイベントに関する検証対象情報(例えば、仕様書199)に基づいて単一イベント情報191を生成する。以下、仕様書199を検証対象情報として説明を行う。
図4は、実施の形態1における検証対象の仕様書199の一例である。
例えば、検証担当者は図4に示す仕様書199を参照し、仕様書199に記載されている5つの単一イベント「データ入力リクエスト」「データ出力リクエスト」「既にフル状態」「フル状態に移行」「フルではない状態に移行」を抽出する。「既にフル状態」「フル状態に移行」「フルではない状態に移行」はキュー(データの待ち行列)の状態を表したイベントであり、検証対象の内部状態(定常状態、状態変化)の一例である。
検証担当者は、抽出した5つの単一イベントを設定(定義)して単一イベント情報191を生成し、生成した単一イベント情報191を多重イベント定義装置100に記憶する。
検証担当者の代わりに多重イベント定義装置100が単一イベント情報191を生成しても構わない。
例えば、多重イベント定義装置100は次のような単一イベント情報生成部を備える。単一イベント情報生成部は「イベント」「リクエスト」「状態」「移行」などイベントに関連する用語を検索キーとして仕様書199の電子データを検索し、検索キーを含んだ単語や句を単一イベントとして抽出する。単一イベント情報生成部は、抽出した単一イベントを設定して単一イベント情報191を生成する。単一イベント情報生成部は検索結果を表示装置(出力装置の一例)に表示して検証担当者に単一イベントの指定を促し、検証担当者に指定された単一イベントをキーボードやマウス(入力装置の一例)から入力し、入力した単一イベントを設定して単一イベント情報191を生成してもよい。
図3に戻り、多重イベント定義情報生成方法の説明を続ける。
S110の後、処理はS120に進む。
<S120>
検証担当者は、仕様書199やS110で生成した単一イベント情報191に基づいて多重イベントの多重度の最大値「n」を決定し、決定した多重度の最大値「n」を多重イベント定義装置100に設定する。これにより、一つの多重イベントに含まれる単一イベントの数は「n」以下に制限される。
以下、多重イベントの多重度の最大値「n」を「多重イベントの最大多重度n」という。
例えば、検証対象者は単一イベント情報191に定義した単一イベントの個数を多重イベントの最大多重度nとする。図4に示すように単一イベント情報191に単一イベントが「5つ」定義されている場合、多重イベントの最大多重度nは「5」となる。
検証担当者の代わりに多重イベント定義装置100が単一イベント情報191を決定しても構わない。
例えば、多重イベント定義装置100は次のようなイベント多重度決定部を備える。イベント多重度決定部は単一イベント情報191に定義された単一イベントの数を最大多重度nに決定する。
S120の後、処理はS130に進む。
<S130>
検証担当者は、仕様書199に基づいて関連イベントおよび排他イベントを特定し、特定した関連イベントを設定して関連情報192aを生成し、特定した排他イベントを設定して排他情報192bを生成し、生成した関連情報192aおよび排他情報192bを組み合わせ分類情報192として多重イベント定義装置100に記憶する。
図5は、実施の形態1における関連情報192aおよび排他情報192bの一例である。
例えば、検証担当者は、仕様書199の「・・・キューに対して同時にデータ入力リクエスト、データ出力リクエストが発行された場合も2つの動作は実施する」(図4参照)という記載に基づいて、関連情報192aに関連イベント「データ入力リクエスト & データ出力リクエスト」(図5参照)を定義する。「&」は論理積(AND)を示している。
関連イベントおよび排他イベントは、図5の排他情報192bに記す「データ入力リクエスト & 既にフル状態(データ入力リクエスト、データ出力リクエスト、既にフル状態が同時に発生した場合を除く)」(カッコ内は条件を示す)のように、条件付きであってもよい。
検証担当者の代わりに多重イベント定義装置100が関連情報192aおよび排他情報192bを生成しても構わない。
例えば、多重イベント定義装置100は次のようなイベント組み合わせ情報生成部を備える。イベント組み合わせ情報生成部は仕様書199に記載された文章を文法(構文、字句、意味)解析し、関連イベントおよび排他イベントを抽出する。イベント組み合わせ情報生成部は抽出した関連イベントを設定して関連情報192aを生成し、抽出した排他イベントを設定して排他情報192bを生成する。
図3に戻り、多重イベント定義情報生成方法の説明を続ける。
S130の後、処理はS140に進む。
<S140>
2重イベント定義部110は、単一イベント情報191と組み合わせ分類情報192とに基づいて2重イベント情報193を生成する。
図6は、実施の形態1における2重イベント定義処理(S140)のフローチャートである。
実施の形態1における2重イベント定義処理(S140)について、図6に基づいて以下に説明する。
<S141>
2重イベント定義部110は、単一イベント情報191に定義されている複数の単一イベントを2つずつ組み合わせ、各組み合わせを2重イベント候補として定義する。以下、各2重イベント候補が定義された情報を「2重イベント候補群193s」という。2重イベント候補群193sは2重イベント候補を網羅したものである。
図7は、実施の形態1における2重イベント候補群193sおよび2重イベント情報193の一例である。
例えば、2重イベント定義部110は、図4に示す単一イベント情報191に基づいて図7に示す2重イベント候補群193sを定義する。2重イベント候補群193sには、単一イベント情報191に定義されている5つの単一イベントを2つずつ重複せずに組み合わせて「10通り(=)」の組み合わせが含まれる。
図6に戻り、2重イベント定義処理(S140)の説明を続ける。
S141の後、処理はS142に進む。
<S142>
2重イベント定義部110は、2重イベント候補群193sに定義された複数の2重イベント候補のうち、以下に説明するS143〜S146により2重イベントとして定義するか判定されていない2重イベント候補を一つ選択する。
以下、2重イベント定義処理(S140)において、S142で選択された2重イベント候補を「選択候補」という。
S142の後、処理はS143に進む。
<S143>
2重イベント定義部110は、選択候補が関連情報192aに定義されているいずれかの関連イベントと同じであるか否かを判定する。
図5の関連情報192aに基づく判定結果を図7に示す。判定結果としてマル印「○」を付された2重イベント候補が、関連イベントと同じであると判定される候補である。判定結果としてバツ印「×」を付された2重イベント候補または判定結果としていずれの印も付されていない2重イベント候補が、関連イベントと同じでないと判定される候補である。
例えば、2重イベント候補群193s(図7)に定義されている1番目の候補「データ入力リクエスト & データ出力リクエスト」は関連情報192a(図5)に定義されている1番目の関連イベントと同じであるから判定結果が「○」になる。また、2重イベント候補群193sに定義されている4番目の候補「データ入力リクエスト & フルではない状態に移行」は関連情報192aに定義されているいずれの関連イベントとも異なるから判定結果が無印になる。
図6に戻り、2重イベント定義処理(S140)の説明を続ける。
選択候補が関連イベントと同じである場合(YES)、処理はS144に進む。
選択候補が関連イベントと同じでない場合(NO)、処理はS145に進む。
<S144>
2重イベント定義部110は、選択候補を2重イベントとして2重イベント情報193に定義(設定)する。
特定の2重イベント候補を2重イベントとして定義した2重イベント情報193を図7に示す。
2重イベント候補群193sに含まれる10個の2重イベント候補のうち、関連イベントと同じ3個の候補(判定結果:「○」)(S143参照)と、排他イベントと異なる候補(判定結果:無印)(S145参照)であって2重イベントとして定義する必要があると判定された3個の候補(S146参照)との計6個の候補が2重イベントとして2重イベント情報193に定義されている。
S144の後、処理はS147に進む。
<S145>
2重イベント定義部110は、選択候補が排他情報192bに定義されているいずれかの排他イベントと同じであるか否かを判定する。
図5の排他情報192bに基づく判定結果を図7に示す。判定結果としてバツ印「×」が付された2重イベント候補が、排他イベントと同じであると判定される候補である。判定結果としてマル印「○」もバツ印「×」も付されていない2重イベント候補が、排他イベントと同じでないと判定される候補である。
例えば、2重イベント候補群193s(図7)に定義されている2番目の2重イベント候補「データ入力リクエスト & 既にフル状態」は排他情報192b(図5)に定義されている1番目の排他イベントと同じであるから判定結果が「×」になる。また、2重イベント候補群193sに定義されている4番目の2重イベント候補「データ入力リクエスト & フルではない状態に移行」は排他情報192bに定義されているいずれの排他イベントとも異なるから判定結果が無印になる。
図6に戻り、2重イベント定義処理(S140)の説明を続ける。
選択候補が排他イベントと同じである場合(YES)、処理はS147に進む。
選択候補が排他イベントと同じでない場合(NO)、処理はS146に進む。
<S146>
2重イベント定義部110は、選択候補を表示装置(出力装置の一例)に表示し、検証担当者に選択候補を2重イベントとして定義する必要があるか否かの判断を促す。
2重イベント定義部110は、検証担当者の判断結果をキーボードやマウス(入力装置の一例)から入力する。2重イベント定義部110は、検証担当者の判断結果に応じて、選択候補を2重イベントとして定義するか否かを判定する。
例えば、検証担当者は、判断を促された全ての選択候補に対して、2重イベントとして定義する必要があると判断する。
検証担当者の代わりに多重イベント定義装置100が判定してもよい。
例えば、2重イベント定義部110は、当該選択候補の全てに対して、2重イベントとして定義する必要があると判定する。
選択候補を2重イベントとして定義する必要がある場合(「定義要」)、処理はS144に進む。
選択候補を2重イベントとして定義する必要がない場合(「定義不要」)、処理はS147に進む。
<S147>
2重イベント定義部110は、2重イベントとして定義するか判定されていない2重イベント候補が2重イベント候補群193sに残っているか否かを判定する。
当該2重イベント候補が残っている場合(YES)、処理はS142に戻る。
当該2重イベント候補が残っていない場合(NO)、2重イベント定義処理(S140)は終了する。
図3に戻り、多重イベント定義情報生成方法の説明を続ける。
S140の後、処理はS150に進む。
<S150>
N重イベント定義部120は、2重イベント情報193と組み合わせ分類情報192とに基づいてN重イベント情報194を生成する。
図8は、実施の形態1におけるN重イベント定義処理(S150)のフローチャートである。
実施の形態1におけるN重イベント定義処理(S150)について、図8に基づいて以下に説明する。
<S151>
N重イベント定義部120は、N重イベントの「N(変数)」として初期値「3」を設定する。
S151の後、処理はS152に進む。
<S152>
N重イベント定義部120は、(N−1)重イベントを組み合わせてN重イベント候補群194sを定義する。
このとき、N重イベント定義部120は、(N−1)重イベント情報に含まれる複数の(N−1)重イベントのうち(N−2)個の単一イベントが共通する2つの(N−1)重イベントを組み合わせて、その組み合わせをN重イベント候補として定義する。以下、N重イベント候補が定義された情報を「N重イベント候補群194s」という。N重イベント候補群194sはN個の単一イベントを組み合わせたN重イベント候補を網羅したものである。
図9は、実施の形態1におけるN重イベント候補群194sおよびN重イベント情報194の一例である。
「N=3」の場合、図7に示す2重イベント情報193に基づいて図9に示すN重イベント候補群194s(N=3)が定義される。
例えば、図7に示す2重イベント情報193において、1番目の2重イベント「データ入力リクエスト & データ出力リクエスト」と2番目の2重イベント「データ入力リクエスト & フル状態に移行」とは一つの単一イベント「データ入力リクエスト」が共通する。したがって、1番目の2重イベントと2番目の2重イベントとを組み合わせて3重イベント「データ入力リクエスト & データ出力リクエスト & フル状態に移行」がN重イベント候補群194s(N=3)に定義される(図9参照)。
また、「N=4」の場合、図9に示すN重イベント情報194(N=3)に基づいて図9に示すN重イベント候補群194s(N=4)が定義される。
例えば、図9に示すN重イベント情報194(N=3)において、1番目の3重イベント「データ入力リクエスト & データ出力リクエスト & フル状態に移行」と2番目の3重イベント「データ入力リクエスト & データ出力リクエスト & フルではない状態に移行」とは二つの単一イベント「データ入力リクエスト」「データ出力リクエスト」が共通する。したがって、1番目の3重イベントと2番目の3重イベントとを組み合わせて4重イベント「データ入力リクエスト & データ出力リクエスト & フル状態に移行 & フルではない状態に移行」がN重イベント候補群194s(N=4)に定義される(図9参照)。
図8に戻り、N重イベント定義処理(S150)の説明を続ける。
S152の後、処理はS153に進む。
<S153>
N重イベント定義部120は、N重イベント候補群194sに定義された複数のN重イベント候補のうち、以下に説明するS154〜S155によりN重イベントとして定義するか判定されていないN重イベント候補を一つ選択する。
以下、N重イベント定義処理(S150)において、S153で選択されたN重イベント候補を「選択候補」という。
S153の後、処理はS154に進む。
<S154>
N重イベント定義部120は、排他情報192bに定義されている少なくともいずれかの排他イベントが選択候補に含まれているか否かを判定する。
図5の排他情報192bに基づく判定結果を図9に示す。判定結果としてバツ印「×」が付されたN重イベント候補が、排他イベントを含んだ候補である。判定結果としてバツ印「×」が付されていないN重イベント候補が、排他イベントを含まない候補である。
例えば、図9に示すN重イベント候補群194s(N=3)の3番目の3重イベント候補「データ入力リクエスト & フル状態に移行 & フルではない状態に移行」には、図5に示す排他情報192bの4番目の排他イベント「フル状態 & フルではない状態に移行」が含まれている。したがって、この3重イベント候補の判定結果は「×」である。
また、図9に示すN重イベント候補群194s(N=4)の3つの4重イベント候補はいずれも、図5に示す排他情報192bの少なくともいずれかの排他イベントを含んでいる。このため、3つの4重イベント候補の判定結果はいずれも「×」である。
図8に戻り、N重イベント定義処理(S150)の説明を続ける。
S154において、選択候補に排他イベントが含まれている場合(YES)、処理はS156に進む。
選択候補に排他イベントが含まれていない場合(NO)、処理はS155に進む。
<S155>
N重イベント定義部120は、選択候補をN重イベントとしてN重イベント情報194に定義する。
特定の3重イベント候補を3重イベントとして定義したN重イベント情報194を図9に示す。
N重イベント候補群194s(N=3)に含まれる7つの3重イベント候補のうち、排他イベントを含まない3つの候補(判定結果:無印)がN重イベント情報194(N=3)に3重イベントとして定義されている。
また、N重イベント候補群194s(N=4)に含まれる3つの4重イベント候補はいずれも排他イベントを含むため(判定結果:「×」)、N重イベント情報194(N=4)に定義される4重イベントは無い。
図8に戻り、N重イベント定義処理(S150)の説明を続ける。
S155の後、処理はS156に進む。
<S156>
N重イベント定義部120は、N重イベントとして定義するか判定されていないN重イベント候補がN重イベント候補群194sに残っているか否かを判定する。
当該N重イベント候補が残っている場合(YES)、処理はS153に戻る。
当該N重イベント候補が残っていない場合(NO)、処理はS157に進む。
<S157>
N重イベント定義部120は、変数Nに「1」を加算(インクリメント)する。
S157の後、処理はS158に進む。
<S158>
N重イベント定義部120は、(N−1)重イベント情報に(N−1)重イベントが少なくとも一つ定義されているか否かを判定する。
(N−1)重イベントが定義されている場合(YES)、処理はS159に進む。
(N−1)重イベントが定義されていない場合(NO)、N重イベント定義処理(S150)は終了する。
図9において、「N=4」の場合、3つの3重イベントがN重イベント情報194(N=3)に定義されているため、処理はS159に進む。
「N=5」の場合、4重イベントがN重イベント情報194(N=4)には一つも定義されていないため、N重イベント定義処理(S150)は終了する。
<S159>
N重イベント定義部120は、変数NとS120(図3参照)において定義された最大多重度nとを大小比較する。
「N≦n」の場合(YES)、処理はS152に戻る。
「N>n」の場合(NO)、N重イベント定義処理(S150)は終了する。
図3に戻り、多重イベント定義情報生成方法の説明を続ける。
S150の後、処理はS160に進む。
<S160>
多重イベント定義部130は、単一イベント情報191に定義されている単一イベント、2重イベント情報193に定義されている2重イベントおよびN重イベント情報194(N≧3)に定義されているN重イベントを多重イベントとして設定して多重イベント定義情報195を生成する。
図10は、実施の形態1における多重イベント定義情報195の一例である。
図4に示す単一イベント情報191と図5に示す組み合わせ分類情報192とに基づいて生成された多重イベント定義情報195を図10に示す。
多重イベント定義情報195には、単一イベント情報191の5個の単一イベント(図4参照)、2重イベント情報193の6個の2重イベント(図7参照)およびN重イベント情報194(N=3)の3個の3重イベント(図9参照)が多重イベントとして多重イベント定義情報195に定義されている。
多重イベント定義情報195は、検証対象に発生する単一イベントおよび検証対象に同時に発生する可能性があるN重イベント(N≧2)を多重イベントとして網羅したものである。多重イベント定義情報195に定義された全ての多重イベントについてテスト項目を生成することにより、検証対象のイベントに関するテスト項目を網羅することができる。
図3に戻り、多重イベント定義情報生成方法の説明を続ける。
S160により、多重イベント定義情報生成方法は終了する。
実施の形態1では、例えば以下のような多重イベント定義装置について説明した。
ディジタル回路のランダム検証時の全ての多重イベントテスト項目を定義した多重イベント定義情報を生成する多重イベント定義情報生成手段を備える。
テストが必要な全ての2重イベントを漏れなく生成する2重イベント定義手段を備える。
テストが必要な全ての3重以上のイベントを漏れなく定義するN重イベント定義手段を備える。
テストの要・不要を分類する指標となる組み合わせ分類情報を備える。
組み合わせ分類情報は関連する複数のイベント同士を関連付ける関連情報を含む。
組み合わせ分類情報はテスト不要な複数のイベントの組合せを定義する排他情報を含む。
多重イベント定義装置は、例えば以下のような効果を奏する。
2重イベント定義手段が2重イベント候補を網羅的に作成した上で、2重イベント定義手段と検証担当者がテスト要・不要な2重イベント候補を判断するため、テストが必要な2重イベントの漏れを防ぐ。
予め関連情報と排他情報とを定義しているため、2重イベント定義手段が、明確に要・不要である2重イベント候補を分類する。検証担当者は、要・不要と分類されなかった2重イベント候補のみを分類するだけなので、2重イベントを定義する時間が短縮できる。
基礎となる2重イベントをしっかりと定義し、排他情報を導入しているため、3重以上の多重イベントも必要十分なものだけ定義できる。排他情報により、テストが不必要な多重イベントは自動で削除されるため、不要なテストの実施を防ぐことができる。また、(N−1)重イベントをもとに、インクリメンタルにN重イベントを定義するため、検証担当者では見落としてしまうN重イベントも定義できる。
実施の形態2.
多重イベント定義装置100が実施の形態1で説明した例とは異なる検証対象について多重イベント定義情報を生成する形態について説明する。多重イベント定義装置100は実施の形態1と同じである。
検証対象は、以下のような項目を有する。
・1つのモジュール内の1つのリソースや複数イベント
・1つのモジュール内の複数のリソースやイベント
・複数のモジュール、または複数モジュールをまたがった複数のイベントやリソース
上記の「1つのモジュール内の1つのリソースや複数イベント」を対象とした場合は、多重イベントが容易に定義できる。しかし、「1つのモジュール内の複数のリソースやイベント」や「複数のモジュール、または複数モジュールをまたがった複数のイベントやリソース」を対象とした場合、テストが必要な全ての多重イベントを定義することは困難である。
実施の形態2では、「複数のモジュール、または複数モジュールをまたがった複数のイベントやリソース」に対して多重イベントを定義する例を示す。
図11は、実施の形態2における仕様書199および単一イベント情報191の例である。
図12は、実施の形態2における組み合わせ分類情報192の例である。
図13は、実施の形態2における2重イベント候補群193s、2重イベント情報193、N重イベント候補群194sおよびN重イベント情報194の例である。
図14は、実施の形態2における多重イベント定義情報195の例である。
図11〜図14に基づいて以下に説明する。
以下に記す「S110」〜「S160」は実施の形態1説明した多重イベント定義情報生成方法の処理ステップである(図3参照)。
ステップS110では、検証担当者が、仕様書から単一イベントを抽出し定義する。
図11に、仕様書の具体例のイメージ図として仕様書199を示す。また、単一イベントの具体例のイメージ図として単一イベント情報191を示す。
ステップS120では、検証担当者が、単一イベントの個数より、多重イベントの最大多重度(n)を決定する。n個の単一イベントが定義された場合は、最大n重イベントが定義可能となる。
図11には単一イベントが6個挙げられているため、最大多重度は「n=6」となる。
ステップS130では、検証担当者が、仕様書と単一イベントとをもとに、単一イベント同士の関連性を示した関連情報を定義する。また、検証担当者が、仕様書と単一イベントとをもとに、絶対に同時に発生しない単一イベントの組み合わせを示した排他情報を定義する。検証担当者は、関連情報と排他情報とをまとめて組み合わせ分類情報を定義する。
図12に、関連情報の具体例として関連情報192aのイメージ図を示す。同様に図12に、排他情報の具体例として排他情報192bのイメージ図を示す。
ステップS140では、2重イベント定義部110が、単一イベントと仕様書と組み合わせ分類情報との入力により、2重イベントを定義する。2重イベント定義部110の詳細な説明は後述する。
図13に、2重イベント候補の具体例として2重イベント候補群193sのイメージ図を示す。同様に図13に、2重イベントの具体例として2重イベント情報193のイメージ図を示す。
ステップS150では、N重イベント定義部120が、2重イベントと組み合わせ分類情報との入力により、N重イベントを定義する。N重イベント定義部120の詳細な説明は後述する。
図13に、多重イベント候補の具体例を示す。3重イベント候補の具体例のイメージ図として3重イベント候補群194sと、3重イベントの具体例のイメージ図として3重イベント情報194Iを示す。同様に図13に、4重イベント候補の具体例のイメージ図として4重イベント候補群194sと、4重イベントの具体例のイメージ図として4重イベント情報194Iを示す。同様に図13に、5重イベント候補の具体例として5重イベント候補群194sと、5重イベントの具体例としてN重イベント情報5重イベント情報194Iを示す。同様に図13に、6重イベント候補の具体例のイメージ図として6重イベント候補群194sと、6重イベントの具体例のイメージ図として6重イベント情報194Iを示す。
ステップ160では、多重イベント定義部130が、単一イベント、2重イベント、N重イベントを組み合わせて多重イベント定義情報を作成する。
図14に、多重イベント定義情報の具体例のイメージ図として多重イベント定義情報195を示す。
次に、2重イベント定義部110の詳細について図6(S141〜S147)に基づいて説明する。
ステップS141では、2重イベント定義部110が、単一イベントをもとに網羅的に2重イベント候補を作成する。
図13に、2重イベント候補の具体例のイメージ図として2重イベント候補群193sを示す。
ステップS142では、2重イベント定義部110が、2重イベント候補を一つ選択する。
ステップS143では、2重イベント定義部110が、2重イベント候補が関連情報で定義されている組み合わせであるかを判断する。2重イベント候補が定義された組み合わせだった場合は、ステップS144に移る。2重イベント候補が定義されていない組み合わせだった場合は、ステップS145に移る。
図13に、2重イベント候補の具体例のイメージ図として2重イベント候補群193sを示す。2重イベント候補群193sで「○」印がついている項目が、関連情報で定義されている2重イベント候補である。
ステップS145では、2重イベント定義部110が、2重イベント候補が排他情報で定義されている組み合わせであるかを判断する。2重イベント候補が定義された組み合わせだった場合は、ステップS147に移る。2重イベント候補が定義されていない組み合わせだった場合は、ステップS146に移る。
図13において、2重イベント候補の具体例を示した2重イベント候補群193sで「×」印がついている項目が、排他情報で定義されている2重イベント候補である。
ステップS146では、検証担当者が、その2重イベント候補に対してテストの要・不要を判断する。2重イベントが、テストが必要な組み合わせだった場合は、S144に移る。2重イベントが、テストが不要な組み合わせだった場合は、S147に移る。
図13において、2重イベント候補の具体例を示した2重イベント候補群193sで、「○」印と「×」印がついていない項目が、検証担当者がテストの要・不要を判断する必要がある2重イベント候補である。
ステップS144では、2重イベント定義部110が、ステップS143及びステップS146でテストが必要であると判断された2重イベント候補を2重イベントとして定義する。
図13に、2重イベントの具体例のイメージ図として2重イベント情報193を示す。
ステップS147では、2重イベント定義部110が、未分類の2重イベント候補があるかを判断する。未分類の2重イベント候補があった場合は、ステップS142に移る。未分類の2重イベント候補がなかった場合は、終了する。
次に、N重イベント定義部120の詳細について図8(S151〜S159)に基づいて説明する。
ステップS151では、N重イベント定義部120が、「N=3」(3重)を設定する。
ステップS152では、N重イベント定義部120が、(N−1)重イベントをもとにN重イベント候補を機械的に作成する。N重イベント候補の詳細な作成方法としては、N重イベント定義部120が、共通なイベントをもった(N−1)重イベント同士を組合せてN重イベント候補を作成する。
図13に、多重イベント候補の具体例のイメージ図を示す。3重イベント候補の具体例のイメージ図として3重イベント候補群194sを示す。
ステップS153では、N重イベント定義部120が、N重イベント候補を一つ選択する。
ステップS154では、N重イベント定義部120が、N重イベント候補が排他情報で定義されている組み合わせを含んでいるかを判断する。N重イベント候補が定義されている組み合わせを含んでいた場合は、ステップS155へ移る。N重イベント候補が定義されている組み合わせを含んでいなかった場合は、ステップS156へ移る。
図13において、3重イベント候補の具体例を示した3重イベント候補群194sで「×」印がついている項目が、排他情報で定義されている組み合わせをもつ3重イベントである。
ステップS155では、N重イベント定義部120が、N重イベント候補をN重イベントとして定義する。
図13に、3重イベントの具体例のイメージ図として3重イベント情報194Iを示す。
ステップS156では、N重イベント定義部120が、未分類のN重イベント候補があるかを判断する。未分類のN重イベント候補があった場合は、ステップS153へ移る。未分類のN重イベント候補がなかった場合は、ステップS157へ移る。
ステップS157では、N重イベント定義部120が、「N」の値をインクリメントする。
図13の3重イベント情報194Iを定義した後、「N」を「4(=3+1)」にインクリメントする。
ステップS158では、N重イベント定義部120が、(N−1)重イベントがあったかを判断する。(N−1)重イベントがなかった場合は終了する。(N−1)重イベントがあった場合は、ステップS159へ移る。
図13において、3重イベント情報194Iで示すように3(=N−1)重イベントは存在するので、ここではステップS159へ移る。
ステップS159では、N重イベント定義部120が、「N」の値が「N≦n」であるかを判断する。
「N」の値が「N≦n」であった場合は、ステップS152へ移る。「N」の値が「N>n」であった場合は終了する。
ここでは、「N=4≦6」となるので、ステップS152へ移り、3重イベント候補群194sおよび3重イベント情報194Iと同様の手段で、図13に示す4重イベント候補群194s、4重イベント情報194Iを作成する。同様に、5重イベント候補群194s、5重イベント情報194I、6重イベント候補群194s、6重イベント情報194Iを作成する。
図13の6重イベント情報194Iを定義したあと、「N=7」かつ、6(=N−1)重イベントはないので、ステップS158の条件に該当し、N重イベントの定義は終了する。
次に、図11〜図14の詳細について説明する。
図11は、仕様書および単一イベントの具体例のイメージ図である。
仕様書199は、検証対象の仕様を示した情報の一部である。
モジュール関連図199aは、仕様書199からテスト対象の各モジュールとイベントのイメージを表した図である。モジュール関連図199aで示した通り、ここでは1つのシステム内の複数モジュールを対象としている。また、ここでは説明を簡略化するため、イベントを「a」や「b」などのように抽象的に表現している。
単一イベント情報191は、検証担当者が仕様書199から定義した情報である。
図12は、関連情報の具体例のイメージ図として関連情報192aを、排他情報の具体例のイメージ図として排他情報192bを示す。
関連情報192aは、検証担当者が仕様書199と単一イベント情報191をもとに作成した情報である。
排他情報192bは、検証担当者が仕様書199と単一イベント情報191をもとに作成した情報である。
関連情報192aと排他情報192bで記載されている「&」は、論理積「AND」を示している。また、「*」は、ワイルドカード(任意のイベント)を意味している。
関連情報192aの具体的な作成方法として、仕様書199にイベントaとイベントbが同時に起こることが明記されているため、関連情報192aに「a&b」を定義できる。また、イベントdが全てのイベントと同時に起こることが仕様書199で明記されているため、関連情報192aに「d&*」を定義できる。
同様に、排他情報192bの具体的な作成方法として、仕様書199に「a」と「c」が同時に起こらないことが明記されているので、排他情報192bに「a&c」を定義できる。
図13は、2重イベント候補(符号「193s」)、2重イベント(符号「193I」)、N重イベント候補(符号「193s」〜「193s」)およびN重イベント(符号「193I」〜「193I」)(3≦N≦6)の具体例のイメージ図を示す。
2重イベント候補群193sは、2重イベント定義部110が、単一イベント情報191をもとに網羅的に作成した組み合わせである。2重イベント情報193は、2重イベント定義部110と検証担当者がテスト必要と判断し2重イベントとして定義した情報である。2重イベント候補群193sで「○」印がついた項目は、関連情報192aで定義された2重イベント候補である。2重イベント候補群193sで「×」印がついた項目は、排他情報192bで定義された2重イベント候補である。2重イベント定義部110が、関連情報192aまたは排他情報192bで定義された組み合わせを分類する(2重イベント候補群193sの「○」印と「×」印に相当)。2重イベント候補群193sで「○」印も「×」印もついていない項目は、検証担当者がテストの要・不要を判断して2重イベント定義・排除に分類される。
3重イベント候補群194sは、実施の形態1と同様の手段で、2重イベント情報193をもとに共通イベントをもつ2重イベント同士を組み合わせて作成される。具体的には、2重イベント情報193の「a&b」と「a&d」より、3重イベント候補「a&b&d」が作成される。3重イベント候補群194sで「×」印がついた項目は、排他情報192bで定義された組み合わせをもつ3重イベント候補である。N重イベント定義部120は、3重イベント候補群194sで「×」印がついた項目を削除し、3重イベント情報194Iを定義する。
4重イベント候補群194sも、3重イベント候補群194sと同様の手段で、3重イベント情報194Iをもとに共通イベントをもつ3重イベント同士を組み合わせて作成される。具体的には、3重イベント情報194Iの「a&b&d」と「a&d&e」より、4重イベント候補「a&b&d&e」が作成される。4重イベント情報194Iには、排他情報192bで定義された組み合わせを含んだ4重イベント候補がないため、N重イベント定義部120は、そのまま4重イベント候補群194sを4重イベント情報194Iに定義する。
5重イベント候補群194sも、3重イベント候補群194sと同様の手段で、4重イベント情報194Iをもとに共通イベントをもつ4重イベント同士を組み合わせて作成される。具体的には、4重イベント情報194Iの「a&b&d&e」と「a&b&d&f」より、5重イベント候補「a&b&d&e&f」が作成される。5重イベント候補群194sには、排他情報192bで定義された組み合わせを含んだ5重イベント候補がないため、N重イベント定義部120は、そのまま5重イベント候補群194sを5重イベント情報194Iに定義する。
6重イベント候補群194sも、3重イベント候補群194sと同様の手段で、5重イベント情報194Iをもとに共通イベントをもつ5重イベント同士を組み合わせて作成される。具体的には、5重イベント情報194Iの「a&b&d&e&f」と「b&d&c&e&f」より、6重イベント候補「a&b&c&d&e&f」が作成される。N重イベント候補群194sの「×」印がついた項目が排他情報192bで定義された組み合わせを含んだ6重イベント候補である。N重イベント定義部120は、6重イベント情報194Iは“なし”と定義する。
6重イベント情報194Iを定義したのち、「N=7(=6+1)」とインクリメントし、6(=N−1)重イベントは存在しないので7重イベントを作成する前にN重イベントの定義は終了する。
図14は、多重イベント定義情報の具体例のイメージ図を示す。
多重イベント定義情報195は、多重イベント定義部130が、単一イベント情報191と2重イベント情報193とN重イベント情報3重イベント情報194IとN重イベント情報4重イベント情報194IとN重イベント情報5重イベント情報194Iをまとめて作成した情報である。
以上のように、複数モジュールをまたがった場合でも、多重イベントを定義できる。
同じモジュール内の多重イベントについては検証担当者が容易に定義できるが、複数モジュールをまたがった場合の多重イベントについては対象の規模が大きくなり、検証担当者が定義することは困難である。
しかし、実施の形態2では、局所的な部分(モジュール内及び、隣同士のモジュールのイベント)に対して検証担当者が関連情報を作成し、あとはN重イベント定義部120がインクリメンタルに多重イベントを作成していくことによって序々に広範囲の多重イベントを作成していく。これにより、人間では見落としてしまう多重イベントの定義も可能となる。
実施の形態3.
実施の形態1、2で説明した多重イベント定義装置100により生成した多重イベント定義情報195を用いて検証対象をテストする形態について説明する。
以下、実施の形態1、2と異なる事項について主に説明する。説明を省略した事項は実施の形態1、2と同様である。
図15は、実施の形態3における多重イベント検証装置200の機能構成図である。
実施の形態3における多重イベント検証装置200の機能構成について、図15に基づいて以下に説明する。
多重イベント検証装置200は、多重イベント定義情報生成部101(多重イベント定義装置)、ランダム検証システム201、多重イベント発生情報生成部230および検証装置記憶部(図示省略)を備える。
多重イベント定義情報生成部101は、実施の形態1、2で説明した多重イベント定義装置100の機能である(図1参照)。
ランダム検証システム201は、ランダムパタンジェネレータ210と検証プラットフォーム220(テスト実行部の一例)とを備える。
ランダムパタンジェネレータ210は、後述する制約パラメータ291に基づいてテストパタン292を生成する。
検証プラットフォーム220は、テストパタン292を用いて検証装置をテストし、テストの実行ログ293を記録する。
多重イベント発生情報生成部230は、検証プラットフォーム220により記録されたテストの実行ログ293に基づいて、多重イベント定義情報195に定義された複数の多重イベントのうちテストにおいて発生した多重イベントを示す多重イベント発生情報294を生成する。
多重イベント発生情報生成部230は、多重イベント発生情報294に基づいて、多重イベント定義情報195に定義された複数の多重イベントのうちテストにおいて発生しなかった多重イベントを示すテスト実施結果情報295を生成する。
検証装置記憶部(図示省略)は、多重イベント検証装置200で使用されるデータを記憶する。
単一イベント情報191、2重イベント情報193およびN重イベント情報194(図示省略)は多重イベント検証装置200に記憶されるデータの一例である。
多重イベント定義情報195、制約パラメータ291、テストパタン292、多重イベント発生情報294およびテスト実施結果情報295は多重イベント検証装置200に記憶されるデータの一例である。
多重イベント定義情報195は、実施の形態1、2で説明したように多重イベント(テスト項目)が定義された情報である。
制約パラメータ291は、多重イベント定義情報195に基づいて生成される情報であってテストパタン292の生成に用いられる情報である。
テストパタン292は、制約パラメータ291に基づいて生成される情報であって検証対象をテストするためのテストデータである。
多重イベント発生情報294は、テストパタン292を用いて実行されたテストで発生した多重イベントを示す情報である。すなわち、多重イベント発生情報294は検証できた多重イベントを示す情報である。
テスト実施結果情報295は、多重イベント定義情報195に定義された多重イベントのうちテストパタン292を用いて実行されたテストで発生しなかった多重イベントを示す情報である。すなわち、テスト実施結果情報295は検証できなかった多重イベントを示す情報である。
ランダム検証システム201として従来のシステム(例えば、特許文献2に開示されている技術)を利用することができる。
図16は、実施の形態3における多重イベント検証方法を示すフローチャートである。
実施の形態3における多重イベント検証方法について、図16に基づいて以下に説明する。
多重イベント検証装置200の各構成は以下に説明する処理をCPUを用いて実行する。
まず、多重イベント検証方法の概要について説明する。
多重イベント定義情報生成部101は多重イベント定義情報195を生成する(S210)。
検証担当者は多重イベント定義情報195に基づいて制約パラメータ291を生成する(S220)。
ランダムパタンジェネレータ210は制約パラメータ291に基づいてテストパタン292を生成する(S230)。
検証プラットフォーム220はテストパタン292を用いて検証対象のテストを実行し(S240)、実行ログ293を生成する(S250)。
多重イベント発生情報生成部230は実行ログ293に基づいて多重イベント発生情報294を生成する(S260)。
多重イベント発生情報生成部230は多重イベント定義情報195と多重イベント発生情報294とに基づいてテスト実施結果情報295を生成する(S270)。
S220〜S270は多重イベント定義情報195に定義された全ての多重イベントについてテストが終わるまで繰り返し実行される(S280)。
次に、各処理(S210〜S280)の詳細について説明する。
<S210>
多重イベント定義情報生成部101は、実施の形態1、2で説明したようにして多重イベント定義情報195を生成する。
S210の後、処理はS220に進む。
<S220>
検証担当者は、多重イベント定義情報195に定義されている多重イベントが検証対象のテストで発生するように複数の制約パラメータ291を決定し、決定した複数の制約パラメータ291をランダム検証システム201に設定する。
例えば、制約パラメータ291は、テストパタン292のデータの種類や値の範囲などを定める情報である。
多重イベント検証装置200が多重イベント定義情報195に基づいて制約パラメータ291を生成するようにしても構わない。
S220の後、処理はS230に進む。
<S230>
ランダムパタンジェネレータ210は複数の制約パラメータ291を入力し、複数の制約パラメータ291それぞれに対応するテストパタン292を生成する。一つのテストパタン292が一回のテストに必要な情報を示す。
例えば、テストパタン292は、検証対象の入力データや設定値などを定める情報である。
例えば、ランダムパタンジェネレータ210は特許文献2の方法と同様にしてテストパタン292を生成する。
S230の後、処理はS240に進む。
<S240>
検証プラットフォーム220は複数のテストパタン292を入力し、複数のテストパタン292を順に検証対象に入力して検証対象をテストする。テストはテストパタン292毎に行われる。
例えば、検証プラットフォーム220は特許文献2の方法と同様にして検証対象をテストする。
S240の後、処理はS250に進む。
<S250>
検証プラットフォーム220は、テスト開始時、テスト中およびテスト終了時に検証対象の情報を実行ログ293として記録する。記録される情報は検証対象者により予め定義される。
例えば、検証プラットフォーム220は特許文献2の方法と同様にして実行ログ293を記録する。
S250の後、処理はS260に進む。
<S260>
多重イベント発生情報生成部230は実行ログ293を入力し、実行ログ293に基づいて多重イベント発生情報294を生成する。
図17は、実施の形態3における多重イベント発生情報294の一例である。
例えば、図17に示すように、多重イベント発生情報294は「発生時刻」と「イベント」とを対応付けて示す。
「発生時刻」には、多重イベント定義情報195に定義された複数の単一イベントのうち少なくともいずれかの単一イベントが発生した時刻が設定される。
「イベント」には、多重イベント定義情報195に定義された複数の単一イベントそれぞれの欄が設けられ、「発生時刻」に発生した単一イベントの欄にはフラグ「発生」が設定される。
図17の多重イベント発生情報294は、発生時刻「0」に単一イベント「a」、発生時刻「1」に単一イベント「b」、発生時刻「2」に単一イベント「e」が発生したことを示している。
また、発生時刻「3」に単一イベント「b」と単一イベント「d」とが同時に発生したことを示している。つまり、発生時刻「3」に2重イベント「b&d」が発生したことを示している。
図16に戻り、多重イベント検証方法の説明を続ける。
S260の後、処理はS270に進む。
<S270>
多重イベント発生情報生成部230は、多重イベント発生情報294に基づいて、多重イベント定義情報195に定義されている複数の多重イベントのうち検証対象のテストで発生していない多重イベントを特定する。
多重イベント発生情報生成部230は、特定した多重イベントを設定したテスト実施結果情報295を生成する。
図18は、実施の形態3におけるテスト実施結果情報295の一例である。
例えば、図18に示すように、テスト実施結果情報295は「多重イベント」毎に「テスト実施」および「テスト未実施」それぞれの欄が設けられている。
「多重イベント」には、多重イベント定義情報195に定義されている複数の多重イベントそれぞれが設定される。
検証対象のテストで少なくとも一度は発生した「多重イベント」に対して「テスト実施」欄にフラグ「●」が設定され、検証対象のテストで一度も発生しなかった「多重イベント」に対して「テスト未実施」欄にフラグ「●」が設定される。
図18のテスト実施結果情報295は、図14の多重イベント定義情報195と図17の多重イベント発生情報294に基づいて生成された情報を示している。
つまり、図14に示す多重イベント定義情報195には32個の多重イベントが定義されているため、図18に示すテスト実施結果情報295の「多重イベント」には32個の多重イベントが設定されている。
また、図17に示す多重イベント発生情報294には単一イベント「a」が発生したこと(発生時刻「0」)や単一イベント「a」と単一イベント「b」とが同時に発生したこと(発生時刻「9」「10」)などが設定されているため、図18に示すテスト実施結果情報295の多重イベント「a」「a&b」などの「テスト実施」欄にはフラグ「●」が設定されている。
また、図17に示す多重イベント発生情報294には単一イベント「c」が発生したことや単一イベント「e」と単一イベント「f」とが同時に発生したことなどが設定されていないため、図18に示すテスト実施結果情報295の多重イベント「c」「e&f」などの「テスト未実施」欄にはフラグ「●」が設定されている。
図16に戻り、多重イベント検証方法の説明を続ける。
S270の後、処理はS280に進む。
<S280>
検証担当者は、テスト実施結果情報295に基づいて、多重イベント定義情報195に定義されている全ての多重イベントが検証対象のテストにおいて発生したか否か、すなわち、全ての多重イベントについてテスト(検証)を行えたか否かを判定する。
全ての多重イベントについてテストを行えた場合(YES)、多重イベント検証方法は終了する。
テストできていない多重イベントが残っている場合(NO)、処理はS220に戻る。以後、全ての多重イベントについてテストが行えるまで、テストできていない多重イベントを対象としてS220〜S280が繰り返し実行される。
以上のように、多重イベント発生情報生成部230が多重イベント定義情報195と実行ログ293とを比較することにより、テストが未実施であった多重イベントの検出が可能になり、どの多重イベントのテストが不十分であるかが明確になる。追加テストを行う際に、次にどの多重イベントに対してテストを行えばよいのかが明確になる。そのため、検証担当者は、客観的に追加テストで設定する最適な制約パラメータを生成できる。
実施の形態3において、例えば以下のような多重イベント検証装置200について説明した。
必要な全ての多重イベントを漏れなく定義する多重イベント定義情報生成手段と、テストの要・不要を分類する指標となる組み合わせ分類情報と、多重イベント定義情報生成手段で定義した多重イベントがテスト実施時に発生したかどうかを記録する多重イベント発生情報生成手段とを備える。
多重イベント定義情報生成手段は、必要な全ての2重イベントを漏れなく定義する2重イベント定義手段と、必要な全ての3重以上のイベントを漏れなく定義するN重イベント定義手段とを有する。
組み合わせ分類情報は、関連する複数のイベント同士を関連付ける関連情報と、テスト不要な複数のイベントの組み合わせを定義する排他情報とを有する。
100 多重イベント定義装置、101 多重イベント定義情報生成部、110 2重イベント定義部、120 N重イベント定義部、130 多重イベント定義部、191 単一イベント情報、192 組み合わせ分類情報、192a 関連情報、192b 排他情報、193 2重イベント情報、193s 2重イベント候補群、194 N重イベント情報、194I 3重イベント情報、194I 4重イベント情報、194I 5重イベント情報、194I 6重イベント情報、194s N重イベント候補群、194s 3重イベント候補群、194s 4重イベント候補群、194s 5重イベント候補群、194s 6重イベント候補群、195 多重イベント定義情報、199 仕様書、199a モジュール関連図、200 多重イベント検証装置、201 ランダム検証システム、210 ランダムパタンジェネレータ、220 検証プラットフォーム、230 多重イベント発生情報生成部、291 制約パラメータ、292 テストパタン、293 実行ログ、294 多重イベント発生情報、295 テスト実施結果情報、901 表示装置、902 キーボード、903 マウス、904 ドライブ装置、906 プリンタ装置、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 磁気ディスク装置、921 OS、922 ウィンドウシステム、923 プログラム群、924 ファイル群。

Claims (9)

  1. 所定の状況がイベントとして発生する検証対象に発生する複数のイベントそれぞれが単一イベントとして定義された単一イベント情報と、同時に発生しない複数の単一イベントを組み合わせたイベント組み合わせが排他イベント組み合わせとして定義された排他イベント情報とを記憶するイベント情報記憶部と、
    前記単一イベント情報に定義された複数の単一イベントを組み合わせて複数のイベント組み合わせそれぞれを、同時に発生する複数の単一イベントを組み合わせた多重イベント組み合わせの候補としてCPU(Central Processing Unit)を用いて定義する多重イベント候補定義部と、
    前記多重イベント候補定義部により定義された複数の多重イベント組み合わせの候補のうち前記排他イベント情報に定義された排他イベント組み合わせを含まない多重イベント組み合わせの候補を多重イベント組み合わせとしてCPUを用いて特定する多重イベント特定部と、
    前記多重イベント特定部により特定された多重イベント組み合わせを含む情報を多重イベント情報としてCPUを用いて生成する多重イベント情報生成部と
    を備えたことを特徴とする多重イベント定義装置。
  2. 前記排他イベント情報には、二つの単一イベントを組み合わせた排他イベント組み合わせが定義され、
    前記多重イベント候補定義部は、二つの単一イベントを組み合わせて複数の二重イベント組み合わせの候補を定義し、
    前記多重イベント特定部は、複数の二重イベント組み合わせの候補のうち前記排他イベント組み合わせと異なる二重イベント組み合わせの候補を二重イベント組み合わせとして特定し、
    前記多重イベント情報生成部は、前記二重イベント組み合わせを含めて前記多重イベント情報を生成する
    ことを特徴とする請求項1記載の多重イベント定義装置。
  3. 前記多重イベント候補定義部は、(N−1)つの単一イベントが互いに共通する二つのN重イベント組み合わせを組み合わせて(N+1)つの単一イベントを組み合わせた(N+1)重イベント組み合わせの候補を定義し、
    前記多重イベント特定部は、複数の(N+1)重イベント組み合わせの候補のうち前記排他イベント組み合わせを含まない(N+1)重イベント組み合わせの候補を(N+1)重イベント組み合わせとして特定し、
    前記多重イベント情報生成部は、(N+1)重イベント組み合わせを含めて前記多重イベント情報を生成する
    ことを特徴とする請求項2記載の多重イベント定義装置。
  4. 前記多重イベント候補定義部は、前記多重イベント特定部により特定された(N+1)重イベント組み合わせが有る場合、(N+2)重イベント組み合わせの候補を定義し、前記多重イベント特定部により特定された(N+1)重イベント組み合わせが無い場合、多重イベント組み合わせの候補の定義を終了する
    ことを特徴とする請求項3記載の多重イベント定義装置。
  5. 前記イベント情報記憶部は、同時に発生する二つの単一イベントを組み合わせたイベント組み合わせが関連イベント組み合わせとして定義された関連イベント情報を記憶し、
    多重イベント特定部は、複数の二重イベント組み合わせの候補のうち前記関連イベント情報に定義された関連イベント組み合わせと同じ二重イベント組み合わせの候補を二重イベント組み合わせとして特定する
    ことを特徴とする請求項2〜請求項4いずれかに記載の多重イベント定義装置。
  6. 前記多重イベント特定部は、前記関連イベント組み合わせと前記排他イベント組み合わせとのいずれとも異なる二重イベント組み合わせの候補を出力装置に出力し、当該二重イベントの組み合わせの候補を二重イベントの組み合わせとするか否かを判断した利用者の判断結果を入力装置から入力し、入力した利用者の判断結果に基づいて当該二重イベント組み合わせの候補を二重イベント組み合わせとするか否かを判定する
    ことを特徴とする請求項5記載の多重イベント定義装置。
  7. 請求項1〜請求項6いずれかに記載の多重イベント定義装置と、
    前記検証対象に対して所定のテストをCPUを用いて実行し、テストの実行ログをCPUを用いて記録するテスト実行部と、
    前記テスト実行部により記録されたテストの実行ログに基づいて、前記多重イベント情報に定義された多重イベント組み合わせのうち前記テストにおいて発生した多重イベント組み合わせを示す多重イベント発生情報をCPUを用いて生成する多重イベント発生情報生成部と
    を備えたことを特徴とする多重イベント検証装置。
  8. イベント情報記憶部が、所定の状況がイベントとして発生する検証対象に発生する複数のイベントそれぞれが単一イベントとして定義された単一イベント情報と、同時に発生しない複数の単一イベントを組み合わせたイベント組み合わせが排他イベント組み合わせとして定義された排他イベント情報とを記憶し、
    多重イベント候補定義部が、前記単一イベント情報に定義された複数の単一イベントを組み合わせて複数のイベント組み合わせそれぞれを、同時に発生する複数の単一イベントを組み合わせた多重イベント組み合わせの候補としてCPU(Central Processing Unit)を用いて定義し、
    多重イベント特定部が、前記多重イベント候補定義部により定義された複数の多重イベント組み合わせの候補のうち前記排他イベント情報に定義された排他イベント組み合わせを含まない多重イベント組み合わせの候補を多重イベント組み合わせとしてCPUを用いて特定し、
    多重イベント情報生成部が、前記多重イベント特定部により特定された多重イベント組み合わせを含む情報を多重イベント情報としてCPUを用いて生成する
    ことを特徴とする多重イベント定義方法。
  9. 請求項8記載の多重イベント定義方法をコンピュータに実行させる多重イベント定義プログラム。
JP2009198835A 2009-08-28 2009-08-28 多重イベント定義装置、多重イベント検証装置、多重イベント定義方法および多重イベント定義プログラム Pending JP2011048785A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009198835A JP2011048785A (ja) 2009-08-28 2009-08-28 多重イベント定義装置、多重イベント検証装置、多重イベント定義方法および多重イベント定義プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009198835A JP2011048785A (ja) 2009-08-28 2009-08-28 多重イベント定義装置、多重イベント検証装置、多重イベント定義方法および多重イベント定義プログラム

Publications (1)

Publication Number Publication Date
JP2011048785A true JP2011048785A (ja) 2011-03-10

Family

ID=43834996

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009198835A Pending JP2011048785A (ja) 2009-08-28 2009-08-28 多重イベント定義装置、多重イベント検証装置、多重イベント定義方法および多重イベント定義プログラム

Country Status (1)

Country Link
JP (1) JP2011048785A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8930759B2 (en) 2012-04-02 2015-01-06 International Business Machines Corporation Stream generation
JP2017010359A (ja) * 2015-06-24 2017-01-12 三菱電機エンジニアリング株式会社 Lsi検証解析装置及びlsi検証解析方法
KR101783840B1 (ko) * 2015-09-24 2017-10-10 (주)토탈소프트뱅크 부분적 멀티 쓰레드 방식을 이용한 경합관리자 시스템 및 경합관리 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8930759B2 (en) 2012-04-02 2015-01-06 International Business Machines Corporation Stream generation
JP2017010359A (ja) * 2015-06-24 2017-01-12 三菱電機エンジニアリング株式会社 Lsi検証解析装置及びlsi検証解析方法
KR101783840B1 (ko) * 2015-09-24 2017-10-10 (주)토탈소프트뱅크 부분적 멀티 쓰레드 방식을 이용한 경합관리자 시스템 및 경합관리 방법

Similar Documents

Publication Publication Date Title
US7003420B2 (en) Late binding of variables during test case generation for hardware and software design verification
US20090319829A1 (en) Pattern extraction method and apparatus
JP6245006B2 (ja) テストケース生成装置、方法、及びプログラム
WO2016080380A1 (ja) ハードウェアトロイの検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置
JP2019159836A (ja) 学習プログラム、学習方法および学習装置
US7926053B1 (en) Methods and apparatus for optimizing installation location of software
CN112948193B (zh) 一种基于差异测试的fpga综合工具缺陷检测方法
JP2011048785A (ja) 多重イベント定義装置、多重イベント検証装置、多重イベント定義方法および多重イベント定義プログラム
JP2006106865A (ja) 論理回路設計検証装置および方法、プログラム
US8321825B2 (en) Method and system for synthesizing relative timing constraints on an integrated circuit design to facilitate timing verification
JP6416588B2 (ja) ソースコード検証システム
US20150058272A1 (en) Event correlation detection system
JP4541196B2 (ja) 故障検出改善装置、故障検出改善プログラム、故障検出改善方法
US8015523B2 (en) Method and system for sequential netlist reduction through trace-containment
KR102046249B1 (ko) 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법 및 이를 수행하기 위한 기록매체 및 장치
JP4652317B2 (ja) 論理回路の機能検証装置、機能カバレッジアイテムの検証方法及びプログラム
US10733345B1 (en) Method and system for generating a validation test
TW202213155A (zh) 邏輯模擬驗證系統、邏輯模擬驗證方法、及程式產品
US7454680B2 (en) Method, system and computer program product for improving efficiency in generating high-level coverage data for a circuit-testing scheme
JP6547345B2 (ja) テストケース生成プログラム、テストケース生成方法およびテストケース生成装置
JP2021043582A (ja) 生成プログラム、生成方法、および情報処理装置
JP2020098413A (ja) テスト支援装置、テスト支援方法及びコンピュータプログラム
JP6949440B2 (ja) ベクタ生成装置及びベクタ生成用プログラム
JP5918102B2 (ja) 解析システム、解析装置、解析方法及び解析プログラム
US20060136783A1 (en) Automatically reducing test program size