(57)【特許請求の範囲】
【請求項１】
並行して実行される複数のプログラムの競合試験を実行するソフトウェア試験装置であって、
前記複数のプログラム毎に、該プログラムの試験内容を表す単一試験情報を取得する単一試験情報取得部と、
前記複数のプログラムの組み合わせに基づいて、前記競合試験において並行して実行されるプログラムのグループを生成し、前記生成されたグループに属するプログラム毎に、前記単一試験情報取得部により取得された単一試験情報を特定し、特定した単一試験情報を統合することにより、前記生成されたグループに属するプログラムの競合試験の内容を表す競合試験情報を生成する競合試験情報生成部と、
を備えるソフトウェア試験装置。
【請求項２】
設備機器において前記複数のプログラムの競合試験を実行し、
前記単一試験情報取得部は、前記複数のプログラム毎に、該プログラムの試験において前記設備機器に入力する入力情報と、該入力情報を前記設備機器に入力するタイミングを表す時刻情報と、を含む単一試験情報を取得し、
前記競合試験情報生成部は、前記生成されたグループに属するプログラム毎に特定された単一試験情報に含まれる入力情報及び時刻情報に基づいて、前記生成されたグループに属するプログラムの競合試験において該入力情報を前記設備機器に入力する順序及びタイミングのうち少なくともいずれか一方がそれぞれ異なる複数の競合試験パターンを、前記競合試験情報として生成する、
請求項１に記載のソフトウェア試験装置。
【請求項３】
前記生成されたグループに属するプログラムの競合試験において該入力情報を前記設備機器に入力する順序及びタイミングのうち少なくともいずれか一方を制約する制約条件を表す制約情報を入力する入力部をさらに備え、
前記競合試験情報生成部は、前記入力部により入力された制約情報が表す制約条件を満たすように、前記競合試験パターンを生成する、
請求項２に記載のソフトウェア試験装置。
【請求項４】
前記単一試験情報取得部は、前記設備機器が他の機器から受信する通信データを、前記入力情報として取得する、
請求項２又は３に記載のソフトウェア試験装置。
【請求項５】
前記単一試験情報取得部は、前記プログラムにおいて変数として定義されている内部データを、前記入力情報として取得する、
請求項２又は３に記載のソフトウェア試験装置。
【請求項６】
前記単一試験情報取得部は、前記複数のプログラム毎に、該プログラムの試験を実行する前に前記設備機器に入力する事前入力情報を含む単一試験情報を取得し、
前記競合試験情報生成部は、前記生成されたグループに属するプログラム毎に特定された単一試験情報に含まれる事前入力情報を、前記生成されたグループに属するプログラムの競合試験前の実行前に前記設備機器に入力する事前入力情報として含む競合試験情報を生成する、
請求項２から５のいずれか１項に記載のソフトウェア試験装置。
【請求項７】
前記単一試験情報取得部は、前記複数のプログラム毎に、該プログラムの試験を実行することにより前記設備機器から出力された出力情報が正常か否かを判定するための出力判定情報を含む単一試験情報を取得し、
前記競合試験情報生成部は、前記生成されたグループに属するプログラム毎に特定された単一試験情報に含まれる出力判定情報を、前記生成されたグループに属するプログラムの競合試験を実行することにより前記設備機器から出力された出力情報が正常か否かを判定するための出力判定情報として含む競合試験情報を生成する、
請求項２から６のいずれか１項に記載のソフトウェア試験装置。
【請求項８】
前記グループ毎に、前記競合試験情報生成部により生成された競合試験情報に基づいて、該グループに属するプログラムの競合試験を実行する試験実行部をさらに備える、
請求項１から７のいずれか１項に記載のソフトウェア試験装置。
【請求項９】
並行して実行される複数のプログラムの競合試験を実行するソフトウェア試験方法であって、
前記複数のプログラム毎に、該プログラムの試験内容を表す単一試験情報を取得する単一試験情報取得ステップと、
前記複数のプログラムの組み合わせに基づいて、前記競合試験において並行して実行されるプログラムのグループを生成し、前記生成されたグループに属するプログラム毎に、前記単一試験情報取得ステップにおいて取得された単一試験情報を特定し、特定した単一試験情報を統合することにより、前記生成されたグループに属するプログラムの競合試験の内容を表す競合試験情報を生成する競合試験情報生成ステップと、
を有するソフトウェア試験方法。
【請求項１０】
並行して実行される複数のプログラムの競合試験を実行するソフトウェア試験装置に、
前記複数のプログラム毎に、該プログラムの試験内容を表す単一試験情報を取得する単一試験情報取得ステップと、
前記複数のプログラムの組み合わせに基づいて、前記競合試験において並行して実行されるプログラムのグループを生成し、前記生成されたグループに属するプログラム毎に、前記単一試験情報取得ステップにおいて取得された単一試験情報を特定し、特定した単一試験情報を統合することにより、前記生成されたグループに属するプログラムの競合試験の内容を表す競合試験情報を生成する競合試験情報生成ステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア試験装置、ソフトウェア試験方法、及びプログラムに関する。
【背景技術】
【０００２】
機器を制御するソフトウェアの試験を支援する技術として、特許文献１には、試験対象であるプログラムを評価用プログラムに変換し、その評価用プログラムに基づいて、評価項目データと評価結果の期待値データとを自動的に生成する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−１１７７９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、空調機器や照明機器といった設備機器及び設備機器システムの多機能化が進んでいる。これに伴い、ユーザ操作の受付、自動運転や自動停止、他の設備機器との連動等を制御する設備機器の制御ソフトウェアも、複雑化している。このため、設備機器の制御ソフトウェアに対する試験作業において、制御ソフトウェアを構成する複数のプログラムが並列に実行された場合、すなわち複数にプログラムが競合する場合の設備機器の動作を検証する必要がある。しかし、動作試験において、並列に実行させるプログラムの組合せの数は非常に多く、さらに、プログラムを実行させるタイミングも考慮すると、試験パターンは無数に考えられるため、試験作業を担当する担当者に大きな負荷を与えてしまう。しかし、特許文献１に記載の技術では、複数のプログラムが競合する場合の動作試験のための評価項目を作成することは困難である。【０００５】
本発明は、上記実情に鑑みてなされたものであり、並行して実行される複数のプログラムの競合試験の効率化を図ることが可能なソフトウェア試験装置、ソフトウェア試験方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明に係るソフトウェア試験装置は、
並行して実行される複数のプログラムの競合試験を実行するソフトウェア試験装置であって、
前記複数のプログラム毎に、該プログラムの試験内容を表す単一試験情報を取得する単一試験情報取得部と、
前記複数のプログラムの組み合わせに基づいて、前記競合試験において並行して実行されるプログラムのグループを生成し、前記生成されたグループに属するプログラム毎に、前記単一試験情報取得部により取得された単一試験情報を特定し、特定した単一試験情報を統合することにより、前記生成されたグループに属するプログラムの競合試験の内容を表す競合試験情報を生成する競合試験情報生成部と、
を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、並列して実行される複数のプログラムそれぞれの試験内容を表す単一試験情報を統合して、その複数のプログラムの競合試験の内容を表す競合試験情報を生成するため、並行して実行される複数のプログラムの競合試験の効率化を図ることができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係るソフトウェア試験システムの全体構成の一例を示す概略ブロック図である。
【図２】単一試験情報ＤＢに格納されるデータの一例を示す図である。
【図３】単一試験シーケンス情報の一例を示す図である。
【図４】競合試験情報ＤＢに格納されるデータの一例を示す図である。
【図５】ソフトウェア試験装置の制御部の機能構成の一例を示すブロック図
【図６】単一試験情報生成処理のフローチャートの一例である。
【図７】競合試験情報生成処理のフローチャートの一例である。
【図８】競合試験情報生成部による競合させるプログラムのグループの生成方法の一例を説明する図である。
【図９】競合試験情報生成部による競合試験シーケンス情報の生成方法の一例を説明する図である。
【図１０】競合試験実行処理のフローチャートの一例である。
【発明を実施するための形態】
【０００９】
本発明の実施の形態について、図面を参照して詳細に説明する。
【００１０】
図１は、本発明の実施形態に係るソフトウェア試験システム１の全体構成を示す概略ブロック図である。図１に示すように、ソフトウェア試験システム１は、設備機器１００と、設備機器１００と通信可能に接続されるソフトウェア試験装置２００と、から構成される。設備機器１００は、ソフトウェア試験装置２００と、有線又は無線にて通信可能に接続されている。
【００１１】
設備機器１００は、ソフトウェア試験装置２００により試験される対象となる機器である。設備機器１００は、例えば、空調機器、照明機器といった機器である。なお、図１では、１つの設備機器１００を図示しているが、ソフトウェア試験装置２００が試験する対象となる設備機器１００は複数であってもよい。
【００１２】
また、図１に示すように、設備機器１００は、設備機器１００全体を制御する制御部１１０と、制御部１１０の制御のもと駆動する駆動部１２０と、各種データを記憶する記憶部１３０と、外部の装置と通信する通信部１４０と、から構成され、各部はバス１５０により接続されている。
【００１３】
より詳細には、制御部１１０は、例えば、ＣＰＵ（Central Processing Unit）、ＣＰＵが生成したデータを一時的に格納するＲＡＭ（Random Access Memory）、現在時刻を計時するタイマから構成され、設備機器１００の全体の制御を行う。具体的には、制御部１１０は、記憶部１３０に記憶された制御ソフトウェア１３１を実行することにより、駆動部１２０の運転を制御する。また、制御部１１０は、制御ソフトウェア１３１の実行に必要な各種の情報を、通信部１４０を介して、外部から取得してもよい。
【００１４】
駆動部１２０は、制御部１１０による制御のもと、電源（図示せず）から電力の供給を受けて駆動する。駆動部１２０は、例えば、モータ、ＬＥＤ（Light Emitting Diode）といったアクチュエータから構成される。
【００１５】
記憶部１３０は、不揮発性の半導体メモリ等の記録媒体から構成され、設備機器１００の制御に用いられる各種データを記憶する。具体的には、記憶部１３０は、制御ソフトウェア１３１と、通信データ１３２と、内部データ１３３と、を記憶する。
【００１６】
制御ソフトウェア１３１は、設備機器１００の動作を制御するためのソフトウェアである。具体的には、制御ソフトウェア１３１は、複数のプログラムから構成され、制御部１３１は、その複数のプログラムのうち１つを単独で実行することにより、又は、その複数のプログラムのうち２つ以上を並列して実行することにより、設備機器１００の動作を制御する。
【００１７】
通信データ１３２は、設備機器１００を構成する各部同士が通信するデータと、設備機器１００が通信部１４０を介して外部の装置と通信するデータと、の履歴から構成される。より具体的には、通信データ１３２は、例えば、設備機器１００が備える図示しないセンサ（温度センサ、圧力センサ等）の出力値、駆動部１２０への入力値、図示しないリモコンにより入力される設備機器１００の各種設定（運転モード設定、スケジュール設定等）を表すデータ、を含む。また、通信データ１３２は、データ毎に、通信を行った装置を識別するデータ、その通信を行った時刻を表すデータを含む。
【００１８】
内部データ１３３は、制御ソフトウェア１３１中で変数として定義されているデータの履歴から構成される。より具体的には、内部データ１３３は、例えば、制御ソフトウェア１３１を構成するプログラムのレジスタのデータや、メモリのデータを含む。また、内部データ１３２は、データ毎に、そのデータが用いられるプログラムや変数を識別するデータ、そのデータが変化した時刻を表すデータを含む。
【００１９】
通信部１４０は、ソフトウェア試験装置２００や図示しない外部の装置と、無線又は有線による通信を行うためのインターフェースから構成される。
【００２０】
次に、本実施形態に係るソフトウェア試験装置２００の構成について詳細に説明する。
【００２１】
図１に示すように、ソフトウェア試験装置２００は、外部の装置と通信する通信部２１０と、ユーザからの入力を受け付ける入力部２２０と、各種データを表示する表示部２３０と、各種データを記憶する記憶部２４０と、ソフトウェア試験装置２００全体を制御する制御部２５０とを備え、各部はバス２６０により接続されている。
【００２２】
通信部２１０は、設備機器１００と、無線又は有線による通信を行うためのインターフェースから構成される。
【００２３】
入力部２２０は、ボタン、タッチパネル、キーボード等の入力装置から構成される。入力部２２０は、ユーザからの操作入力を受け付け、受け付けた操作入力に対応する操作入力信号を制御部２５０に出力する。
【００２４】
表示部２３０は、ＣＲＴ（Cathode Ray Tube）や液晶ディスプレイ等の表示装置から構成され、制御部２５０から供給される文字や画像等のデータを表示する。
【００２５】
記憶部２４０は、ハードディスクドライブや、フラッシュメモリ、ＳＳＤ（Solid State Drive）のような、書き込み可能な記憶装置から構成される。具体的には、記憶部２４０は、設備機器１００から取得した通信データ１３２及び内部データ１３３を格納する履歴ＤＢ（データベース）２４１と、単一試験情報を格納する単一試験情報ＤＢ２４２と、競合試験情報を格納する競合試験情報ＤＢ２４３と、を記憶する。
【００２６】
より詳細には、履歴ＤＢ２４１は、通信部２１０を介して設備機器１００から取得した通信データ１３２及び内部データ１３３を記憶する。
【００２７】
単一試験情報ＤＢ２４２は、後述する制御部２５０の単一試験情報生成部２５１により生成された単一試験情報を格納する。ここで、単一試験情報は、制御ソフトウェアを構成するプログラム毎に、そのプログラムの試験内容を表す情報である。
【００２８】
図２に、単一試験情報ＤＢ２４２に格納されるデータの一例を示す。図２に示すように、単一試験情報ＤＢ２４２は、単一試験ＩＤと、その単一試験ＩＤにより識別される事前入力情報と、単一試験シーケンス情報と、出力判定情報と、を含む単一試験情報を格納する。
【００２９】
単一試験ＩＤは、１つのプログラムの試験を実行する際の試験項目を識別する情報である。
【００３０】
事前入力情報は、単一試験ＩＤにより識別される試験を実行する前に設備機器１００に入力される情報である。例えば、設備機器１００が空調機器であって、制御ソフトウェア１３１が、冷房運転中に室内温度が予め設定された温度以下になった場合に、冷房運転を停止するという設備機器１００の動作を制御するプログラムを含んでいるとする。このプログラムの試験を実行する場合、実行前に設備機器１００は冷房運転を行っている必要がある。従って、このプログラムの試験に対応する事前入力情報は、設備機器１００に冷房運転を開始するよう指示する通信データ１３２、又は内部データ１３３を含む。
【００３１】
単一試験シーケンス情報は、単一試験ＩＤにより識別される試験において、設備機器１００に入力される入力情報と、その入力情報を設備機器１００に入力するタイミングを表す時刻情報と、を含む。図３は、試験シーケンス情報の一例を表す図である。図３に示す単一試験シーケンス情報では、時刻ｔ＝ｔstartで試験が開始され、時刻ｔ＝ｔendで試験が終了する。また、時刻ｔ＝ｔ1，ｔ2，ｔ3において、それぞれ入力データＤi1，Ｄi2，Ｄi3が設備機器１００に入力される。なお、出力データＤo1，Ｄo2，Ｄo3は、入力データＤi1，Ｄi2，Ｄi3が設備機器１００に入力された結果、設備機器１００から出力されるデータである。ソフトウェア試験装置２００は、これらの出力データＤo1，Ｄo2，Ｄo3を設備機器１００から受信し、試験結果を検証する際に用いる。
【００３２】
出力判定情報は、単一試験ＩＤにより識別される試験を実行することにより設備機器１００から出力される出力情報が正常か否かを判定するための情報である。具体的には、出力判定情報は、単一試験ＩＤにより識別される試験の対象であるプログラムが正常である場合に、その試験を実行することにより設備機器１００から出力される出力情報を含む。ソフトウェア試験装置２００は、設備機器１００からの出力情報と、出力判定情報とを比較することにより、試験の対象であるプログラムが正常か否かを判定する。
【００３３】
図１に戻って、競合試験情報ＤＢ２４３は、後述する制御部２５０の競合試験情報生成部２５２により生成された競合試験情報を格納する。ここで、競合試験情報は、複数のプログラムの競合試験の内容を表す情報である。
【００３４】
図４に、競合試験情報ＤＢ２４３に格納されるデータの一例を示す。図４に示すように、競合試験情報ＤＢ２４３は、競合試験ＩＤと、その競合試験ＩＤにより識別される事前入力情報と、競合試験シーケンス情報と、出力判定情報と、を含む競合試験情報を格納する。競合試験ＩＤは、複数のプログラムの競合試験を実行する際の試験項目を識別する情報である。事前入力情報は、競合試験ＩＤにより識別される試験を実行する前に設備機器１００に入力される情報である。競合試験シーケンス情報は、競合試験ＩＤにより識別される試験において、設備機器１００に入力される入力情報と、その入力情報を設備機器１００に入力するタイミングを表す時刻情報と、を含む。出力判定情報は、競合試験ＩＤにより識別される試験を実行することにより設備機器１００から出力される出力情報が正常か否かを判定するための情報である。競合試験情報に含まれる事前入力情報、競合試験シーケンス情報、及び出力判定情報の詳細については、後述する。
【００３５】
図１に戻って、制御部２５０は、例えば、ＣＰＵ（Central Processing Unit）、ＣＰＵが実行するプログラムを格納するＲＯＭ（Read Only Memory）、ＣＰＵが生成したデータを一時的に格納するＲＡＭ（Random Access Memory）、現在時刻を計時するタイマから構成され、ソフトウェア試験装置２００の全体の制御を行う。
【００３６】
図５は、制御部２５０の機能構成の一例を示すブロック図である。図５に示すように、制御部２５０は、単一試験情報を取得する単一試験情報取得部２５１、競合試験情報を生成する競合試験情報生成部２５２、競合試験を実行する試験実行部２５３、試験実行部２５３により実行された競合試験の結果を検証する試験結果検証部２５４、として機能する。
【００３７】
単一試験情報取得部２５１は、制御ソフトウェア１３１を構成する複数のプログラム毎に、単一試験情報を取得する。具体的には、単一試験情報取得部２５１は、通信部２１０を介して、設備機器１００から通信データ１３２及び内部データ１３３を取得し、履歴ＤＢ２４１に格納する。そして、単一試験情報取得部２５１は、履歴ＤＢ２４１に格納された通信データ１３２及び内部データ１３３に基づいて、単一試験情報を生成し、単一試験情報ＤＢ２４２に格納する。例えば、単一試験情報取得部２５１は、履歴ＤＢ２４１に格納されたデータを、単一試験情報ＤＢ２４２に対応付けるテーブルを有し、そのテーブルに基づいて、履歴ＤＢ２４１に格納されたデータから単一試験情報を生成する。
【００３８】
競合試験情報生成部２５２は、単一試験情報ＤＢ２４２に格納された単一試験情報に基づいて、競合試験情報を生成する。具体的には、競合試験情報生成部２５２は、制御ソフトウェア１３１に含まれる複数のプログラムの組み合わせに基づいて、競合試験において並行して実行されるプログラムのグループを生成する。そして、競合試験情報生成部２５２は、生成されたグループに属するプログラム毎に、単一試験情報ＤＢ２４２に格納された単一試験情報を特定する。そして、競合試験情報生成部２５２は、特定した単一試験情報を統合することにより、生成されたグループに属するプログラムの競合試験の内容を表す競合試験情報を生成し、競合試験情報ＤＢ２４３に格納する。
【００３９】
試験実行部２５３は、競合試験情報ＤＢ２４３に格納された競合試験情報に基づいて、複数のプログラムの競合試験を実行する。具体的には、試験実行部２５３は、機競合試験情報ＤＢ２４３に格納されている事前入力情報を設備機器１００に通信部２１０を介して入力する。次に、試験実行部２５３は、競合試験シーケンス情報に基づいて、競合試験情報に含まれる入力情報を、その入力情報に対応する時刻情報が表すタイミングで設備機器１００に通信部２１０を介して入力する。
【００４０】
試験結果検証部２５４は、試験実行部２５３が実行した競合試験の結果を検証する。具体的には、試験結果検証部２５４は、競合試験情報に基づいて競合試験を実行することにより設備機器１００から出力された出力情報を、その競合試験情報に含まれる出力判定情報と比較することにより、競合試験の対象であるプログラムが正常か否かを判定する。
【００４１】
次に、本実施形態に係るソフトウェア試験装置２００の動作について説明する。
【００４２】
まず、ソフトウェア試験装置２００の制御部２５０が実行する単一試験情報生成処理について説明する。単一試験情報生成処理は、例えば制御部２５０のＣＰＵがＲＯＭに記憶されたプログラムを読み込むことにより実行される。
【００４３】
図６は、ソフトウェア試験装置２００の制御部２５０が実行する単一試験情報生成処理のフローチャートの一例である。単一試験情報生成処理は、例えば、ユーザにより、入力部２２０を介して処理の実行開始を示す操作入力が入力されたことを契機として開始する。
【００４４】
単一試験情報取得部２５１は、通信部２１０を介して、設備機器１００から通信データ１３２及び内部データ１３３を取得する（ステップＳ１１）。そして、単一試験情報取得部２５１は、取得したデータを、履歴ＤＢ２４１に格納する。
【００４５】
単一試験情報取得部２５１は、履歴ＤＢ２４１に格納された通信データ１３２及び内部データ１３３に基づいて、単一試験情報を生成する（ステップＳ１２）。そして、単一試験情報取得部２５１は、生成した単一試験情報を、単一試験情報ＤＢ２４２に格納する。そして、単一試験情報生成処理を終了する。
【００４６】
次に、ソフトウェア試験装置２００の制御部２５０が実行する競合試験情報生成処理について説明する。競合試験情報生成処理は、例えば制御部２５０のＣＰＵがＲＯＭに記憶されたプログラムを読み込むことにより実行される。
【００４７】
図７は、ソフトウェア試験装置２００の制御部２５０が実行する競合試験情報生成処理のフローチャートの一例である。競合試験情報生成処理は、例えば、ユーザにより、入力部２２０を介して処理の実行開始を示す操作入力が入力されたことを契機として開始する。
【００４８】
まず、競合試験情報生成部２５２は、制御ソフトウェア１３１を構成するプログラムの組合せに基づいて、競合試験において並行して実行されるプログラムのグループを生成する（ステップＳ２１）。
【００４９】
ここで、競合試験情報生成部２５２による競合させるプログラムのグループの生成方法の一例について、図８を用いて説明する。図８において、制御ソフトウェア１３１は、プログラムＰ1〜Ｐ3を含む複数のプログラムから構成されている。競合試験情報生成部２５２は、制御ソフトウェア１３１を構成する複数のプログラムの組合せに基づいて、グループＧ1〜Ｇ4といった、競合させるプログラムのグループを生成する。例えば、グループＧ1には、プログラムＰ1とプログラムＰ2とが属している。従って、グループＧ1に対応する競合試験では、プログラムＰ1とプログラムＰ2を競合させる。
【００５０】
次に、競合試験情報生成部２５２は、ステップＳ２１において生成したグループ毎に、そのグループに属するプログラムに対応する単一試験情報を単一試験情報ＤＢ２４２から取得する（ステップＳ２２）。
【００５１】
次に、競合試験情報生成部２５２は、グループ毎に、ステップＳ２２において取得した単一試験情報に含まれる事前入力情報を統合して、そのグループに対応する競合試験で用いる事前入力情報を生成する（ステップＳ２３）。そして、競合試験情報生成部２５２は、生成した事前入力情報を競合試験情報ＤＢ２４３に格納する。
【００５２】
例えば、プログラムＰ1に対応する単一試験情報に含まれる事前入力情報がＡ1、プログラムＰ2に対応する単一試験情報に含まれる事前入力情報がＡ2である場合、グループＧ1に対応する競合試験において用いられる事前入力情報は、Ａ1及びＡ2である。
【００５３】
次に、競合試験情報生成部２５２は、グループ毎に、ステップＳ２２において取得した単一試験情報に含まれる出力判定情報を統合して、そのグループに対応する競合試験で用いる出力判定情報を生成する（ステップＳ２４）。そして、競合試験情報生成部２５２は、生成した出力判定情報を競合試験情報ＤＢ２４３に格納する。
【００５４】
例えば、プログラムＰ1に対応する単一試験情報に含まれる出力判定情報がＢ1、プログラムＰ2に対応する単一試験情報に含まれる事前入力情報Ｂ2である場合、グループＧ1に対応する競合試験において用いられる出力判定情報は、Ｂ1及びＢ2である。
【００５５】
次に、競合試験情報生成部２５２は、グループ毎に、ステップＳ２２において取得した単一試験情報に含まれる単一試験シーケンス情報を統合して、そのグループに対応する競合試験で用いる競合試験シーケンス情報を生成する（ステップＳ２５）。そして、競合試験情報生成部２５２は、生成した競合試験シーケンス情報を競合試験情報ＤＢ２４３に格納する。そして、競合試験情報生成処理を終了する。
【００５６】
ここで、競合試験情報生成部２５２による競合試験シーケンス情報の生成方法の一例について、図９を用いて説明する。図９に示す例では、グループＧ1に属するプログラムＰ1及びプログラムＰ2の競合試験で用いる競合試験シーケンス情報の生成について説明する。プログラムＰ1に対応する単一試験情報及びプログラムＰ2に対応する単一試験情報は、それぞれ図９に示す単一試験シーケンスＳa1及び単一試験シーケンスＳa2を含む。このとき、競合試験情報生成部２５２は、単一試験シーケンスＳa1に含まれる入力データＤ11〜Ｄ13、及び、単一試験シーケンスＳa2に含まれる入力データＤ21〜Ｄ23について、それらの入力データが設備機器１００に入力される順序及びタイミングのうち少なくともいずれか一方がそれぞれ異なる複数の競合試験シーケンス情報を生成する。図９では、競合試験情報生成部２５２が、単一試験シーケンスＳa1及び単一試験シーケンスＳa2に基づいて生成した、２つのパターンの競合試験シーケンス情報Ｓb1，Ｓb2を例として図示している。
【００５７】
次に、ソフトウェア試験装置２００の制御部２５０が実行する競合試験実行処理について説明する。競合試験実行処理は、例えば制御部２５０のＣＰＵがＲＯＭに記憶されたプログラムを読み込むことにより実行される。
【００５８】
図１０は、ソフトウェア試験装置２００の制御部２５０が実行する競合試験実行処理のフローチャートの一例である。競合試験実行処理は、例えば、ユーザにより、入力部２２０を介して処理の実行開始を示す操作入力が入力されたことを契機として開始する。
【００５９】
まず、試験実行部２５３は、競合試験情報ＤＢ２４３から、競合試験を実行する対象となる競合試験情報を取得する（ステップＳ３０１）。なお、競合試験を実行する対象となる競合試験情報は、例えば、入力部２２０を介してユーザにより選択される。
【００６０】
次に、試験実行部２５３は、ステップＳ３０１において取得された競合試験情報に含まれる事前入力情報を設備機器１００に出力する（ステップＳ３０２）。
【００６１】
次に、試験実行部２５３は、ステップＳ３０１において取得された競合試験情報に含まれる競合試験シーケンス情報に基づいて、競合試験を開始する（ステップＳ３０３）。
【００６２】
次に、試験実行部２５３は、設備機器１００から出力情報を受信したか否かを判定する（ステップＳ３０４）。設備機器１００から出力情報を受信したと判定した場合（ステップＳ３０４；Ｙｅｓ）、試験実行部２５３は、その受信した出力情報を例えばＲＡＭに記録する（ステップＳ３０５）。
【００６３】
設備機器１００から出力情報を受信していないと判定した場合（ステップＳ３０４；Ｎｏ）、試験実行部２５３は、ステップＳ３０１において取得された競合試験情報に含まれる競合試験シーケンス情報のうち、設備機器１００に出力していない入力情報があるか否かを判定する（ステップＳ３０６）。
【００６４】
設備機器１００に出力していない入力情報があると判定した場合（ステップＳ３０６；Ｙｅｓ）、その入力情報に対応する時刻情報に基づいて、その入力情報を設備機器１００に出力する時刻になったか否かを判定する（ステップＳ３０７）。入力情報を設備機器１００に出力する時刻になっていないと判定した場合（ステップＳ３０７；Ｎｏ）、処理をステップＳ３０４に戻す。
【００６５】
入力情報を設備機器１００に出力する時刻になったと判定した場合（ステップＳ３０７；Ｙｅｓ）、試験実行部２５３は、その入力情報を設備機器１００に出力する（ステップＳ３０８）。そして、処理をステップＳ３０４に戻す。
【００６６】
設備機器１００に出力していない入力情報がないと判定した場合（ステップＳ３０６；Ｎｏ）、試験実行部２５３は、競合試験を終了する。そして、試験結果検証部２５４は、ステップＳ３０１において取得された競合試験情報に含まれる出力判定情報と、ステップＳ３０５において記録された出力情報と、に基づいて試験結果を検証する（ステップＳ３０９）。
【００６７】
そして、試験結果検証部２５４は、ステップＳ３０９における検証結果を表示部２３０に表示する（ステップＳ３１０）。そして、競合試験実行処理を終了する。
【００６８】
以上説明したように、本実施形態のソフトウェア試験装置２００は、まず、並列して実行される複数のプログラムそれぞれの試験内容を表す単一試験情報を取得する。そして、取得した単一試験情報を統合して、その複数のプログラムの競合試験の内容を表す競合試験情報を生成するため、並行して実行される複数のプログラムの競合試験の効率化を図ることができる。
【００６９】
以上、本発明の実施形態について説明したが、本発明は本実施形態によって限定されるものではない。
【００７０】
例えば、上記の実施形態において、単一試験情報生成部２５１は、履歴ＤＢ２４１に格納された通信データ及び内部データに基づいて、単一試験情報を生成したが、単一試験情報の生成方法は、これに限られない。例えば、単一試験情報の一部又は全部の情報を、ユーザが、例えば入力部２２０を介して、入力してもよい。
【００７１】
また、競合試験情報生成部２５２は、競合試験情報を生成する際、入力情報を設備機器１００に入力する順序及びタイミングのうち少なくともいずれか一方を制約する制約条件を満たすように、競合試験情報を生成してもよい。このような制約条件は、例えば、予めユーザにより入力部２２０を介して入力され、記憶部に２４０に記憶されていてもよい。
【００７２】
また、上記の実施形態において、設備機器１００は、通信データ１３２と内部データ１３３の両方を記憶するが、いずれか一方でもよい。この場合、ソフトウェア試験装置２００は、設備機器１００に記憶された、通信データ１３２と内部データ１３３のいずれか一方のデータを用いて、競合試験情報を生成し、競合試験を実行できる。
【００７３】
また、上記の実施形態において、ソフトウェア試験装置２００は、設備機器１００を試験対象としているが、設備機器シミュレータを試験対象としてもよい。
【００７４】
なお、上記実施の形態において、ソフトウェア試験装置２００が実行するプログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto-Optical Disk）等のコンピュータ読み取り可能な記録媒体に格納されて配布されてもよい。そして、そのプログラムがパーソナルコンピュータ等の情報処理装置にインストールされることにより、上述の処理を実行する各装置が構成されてもよい。
【００７５】
また、プログラムは、インターネット等の通信ネットワーク上の所定のサーバ装置が有するディスク装置等に格納されてもよい。そして、プログラムは、例えば、搬送波に重畳されて、ダウンロードされてもように構成されてもよい。
【００７６】
また、上述の機能を、ＯＳ（Operating System）が分担して実現する場合又はＯＳとアプリケーションとの協働により実現する場合、ＯＳの機能を実現する部分以外のプログラムのみが、記録媒体に格納されて配布されてもよく、また、ダウンロードされてもよい。
【００７７】
本発明は、本発明の広義の精神と範囲に逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施の形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【産業上の利用可能性】
【００７８】
本発明は、複数のプログラムのうち少なくともいずれか２つ以上のプログラムを並行して実行する設備機器において、並行して実行される該プログラムの競合試験を実行するソフトウェア試験システムに適する。
【符号の説明】
【００７９】
１  ソフトウェア試験システム、１００  設備機器、１１０  制御部、１２０  駆動部、１３０  記憶部、１３１  制御ソフトウェア、１３２  通信データ、１３３  内部データ、１４０  通信部、１５０  バス、２００  ソフトウェア試験装置、２１０  通信部、２２０  入力部、２３０  表示部、２４０  記憶部、２４１  履歴ＤＢ、２４２  単一試験情報ＤＢ、２４３  競合試験情報ＤＢ、２５０  制御部、２５１  単一試験情報取得部、２５２  競合試験情報生成部、２５３  試験実行部、２５４  試験結果検証部、２６０  バス
【図１】
0005980420.tif 000002
【図２】
0005980420.tif 000003
【図３】
0005980420.tif 000004
【図４】
0005980420.tif 000005
【図５】
0005980420.tif 000006
【図６】
0005980420.tif 000007
【図７】
0005980420.tif 000008
【図８】
0005980420.tif 000009
【図９】
0005980420.tif 000010
【図１０】
0005980420.tif 000011