(57)【要約】【課題】  製品全体として開発時に必要とされるリグレッションテストプログラム作成に要する工数を低減できるソフトウェア自動検証システムを提供することを目的とする。【解決手段】  機能の一部がソフトウェアで実現される製品に使用するソフトウェアの開発に際して作成されるソフトウェアのリグレッションテスト方法の作成を支援するソフトウェア自動検証方法において、製品のそれぞれの機能の状態を定義し（＃１００；Ｓ１０２〜Ｓ１１２）、定義された機能を前記製品の機能を制御するマイコンのメモリデータＲＡＭ名称と関連づけ（Ｓ１０８、Ｓ１１０）、関連づけられた機能をメモリデータの絶対アドレスに変換し、製品に対してリグレッションテストを実行し（＃１５０、＃２００）、リグレッションテスト後に得られたテスト結果を表す絶対アドレスのメモリデータを機能に逆変換する（Ｓ２０６）。【選択図】  図１
2005100068.tif 000002
【特許請求の範囲】
【請求項１】
機能の一部がソフトウェアで実現される製品に使用するソフトウェアの開発に際して作成されるソフトウェアのリグレッションテスト方法の作成を支援するソフトウェア自動検証方法であって、
前記製品のそれぞれの機能の状態を定義するステップと、
前記定義された機能を、前記製品の機能を制御するマイコンのメモリデータＲＡＭ名称と関連づけるステップと、
前記関連づけられた機能をメモリデータの絶対アドレスに変換するステップと、
前記製品に対してリグレッションテストを実行するステップと、
前記リグレッションテスト後に得られたテスト結果を表す絶対アドレスのメモリデータを機能に逆変換するステップとを備えるソフトウェア自動検証方法。
【請求項２】
前記関連づけられた機能のそれぞれについてリグレッションテストをする内容及び順番を決定するステップと、
前記製品に対して、決定された順番でリグレッションテストを実行するステップとをさらに備える請求項１に記載のソフトウェア自動検証方法。
【請求項３】
前記逆変換された機能の状態名を表現するステップをさらに備える請求項２に記載のソフトウェア自動検証方法。
【請求項４】
前記決定されたテストする順番を保存するステップを備える、請求項２に記載のソフトウェア自動検証方法。
【請求項５】
テスト結果として予想される機能の状態名を期待値とし、その内容を前記逆変換された機能の状態名の内容と比較するステップと、
前記比較結果を表示するステップとを備える請求項３に記載のソフトウェア自動検証方法。
【請求項６】
製品の基本機能と考えられる機能の状態を元状態とし、当該元状態においてあり得る全ての入力に対する結果を得ようとするための検査項目の組み合わせを所定のソフトツールで事前に作成しておいて、それを利用出来ることを特徴とする請求項５に記載のソフトウェア自動検証方法。
【請求項７】
前記テスト結果に対するユーザの判定を入力として、前記期待値およびリグレッションテストの少なくとも一方の内容および順番を編集するステップを備える請求項３に記載のソフトウェア自動検証方法。
【請求項８】
前記編集結果を前記期待値と決定するステップを備える請求項７に記載のソフトウェア自動検証方法。
【請求項９】
コンピュータに読み込まれることによって、当該コンピュータが請求項１乃至請求項８に記載の自動検証方法を実行できるコンピュータプログラム。
【請求項１０】
コンピュータに読み込まれることによって、当該コンピュータが請求項１乃至請求項８に記載の自動検証方法を実行できるコンピュータコード手段を備えたコンピュータに読み取りが可能な媒体を備えたコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機能の一部がソフトウェアで実現される製品において、新製品の開発に際して作成されるソフトウェアのリグレッションテスト方法の作成を支援するソフトウェア自動検証システムに関する。
【背景技術】
【０００２】
近年、電子機器を用いて構成される製品の多くは、その機能の一部または大部分がマイクロコンピュータを利用したソフトウェアで実現されている。そのために、新製品の開発の際には、新製品の全体としての機能は、従来の製品の機能と新たな機能とを含むソフトウェアが作成されて実現されることが多い。言い換えれば、新製品の開発は、ハードウェアの開発と共に、従来の製品の機能を実現するソフトウェアのバージョンアップによって実現されるとも言える。
【０００３】
そして、製品化に先立って、開発される新製品が設計通りに機能するかを評価する一環として、新たに作成されたプログラムに誤りの有無およびソフトウェアの変更による予想外の影響の有無を確認するためのリグレッションテストが行われる。
【０００４】
リグレッションテストにおいては、当然新製品の全体の機能が対象となる。具体的には、開発者が新製品の機能を実現するソフトウェアの全ての検証項目を設定し、検証項目毎にマイクロコンピュータの内部に存在する特定のＲＡＭの特定のアドレスに格納されているパラメータの値を検証することによってリグレッションテストを実行する方法が知られている。この方法では、リグレッションテストの機能も主にソフトウェア、つまりプログラムによって実現され、そのプログラムを実行させることでリグレッションテストが実行される。そして、リグレッションテストの結果、不具合が見つかればソフトウェアに対策を施し、対策されたソフトウェアにまたリグレッションテストを施す。そして、不具合が見つからなくなるまで、対策およびリグレッションテストが繰り返し実施される。
【０００５】
従来、リグレッションテストを支援する手段として、モニタ上に表示されるウィンドウの表示内容がキーボードやマウスの入力に応答して変更されるウィンドウ作成手段の自動テストを可能とする自動テスト装置が提案されている（特許文献１）。当該自動テスト装置においては、キーボードおよびマウスによる入力信号に基づいて、イベント発生手段がイベント信号を作成する。そして、イベント記憶手段がイベント信号を記憶する。イベント信号に応答してウィンドウ作成手段で作成されたウィンドウは正しい状態であることは、予めユーザによって目視で確認されている。これをフレームバッファに記憶し、画像データ作成手段で画像データを作成する。一方、イベント信号をイベント再生手段で画像制御手段と同じ順序で再生する。再生されたイベント信号を入力としてウィンドウ作成手段でウィンドウを作成し、画像比較手段で得られた結果と正しいウィンドウの値とを比較しテスト結果を出力する。
【０００６】
さらに、バージョンアップされたソフトウェアのテストおよびデグレードバグ検出を迅速且つ効率的に行う手段として、ソフトウェアのテスト装置が提案されている（特許文献２）。当該テスト装置においては、バージョンアップ前のソフトウェア（従来のソフトウェア）をコンピュータシステムに搭載し、検査員がキーボード或いはマウスを使ってテストを行う。テスト結果は、コンバータを介して表示部に表示される。得られたテスト手順及びテスト結果は、コンバータを介してコンピュータシステム内に電子ファイル化して格納される。デグレードバグが検出されれば、コンピュータシステムが収集したバグ関連情報を、コンピュータシステム内に格納する。これによって、当初のソフトウェアのテスト内容が学習される。バージョンアップされたソフトウェアをコンピュータシステムに搭載して同一テストを行う場合は、学習結果であるテスト手順を読出して自動的なテストを行い、このテスト結果も、上記ファイル化したテスト結果と比較することでチェックする。バグ関連情報もバグ検出時には利用して点検に供する。
【０００７】
また、バージョンアップされたソフトウェアのテストによって検出されたデグレードバグの原因を追求する手段として、ソフトウェアの自動テスト方法が提案されている（特許文献３）。当該自動テスト方法においては、バージョンアップ前のシステムのトレース情報とバージョンアップ後のシステムのトレース情報を比較し、関数の呼出し順序或いは引数の値が異なる個所を発見し、モジュールの変更一覧から、どのモジュールにデグラデーション（劣化）の原因があるかを予測する。つまり、システムをテストする際に、関数が呼ばれる度に、該関数の属するモジュールの名称、関数の名称、入力因数の値、出力因数の値、リターン値を１トレースとして記録する。さらに、テストを実行した際のモジュール毎の作成日付を記憶する。システムをバージョンアップした際に、同様にトレース情報と、モジュール毎の作成日付を記憶する。トレース情報を前回のテスト時のトレース情報と比較し、違いをチェックする。
【０００８】
違いの原因を究明するために、関数を呼び出した側のモジュールの作成日付と、呼び出されたモジュールの作成日付より、両モジュールが変更されているか否かを利用者に提示する。さらに、トレース情報より呼び出しの際の入力引数、出力引数、リターン値が変更されているか否かを利用者に提示する。これらの情報から、関数を呼び出したモジュールの動作が異なっているのか、関数が呼び出されたモジュールの動作が異なっているのか、あるいは、別のモジュールの動作が異なっているのかを利用者に提示する。これによって、利用者がデグラデーションを発生させる箇所を予測することを可能にする。
【０００９】
さらに、トレース情報から第１のモジュールに属する関数の読み出し部分を検索し、トレース情報の記録の順で、第１のモジュールに属する関数を呼び出し、入力引数の値を渡す。関数の実行結果である出力引数の値、リターン値をトレース情報として記憶していた値と比べる。これによって、第１のモジュールの単体テストを可能にする。
【００１０】
さらに、トレースを記憶した際のテストデータとは異なるテストデータでテストを行う場合にも、入力引数の値、出力引数の値、リターン値は当然異なるが、関数の呼び出し順序は変わらない場合が多い。従って、関数の呼び出し順序のみを比較することで、デグラデーションの原因を追及することが可能となる。記憶しておいたトレース情報から関数の呼び出し順序の情報を抽出して、両情報を比較し、関数の呼び出しが異なっている箇所を検索して提示することで、関数を呼び出したモジュールにデグラデーションの原因があることを、利用者が判断することを可能にする。
【００１１】
上述の如く、ユーザの操作入力に応答して表示が変わるウィンドウ作成プログラムの自動テスト装置（特許文献１）、バージョンアップされたソフトウェアのテストおよびデグレードバグ検出を行うプログラムのテスト装置（特許文献２）、およびバージョンアップされたソフトウェアのテストによって検出されたデグラレードバグの原因の推定に供されるソフトウェアの自動テスト方法（特許文献３）が提案されている。
【特許文献１】特開平５−１４３２６９号公報
【特許文献２】特開平８−２１２１０８号公報
【特許文献３】特開平１０−３２０２３４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
新製品であってもその機能の大半は従来の機能と共通であり、その共通の機能は既に検証されている。この意味において、新製品の開発時に検証すべきテスト項目は、新たに追加されたソフトウェアの機能と、同ソフトウェアと従来の機能を実現するソフトウェアとの整合性である。
【００１３】
しかしながら、新機能を実現するソフトウェアと従来の機能を実現するソフトウェアとを明確に切り分けることは非常に難しい。それ故に、開発者が新製品の機能を実現するソフトウェアの全ての検証項目を改めて個々に設定すると共に、設定された検証項目についてリグレッションテストを実行せざるを得ない。そのため、既に検証済みの項目までも繰り返して検証が行われるという無駄がある。
【００１４】
さらに、近年は、同様の製品であっても、異なる機種毎にマイクロコンピュータを用いた機能開発の内容が急激に高度化且つ複雑化している。それにつれて、開発工数も急激に増大しており、開発負荷に開発能力が追いつかない状態である。また、製品の品質確保には、開発時点でのソフトウェアの徹底的な検証が必要であるが、開発工数の増大がその妨げとなっている。
【００１５】
特に、リグレッションテストにおいては、開発者が設定した新製品の機能を実現するソフトウェアの全ての検証項目毎に、製品の制御装置内の特定のＲＡＭの所定のアドレスに格納されているパラメータの値を検証することによって、バージョンアップされたソフトウェアにデグラデーションの有無が判断される。つまり、新製品のリグレッションテストにおいては、新たに付加される機能に関しては、バージョンアップされたプログラムによって、新たな機能に対応するＲＡＭアドレスおよびパラメータとパラメータ値を特定すると共に、特定された値を検証するリグレッションテストプログラムを作成しなければならない。さらに、従来の機能に対応するＲＡＭアドレスおよびパラメータとその値も、バージョンアップ時に新製品の機能に対応する機能を設定することで変化してしまう不都合も生じる。
【００１６】
デグラデーションの有無を検出するためには、ソフトウェアのバージョンアップによって変化するＲＡＭアドレスと、同アドレスに対応するパラメータの値の正常値を正確に把握し、そのＲＡＭアドレスのパラメータ値を判定するようにプログラムを作成する必要がある。そのようなプログラム作成には、非常に高度な知識が必要とされて、通常は専門のプログラマに依頼せざるを得ない。しかしながら、専門のプログラマは、新旧の製品の機能の検証されるべき内容に関する知識は有していない。一方、製品の開発者は、機能とパラメータの関係の知識や検証すべきテスト項目は熟知しているものの、その関係に基づいて特定のＲＡＭアドレスの値を読むようなプログラムを作成するほどの技量を備える者は少ない。
【００１７】
それ故に、製品の開発者は、自身が決定する製品の機能に関してプログラマに説明し、プログラマは受けた説明に応じて、プラグラムを作成する必要がある。この過程でまた、開発者とプログラマの間での意思疎通の問題や、お互いの技量に起因して、正しいリグレッションテストプログラムが完成するまでに、多大な労力と時間とを要して非効率的である。それ故に、新製品に対する要求機能の内容を熟知している開発者が専門のプログラマの助けなく単独でリグレッションテストプログラムを作成することを可能とする支援システムが必要とされる。
【００１８】
また、上述のウィンドウ作成プログラムの自動テスト装置（特許文献１）においては、キーボード及びマウス入力信号と、ウィンドウに表示されたデータを記憶しておき、キーボード及びマウス入力信号を再生し、作成されたウィンドウに表示されるデータと、記憶しておいたウィンドウに表示されたデータを比較しテスト結果を出力する。つまり、イベントに応答して、表示内容が変更されるウィンドウの表示プログラムにすぎない。デグラデーションを検出するリグレッションテストプログラムの作成を支援するものではない。
【００１９】
また、上述のプログラムのテスト装置（特許文献２）においては、デグレードバグの有無をツールで検出する。しかしながら、バージョンアップされたソフトウェアに対しても、バージョンアップ前と同一のテスト手順およびテスト小結果を自動的に利用するために、新機能が追加されたソフトウェアに対して使用できない。また、バージョンアップによる追加機能に対するパラメータやＲＡＭアドレスを適切に設定する手段を有しておらず、デグラデーションを検出するリグレッションテストプログラムの作成を支援するものではない。
【００２０】
さらに、ソフトウェアの自動テスト方法（特許文献３）においては、前回のテストのトレース情報と、今回のテストのトレース情報を比較して、モジュールの動作異常についての情報をユーザに提示することによって、ユーザのデグラデーション箇所の予測を支援する。しかしながら、バージョンアップによる追加機能に対するパラメータやＲＡＭアドレスを適切に設定する手段を有しておらず、デグラデーションを検出するリグレッションテストプログラムの作成を支援するものではない。
【００２１】
よって、本発明は、既に検証済みの機能についての項目を自動的に設定すると共に、新たな機能についての項目のみを開発者が個々に設定することにより、製品全体として開発時に必要とされるリグレッションテストプログラム作成に要する工数を低減できるソフトウェア自動検証システムを提供することを目的とする。
【課題を解決するための手段】
【００２２】
機能の一部がソフトウェアで実現される製品に使用するソフトウェアの開発に際して作成されるソフトウェアのリグレッションテスト方法の作成を支援するソフトウェア自動検証方法であって、製品のそれぞれの機能の状態を定義するステップと、定義された機能を製品の機能を制御するマイコンのメモリデータＲＡＭ名称と関連づけるステップと、  関連づけられた機能をメモリデータの絶対アドレスに変換するステップと、製品に対してリグレッションテストを実行するステップとリグレッションテスト後に得られたテスト結果を表す絶対アドレスのメモリデータを機能に逆変換するステップとを備える。
【発明の効果】
【００２３】
本発明においては、製品の機種が変更され、仕様の変更に伴うソフトウェアの追加や変更、或いは性能向上のために実施されるソフトウェアの変更に応じて、対応するＲＡＭアドレスおよび値が変わっても、ユーザに対しては同じ状態名が表示される。それゆえに、ユーザは高度なプログラム技量を有していなくても、リグレッションテスト方法を作成し、テストを実行し、テスト結果を評価して、さらに評価結果に基づいて、リグレッションテストを編集できる。従って、ある製品でリグレッションテスト方法を設定すると、以降の新機種のためのリグレッションテスト方法には従来機種のリグレッションテスト方法の大部分が流用できる。つまり、新機種のリグレッションテストは、従来機種のリグレッションテスト方法に新機種による仕様追加部分を追加することで対応できる。結果、リグレッションテストに要する時間、労力、及び費用を含めてコストを低減できる。
【発明を実施するための最良の形態】
【００２４】
（第１の実施形態）
以下に、図１、図２、図３、図４、図５、図６、図７、図８、図９、図１０、図１１、および図１２を参照して、本発明の実施形態にかかるソフトウェア自動検証システムについて説明する。本実施形態においては、後述する状態遷移表のマニュアル作成を可能とする。
【００２５】
図１に示すように、本実施形態にかかるソフトウェア自動検証システムＳｖｓ１は、検査項目設定器１００Ａと、検証対象器２００に大別される。検証対象器２００は、ソフトウェア自動検証システムＳｖｓ１で動作検証の対象である検証対象機器（図示せず）の機能を司る機能を有し、好ましくはマイクロコンピュータで構成される。
【００２６】
検査項目設定器１００Ａは、検証対象器２００の動作を検証させるための検証用コマンドを有する検証コマンド信号Ｓ３１を生成して、検証対象器２００に出力する。
【００２７】
検証対象器２００は、検証コマンド信号Ｓ３１に基づいて、自身の機能に関してリグレッションテストを実施して、各機能の状態を検出する。検証対象器２００はさらに、検出された機能状態に対応する検証対象機能状態情報を表す検証対象機器状態情報信号Ｓ４３を生成して、検査項目設定器１００に出力する。
【００２８】
また、検証対象器２００は、コマンド受信器２０１、制御器２０３、機器制御用メモリ２０５、およびデータ受信器２１１を含む。機器制御用メモリ２０５は、検証対象器２００が検証対象機器の制御用に使用する書き換え可能メモリであって、キー対応メモリ書込器２０７および状態対応メモリ読出器２０９を含む。
【００２９】
コマンド受信器２０１は、検査項目設定器１００Ａから入力される検証コマンド信号Ｓ３１から検証コマンドＳ３３を抽出して、制御器２０３に出力する。なお、検証コマンドＳ３３は、後述の制御器１１０Ａから出力される検証用コマンド信号Ｓ１１１と電圧レベルは異なるが本質的に同一の情報を含む信号である。
【００３０】
制御器２０３は、検証コマンドＳ３３に基づいて、メモリ書込指示信号Ｓ３５とメモリ読み出し指示信号Ｓ３１を生成して、それぞれを機器制御用メモリ２０５に出力する。機器制御用メモリ２０５では、キー対応メモリ書込器２０７はメモリ書込指示信号Ｓ３５に基づいて機器制御用メモリ２０５の所定のアドレスにキーに対応する検査対象器の操作キー（例えば、ＣＤ  ＰＬＡＹキー等）を押したことに相当するデータの書き込みを行う。さらに、状態対応メモリ読出器２０９は、検証コマンド信号Ｓ３１に基づいて、機器制御用メモリ２０５の所定のアドレスから、検証対象機器の状態を表す情報を読み出して、状態メモリデータ信号Ｓ３８として制御器２０３に出力する。
【００３１】
制御器２０３は、状態メモリデータ信号Ｓ３８に基づいて、機能に対応するメモリのアドレス値及び同アドレスに格納されているデータを抽出して、状態メモリデータＳ４１としてデータ受信器２１１に出力する。データ受信器２１１は、状態メモリデータＳ４１を、検証対象器２００と検査項目設定器１００Ａ間の伝送路に適した形式を有する状態メモリデータ送信信号Ｓ４３を生成する。
【００３２】
図２に示すように、検査項目設定器１００Ａは、表示器１０１、操作器１０３、操作順番設定器１０５、操作順番記憶器１０６、期待値記憶器１０７、比較器１０９、コマンド送信器１１１、データ受信器１１３、状態対応メモリ記憶器１１７、ターゲットの状態名称への変換器１１９、および状態名称変換テーブルマニュアル作成登録器１２０、および制御器１１０Ａを含む。制御器１１０Ａは、検査項目設定器１００Ａの構成要素のすべてに接続されて、種々の信号を相互に交換して、これらの構成要素および検査項目設定器１００Ａの動作を制御する。
【００３３】
表示器１０１は、制御器１１０Ａから供給される画像信号Ｓ１０１に基づいて、ユーザに対して種々の情報およびユーザが検査項目設定器１００Ａに対して指示できる選択肢を映像或いは音響で提示する。表示器１０１は、好ましくは、ディスプレイモニタとスピーカによって構成される。
【００３４】
操作器１０３は、ユーザによる操作を受けると共に、その操作の内容を表す操作信号Ｓ１０３を生成する。操作信号Ｓ１０３は制御器１１０Ａに入力される。なお、制御器１１０Ａは、操作信号Ｓ１０３に基づいて、各構成要素における処理に必要な情報を含む種々な信号を生成して、それぞれに出力する。
【００３５】
操作順番設定器１０５は、制御器１１０Ａから供給される操作順番要求信号Ｓ１３５に基づいて、ユーザが検査項目設定器１００Ａに対して所望する被検証機器の操作順番を表す操作情報信号Ｓ１３６を生成する。操作情報信号Ｓ１３６は、制御器１１０Ａに入力される。
【００３６】
期待値記憶器１０７は、制御器１１０Ａと操作／データ信号Ｓ１０７とを交換して、期待値情報Ｉ１０７を生成して比較器１０９に出力する。
【００３７】
状態名称変換テーブルマニュアル作成登録器１２０は、制御器１１０Ａから入力される変換テーブルのマニュアル作成用コマンド信号Ｓ１２０に基づいて、状態名称変換テーブル情報Ｉ１２０を生成して、状態対応メモリ記憶器１１７に出力する。
【００３８】
状態対応メモリ記憶器１１７は、制御器１１０Ａから入力される状態名称変換テーブル選択信号Ｓ１１７と、状態名称変換テーブルマニュアル作成登録器１２０から入力される状態名称変換テーブル情報Ｉ１２０に基づいて、検証中のモードに対応する状態名称変換テーブル情報Ｉ１１７を生成して、ターゲットの状態名称への変換器１１９に出力する。検証中のモードに対応する状態名称変換テーブル情報Ｉ１１７は、磁気記録ディスクなどの外部の記録媒体を介して状態対応メモリ記憶器１１７に入出力しても良い。
【００３９】
ターゲットの状態名称への変換器１１９は、制御器１１０Ａから入力される検証用データ信号Ｓ１１９と、状態対応メモリ記憶器１１７から入力される検証中のモードに対応する状態名称変換テーブル情報Ｉ１１７に基づいて、状態名称情報Ｉ１１９を生成して、実行結果記憶器１１５に出力する。
【００４０】
実行結果記憶器１１５は、制御器１１０Ａから入力される実行結果入出力信号Ｓ１１５と、ターゲットの状態名称への変換器１１９から入力される状態名称情報Ｉ１１９に基づいて、実行結果情報Ｉ１１５を生成して、比較器１０９に出力する。
【００４１】
比較器１０９は、期待値記憶器１０７から入力される期待値情報Ｉ１０７と実行結果記憶器１１５から入力される実行結果情報Ｉ１１５を比較して、比較結果に対応する比較結果出力信号Ｓ１０９を生成して、制御器１１０Ａに出力する。
【００４２】
データ受信器１１３は、検証対象器２００から入力される検証対象機器状態情報信号Ｓ４３に基づいて、検証用データを表す検証用データ信号Ｓ１１３を生成して、制御器１１０Ａに出力する。
【００４３】
コマンド送信器１１１は、制御器１１０Ａから入力される検証用コマンド信号Ｓ１１１に基づいて、検証コマンド信号Ｓ３１を生成して、検証対象器２００に出力する。
【００４４】
図３〜図１２を参照して、検査対象器の動作出力を含むソフトウェア自動検証システムＳｖｓの動作について説明する。
【００４５】
先ず、図３に示すメインフローチャートを参照して、ソフトウェア自動検証システムＳｖｓの主な動作について説明する。ソフトウェア自動検証システムＳｖｓの動作は、ステップ＃１００の「状態名定義」サブルーチン、ステップ＃１５０の「操作順番設定」サブルーチン、ステップ＃１７０の「実行用データ生成」サブルーチン、ステップ＃２００の「状態対応メモリデータ生成」サブルーチン、ステップ＃２５０の「実行用データ編集」サブルーチン、およびステップ＃２７０の「実行および結果表示」サブルーチンを実行することで実現される。
【００４６】
ステップ＃１００の「状態名定義」サブルーチンにおいて、検証すべき機能の状態名称が定義される。
【００４７】
ステップ＃１５０の「操作順番設定」サブルーチンにおいて、検証順番が設定される。
【００４８】
ステップ＃１７０の「実行用データ生成」サブルーチンにおいて、検証を実行するために用いるデータが生成される。
【００４９】
ステップ＃２００の「状態対応メモリデータ生成」サブルーチンにおいて、検証される機能の状態のそれぞれに対応して状態対応メモリ記憶器（図示せず）に記録されるべきデータが生成される。
【００５０】
ステップ＃２５０の「実行用データ編集」サブルーチンにおいて、ステップ＃１７０の「実行用データ生成」サブルーチンにおいて生成された実行用データが、必要に応じて、編集される。
【００５１】
ステップ＃２７０の「実行および結果表示」サブルーチンにおいて、検証が実行されると共に検証結果がユーザに表示される。
【００５２】
図４に示すように、＃１００の状態名定義のサブルーチンにおいては、先ず、ステップＳ１０２において、制御器１１０Ａはユーザが状態名を定義するために選択し得る処理の一覧を描画する画像信号Ｓ１０１を生成する。そして、同画像信号Ｓ１０１に基づいて、表示器１０１は、「状態名定義メニュー」を表示してユーザの選択入力が促される。状態名定義メニューには、「状態データ登録」、「状態名指定」、「状態データＲＡＭアドレス指定」、「状態データの具体値指定」、および「登録完」が含まれる。なお、このメニューは本サブルーチンの実行中は、常に表示器１０１に表示されて、ユーザは自由に選択入力できる。ユーザが操作器１０３を操作して、「状態名定義メニュー」に対して選択入力するに十分な所定時間の経過後に、制御は次のステップＳ１０４に進む。
【００５３】
ステップＳ１０４において、制御器１１０Ａが操作信号Ｓ１０３に基づいて、ユーザが「状態データ登録」を選択したか否かを判断する。「状態データ登録」が選択されていない場合はＮｏと判断されて、制御は上述ステップＳ１０２に戻り、ステップＳ１０２およびステップＳ１０４の処理が繰り返される。「状態データ登録」が選択されている場合にはＹｅｓと判断されて、制御は次のステップＳ１０６に進む。
【００５４】
ステップＳ１０６において、ユーザが操作器１０３を利用して「状態名指定」メニューに対して行う、検証すべき状態に対応する状態データＤＳとして登録すべき状態名の指定が受け付けられる。そして、制御は次のステップＳ１０８に進む。
【００５５】
ステップＳ１０８において、ユーザが操作器１０３を利用して「状態データＲＡＭ名称指定」メニューに対して行う、ステップＳ１０６において受け付けられた状態名に対応する、機器制御用メモリ２０５内にある状態データＲＡＭ名称の指定が受け付けられる。そして、制御は次のステップＳ１１０に進む。
【００５６】
ステップＳ１１０において、ユーザが操作器１０３を利用して「状態データの具体値指定」メニューに対して行う、ステップＳ１０８で指定された状態データＲＡＭ名称に対応するアドレスに格納すべき値の指定が受け付けられる。図８に状態データＤＳの一例を示す。同図に示すように、状態対応メモリ記憶器に格納されている状態データＤＳは、一種のテーブルとして表現される。状態データＤＳは、それぞれ異なる状態を示す複数の状態名ＮＳと、各状態を表す状態値ＶＳを含む。なお、状態値ＶＳは参照メモリに２進数値として格納されている。
【００５７】
具体的には、本例においては、状態名ＮＳとして、「電源ＯＦＦ」、「電源ＯＮ（ＳＴＯＰ）」、「ＰＬＡＹ」、および「ＰＡＵＳＥ」と、それぞれに対する状態値ＶＳとして「００００００００」、「１０００００００」、「１０００１０００」、および「１０００１１００」が組になって状態データＤＳが構成されている。
【００５８】
つまり、ステップＳ１１０においては、上述の５種類の状態名ＮＳの少なくとも１つに対して状態値ＶＳが具体的に指定される。そして、制御は次のステップＳ１１２に進む。
【００５９】
ステップＳ１１２において、制御器１１０Ａは操作信号Ｓ１０３に基づいて、ユーザが状態データＤＳの登録が完了を意味する「登録完」メニューを選択しているか否かを判断する。選択されていない場合は、Ｎｏと判断されて、処理は上述のステップＳ１０２に戻り、ステップＳ１０２乃至ステップＳ１１０の処理を繰り返したのち、本ステップＳ１１２でＹｅｓと判断された時点で、本サブルーチンの処理を終了する。上述のように、本サブルーチンにおいて、リグレッションテストをする機能のそれぞれの状態が定義された後に、制御はステップ＃１５０の「操作順番設定」サブルーチンに進む。
【００６０】
ステップ＃１５０の「操作順番設定」サブルーチンにおいては、先ず、ステップＳ２において、制御器１１０Ａは、ユーザが操作順番の設定のために選択し得る処理の一覧を描画する画像信号Ｓ１０１を生成する。そして、同画像信号Ｓ１０１に基づいて、表示器１０１は、「操作記憶メニュー」を表示してユーザの選択入力を促す。図９に、操作記憶メニューの表示例を示す。操作記憶メニューＩＳには、「ＰＯＷＥＲ」、「ＰＬＡＹ」、「ＰＡＵＳＥ」、および「ＳＴＯＰ」の４種類のキーアイコンで表される選択項目と、「記憶開始」、「記憶終了」、「ファイル保存」および「実行画面」の選択項目が含まれる。なお、このメニューは本サブルーチンの実行中は、常に表示器１０１に表示されて、ユーザは自由に選択入力できる。ユーザが操作器１０３を操作して、操作記憶メニューＩＳに対して選択入力するに十分な所定時間の経過後に、制御は次のステップＳ４に進む。
【００６１】
ステップＳ４において、制御器１１０Ａは操作信号Ｓ１０３に基づいて、「記憶開始」が選択されているか否かを判断する。選択されている場合にのみ、制御は次のステップＳ６に進む。
【００６２】
ステップＳ６において、操作順番設定器１０５は、制御器１１０Ａを介して入力される操作信号Ｓ１０３に基づいて、操作記憶メニューＩＳの４種類のキーアイコンのいずれかが選択されたか否かを判断する。Ｎｏと判断される場合には、本ステップによる処理が繰り返される。そして、Ｙｅｓと判断される場合にのみ、制御は次のステップＳ８に進む。
【００６３】
ステップＳ８において、操作順番設定器１０５は操作信号Ｓ１０３（Ｓ１０７）に基づいて、ステップＳ６において選択されたと判断されたキーアイコンの種類、および選択されたタイミングを表す操作情報ＩＯ（図示せず）である操作情報Ｓ１０６を生成して記憶する。そして、制御は次のステップＳ１０に進む。
【００６４】
ステップＳ１０において、操作順番設定器１０５は操作情報ＩＯに基づいて、「記憶終了」が選択されたか否かを判断する。Ｎｏの場合、制御は上述のステップＳ６に戻る。そして、ステップＳ８を経て、再度ステップＳ１０において、「記憶終了」の選択の有無が判断される。このようにして、操作情報ＩＯには、ユーザが選択した対象および選択したタイミングに選択した順番が追加される。なお、記憶された操作情報ＩＯは、後に、制御器１１０Ａから入力される操作順番要求信号Ｓ１３５に応答して、操作情報信号Ｓ１３６として制御器１１０Ａに返される。そして、本サブルーチンの処理を終了制御は次のステップ＃１７０の「実行用データ生成」サブルーチンに進む。つまり、本サブルーチンにおいて、リグレッションテストを実行する順番が決定された後に、ステップ＃１７０の「実行用データ生成」が開始される。
【００６５】
ステップ＃１７０の「実行用データ生成」サブルーチンにおいては、先ず、ステップＳ１２において、制御器１１０Ａは操作信号Ｓ１０３に基づいて、「ファイル保存」が選択されているか否かを判断する。Ｙｅｓと判断されるまでは、本ステップにおける判断が繰り返される。本ステップにおいて、Ｙｅｓと判断された時点で、制御は次のステップＳ１４に進む。
【００６６】
ステップＳ１４において、制御器１１０Ａは操作順番要求信号Ｓ１３５を出力して、操作順番設定器１０５から上述のステップＳ１０（＃１５０）で生成された操作情報ＩＯを、操作情報信号Ｓ１３６として読み出す。そして、操作情報信号Ｓ１３６に含まれる操作情報ＩＯを所定のファイル名を有するファイルとして操作順番記憶器１０６に保存させる。そして、制御は次のステップＳ１６に進む。
【００６７】
ステップＳ１６において、制御器１１０Ａは操作信号Ｓ１０３に基づいて、「実行画面」が選択されているか否かを判断する。Ｙｅｓの場合に、制御は次のステップＳ１８に進む。
【００６８】
ステップＳ１８において、制御器１１０Ａは、ユーザが実行用データの生成のために選択し得る処理の一覧を描画する画像信号Ｓ１０１を生成する。そして、同画像信号Ｓ１０１に基づいて、表示器１０１は、「実行メニュー」を表示してユーザの選択入力を促す。図１０に、「実行メニュー」の表示例を示す。実行メニューＩＥは、「実行ファイル設定」、「期待値ファイル指定」、および「実行」の選択項目を含む。なお、このメニューは本サブルーチンの実行中は、常に表示器１０１に表示されて、ユーザは自由に選択入力できる。ユーザが操作器１０３を操作して、実行メニューＩＥに対して選択入力するに十分な所定時間の経過後に、制御は次のステップＳ２０に進む。
【００６９】
ステップＳ２０において、制御器１１０Ａは操作信号Ｓ１０３に基づいて、「実行ファイル指定」が選択されている否かを判断する。選択されている場合にＹｅｓと判断されて、制御は次のステップＳ２２に進む。
【００７０】
ステップＳ２２において、ステップＳ２０で指定された実行ファイルが操作順番記憶器１０６から制御器１１０Ａに読み出されて、実行用データＤＥが生成される。そして、制御は次のステップＳ２４に進む。
【００７１】
ステップＳ２４において、制御器１１０Ａは操作信号Ｓ１０３に基づいて、「実行」が選択されているか否かを判断する。「実行」の選択がされている場合はＹｅｓと判断されて、制御はステップ＃２００の「状態対応メモリデータ生成」サブルーチンに進む。上述のように、ステップ＃１５０において決定された順番通りにリグレッションテストを実行させる実行ファイルが完成された後に、リグレッションテストを実行して、その結果である状態対応メモリデータを生成するサブルーチン＃２００が開始される。
【００７２】
ステップ＃２００の「状態対応メモリデータ生成」サブルーチンにおいては、先ず、ステップＳ２０２において、制御器１１０Ａはコマンド送信器１１１を介して検証コマンド信号Ｓ３１を送信する。つまり、キーに対応するマイコンＲＡＭ用メモリデータ（Ｓ１１１）がターゲットマイコンに指定されたタイミングで検証対象器２００に対して、検証コマンド信号Ｓ３１として出力される。つまり、マイコンＲＡＭのどのアドレスのどのビットをどの様に変化させるのかをターゲットマイコンに指示する。
【００７３】
具体的には、先ず、操作順番記憶器１０６からマイコンＲＡＭメモリのフラグ名称で指定された内容が読み出される。そして、  マイコンソフトのコンパイル作業によって作成されるＯＵＴファイル等と呼ばれる、名称から絶対アドレスへのアドレス変換テーブルを介して、当該読み出された内容に対応する値をマイコンＲＡＭ用メモリの絶対アドレスに実装する操作が実行される。これにより、例えば、「ＰＬＡＹキーＯＮフラグ」はマイコンＲＡＭの絶対アドレス「０５２Ａ（１６進）のｂｉｔ２」と変換され、当該ビットを「１」に設定するという処理が実行される。そして、制御は次のステップＳ２０４に進む。そして、制御は次のステップＳ２０４に進む。
【００７４】
ステップＳ２０４において、制御器１１０Ａは、状態対応メモリ記憶器１１７に対して、マイコンＲＡＭ内状態対応メモリデータを読み出すコマンド（図示せず）を送り、マイコンＲＡＭ内状態対応メモリデータ、例えば図８に示した参照メモリ（Ｘ‘０００１）の内容を受信して検査項目設定器１００Ａの状態対応メモリ記憶器１１７に記憶する。そして、制御は次のステップＳ２０６に進む。なお、参照メモリ（Ｘ‘０００１）に関しても、「ＰＬＡＹキーＯＮフラグ」と同様に絶対アドレスへの変換テーブルが使用される。
【００７５】
ステップＳ２０６において、ステップＳ２０４において記憶された状態対応メモリデータＤ１１７がターゲットの状態名称への変換器１１９によってターゲットの状態名称Ｄ１１９に変換される。例えば、参照メモリ（Ｘ‘０００１）の内容が「００００００００」なら「電源ＯＦＦ」と変換される。そして、制御は次のステップＳ２０８に進む。
【００７６】
ステップＳ２０８において、制御器１１０Ａは操作記憶データの実行が終了しているか否かを判断する。終了していないと判断される場合、制御は上述のステップＳ２０２に戻り、ステップＳ２０４及びステップＳ２０６の処理を経て、本ステップでＹｅｓと判断（実行終了）された時点で、本サブルーチンを終了する。本サブルーチンにおいて、上述のサブルーチンで決定された内容と順番でリグレッションテストが実行された後に、ステップ＃２５０の「実行用データ編集」サブルーチンに進む。
【００７７】
ステップ＃２５０の「実行用データ編集」サブルーチンにおいては、先ず、ステップＳ２６において、制御器１１０Ａは、ステップＳ２０６で得られた状態名称Ｄ１１９とキー名を表す画像信号Ｓ１０１を生成して、表示器１０１に出力する。同画像信号Ｓ１０１に基づいて、表示器１０１はキー名と得られたターゲットの状態名称Ｄ１１９を表す「編集メニュー」を表示して、ユーザの選択入力を促す。図１１に編集メニューの一例を示す。編集メニューＩＭは、選択されたキーと得られた状態を対照して表す取得状態表示テーブルＴと、「編集」、「期待値として登録」、および「実行画面」の選択項目を含む。そして、制御は次のステップＳ２８に進む。
【００７８】
ステップＳ２８において、操作信号Ｓ１０３に基づいて、制御器１１０Ａは「編集」が選択されたか否かを判断する。「編集」キーの選択が検出された場合にはＹｅｓと判断されて、制御はステップＳ２９に進む。
【００７９】
ステップＳ２９において、取得状態表示テーブルＴに表示されている「得られた状態」の内容に対する、ユーザの編集作業が受け付けられる。編集は、ユーザが操作器１０３を操作することによって行われる。制御は上述のステップＳ２８に戻る。
【００８０】
一方、ステップＳ２８において、「編集」が選択されていない場合にはＮｏと判断されて、制御はステップＳ３０に進む。
【００８１】
ステップＳ３０において、制御器１１０Ａは操作信号Ｓ１０３に基づいて、「期待値として登録」が選択されているか否かを判断する。選択されていない場合はＮｏと判断されて、制御は上述のステップＳ２８に戻り、ステップＳ２９或いはステップＳ３０における処理を繰り返す。そして、「期待値として登録」が選択されている場合にのみＹｅｓと判断されて、制御は次のステップＳ３２に進む。
【００８２】
ステップＳ３２において、編集後の「得られた状態」がファイル名をつけて保存される。そして、制御は次のステップＳ３４に進む。
【００８３】
ステップＳ３４において、操作信号Ｓ１０３に基づいて、制御器１１０Ａは「実行画面」が選択されているか否かを判断する。「実行画面」キーの選択が検出される場合にのみ制御は次のステップＳ３６に進む。
【００８４】
ステップＳ３６において、制御器１１０Ａは、図１０に例示した実行メニューＩＥを描画する画像信号Ｓ１０１を再度生成して、表示器１０１に出力する。表示器１０１は、実行メニューＩＥを表示して、ユーザの選択操作を促す。ユーザの選択入力動作に必要とされるに十分な所定時間の経過後に、制御は次のステップＳ３８に進む。
【００８５】
ステップＳ３８において、制御器１１０Ａは操作信号Ｓ１０３に基づいて、「実行ファイル指定」キーが選択されたか否かを判断する。「実行ファイル指定」キーの選択が検出される場合にのみＹｅｓと判断されて、制御は次のステップＳ４０に進む。
【００８６】
ステップＳ４０においては、上述のステップＳ２２と同様に、実行ファイルが読み出されて、実行用データＤＥが生成される。そして、本サブルーチンにおける処理が終了して、制御は次のステップ＃２７０の「実行および結果表示」サブルーチンに進む。
【００８７】
ステップ＃２７０の「実行および結果表示」サブルーチンにおいては、先ず、ステップＳ４２において、上述のステップＳ２４と同様に、制御器１１０Ａは操作信号Ｓ１０３に基づいて、実行キーが選択されたか否かを判断する。実行キーの選択が検出されない場合、制御はステップＳ４４に進む。
【００８８】
ステップＳ４４において、「期待値ファイル指定」が選択されているか否かが判断される。Ｎｏの場合は、制御は上述のステップＳ４２に戻る。一方、Ｙｅｓと判断される場合は、制御はステップＳ４６に進む。
【００８９】
ステップＳ４６において、期待値記憶器１０７によって、指定ファイルが読み出されて、期待値とされる。そして、制御は上述のステップＳ４２に進む。
【００９０】
一方、ステップＳ４２において、実行キーの選択が検出された時点でＹｅｓと判断されて、制御はステップ＃２００の「状態対応メモリデータ生成」サブルーチンに進む。なお、＃２００のサブルーチンにおいて、上述の処理を経た後に、制御は次のステップＳ４８に進む。
【００９１】
ステップＳ４８において、制御器１１０Ａによって、期待値ファイルの指定があるか否かが判断される。期待値ファイルの指定がない場合はＮｏと判断されて、制御は上述のステップＳ２６に戻る。そして、上述のステップＳ２６〜ステップ＃２００における処理を繰り返す。そして、本ステップにおいて、Ｙｅｓと判断された時点で、制御は次のステップＳ５０に進む。
【００９２】
ステップＳ５０において、比較器１０９は、ターゲット用キー毎に得られる状態と、得られた状態名称（実行結果記憶器１１５から出力された情報ＩＤ１１５）と、期待値ファイル内状態名称（期待値記憶器１０７から出力された情報ＩＤ１０７）とを比較する。比較結果を表す比較結果信号Ｓ１０９を生成して、１１０Ａに出力する。そして、制御は次のステップＳ５２に進む。
【００９３】
ステップＳ５２において、制御器１１０Ａは、比較結果信号Ｓ１０９に基づいて、比較結果を描画する画像信号Ｓ１０１を生成して表示器１０１に出力する。図１２に、表示器１０１で表示される比較結果画面ＩＲＣを例示する。比較結果画面ＩＲＣは、「選択されたキー」のそれぞれに対応する「得られた状態」、「期待値」、および「比較結果」とがマトリックス状に展開される。図１２に示す例においては、「ＰＬＡＹ」、「ＰＡＵＳＥ」、「ＰＬＡＹ」、「ＳＴＯＰ」、および「ＰＯＷＥＲ」が選択されており、それぞれの「得られた状態」、「期待値」、および「比較結果」が表示されている。同例においては、上から３番目の「ＰＬＡＹ」の比較結果が「ＮＧ」であることが陰影と共に表示されている。
【００９４】
図８に、上述のステップＳ１１０において表示される状態データＤＳの一例を示す。
【００９５】
図９に、上述のステップＳ２において表示される操作記憶メニューＩＳの一例を示す。
【００９６】
図１０に、上述のステップＳ１８において表示される実行メニューＩＥの一例を示す。
【００９７】
図１１に、上述のステップＳ２６において表示される編集メニューＩＭの一例を示す。
【００９８】
図１２に、上述のステップＳ５２において表示されるＩＲＣの一例を示す。
【００９９】
上述のように、本実施形態においては、製品の機能状態がソフト上のＲＡＭ名称と同様に、ユーザが認識し易い名前を用いてリグレッションプログラムのマイコン用のメモリデータと関連づけて定義される。なお、定義された名前は当該メモリデータが格納されている絶対アドレスに変換される。このように、機能とＲＡＭのメモリデータを関連づけて製品の状態として、ハードウェアとユーザ間のインターフェースとして機能させる。結果、製品の機種が変更あるいはソフトウェアの変更に応じて、対応するＲＡＭアドレスおよび値が変わっても、ユーザに対しては同じ状態名が表示される。
【０１００】
さらに、リグレッションテスト後のＲＡＭのメモリデータの値を製品の状態として、提示することによって、ユーザは、高度なプログラム技量を必要とせずに、リグレッションテスト結果を評価できる。さらに、この評価を元に、新たな機能に対するリグレッションテスト項目を状態名として追加設定できる。
【０１０１】
なお、本発明において、マイコン用のＲＡＭ名称からＲＡＭアドレスへの変換は公知の技術を利用できる。しかしながら、リグレッションテスト後のＲＡＭ値から状態への変換は、本発明において、独自に提案された手法で実現できる。なぜならば、テスト後の製品の状態を観るには、複数のマイコン用ＲＡＭの内容を参照する必要がある。例えば、本実施形態においては、説明の簡便化のために、ＰＬＡＹ状態でも、ＳＴＯＰ状態でも、一つのＲＡＭエリアで見ているが、実際には、複数のメモリの内容を組み合わせて見ることが一般的に必要である。
【０１０２】
（第２の実施形態）
以下に、本発明の第２の実施形態にかかるソフトウェア自動検証システムについて説明する。本実施形態においては、後述するように遷移表の自動作成を可能とする。本実施形態にかかる自動検証システムＳｖｓ２は、図１に示した第１の実施形態にかかるソフトウェア自動検証システムＳｖｓ１において、検査項目設定器１００Ａが検査項目設定器１００Ｂに置き換えられている。それ以外は、ソフトウェア自動検証システムＳｖｓ１と同様に構成されると共に動作する。よって、ソフトウェア自動検証システムＳｖｓ２に固有の特徴についてのみ重点的に説明する。
【０１０３】
図１３を参照して、検査項目設定器１００Ｂについて説明する。検査項目設定器１００Ｂは、検査項目設定器１００Ａにおいて、制御器１１０Ａが制御器１１０Ｂに置き換えられていると共に、表計算アプリからの入力器１３２および表計算アプリへの出力器１３４が追加されている。
【０１０４】
表計算アプリからの入力器１３２は、検証対象器２００において実行される検証テスト項目および手順を表すテスト項目データＳ１３２を表計算アプリケーションのデータ形式で、制御器１１０Ｂに出力する。
【０１０５】
表示器１０１は、テスト項目データＳ１３２に基づいて、テスト項目および順番をユーザに提示する。
【０１０６】
ユーザは、表示器１０１に提示されたテスト項目及び順番に対して、操作器１０３を操作して、テスト項目データＳ１３２を編集することができる。
【０１０７】
表計算アプリへの出力器１３４は、編集されたテスト項目データＳ１３２、あるいは検査実行した結果のデータを含んだ形での期待値データおよび実行結果データを表計算アプリケーションのデータ形式で、制御器１１０Ｂに出力する。
【０１０８】
図１４乃至図２０を参照して、制御器１１０Ｂの主な動作について説明する。先ず、図１４に示すように、制御器１１０Ｂのメインフローは、図３に示した制御器１１０Ａのメインフローのステップ＃１００の「状態名定義」サブルーチンの前に、ステップ＃３００の「操作手順入力」サブルーチンが設けられている。ステップ＃１５０の「操作順番設定」サブルーチンおよびステップ＃１７０の「実行用データ生成」サブルーチンが、ステップ＃４００の「ターゲットの状態データ生成」サブルーチンに置き換えられている。
【０１０９】
さらに、ステップ＃２００の「状態対応メモリデータ生成」サブルーチンが削除されている。また、ステップ＃２５０の「実行用データ編集」サブルーチンがステップ＃２５０Ｒの「実行用データ編集」サブルーチンに置き換えられ、ステップ＃２７０の「実行および結果表示」サブルーチンがステップ＃２７０Ｒの「実行および結果表示」サブルーチンに置き換えられている。
【０１１０】
図１５に示すように、操作手順入力サブルーチン＃３００においては、先ず、ステップＳ３０２において、市販の表計算アプリケーションで状態遷移表の元状態と操作キーの組み合わせ表が作成される。なお、状態遷移表とは、リグレッションテストを実施する際に、開発される製品の機能の実現にとっての優先度に基づいて決定されるテスト項目と順番を表すものである。そして、制御は次のステップＳ３０４に進む。
【０１１１】
ステップＳ３０４において、表計算アプリケーションで作成された組み合わせ表の内容がユーザによってＣＳＶ形式などの通常のデータベース構造のファイルに変換される。そして、このファイルが「組み合わせ表」に取り込まれる。そして、制御は次のステップＳ３０６に進む。
【０１１２】
ステップＳ３０６において、それぞれの元の状態を作り出す操作手順が定義される。例えば、電源ＯＦＦからＰＬＡＹキーを押すとＰＬＡＹが定義される。同様に、電源ＯＦＦからＰＬＡＹを押し、さらにＰＡＵＳＥを押すとＰＡＵＳＥになる、等ということが定義される。そして、制御は次のステップＳ３０８に進む。
【０１１３】
ステップＳ３０８において、各操作キーに対応する「ターゲットに送るべきコマンド」が定義される。例えば、ＰＬＡＹキーはＦ＿ＰＬＡＹという名のＲＡＭフラグを１にするということを入力する。そして、本サブルーチンにおける処理が終了する。
【０１１４】
そして、ステップ＃１００の「状態名定義」サブルーチンを経て、ステップ＃４００の「ターゲットの状態データ生成」サブルーチンが開始される。
【０１１５】
図１６に示すように、ターゲットの状態データ作成サブルーチン＃４００においては、先ず、ステップＳ４０２において、指定された元状態が作り出される。例えば、電源ＯＦＦの状態が作りだされる。そして、制御は次のステップＳ４０４に進む。
【０１１６】
ステップＳ４０４において、指定されたターゲット用キーアイコンに相当するキー対応のマイコンＲＡＭ用メモリデータがターゲットマイコンに送信される。そして、制御は次のステップＳ４０６に進む。
【０１１７】
ステップＳ４０６においては、マイコンＲＡＭ内の対応メモリデータを読み出すコマンドが送信される。同コマンドに応答して、返信される対応データを受信して、パソコンのＲＡＭに記憶すると共に、ターゲットの状態名称に変換して状態名称が表に記入される。そして、制御は次のステップＳ４０８に進む。
【０１１８】
ステップＳ４０８においては、組み合わせ実行が完了しているか否かが判断される。Ｎｏの場合は、制御はステップＳ４１０に進む。
【０１１９】
ステップＳ４１０において、次の組み合わせが指定される。そして、制御は上述のステップＳ４０２に戻る。
【０１２０】
一方、ステップＳ４０８で、組み合わせ実行が完了していると判断される場合、本サブルーチンにおける処理が終了して、制御は次の「実行用データ編集」サブルーチン＃２５０Ｒに進む。
【０１２１】
図１６に示すように、ステップ＃２５０Ｒは、図６に示したステップ＃２５０において、ステップＳ２６の「キー名と得られた状態名称を表示」処理が、ステップＳ２６Ｒの「結果画面表示」処理と置き換えられ、ステップＳ２９の「得られた状態の内容を編集」処理が、ステップＳ２９Ｒの「表の内容を編集」処理に置き換えられている。また、ステップＳ３０においてＮｏと判断された場合の制御の進み先が、ステップＳ２８の「編集？」処理から、新たに設けられたステップＳ３１の「実行として登録？」処理に置き換えられている。また、ステップＳ３１でＮｏと判断された場合の制御の進み先として、ステップＳ３３の「ファイル名をつけて保存」処理が追加されている。
【０１２２】
ステップ＃２５０Ｒの処理が開始すると、先ずステップＳ２６Ｒにおいて、ステップ＃４００において生成されたターゲットの状態データが表の形式で画面表示される。そして、制御は次のＳ２８に進む。
【０１２３】
ステップＳ２８においては、編集しないと判断される場合、制御はステップＳ２９Ｒに進む。
【０１２４】
ステップＳ２９Ｒにおいては、ターゲット状態データ表の内容が編集される。そして、制御は上述のステップＳ２６Ｒに戻る。
【０１２５】
一方、ステップＳ２８において、編集すると判断される場合、制御はステップＳ３０に進む。
【０１２６】
ステップＳ３１において、画面表示されているターゲットの状態データを実行結果として登録するか否かが判断される。Ｎｏの場合、制御は上述のステップＳ２６Ｒに戻る。一方、本ステップにおいてＹｅｓと判断される場合、制御はステップＳ３３に進む。
【０１２７】
ステップＳ３３において、現在のターゲットの状態データがファイル名をつけられて保存される。そして、制御は上述のステップＳ２６Ｒに戻る。
【０１２８】
そして、ステップＳ３０において、Ｙｅｓと判断される場合の処理は、上述のステップ＃２５０におけるのと同一内容の処理を経て、本サブルーチンにおける処理を終了して、次の「実行および結果表示」サブルーチン＃２７０Ｒが開始する。
【０１２９】
図１７に示すように、ステップ＃２７０Ｒは、図７に示したステップ＃２７０において、ステップＳ４２とステップＳ４６の間に、ステップＳ４３の「順次実行？」処理、ステップＳ４９の「表計算アプリに出力？」処理、およびステップＳ５１の「アプリファイル指定？」処理が追加されている。また、ステップＳ４２とステップＳ４８の間には、ステップＳ４５の「ランダム指定」処理、ステップＳ４７の「順番指定」処理、ステップ＃４００の「ターゲットの状態データ生成」サブルーチンが挿入されている。さらに、ステップＳ５０の「ターゲット用キー毎に得られた状態名称と期待値ファイル内の状態名称と比較処理」が「実行結果の表と期待値ファイルの表の状態名称を比較」処理に置き換えられている。
【０１３０】
ステップ＃２７０Ｒが開始すると、先ず、ステップＳ４２においてランダム実行か否かが判断される。Ｎｏの場合、制御はステップＳ４３に進む。
【０１３１】
ステップＳ４３において、順次実行か否かが判断される。Ｎｏの場合、制御はステップＳ４４に進む。
【０１３２】
ステップＳ４４において、期待値ファイル指定か否かが判断される。Ｎｏの場合、制御は次のステップＳ４９に進む。
【０１３３】
ステップＳ４９において、表計算アプリケーションにデータを出力するか否かが判断される。Ｙｅｓの場合、制御は次のステップＳ５１に進む。
【０１３４】
ステップＳ５１において、データが表計算アプリケーションに出力された後に、制御は上述のステップＳ４２に戻る。
【０１３５】
一方、ステップＳ４９においてＮｏと判断される場合、制御は上述のステップＳ４２に戻る。
【０１３６】
さらに、ステップＳ４４でＹｅｓと判断される場合、制御は上述のステップＳ４６を経て、ステップＳ４２に戻る。
【０１３７】
なお、ステップＳ４３においてＹｅｓと判断される場合、制御はステップＳ４７に進む。
【０１３８】
ステップＳ４７において、順次実行する順番が指定される。そして、制御はステップ＃４００に進む。そして、ステップＳ４８でＹｅｓと判断される場合、制御はステップＳ５３に進む。
【０１３９】
ステップＳ４２においてＹｅｓの場合、ステップＳ４５においてランダム指定がなされた後で、制御はステップ＃４００に進む。
【０１４０】
ステップＳ５３において、実行結果の表と期待値ファイルの表の状態名称が比較される。そして、制御はステップＳ５５に進む。
【０１４１】
ステップＳ５５において、実行結果の表（得られた状態名称を表示した図１９に示す内容）に比較結果を付加した内容（図２０に示す）が表示される。そして、本サブルーチンが終了する。
【０１４２】
図１８に、ステップＳ３０２で作成される、「元状態と操作キーの組み合わせ表」の一例を示す。
【０１４３】
図１９に、ステップＳ２６Ｒで表示される「結果画面」の一例を示す。
【０１４４】
図２０に、ステップＳ５５で表示される、「比較結果を付加して表示される実行結果画面」の一例を示す。
【産業上の利用可能性】
【０１４５】
機能の一部あるいは大部分がソフトウェアで実現できる製品の新製品の開発時における、ソフトウェアのバージョンアップおよびソフトウェア開発等に利用できる。
【図面の簡単な説明】
【０１４６】
【図１】本発明の第１の実施形態にかかるソフトウェア自動検証システムの構成を示すブロック図
【図２】図１に示す検査項目設定器の構成を示すブロック図
【図３】図１に示したソフトウェア自動検証システムの主な動作を示すフローチャート
【図４】図３に示したステップ＃１００の状態名定義サブルーチンにおける詳細な動作を示すフローチャート
【図５】図３に示したステップ＃１５０の操作順番設定サブルーチンおよびステップ＃１７０の実行用データ生成サブルーチンにおける詳細な動作を示すフローチャート
【図６】図３に示したステップ＃２００の状態対応メモリデータ生成サブルーチンおよびステップ＃２５０の実行用データ編集サブルーチンにおける詳細な動作を示すフローチャート
【図７】図３に示したステップ＃２７０の実行および結果表示サブルーチンにおける詳細な動作を示すフローチャート
【図８】図２に示す検査項目設定器によって生成される状態データの構成を示す模式図
【図９】図２に示す表示器によって表示される操作記憶メニューの一例を示す模式図
【図１０】図２に示す表示器によって表示される実行メニューの一例を示す模式図
【図１１】図２に示す表示器によって表示される編集メニューの一例を示す模式図
【図１２】図２に示す表示器によって表示される比較結果画面の一例を示す模式図
【図１３】本発明の第２の実施形態にかかる検査項目設定器の構成を示すブロック図
【図１４】図１３に示した検査項目設定器の主な動作を示すフローチャート
【図１５】図１４に示したステップ＃３００の状態名定義サブルーチンにおける詳細な動作を示すフローチャート
【図１６】図１４に示したステップ＃４００のターゲットの状態データ生成サブルーチンおよびステップ＃２５０Ｒの実行用データ編集サブルーチンにおける詳細な動作を示すフローチャート
【図１７】図１４に示したステップ＃２７０Ｒの実行および結果表示サブルーチンにおける詳細な動作を示すフローチャート
【図１８】図１３に示す表示器によって表示される「元状態と操作キーの組み合わせ表」の一例を示す模式図
【図１９】図１３に示す表示器によって表示される「結果画面」の一例を示す模式図
【図２０】図１３に示す表示器によって表示される「比較結果画面」の一例を示す模式図
【符号の説明】
【０１４７】
Ｓｖｓ１、Ｓｖｓ２  ソフトウェア自動検証システム
１００Ａ、１００Ｂ  検査項目設定器
１０１  表示器
１０３  操作器
１０５  操作順番設定器
１０６  操作順番記憶器
１０７  期待値記憶器
１０９  比較器
１１１  コマンド送信器
１１３  データ受信器
１１５  実行結果記憶器
１１７  状態対応メモリ記憶器
１１９  ターゲットの状態名称への変換器
１２０  状態名称変換テーブルマニュアル作成登録器
１３２  表計算アプリからの入力器
１３４  表計算アプリへの出力器
２００  検証対象器
２０１  コマンド受信器
２０３  制御器
２０５  機器制御用メモリ
２０７  キー対応メモリ書込器
２０９  状態対応メモリ読出器
２１１  データ受信器
【図１】
2005100068.tif 000003
【図２】
2005100068.tif 000004
【図３】
2005100068.tif 000005
【図４】
2005100068.tif 000006
【図５】
2005100068.tif 000007
【図６】
2005100068.tif 000008
【図７】
2005100068.tif 000009
【図８】
2005100068.tif 000010
【図９】
2005100068.tif 000011
【図１０】
2005100068.tif 000012
【図１１】
2005100068.tif 000013
【図１２】
2005100068.tif 000014
【図１３】
2005100068.tif 000015
【図１４】
2005100068.tif 000016
【図１５】
2005100068.tif 000017
【図１６】
2005100068.tif 000018
【図１７】
2005100068.tif 000019
【図１８】
2005100068.tif 000020
【図１９】
2005100068.tif 000021
【図２０】
2005100068.tif 000022