(57)【要約】  プロセッサは、対象システムのシミュレーションモデルに対する複数のテスト項目であって、各テスト項目が少なくとも一つのイベントを含む、複数のテスト項目を取得し、テスト項目の集合内のイベントが集合内の他のテスト項目内のイベントに依存していないという集約条件の下で、複数のテスト項目の中から集合を検出し、集合内のイベントのうち集合内の他のテスト項目内のイベントと同一のイベントである共通イベントの重複を避けて共通イベントを集約テスト項目に含め、集合内のイベントのうち集合内の他のテスト項目内のイベントと異なるイベントである固有イベントを集約テスト項目に含め、集約テスト項目に従ってシミュレーションモデルを用いるシミュレーションを実行する。
2019532429.tif 000002
【特許請求の範囲】
【請求項１】
記憶デバイスと、
前記記憶デバイスに接続されるプロセッサと、
を備え、
前記プロセッサは、
対象システムのシミュレーションモデルに対する複数のテスト項目であって、各テスト項目が少なくとも一つのイベントを含む、前記複数のテスト項目を取得し、
テスト項目の集合内のイベントが前記集合内の他のテスト項目内のイベントに依存していないという集約条件の下で、前記複数のテスト項目の中から前記集合を検出し、
前記集合内のイベントのうち前記集合内の他のテスト項目内のイベントと同一のイベントである共通イベントの重複を避けて前記共通イベントを集約テスト項目に含め、前記集合内のイベントのうち前記集合内の他のテスト項目内のイベントと異なるイベントである固有イベントを前記集約テスト項目に含め、
前記集約テスト項目に従って前記シミュレーションモデルを用いるシミュレーションを実行する、
ように構成されている、
計算機システム。
【請求項２】
前記プロセッサは、
前記シミュレーションモデルに基づいて、前記複数のテスト項目内の各イベントの実行時刻を予測し、
前記集約テスト項目内の複数のイベントを実行時刻順に配置する、
ように構成されている、
請求項１に記載の計算機システム。
【請求項３】
各テスト項目は、前記シミュレーションモデルの状態の判定条件を示す判定イベントを含み、
前記プロセッサは、前記シミュレーションの実行により、前記判定条件を用いて前記シミュレーションモデルの状態を判定することで、前記集約テスト項目内の複数の判定イベントの判定結果を得る、ように構成されている、
請求項２に記載の計算機システム。
【請求項４】
前記プロセッサは、前記複数の判定イベントのうち、所定の再テスト条件を満たすイベントを再テスト項目へ登録し、前記再テスト項目に従って前記シミュレーションモデルを用いるシミュレーションを実行する、ように構成されている、
請求項３に記載の計算機システム。
【請求項５】
前記再テスト条件を満たすイベントは、前記複数の判定イベントのうち、不合格の判定結果を有する判定イベントよりも後の判定イベントである、
請求項４に記載の計算機システム。
【請求項６】
前記集約テスト項目内の判定イベントの判定結果が、過去のシミュレーションによる同一の判定イベントの判定結果と異なる場合、前記プロセッサは、警告を表示装置に表示させる、
請求項５に記載の計算機システム。
【請求項７】
前記集約テスト項目内の判定イベントの判定結果が、過去のシミュレーションによる同一の判定イベントの判定結果と異なる場合、前記プロセッサは、前記集合内の各テスト項目に従って前記シミュレーションモデルを用いるシミュレーションを実行する、
請求項５に記載の計算機システム。
【請求項８】
前記プロセッサは、前記複数の判定イベントの判定結果を、対応するテスト項目の判定結果へ割り当てることで、前記集合内の各テスト項目の判定結果を生成する、ように構成されている、
請求項１に記載の計算機システム。
【請求項９】
前記集約条件は、前記集合内のイベントの実行時刻が、前記集合内の他のテスト項目内のイベントの実行時刻と重複しないことを必要とする、
請求項２に記載の計算機システム。
【請求項１０】
前記複数のテスト項目内の各イベントは、イベントのトリガと、前記シミュレーションモデルの状態の操作と、前記シミュレーションモデルの状態の観測との、少なくとも何れか一つを含む、
請求項９に記載の計算機システム。
【請求項１１】
前記集約条件は、前記集合内のイベントの操作の対象が、前記集合内の他のテスト項目内のイベントの操作の対象と重複しないことを必要とする、
請求項１０に記載の計算機システム。
【請求項１２】
対象システムのシミュレーションモデルに対する複数のテスト項目であって、各テスト項目が少なくとも一つのイベントを含む、前記複数のテスト項目を取得し、
テスト項目の集合内のイベントが前記集合内の他のテスト項目内のイベントに依存していないという集約条件の下で、前記複数のテスト項目の中から前記集合を検出し、
前記集合内のイベントのうち前記集合内の他のテスト項目内のイベントと同一のイベントである共通イベントの重複を避けて前記共通イベントを集約テスト項目に含め、前記集合内のイベントのうち前記集合内の他のテスト項目内のイベントと異なるイベントである固有イベントを前記集約テスト項目に含め、
前記集約テスト項目に従って前記シミュレーションモデルを用いるシミュレーションを実行する、
ことを備える、
テスト方法。
【請求項１３】
プロセスをコンピュータに実行させるプログラムを格納するコンピュータ読取可能な記録媒体であって、
前記プロセスは、
対象システムのシミュレーションモデルに対する複数のテスト項目であって、各テスト項目が少なくとも一つのイベントを含む、前記複数のテスト項目を取得し、
テスト項目の集合内のイベントが前記集合内の他のテスト項目内のイベントに依存していないという集約条件の下で、前記複数のテスト項目の中から前記集合を検出し、
前記集合内のイベントのうち前記集合内の他のテスト項目内のイベントと同一のイベントである共通イベントの重複を避けて前記共通イベントを集約テスト項目に含め、前記集合内のイベントのうち前記集合内の他のテスト項目内のイベントと異なるイベントである固有イベントを前記集約テスト項目に含め、
前記集約テスト項目に従って前記シミュレーションモデルを用いるシミュレーションを実行する、
ことを備える、
記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムに関する。
【背景技術】
【０００２】
組込みシステムは、制御対象を構成するメカニズムと、このメカニズムから受け取った物理量を元に制御演算を行い、このメカニズムに制御値の出力を行うハードウェアと、このハードウェア上で動作するソフトウェアとで構成される。例えば、自動車エンジン制御向けの組込みシステムは、制御対象であるエンジン等のメカニズムと、制御演算を行いこのエンジン等を制御するマイコン（microcontrollerまたはmicroprocessor）等の電子機器と、このマイコン等の上で動作するソフトウェアとで構成されている。
【０００３】
組込みシステムに含まれるソフトウェアの挙動は、制御対象のメカニズムとハードウェアの構成に強く依存するため、メカニズム、ハードウェア、ソフトウェアを併せた挙動の解析が必要である。
【０００４】
近年、自動車、電気機器等の高信頼化、高機能化により組込みシステムが複雑化している。そのため、作業期間短縮のためハードウェア、ソフトウェアの各部品を細分化して分業化が行われ、複数拠点での同時開発が行われている。分業化が進むにあたり、部品毎の動作確認だけではなく、部品の組み立て時に判明する性能不足、仕様の不具合が増加している。これにより、製品出荷前の最終段階での手戻りによる開発期間の遅延が多発しており、開発効率の悪化が問題となっている。
【０００５】
この問題を解決するため、設計時点でのメカニズム・ハードウェア・ソフトウェアを協調させたシミュレーションによる性能評価、検証手法が用いられている。
【０００６】
上記のシミュレーションを実行する際は、実行対象の動作を模したモデルを結合させるだけではなく、各シミュレータに対し外乱条件を挿入したり、内部状態を観測するための機構を付加したりする必要がある。これらの外乱条件の挿入、内部状態観測はシミュレーション開始前に予め決められた時刻に起こすだけではなく、シミュレータが到達する特定の状態をトリガとして作動することが求められる。これは、システム全体の複雑化によって、部品同士の複雑な相互関係に由来する異常状態の解析の重要度が高くなっていることに起因する。
【０００７】
しかし、性能評価のためのテスト項目の数が膨大になるため、開発期間に影響を与える。
【０００８】
特許文献１には、複数のテスト項目がソフトウェアに対する共通の入力データ範囲を持つ場合、それらのテスト項目を１つの統合化テスト項目としてまとめ、テストに掛る工数を削減することが記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００９―１９３４８８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献１の技術は、複数のテスト項目が共通の入力データを持ち、且つそれらが共通の範囲を持つ場合に限って、それらのテスト項目を統合する。そのため、テストに要する時間を大幅に削減することは困難である。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明の一態様である計算機システムは、記憶デバイスと、前記記憶デバイスに接続されるプロセッサと、を備える。前記プロセッサは、対象システムのシミュレーションモデルに対する複数のテスト項目であって、各テスト項目が少なくとも一つのイベントを含む、前記複数のテスト項目を取得し、テスト項目の集合内のイベントが前記集合内の他のテスト項目内のイベントに依存していないという集約条件の下で、前記複数のテスト項目の中から前記集合を検出し、前記集合内のイベントのうち前記集合内の他のテスト項目内のイベントと同一のイベントである共通イベントの重複を避けて前記共通イベントを集約テスト項目に含め、前記集合内のイベントのうち前記集合内の他のテスト項目内のイベントと異なるイベントである固有イベントを前記集約テスト項目に含め、前記集約テスト項目に従って前記シミュレーションモデルを用いるシミュレーションを実行する、ように構成されている。
【発明の効果】
【００１２】
シミュレーションモデルのテストに要する時間を削減することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施例の計算機システムの構成を示す。
【図２】シミュレーションモデル群３３０の構成を示す。
【図３】入力テスト項目の構成を示す。
【図４】集約テスト項目の生成の概要を示す。
【図５】集約テスト項目の構成を示す。
【図６】テスト処理を示す。
【図７】テスト項目実行処理を示す。
【図８】テスト項目実行処理中のシミュレーションモデル群３３０の動作を示す。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施形態を説明する。
【００１５】
以下の説明では、「×××項目」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「×××項目」を「×××情報」と呼ぶことができる。また、以下の説明において、各テーブルの構成は一例であり、１つのテーブルは、２以上のテーブルに分割されてもよいし、２以上のテーブルの全部又は一部が１つのテーブルであってもよい。
【００１６】
また、以下の説明では、要素の識別情報として、ＩＤが使用されるが、それに代えて又は加えて他種の識別情報が使用されてもよい。
【００１７】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号又は参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用又は参照符号に代えてその要素に割り振られたＩＤを使用することがある。
【００１８】
また、以下の説明では、Ｉ／Ｏ（Input/Output）は、ライト又はリードであり、アクセスと呼ばれてもよい。
【００１９】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ（例えばＣＰＵ（Central Processing Unit））によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び／又はインターフェースデバイス（例えば通信ポート）等を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理又はシステムとしてもよい。また、プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサ（例えばＣＰＵ）と記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムとを記憶してよい。そして、プログラム配布サーバのプロセッサが配布プログラムを実行することで、プログラム配布サーバのプロセッサは配布対象のプログラムを他の計算機に配布してよい。また、以下の説明において、２以上のプログラムが１つのプログラムとして実現されてもよいし、１つのプログラムが２以上のプログラムとして実現されてもよい。
【００２０】
図１は、本実施例の計算機システムの構成を示す。
【００２１】
この計算機システムは、主記憶部１１０と、ＣＰＵ１２０と、外部記憶装置１３０と、入力装置１４０と、表示装置１５０とを含む。
【００２２】
主記憶部１１０は、メモリ等の主記憶装置であり、プログラムおよびデータを格納する。ＣＰＵ１２０は、主記憶部１１０に格納されたプログラムに従って処理を実行する。外部記憶装置１３０は、ＨＤＤ（hard disk drive）やＳＳＤ（solid state drive）等の補助記憶装置であり、プログラムおよびデータを格納する。入力装置１４０は、ユーザにより入力されるデータを取得する。表示装置１５０は、データを表示する。
【００２３】
主記憶部１１０は、集約部２２０と、テスト操作部２３０と、シミュレーション実行部２４０との、プログラムを格納する。外部記憶装置１３０は、解析結果３１０と、テスト項目群３２０と、シミュレーションモデル群３３０と、テスト結果３４０との、データを格納する。これらのプログラムおよびデータの何れかは、主記憶部１１０に格納されていてもよいし、外部記憶装置１３０に格納されていてもよいし、通信ネットワークを介して接続されるストレージに格納されていてもよい。
【００２４】
テスト項目群３２０は、複数のテスト項目を含む。各テスト項目は、少なくとも一つのイベントを含む。各イベントは、イベントのトリガと、シミュレーションモデル群３３０の状態に対する操作と、シミュレーションモデル群３３０の状態の観測との、少なくとも何れかを示す。テスト項目は例えば、入力装置１４０から入力される入力テスト項目、複数の入力テスト項目が集約されて得られる集約テスト項目、集約テスト項目のうち再テストするイベントを含む再テスト項目である。入力テスト項目は、外部の装置から通信ネットワークを介して受信されてもよい。テスト結果３４０は、テスト項目内のイベントの判定結果を示す判定結果リストと、テスト項目内のイベントの判定結果のうち確定した判定結果を示す確定結果リストとを含む。
【００２５】
解析結果３１０は、シミュレーションモデル群３３０の解析結果または実行結果である。例えば、解析結果３１０は、シミュレーションモデル群３３０の静的解析結果や、シミュレーションモデル群３３０を用いるシミュレーション実行部２４０の実行結果である。集約部２２０がシミュレーションモデル群３３０の静的解析を行い、静的解析結果を取得してもよい。テスト操作部２３０がシミュレーション実行部２４０にシミュレーションを実行させ、実行結果を取得してもよい。
【００２６】
集約部２２０は、テスト項目群３２０に含まれる複数の入力テスト項目を集約することで、集約テスト項目を生成する。テスト操作部２３０は、テスト項目に従ってシミュレーション実行部２４０を制御する。シミュレーション実行部２４０は、シミュレーションモデル群３３０を用いるシミュレーションを実行する。
【００２７】
図２は、シミュレーションモデル群３３０の構成を示す。
【００２８】
シミュレーションモデル群３３０は、テストの対象システムを示す複数のシミュレーションモデルを含む。シミュレーションモデルは例えば、対象システムの要素のモデルを示すプログラムである。要素は、メカニズム、ハードウェア、ソフトウェア等である。本実施例における対象システムは、自動車の制御システムである。
【００２９】
本実施例のシミュレーションモデル群３３０は、車載通信コントローラのモデルである車載通信コントローラモデル４１０と、車載通信コントローラに接続されたエンジンＥＣＵ（electronic control unit）のモデルであるエンジンＥＣＵモデル４２１と、エンジンＥＣＵに接続されたエンジンのモデルであるエンジンモデル４２２と、車載通信コントローラに接続されたブレーキＥＣＵのモデルであるブレーキＥＣＵモデル４３１と、ブレーキＥＣＵに接続されたブレーキのモデルであるブレーキモデル４３２と、車載通信コントローラに接続されたユーザインターフェイスＥＣＵのモデルであるユーザインターフェイスＥＣＵモデル４４１と、ユーザインターフェイスＥＣＵに接続されたユーザ操作パネルのモデルであるユーザ操作パネルモデル４４２と、車載通信コントローラに接続されたステアリングＥＣＵのモデルであるステアリングＥＣＵモデル４５１と、ステアリングＥＣＵの影響を受ける車体姿勢のモデルである車体姿勢モデル４５２と、を含む。なお、この図に示されたシミュレーションモデル群３３０の構成は一例である。シミュレーションモデル群３３０の構成は、この例に限らない。
【００３０】
制御システム内の複数のＥＣＵの間は、ＣＡＮ（control area network）等の通信ネットワークを介して接続されている。
【００３１】
テスト操作部２３０またはシミュレーション実行部２４０は、シミュレーションモデル群３３０内の各部の状態を取得するプローブ部を有していてもよい。プローブ部は、シミュレーションモデル群３３０内のアナログ値またはデジタル値を操作したり観測したりする。
【００３２】
図３は、入力テスト項目の構成を示す。
【００３３】
この図は、テスト項目群３２０内の入力テスト項目３２１ａ、３２１ｂを示す。各入力テスト項目は、イベント毎のエントリを含む。一つのイベントのエントリは、トリガ項目５１０と、操作項目５２０と、観測項目５３０とを含む。操作項目５２０と観測項目５３０の夫々は、なくてもよいし、複数の項目を含んでもよい。
【００３４】
トリガ項目５１０は、トリガの種類を示す指示（またはoperation）５１１と、トリガに用いられる状態を示す設定値（またはargument）５１２と、トリガの条件を示す条件５１３とを含む。操作項目５２０は、操作の種類を示す指示５２１と、操作対象および操作値を示す設定値５２２とを含む。観測項目５３０は、観測の種類を示す指示５３１と、観測対象を示す設定値５３２と、観測結果の判定条件を示す条件５３３とを含む。トリガ項目５１０と、操作項目５２０と、観測項目５３０の中の何れかの値は、なくてもよいし、複数の値を含んでもよい。
【００３５】
例えば、トリガ項目５１０において、指示５１１が待機（Wait time）を示し、設定値５１２が待機時間の値を示す場合、このイベントにおけるトリガは、待機時間が経過することである。例えば、トリガ項目５１０において、指示５１１が関数トリガ（Function Trigger）を示し、設定値５１２が関数名を示し、条件５１３が呼び出し（Called）を示す場合、このイベントにおけるトリガは、関数名で示された関数が呼び出されることである。
【００３６】
例えば、操作項目５２０において、指示５２１がＩ／Ｏ設定（I/O set）を示し、設定値５２２が出力先と値を示す場合、このイベントにおける操作は、出力先へ値を出力することである。例えば、操作項目５２０において、指示５２１がメモリ書き込み（Write memory）を示し、設定値５２２が操作対象と操作値を示す場合、このイベントにおける操作は、操作対象のメモリへ操作値を書き込むことである。
【００３７】
例えば、観測項目５３０において、指示５３１がメモリ読み出し（Read memory）を示し、設定値５３２が観測対象を示す場合、このイベントにおける観測は、観測対象から値を読み出すことである。更に、観測項目５３０において、条件５３３が判定条件を示し、読み出された値が判定条件を満たしている場合、このイベントが合格であると判定される。例えば、観測項目５３０において、指示５３１が“Ｎｏｐ”を示す場合、観測項目５３０が無いことを示す。
【００３８】
観測項目５３０の条件５３３が設定されているイベントを、判定イベントと呼ぶことがある。
【００３９】
操作項目５２０は、外乱を示すデータをメモリへ書き込むことであってもよい。操作項目５２０は、通信ネットワークを介して他のモデルへ信号を送信することを示していてもよい。観測項目５３０は、通信ネットワークを介して他のモデルから信号を受信することを示していてもよい。操作項目５２０は、クロック停止やクロック周波数変更等、対象システムの故障を模擬するための破壊操作を示していてもよい。
【００４０】
各エントリは、イベントの識別子を含んでいてもよい。各エントリは、集約できるか否かを示す属性を含んでもよい。各エントリは、複数の操作項目５２０を含んでもよいし、複数の観測項目５３０を含んでもよい。
【００４１】
図４は、集約テスト項目の生成の概要を示す。
【００４２】
集約部２２０は、テスト項目群３２０内の複数の入力テスト項目の中から、集約条件を満たす入力テスト項目の集合を検出する。例えば、集約条件は、当該集合内の各入力テスト項目内のイベントが、当該集合内の他の入力テスト項目内のイベントに依存していないことである。更に集約部２２０は、集合内の複数の入力テスト項目の間で完全に一致するイベントを共通イベントとし、共通イベント以外のイベントを固有イベントとし、共通イベントの重複を排除して、共通イベントと固有イベントを実行時刻順に並べることで、一つの集約テスト項目を生成する。
【００４３】
この図の例において、集約部２２０は、固有イベントＡを有する入力テスト項目３２１ａと、固有イベントＢを有する入力テスト項目３２１ｂと、固有イベントＣを有する入力テスト項目３２１ｃとを含む、第１集合を生成し、固有イベントＤを有する入力テスト項目３２１ｄと、固有イベントＥを有する入力テスト項目３２１ｅと、固有イベントＦを有する入力テスト項目３２１ｆとを含む、第２集合を生成する。更に集約部２２０は、第１集合内の共通イベントおよび固有イベントをトリガ順に並べることで、集約テスト項目３２２ｇを生成し、第２集合内の共通イベントおよび固有イベントをトリガ順に並べることで、集約テスト項目３２２ｈを生成する。
【００４４】
図５は、集約テスト項目の構成を示す。
【００４５】
この図は、入力テスト項目３２１ｐ、３２１ｑを集約することにより得られる集約テスト項目３２２ｒを示す。集約テスト項目の構成は、入力テスト項目と同様である。なお、入力テスト項目および集約テスト項目の両方を、テスト項目と呼ぶことがある。
【００４６】
集約テスト項目３２２ｒにおいて、１番目から５番目までの各イベントは共通イベントであり、二つの入力テスト項目３２１ｐ、３２１ｑの間で完全に一致している。６番目のイベントは、入力テスト項目３２１ｐの固有イベントであり、７番目のイベントは、入力テスト項目３２１ｑの固有イベントである。
【００４７】
二つの入力テスト項目３２１ｐ、３２１ｑを用いる場合、１番目から５番目までの共通イベントについて、２回のテストが行われる。集約テスト項目３２２ｒを用いる場合、１番目から５番目までの共通イベントについて、１回だけテストが行われる。このように複数の入力テスト項目を集約テスト項目に集約することにより、複数の入力テスト項目内の共通イベントのテストの回数を削減することができ、全体のテスト時間を削減することができる。
【００４８】
以下、計算機システムの動作について説明する。
【００４９】
計算機システムは、全ての入力テスト項目内の全ての判定イベントが合格となることを目標として、テスト処理を行う。
【００５０】
図６は、テスト処理を示す。
【００５１】
Ｓ１１０において集約部２２０は、入力装置１４０へ入力された複数の入力テスト項目を取得し、複数の入力テスト項目をテスト項目群３２０へ登録する。
【００５２】
Ｓ１２０において集約部２２０は、解析結果３１０に基づいて、テスト項目群３２０内の複数の入力テスト項目内のイベントのトリガ項目の発火予想時刻を解析する。発火予想時刻は、シミュレーション時刻においてトリガ項目５１０が発火する時刻の予測値である。発火予想時刻は、イベントの実行時刻の予測値であってもよい。
【００５３】
Ｓ１３０において集約部２２０は、シミュレーションモデル群３３０の解析結果に基づいて、テスト項目群３２０内の複数の入力テスト項目内の各イベントの操作項目の作用範囲を解析する。作用範囲は、操作項目の影響を受ける範囲である。例えば、作用範囲は、設定値５２２で示される操作対象であり、操作により書き込まれるメモリのアドレス範囲や、操作による通信に用いられる信号名等である。
【００５４】
Ｓ１４０において集約部２２０は、複数の入力テスト項目から、集約条件を満たす複数の入力テスト項目の集合を検出することにより、複数の入力テスト項目を複数の集合に分割する。例えば、集約条件は、集合内のイベントの発火予想時刻が集合内の他の入力テスト項目内のイベントの発火予想時刻と重複しないことを必要とする。また、集約条件は、集合内のイベントの作用範囲が集合内の他の入力テスト項目内のイベントの作用範囲と重複しないことを必要としてもよい。また、集約条件は、集合内の入力テスト項目が破壊操作のイベントを含む場合に、集合内の他の入力テスト項目内に破壊操作のイベントが含まれていないことを必要としてもよい。また、集約条件は、集合内の入力テスト項目が通信操作を含み、集合内の他の入力テスト項目が通信操作を含む場合、それらの通信操作の内容が互いに異なることを必要としてもよい。
【００５５】
Ｓ１５０において集約部２２０は、集合内の複数のイベントを発火予想時刻の順に並べ、並べられたイベントを一つのテスト項目に集約することで、集約テスト項目を作成し、集約テスト項目を実行テスト項目群へ登録する。これにより、テスト操作部２３０は、集約テスト項目内のイベントを、各入力テスト項目内で対応するイベントの実行順序に従って実行することができる。ここで集約部２２０は、当該集約テスト項目に対応する集合内の入力テスト項目を、当該集約テスト項目に関連付ける。ここで集約部２２０は、集約されなかった入力テスト項目を実行テスト項目群へ登録してもよい。
【００５６】
Ｓ１６０においてテスト操作部２３０は、実行テスト項目群から順にテスト項目を対象テスト項目として選択し、対象テスト項目に対するテスト項目実行処理を実行することで、各テスト項目の判定結果リストを取得する。判定結果リストは、各判定イベントの判定結果を含む。これにより、テスト操作部２３０は、各判定イベントの判定結果のシミュレーション時刻順に検証することができる。
【００５７】
Ｓ１７０においてテスト操作部２３０は、判定結果リスト内の先頭イベントを対象イベントとして選択し、対象イベントの判定結果が集約不可条件を満たすか否かを判定する。ここでテスト操作部２３０は、今回のテスト項目実行処理による対象イベントの判定結果が、過去のテスト項目実行処理による対象イベントの判定結果と異なる場合、対象イベントが集約不可条件を満たすと判定する。例えば、テスト操作部２３０は、今回の判定結果リストにおいて対象イベントが合格と判定され、且つ対象イベントを含む確定結果リストがあり、且つ確定結果リストにおいて対象イベントが不合格と判定された場合、対象イベントが集約不可条件を満たすと判定する。
【００５８】
Ｓ１７０の結果がＹＥＳである場合、Ｓ１８０においてテスト操作部２３０は、対象テスト項目に関連する判定結果を破棄し、対象テスト項目に対応する集合内の入力テスト項目に対して、集約不可属性を設定する。
【００５９】
Ｓ１９０においてテスト操作部２３０は、複数点故障の疑いがあることについてユーザへ警告し、処理をＳ２１０へ移行させる。ここでテスト操作部２３０は、警告を表示装置１５０へ表示させる。その後、集約部２２０は、集約不可属性を有する入力テスト項目の集約を行わず、テスト操作部２３０は、その入力テスト項目を対象テスト項目としてテスト項目実行処理を実行する。これにより、テスト操作部２３０は、テストの精度を向上させることができる。
【００６０】
Ｓ１７０の結果がＮＯである場合、Ｓ２１０においてテスト操作部２３０は、対象イベントの判定結果が対象テスト項目内の不合格よりも前の合格であるか否かを判定する。
【００６１】
Ｓ２１０の結果がＹＥＳである場合、Ｓ２３０においてテスト操作部２３０は、対象イベントとその判定結果とを確定結果リストへ登録し、処理をＳ２５０へ移行させる。
【００６２】
Ｓ２１０の結果がＮＯである場合、Ｓ２２０においてテスト操作部２３０は、対象イベントの判定結果が対象テスト項目内の最初の不合格であるか否かを判定する。
【００６３】
Ｓ２２０の結果がＹＥＳである場合、テスト操作部２３０は、処理をＳ２３０へ移行させる。
【００６４】
Ｓ２２０の結果がＮＯである場合、Ｓ２４０においてテスト操作部２３０は、対象イベントを再テスト項目へ登録し、処理をＳ２５０へ移行させる。これにより、テスト操作部２３０は、判定結果が確定していない判定イベントを再度テストすることができる。
【００６５】
また、テスト操作部２３０は、所定の再テスト条件を満たすイベントを再テスト項目へ登録してもよい。例えば、再テスト条件を満たすイベントは、対象イベントが、対象テスト項目内の判定イベントのうち、不合格の判定結果を有する判定イベントよりも後の判定イベントである。また、再テスト条件を満たすイベントは、対象テスト項目のうち、対象イベント以前のイベントであってもよいし、対象イベントに対応する入力テスト項目であってもよい。
【００６６】
Ｓ２５０においてテスト操作部２３０は、判定結果リストから対象イベントを破棄する。
【００６７】
Ｓ２６０においてテスト操作部２３０は、判定結果リストに残りのイベントがあるか否かを判定する。
【００６８】
Ｓ２６０の結果がＹＥＳである場合、テスト操作部２３０は、処理をＳ２１０へ移行させる。
【００６９】
Ｓ２６０の結果がＮＯである場合、Ｓ２７０においてテスト操作部２３０は、再テスト項目が空であるか否かを判定する。
【００７０】
Ｓ２７０の結果がＮＯである場合、Ｓ２８０においてテスト操作部２３０は、再テスト項目を実行テスト項目群へ登録し、処理をＳ１２０へ移行させる。
【００７１】
Ｓ２７０の結果がＹＥＳである場合、Ｓ２９０においてテスト操作部２３０は、確定結果リストに基づいて入力テスト項目毎の判定結果を作成し、このフローを終了する。ここでテスト操作部２３０は、確定結果リスト内のイベントを順に対象イベントとして選択し、対象イベントに対応する入力テスト項目を特定し、対象イベントの判定結果を、特定された入力テスト項目の判定結果へ登録することで、入力テスト項目毎の判定結果を作成する。
【００７２】
図７は、テスト項目実行処理を示す。
【００７３】
Ｓ４１０においてテスト操作部２３０は、対象テスト項目の先頭から順にイベントを対象イベントとして取得する。
【００７４】
Ｓ４２０においてテスト操作部２３０は、予め設定された単位時間だけシミュレーション時刻を進め、シミュレーション実行部２４０にシミュレーションを実行させる。シミュレーション実行部２４０は、シミュレーション時刻の経過に合わせて、シミュレーションモデル群３３０を用いて単位時間分のシミュレーションを実行し、シミュレーションを停止する。
【００７５】
Ｓ４３０においてテスト操作部２３０は、シミュレーションモデル群３３０の状態が対象イベントのトリガ項目５１０の条件５１３を満たすか否かを判定する。
【００７６】
Ｓ４３０の結果がＮＯである場合、テスト操作部２３０は、処理をＳ４２０へ移行させる。
【００７７】
Ｓ４３０の結果がＹＥＳである場合、Ｓ４４０において、対象イベントに観測項目５３０が設定されていれば、テスト操作部２３０は、シミュレーションモデル群３３０から当該観測項目の指示５３１及び設定値５３２に示された状態を取得する。更に当該観測項目の条件５３３が設定されていれば、テスト操作部２３０は、取得された状態が当該条件を満たすか否かを判定し、対象イベントの判定結果を判定結果リストへ登録する。
【００７８】
Ｓ４５０において、対象イベントに操作項目５２０が設定されていれば、テスト操作部２３０は、当該操作項目の指示５２１及び設定値５２２に示された状態を設定値５２２に従って変更する。
【００７９】
Ｓ４６０においてテスト操作部２３０は、対象テスト項目から対象イベントを破棄する。
【００８０】
Ｓ４７０においてテスト操作部２３０は、対象テスト項目が空であるか否かを判定する。
【００８１】
Ｓ４７０の結果がＮＯである場合、テスト操作部２３０は、処理をＳ４１０へ移行させる。
【００８２】
Ｓ４７０の結果がＹＥＳである場合、Ｓ４８０においてテスト操作部２３０は、対象テスト項目の判定結果リストを出力し、このフローを終了する。
【００８３】
図８は、テスト項目実行処理中のシミュレーションモデル群３３０の動作を示す。
【００８４】
テスト項目実行処理の期間は、シミュレーション時刻順に、トリガ条件待ち期間＃０と、イベント期間＃０と、トリガ条件待ち期間＃１と、イベント期間＃１と、トリガ条件待ち期間＃２と、イベント期間＃２と、トリガ条件待ち期間＃３と、イベント期間＃３と、を含む。例えば、トリガ条件待ち期間＃０は、シミュレーションモデル群３３０の状態が対象テスト項目の先頭のイベントのトリガ項目５１０の条件を満たすまでの期間である。イベント期間＃０は、当該イベントが実行される期間である。
【００８５】
このようなテスト項目実行処理により得られる判定結果リストにおいて、あるイベントの判定結果が不合格である場合、そのイベントよりも後のイベントの判定結果は保証されない。
【００８６】
次に、複数のテスト項目に共通の入力データ範囲が存在する場合に、それらのテスト項目を一つの統合化テスト項目として統合する技術を比較例として、本実施例の効果を説明する。
【００８７】
比較例は、複数のテスト項目が同種の入力データを有し且つそれらの入力データの値の範囲が重複している場合に、それらのテスト項目を統合することができる。例えば、比較例は、車速として１００以上の値を入力するテスト項目と、車速として８０以上１２０以下の値を入力するテスト項目と、車速として１２０以下の値を入力するテスト項目とを、一つの統合化テスト項目として統合することができる。また、例えば、比較例は、ブレーキ液圧として４ＭＰａ以下の値を入力するテスト項目と、ブレーキ液圧として２ＭＰａ以上の値を入力するテスト項目と、ブレーキ液圧として１ＭＰａ以上の値を入力するテスト項目とを、一つの統合化テスト項目として統合することができる。
【００８８】
本実施例の集約部２２０は、互いに異なる種類のイベントを有する複数のテスト項目を集約することができる。本実施例の集約部２２０は、比較例より多くのテスト項目を集約することができ、テスト時間の削減の効果が大きくなる。
【００８９】
記憶デバイスは、主記憶部１１０や外部記憶装置１３０等に対応する。プロセッサは、ＣＰＵ１２０等に対応する。シミュレーションモデルは、シミュレーションモデルやシミュレーションモデル群３３０等に対応する。
【００９０】
以上、本発明の実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲を上記構成に限定する趣旨ではない。本発明は、他の種々の形態でも実施する事が可能である。
【符号の説明】
【００９１】
１１０…主記憶部、  １２０…ＣＰＵ、  １３０…外部記憶装置、  １４０…入力装置、  １５０…表示装置、  ２２０…集約部、  ２３０…テスト操作部、  ２４０…シミュレーション実行部、  ３１０…解析結果、  ３２０…テスト項目群、  ３３０…シミュレーションモデル群、  ３４０…テスト結果
【図１】
2019532429.tif 000003
【図２】
2019532429.tif 000004
【図３】
2019532429.tif 000005
【図４】
2019532429.tif 000006
【図５】
2019532429.tif 000007
【図６】
2019532429.tif 000008
【図７】
2019532429.tif 000009
【図８】
2019532429.tif 000010
【国際調査報告】
2019532429.tif 000011
2019532429.tif 000012