(57)【要約】【課題】従来、周辺機器との入出力機能を有するＳ／Ｗ試験のために、各周辺機器に対応するシミュレータを複数準備していた。また、周辺機器への出力データや出力タイミング検査は、Ｓ／Ｗのログを目視で解析していた。このようにＳ／Ｗ試験は多大な労力を要するため、自動化が望まれていた。【解決手段】テスト対象プログラム７の試験実施手順を記述したテスト実行プログラム用シナリオ３と、複数の周辺機器を模擬する模擬Ｉ／Ｆ８の動作を記述した模擬Ｉ／Ｆ用シナリオ４を作成しておく。これらはテスト対象プログラム７から模擬Ｉ／Ｆ８へ送られる出力データ１０の時間間隔判定手段と、出力データ１０の内容により模擬Ｉ／Ｆの応答データ１１を決定する応答手段と、変更トリガ受信データを受信した後に設定データを受信した時に応答データを変更する応答変更手段とを備えており、テストの完全自動化、省力化を実現できる。【選択図】  図１
2011113272.tif 000002
【特許請求の範囲】
【請求項１】
複数の周辺機器との入出力機能を有するテスト対象プログラムの試験手順を記載したテスト実行プログラム用シナリオと、前記テスト対象プログラムに接続された複数の前記周辺機器の応答を模擬する模擬Ｉ／Ｆ用シナリオと、
前記テスト実行プログラム用シナリオに従い試験を実行するテスト実行プログラムと、前記模擬Ｉ／Ｆ用シナリオに従い実行する前記模擬Ｉ／Ｆと、
前記テスト対象プログラムから前記模擬Ｉ／Ｆへデータ出力する時刻の時間間隔判定手段と、前記テスト対象プログラムからの出力データにより模擬Ｉ／Ｆの応答データを決定する応答手段と、前記テスト対象プログラムからの出力データに対する応答データを次回から変更する応答変更手段を
備えたことを特徴とするソフトウェア自動試験方式。
【請求項２】
前記時間間隔判定手段が、前記テスト対象プログラムからの出力データに前記模擬Ｉ／Ｆにより付与されメッセージキュー経由でテスト実行プログラムへ送信された第１受信時刻と、規定時間後に前記テスト対象プログラムからの出力データに前記模擬Ｉ／Ｆにより付与され前記メッセージキュー経由でテスト実行プログラムへ送信された第２受信時刻との受信時間間隔を測定することにより、規定された時間的制約条件を満たしているかを判定する時間間隔判定手段であることを特徴とする請求項１に記載のソフトウェア自動試験方式。
【請求項３】
前記模擬Ｉ／Ｆの前記応答手段が、
前記テスト対象プログラムからの出力データと前記模擬Ｉ／Ｆ用シナリオの応答設定に記述された受信データとを照合し一致する時に、記述された応答データを遅延時間待ってから返す応答手段を備えたことを特徴とする請求項１に記載のソフトウェア自動試験方式。
【請求項４】
前記模擬Ｉ／Ｆの前記応答変更手段が、
前記テスト対象プログラムからの出力データと前記模擬Ｉ／Ｆ用シナリオの応答変更設定に記述された変更トリガ受信データとを照合し一致した時点以後は、応答変更設定後の受信データを受信した時に応答変更設定後の応答データを遅延時間待ってから返す応答変更手段を備えたことを特徴とする請求項１に記載のソフトウェア自動試験方式。
【請求項５】
前記模擬Ｉ／Ｆの前記応答手段が、
前記テスト対象プログラムから前記模擬Ｉ／Ｆのレジスタ応答設定に記述されたレジスタアドレスが読込まれた時に、その応答データを読取り値として返すレジスタ応答手段を備えたことを特徴とする請求項１に記載のソフトウェア自動試験方式。
【請求項６】
前記模擬Ｉ／Ｆの前記応答変更手段が、
前記テスト対象プログラムから前記模擬Ｉ／Ｆのレジスタ応答変更設定に記述された変更トリガ受信データである第１アドレスに第１データが書込みされた時点以後は、前記テスト対象プログラムから第２アドレスを読込んだ時に第２応答データを読取り値として返すレジスタ応答変更手段を備えたことを特徴とする請求項１に記載のソフトウェア自動試験方式。
【請求項７】
前記テスト実行プログラム用シナリオ及び前記模擬Ｉ／Ｆ用シナリオを作成・編集するシナリオ作成プログラムを有することを特徴とする請求項１乃至請求項６のいずれかに記載のソフトウェア自動試験方式。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、周辺機器に対する入出力機能を有するアプリケーションのソフトウェア試験を自動化する、ソフトウェア自動試験方式に関する。
更に詳しくは、Ｗｉｎｄｏｗｓ（登録商標）などのオペレーションシステム（以降、「Ｏ／Ｓ」と略す。）上で動作する制御ソフトウェアの試験を、これに接続される周辺機器を模擬したシミュレータを用いて、試験コマンドの列で記述した試験シナリオを解釈して自動的に実行するソフトウェア自動試験方式に関する。
【背景技術】
【０００２】
従来、周辺機器に対する入出力機能を有するＷｉｎｄｏｗｓ（登録商標）などのアプリケーションは完成すると、設計仕様通りに動作するか否か動作確認試験が実施される。
このような試験には、ソフトウェアの各モジュールを部分的に結合したものが意図どおり協調動作するか検査する結合テスト、製品の体をしたものに対して行うシステムテスト、実装した機能が意図どおりに動作するか検査する機能テスト、プログラムを変更した際にその変更によって予想外の影響が現れていないか一度合格したテストをすべてやり直し合格するか検査する回帰テストなどが有る。
【０００３】
従来から、結合テストなどの試験には、例えば信号発生器（Ｓｉｇｎａｌ  Ｇｅｎｅｒａｔｏｒ、以降「ＳＧ」と略す。）、電源、制御カード、ネットワークアナライザなどの周辺機器を模擬するシミュレータを準備して行われていた。シミュレータは固有の周辺機器の模擬に特化しており、周辺機器が多数存在する場合、各周辺機器に対応するシミュレータを複数準備する必要があった。
また、周辺機器への出力データや出力タイミングの検査は、テスト対象プログラム又はシミュレータのログを試験実施者が目視で解析することによって行なわれてきた。このようにソフトウェア結合テストを実施するだけでも多大な労力を要するため、それまでに合格したテストをすべて再度検査する回帰テストを実施することは更に困難であったため、ソフトウェア試験の自動化が求められていた。
【０００４】
近年、特許文献に示すように、周辺機器を試験シナリオに従って制御し、自動的に試験を実施する手法が提案されており、周辺機器の入力・出力機能を有するアプリケーションのソフトウェア試験は、省力化されつつある。
特許文献１では、試験対象として指示された試験シナリオを試験シナリオ群から検索し、検索した試験コマンド中に指定された周辺機器を特定して、周辺機器毎に設けられた装置制御部に当該周辺機器用試験コマンドを供給する。装置制御部は当該試験コマンドに対応する装置コマンドを検索して受取り、装置コマンドにより周辺機器を動作させる。この結果、試験シナリオを有するワークステーションからの周辺機器のソフトウェア的な制御を実現させている。
【０００５】
特許文献２では、あらかじめ試験実施者による試験対象プログラムの操作を、その出力および入力情報を生成した順序通りに記録しておき、記録した試験実施者による操作を自動的に実行できるようにしている。
特許文献３は、入力機器と制御対象の出力機器とが接続されるマイコンに組み込まれた制御ソフトウェアを自動的にテストする装置である。これは装置本体とマイコン搭載部を備えており、マイコン搭載部には、入力・出力機器の動作を模擬するシミュレータを、光ループネットワークで接続する自動テスト装置を提案している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平７−２００３５５号広報（第１−５頁、第２図）
【特許文献２】特開平７−０２１０５８号広報（第１−４頁、第１図）
【特許文献３】特開平９−０９１０３１号広報（第１−１６頁、第１図）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、周辺機器との入出力機能の検査を効果的に行うには、データ出力間隔等のタイミングの自動チェック、制御内容により周辺機器からの応答を自動で変化させる機能が要求されており、これらの機能を具体的に実現することが課題であった。
【課題を解決するための手段】
【０００８】
上記課題を達成するため本発明では、周辺機器との入出力機能を有するテスト対象プログラムの試験手順を記載したテスト実行プログラム用シナリオ及びこれに従い試験を実行するテスト実行プログラムと、テスト対象プログラムに接続された周辺機器の応答を模擬する模擬Ｉ／Ｆ用シナリオ及びこれに従い実行する前記模擬Ｉ／Ｆと、テスト実行プログラム用及び模擬Ｉ／Ｆ用のシナリオを作成するシナリオ作成プログラムとを備えたソフトウェア自動試験方式を提供するものである。
【０００９】
テスト実行時には、周辺機器の応答を模擬する模擬Ｉ／Ｆは、テスト対象プログラムから出力されたデータの受信時刻Ａと、規定時間後にテスト対象プログラムから出力されたデータの受信時刻Ｂとのデータ出力時刻の時間間隔の判定を行う。
また、模擬Ｉ／Ｆ用シナリオに従い、テスト対象プログラムから受信したデータによって応答データを決定する応答手段と、テスト対象プログラムからの出力データに対する応答データを次回から変更する応答変更手段を備えている。
【発明の効果】
【００１０】
この発明によれば、周辺機器に対する入出力機能を有するアプリケーションのソフトウェア試験において、あらかじめ作成されたシナリオによって周辺機器の模擬及び、周辺機器への出力データのタイミングのチェックを完全に自動化して行うことができ、ソフトウェア試験の省力化が行える。
また、ソフトウェア結合テストを自動で繰り返し実行することができ、テスト対象プログラムを修正するたびに、完全な回帰テストを実行できる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態１に係るソフトウェア自動試験方式の構成を示すブロック図である。
【図２】本発明の実施の形態１に係るテスト実行プログラム用シナリオである。
【図３】図２のテスト実行プログラム用シナリオによるテスト動作を示すフローチャートである。
【図４】図３において、メッセージキューに入れるデータの構造である。
【図５】本発明の実施の形態１に係る模擬Ｉ／Ｆ用シナリオである。
【図６】図５の模擬Ｉ／Ｆシナリオによるテスト動作を示すフローチャートである。
【図７】本発明の実施の形態１に係るレジスタアドレス入出力の模擬Ｉ／Ｆ用シナリオである。
【図８】本発明の実施の形態１のテスト対象である制御ソフトウェアを用いたシステムの構成を示すブロック図である。
【図９】本発明の実施の形態１のテスト対象である制御ソフトウェアを用いたシステムの動作画面である。
【図１０】本発明の実施の形態１のテスト対象である制御ソフトウェアを用いたシステムのシーケンスである。
【図１１】本発明の実施形態１のテスト対象である制御ソフトウェアのメイン画面上の部品とＩＤとのデータ定義である。
【図１２】テスト対象である制御ソフトウェアと周辺機器ＳＧとのインタフェースデータ定義である。
【図１３】テスト対象である制御ソフトウェアと制御ボードとのインタフェースデータ定義ある。
【図１４】テスト対象である制御ソフトウェアが出力する制御結果ファイルの内容である。
【発明を実施するための形態】
【００１２】
実施の形態１．
図１は、本発明を実施するための実施の形態１に係るソフトウェア自動試験方式の構成を表すブロック図である。また図８には、実施の形態１のテスト対象であるアプリケーション（制御ソフトウェア）を用いたシステムのブロック図を示す。本実施の形態では、図８に示す制御ソフトウェアをテスト対象のプログラムとし、制御ソフトウェアと接続している周辺機器をシミュレートすることにより自動試験を実行する。
【００１３】
図８のシステム器材は、８０１パーソナルコンピュータ（以降、「ＰＣ」と略す。）、８０２周辺機器の一例であるＳＧ、８０３制御ボードから構成されるており、ユーザー８０４が操作する。ＰＣ８０１と周辺機器８０２はＬＡＮで接続され、ＰＣ８０１からＳＧ８０２を制御する。制御ボード８０３はＰＣ８０１に組み込まれたＰＣＩカード８０５経由でＰＣ８０１に接続されたサブアセンブリなどを制御する。８０６は、本実施の形態のテスト対象となる制御ソフトウェアでありＰＣ８０１に搭載されている。
【００１４】
図１において、１はＷｉｎｄｏｗｓ（登録商標）などのＯ／Ｓ、２は試験を実行する手順を記載した試験シナリオを作成するための試験シナリオ作成プログラム、
３は試験シナリオ作成プログラム２を用いて作成され自動的に試験を実行する手順を記述したテスト実行プログラム用シナリオ、４は試験シナリオ作成プログラム２を用いて作成され模擬インターフェイス（以降「模擬Ｉ／Ｆ」と略す。）の応答動作を記述した模擬Ｉ／Ｆ用シナリオである。
【００１５】
５はテスト実行プログラム用シナリオ３の手順に従ってテスト実行者６が実行するテスト実行プログラム、７は制御ソフトウェア８０６など本発明のテスト対象プログラム、８はテスト対象プログラム７と周辺機器８０２とのインターフェイスをシミュレートする模擬Ｉ／Ｆ、９はＷｉｎｄｏｗｓ（登録商標）などのＯ／Ｓ１の機能であるメッセージキューである。
一般にメッセージキュー９は、複数のアプリケーション間の通信に使われ、送信側と受信側がメッセージキューに同時にやり取りしなくともよいことを意味する。キューに置かれるメッセージは、受信側がそれを取り出すまで格納されたままとなる。
１０は、テスト対象プログラム７から模擬Ｉ／Ｆ８へ送信される出力データ、１１は、模擬Ｉ／Ｆ８から返信される応答データである。
【００１６】
次に、本発明の動作を説明する前に、テスト対象である制御ソフトウェア８０６を用いたシステムの構成詳細と動作について図９〜図１４を用いて説明する。
図９は、テスト対象である制御ソフトウェア８０６の画面例である。９０１で示すメイン画面に、９０２は実行ボタン、９０３は結果を表示するテキストボックス、９０４はＳＧ８０２の出力状態を表示するテキストボックス、９０５で示す終了ボタンが配置されている。
【００１７】
図１０は、テスト対象である制御ソフトウェア８０６を用いたシステム動作を表す器材間のシーケンス図である。制御ソフトウェア８０６は、制御ボード８０３に対し、定期的にステータス読込み９５８、９５９を行っている。ユーザー８０４が実行ボタン９０２を押下すると、制御ソフトウェア８０６はＳＧ８０２に出力ＯＮ要求９５１を、制御ボード８０３にパルス出力ＯＮ要求９５２を送信し、結果表示テキストボックス９０３に「ＯＫ」と表示する。ＳＧ８０２は出力ＯＮ要求９５１を受信した後、出力を開始する。
【００１８】
制御ソフトウェア８０６は定期的にＳＧ８０２に出力状態要求コマンド９５３を送信しており、ＳＧ８０２は出力開始後には「出力中」９５５を、出力停止後には「停止中」９５６を返す。また、制御ボード８０３に対しても、定期的にステータス読込み９５８、９５９を行っており、制御ボード８０３にパルス出力ＯＮ要求９５２を送信する以前は、パルス出力ＯＦＦを、以後はパルス出力ＯＮを返す。
制御ソフトウェア８０６はＳＧ８０２への出力ＯＮ要求９５１送信から１０秒後に自動的に、ＳＧ８０２へ出力ＯＦＦ要求９５４を送信する。また、ユーザー８０４が終了ボタン９０５を押下すると、制御ソフトウェア８０６は制御結果をファイルに出力９５７し、プログラムを終了する。
【００１９】
図１１〜図１４は、本発明の実施の形態１に係るテスト対象である制御ソフトウェア８０６を用いたシステムのデータ定義である。図９に示すテスト対象である制御ソフトウェア８０６の動作画面９０１上にある部品にはテスト実行プログラムから自動操作するためのＩＤが付与されており、図１１は画面上の部品名１１０１とＩＤ１１０２の対応表である。
例えば、図９に示す実行ボタン９０２のＩＤは、ＢｕｔｔｏｎＥｘｅｃである。このＩＤ１１０２は、図２に示すテスト実行プログラム用シナリオの画面操作、画面判定のパラメータとして用いられる。
図１２は、テスト対象である制御ソフトウェア８０６と周辺機器の一例であるＳＧ８０２とのインタフェースデータ定義である。１１０３に示すメッセージは、これに対応するインターフェイスデータ１１０４の文字列である。例えば、図１０の出力ＯＮ要求９５１メッセージの実際の伝文は、「ＲＦ  Ｓｔａｒｔ」という文字列である。
【００２０】
図１３は、テスト対象である制御ソフトウェア８０６と制御ボード８０３のインタフェースデータ定義である。制御ボード８０３へのデータ出力はレジスタにデータを書き出す方式であるため、アドレスと出力データを定義する。１１０５に示すメッセージは、これに対応するインターフェイスデータ１１０６に示すアドレスと出力データである。
例えば、図１０に示すパルス出力ＯＮ要求９５２メッセージの実際の出力は、アドレス０１００ｈへのデータ０２００ｈの書き込みである。
図１４は、テスト対象である制御ソフトウェア８０６が出力する制御結果ファイルの内容である。ファイル名は、ｋｅｋｋａ．ｔｘｔ、１１０７にはそのフォーマットを示す。
【００２１】
次に、本発明のソフトウェア自動試験方式の動作について説明する。図１に示すように、あらかじめシナリオ作成プログラム２を用いて、テスト実行プログラム用シナリオ３、模擬Ｉ／Ｆ用シナリオ４を作成する。テスト作成者がシナリオ作成プログラム２の編集画面から入力、保存することによりテスト実行プログラム用シナリオ３、模擬Ｉ／Ｆ用シナリオ４が作成される。
【００２２】
図２はテスト実行プログラム用シナリオ３の記述例である。テスト実行プログラム用シナリオ３は、複数のアクション２０１から構成されており、１行に１アクションを記述する。アクションの記述は、アクション番号２０２、アクション種別２０３、パラメータ１：２０４、パラメータ２：２０５、から構成される。アクション種別２０３には、画像操作、画面判定、ウェイト、出力データチェック、出力データチェック（タイミング判定）、ファイルチェックがある。パラメータ１：２０４、パラメータ２：２０５、の意味は各アクション種別毎に異なる。なお、図１１に示す部品のＩＤ：１１０２は、画面操作、画面判定のパラメータ２０４、２０５として用いられる。
【００２３】
図３は図２に示すテスト実行プログラム用シナリオ３の記述例によるテスト動作を示すフローチャートである。この図により、テスト対象の制御ソフトウェアの図１０に示すシーケンスを結合テスト実行する時の動作例を説明する。
ステップＳ１０１（以降「Ｓ１０１」という）にて、テスト実行者６が、テスト実行プログラム５にテスト開始の起動をかける。Ｓ１０２で、テスト実行プログラム５は、テスト対象プログラム７を起動し、Ｓ１０３でテスト実行プログラム用シナリオ３を読み込み、アクションを順番に実行する。図２のテスト実行プログラム用シナリオ３の場合、
Ｓ１０４で、１番目に図１１に示すＢｕｔｔｏｎ  Ｅｘｃｅという実行ボタンを自動でクリックする。次に２０００ｍｓウェイトする。
【００２４】
アクションの実行によって、テスト対象プログラム７から出力データ１０（この場合は、図１２に示すようにメッセージ「出力ＯＮ要求」に対応する伝文「ＲＦ  Ｓｔａｒｔ」）が模擬Ｉ／Ｆ８に出力される。
模擬Ｉ／Ｆ８は、Ｓ１０５で出力データ１０を受信すると、図４に示すように受信時刻Ａ：４０１を付加して、メッセージキュー９に入れる。
Ｓ１０６でメッセージキュー９に入れられたデータは、テスト実行プログラム５から取り出されるのを待つ。
Ｓ１０７で、テスト実行プログラム５は、図２の３番目のアクションである出力データチェック２０６実行時、メッセージキュー９からデータを取り出し、出力データが正解データ２０７（この場合は、「ＲＦ  Ｓｔａｒｔ」）と一致することをチェックする。チェックした結果がＹｅｓの場合はＳ１２０で「判定ＯＫ」を記録し、次のステップへ進む。チェックした結果がＮｏの場合は、Ｓ１２１で〔１〕に示すように「判定ＮＧ」を記録する。また、取り出したメッセージキュー９のデータのうち受信データ４０２は破棄するが、受信時刻Ａ：４０１は、後に実行される７番目のアクションにおいて、受信タイミング２０８のチェックに使用するため、保持される。
【００２５】
Ｓ１０８で、４番目のアクションとして、制御ボードのアドレス０１００ｈに０２００ｈが書き込まれているかをチェックする。チェックした結果がＹｅｓの場合はＳ１２０で「判定ＯＫ」を記録し、次のステップへ進む。チェックした結果がＮｏの場合は、Ｓ１２１で〔１〕に示すように「判定ＮＧ」を記録する。以降チェックを実施した後にはその度に、同じ処理を実行する。
次にＳ１０９で、図２の５番目のアクションである画面判定を実行し、結果表示テキストボックス（ＩＤはＴｅｘｔＢｏｘＫｅｋｋａ）の表示が「ＯＫ」であるかをチェックする。
Ｓ１１０で、６番目のアクションである画面判定を実行し、ＳＧ出力状態テキストボックス（ＩＤはＴｅｘｔＢｏｘＳｔｓ）の表示が「出力中」であるかをチェックする。
【００２６】
Ｓ１１３で、図２の７番目のアクションである出力データチェック（タイミング判定）を実施する。３番目のアクションと同様にメッセージキュー９から取り出したデータが正解データ（この場合は「ＲＦ  Ｓｔｏｐ」）と一致することをチェックする。
次に送信タイミングのチェックを行う。図１０に示すシーケンスをチェックする場合には、「ＲＦ  Ｓｔｏｐ」は「ＲＦ  Ｓｔａｒｔ」の１０秒後に送信されているはずである。
メッセージキュー９から取り出したデータに付与されている受信時刻Ｂと、３番目のアクションで保持した受信時刻Ａとの時間間隔を求める。時間間隔が受信タイミング２０８の範囲（この場合「Ｎｏ３から１００００±１００ｍｓ後」）であれば合格とする。
Ｓ１１４で、８番目のアクションとして、終了ボタンを自動クリックする。このアクションにより、テスト対象プログラム７は終了する。
Ｓ１１５で、９番目のアクションであるファイルチェックを実施する。図１０に示すシーケンスの場合には、制御結果が図１４の制御結果ファイル名内容でファイルに出力されているはずである。あらかじめ、ｒｅｆ．ｔｘｔという名称で、正解のファイルを生成しておき、テスト対象プログラムから出力されたファイルｋｅｋｋａ．ｔｘｔとｒｅｆ．ｔｘｔが同一であるかを判定する。
【００２７】
このようにメッセージキューを利用して、受信タイミングをチェックすることにより、テスト対象プログラムの動作が、例えば「１０秒間隔で周辺機器にステータスを送信する。」等の時間的制約を満たしているか否かを自動で確認することができる。
【００２８】
図５には模擬Ｉ／Ｆ用シナリオ４の記述例を示す。模擬Ｉ／Ｆ用シナリオ４は、応答設定５０１、応答変更設定５０２から構成される。応答設定５０１は受信データ５０３、応答データ５０４、遅延時間５０５から構成される。これは受信データ５０３に一致する伝文をテスト対象プログラム７から受信した場合、テスト対象プログラムに対し遅延時間５０５待ってから、応答データ５０４に一致する伝文を返信するという設定である。
【００２９】
応答変更設定５０２は、変更トリガ受信データ５０６、受信データ５０７、応答データ５０８、遅延時間５０９から構成される。これは、変更トリガ受信データ５０６をテスト対象プログラム７から受信したら、以後、テスト対象プログラムから応答変更設定後の受信データ５０７を受信した場合、テスト対象プログラム７に対し遅延時間５０９待ってから、応答変更設定後の応答データ５０８に一致する伝文を返信する、という設定である。
【００３０】
次に、模擬Ｉ／Ｆ８の動作を図６に示すテスト動作フローチャートを用いて説明する。テスト実行時は、模擬Ｉ／Ｆ８はテスト対象プログラム７から出力データ１０を受信し、周辺機器ＳＧを模擬してテスト対象プログラムに応答データ１１を送信する役割を果たす。
模擬Ｉ／Ｆ８は、Ｓ２０１で出力データ１０を受信した時、Ｓ２０２で模擬Ｉ／Ｆ用シナリオ４の応答設定５０１の受信データ５０３に出力データ１０と一致するものが有るか調べる。無ければ異常を記録する。
【００３１】
一致するものがある場合、Ｓ２０３でテスト対象プログラム７に対し遅延時間５０５待ってから、応答データ５０４を送信する。次にＳ２０４で模擬Ｉ／Ｆ用シナリオ４の応答変更設定５０２の変更トリガ受信データ５０６に出力データ１０と一致するものがあるかを調べる。一致するものがある場合、Ｓ２０５で応答設定５０１を検索し受信データ５０３が応答変更設定後の受信データ５０７と一致するものについて、Ｓ２０６にて応答データ５０４を応答変更設定後の応答データ５０８に、遅延時間５０５を応答変更設定後の遅延時間５０９に書き換える。一致するものが無い場合は、何も実行しない。
【００３２】
このしくみにより、模擬Ｉ／Ｆ８からテスト対象プログラム７への応答データ１１をテスト実行の途中で動的に変更するとができ、自動試験が可能となる。例えば、電源を模擬する場合に、「通常時はステータス要求を受信した場合は出力ＯＦＦを応答するが、一度出力ＯＮ指示を受けた後は、ステータス要求に対して出力ＯＮを応答する」などの動作を模擬することができる。
【００３３】
図１０に示すシーケンスを模擬する場合には、図５に示すように、ＳＧ８０２を模擬する模擬Ｉ／Ｆ用シナリオ４の応答設定は、出力ＯＮ要求（ＲＦ  Ｓｔａｒｔ）に対し「ＯＫ」を、出力状態要求（ＳＴＳ？）に対し「停止中」（ＲＦ  ＯＦＦ）を返すようにする。
また、出力開始後の模擬Ｉ／Ｆ用シナリオ４の応答は、出力状態要求（ＳＴＳ？）に対し「出力中」（ＲＦ  ＯＮ）を返すように、応答変更設定として、出力ＯＮ要求（ＲＦ  Ｓｔａｒｔ）を受信したら、以後の出力状態要求（ＳＴＳ？）に対し、「出力中」（ＲＦ  ＯＮ）を返すようにする。
【００３４】
模擬Ｉ／Ｆからの応答設定は、テキストの伝文だけでなく、制御ボード８０３を模擬するためにレジスタアドレスの入出力で定義することもできる。図７はレジスタアドレス入出力の模擬Ｉ／Ｆ用シナリオの例である。このシナリオは、レジスタ応答設定７０１、レジスタ応答変更設定７０２から構成される。レジスタ応答設定７０１は読込みアドレス７０３、応答データ７０４、遅延時間７０５から構成される。
レジスタ応答変更設定７０２は変更トリガ受信データのアドレス７０６及びデータ７０７、出力データのアドレス７０８及び応答データ７０９、遅延時間７１０から構成される。
【００３５】
次に動作を説明する。図７に示すレジスタ応答設定７０１は、「テスト対象プログラム７が読込みアドレス７０３への読込みを行った時には、遅延時間７０５待ってから、応答データ７０４を読取値として返す。」という設定である。
図７に示す模擬Ｉ／Ｆシナリオ例は、図１０シーケンスにおける「ステータス読込み９５８」を模擬する場合に対応している。テスト対象制御ソフトウェアがステータス読込みとしてレジスタアドレス０００１ｈを読込んだ場合、遅延時間５００ｍｓ待ってから、図１３のインターフェイス定義Ｎｏ２に示す、出力データ０００２ｈ（パルス出力ＯＦＦ）を返す。
【００３６】
レジスタ応答変更設定７０２は、「テスト対象プログラム７から変更トリガ受信データのアドレス７０６にデータ７０７が書込みされた時は、それ以後、テスト対象プログラム７が出力データのアドレス７０８の読込みを行った時に、遅延時間７１０待ってから、応答データ７０９を読取り値として返す。」という設定である。
図７に示す模擬Ｉ／Ｆシナリオ例は、図１０シーケンスにおける「ステータス読込み９５９」を模擬する場合に対応している。テスト対象制御ソフトウェアから、パルス出力ＯＮ要求としてアドレス０１００ｈにデータ０２００ｈが書き込みされたので、これ以後、テスト対象制御ソフトウェアがステータス読込みとして、レジスタアドレス０００１ｈを読込んだ時は、遅延時間３０ｍｓ待ってから、図１３のインターフェイス定義Ｎｏ２に示す、出力データ０００３ｈ（パルス出力ＯＮ）を返す。
【００３７】
このしくみにより、例えば制御ボードを模擬するために、テスト対象プログラムがレジスタアドレスへの読み込みを行った場合でも、模擬Ｉ／Ｆからの応答データをテスト実行の途中で動的に変更するとができ、自動試験が可能となる。
【符号の説明】
【００３８】
１  Ｏ／Ｓ（オペレーションシステム）、２  試験シナリオ作成プログラム、
３  テスト実行プログラム用シナリオ、４  模擬Ｉ／Ｆ用シナリオ、
５  テスト実行プログラム、６  テスト実行者、７  テスト対象プログラム、
８  模擬Ｉ／Ｆ、９  メッセージキュー、１０  出力データ、１１  応答データ、
５０１  応答設定、５０２  応答変更設定、５０３  受信データ、
５０４  応答データ、５０５  遅延時間、５０６  変更トリガ受信データ、
５０７  応答変更設定後の受信データ、５０８  応答変更設定後の応答データ、
５０９  応答変更設定後の遅延時間、
７０１  レジスタ応答設定、７０２  レジスタ応答変更設定、７０３  読込みアドレス、
７０４  応答データ、７０５  遅延時間、７０６  変更トリガ受信データアドレス、
７０７  変更トリガ受信データ、７０８  出力データアドレス、７０９  応答データ、
７１０  遅延時間、
８０１  ＰＣ、８０２  ＳＧ（周辺機器）、８０３  制御ボード、８０４  ユーザー、
８０５  ＰＣＩカード、８０６  制御ソフトウェア
【図１】
2011113272.tif 000003
【図２】
2011113272.tif 000004
【図３】
2011113272.tif 000005
【図４】
2011113272.tif 000006
【図５】
2011113272.tif 000007
【図６】
2011113272.tif 000008
【図７】
2011113272.tif 000009
【図８】
2011113272.tif 000010
【図９】
2011113272.tif 000011
【図１０】
2011113272.tif 000012
【図１１】
2011113272.tif 000013
【図１２】
2011113272.tif 000014
【図１３】
2011113272.tif 000015
【図１４】
2011113272.tif 000016