(57)【要約】【課題】高品質な試験を効率よく行うことができるシミュレーションシステム等を提供する。【解決手段】ソフトウェアシミュレータ２０と、ハードウェアシミュレータ３０と、を備え、ソフトウェアシミュレータ２０は、仮想のハードウェアモデル１４に入力された入力信号に基づいて、ハードウェアモデル１４上においてソフトウェア１６が実行されることにより出力される仮想出力信号が規定出力信号に適合しているか否かを判定し、ハードウェアシミュレータ３０は、ソフトウェアシミュレータ２０において適合していると判定されたソフトウェア１６及び入力信号を用い、ハードウェア１５に入力された入力信号に基づいて、ハードウェア１５上においてソフトウェア１６が実行されることにより出力される実出力信号が規定出力信号に適合しているか否かを判定する。【選択図】図１
2020087311.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアを模擬したハードウェアモデルと、前記ハードウェアモデル上において実行されるソフトウェアとの動作をシミュレートするソフトウェアシミュレータと、
前記ハードウェアと、前記ハードウェア上において実行される前記ソフトウェアとの動作をシミュレートするハードウェアシミュレータと、を備え、
前記ソフトウェアシミュレータは、前記ハードウェアモデルに入力された入力信号に基づいて、前記ハードウェアモデル上において前記ソフトウェアが実行されることにより出力される仮想出力信号が、前記入力信号に対応する予め規定された規定出力信号に適合しているか否かを判定し、
前記ハードウェアシミュレータは、前記ソフトウェアシミュレータにおいて適合していると判定された前記ソフトウェア及び前記入力信号を用い、前記ハードウェアに入力された前記入力信号に基づいて、前記ハードウェア上において前記ソフトウェアが実行されることにより出力される実出力信号が、前記規定出力信号に適合しているか否かを判定するシミュレーションシステム。
【請求項２】
前記入力信号は、前記ソフトウェア及び前記ハードウェアの動作試験の試験シナリオに基づいて生成される信号である請求項１に記載のシミュレーションシステム。
【請求項３】
前記ソフトウェアシミュレータは、前記試験シナリオに基づく前記入力信号と前記仮想出力信号とを含む情報を、試験シナリオファイルとして出力し、
出力された前記試験シナリオファイルは、前記ハードウェアシミュレータに入力される請求項２に記載のシミュレーションシステム。
【請求項４】
前記試験シナリオファイルは、編集可能な情報である請求項３に記載のシミュレーションシステム。
【請求項５】
前記試験シナリオは、複数用意されており、
前記ハードウェアシミュレータは、複数の前記試験シナリオの順番に関する情報であるスケジュール情報に基づいて、前記試験シナリオに基づく前記ソフトウェア及び前記ハードウェアの動作試験を、順次実行する請求項２から４のいずれか１項に記載のシミュレーションシステム。
【請求項６】
ハードウェアを模擬したハードウェアモデルと、前記ハードウェアモデル上において実行されるソフトウェアとの動作をシミュレートするソフトウェアシミュレータと、
前記ハードウェアと、前記ハードウェア上において実行される前記ソフトウェアとの動作をシミュレートするハードウェアシミュレータと、を備え、
前記ハードウェアシミュレータは、前記ハードウェアに入力された入力信号に基づいて、前記ハードウェア上において前記ソフトウェアが実行されることにより出力される実出力信号が、前記入力信号に対応する予め規定された規定出力信号に適合しているか否かを判定し、
前記ソフトウェアシミュレータは、前記ハードウェアシミュレータにおいて適合していないと判定された前記ソフトウェア及び前記入力信号を用い、前記ハードウェアモデルに入力された前記入力信号に基づいて、前記ハードウェアモデル上において前記ソフトウェアが実行されることにより出力される仮想出力信号が、前記規定出力信号に適合しているか否かを判定するシミュレーションシステム。
【請求項７】
ハードウェアを模擬したハードウェアモデル上においてソフトウェアを実行して動作をシミュレートするソフトウェアシミュレータと、前記ハードウェア上において前記ソフトウェアを実行して動作をシミュレートするハードウェアシミュレータと、を備えたシミュレーションシステムに、
前記ソフトウェアシミュレータにおいて、前記ハードウェアモデルに入力された入力信号に基づいて、前記ハードウェアモデル上において前記ソフトウェアが実行されることにより出力される仮想出力信号が、前記入力信号に対応する予め規定された規定出力信号に適合しているか否かを判定する第１のステップと、
前記第１のステップにおいて、前記仮想出力信号が前記規定出力信号に適合していると判定された場合、前記ハードウェアシミュレータにおいて、前記第１のステップで適合していると判定された前記ソフトウェア及び前記入力信号を用い、前記ハードウェアに入力された前記入力信号に基づいて、前記ハードウェア上において前記ソフトウェアが実行されることにより出力される実出力信号が、前記規定出力信号に適合しているか否かを判定する第２のステップと、を実行させるシミュレート方法。
【請求項８】
ハードウェアを模擬したハードウェアモデル上においてソフトウェアを実行して動作をシミュレートするソフトウェアシミュレータと、前記ハードウェア上において前記ソフトウェアを実行して動作をシミュレートするハードウェアシミュレータと、を備えたシミュレーションシステムに、
前記ハードウェアシミュレータにおいて、前記ハードウェアに入力された入力信号に基づいて、前記ハードウェア上において前記ソフトウェアが実行されることにより出力される実出力信号が、前記入力信号に対応する予め規定された規定出力信号に適合しているか否かを判定する第３のステップと、
前記第３のステップにおいて、前記実出力信号が前記規定出力信号に適合していないと判定された場合、前記ソフトウェアシミュレータにおいて、前記第３のステップで適合していないと判定された前記ソフトウェア及び前記入力信号を用い、前記ハードウェアモデルに入力された前記入力信号に基づいて、前記ハードウェアモデル上において前記ソフトウェアが実行されることにより出力される仮想出力信号が、前記規定出力信号に適合しているか否かを判定する第４のステップと、を実行させるシミュレート方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーションシステム及びシミュレート方法に関するものである。
【背景技術】
【０００２】
従来、ソフトウェアプログラムのシミュレーションを実行するソフトウェアシミュレータと、ハードウェアを模擬するハードウェアシミュレータと、ソフトウェアシミュレータとハードウェアシミュレータとの間の信号の受け渡しを行い、ソフトウェアプログラムの試験を実行する試験シナリオ実行モデルと、を備えたシミュレーション装置が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−８４０８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、航空機が搭載する電子装備品に組み込まれるソフトウェアは、高品質の試験が要求されている。このため、電子装備品では、ＨＩＬＳ（Hardware  In  the  Loop  Simulator）と呼ばれるシミュレータを使用して、ハードウェアとソフトウェアとの適合性を全機能において確認する必要がある。ここで、ＨＩＬＳを用いた試験では、ハードウェアとソフトウェアとを含む様々な不適合を検出する。また、ＨＩＬＳは、高価な装置であることから、多くの台数を導入することは困難である。このため、少ない台数のＨＩＬＳを用いて試験を行うと共に、検出された不適合の原因を特定するためにハードウェアとソフトウェアとの切り分けを行うことから、試験期間が長期化し、試験コストが増大してしまう。一方で、ハードウェアとソフトウェアとの切り分けを容易とするために、特許文献１のシミュレーション装置を用いることが考えられる。特許文献１のようなシミュレーション装置としては、例えば、ＳＩＬＳ（Software  In  the  Loop  Simulator）がある。ＳＩＬＳは、ソフトウェアの試験を実行することから、ソフトウェアの適合性を確認できるものの、ハードウェアとソフトウェアとの適合性の確認を行うことができない。このため、航空機の電子装備品に係る試験の要求を満たすことができない。なお、ＳＩＬＳを用いてソフトウェアの試験を行って、ソフトウェアの適合性を確認すると共に、ＨＩＬＳを用いてハードウェアとソフトウェアの試験を行って、ハードウェアの適合性を確認することが考えられる。しかしながら、１つの電子装備品に対して、ＳＩＬＳ及びＨＩＬＳの試験をそれぞれ行うこととなるため、試験期間が長期化し、試験コストが増大してしまう。
【０００５】
そこで、本発明は、高品質な試験を効率よく行うことができるシミュレーションシステム及びシミュレート方法を提供することを課題とする。
【課題を解決するための手段】
【０００６】
本発明のシミュレーションシステムは、ハードウェアを模擬したハードウェアモデルと、前記ハードウェアモデル上において実行されるソフトウェアとの動作をシミュレートするソフトウェアシミュレータと、前記ハードウェアと、前記ハードウェア上において実行される前記ソフトウェアとの動作をシミュレートするハードウェアシミュレータと、を備え、前記ソフトウェアシミュレータは、前記ハードウェアモデルに入力された入力信号に基づいて、前記ハードウェアモデル上において前記ソフトウェアが実行されることにより出力される仮想出力信号が、前記入力信号に対応する予め規定された規定出力信号に適合しているか否かを判定し、前記ハードウェアシミュレータは、前記ソフトウェアシミュレータにおいて適合していると判定された前記ソフトウェア及び前記入力信号を用い、前記ハードウェアに入力された前記入力信号に基づいて、前記ハードウェア上において前記ソフトウェアが実行されることにより出力される実出力信号が、前記規定出力信号に適合しているか否かを判定する。
【０００７】
また、本発明のシミュレート方法は、ハードウェアを模擬したハードウェアモデル上においてソフトウェアを実行して動作をシミュレートするソフトウェアシミュレータと、前記ハードウェア上において前記ソフトウェアを実行して動作をシミュレートするハードウェアシミュレータと、を備えたシミュレーションシステムに、前記ソフトウェアシミュレータにおいて、前記ハードウェアモデルに入力された入力信号に基づいて、前記ハードウェアモデル上において前記ソフトウェアが実行されることにより出力される仮想出力信号が、前記入力信号に対応する予め規定された規定出力信号に適合しているか否かを判定する第１のステップと、前記第１のステップにおいて、前記仮想出力信号が前記規定出力信号に適合していると判定された場合、前記ハードウェアシミュレータにおいて、前記第１のステップで適合していると判定された前記ソフトウェア及び前記入力信号を用い、前記ハードウェアに入力された前記入力信号に基づいて、前記ハードウェア上において前記ソフトウェアが実行されることにより出力される実出力信号が、前記規定出力信号に適合しているか否かを判定する第２のステップと、を実行させる。
【０００８】
これらの構成によれば、ソフトウェアシミュレータにおいて、仮想出力信号と規定出力信号とが適合する場合、ソフトウェアの動作が正常であると判定することができる。つまり、ハードウェアモデルは、ハードウェアを模擬したものであることから、ハードウェアの動作は正常であるものとして、ソフトウェアの動作を評価することができる。そして、ハードウェアシミュレータにおいて、動作が正常であると判定されたソフトウェアと入力信号とを用いることで出力された、実出力信号と規定出力信号とが適合する場合、ハードウェアの動作が正常であると判定することができる。以上のように、ハードウェアシミュレータにおいて、ハードウェアとソフトウェアとの適合性を評価することができるため、高品質な試験を行うことができる。また、ハードウェアとソフトウェアとを切り分けて、ハードウェアとソフトウェアとの適合性を評価することができるため、試験を効率よく行うことができる。さらに、ソフトウェアシミュレータにおいて適合していると判定された入力信号をハードウェアシミュレータに用いることができるため、ソフトウェアシミュレータとハードウェアシミュレータとのそれぞれに対して、入力信号を生成する必要がないことから、試験を効率よく行うことができる。なお、ソフトウェアシミュレータにおいて適合していると判定されたソフトウェア及び入力信号を、自動でハードウェアシミュレータに入力する構成としてもよく、この場合においても、試験を効率よく行うことが可能となる。
【０００９】
また、前記入力信号は、前記ソフトウェア及び前記ハードウェアの動作試験の試験シナリオに基づいて生成される信号であることが、好ましい。
【００１０】
この構成によれば、試験シナリオに基づく入力信号を生成することができる。
【００１１】
また、ソフトウェアシミュレータは、前記試験シナリオに基づく前記入力信号と前記仮想出力信号とを含む情報を、試験シナリオファイルとして出力し、出力された前記試験シナリオファイルは、前記ハードウェアシミュレータに入力されることが、好ましい。
【００１２】
この構成によれば、出力された試験シナリオファイルを、ハードウェアシミュレータに送信可能な情報として出力することができる。
【００１３】
また、前記試験シナリオファイルは、編集可能な情報であることが、好ましい。
【００１４】
この構成によれば、試験シナリオファイルに含まれる不要な情報を削除したり、試験シナリオファイルに含まれる誤った情報を正しい情報に修正したりすることができる。
【００１５】
また、前記試験シナリオは、複数用意されており、前記ハードウェアシミュレータは、複数の前記試験シナリオの順番に関する情報であるスケジュール情報に基づいて、前記試験シナリオに基づく前記ソフトウェア及び前記ハードウェアの動作試験を、順次実行することが、好ましい。
【００１６】
この構成によれば、スケジュール情報に基づいて、任意の試験シナリオを順番通りに実行することができるため、試験の効率化を図ることができる。
【００１７】
本発明の他のシミュレーションシステムは、ハードウェアを模擬したハードウェアモデルと、前記ハードウェアモデル上において実行されるソフトウェアとの動作をシミュレートするソフトウェアシミュレータと、前記ハードウェアと、前記ハードウェア上において実行される前記ソフトウェアとの動作をシミュレートするハードウェアシミュレータと、を備え、前記ハードウェアシミュレータは、前記ハードウェアに入力された入力信号に基づいて、前記ハードウェア上において前記ソフトウェアが実行されることにより出力される実出力信号が、前記入力信号に対応する予め規定された規定出力信号に適合しているか否かを判定し、前記ソフトウェアシミュレータは、前記ハードウェアシミュレータにおいて適合していないと判定された前記ソフトウェア及び前記入力信号を用い、前記ハードウェアモデルに入力された前記入力信号に基づいて、前記ハードウェアモデル上において前記ソフトウェアが実行されることにより出力される仮想出力信号が、前記規定出力信号に適合しているか否かを判定する。
【００１８】
また、本発明の他のシミュレート方法は、ハードウェアを模擬したハードウェアモデル上においてソフトウェアを実行して動作をシミュレートするソフトウェアシミュレータと、前記ハードウェア上において前記ソフトウェアを実行して動作をシミュレートするハードウェアシミュレータと、を備えたシミュレーションシステムに、前記ハードウェアシミュレータにおいて、前記ハードウェアに入力された入力信号に基づいて、前記ハードウェア上において前記ソフトウェアが実行されることにより出力される実出力信号が、前記規定出力信号に適合しているか否かを判定する第３のステップと、前記第３のステップにおいて、前記実出力信号が前記入力信号に対応する予め規定された規定出力信号に適合していないと判定された場合、前記ソフトウェアシミュレータにおいて、前記第３のステップで適合していないと判定された前記ソフトウェア及び前記入力信号を用い、前記ハードウェアモデルに入力された前記入力信号に基づいて、前記ハードウェアモデル上において前記ソフトウェアが実行されることにより出力される仮想出力信号が、前記規定出力信号に適合しているか否かを判定する第４のステップと、を実行させる。
【００１９】
これらの構成によれば、ハードウェアシミュレータにおいて、実出力信号と規定出力信号とが適合しない場合、ハードウェア及びソフトウェアの少なくとも一方の動作が異常であると判定することができる。そして、ソフトウェアシミュレータにおいて、動作が異常であると判定されたソフトウェアと入力信号とを用いることで出力された、仮想出力信号と規定出力信号とが適合しない場合、ソフトウェアの動作が異常であると判定することができる。一方で、ソフトウェアシミュレータにおいて、動作が異常であると判定されたソフトウェアと入力信号とを用いることで出力された、仮想出力信号と規定出力信号とが適合する場合、ハードウェアの動作が異常であると判定することができる。以上のように、ハードウェアシミュレータ及びソフトウェアシミュレータを用いることで、ハードウェア及びソフトウェアの異常を判定する、つまり、エラーチェックを行うことができる。
【図面の簡単な説明】
【００２０】
【図１】図１は、本実施形態に係るシミュレーションシステムを概念的に示す構成図である。
【図２】図２は、本実施形態に係るシミュレーションシステムの試験シナリオの作成に関する一例のフローチャートである。
【図３】図３は、本実施形態に係るシミュレーションシステムの試験シナリオの編集に関する一例のフローチャートである。
【図４】図４は、本実施形態に係るシミュレーションシステムのスケジュールファイルの作成に関する一例のフローチャートである。
【図５】図５は、本実施形態に係るシミュレーションシステムの自動試験の実施に関する一例のフローチャートである。
【図６】図６は、本実施形態に係るシミュレーションシステムのシミュレート方法に関する一例のフローチャートである。
【図７】図７は、本実施形態に係るシミュレーションシステムのシミュレート方法に関する一例のフローチャートである。
【図８】図８は、本実施形態に係るシミュレーションシステムのシミュレート方法に関する一例のフローチャートである。
【発明を実施するための形態】
【００２１】
以下に、本発明に係る実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。また、下記実施形態における構成要素には、当業者が置換可能かつ容易なもの、あるいは実質的に同一のものが含まれる。さらに、以下に記載した構成要素は適宜組み合わせることが可能であり、また、実施形態が複数ある場合には、各実施形態を組み合わせることも可能である。
【００２２】
［実施形態］
本実施形態に係るシミュレーションシステム１０は、ハードウェア１５とソフトウェア１６との適合性をシミュレートするものである。つまり、設計されたハードウェア１５及びソフトウェア１６に対して、作成したハードウェア１５及びソフトウェア１６が適切な動作を行うか否かを判定するために、作成したハードウェア１５及びソフトウェア１６の動作を試験するものである。
【００２３】
図１は、本実施形態に係るシミュレーションシステムを概念的に示す構成図である。図２は、本実施形態に係るシミュレーションシステムの試験シナリオの作成に関する一例のフローチャートである。図３は、本実施形態に係るシミュレーションシステムの試験シナリオの編集に関する一例のフローチャートである。図４は、本実施形態に係るシミュレーションシステムのスケジュールファイルの作成に関する一例のフローチャートである。図５は、本実施形態に係るシミュレーションシステムの自動試験の実施に関する一例のフローチャートである。図６から図８は、本実施形態に係るシミュレーションシステムのシミュレート方法に関する一例のフローチャートである。
【００２４】
図１を参照して、シミュレーションシステム１０について説明する。シミュレーションシステム１０は、ソフトウェアシミュレータ２０と、ハードウェアシミュレータ３０と、を備える。
【００２５】
ソフトウェアシミュレータ２０は、ハードウェア１５を模擬したハードウェアモデル１４と、ハードウェアモデル１４上において実行されるソフトウェア１６と、の動作をシミュレートする。ハードウェアモデル１４は、ソフトウェアシミュレータ２０上において動作する仮想のハードウェア１５である。ソフトウェアシミュレータ２０としては、例えば、ＳＩＬＳ（Software  In  the  Loop  Simulator）がある。
【００２６】
ソフトウェアシミュレータ２０は、マウス及びキーボード等の入力デバイスで構成された入力装置と、モニタ等の出力デバイスで構成された出力装置と、制御装置と、記憶装置とを有している。制御装置は、例えば、ＣＰＵ（Central  Processing  Unit）等の集積回路を含んでいる。記憶装置は、作業領域となるメモリ及び記録媒体としての半導体記憶デバイスまたは磁気記憶デバイス等を含んでいる。なお、ソフトウェアシミュレータ２０は、単体の装置で構成してもよいし、制御装置及びデータサーバ等を組み合わせた複数の装置で構成してもよく、特に限定されない。
【００２７】
ソフトウェアシミュレータ２０は、入力装置が操作されることで、所定の操作情報が入力される。操作情報としては、例えば、ハードウェア１５及びソフトウェア１６の試験シナリオに関する情報である。つまり、試験シナリオとは、ハードウェア１５及びソフトウェア１６に対して所定の機能を動作させるための試験手順である。操作者が、入力装置を介して所定の試験手順を入力すると、ソフトウェアシミュレータ２０は、試験手順に基づく入力信号を生成する。生成された入力信号は、メモリ上に展開された仮想のハードウェアモデル１４に入力される。ハードウェアモデル１４は、設計上におけるハードウェア１５の仮想モデルであることから、設計に則った動作を実行する。
【００２８】
ハードウェアモデル１４とソフトウェア１９との間では、Ｉ（Input）／Ｏ（Output）変換が行われる。Ｉ／Ｏ変換は、ソフトウェアシミュレータ２０とハードウェアシミュレータ３０とのインターフェースの違いによって、Ｉ／Ｏの違いが生じないように、入出力信号を変換している。このため、ソフトウェアシミュレータ２０において用いられるソフトウェア１６は、ハードウェアシミュレータ３０において用いられるソフトウェア１６と同一にできる。
【００２９】
ソフトウェアシミュレータ２０は、ハードウェアモデル１４に入力された入力信号に基づいて、ハードウェアモデル１４上においてソフトウェア１６が実行されることにより生成される出力信号（仮想出力信号）を出力する。また、ソフトウェアシミュレータ２０は、ハードウェアモデル１４（ハードウェア１５）周りの周辺機器を模擬した周辺機器モデルを用いている。周辺機器モデルは、ハードウェアモデル１４との間で入出力信号のやり取りを行っている。このため、ハードウェアモデル１４は、周辺機器モデルの動作を含めた動作を実行する。
【００３０】
そして、ソフトウェアシミュレータ２０は、ハードウェアモデル１４から出力された出力信号が適合しているか否かを判定している。つまり、設計されたハードウェア１５及びソフトウェア１６から出力される、入力信号に対応する出力信号は、設計要領または設計仕様等によって、予め規定された規定出力信号として設計されている。ソフトウェアシミュレータ２０は、ハードウェアモデル１４から出力された出力信号が、規定出力信号と適合しているか否かを判定することで、適合性を判定している。ソフトウェアシミュレータ２０は、ハードウェアモデル１４から出力された出力信号が規定出力信号と適合している場合、ソフトウェア１６が正常（良好）であると判定する。一方で、ソフトウェアシミュレータ２０は、ハードウェアモデル１４から出力された出力信号が規定出力信号と適合していない場合、ソフトウェア１６が異常（不良）であると判定する。このように、ソフトウェアシミュレータ２０は、作成したソフトウェア１６の動作の適合性を試験している。
【００３１】
また、ソフトウェアシミュレータ２０は、ハードウェアモデル１４に入力される入力信号を入力ログとして収集し、また、ハードウェアモデル１４から出力される出力信号を出力ログとして収集している。ソフトウェアシミュレータ２０は、収集した入力ログ及び出力ログを、試験シナリオに基づく情報である試験シナリオファイルとして生成する。また、ソフトウェアシミュレータ２０は、試験シナリオファイルを出力可能となっている。ソフトウェアシミュレータ２０は、同じ試験シナリオを繰り返し実行する場合、生成した試験シナリオを用いて、自動で試験を実行することが可能となっている。すなわち、ソフトウェアシミュレータ２０は、試験シナリオファイルに含まれる入力ログに基づく入力信号を生成する。ソフトウェアシミュレータ２０は、生成された入力信号を、ハードウェアモデル１４に入力することで、試験を実行する。
【００３２】
次に、ハードウェアシミュレータ３０について説明する。ハードウェアシミュレータ３０は、ハードウェア１５と、ハードウェア１５上において実行されるソフトウェア１６と、の動作をシミュレートする。ハードウェア１５は、作成された供試体としての実物のハードウェア１５である。ハードウェアシミュレータ３０としては、例えば、ＨＩＬＳ（Hardware  In  the  Loop  Simulator）がある。
【００３３】
ハードウェアシミュレータ３０は、マウス及びキーボード等の入力デバイスを含む入力装置と、モニタ等の出力デバイスを含む出力装置と、制御装置と、記憶装置とを有している。制御装置は、例えば、ＣＰＵ（Central  Processing  Unit）等の集積回路を含んでいる。記憶装置は、作業領域となるメモリ及び記録媒体としての半導体記憶デバイスまたは磁気記憶デバイス等を含んでいる。なお、ハードウェアシミュレータ３０も、ソフトウェアシミュレータ２０と同様に、単体の装置で構成してもよいし、制御装置及びデータサーバ等を組み合わせた複数の装置で構成してもよく、特に限定されない。
【００３４】
ハードウェアシミュレータ３０は、ソフトウェアシミュレータ２０で生成された試験シナリオファイルが入力される。ハードウェアシミュレータ３０は、試験シナリオファイルに基づいて、自動で試験を実行する。すなわち、ハードウェアシミュレータ３０は、試験シナリオファイルに含まれる入力ログに基づく入力信号を生成する。ハードウェアシミュレータ３０は、生成された入力信号を、ハードウェア１５に入力することで、試験を実行する。
【００３５】
ハードウェアシミュレータ３０は、ハードウェア１５に入力された入力信号に基づいて、ハードウェア１５上においてソフトウェア１６が実行されることにより生成される出力信号（実出力信号）を出力する。また、ハードウェアシミュレータ３０は、ハードウェア１５周りの周辺機器を模擬した周辺機器モデルを用いている。周辺機器モデルは、ハードウェア１５との間で入出力信号のやり取りを行っている。このため、ハードウェア１５は、周辺機器モデルの動作を含めた動作を実行する。
【００３６】
そして、ハードウェアシミュレータ３０は、ハードウェア１５から出力された出力信号が適合しているか否かを判定している。つまり、ハードウェアシミュレータ３０は、ハードウェア１５から出力された出力信号が、規定出力信号と適合しているか否かを判定することで、ハードウェア１５及びソフトウェア１６の適合性を判定している。ハードウェアシミュレータ３０は、ハードウェア１５から出力された出力信号が規定出力信号と適合している場合、ハードウェア１５及びソフトウェア１６が正常（良好）であると判定する。一方で、ハードウェアシミュレータ３０は、ハードウェア１５から出力された出力信号が規定出力信号と適合していない場合、ハードウェア１５及びソフトウェア１６の少なくとも一方が異常（不良）であると判定する。このとき、ハードウェアシミュレータ３０は、ソフトウェア１６が正常であると予め判定されていれば、ハードウェア１５の異常であると判定することが可能となる。このように、ハードウェアシミュレータ３０は、作成したハードウェア１５の動作の適合性を試験している。
【００３７】
次に、図２から図５を参照して、ソフトウェアシミュレータ２０及びハードウェアシミュレータ３０において実行される各作動モードについて説明する。なお、図２から図５に示す各作動モードは、ソフトウェアシミュレータ２０及びハードウェアシミュレータ３０においてそれぞれ実行可能となっている。
【００３８】
図２は、上記した試験シナリオファイルを作成する試験シナリオ作成モードのフローチャートである。以下の説明では、ソフトウェアシミュレータ２０が生成する場合について説明するが、ハードウェアシミュレータ３０が生成してもよい。
【００３９】
ソフトウェアシミュレータ２０は、試験シナリオ作成モードを実行する（ステップＳ１１）。すると、ソフトウェアシミュレータ２０は、ログ収集の開始を実行する（ステップＳ１２）。ソフトウェアシミュレータ２０は、ログ収集の開始を実行すると、ハードウェアモデル１４に入力される入力信号を入力ログとして収集する（ステップＳ１３）。また、ソフトウェアシミュレータ２０は、ハードウェアモデル１４から出力される出力信号を出力ログとして収集する（ステップＳ１４）。ソフトウェアシミュレータ２０は、試験シナリオ（試験手順）が終了したか否かを判定する（ステップＳ１５）。ソフトウェアシミュレータ２０は、試験シナリオが終了したと判定する（ステップＳ１５：Ｙｅｓ）と、試験シナリオにおいて収集した入力ログと出力ログとを含む情報を、試験シナリオファイルとして出力し（ステップＳ１６）、試験シナリオ作成モードの処理を終了する。一方で、ソフトウェアシミュレータ２０は、試験シナリオが終了していないと判定する（ステップＳ１５：Ｎｏ）と、ステップＳ１３に進み、試験シナリオが終了するまで、引き続き、入力ログ及び出力ログを収集する。
【００４０】
なお、ソフトウェアシミュレータ２０（ハードウェアシミュレータ３０）は、試験シナリオ作成モードの実行時において、入力ログ及び出力ログを、適宜取捨選択して収集している。ソフトウェアシミュレータ２０（ハードウェアシミュレータ３０）は、適合性の判定において評価の対象外となる信号の収集を省いている。ソフトウェアシミュレータ２０（ハードウェアシミュレータ３０）は、例えば、ハードウェアモデル１４（ハードウェア１５）からの出力信号に対する、ソフトウェアシミュレータ２０（ハードウェアシミュレータ３０）の応答信号のうち、評価対象外となる信号を省いている。また、ソフトウェアシミュレータ２０（ハードウェアシミュレータ３０）は、例えば、各作動モードの変更等に関する準備操作において生成される、ソフトウェアシミュレータ２０（ハードウェアシミュレータ３０）の入力信号を省いている。
【００４１】
なお、ソフトウェアシミュレータ２０により生成された試験シナリオファイルは、要領書を自動で作成するために用いてもよい。
【００４２】
図３は、作成した試験シナリオファイルを編集する試験シナリオ編集モードのフローチャートである。以下の説明でも、ソフトウェアシミュレータ２０上において編集する場合について説明するが、ハードウェアシミュレータ３０上において編集してもよい。
【００４３】
ソフトウェアシミュレータ２０は、試験シナリオ編集モードを実行する（ステップＳ２１）。すると、ソフトウェアシミュレータ２０は、試験シナリオファイルの編集の開始を実行する（ステップＳ２２）。ソフトウェアシミュレータ２０は、試験シナリオファイルの編集の開始を実行すると、入力ログ及び出力ログへの追加修正を受け付け、追加修正に関する操作に応じて、入力ログ及び出力ログを追加修正する（ステップＳ２３）。また、ソフトウェアシミュレータ２０は、入力ログ及び出力ログへの変更修正を受け付け、変更修正に関する操作に応じて、入力ログ及び出力ログを変更修正する（ステップＳ２４）。さらに、ソフトウェアシミュレータ２０は、入力ログのログ間のインターバルへの変更修正を受け付けると共に、出力ログのログ間のインターバルへの変更修正を受け付け、変更修正に関する操作に応じて、入力ログ及び出力ログのログ間のインターバルを変更修正する（ステップＳ２５）。ソフトウェアシミュレータ２０は、試験シナリオファイルの編集が終了したか否かを判定する（ステップＳ２６）。ソフトウェアシミュレータ２０は、試験シナリオファイルの編集が終了したと判定する（ステップＳ２６：Ｙｅｓ）と、編集後の試験シナリオファイルを出力し（ステップＳ２７）、試験シナリオ編集モードの処理を終了する。一方で、ソフトウェアシミュレータ２０は、試験シナリオファイルの編集が終了していないと判定する（ステップＳ２６：Ｎｏ）と、ステップＳ２３に進み、試験シナリオファイルの編集が終了するまで、引き続き、編集を受け付ける。
【００４４】
図４は、作成した試験シナリオのスケジュールファイルを作成するスケジュールファイル作成モードのフローチャートである。スケジュールファイルは、試験シナリオの順番に関する情報である。試験シナリオは、試験時において複数実行可能なように、複数用意されている。ソフトウェアシミュレータ２０及びハードウェアシミュレータ３０は、スケジュールファイルに基づいて、複数の試験シナリオを順次実行している。以下の説明でも、ソフトウェアシミュレータ２０上において編集する場合について説明するが、ハードウェアシミュレータ３０上において編集してもよい。
【００４５】
ソフトウェアシミュレータ２０は、スケジュールファイル作成モードを実行する（ステップＳ３１）。すると、ソフトウェアシミュレータ２０は、スケジュールファイルの作成の開始を実行する（ステップＳ３２）。ソフトウェアシミュレータ２０は、スケジュールファイルの作成の開始を実行すると、任意の試験シナリオの選択を受け付けると共に、試験シナリオの順番を受け付け、試験シナリオの選択及び順番に関する操作に応じて、任意の試験シナリオを選択したり、試験シナリオの順番を変更したりする（ステップＳ３３）。ソフトウェアシミュレータ２０は、試験シナリオの順番の選択が終了したか否かを判定する（ステップＳ３４）。ソフトウェアシミュレータ２０は、試験シナリオの順番の選択が終了したと判定する（ステップＳ３４：Ｙｅｓ）と、順番選択後の試験シナリオのスケジュールファイルを生成して出力し（ステップＳ３５）、スケジュールファイル作成モードの処理を終了する。一方で、ソフトウェアシミュレータ２０は、試験シナリオの順番の選択が終了していないと判定する（ステップＳ３４：Ｙｅｓ）と、ステップＳ３３に進み、試験シナリオの順番の選択が終了するまで、引き続き、順番の選択を受け付ける。
【００４６】
図５は、試験シナリオファイルに基づく自動試験を実行する自動試験モードのフローチャートである。以下の説明では、ハードウェアシミュレータ３０において自動試験を行う場合について説明するが、ソフトウェアシミュレータ２０上において自動試験を行ってもよい。
【００４７】
ハードウェアシミュレータ３０は、自動試験モードを実行する（ステップＳ４１）。すると、ハードウェアシミュレータ３０は、ハードウェア１５及びソフトウェア１６の自動試験を開始する（ステップＳ４２）。ハードウェアシミュレータ３０は、自動試験を開始すると、スケジュールファイルを読み込むと共に、スケジュールファイルに含まれる試験シナリオファイルを読み込む（ステップＳ４３）。ハードウェアシミュレータ３０は、試験シナリオファイルに基づいて、自動試験を実施する（ステップＳ４４）。ハードウェアシミュレータ３０は、全ての試験シナリオ（試験手順）が終了したか否かを判定する（ステップＳ４５）。ハードウェアシミュレータ３０は、全ての試験シナリオが終了したと判定する（ステップＳ４５：Ｙｅｓ）と、試験シナリオにおいて取得した試験結果に関する情報を、試験結果ファイルとして出力し（ステップＳ４６）、自動試験モードの処理を終了する。一方で、ハードウェアシミュレータ３０は、全ての試験シナリオが終了していないと判定する（ステップＳ４５：Ｎｏ）と、ステップＳ４３に進み、全ての試験シナリオが終了するまで、引き続き、自動試験を実施する。
【００４８】
次に、図６及び図７を参照して、ソフトウェアシミュレータ２０とハードウェアシミュレータ３０とを用いた、ハードウェア１５及びソフトウェア１６の適合性の試験について、具体的に説明する。この試験では、先ず、図６に示すソフトウェアシミュレータ２０による試験（ＳＩＬＳ試験）を実施した後に、図７に示すハードウェアシミュレータ３０による試験（ＨＩＬＳ試験）を実施している。
【００４９】
ソフトウェアシミュレータ２０は、ソフトウェア１６の適合性の試験を開始する（ステップＳ５１）。すると、ソフトウェアシミュレータ２０は、ログ収集の開始を実行する（ステップＳ５２）。ソフトウェアシミュレータ２０は、ログ収集の開始を実行すると、ハードウェアモデル１４に入力される入力信号を入力ログとして収集する（ステップＳ５３）。また、ソフトウェアシミュレータ２０は、ハードウェアモデル１４に入力される入力信号に基づくＳＩＬＳ試験を実施する（ステップＳ５４）。ソフトウェアシミュレータ２０は、ハードウェアモデル１４上においてソフトウェア１６を実行することにより、出力信号を生成して出力する。ソフトウェアシミュレータ２０は、ハードウェアモデル１４から出力される出力信号を出力ログとして収集する（ステップＳ５５）。ソフトウェアシミュレータ２０は、試験シナリオ（試験手順）が終了したか否かを判定する（ステップＳ５６）。ソフトウェアシミュレータ２０は、試験シナリオが終了したと判定する（ステップＳ５６：Ｙｅｓ）と、試験シナリオにおいて収集した入力ログと出力ログとを含む情報を、試験シナリオファイルとして出力する（ステップＳ５７）。一方で、ソフトウェアシミュレータ２０は、試験シナリオが終了していないと判定する（ステップＳ５６：Ｎｏ）と、ステップＳ４３に進み、試験シナリオが終了するまで、引き続き、ＳＩＬＳ試験を実施して、入力ログ及び出力ログを収集する。
【００５０】
ソフトウェアシミュレータ２０は、試験シナリオファイルを出力すると、試験シナリオにおいて取得した試験結果に基づいて、ソフトウェア１６の動作が正常（良好）であったか否かを判定する（ステップＳ５８：第１のステップ）。ソフトウェアシミュレータ２０は、ソフトウェア１６の動作が正常（良好）であったと判定する（ステップＳ５８：Ｙｅｓ）と、ＳＩＬＳ試験を終了する。一方で、ソフトウェアシミュレータ２０は、ソフトウェア１６の動作が異常（不良）であったと判定すると、ソフトウェア１６のデバッグが実施される（ステップＳ５９）。また、ソフトウェアシミュレータ２０は、出力した試験シナリオファイルが不良のファイルであるとして、試験シナリオ編集モードを実行する。試験シナリオ編集モードでは、適切な試験シナリオファイルとなるように編集される（ステップＳ６０）。そして、ソフトウェアシミュレータ２０は、編集後の試験シナリオファイルを読み込む（ステップＳ６１）と共に、デバッグが実施されたソフトウェア１６に書き換えて、再びステップＳ４１に進み、ソフトウェア１６の動作が正常となるまで、ＳＩＬＳ試験を実施する。
【００５１】
ＳＩＬＳ試験の実施後、図７に示すＨＩＬＳ試験を自動で実施する。ハードウェアシミュレータ３０は、ハードウェア１５及びソフトウェア１６のＨＩＬＳ試験を開始する（ステップＳ７１）。ハードウェアシミュレータ３０は、ＨＩＬＳ試験を開始すると、ＳＩＬＳ試験において生成された試験シナリオファイルを読み込む（ステップＳ７２）。ハードウェアシミュレータ３０は、試験シナリオファイルに基づいて、自動ＨＩＬＳ試験を実施する（ステップＳ７３）。ハードウェアシミュレータ３０は、試験シナリオにおいて取得した試験結果に関する情報を、試験結果ファイルとして出力する（ステップＳ７４）。ハードウェアシミュレータ３０は、試験シナリオファイルを出力すると、試験シナリオにおいて取得した試験結果に基づいて、ハードウェア１５及びソフトウェア１６の動作が正常（良好）であったか否かを判定する（ステップＳ７５：第２のステップ）。なお、ステップＳ７５では、ＳＩＬＳ試験において正常とされたソフトウェア１６を用いていることから、ハードウェア１５の動作が正常（良好）であったか否かを判定している。ソフトウェアシミュレータ２０は、ステップＳ７５において、ハードウェア１５の動作が正常（良好）であったと判定した場合（ステップＳ７６）、ハードウェア１５が適合しているとして、ＨＩＬＳ試験を終了する。一方で、ハードウェアシミュレータ３０は、ハードウェア１５の動作が異常（不良）であったと判定した場合（ステップＳ７７）、ハードウェア１５が不適合であるとして、ＨＩＬＳ試験を終了する。
【００５２】
次に、図８を参照して、ソフトウェアシミュレータ２０とハードウェアシミュレータ３０とを用いた、ハードウェア１５及びソフトウェア１６のエラーチェック試験について、具体的に説明する。この試験では、先ず、ハードウェアシミュレータ３０による試験（ＨＩＬＳ試験）を実施した後に、ソフトウェアシミュレータ２０による試験（ＳＩＬＳ試験）を実施している。
【００５３】
ハードウェアシミュレータ３０は、ＨＩＬＳ試験を開始する（ステップＳ８１）。すると、ハードウェアシミュレータ３０は、ログ収集の開始を実行する（ステップＳ８２）。ハードウェアシミュレータ３０は、ログ収集の開始を実行すると、ハードウェア１５に入力される入力信号を入力ログとして収集する（ステップＳ８３）。また、ハードウェアシミュレータ３０は、ハードウェア１５に入力される入力信号に基づくＨＩＬＳ試験を実施する（ステップＳ８４）。ハードウェア１５に入力信号が入力されるとハードウェア１５は、ソフトウェア１６を実行することにより、出力信号を生成して出力する。ハードウェアシミュレータ３０は、ハードウェア１５から出力される出力信号を出力ログとして収集する（ステップＳ８５）。ハードウェアシミュレータ３０は、エラーチェックに関する試験シナリオ（試験手順）が終了したか否かを判定する（ステップＳ８６）。ソフトウェアシミュレータ２０は、試験シナリオが終了したと判定する（ステップＳ８６：Ｙｅｓ）と、試験シナリオにおいて収集した入力ログと出力ログとを含む情報を、試験シナリオファイルとして出力する（ステップＳ８７）。一方で、ハードウェアシミュレータ３０は、試験シナリオが終了していないと判定する（ステップＳ８６：Ｎｏ）と、ステップＳ８３に進み、試験シナリオが終了するまで、引き続き、ＨＩＬＳ試験を実施して、入力ログ及び出力ログを収集する。
【００５４】
ハードウェアシミュレータ３０は、試験シナリオファイルを出力すると、試験シナリオにおいて取得した試験結果に基づいて、ハードウェア１５及びソフトウェア１６の動作が正常（良好）であったか否かを判定する（ステップＳ８８：第３のステップ）。ハードウェアシミュレータ３０は、ハードウェア１５及びソフトウェア１６の動作が正常（良好）であったと判定する（ステップＳ８８：Ｙｅｓ）と、エラーがないとして、ＳＩＬＳ試験を実施せずに、ＨＩＬＳ試験を終了する。一方で、ハードウェアシミュレータ３０は、ハードウェア１５及びソフトウェア１６の動作が異常（不良）であったと判定する（ステップＳ８８：Ｎｏ）と、ハードウェア１５及びソフトウェア１６のいずれかの異常であるかを特定すべく、シミュレーションシステム１０は、ＳＩＬＳ試験を実施する。ハードウェアシミュレータ３０は、ハードウェア１５及びソフトウェア１６の動作が異常（不良）であったと判定する（ステップＳ８８：Ｎｏ）と、出力した試験シナリオファイルが不良のファイルであるとして、試験シナリオ編集モードを実行する（ステップＳ８９）。試験シナリオ編集モードでは、適切な試験シナリオファイルとなるように編集される。
【００５５】
ＨＩＬＳ試験の実施後、ソフトウェアシミュレータ２０は、ＳＩＬＳ試験を自動で実施する。ソフトウェアシミュレータ２０は、ソフトウェア１６のＳＩＬＳ試験を開始する（ステップＳ９０）。ソフトウェアシミュレータ２０は、ＳＩＬＳ試験を開始すると、ＨＩＬＳ試験において生成された試験シナリオファイルを読み込む（ステップＳ９１）。ソフトウェアシミュレータ２０は、試験シナリオファイルに基づいて、自動ＳＩＬＳ試験を実施する（ステップＳ９２）。ソフトウェアシミュレータ２０は、試験シナリオにおいて取得した試験結果に基づいて、ソフトウェア１６の動作が正常（良好）であったか否かを判定する（ステップＳ９３：第４のステップ）。ソフトウェアシミュレータ２０は、ソフトウェア１６の動作が正常（良好）であったと判定する（ステップＳ９３：Ｙｅｓ）と、正常（良好）と判定された回数（ｉ’）が、所定の試験回数（Ｎ’）よりも多いか否かを判定する（ステップＳ９４）。ソフトウェアシミュレータ２０は、正常（良好）と判定された回数（ｉ’）が、所定の試験回数（Ｎ’）よりも多いと判定する（ステップＳ９４：ｉ’＞Ｎ’）と、ソフトウェア１６が正常であるとして、ＳＩＬＳ試験を終了する。ここで、デバックを実施せずに、ソフトウェア１６が正常であると判定された場合は、ハードウェア１５の異常であると推定できる。ソフトウェアシミュレータ２０は、正常（良好）と判定された回数（ｉ’）が、所定の試験回数（Ｎ’）以下であると判定する（ステップＳ９４：ｉ’≦Ｎ’）と、再びステップＳ９０に進み、ＳＩＬＳ試験を実施する。
【００５６】
ソフトウェアシミュレータ２０は、ステップＳ９３において、ソフトウェア１６の動作が異常（不良）であったと判定する（ステップＳ９３：Ｎｏ）と、ソフトウェア１６のデバッグが実施される（ステップＳ９６）。ソフトウェアシミュレータ２０は、デバッグが実施された後のソフトウェア１６に書き換えて、再びステップＳ９０に進み、ＳＩＬＳ試験を実施する。なお、ＳＩＬＳ試験において、ソフトウェア１６の異常を判定され、ソフトウェア１６のデバッグが実施された後、再びＨＩＬＳ試験を実施してもよい。
【００５７】
以上のように、本実施形態によれば、ソフトウェアシミュレータ２０（ＳＩＬＳ試験）において、仮想出力信号と規定出力信号とが適合する場合、ソフトウェア１６の動作が正常であると判定することができる。そして、ハードウェアシミュレータ３０（ＨＩＬＳ試験）において、動作が正常であると判定されたソフトウェア１６と、入力信号を含む試験シナリオファイルとを用いることで出力された、実出力信号と規定出力信号とが適合する場合、ハードウェア１５の動作が正常であると判定することができる。以上のように、ハードウェアシミュレータ３０において、ハードウェア１５とソフトウェア１６との適合性を評価することができるため、高品質な試験を行うことができる。また、ハードウェア１５とソフトウェア１６とを切り分けて、ハードウェア１５とソフトウェア１６との適合性を評価することができるため、試験を効率よく行うことができる。さらに、ソフトウェアシミュレータ２０において適合していると判定された入力信号を含む試験シナリオを、ハードウェアシミュレータ３０に用いることができるため、ソフトウェアシミュレータ２０とハードウェアシミュレータ３０とのそれぞれに対して、入力信号を含む試験シナリオを生成する必要がないことから、試験を効率よく行うことができる。また、ソフトウェアシミュレータ２０において適合していると判定されたソフトウェア１６及び入力信号を含む試験シナリオを、自動でハードウェアシミュレータ３０に入力することで、試験を効率よく行うことが可能となる。
【００５８】
また、本実施形態によれば、ハードウェア１５及びソフトウェア１６の動作試験の試験シナリオに基づいて、入力信号を生成することができる。
【００５９】
また、本実施形態によれば、ソフトウェアシミュレータ２０は、試験シナリオファイルを、ハードウェアシミュレータ３０に送信可能な情報として出力することができる。このため、ソフトウェアシミュレータ２０とハードウェアシミュレータ３０との情報のやり取りをスムーズに行うことができる。
【００６０】
また、本実施形態によれば、試験シナリオファイルを編集できるため、試験シナリオファイルに含まれる不要な情報を削除したり、試験シナリオファイルに含まれる誤った情報を正しい情報に修正したりすることができる。
【００６１】
また、本実施形態によれば、スケジュールファイルに基づいて、任意の試験シナリオを順番通りに実行することができるため、試験の効率化を図ることができる。
【００６２】
また、本実施形態によれば、ハードウェアシミュレータ３０（ＨＩＬＳ試験）において、実出力信号と規定出力信号とが適合しない場合、ハードウェア１５及びソフトウェア１６の少なくとも一方の動作が異常であると判定することができる。そして、ソフトウェアシミュレータ２０（ＳＩＬＳ試験）において、動作が異常であると判定されたソフトウェア１６と入力信号とを用いることで出力された、仮想出力信号と規定出力信号とが適合しない場合、ソフトウェア１６の動作が異常であると判定することができる。一方で、ソフトウェアシミュレータ２０（ＳＩＬＳ試験）において、動作が異常であると判定されたソフトウェア１６と入力信号とを用いることで出力された、仮想出力信号と規定出力信号とが適合する場合、ハードウェア１５の動作が異常であると判定することができる。以上のように、ハードウェアシミュレータ３０及びソフトウェアシミュレータ２０を用いることで、ハードウェア１５及びソフトウェア１６の異常を判定する、つまり、エラーチェックを行うことができる。
【符号の説明】
【００６３】
１０  シミュレーションシステム
１４  ハードウェアモデル
１５  ハードウェア
１６  ソフトウェア
２０  ソフトウェアシミュレータ
３０  ハードウェアシミュレータ
【図１】
2020087311.tif 000003
【図２】
2020087311.tif 000004
【図３】
2020087311.tif 000005
【図４】
2020087311.tif 000006
【図５】
2020087311.tif 000007
【図６】
2020087311.tif 000008
【図７】
2020087311.tif 000009
【図８】
2020087311.tif 000010