(57)【要約】【課題】  情報処理装置の論理検証の検証効率を高めることができる論理検証方法及びプログラムを提供する。【解決手段】  論理検証の網羅性を管理するカバレッジ情報およびテスト結果異常情報を参照して論理検証未実施且つテスト結果異常登録済みでないテストデータを生成し、情報処理装置のシミュレータを用い擬似テストを実行し前記テストデータの期待値を生成する。前記テストデータは情報処理装置に対し適用し、適用結果と前記期待値とを比較し、テスト結果が正常か異常かを判定する。テスト結果の判定が異常の場合、当該テストデータのカバレッジ項目をテスト結果異常情報として蓄積し、テスト結果が正常の場合、当該テストデータのカバレッジ項目をカバレッジ情報として蓄積する。【選択図】図３
2015114923.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置の論理検証方法であって、
前記情報処理装置に対して実行されるテストデータのテスト結果が正常と判定された場合の情報を管理するカバレッジ情報と前記テストデータのテスト結果が異常と判定された場合の情報を管理するテスト結果異常情報とを初期化するステップと、
前記カバレッジ情報および前記テスト結果異常情報を参照してテストデータを生成するステップと、
前記生成テストデータがテスト済みかどうかを判断し、テスト済みであれば前記生成テストデータを妥当でないと判定し、前記生成テストデータがテスト済みでなければ前記生成テストデータを妥当であると判定するステップと、
前記生成テストデータのテスト結果が異常判定済みかどうかを判断し、テスト結果異常判定済みと判断された場合は、前記生成テストデータを妥当でないと判定し、生成テストデータがテスト結果異常判定済みでないと判断された場合は、前記生成テストデータを妥当であると判定するステップと、
前記両ステップで妥当であると判定された生成テストデータについて前記情報処理装置のシミュレータを用いて擬似テストを実行し、前記擬似テストによる期待値を生成するステップと、
前記両ステップで妥当であると判定された生成テストデータについて前記情報処理装置に対し本テストを実行するステップと、
前記情報処理装置に対して実行した前記本テストのテスト結果と前記期待値とを比較し、前記テスト結果が正常かどうかを判定するステップと、
前記テスト結果の判定が異常と判定された場合は前記テスト結果異常情報を更新し、また前記テスト結果の判定が正常と判定された場合は前記カバレッジ情報を更新して終了判定を行い、前記終了判定において終了条件を満たす場合は論理検証を終了し、終了条件を満たさない場合は前記テストデータを生成するステップ以降の各ステップを繰り返すことを特徴とする、方法。
【請求項２】
前記生成テストデータを妥当でない又は妥当であると判定する２つの前記ステップのうち少なくとも一方において、前記生成テストデータが妥当でないと判定された場合、前記生成テストデータに係るテストパラメータを修正し、前記カバレッジ情報および前記テスト結果異常情報を参照してテストデータを生成するステップを再度実行することを特徴とする、請求項１に記載の方法。
【請求項３】
コンピュータに、
情報処理装置に対して実行されるテストデータのテスト結果が正常と判定された場合の情報を管理するカバレッジ情報と前記テストデータのテスト結果が異常と判定された場合の情報を管理するテスト結果異常情報とを初期化する手順、
前記カバレッジ情報および前記テスト結果異常情報を参照してテストデータを生成する手順、
前記生成テストデータがテスト済みかどうかを判断し、テスト済みであれば前記生成テストデータを妥当でないと判定し、前記生成テストデータがテスト済みでなければ前記生成テストデータを妥当であると判定する手順、
前記生成テストデータのテスト結果が異常判定済みかどうかを判断し、テスト結果異常判定済みと判断された場合は、前記生成テストデータを妥当でないと判定し、生成テストデータがテスト結果異常判定済みでないと判断された場合は、前記生成テストデータを妥当であると判定する手順、
前記両手順で妥当であると判定された生成テストデータについて前記情報処理装置のシミュレータを用いて擬似テストを実行し、前記擬似テストによる期待値を生成する手順、
前記両手順で妥当であると判定された生成テストデータについて前記情報処理装置に対し本テストを実行する手順、
前記情報処理装置に対して実行した前記本テストのテスト結果と前記期待値とを比較し、前記テスト結果が正常かどうかを判定する手順、
前記テスト結果の判定が異常と判定された場合は前記テスト結果異常情報を更新し、また前記テスト結果の判定が正常と判定された場合は前記カバレッジ情報を更新して終了判定を行い、前記終了判定において終了条件を満たす場合は論理検証を終了し、終了条件を満たさない場合は前記テストデータを生成する手順以降の各手順を繰り返す手順、を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置の論理検証方法及びプログラムに関するものである。
【背景技術】
【０００２】
従来から、情報処理装置（検証対象装置）の論理検証（テスト）において、論理の正常性を確認する上で機能の網羅テストを実施しているが、論理規模の増加などにより、全ての機能に対する網羅テストには膨大な時間を要し、論理検証期間の長期化が問題となっている。
【０００３】
ネットワーク装置や汎用的な論理装置などでは、特に組み合あわせが無数に存在する為、網羅テストを行う事が困難であり、乱数データを用いたランダム試験などを利用する事で、テストの網羅性を高める手法が適用されるケースも多い。しかし、乱数データを用いたランダム試験が生成するテストデータにより、検証対象装置のテスト網羅性を高める場合には、テスト件数を増やして対応する必要が有り、検証期間の短縮という点で考えると効率的とは言い難い。
【０００４】
この様な問題の解決手法として、テスト実施毎に検証対象装置からカバレッジ情報、又は、検証済み履歴情報を取得し、取得した情報を解析する事で乱数データを用い連続的に再生成するテストデータを調整する手法がある。
【０００５】
以下にテストデータの再生成に関する従来技術について説明する。特許文献１では、検証対象装置にアサーションを埋め込み、テスト実施毎に検証対象装置からアサーション情報(カバレッジ情報)を取得する。取得したカバレッジ情報に基づきテストデータを調整する事で競合動作等を自動補正し、乱数データを用いたランダム試験の検証網羅性を高めている。又、特許文献２では、論理シミュレーション実行結果が期待値と一致したテストデータを検証済み履歴情報として蓄積する。乱数データを用いたテストデータ生成処理は検証済み履歴情報を解析し、検証済みの検証パタンを回避したテストデータ再生成を行う事で重複論理シミュレーションを避け検証効率の低下を抑えるものである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−４４６２２号公報
【特許文献２】特開２００２−１４９４４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１、特許文献２の手法では、検証対象装置内部に品質が高い部位と品質が低い部位が混在している場合、品質が低い部位の不具合により、品質の高い部位の網羅性向上が阻害される。ここで、品質が低い部位は、テストデータのテスト結果が異常となる可能性がある。
【０００８】
本発明は、上記問題点を解決し、情報処理装置の論理検証の検証効率を高めることができる情報処理装置の論理検証方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上記目的を達成するため以下のような情報処理装置の論理検証方法及びプログラムを提供する。
（１）情報処理装置の論理検証方法であって、
前記情報処理装置に対して実行されるテストデータのテスト結果が正常と判定された場合の情報を管理するカバレッジ情報と前記テストデータのテスト結果が異常と判定された場合の情報を管理するテスト結果異常情報とを初期化するステップと、
前記カバレッジ情報および前記テスト結果異常情報を参照してテストデータを生成するステップと、
前記生成テストデータがテスト済みかどうかを判断し、テスト済みであれば前記生成テストデータを妥当でないと判定し、前記生成テストデータがテスト済みでなければ前記生成テストデータを妥当であると判定するステップと、
前記生成テストデータのテスト結果が異常判定済みかどうかを判断し、テスト結果異常判定済みと判断された場合は、前記生成テストデータを妥当でないと判定し、生成テストデータがテスト結果異常判定済みでないと判断された場合は、前記生成テストデータを妥当であると判定するステップと、
前記両ステップで妥当であると判定された生成テストデータについて前記情報処理装置のシミュレータを用いて擬似テストを実行し、前記擬似テストによる期待値を生成するステップと、
前記両ステップで妥当であると判定された生成テストデータについて前記情報処理装置に対し本テストを実行するステップと、
前記情報処理装置に対して実行した前記本テストのテスト結果と前記期待値とを比較し、前記テスト結果が正常かどうかを判定するステップと、
前記テスト結果の判定が異常と判定された場合は前記テスト結果異常情報を更新し、また前記テスト結果の判定が正常と判定された場合は前記カバレッジ情報を更新して終了判定を行い、前記終了判定において終了条件を満たす場合は論理検証を終了し、終了条件を満たさない場合は前記テストデータを生成するステップ以降の各ステップを繰り返すことを特徴とする、方法。
（２）前記生成テストデータを妥当でない又は妥当であると判定する２つの前記ステップのうち少なくとも一方において、前記生成テストデータが妥当でないと判定された場合、前記生成テストデータに係るテストパラメータを修正し、前記カバレッジ情報および前記テスト結果異常情報を参照してテストデータを生成するステップを再度実行することを特徴とする、上記（１）に記載の方法。
（３）コンピュータに、
情報処理装置に対して実行されるテストデータのテスト結果が正常と判定された場合の情報を管理するカバレッジ情報と前記テストデータのテスト結果が異常と判定された場合の情報を管理するテスト結果異常情報とを初期化する手順、
前記カバレッジ情報および前記テスト結果異常情報を参照してテストデータを生成する手順、
前記生成テストデータがテスト済みかどうかを判断し、テスト済みであれば前記生成テストデータを妥当でないと判定し、前記生成テストデータがテスト済みでなければ前記生成テストデータを妥当であると判定する手順、
前記生成テストデータのテスト結果が異常判定済みかどうかを判断し、テスト結果異常判定済みと判断された場合は、前記生成テストデータを妥当でないと判定し、生成テストデータがテスト結果異常判定済みでないと判断された場合は、前記生成テストデータを妥当であると判定する手順、
前記両手順で妥当であると判定された生成テストデータについて前記情報処理装置のシミュレータを用いて擬似テストを実行し、前記擬似テストによる期待値を生成する手順、
前記両手順で妥当であると判定された生成テストデータについて前記情報処理装置に対し本テストを実行する手順、
前記情報処理装置に対して実行した前記本テストのテスト結果と前記期待値とを比較し、前記テスト結果が正常かどうかを判定する手順、
前記テスト結果の判定が異常と判定された場合は前記テスト結果異常情報を更新し、また前記テスト結果の判定が正常と判定された場合は前記カバレッジ情報を更新して終了判定を行い、前記終了判定において終了条件を満たす場合は論理検証を終了し、終了条件を満たさない場合は前記テストデータを生成する手順以降の各手順を繰り返す手順、を実行させるためのプログラム。
【発明の効果】
【００１０】
本発明によれば、情報処理装置の論理検証の検証効率を高めることができる。すなわち、検証対象内部の品質が高い部位の網羅性向上を図る事ができ、情報処理装置全体としてのテストの網羅性の向上と網羅性を満足する為に要する時間の削減を両立する事が可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明に係る情報処理装置（検証対象装置）の論理検証方法の一例を説明するための概略図である。
【図２】本発明に係る論理検証方法における検証プログラムの一例を示す図である。
【図３】本発明に係る論理検証方法における検証プログラムの一例を示すフロー図である。
【図４】妥当性チェック部２１１の具体例を示す図である。
【図５】図２のステップ３０８におけるパラメータの修正の具体例を示す図である。
【図６】図５におけるカバレッジ情報とテスト結果異常情報の一例を示す図である。
【図７】図６におけるテスト結果異常情報の例１、例２としてテスト結果が異常判定されるテストデータと現象例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を図面を参照しながら詳細に説明する。なお、実施の形態を説明する為の図において、同一部分には原則として同一記号を付し、繰り返しとなる説明は省略する。本実施の形態における情報処理装置の検証方法では、情報処理装置（検証対象装置）として複数の中央処理装置（ＣＰＵ）を含むプロセッサ、入出力装置などの周辺装置、記憶装置及びこれらを接続するシステムバスの例を示すが、これに限定されず、ＦＰＧＡなどの論理回路も含む。
【００１３】
本発明は、要するに、生成したテストデータ（生成テストデータ）を内蔵シミュレータにより事前評価し、生成テストデータを検証対象装置の品質に合わせ選択する事で、検証対象装置全体としてのテスト網羅性の向上に要する時間を短くし、検証対象装置の検証効率を高めると共に、テストデータのバリエーションを自動生成させる事で、工数を抑える事を実現するものである。ここでテストデータとは、テストパタンを含むテスト実行用のデータをいう。またテストパタンは、網羅性テストのバリエーションを実現するためのものである。具体的には、例えば乱数データを用いたランダム試験が生成するテストデータを用いた情報処理装置の論理検証において、論理検証の網羅性を管理するカバレッジ情報およびテスト結果異常情報を参照して論理検証未実施且つテスト結果異常登録済みでないテストデータを生成し、情報処理装置のシミュレータを用い擬似テストを実行し前記テストデータの期待値を生成する。前記テストデータは情報処理装置に対し適用し、適用結果と前記期待値とを比較し、テスト結果が正常か異常かを判定する。テスト結果の判定が異常の場合、当該テストデータのカバレッジ項目をテスト結果異常情報として蓄積し、テスト結果が正常の場合、当該テストデータのカバレッジ項目をカバレッジ情報として蓄積する。
【００１４】
図１は、本発明に係る情報処理装置（検証対象装置）の論理検証方法の一例を説明するための概略図である。本例では、試験者がデータや命令の入出力処理を行う為の情報処理端末１００、及び検証対象装置（論理）１０１を備える。
【００１５】
検証対象装置１０１は、複数のＣＰＵ１１２−１１５を含むプロセッサ１１１、入出力装置などの周辺装置１１６−１１９、及び主記憶装置１２１などがシステムバス１２０を介して接続されている。検証対象装置１０１では、プロセッサ１１１からの命令を中心としたアクセス要求により、複数のトランザクションが検証対象装置内で発生する。本例では、検証対象装置１０１の論理検証を行う検証プログラム２００、検証対象装置シミュレータ２１０、および論理検証の網羅性を管理するカバレッジ情報２３０とテスト結果が異常と判定されたカバレッジ項目を管理するテスト結果異常情報２５０はそれぞれ、主記憶装置１２１に配置されるが、別の記憶装置に配置することもできる。情報処理端末１００は、試験者によるデータや命令の入出力処理以外に、検証プログラム２００の実行（カバレッジ情報２３０の更新、テスト結果異常情報２５０の更新等を含む）を行う役目を有する。
【００１６】
本発明の実施形態では、検証プログラム２００で用いるテストデータの生成、評価及び再生成は主記憶装置１２１に配置した検証対象装置シミュレータ（以下単に「シミュレータ」ともいう）上で実施し、カバレッジ情報２３０とテスト結果異常情報２５０の更新は、主記憶装置１２１に配置した検証プログラム２００上で実施する。なお、検証対象装置シミュレータは検証プログラム２００に内蔵してもよいし、本例のように別途設けてもよい。すなわち、本発明は、検証対象装置でテストを実行する前に検証対象装置シミュレータを用いてテストデータの最適化を図り、テストデータの最適化を行う事で、検証効率の向上を図るものである。
【００１７】
図２は、本発明に係る論理検証方法における検証プログラムの一例を示す図である。検証プログラム２００は、図示のように、検証対象装置シミュレータ２１０、検証対象装置１０１を含む論理シミュレーション環境２２０、カバレッジ情報２３０およびテスト結果異常情報２５０と関連して実行される。
【００１８】
検証プログラム２００は、テストデータ生成部２０１と本テスト実行部２４０とを備える。テストデータ生成部２０１は、カバレッジ情報取得処理部２０２、テスト結果異常情報取得処理部２０３、テストデータ生成処理部２０４、および擬似テスト実行処理部２０５を有する。本テスト実行部２４０は、本テスト実行処理部２４１、テスト結果判定処理部２４２、カバレッジ情報更新処理部２４３、テスト結果異常情報更新処理部２４４、および期待値２４５とカバー項目２４６を有する。
【００１９】
検証対象装置シミュレータ２１０は、妥当性チェック部２１１と期待値生成部２１５とを備える。妥当性チェック部２１１は、カバレッジ情報参照部２１２、テスト結果異常情報参照部２１３、および生成テストデータチェック部２１４を有する。期待値生成部２１５は、擬似テスト実行部２１６を有する。妥当性チェック部２１１は、カバレッジ情報参照部２１２にて、生成テストデータが既にテストを行ったものか、まだテストを行って無いものかの判断を行い、テスト結果異常情報参照部２１３にて、生成テストデータはテストを実施したが結果が異常となったものかの判断を行う。期待値生成部２１５は、妥当性チェック部２１１にてチェックを行った生成テストデータを本テストの論理シミュレーションを行う前に、検証対象装置シミュレータ２１０においてソフトウェア処理により疑似テストを実行し、生成したテスト結果の期待値２４５と生成したテストの実行により網羅されるカバー項目２４６を本テスト実行部２４０上に一時的に格納する。尚、期待値は、本テスト実行部２４０にてテスト結果の判定処理に、カバー項目２４６はカバレッジ情報２３０とテスト結果異常情報２５０の更新に利用される。
【００２０】
論理シミュレーション環境２２０は、論理検証の対象である検証対象装置１０１を備える。検証対象装置１０１は、図１に示すように、プロセッサ１１１、入出力装置などの周辺装置１１６−１１９、主記憶装置１２１、およびシステムバス１２０を有する。主記憶装置１２１には、テスト結果２２７が格納される。このテスト結果２２７は、テスト結果判定処理部２４２において期待値２４５と比較され、判定される。
【００２１】
以上のように、検証プログラム２００において、テストデータ生成部２０１は、シミュレータ２１０及びカバレッジ情報２３０、テスト結果異常情報２５０と連動して、テストデータを生成し、生成されたテストデータ（生成テストデータ）の妥当性を確認したのち、妥当であるとされた生成テストデータを用いて検証対象装置シミュレータ２１０において擬似テストを実行して、テスト結果の期待値を生成する。これにより、本テスト実行部２４０を行う前の段階で、生成テストデータの妥当性確認や期待値生成が完了した状態となっている。
【００２２】
そして、本テスト実行部２４０では、論理シミュレーション環境２２０と連動して検証対象装置１０１の論理シミュレーション（本テスト）を行う。本テスト実行部２４０では、既にテストデータ生成部２０１で妥当性チェックが行われた生成テストデータを用いて論理シミュレーションを行う為、既にカバレッジの最適化が図られた状態でシミュレーションが行われる。また、論理シミュレーションが行われた結果は、テスト結果判定処理部２４２により判定され、カバレッジ情報２３０またはテスト結果異常情報２５０の何れか一方を更新する。この事で、新たにテスト生成を行う際に、前回の論理シミュレーション結果を次回のテスト生成に反映させる事が可能となる。
【００２３】
図３は、本発明に係る論理検証方法における検証プログラムの一例を示すフロー図である。本図は、論理検証のための１回のテストの処理を示している。
【００２４】
まず試験者は、ステップ３００において、検証プログラムの実行をスタートするが、事前準備として情報処理端末１００よりカバレッジ情報とテスト結果異常情報の初期化を行う。カバレッジ情報は、情報処理装置（検証対象装置）の論理検証の網羅性を管理するものであり、情報処理装置に対して実行されるテストデータのテスト結果が正常と判定された場合の情報を管理し、テスト結果異常情報は、テストデータのテスト結果が異常と判定された場合の情報を管理する。次にステップ３０１において、試験者は、検証プログラムの初期パラメータを情報処理端末１００より入力し、テストパタンの初期設定（更新）を行う。その後の動作は全て検証プログラムによる自動実行となる。
【００２５】
本例では、試験者の目的とする検証対象装置のリソースや、テストを行いたい実行時間指定に相当するテスト生成回数などを検証プログラムの初期パラメータとして指定する。検証プログラムの初期パラメータを試験者が指定出来る事により、試験者は繰り返しテストの実行状況を管理可能となる。
【００２６】
ステップ３０２において、検証対象装置の論理検証の網羅性を管理するカバレッジ情報とテスト結果が異常と判定されたカバレッジ項目を管理するテスト結果異常情報を参照してテストデータを生成する。テストデータの生成は、妥当性チェック部２１１のカバレッジ情報参照部２１２におけるカバレッジ情報とテスト結果異常情報参照部２１３におけるテスト結果異常情報を参照して行う。
【００２７】
ステップ３０１で更新されるテストパタンは、ステップ３１１で行うテストパラメータの更新、及びカバレッジ情報２３０とテスト結果異常情報２５０より更新処理を行うが、本処理を実施する事で、ステップ３０２で生成されるテストデータの生成処理時に、前回の生成処理とは異なる情報を与える事が可能となる。上記処理の組み合わせにより、網羅テストの効率化を図っている。
【００２８】
生成テストデータは、ステップ３０３において、妥当性の判定が行われる。妥当性の判定は次のようにして行われる。生成テストデータは、シミュレータ２１０に内蔵されている妥当性チェック部２１１において妥当性がチェックされる。すなわち、妥当性チェック部２１１の生成テストデータチェック部２１４において、生成テストデータがテスト済みかどうかを判断し、生成テストデータがテスト済みであれば、ステップ３０３における妥当性の判定は妥当でない（ＮＧ）とされ、生成テストデータがテスト済みでなければ妥当（ＯＫ）とする。また、生成テストデータチェック部２１４は生成テストデータが既にテスト結果異常判定済みかどうかをチェックする。生成されたテストデータが既にテスト結果異常判定済みと判断された場合、ステップ３０３において、妥当性の判定は妥当でない（ＮＧ）とされる。一方、生成テストデータがテスト結果異常判定済みでないと判断された場合、ステップ３０３において、妥当性の判定は妥当（ＯＫ）とされる。このように、生成テストデータの妥当性チェック部は、生成テストデータが既にカバレージ済みのテストデータではないことと、カバレージを試みたがテスト結果が異常と判定されたテストデータではない事を判定する。
【００２９】
ステップ３０３において、生成テストデータの妥当性の判定が妥当ではない（ＮＧ）とされた場合は、ステップ３０８において、テストパラメータの修正を行い、ステップ３０２において、テストデータが再生成される。本処理を繰り返す事で期待したカバレッジを満たすテストデータが生成される。
【００３０】
一方、ステップ３０３において、生成テストデータの妥当性の判定が妥当（ＯＫ）とされた場合は、ステップ３０４において、生成テストデータを用いてシミュレータ２１０上でシミュレーション（擬似テスト）が実行される。この擬似テストは、期待値生成部２１５の擬似テスト実行部２１６において実行され、テスト結果の期待値が生成される。このように妥当であると判定された生成テストデータを用いて検証対象装置のシミュレータを用いて擬似テストを実行し、擬似テストによる期待値を生成する。期待値の生成は、例えば次のようにして行われる
【００３１】
テスト結果の期待値はシミュレータ２１０にて、生成テストデータを疑似的に実行する事で生成する。シミュレータ２１０では、レジスタ/メモリ情報などを疑似モデルとして管理しており、生成テストデータを実行する事で各レジスタ/メモリの情報がどの様に変化するかを確認する為の疑似動作が可能となっており、シミュレータ２１０では、テスト結果の期待値としてシミュレータ２１０での実行結果を出力する動作を行う。
【００３２】
ステップ３０４まで正常に実行出来た時点で、次の本テストの実行が可能となる。
【００３３】
ステップ３０５において、妥当であると判定された生成テストデータを用いて検証対象装置に対し本テストが実行される。本テストの実行は、上述のように、図２に示す論理シミュレーション環境２２０と連動して検証対象装置１０１の論理シミュレーション（本テスト）を行う。ステップ３０６において、検証対象装置に対して実行した本テストのテスト結果と期待値とを比較する。
論理シミュレーションの結果の判定は、シミュレータ２１０の出力結果である、レジスタ、及びメモリの値や、その他の検証対象装置のリソースの値を対象として、検証対象装置での論理シミュレーションの実行結果と比較を行い、比較結果が等しければ正常、異なっていれば異常と判断し、論理シミュレーションのテスト判定結果とする。
【００３４】
テスト結果判定が異常（ＮＧ）の場合、ステップ３０９において、エラーメッセージを出力し、エラー通知を行う。そして、テスト結果異常情報更新３１３よりテスト結果異常情報２５０の更新を行い、ステップ３１１において、カバレッジ情報２３０よりカバレッジ情報とテスト結果異常情報２５０よりテスト結果異常情報を取得し、テストパラメータを更新し、ステップ３０１において、テストパタンを更新（未実施且つテスト結果異常登録済みでないテストパタン選択）し、上述の各ステップが繰り返される。また、テスト結果判定が正常（ＯＫ）の場合は、カバレッジ情報更新３１２よりカバレッジ情報２３０の更新を実施し、ステップ３０７において終了判定を行う。
【００３５】
終了判定においては、終了条件を満たす場合は論理検証を終了し、終了条件を満たさない場合は先の各ステップを繰り返す。すなわち、ステップ３０７では、終了条件（カバレッジ情報の網羅テストの終了、シミュレーション回数、及び総合のテスト時間など）の確認を行い、終了の判定（Ｙ）の場合は、ステップ３１０において、検証プログラムは終了となる。一方、未終了の判定（Ｎ）の場合は、ステップ３１１において、カバレッジ情報２３０よりカバレッジ情報とテスト結果異常情報２５０よりテスト結果異常情報を取得し、テストパラメータを更新し、ステップ３０１において、テストパタンを更新（未実施且つテスト結果異常登録済みでないテストパタン選択）し、上述の各ステップが繰り返される。
【００３６】
図４は、妥当性チェック部２１１の具体例を示す図である。ここで、カバレッジ情報として採取するデータは、汎用的に指定する事が可能であるが、図４では一実施例として、プロセッサリソースの組み合わせによるカバレッジ情報を元にして行う網羅テストの例を示す。また、テスト結果が異常と判定された情報についてもカバレッジ情報と同一のプロセッサリソースの組み合わせによる情報をテスト結果異常情報として採取した例を示す。図中のカバレッジ情報参照部２１２とテスト結果異常情報参照部２１３に示すように、カバレッジ情報４１４とテスト結果異常情報４１６はプロセッサ１１１のＣＰＵ１１２−１１５ごとに集計格納され、カバレッジ情報４１４とテスト結果異常情報４１６のフォーマットにて管理されている。また２次元マトリクス４１５、４１７は、ＣＰＵ１１２−１１５各リソースの全ての組み合わせをテーブル構成で管理している。
【００３７】
テストデータ生成部２０１では、各ＣＰＵ１１２−１１５のカバレッジ情報４１４とテスト結果異常情報４１６より、未実施リソース且つテスト結果異常登録されていないリソース項目を検索し、各ＣＰＵ１１２−１１５のテストデータを生成する。生成した各ＣＰＵ１１２−１１５のテストデータからマトリクス４１５、４１７の項目により該当する項目を検索し、マトリクス４１５、４１７の該当項目を更新する。
【００３８】
生成テストデータチェック部２１４では、各ＣＰＵ１１２−１１５のカバレッジ情報４１４及びカバレッジ情報マトリクス４１５の更新が行われているかどうかのチェックを行い、その更新が確認出来ない場合（すなわち既にテスト済のテストデータが生成された場合）、テストデータの妥当性の判定は妥当ではない（ＮＧ）とされ、テストデータ再生成の要求を発行する。カバレッジ情報４１４及びカバレッジ情報マトリクス４１５の更新が確認出来た場合（すなわち未だテスト済でないテストデータが生成された場合）、生成テストデータの妥当性の判定が妥当（ＯＫ）となる。また、ＣＰＵ１１２−１１５のテスト結果異常情報４１６及びテスト結果異常情報マトリクス４１７の更新が行われているかどうかのチェックを行い、その更新が確認出来ない場合（すなわち既にテスト済みで結果が異常と判定されてたテストデータが生成された場合）、テストデータの妥当性の判定は妥当ではない（ＮＧ）とされ、テストデータ再生成の要求を発行する。テスト結果異常情報４１６及びテスト結果異常情報マトリクス４１７の更新が確認出来た場合（すなわち未だテスト結果が異常と判定されていないテストデータが生成された場合）、生成テストデータの妥当性の判定が妥当（ＯＫ）となる。カバレッジ情報４１４を元にした妥当判定とテスト結果異常情報４１６を元にした妥当性判定の両方で妥当（ＯＫ）とされた後、次の期待値生成部２１５へ状態を遷移する。
【００３９】
図５は、図３のステップ３０８におけるテストパラメータの修正の具体例を示す図である。上述のように、妥当性チェック部２１１により、生成テストデータが妥当ではないと判断された場合は、テストデータの再生成を行う。本例では、検証対象装置において、ＣＰＵで各命令が使用する汎用レジスタの競合に関わる論理を対象としたテストデータの生成の例を示す。
【００４０】
図５に示すように、テストパラメータの修正に係るステップ３０８は、対象カバレッジ情報テスト結果異常情報解析処理に係るステップ５００と、テストパラメータ再生成処理に係るステップ５０１を備える。ステップ５００の解析処理では、妥当性チェック部２１１がテストデータの妥当性を判断する際に使用した対象カバレッジ情報とテスト結果異常情報を解析し、発生頻度が低く試験結果の異常頻度も低いパタンを抽出し、続いてステップ５０１のテストパラメータ再生成処理において、テストパラメータの再生成を行う。テストパラメータは対象カバレッジ情報やテスト結果異常情報と同様のパラメータから構成される。これにより以降生成するテストデータは、ステップ５０１による再生後のテストパラメータに依存することになる。
【００４１】
図６は、図５におけるカバレッジ情報とテスト結果異常情報の一例を示す図である。本例のカバレッジ情報は、先行側命令情報と競合側命令情報の２次元テーブルで構成される。本テーブルにおいて、各々の位置関係（サイクル数）、命令種、競合対象であるレジスタ番号の各要素を満足するテストデータを生成した場合、テスト生成回数が更新される。また、本例のテスト結果異常情報は、カバレッジ情報と同一の構成で管理され、テスト結果が異常となった場合には異常回数が更新される。図７は、図６におけるテスト結果異常情報の例１、例２としてテスト結果が異常判定されるテストデータと現象例を示す図である。これは、検証対象装置の不具合とテストデータの例を示すものである。図７において、整数演算命令の演算結果が異常の例（例１）は、先行側命令の演算結果が競合側命令に正しく反映されない場合を示し、分岐命令の分岐先が異常の例（例２）は、先行側の分岐命令が競合側命令の演算結果を誤って反映してしまう場合を示す。
【００４２】
命令に関してはプロセッサのアーキテクチャに依存する部分であり、パイプライン動作等を考慮して、カバレッジ採取を行う必要が有る。また、周辺機器に関してもトランザクションのレイテンシ等を考慮し、カバレッジ項目を満足する様な動作を実現する必要が有る。図５に示す動作は一例であるが、本発明の実装にあたっては検証対象装置固有の動作を考慮して、カバレッジ情報とテスト結果異常情報を採取しテストデータ生成に反映する必要が有る。
【００４３】
以上の各ステップは、コンピュータに次のプログラムを実行させることで実施することもできる。すなわち、このプログラムは、コンピュータに、情報処理装置に対して実行されるテストデータのテスト結果が正常と判定された場合の情報を管理するカバレッジ情報と前記テストデータのテスト結果が異常と判定された場合の情報を管理するテスト結果異常情報とを初期化する手順、前記カバレッジ情報および前記テスト結果異常情報を参照してテストデータを生成する手順、前記生成テストデータがテスト済みかどうかを判断し、テスト済みであれば前記生成テストデータを妥当でないと判定し、前記生成テストデータがテスト済みでなければ前記生成テストデータを妥当であると判定する手順、前記生成テストデータのテスト結果が異常判定済みかどうかを判断し、テスト結果異常判定済みと判断された場合は、前記生成テストデータを妥当でないと判定し、生成テストデータがテスト結果異常判定済みでないと判断された場合は、前記生成テストデータを妥当であると判定する手順、前記両手順で妥当であると判定された生成テストデータについて前記情報処理装置のシミュレータを用いて擬似テストを実行し、前記擬似テストによる期待値を生成する手順、前記両手順で妥当であると判定された生成テストデータについて前記情報処理装置に対し本テストを実行する手順、前記情報処理装置に対して実行した前記本テストのテスト結果と前記期待値とを比較し、前記テスト結果が正常かどうかを判定する手順、前記テスト結果の判定が異常と判定された場合は前記テスト結果異常情報を更新し、また前記テスト結果の判定が正常と判定された場合は前記カバレッジ情報を更新して終了判定を行い、前記終了判定において終了条件を満たす場合は論理検証を終了し、終了条件を満たさない場合は前記テストデータを生成する手順以降の各手順を繰り返す手順、を実行させることで行うことができる。また、このプログラムは、ＣＤＲＯＭ等の記憶媒体に格納して又は通信手段によって提供することも可能である。
【産業上の利用可能性】
【００４４】
本発明は、情報処理装置の論理検証方法及びプログラムに関するものであり、産業上の利用可能性がある。
【符号の説明】
【００４５】
１００  ・・・情報処理端末
１０１  ・・・検証対象装置
１０２  ・・・検証プログラム
１１１  ・・・プロセッサ
１２０  ・・・システムバス
１２１  ・・・主記憶装置
２０１  ・・・テストデータ生成部
２０２  ・・・カバレッジ情報取得処理部
２０３  ・・・テスト結果異常情報取得処理部
２０４  ・・・テストデータ生成処理部
２０５  ・・・擬似テスト実行処理部
２１１  ・・・妥当性チェック部
２１２  ・・・カバレッジ情報参照部
２１３  ・・・テスト結果異常情報参照部
２１４  ・・・生成テストデータチェック部
２１５  ・・・期待値生成部
２１６  ・・・擬似テスト実行部
２２０  ・・・論理シミュレーション環境
２３０  ・・・カバレッジ情報
２４０  ・・・本テスト実行部
２４１  ・・・本テスト実行処理部
２４２  ・・・テスト結果判定処理部
２４３  ・・・カバレッジ情報更新処理部
２４４  ・・・テスト結果異常情報更新処理部
２４５  ・・・期待値
２４６  ・・・カバー項目
２５０  ・・・テスト結果異常情報
３０１  ・・・テストパタン更新
３０２  ・・・テストデータ生成
３０３  ・・・妥当性判定
３０４  ・・・擬似テスト実行
３０５  ・・・本テスト実行
３０６  ・・・テスト結果判定
３０７  ・・・終了判定
３０８  ・・・テストパラメータの修正
３０９  ・・・エラーメッセージ出力
３１２  ・・・カバレッジ情報更新
３１３  ・・・テスト結果異常情報更新
４１４  ・・・カバレッジ情報
４１５  ・・・カバレッジ情報マトリクス
４１６  ・・・テスト結果異常情報
４１７  ・・・テスト結果異常情報マトリクス
【図１】
2015114923.tif 000003
【図２】
2015114923.tif 000004
【図３】
2015114923.tif 000005
【図４】
2015114923.tif 000006
【図５】
2015114923.tif 000007
【図６】
2015114923.tif 000008
【図７】
2015114923.tif 000009