(57)【要約】      （修正有）【課題】仮想ハードウェア開発環境下において試験シナリオを効率的に作成でき、これを用いることで、ハードウェアシミュレータの無いシミュレーション装置においてもハードウェアシミュレーション試験を可能にする。【解決手段】シミュレーション装置は、命令セットシミュレータを有し、ソフトウェアプログラムのシミュレーションを実行するソフトウェアシミュレータ３と、ハードウェアを模擬するハードウェアシミュレータ６と、両シミュレータ間の信号の受け渡しを行い、ソフトウェアプログラムの試験を実行する試験シナリオ実行モデル２とを備える。試験シナリオ実行モデルは、試験開始時の初期状態の信号と、両シミュレータ間で受け渡す信号とを含む信号トレース情報１２を収集して記憶部に保存する。シナリオ作成ツール７は、信号トレース情報を用いて、ソフトウェアプログラムの試験を行うための試験シナリオファイル１３を作成する。【選択図】図１
2017084082.tif 000002
【特許請求の範囲】
【請求項１】
命令セットシミュレータを有し、ソフトウェアプログラムのシミュレーションを実行するソフトウェアシミュレータと、周辺装置などのハードウェアを模擬するハードウェアシミュレータと、前記ソフトウェアシミュレータと前記ハードウェアシミュレータとの間の信号の受け渡しを行い、前記ソフトウェアプログラムの試験を実行する試験シナリオ実行モデルと、を備えたシミュレーション装置であって、
前記試験シナリオ実行モデルは、試験開始時の初期状態の信号と、前記ソフトウェアシミュレータと前記ハードウェアシミュレータとの間で受け渡す信号とを含む信号トレース情報を収集して記憶部に保存し、
さらに、前記信号トレース情報を用いて、前記ソフトウェアプログラムの試験を行うための試験シナリオファイルを作成するシナリオ作成ツールを備えたことを特徴とするシミュレーション装置。  
【請求項２】
前記シナリオ作成ツールは、信号トレース情報から作成された試験シナリオファイルの雛形の編集が可能であり、また前記信号トレース情報に同期した任意のタイミングで結果判定のための出力値を設定可能であることを特徴とする請求項１に記載のシミュレーション装置。  
【請求項３】
前記シナリオ作成ツールは、実行される試験シナリオファイルの識別情報、演算結果に基づく分岐先の試験シナリオファイルの識別情報、及び各試験シナリオファイルに対して実行対象であるか否かを示す活殺フラグを含む自動試験シナリオファイルを作成可能であることを特徴とする請求項２に記載のシミュレーション装置。
【請求項４】
前記試験シナリオ実行モデルは、ユーザインタフェースを通して指定された試験シナリオファイルまたは自動試験シナリオファイルを実行することを特徴とする請求項３に記載のシミュレーション装置。
【請求項５】
命令セットシミュレータを有し、ソフトウェアプログラムのシミュレーションを実行するソフトウェアシミュレータと、複数のシミュレータ間の信号の受け渡しを行う試験シナリオ実行モデルとを備えるシミュレーション装置を用いて前記ソフトウェアプログラムの試験を行うためのシナリオファイルを作成する方法であって、
前記シミュレーション装置にハードウェアシミュレータを設け、前記試験シナリオ実行モデルにより前記ソフトウェアシミュレータと前記ハードウェアシミュレータとの間の信号の受け渡しを行いながら、該信号のトレース情報を収集するステップと、
前記トレース情報を用いて、前記ソフトウェアプログラムの試験を行うための試験シナリオファイルの雛形を作成するステップと、
前記シナリオファイルの雛形に対して前記トレース情報に同期した任意のタイミングで結果判定のための出力値を設定してシナリオファイルを作成するステップと、
実行される試験シナリオファイルの識別情報、試験の結果に基づく分岐先の試験シナリオファイルの識別情報、及び各試験シナリオファイルに対して実行対象であるか否かを示す活殺フラグを含む試験手順を保存する自動試験シナリオファイルを作成するステップと、を含むことを特徴とする試験シナリオファイル作成方法。
【請求項６】
請求項５記載の試験シナリオファイル作成方法で作成された試験シナリオファイル及び自動試験シナリオファイルを用いてソフトウェアプログラムの試験を行う方法であって、
試験シナリオ実行モデルによって、前記自動試験シナリオファイルで指定された試験シナリオファイルの信号をソフトウェアシミュレータに入力し、該ソフトウェアシミュレータの出力結果に基づいて前記自動試験シナリオファイルの試験手順に従って前記ソフトウェアプログラムの試験を行うことを特徴とする試験シナリオファイルを用いた試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のシミュレータを連携させて開発プログラムの試験を行うシミュレーション装置に係り、特にシナリオモデルを用いて作成された試験シナリオに基づいて試験を行うシミュレーション装置、試験シナリオデータ作成方法、及び試験シナリオを用いた試験方法に関する。
【背景技術】
【０００２】
一般に、組込機器製品は外部から入力される信号をマイクロコンピュータ（以下、「マイコン」という。）で演算処理し、その結果を出力するという一連の動作によって製品の機能を実現している。
【０００３】
この組込機器製品のマイコンを動作させるソフトウェアプログラムの開発や試験は、クロス開発環境と呼ばれるパーソナルコンピュータ（以下、「ＰＣ」という。）上でプログラムを作成し、当該マイコン用の機械語プログラムに変換した後に、デバッガを使用して製品や試作品、あるいはベンダー提供のソフトウェア開発キットにロードして動作試験を行っている。
【０００４】
近年、製品の高機能化により、プログラムの開発規模が増大し、如何に多人数による開発やハードウェアとの並行開発を可能にし、また開発したプログラムを効率的に検証するかということが問題になってきた。
【０００５】
この問題に対して、ＰＣ上で実際のＣＰＵと同じ機械語命令を実行する命令セットシミュレータ（ＩＳＳ：Instruction Set Simulator）を用いた開発環境が提案されている。
【０００６】
ＩＳＳを使用してＰＣ上で組込み機器製品を試験する場合には、製品動作をシミュレートするための搬送メカシミュレータや電気回路シミュレータなどのハードウェアシミュレータを使用して、製品ハードウェアを模擬する仮想ハードウェア開発環境が構築されている。複数のシミュレータを用いて開発プログラムの動作試験を行う技術として、例えば特許文献１では、各シミュレータ間の同期をとってデータの受け渡しを行う情報処理装置が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−２９６３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
搬送メカシミュレータなどのハードウェアシミュレータでは、ＧＵＩでハードウェアの動作をとらえることができるので有用であるが、実際の製品で発生する様々な異常動作を模擬しようとすると、次の問題が生ずる。
（１）様々な試験パターンの動作をさせるためのシナリオの作成に時間がかかる。
（２）シミュレーション装置として機能する各コンピュータに夫々ハードウェアシミュレータを実装していたのでは、ライセンス等の費用が掛かる。
【０００９】
本発明は上述のかかる事情に鑑みてなされたものであり、仮想ハードウェア開発環境下において試験シナリオを効率的に作成でき、また、この試験シナリオを用いることによりハードウェアシミュレータを備えないシミュレーション装置においても、開発プログラムに対してハードウェアシミュレーション試験を行うことのできるシミュレーション装置、試験シナリオデータ作成方法、及び試験シナリオを用いた試験方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明のシミュレーション装置は、命令セットシミュレータを有し、ソフトウェアプログラムのシミュレーションを実行するソフトウェアシミュレータと、周辺装置などのハードウェアを模擬するハードウェアシミュレータと、前記ソフトウェアシミュレータと前記ハードウェアシミュレータとの間の信号の受け渡しを行い、前記ソフトウェアプログラムの試験を実行する試験シナリオ実行モデルと、を備えたシミュレーション装置であって、
前記試験シナリオ実行モデルは、試験開始時の初期状態の信号と、前記ソフトウェアシミュレータと前記ハードウェアシミュレータとの間で受け渡す信号とを含む信号トレース情報を収集して記憶部に保存し、
さらに、前記信号トレース情報を用いて、前記ソフトウェアプログラムの試験を行うための試験シナリオファイルを作成するシナリオ作成ツールを備えたことを特徴とする。
【００１１】
本発明では、試験シナリオ実行モデルは、単にシミュレータ間の信号の受け渡しを行うのみでなく、そのトレース情報を蓄積する。そしてシナリオ作成ツールはこのトレース情報を用いて試験シナリオファイルを作成する。これにより、効率よく試験シナリオファイルを作成することができる。このシナリオ作成ツールは、信号トレース情報から作成された試験シナリオファイルの雛形の編集が可能であり、また前記信号トレース情報に同期した任意のタイミングで結果判定のための出力値を設定可能である。  
【００１２】
また、本発明によるシナリオ作成ツールは、実行される試験シナリオファイルの識別情報、演算結果に基づく分岐先の試験シナリオファイルの識別情報、及び各試験シナリオファイルに対して実行対象であるか否かを示す活殺フラグを含む自動試験シナリオファイルの作成が可能である。
【００１３】
そして、試験シナリオ実行モデルに、ユーザインタフェース（試験要求画面）を通して指定された試験シナリオファイルまたは自動試験シナリオファイルを実行させる。これにより、試験シナリオファイルを用いて、ハードウェアシミュレータの実装されていないシミュレーション装置においても開発ソフトウェアプログラムの試験をすることができる。
【００１４】
本発明の試験シナリオファイル作成方法は、命令セットシミュレータを有し、ソフトウェアプログラムのシミュレーションを実行するソフトウェアシミュレータと、複数のシミュレータ間の信号の受け渡しを行う試験シナリオ実行モデルとを備えるシミュレーション装置を用いて前記ソフトウェアプログラムの試験を行うためのシナリオファイルを作成する方法であって、
前記シミュレーション装置にハードウェアシミュレータを設け、前記試験シナリオ実行モデルにより前記ソフトウェアシミュレータと前記ハードウェアシミュレータとの間の信号の受け渡しを行いながら、該信号のトレース情報を収集するステップと、
前記トレース情報を用いて、前記ソフトウェアプログラムの試験を行うための試験シナリオファイルの雛形を作成するステップと、
前記シナリオファイルの雛形に対して前記トレース情報に同期した任意のタイミングで結果判定のための出力値を設定してシナリオファイルを作成するステップと、
実行される試験シナリオファイルの識別情報、試験の結果に基づく分岐先の試験シナリオファイルの識別情報、及び各試験シナリオファイルに対して実行対象であるか否かを示す活殺フラグを含む試験手順を保存する自動試験シナリオファイルを作成するステップと、を含むことを特徴とする。
【００１５】
本発明では、ソフトウェアシミュレータとハードウェアシミュレータの間で実際に受け渡される信号をトレースし、これをベースにして異常試験や結果判定のために必要な情報等を付加して試験シナリオファイルを作成するので、効率良く試験シナリオファイルおよび自動試験シナリオファイルを作成することができる。
【００１６】
また、本発明による試験シナリオファイルを用いた試験方法は、上記試験シナリオファイル作成方法で作成された試験シナリオファイル及び自動試験シナリオファイルを用いてソフトウェアプログラムの試験を行う方法であって、
試験シナリオ実行モデルによって、前記自動試験シナリオファイルで指定された試験シナリオファイルの信号をソフトウェアシミュレータに入力し、該ソフトウェアシミュレータの出力結果に基づいて前記自動試験シナリオファイルの試験手順に従って前記ソフトウェアプログラムの試験を行うことを特徴とする。
【００１７】
本発明では、試験シナリオ実行モデルは、試験シナリオファイルとソフトウェアシミュレータとの間で信号の受け渡しを行うので、ハードウェアシミュレータの実装されていないシミュレーション装置を用いて、ハードウェアの信号を模擬した試験を行うことができる。
【発明の効果】
【００１８】
本発明によれば、仮想ハードウェア開発環境下において、試験シナリオ実行モデル，シナリオ作成ツールを用いて試験シナリオを効率的に作成できる。また、この試験シナリオを用いることによりハードウェアシミュレータを備えないシミュレーション装置においても、開発ソフトウェアプログラムに対してハードウェアシミュレーション試験を行うことができるので、試験費用の削減を図ることができる。また、多人数の並行開発も可能になり、ハードウェア開発の遅れによるソフトウェア開発への影響を軽減することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態によるシミュレーション装置の機能ブロック図である。
【図２】図１の試験シナリオ実行モデルの動作モードごとの受け渡しデータの流れの説明図である。
【図３】本発明の実施の形態による試験シナリオデータ作成の流れの概要説明図である。
【図４】図１の信号トレースファイルのデータ構成例である。
【図５】図１のアドレス定義ファイルのデータ構成例である。
【図６】図１のシナリオ作成ツールの試験シナリオ作成画面の説明図である。
【図７】図１の試験シナリオファイルのフォーマットの説明図である。
【図８】図１の試験シナリオファイルのデータ構成例である。
【図９】図１のシナリオ作成ツールの自動試験シナリオ設定画面の説明図である。
【図１０】図１の自動試験シナリオファイルのデータ構成例である。
【図１１】図１の試験シナリオ実行モデル（信号シミュレータ）のメイン処理の手順を示すフローチャートである。
【図１２】図１１の試験シナリオ実行処理の手順を示すフローチャートである。
【図１３】図１のシナリオ作成ツールで管理される試験シナリオデータの説明図である。
【図１４】図１のシナリオ作成ツールで管理される自動試験シナリオデータの説明図である。
【図１５】図１の試験要求画面を通して、試験シナリオファイルを指定してから結果を得るまでの流れの説明図である。
【発明を実施するための形態】
【００２０】
以下に本発明に係るシミュレーション装置の実施の形態を図面を参照しながら説明する。なお、命令セットシミュレータについて従来の技術を用いるため説明を割愛する。
【００２１】
図１は本実施の形態によるシミュレーション装置１の機能ブロック図である。ここで、シミュレーション装置１は、開発プログラムのシミュレーションを実行するソフトウェアシミュレータ３、周辺装置などのハードウェアを模擬するハードウェアシミュレータ６、ソフトウェアシミュレータ３やハードウェアシミュレータ６に対して試験シナリオを実行する試験シナリオ実行モデル２、および試験シナリオを作成するシナリオ作成ツール７を備えている。このシミュレーション装置１は汎用的なコンピュータによって実現することができる。ソフトウェアシミュレータ３のアプリケーションプログラム４は命令セットシミュレータ（ＩＳＳ）５上で動作する製品固有のプログラムで、開発対象プログラムである。
【００２２】
試験シナリオ実行モデルは２、メモリ空間の割り付けられたレジスタへのデータの読み出し処理／書き込み処理を行うことで、ソフトウェアシミュレータ３のアプリケーションプログラム４と、ハードウェアシミュレータ６との間のデータの受け渡しを行う。
【００２３】
ハードウェアシミュレータ６は、例えば、タイマモジュールや割込みコントローラなどの外部ＩＯのデバイスモデルをシミュレートする電子回路シミュレータ６ａや、投入口、搬送路、モータ、センサ（媒体検知）、ソレノイド  等の部品から構成され、組込み機器製品の実際の搬送動作を３次元（３Ｄ）表示可能な搬送メカシミュレータ６ｂなどがあり、これらシミュレータのソフトウェアプログラムをシミュレーション装置１にインストールして実行する。
【００２４】
［試験シナリオ実行モデルの動作概要］
次に図２を用いて、試験シナリオ実行モデル２の動作モードごとの概要を説明する。試験シナリオ実行モデルの処理手順の詳細については後述する。
試験シナリオ実行モデル２は、信号シミュレータとしての機能を備え、次の３つの動作モードを有する。
【００２５】
１）スルーモード（通常モード）
スルーモードでは、試験シナリオ実行モデル２は、ＩＳＳ５，電子回路シミュレータ６ａ，搬送メカシミュレータ６ｂのデータの中継を行う。試験シナリオ実行モデル２は、中継に際して、アドレス定義ファイル１１を参照して、アプリケーションプログラム４からＩＳＳ５を経由して渡されるアドレスとデータのうち、アドレスについてはアドレス定義ファイル１１を参照して信号名に変換し、ハードウェアシミュレータ６（本実施例では電子回路シミュレータ６ａ又は搬送メカシミュレータ６ｂ）に渡す。逆にハードウェアシミュレータ６から渡される信号名は、アドレスに変換してデータと共にＩＳＳ５に渡す。
【００２６】
ここで、アドレス定義ファイル１１は、図５に示すようにデバイスモデルの信号名、アプリケーションプログラム（開発ソフトウェアプログラム）から書き込まれるデータのアドレス、信号名に対するデータ型とこれに付随する属性が互いに関連付けられて保存されている。なお、属性は、データ型によって異なるが、データ型がBoolならばビット位置、データ型がIntegerならばビット幅（8,16,32,64）を表す。
【００２７】
試験シナリオ実行モデル２は、上記の受け渡し処理の際に、試験開始時の初期値と実行時の信号を信号トレースファイル１２に保存していく。
【００２８】
２）試験シナリオ実行モード
試験シナリオ実行モデル２は、試験要求画面８を通して指定された試験シナリオファイル１３を読み込み、読み込んだファイルのシナリオデータに従ってソフトウェアシミュレータ３と同期して、図２の実線矢印Ｆで表すように信号出力する。なお通常は、電子回路シミュレータ６ａ，搬送メカシミュレータ６ｂを使用しないが、必要に応じて図２の点線矢印Ｇで表すような信号操作をしても良い。例えば、ソフトウェアシミュレータ３の出力の表示などがある。
【００２９】
３）自動試験実行モード
自動試験実行モードでは、試験シナリオ実行モデル２は、シミュレーション装置１に保存されている自動試験シナリオファイル１４に登録された複数の試験シナリオファイル１３を自動的に順次実行する。そして、試験シナリオ実行モデル２は、ソフトウェアシミュレータ３の動作に同期して、この試験シナリオデータをソフトウェアシミュレータ３へ入力し、ソフトウェアシミュレータ３の出力（即ちアプリケーションプログラム４の演算結果）を試験要求画面８に表示する。
【００３０】
［シナリオ作成ツールの概要］
シナリオ作成ツール７は、スルーモードの試験シナリオ実行モデル２によって生成された信号トレースファイル１２を読込み、試験シナリオの初期データ（雛形）を生成する。生成された初期データは、試験シナリオデータのベースとなる。
【００３１】
初期データ生成後、ユーザはシナリオ作成ツール７によって、ユーザインタフェースを通して、試験に必要な項目を追加・編集して、試験シナリオファイル１３を作成する。勿論、信号トレースファイル１２を用いずに、全く新規に試験シナリオファイル１３を作成することもできるが、信号トレースファイル１２を用いることにより効率的に試験シナリオファイル１３を作成することができる。
【００３２】
さらにユーザは、自動的に複数の試験シナリオを連続実行する場合は、シナリオ作成ツール７によって自動試験シナリオファイル１４を作成する。
【００３３】
試験シナリオファイル１３と自動試験シナリオファイル１４の作成を終了すると、ユーザは試験要求画面８から試験シナリオ実行モデル２に対して動作モード、並びに試験で用いる試験シナリオファイル１３や自動試験シナリオファイル１４を指定する。指定された試験シナリオファイル１３や自動試験シナリオファイル１４は試験シナリオ実行モデル２に渡される。
【００３４】
［試験シナリオファイルの作成手順］
次に図３を用いて試験シナリオファイルの作成手順について説明する。
（ステップＳ１：信号トレースファイルの作成）
まず、試験シナリオ実行モデル２をスルーモードで実行して、信号トレース情報を信号トレースファイル１２に保存する。図４は、信号トレースファイルのデータ構成例である。試験の初期値として試験開始時の全信号情報とその後変化のあった信号が格納される。時間＝"００００００"の行が初期値であることを示す。
【００３５】
図３において、試験シナリオ実行モデル２は、試験要求画面８からトレース開始指示を受けると、初期値と動作開始から変化した信号情報として、時間、シミュレータ名、信号名、入力データを信号トレースファイル１２に格納していく。
【００３６】
（ステップＳ２：信号トレース情報のシナリオ作成ツールへの取り込み）
以下、図４に示すトレースファイル１２のデータ例を用いて、このデータをシナリオ作成ツール７に取り込み、図６に示す試験シナリオ作成画面で編集し、図８に示す試験シナリオファイル１３に出力するまでの流れを説明する。なお、図４，図６，図８において符号Ａ〜Ｅは、夫々のデータの対応関係を示している。即ち同じ符号のデータが対応することを意味する。
【００３７】
１）ユーザは、図６に示す試験シナリオ作成画面の「信号トレース  読込み」ボタンを選択し、読込み対象の信号トレースファイル１２を指定する。
２）シナリオ作成ツール７は、指定された信号トレースファイル１２のデータを読込み、一時バッファに格納する。そして試験シナリオ作成画面において以下の項目を設定する。
・信号トレースファイル１２のシミュレータ名＋信号名を検索し、シミュレータ名＋信号名の異なるものを、試験シナリオファイルフォーマットのシミュレータ名と信号名に格納する。
・時刻＝０のシミュレータ名＋信号名の入力データを初期値として設定する。時刻＝０がない場合は、格納しない。
・シミュレータ名を格納する順番は、任意に設定できるが、例えばシミュレータ名のあいうえお順とすることができるが、これに限らず出現した順番などであっても良い。
・試験シナリオファイルフォーマットのインターバル時間が未設定の場合は、信号トレースファイル１２の時刻の差分の最大公約数をユークリッドの互除法などで求め、インターバル時間とすることができる。
【００３８】
図４の信号トレースファイル１２のデータ例では、時刻0からの信号変化時刻が、（0, 100, 330, 350, 550, 1000）であり、各時刻の差分が、（100, 230, 20, 200,450）となる。各差分を素数の積で表すと、（2×2×5×5，2×5×23, 2×2×5, 2×2×2×5×5, 2×3×3×5×5）となる。したがって、最大公約数は10になるので、インターバル時間＝10となる。
・シミュレータの時刻に対応してタイミング番号、タイミング幅、信号情報を格納する。
【００３９】
（タイミング番号、タイミング幅、信号情報の格納方法）
・信号トレースファイル１２中のトレース情報は、時間の経過順に並んでいるので、該当する信号名の時刻の差分を求め、該当するシミュレータ名＋信号名の行とタイミング幅の列で定まる欄にインターバル時間で除算した値を格納する。
・トレース情報の時間を手入力した場合は、少数点以下の端数が出る場合があるので、その場合は四捨五入した値を格納する。なお、指定によって、切り上げ、切り捨ての何れでも良い。
・信号トレースファイル１２からの試験シナリオ読込みを行った場合は、最大公約数とするので、BOOL型のデータにディレイが入ることはない。
シナリオ作成ツール７は、試験シナリオ作成のために基本的に図１３に示す項目を管理するが、図１３において、信号トレース欄が"○"印の項目については、信号トレースファイル１２から自動的に取り込まれ、その他の項目についてはユーザが設定する。
【００４０】
（ステップＳ３：試験シナリオの編集）
シナリオ作成ツール７は、信号トレースファイル１２のトレース情報から、試験シナリオに必要なデータ（図１３の○印のデータ）を読み込んだ後は、試験シナリオの出力ディレクトリ、試験シナリオの出力ファイル名、アドレス定義ファイル、結果判定の方法を入力する。なお、結果判定シミュレータを用いて結果判定を行うような場合は、結果判定の欄に所定の記号（例えばＺ）を入力する。その他の場合は、結果判定欄の数値によって判定を行う。
ユーザは、試験内容に応じて、初期状態の変更、遅延時間（ディレイ）の設定、その他の動作指定を行ってカスタマイズすることができる。
【００４１】
（搬送メカシミュレータに関するカスタマイズ内容の例）
正常時は搬送前の搬送路には媒体が存在しない。しかし、搬送中に電源断が発生した状態で電源が再投入された場合など、特殊な状況下での装置の動作を試験として、搬送センサの初期値を「遮光あり」にして、そのときの挙動を検証するというようなケースが考えられる。
【００４２】
カスタマイズ編集の後は、試験シナリオファイル１３に変換する。自動試験シナリオファイル１４については、作成済みの複数の試験シナリオファイル１３のうち、必要な試験シナリオファイル１３を指定して自動試験シナリオファイル１４に変換する。
【００４３】
（ステップＳ４：試験シナリオファイルの作成）
ユーザが図６に示す試験シナリオ作成画面の「試験シナリオ作成」ボタンを選択すると、シナリオ作成ツール７は、上記ステップＳ２，Ｓ３で入力・設定された情報に基づいて試験シナリオファイル１３を作成する。具体的には次の動作を行う。
１）シナリオ作成ツール７は、試験シナリオデータからインターバル時間を読込み、試験シナリオファイル１３に書き込む。
２）シナリオ作成ツール７は、試験シナリオからアドレス定義ファイル名を読込み、試験シナリオファイル１３に書き込む。
３）シナリオ作成ツール７は、試験シナリオデータから結果判定シミュレータ名を読込み、試験シナリオファイル１３に書き込む。
図６の例では、"Ａ：１０１"で判定するので、結果判定シミュレータ名は記載されない。
【００４４】
４）シナリオ作成ツール７は、試験シナリオデータからタイミング番号を読込み、これを試験シナリオファイル１３に書き込む。
５）シナリオ作成ツール７は、試験シナリオデータの結果判定欄を検索し、結果判定のタイミング番号と結果判定を読込み、試験シナリオファイル１３に書き込む。
６）シナリオ作成ツール７は、定義されている順番にシミュレータ名＋信号と、初期値、出力データを試験シナリオファイル１３に書き込む。書き込むデータは、カンマ（","）で区切り、出力しない場合は、何も書き込まない。
シナリオ作成ツール７は、以上の処理によって試験シナリオファイル１３を作成する。
【００４５】
［自動試験シナリオの作成］
図９は、シナリオ作成ツール７の自動試験シナリオ設定画面の例である。
この画面からは、登録済のシナリオの実行の有無（活殺）と異常発生後の処理を指定することができる。
図９の記述内容は、下記を示している
１）正常時は、NO.1〜5、7-10を実行する。なお、活殺フラグ「●」は、当該試験シナリオは実行対象であることを意味する。
２）NO.6の「×」は、当該試験シナリオは実行しないことを意味する。
３）シナリオで異常（期待しない動作）発生時
NO.3,5は、NO.4〜8を実行せずにNO,9を実行し、NO7,8は、全く異なる試験NO.12以降のシナリオ試験を実行する。異常時動作欄の「Ｊxx」は、NO.xxへのジャンプ動作を意味する。
【００４６】
図１０は、図９の自動試験シナリオファイル１４のデータ構成例である。
自動試験シナリオファイル１４は、テキスト形式であり、活殺を０，１で表し、異常動作とシナリオファイルは、文字列がそのまま格納される。なお、自動試験シナリオ設定画面のNO.は、自動試験シナリオファイル１４の行番号となる。
ユーザは、図１４に示す自動試験シナリオの項目を設定後、「自動試験シナリオ作成」ボタンを選択することにより、自動試験シナリオファイル１４が作成される。
【００４７】
［試験シナリオ実行モデルの処理手順］
次に図１１を用いて、試験シナリオ実行モデル（信号シミュレータ）２のメイン処理の手順について説明する。
試験シナリオ実行モデル２は、起動後、試験要求画面からの要求を待つ（Ｓ１０１）。そして、試験要求画面への入力を検知すると、その動作モードを判定し、それぞれの処理に分岐する（Ｓ１０２）。
【００４８】
動作モードがスルーモードの場合は、まず、信号トレース要求があるか否かを判定し（Ｓ１０３）、要求がある場合は初期値を読み出して保存する（Ｓ１０４）。そして、次の処理要求の入力を待ち、入力があった場合は各処理を実行する（Ｓ１０５）。
【００４９】
信号トレース要求があった場合は（Ｓ１１０）、信号トレースファイルを保存する（Ｓ１１１）。信号書き換え要求があった場合は、指定信号を出力し（Ｓ１０７）、信号トレース要求がある場合は（Ｓ１０８）、信号トレースファイルに信号を書き込む（Ｓ１０９）。
【００５０】
ステップＳ１０２において動作モードが自動試験シナリオ実行モードの場合は、自動試験シナリオファイルを呼び出し（Ｓ１１２）、試験シナリオ実行処理のルーチンを呼び出す（Ｓ１１３）。試験シナリオ実行処理の手順については後述する。
【００５１】
試験シナリオ実行後は、実行結果を試験要求画面に通知する（Ｓ１１４）。そして、実行結果が正常の場合は（Ｓ１１５で「ＹＥＳ」）、次の有効なシナリオがあるか否かを判定する（Ｓ１１６）。基本的には、自動試験シナリオの次の行を実行するが、次の行が活殺＝１（有効）であり、かつ試験シナリオが存在し、かつ異常時動作＝ENDでない場合は、有効なシナリオがあると判定し、それ以外の場合は、試験を終了し（Ｓ１１８）、Ｓ１０１へ戻る。
【００５２】
一方、次の有効なシナリオが存在する場合は、そのシナリオを選択して、ステップＳ１１３へ移行する。
ステップＳ１１５において、異常終了した場合は、自動試験シナリオの"異常時動作"の指定にしたがって処理を実行する（Ｓ１１９）。"異常時動作"が"Next"の場合は、次の有効な試験シナリオを選択してステップＳ１１３へ移行して処理を実行する。"異常時動作"が"Jxx"の場合は、次の有効な試験シナリオを"xx"行とし、ステップＳ１１３へ移行して処理を実行する。"異常時動作"が"Stop"の場合は、試験を終了し（Ｓ１２２）、ステップＳ１０１へ戻る。
ステップＳ１０２において動作モードが試験シナリオ実行モードの場合は、後述する試験シナリオ実行処理のルーチンを呼び出す（Ｓ１２３）。
【００５３】
次に、図１２を用いて試験シナリオ実行処理について説明する。
まず、指定された試験シナリオを読み出し（Ｓ２０１）、試験シナリオの指定に従って信号を初期化する（Ｓ２０２）。そして、シナリオが終了か判定する（Ｓ２０３）。このとき、タイミング幅が０の場合、これを終了とみなすことができる。
シナリオが終了の場合、実行結果を判定して、判定結果を保存する（Ｓ２０７）。このとき、判定方法が外部判定（Ｚxxx）以外の場合は（Ｓ２０４で「ＮＯ」）、指定に従った判定をする（Ｓ２０６）。一方、外部判定の場合は（Ｓ２０４で「ＹＥＳ」）、判定処理を呼び出してその結果を受け取る（Ｓ２０５）。
【００５４】
ステップＳ２０３で、試験シナリオを継続する場合は、ディレイを考慮して次の信号出力時間まで待って信号を出力する（Ｓ２０８，Ｓ２０９）。なお、信号出力時間は、インターバル時間×タイミング幅（±ディレイ）で求める。
以上の手順により試験シナリオを実行する。
【００５５】
［試験者（ユーザ）によるシナリオ試験の流れ］
次に図１５を用いて、試験者がシミュレータの試験シナリオを指定してから結果を得るまでの流れについて説明する。
（ステップＡ１）試験者が試験要求画面から試験シナリオを指定する。
（ステップＡ２）試験者が試験要求画面上の実行ボタンを選択すると、試験シナリオ実行モデル２に対して、指定した試験シナリオが通知される。
（ステップＡ３）試験シナリオ実行モデル２は、通知された試験シナリオを読み出す。
（ステップＡ４）試験シナリオ実行モデル２は、ソフトウェアシミュレータ３に初期値を送信後、シミュレータ上の仮想時間を計数し、試験シナリオの設定に従って、信号をソフトウェアシミュレータ３に出力する。仮想時間と実時間の比は任意に設定することができる。なお、試験シナリオ実行モデル２は、必要により信号を他の各種シミュレータへ出力することもできる。
【００５６】
（ステップＡ５）試験シナリオ実行モデル２は、試験シナリオの実行が完了（試験結果に登録されているタイミング番号になると実行完了）すると"試験結果"の設定が、外部の結果判定シミュレータによる判定（コードＺ）以外の場合には、ソフトウェアシミュレータ３の任意の端子の情報を読み取り、試験結果を判定する。
（ステップＡ６）試験シナリオ実行モデル２は、試験シナリオの実行が完了すると"試験結果"の設定がコードＺの場合には、結果判定シミュレータに結果判定の要求を出す。
（ステップＡ７）結果判定シミュレータは、結果判定の要求を受けると、他のシミュレータの情報から試験判定を行い、その結果を試験シナリオ実行モデル２に通知する。
（ステップＡ８）試験シナリオ実行モデル２は、試験要求画面８に試験結果を通知する。
（ステップＡ９）試験者は、試験要求画面８で試験結果を得る。
試験者は以上の手順によってシナリオ試験を進める。
【００５７】
以上、本実施の形態によれば、複数のシミュレータの入出力信号を収集し、保存する試験シナリオ実行モデルを設け、正常動作の信号トレース情報を保存し、そのトレース情報を用いて、シナリオ作成ツールにより異常時の信号を追加、編集することで、異常試験の試験シナリオを容易作成することができる。
また、試験シナリオ実行モデルは、搬送メカシミュレータなどのハードウェアシミュレータが動作する場合は、シミュレータ間のデータをそのまま入出力させることになる。しかしながら、一旦シナリオ作成ツールで試験シナリオを作成すると、その試験シナリオに従った入出力を行うことで、ハードウェアシミュレータを使用しないでシミュレーションをすることができるようになるので、容易に自動試験を行うことができ、また低コストで多人数による開発が可能になる。
【符号の説明】
【００５８】
１    シミュレーション装置
３    ソフトウェアシミュレータ
４    アプリケーションプログラム
６    ハードウェアシミュレータ
６ａ    電子回路シミュレータ
６ｂ    搬送メカシミュレータ
７    シナリオ作成ツール
８    試験要求画面
１１    アドレス定義ファイル
１２    信号トレースファイル
１３    試験シナリオファイル
１４    自動試験シナリオファイル
【図１】
2017084082.tif 000003
【図２】
2017084082.tif 000004
【図３】
2017084082.tif 000005
【図４】
2017084082.tif 000006
【図５】
2017084082.tif 000007
【図６】
2017084082.tif 000008
【図７】
2017084082.tif 000009
【図８】
2017084082.tif 000010
【図９】
2017084082.tif 000011
【図１０】
2017084082.tif 000012
【図１１】
2017084082.tif 000013
【図１２】
2017084082.tif 000014
【図１３】
2017084082.tif 000015
【図１４】
2017084082.tif 000016
【図１５】
2017084082.tif 000017