(57)【要約】【課題】ＬＳＩの機能試験を効率的に実施可能なテストケースを生成することができるテストケース生成装置を得ることを目的とする。【解決手段】個別のテストケースが複数連結されて生成された一連のテストケースをエミュレータ５が実行し、ある個別のテストケースでの実行結果がエラーになると、その個別のテストケースの試験条件に他の試験条件を付加してシミュレータ１２用のテストケースを生成する。これにより、ＬＳＩの機能試験を効率的に実施可能なテストケースを生成することができる。【選択図】        図１
2005031860.tif 000002
【特許請求の範囲】
【請求項１】
集積回路の動作を確認する個別のテストケースを複数連結して、エミュレータ用の一連のテストケースを生成する第１のテストケース生成手段と、上記エミュレータが上記第１のテストケース生成手段により生成された一連のテストケースを実行し、ある個別のテストケースでの実行結果がエラーになると、その個別のテストケースの試験条件に他の試験条件を付加してシミュレータ用のテストケースを生成する第２のテストケース生成手段とを備えたテストケース生成装置。
【請求項２】
第１のテストケース生成手段は、個別のテストケースの出力データが他の個別のテストケースの入力データになるように複数の個別のテストケースをシリーズに連結することを特徴とする請求項１記載のテストケース生成装置。
【請求項３】
シミュレータが第２のテストケース生成手段により生成されたテストケースを実行し、そのテストケースでの実行結果がエラーにならない場合、そのテストケースを更新して、更新後のテストケースを上記シミュレータに与えるテストケース更新手段を設けたことを特徴とする請求項１記載のテストケース生成装置。
【請求項４】
テストケース更新手段は、シミュレータの実行結果がエラーになるまで、テストケースを繰り返し更新することを特徴とする請求項３記載のテストケース生成装置。
【請求項５】
テストケース更新手段は、シミュレータがテストケースを実行し、そのテストケースでの実行結果がエラーにならない場合、そのテストケースの試験条件に付加された他の試験条件を変更して当該テストケースを更新することを特徴とする請求項３記載のテストケース生成装置。
【請求項６】
テストケース更新手段は、シミュレータがテストケースを実行し、そのテストケースでの実行結果がエラーになると、そのテストケースを蓄積してから、そのテストケースを更新することを特徴とする請求項３記載のテストケース生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、例えばマイクロプロセッサを構成している集積回路（以下、ＬＳＩという）の動作を確認するためのテストケースを生成するテストケース生成装置に関するものである。
【０００２】
【従来の技術】
ＣＰＵを内蔵しているＬＳＩの設計段階に行う機能試験においては、試験対象であるＬＳＩの機能の高性能化や複雑化が図られているので、動作確認用のテストケースの実行時間（サイクル）を長くすることで、複雑な動作条件でも確認できるようにしている。ただし、１つのテストケースで試験可能な項目は限られるため、多くのテストケースが必要となる。
このため、Ｓ／Ｗシミュレータ上でテストケースを実行すると、その実行結果が得られるまでに長時間を有するので、従来のテストケース生成装置は、短時間で実行結果が得られるエミュレータが実行可能なテストケースを生成するようにしている（例えば、特許文献１参照）。
【０００３】
ただし、エミュレータ上のエミュレーションでは、試験対象のＬＳＩを構成しているモデルの全ての信号線をサンプルして見ることができないため、実行するテストケースの種類やエラーの種類などからサンプルする信号線を変更して、再実行することにより内部状態を判断している。また、信号線の値をサンプルすることが可能なサイクルに制限があり、エラーの検出時間を短くする必要があるため、エラーを検出したテストケースを細分化して、条件を絞り込むなどの変更を行っている。この結果、エミュレーションでは不具合の検出は可能であるが、その原因を追求するために多くの時間を要する。
【０００４】
【特許文献１】
特開２０００−３４８０７１号公報（段落番号［０００８］から［００１３］、図１）
【０００５】
【発明が解決しようとする課題】
従来のテストケース生成装置は以上のように構成されているので、試験対象であるＬＳＩの不具合を短時間で検出可能なエミュレータ用のテストケースを生成することができるが、エミュレーション環境では試験対象のモデルの内部状態を観測することが困難なため、Ｓ／Ｗシミュレータを利用して不具合の解析を行う必要がある。しかし、Ｓ／Ｗシミュレータを利用するには、エミュレータ用のテストケースをＳ／Ｗシミュレータ上で動作可能な実行サイクルまで切り出さなければならず、結局、ＬＳＩの機能試験が完了するまでに長時間を要する課題があった。
【０００６】
この発明は上記のような課題を解決するためになされたもので、ＬＳＩの機能試験を効率的に実施可能なテストケースを生成することができるテストケース生成装置を得ることを目的とする。
【０００７】
【課題を解決するための手段】
この発明に係るテストケース生成装置は、個別のテストケースが複数連結されて生成された一連のテストケースをエミュレータが実行し、ある個別のテストケースでの実行結果がエラーになると、その個別のテストケースの試験条件に他の試験条件を付加してシミュレータ用のテストケースを生成するようにしたものである。
【０００８】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１はこの発明の実施の形態１によるテストケース生成装置を示す構成図であり、図において、テストケース生成部２はＬＳＩの動作を確認する個別のテストケース（テストケースは少なくとも１以上の試験条件１を含む）を複数連結して、エミュレータ５用の一連のテストケースである実行時間が長いテストケース３を生成する第１のテストケース生成手段を構成している。なお、ｓｅｅｄ対応表４はテストケースの試験項目と試験条件を示しており、後述するテストケース生成部１０が実行時間の短いテストケース１１を生成する際に参照する。
エミュレータ５は試験対象であるＬＳＩのモデル６を搭載し、テストケース生成部２により生成された長いテストケース３を実行する。実行結果７は実行時間の長いテストケース３がＬＳＩのモデル６上で正しく動作したか否か示すエミュレータ５の実行ログである。実行ｓｅｅｄ８は個別のテストケースに対応するユニークなＩＤであり、エミュレータ５がエラー終了した場合には、最後に動作していた個別のテストケースに対応するＩＤが実行ｓｅｅｄ８としてエミュレータ５から出力される。
【０００９】
実行結果判定部９はエミュレータ５の実行結果７を参照し、長いテストケース３が正常に実行されている場合、他に未実行の長いテストケース３があれば、エミュレータ５に対して引き続き未実行の長いテストケース３の実行を指示する。一方、長いテストケース３が正常に実行されていなければ、テストケース生成部１０に対して実行時間が短いテストケース１１の生成を指示する。
テストケース生成部１０は実行結果判定部９から短いテストケース１１の生成指示を受けると、長いテストケース３の実行状態を示す実行ｓｅｅｄ８とｓｅｅｄ対応表４を参照して、実行時間が短いテストケース１１を生成する。即ち、長いテストケース３を構成する個別のテストケースのうち、ある個別のテストケースでの実行結果がエラーになると、その個別のテストケースの試験条件１に他の試験条件を付加してシミュレータ１２用のテストケースを生成する。なお、実行結果判定部９及びテストケース生成部１０は第２のテストケース生成手段を構成している。
【００１０】
シミュレータ１２は試験対象であるＬＳＩのモデル１３を搭載し、テストケース生成部１０により生成された短いテストケース１１を実行する。
実行結果判定部１５はシミュレータ１２の実行結果１４を参照し、短いテストケース１１が正常に実行されていない場合、テストケース生成部１０に対して短いテストケース１１の更新を指示する。
テストケース生成部１０は実行結果判定部１５から短いテストケース１１の更新指示を受けると、短いテストケース１１の試験条件に付加された他の試験条件を変更して短いテストケース１１を更新する。生成履歴１６は過去に生成された短いテストケース１１を記録している。
なお、実行結果判定部１５及びテストケース生成部１０はテストケース更新手段を構成している。
【００１１】
この実施の形態１では、テストケース生成部２，１０及び実行結果判定部９，１５は専用のハードウエア（例えば、集積回路）を用いて構成されているものとして説明するが、これに限るものではなく、これらの処理内容が記述されたソフトウエアを用意し、図示せぬＣＰＵが当該ソフトウエアを実行するようにしてもよい。
また、試験条件１、ｓｅｅｄ対応表４及び生成履歴１６は図示せぬメモリに格納されているものとする。
なお、エミュレータ５は専用のハードウエアであり、シミュレータ１２は図示せぬ計算機に内蔵され、短いテストケース１１を実行するデバッグプログラムである。
【００１２】
次に動作について説明する。
この実施の形態１では、システムＬＳＩの動作を確認する場合、試験の初期段階では、高速に動作確認を行うことが可能なエミュレータ５を使用する。エミュレータ５が不具合を検出すると、エミュレータ５よりも詳細に不具合を解析することが可能なシミュレータ１２を使用して動作確認を行う。
具体的には次の通りである。
【００１３】
まず、テストケース生成部２が、ＬＳＩの動作を確認する個別のテストケースを複数連結して、エミュレータ５用の一連のテストケースである実行時間の長いテストケース３を生成するとともに、テストケース生成部１０が実行時間の短いテストケース１１を生成する際に参照するｓｅｅｄ対応表４を生成する。
ここで、図２は実行時間の長いテストケース３の構造を示しており、実行時間の長いテストケース３は、エミュレータ５が実行を開始する時点の入力データＡを入力し、エミュレータ５が実行を終了した時点の出力データＢを出力する。
【００１４】
長いテストケース３の内部は、テストケース生成部１０による短いテストケース１１の生成を容易にするために、短いテストケース１１に相当する個別のテストケース（以下、ｂｌｏｃｋという）がシリーズに複数連結されている構造になっている。
即ち、長いテストケース３は、ｂｌｏｃｋ−１、ｂｌｏｃｋ−２、・・・、ｂｌｏｃｋ−ｎがシリーズに連結され、前段のｂｌｏｃｋの出力データが後段のｂｌｏｃｋの入力データになっている。
なお、ｂｌｏｃｋの実態は、エミュレータ５の実行シーケンスであり、ｓｅｅｄ−１、ｓｅｅｄ−２、ｓｅｅｄ−ｎは、エミュレータ５がｂｌｏｃｋを実行したときの実行ｓｅｅｄに相当する。
【００１５】
図４はｓｅｅｄ対応表４の生成例を示しており、図４の例では、試験対象として“Ａ”から“Ｚ”までの２６個の試験項目がある試験条件を示している。
長いテストケース３の生成する毎に試験項目を決定するが、例えば、テストケース１の場合は、試験項目が｛Ｃ，Ｅ，Ｉ｝である試験条件を決定し、テストケース２の場合は、試験項目が｛Ｄ，Ｅ｝である試験条件を決定している。
なお、長いテストケース３内の各ｂｌｏｃｋの試験条件は、長いテストケース３の試験条件と同一であるが、その試験項目に関する条件を相互に変えている。
したがって、テストケース１の各ｂｌｏｃｋの試験条件は全て｛Ｃ，Ｅ，Ｉ｝であって同じであるが、例えば、ｂｌｏｃｋ−１における試験項目に関する条件は｛４，１，５｝であるのに対し、ｂｌｏｃｋ−２における試験項目に関する条件は｛３，３，３｝であり、相互に異なる。
【００１６】
エミュレータ５は、試験対象であるＬＳＩのモデル６を搭載し、テストケース生成部２が実行時間の長いテストケース３を生成すると、その長いテストケース３を実行して、その実行結果７を実行結果判定部９に出力する。また、長いテストケース３の実行状態を示す実行ｓｅｅｄ８をテストケース生成部１０に出力する。
【００１７】
実行結果判定部９は、エミュレータ５の実行結果７を参照し、長いテストケース３が正常に実行されているか否かを判定する。長いテストケース３が正常に実行されている場合において、他に未実行の長いテストケース３があれば、エミュレータ５に対して引き続き未実行の長いテストケース３の実行を指示する。例えば、テストケース１を実行し、その実行結果が正常であれば、テストケース２の実行を指示する。テストケースｎまで実行を終了し、テストケースｎの実行結果が正常であれば、システムＬＳＩの動作は正常であると認定する。
一方、長いテストケース３が正常に実行されていなければ、テストケース生成部１０に対して実行時間が短いテストケース１１の生成を指示する。
【００１８】
テストケース生成部１０は、実行結果判定部９から短いテストケース１１の生成指示を受けると、長いテストケース３の実行状態を示す実行ｓｅｅｄ８とｓｅｅｄ対応表４を参照して、実行時間が短いテストケース１１を生成する。
例えば、長いテストケース３を構成するｂｌｏｃｋのうち、ｂｌｏｃｋ−４での実行結果がエラーになると、図５に示すように、ｂｌｏｃｋ−４の試験条件｛Ｃ，Ｅ，Ｉ｝に他の試験条件を付加して実行時間の短いテストケース１１（例えば、ｔｅｓｔｃａｓｅ−１）を生成する。即ち、ｂｌｏｃｋ−４の試験条件｛Ｃ，Ｅ，Ｉ｝を固定し、その他の試験条件を付加して短いテストケース１１を生成する。
【００１９】
ここで、ｂｌｏｃｋ−４の試験条件｛Ｃ，Ｅ，Ｉ｝に他の試験条件を付加する理由は、実行時間の長いテストケース３でのエラーの条件が実行時間の短いテストケース１１に含まれていない場合があるからである。
図３は実行時間の長いテストケース３からｂｌｏｃｋ−４を取り出して、実行時間の短いテストケース１１を生成した場合を示している。
短いテストケース１１の入力データはｂｌｏｃｋ−４の入力データと同じであり、短いテストケース１１の出力データはｂｌｏｃｋ−４の出力データと同じである。“状態設定”は短いテストケース１１の動作条件をｂｌｏｃｋ−４の実行前の動作状態に設定するためのものである。この“状態設定”を変更することにより、同じ短いテストケース１１でも異なる試験を行うことができる。
【００２０】
シミュレータ１２は、試験対象であるＬＳＩのモデル１３を搭載し、テストケース生成部１０が実行時間の短いテストケース１１を生成すると、その短いテストケース１１を実行する。
実行結果判定部１５は、シミュレータ１２の実行結果１４を参照し、短いテストケース１１が正常に実行されているか否かを判定する。短いテストケース１１が正常に実行されている場合、実行時間の長いテストケース３でのエラーの条件が実行時間の短いテストケース１１に含まれていない可能性があるので、テストケース生成部１０に対して短いテストケース１１の更新を指示する。
【００２１】
テストケース生成部１０は、実行結果判定部１５から短いテストケース１１の更新指示を受けると、短いテストケース１１の試験条件に付加された他の試験条件を変更して短いテストケース１１を更新する（図５を参照）。この際、過去に生成した短いテストケース１１と同じ短いテストケース１１を生成しないようにするため、生成履歴１６を参照して短いテストケース１１を更新する。
例えば、ｔｅｓｔｃａｓｅ−１が正常に実行されている場合、試験項目Ａに関する条件を“１”から“２”に変更してｔｅｓｔｃａｓｅ−２を生成する。
【００２２】
実行結果判定部１５は、短いテストケース１１が正常に実行されていない場合、その短いテストケース１１と実行結果１４を蓄積するが、さらに、詳細なエラー解析を続ける場合には、テストケース生成部１０に対して短いテストケース１１の更新を指示する。
【００２３】
以上で明らかなように、この実施の形態１によれば、個別のテストケースが複数連結されて生成された一連のテストケースをエミュレータ５が実行し、ある個別のテストケースでの実行結果がエラーになると、その個別のテストケースの試験条件に他の試験条件を付加してシミュレータ１２用のテストケースを生成するように構成したので、ＬＳＩの機能試験を効率的に実施可能なテストケースを生成することができる効果を奏する。
即ち、試験の初期段階では、高速に動作確認を行うことが可能なエミュレータ５を使用し、エミュレータ５が不具合を検出すると、エミュレータ５よりも詳細に不具合を解析することが可能なシミュレータ１２を使用して動作確認を行うが、その際、エミュレータ５用の一連のテストケースからエラーが発生した個別のテストケースを切り出すだけで、シミュレータ１２用のテストケースを生成することができるので、ＬＳＩの機能試験を効率的に実施することができる。
【００２４】
実施の形態２．
図６はテストケース生成部２の処理内容を示すフローチャートであり、図７はテストケース生成部１０の処理内容を示すフローチャートである。また、図８はテストケース生成部２，１０の共通の処理内容を示すフローチャートである。
上記実施の形態１でも、テストケース生成部２，１０の処理内容を説明しているが、この実施の形態２では、更に詳細に処理内容を説明する。
【００２５】
まず、テストケース生成部２は、テストケースの試験条件が指定されると、例えば、乱数発生器等を使用して、再現するためのｓｅｅｄと試験条件を変化させて試験項目を確定する（ステップＳＴ１，ＳＴ１−１）。
次に、テストケース生成部２は、その確定した試験項目から長いテストケース３のｂｌｏｃｋのｓｅｅｄ（）の形式を決定し（図４の例ではＡ〜Ｚの２６個の試験項目）、その試験項目の対応表（長いテストケース３を構成するｂｌｏｃｋのＩＤに対応して試験条件をまとめた表）を作成する（ステップＳＴ１，ＳＴ１−２）。
【００２６】
テストケース生成部２は、長いテストケース３のｓｅｅｄと試験項目の対応表を作成すると、長いテストケース３のｂｌｏｃｋの試験条件を決定し（ステップＳＴ２−１，ＳＴ２−１−１）、その試験条件から試験項目の対応表に合わせてｂｌｏｃｋのｓｅｅｄを決定する（ステップＳＴ２−１，ＳＴ２−１−２）。即ち、試験項目の対応表から取り出した試験条件には、値が設定されていない試験項目があるので、値が設定されていない試験項目の値を設定する。
次に、テストケース生成部２は、試験項目の試験条件にしたがって入力データを決定する（ステップＳＴ２−２）。その際、入力データに関する条件があれば、その条件にしたがって入力データを決定する。また、前段のｂｌｏｃｋの出力データがある場合には、その出力データを入力データとして確定する。
次に、テストケース生成部２は、後述する図８の処理フローにしたがってテストシーケンスを生成する（ステップＳＴ２−３）。ステップＳＴ２−１からＳＴ２−３の処理を繰り返すことにより、長いテストケース３を構成する複数のｂｌｏｃｋを生成する。
【００２７】
テストケース生成部２は、複数のｂｌｏｃｋを生成すると、前段のｂｌｏｃｋ（テストシーケンス）の出力データを後段のｂｌｏｃｋ（テストシーケンス）の入力データと接続して、複数のテストシーケンスをシリーズに連結することにより、実行時間の長いテストケース３を生成する（ステップＳＴ３，ＳＴ３−１）。その際、その出力データの期待値と実行時の値を比較するためのシーケンスが必要な場合には、期待値比較シーケンスを生成し、長いテストケース３の最後にマージする（ステップＳＴ３−２）。
【００２８】
次に、テストケース生成部１０は、ｂｌｏｃｋのｓｅｅｄと試験項目の対応表から試験項目の条件を確定する（ステップＳＴ１１，ＳＴ１１−１）。その際、試験項目の条件の確定は、テストケース毎に生成される試験項目の対応表とｂｌｏｃｋのｓｅｅｄを読み込み（ステップＳＴ１１−１−１）、そのｂｌｏｃｋのｓｅｅｄを試験項目の対応表に照らし合わせて、ｓｅｅｄの試験項目と試験条件を確定する（ステップＳＴ１１−１−２）。
【００２９】
次に、テストケース生成部１０は、指定された試験項目の試験条件以外に確定していない試験項目の試験条件を過去の生成履歴１６から確定する（ステップＳＴ１１，ＳＴ１１−２）。
その際、試験条件の確定は、過去の生成履歴１６から指定された試験項目と試験条件（試験条件の対応表から取り出した実行ｓｅｅｄ８に対応する試験項目と試験条件）が一致する条件を取り出し（ステップＳＴ１１−２−１）、その過去の生成履歴１６で指定されていない試験項目の試験条件をマージし、既に生成した試験条件を取り出す（ステップＳＴ１１−２−２）。
そして、マージした試験項目の試験条件の中で、まだ、生成していない試験項目と試験条件を確定し（ステップＳＴ１１−２−３）、その確定した試験項目と試験条件を過去の生成履歴として登録し、次回のテストケースの生成時に使用する（ステップＳＴ１１−２−４）。
【００３０】
テストケース生成部１０は、上記のようにして試験項目と試験条件を確定すると、その試験項目と試験条件から入力データを生成する（ステップＳＴ１２）。
入力データの生成は、その試験項目と試験条件から入力データに関する条件を選択し（ステップＳＴ１２−１）、その選択した条件に応じて入力データを生成する（ステップＳＴ１２−２）。
次に、テストケース生成部１０は、後述する図８の処理フローにしたがってテストシーケンスを生成する（ステップＳＴ１３）。
【００３１】
テストケース生成部１０は、そのテストシーケンスと入力データと出力データに基づいて実行時間の短いテストケースを生成する（ステップＳＴ１４，ＳＴ１４−１）。その際、入力データを設定するためシーケンスが必要な場合には、入力データ生成シーケンスを生成し、テストシーケンスの最初にマージする。また、その出力データの期待値と実行時の値を比較するためのシーケンスが必要な場合には、期待値比較シーケンスを生成し、短いテストケース１１の最後にマージする（ステップＳＴ１４−２）。
【００３２】
次に、図８におけるテストシーケンスの生成処理を説明する。
テストケース生成部２，１０は、試験項目の中でシーケンスの個数に関する試験条件を選択し（ステップＳＴ２１）、そのシーケンスの個数分のシーケンスを生成する（ステップＳＴ２２）。
即ち、テストケース生成部２，１０は、試験項目の中でシーケンスの条件に関する試験項目を選択すると（ステップＳＴ２２−１）、その試験項目と試験条件から最初のシーケンスの条件を確定してシーケンスを生成する（ステップＳＴ２２−２）。
【００３３】
次に、その生成したシーケンスとシーケンスへの入力データから、シーケンス実行後の出力データを決定し（ステップＳＴ２２−３）、その出力データを次の入力データとして設定する（ステップＳＴ２２−４）。そして、次のシーケンスを生成するための試験項目に対する試験条件を確定する（ステップＳＴ２２−５）。ステップＳＴ２１−１〜ＳＴ２２−５の処理を繰り返し実施することにより、選択したシーケンスの個数分のシーケンスを生成する。
この実施の形態２によれば、上記実施の形態１と同様に、ＬＳＩの機能試験を効率的に実施可能なテストケースを生成することができる効果を奏する。
【００３４】
実施の形態３．
図９はテストケースの具体的な生成例を示す説明図である。
図９の例では、３個のレジスタＲ０，Ｒ１，Ｒ２と２個のメモリ領域＠Ｒ３，＠Ｒ４と１個のキャッシュとを利用して、テストケースを生成するようにしている。なお、キャッシュの状態は、コピー状態Ｃと変更状態Ｍの２種類があるものとする。
また、図９の例では、テストケースを構成するｂｌｏｃｋ−１〜ｂｌｏｃｋ−３は、それぞれ４個の命令を指定するシーケンスからなされるものとする。
【００３５】
最初のｂｌｏｃｋ−１の生成において、４個の命令が例えば乱数のシード値によってＡＤＤ→ＬＤ→ＬＤ→ＳＵＢの順番に生成することが決定されると、最初のＡＤＤ命令で使用する資源としてレジスタＲ０，Ｒ１をランダムに選択する。
この結果、レジスタＲ０，Ｒ１の初期値の設定が必要となるので、レジスタＲ０に対して０ｘ０１２３、レジスタＲ１に対して０ｘ４５６７をランダムに設定する。また、ＡＤＤ命令の実行後の期待値として、レジスタＲ０に期待値０ｘ４６８Ａを設定する。
【００３６】
次のＬＤ命令で使用する資源としてレジスタＲ２とメモリ領域＠Ｒ３をランダムに選択する。
この結果、レジスタＲ２とメモリ領域＠Ｒ３の初期値の設定が必要となるので、レジスタＲ２に対して０ｘ９９９９、メモリ領域＠Ｒ３に対して０ｘ１１１１をランダムに設定する。
また、ＬＤ命令の実行後の期待値として、レジスタＲ２に期待値０ｘ１１１１を設定する。メモリからデータを読み込んだ結果、キャッシュの状態は、ＭＩＳＳとなり、メモリ領域＠Ｒ３をキャッシュにコピーする状態Ｃで保持する。
【００３７】
次のＬＤ命令で使用する資源としてレジスタＲ１とメモリ領域＠Ｒ３をランダムに選択する。使用する全ての資源には初期値が設定されているため、初期化処理は行わない。
また、ＬＤ命令の実行後の期待値として、レジスタＲ１に期待値０ｘ１１１１を設定する。これにより、メモリからデータを読み込む際、キャッシュにＨＩＴすることになる。
【００３８】
次のＳＵＢ命令で使用する資源としてレジスタＲ０，Ｒ１をランダムに選択する。使用する全ての資源には初期値が設定されているため、初期化処理は行わない。
また、ＳＵＢ命令の実行後の期待として、レジスタＲ１に期待値０ｘＣＡ８７を設定する。
【００３９】
これにより、最初のｂｌｏｃｋ−１における４個の命令が生成されたことになるため、ｂｌｏｃｋ単位でのレジスタ、メモリ領域及びキャッシュに対する入力データと出力データも確定したことになる。
この場合、入力データは、Ｒ０が０ｘ０１２３、Ｒ１が０ｘ４５６７、Ｒ２が０ｘ９９９９、＠Ｒ３が０ｘ１１１１、＠Ｒ４が未使用、キャッシュが何も無い状態となる。
また、出力データは、Ｒ０が０ｘ４６８Ａ、Ｒ１が０ｘＣＡ８７、Ｒ２が０ｘ１１１１、＠Ｒ３が０ｘ１１１１、＠Ｒ４が未使用、キャッシュが＠Ｒ３のコピー状態Ｃとなる。
【００４０】
ｂｌｏｃｋ−１と同様にして、残りのｂｌｏｃｋ−２，ｂｌｏｃｋ−３も生成すると、テストケースは３個のｂｌｏｃｋ−１，ｂｌｏｃｋ−２，ｂｌｏｃｋ−３を連続的に実行するため、ｂｌｏｃｋ−１の先頭のＡＤＤからｂｌｏｃｋ−３の最後のＳＵＢまで、１２個の命令から構成されることになる。
また、入力データは、Ｒ０が０ｘ０１２３、Ｒ１が０ｘ４５６７、Ｒ２が０ｘ９９９９、＠Ｒ３が０ｘ１１１１、＠Ｒ４が０ｘ２２２２、キャッシュが何も無い状態となる。
また、出力データは、Ｒ０が０ｘＥ０２４、Ｒ１が０ｘ３３３３、Ｒ２が０ｘ２２２２、＠Ｒ３が０ｘ３３３３、＠Ｒ４が０ｘ４６８Ａ、キャッシュが＠Ｒ４のコピー状態Ｃとなる。
【００４１】
この実施の形態３では、命令の実行に関するプロセッサを試験対象として説明しているが、内部状態が入力データによって確定し、入力データと内部状態によって出力データが決定するものを試験対象として考えれば、本テストケースの生成方式を適用することができ、同様の効果が得られる。
【００４２】
【発明の効果】
以上のように、この発明によれば、個別のテストケースが複数連結されて生成された一連のテストケースをエミュレータが実行し、ある個別のテストケースでの実行結果がエラーになると、その個別のテストケースの試験条件に他の試験条件を付加してシミュレータ用のテストケースを生成するように構成したので、ＬＳＩの機能試験を効率的に実施可能なテストケースを生成することができる効果がある。
【図面の簡単な説明】
【図１】この発明の実施の形態１によるテストケース生成装置を示す構成図である。
【図２】実行時間の長いテストケースの構造を示す説明図である。
【図３】実行時間の短いテストケースの構造を示す説明図である。
【図４】ｓｅｅｄ対応表の生成例を示す説明図である。
【図５】実行時間の短いテストケースの生成例を示す説明図である。
【図６】テストケース生成部の処理内容を示すフローチャートである。
【図７】テストケース生成部の処理内容を示すフローチャートである。
【図８】テストケース生成部の共通の処理内容を示すフローチャートである。
【図９】テストケースの具体的な生成例を示す説明図である。
【符号の説明】
１  試験条件、２  テストケース生成部（第１のテストケース生成手段）、３長いテストケース、４  ｓｅｅｄ対応表、５  エミュレータ、６  モデル、７実行結果、８  実行ｓｅｅｄ、９  実行結果判定部（第２のテストケース生成手段）、１０  テストケース生成部（第２のテストケース生成手段、テストケース更新手段）、１１  短いテストケース、１２  シミュレータ、１３  モデル、１４  実行結果、１５  実行結果判定部（テストケース更新手段）、１６  生成履歴。
【図１】
2005031860.tif 000003
【図２】
2005031860.tif 000004
【図３】
2005031860.tif 000005
【図４】
2005031860.tif 000006
【図５】
2005031860.tif 000007
【図６】
2005031860.tif 000008
【図７】
2005031860.tif 000009
【図８】
2005031860.tif 000010
【図９】
2005031860.tif 000011