(57)【要約】      （修正有）【課題】ソフトウェアの開発、変更、および修正等に際して必要なソフトウェアテストを自動化して迅速かつ確実に実施する。【解決手段】システム全体を制御するためのサーバ１０は、テストスクリプトファイル１０１、テストプロジェクトファイル１０２、クライアント情報ファイル１０３、テスト結果ファイル１０４、およびテスト予約ファイル１０５のそれぞれを含む記憶装置１００と、操作記録部１０６と、データ編集部１０７と、再生指示部１０８と、情報送受信部１０９と、結果確認部１１０と、スケジュール予約部１１１と、起動部１１２と、を包含する。サーバ１０と、ネットワーク３０を介して連携される各クライアント装置２０−１、・・・２０−ｎは、情報送受信部２００、テスト再生部２０１、テストスクリプト２０２、情報取得部２０３、およびクライアント内においてテスト対象となるプログラム３００と、を包含するように構成される。【選択図】図１
2011128940.tif 000002
【特許請求の範囲】
【請求項１】
システム全体を制御するためのサーバと、ネットワークを介して連携される複数の被制御クライアント装置群とから成るコンピュータシステムに対するソフトウェアテスト自動化システムおいて、
前記サーバは、テストスクリプトファイル（ＴＳＦ）、テストプロジェクトファイル（ＴＰＦ）、クライアント情報ファイル、テスト結果ファイル、およびテスト予約ファイルのそれぞれを含む記憶装置と、操作記録部と、データ編集部と、再生指示部と、情報送受信部と、結果確認部と、スケジュール予約部と、起動部と、を包含し、
前記クライアント装置群のそれぞれは、情報送受信部と、テスト再生部と、テストスクリプトと、情報取得部と、およびクライアント内においてテスト対象となるテスト対象プログラムと、を包含する、ことを特徴とするソフトウェアテスト自動化システム。
【請求項２】
サーバの情報送受信部が前記ネットワークに相互接続されており、各クライアント装置群それぞれの情報送受信部に対して前記ネットワークに対し適時連携可能に構成される、ことを特徴とする請求項１に記載のソフトウェアテスト自動化システム。
【請求項３】
サーバの起動部がサーバと各クライアント装置群それぞれの起動および停止を制御し、または前記サーバのスケジュール予約部に予め設定されたタイミングに応じて制御可能に構成された、ことを特徴とする請求項１または２のいずれかに記載のソフトウェアテスト自動化システム。
【請求項４】
サーバの保有するテストプロジェクトファイル（ＴＰＦ）、テストスクリプトファイル（ＴＳＦ）、クライアント情報ファイルから、テストプロジェクト、テストスクリプト、クライアント情報を読み出してデータ編集部においてそれらの情報の編集を行い；
前記データ編集部において編集され保持されているテストプロジェクト、テストスクリプト、クライアント情報を分析してテスト実行の指示を再生指示部において行ない；
クライアント情報ファイルに記録されているクライアントに対して、テストプロジェクトファイル（ＴＰＦ）に記録されているテスト実行順番で、サーバ側の情報送受信部からテストスクリプトを送信し；
各クライアントは上記サーバ側の情報送受信部からテストスクリプトを受取って、これら内容をメモリ上に展開し；
クライアントにおけるテストスクリプトをテスト再生部において実行することにより、テストを実施しようとするテスト対象プログラムに所要の操作を加え；
情報取得部は、テスト対象プログラムを操作した結果や期待値の比較結果など当該時点において取得する各種情報を収集し；
上記過程において収集された情報をクライアント側の情報送受信部からサーバに対して送信し；
前記サーバ側の情報送受信部は前記クライアント側の情報送受信部から送信された各種情報を受信してサーバ内の結果確認部に記録し；
そして、サーバにおけるテストプロジェクトファイル（ＴＰＦ）、テストスクリプトファイル（ＴＳＦ）、クライアント情報ファイルにおける記述内容の全てが完了するまで、上記処理を繰り返し、処理完了後サーバ側の情報送受信部および対応するクライアント側の情報送受信部を介してテスト結果を表示すると共にサーバのテスト結果ファイルに保存する；ことを特徴とするソフトウェアテスト自動化方法。
【請求項５】
サーバにおける再生指示部ならびに情報送受信部を協働せしめることにより、複数のクライアントにおけるソフトウェアテストを順次実行するために、サーバ内の再生指示部から情報送受信部に対して対応するクライアントに適用されるテストスクリプトの送信を指示し；上記サーバ側の情報送受信部はクライアント側の対応する情報送受信部に対してテストスクリプトを送信し；該サーバ側の情報送受信部から送信されたテストスクリプトを受信した自クライアント内のテスト再生部は所要処理を実行し、処理結果を自クライアント側の情報送受信部ならびにサーバ側の情報送受信部を介してサーバ内の再生指示部に結果を報知し、次いで異なる処理対象のクライアントの対応部位との間で上記処理を順次繰り返す、ことを特徴とする請求項４に記載のソフトウェアテスト自動化方法。
【請求項６】
サーバにおける再生指示部ならびに情報送受信部を協働せしめ、さらに複数のクライアントにおける情報送受信部に対してテストスクリプトを重復して送信し、各クライアント内のそれぞれのテスト再生部において並列的に所要処理が実行される、ことを特徴とする請求項４または５のいずれかに記載のソフトウェアテスト自動化方法。
【請求項７】
複数のクライアントに対するソフトウェアテストの実行中にクライアントが再起動された状況下において、引き続きソフトウェアテストを継続実行するために、サーバのデータ編集部は、対象クライアントの再起動が完了して通信可能となるまで待機し、当該クライアントの情報送受信部と通信可能となった後に待機中の機能を再開せしめ、所要処理ステップを順次実行するように構成された、ことを特徴とする請求項４ないし６のいずれかに記載のソフトウェアテスト自動化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各種コンピュータシステムを作動させ、その後にも最適状態を維持するために、「ソフトウェアテスト」を迅速かつ確実に実行するためのソフトウェアテスト自動化システム及びソフトウェアテスト自動化方法に関する。
【０００２】
ここにいうソフトウェアテストは、ソフトウェア開発段階における品質の評価、障害確認、環境構築などのために重要な作業である。さらに、既存のシステムに対してソフトウェアの品質維持のためのソフトウェア変更・修正が必要となることがあり、遠隔地に設置された複数のクライアントに対し各種ネットワークを介して逐次実施する必要があることも考慮しなければならない。
【背景技術】
【０００３】
近年、工鉱業、商業、流通、エネルギー、情報、運輸、教育、開発等あらゆる分野の管理、運営、制御等に関して規模の大小はあるもののコンピュータシステムが必須となっている。このようなコンピュータシステムは、それぞれの分野における神経系として機能しており、一旦障害や不調が発生すると対応分野の制御系が麻痺してしまう可能性がある。このような事態を回避するために、ソフトウェア開発に当たっては適用分野における過去・現在そして未来に向けて実績・可能性等を考慮して可能な限り適切なシステムを構築する必要がある。
【０００４】
さらに、その後における周辺事情の変化や運用状況に応じてソフトウェアの変更、修正、改変等を伴うメンテナンスが適時に実施されなければならない。すなわち、ソフトウェア開発時はもとより、その後の変更、修正、改変等に伴うソフトウェアテストが自動的にかつ正確に実行されることが望まれる。
【０００５】
コンピュータのプログラムをテストするための先行技術として、特許文献１は、ＧＵＩ（Ｇｒａｐｈｉｃ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）による対話型プログラムのテストの効率化を図り、さらにエラー発生要因の把握の容易化を実現するためのプログラムテスト支援装置及びかかるプログラムテスト支援プログラムを記録した記憶媒体を開示している。
【０００６】
この場合のプログラムテスト支援装置は、被テストプログラムに関連するオペレータの操作手順データを記録しておき、この操作手順データから入力操作の入力項目を抽出してそれぞれの入力項目毎に入力値を設定する手段を設けておき、これら入力値の組み合わせから複数のテストケースを自動生成する手段、各テストケース毎の新しい操作手順データを作成してテストしようとするプログラムのテストを実施する手段、各テストケース毎にテスト結果を評価して、この評価結果に応じて各入力値を強調表示し、また失敗の要因となっている入力値を抽出する手段を設けることを開示している。さらに、かかるプログラムテスト支援プログラムを記録した記録媒体についても言及している。
【０００７】
特許文献２は、ウィンドウズＧＵＩおよびウェブＧＵＩの操作記録再生機能の２系統を実装し、操作対象によって両機能の記録再生状態を切替えて利便性を十分に発揮させるＧＵＩテスト支援システムを開示している。このシステムは、ＯＳ、テスト対象のウィンドウズＧＵＩを有するアプリケーションプログラム、アプリケーションプログラムのテストをオブジェクト記述方式で実行するテスト実行ツール、このテスト実行ツールで得られたテストスクリプトを格納する記憶装置を備えている。
【０００８】
また、この場合のテスト実行ツールは、ウィンドウズＧＵＩおよびウェブＧＵＩの操作経緯をそれぞれスクリプトとして個別に格納するＧＵＩ操作記録部と、個別のスクリプトを合体して格納したスクリプトを用いてウィンドウズＧＵＩ操作再生部と、を備えている。さらにかかる構成を有するシステムを作動させるためのテスト支援用アプリケーションプログラムについても開示している。
【０００９】
上記各特許文献で開示されている解決手段にあっては、以下のような問題点がある。
（１）複数の機器間においてそれぞれに連携したテストの実行が困難である。
（２）テスト進行中にいずれかのテスト対象機器が再起動されると、これに伴ってテストプログラムも停止してしまう。そのため、停止中のテスト状況や既に得られたテスト結果が保存されず消去されてしまう。
（３）機器類のテスト実行態様を、当該機器類にとって都合の良い任意の時間帯に設定し、そのテストが自動的に実行されるようなスケジュール予約を行うことができない。
（４）動作環境の相違する複数の機器類の情報の差異や当該機器におけるテスト前後の情報を対比することが困難である。
（５）複数の機器間で連携してテストを行う場合、被テスト機器の性能に応じてテスト機器の負荷が異なることがある。そのため、テスト効率を最大化することができなかった。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０００−１１２７８４号公報
【００１１】
【特許文献２】特開２００８−４０５３７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明は、上述のような問題点を解消しつつ、複数のクライアントを単一のサーバによって制御するように構成されたコンピュータシステムにおいて、ソフトウェアの開発段階をはじめ、その後システム内外の諸事情に基づく変化や運用状況に合わせて適時にソフトウェアの変更、修正、改変等を伴う各クライアントにおけるソフトウェアテストを自動的に実施するためのソフトウェアテスト自動化システム及びかかるソフトウェアテストを自動的に実行するためのソフトウェアテスト自動化方法を提供することを課題とする。
【課題を解決するための手段】
【００１３】
請求項１に記載の発明は、システム全体を制御するためのサーバ１０と、ネットワーク３０を介して連携される複数の被制御クライアント装置群２０−１、２０−２、・・・２０−ｎとから成るコンピュータシステムに対するソフトウェアテスト自動化システムおいて、前記サーバ１０は、テストスクリプトファイル（ＴＳＦ）１０１、テストプロジェクトファイル（ＴＰＦ）１０２、クライアント情報ファイル１０３、テスト結果ファイル１０４、およびテスト予約ファイル１０５のそれぞれを含む記憶装置１００と、操作記録部１０６と、データ編集部１０７と、再生指示部１０８と、情報送受信部１０９と、結果確認部１１０と、スケジュール予約部１１１と、起動部１１２と、を包含し、前記クライアント装置群２０−１、２０−２、・・・２０−ｎのそれぞれは、情報送受信部２００と、テスト再生部２０１と、テストスクリプト２０２と、情報取得部２０３と、およびクライアント内においてテスト対象となるテスト対象プログラム３００と、を包含するソフトウェアテスト自動化システムであることを特徴とする。
【００１４】
請求項２に記載の発明は、サーバ１０の情報送受信部１０９が前記ネットワーク３０に相互接続されており、各クライアント装置群２０−１、２０−２、・・・２０−ｎそれぞれの情報送受信部２００に対して前記ネットワークに対し適時連携可能に構成されるソフトウェアテスト自動化システムであることを特徴とする。
【００１５】
請求項３に記載の発明は、サーバ１０の起動部１１２がサーバ１０と各クライアント装置群２０−１、２０−２、・・・２０−ｎそれぞれの起動および停止を制御し、または前記サーバ１０のスケジュール予約部１１１に予め設定されたタイミングに応じて制御可能に構成されたソフトウェアテスト自動化システムであることを特徴とする。
【００１６】
請求項４に記載の発明は、サーバ１０の保有するテストプロジェクトファイル（ＴＰＦ）１０２、テストスクリプトファイル（ＴＳＦ）１０１、クライアント情報ファイル１０３から、テストプロジェクト、テストスクリプト、クライアント情報を読み出してデータ編集部１０７においてそれらの情報の編集を行い；前記データ編集部１０７において編集され保持されているテストプロジェクト、テストスクリプト、クライアント情報を分析してテスト実行の指示を再生指示部１０８において行ない；クライアント情報ファイル１０３に記録されているクライアント２０に対して、テストプロジェクトファイル（ＴＰＦ）１０２に記録されているテスト実行順番で、サーバ側の情報送受信部１０９からテストスクリプトを送信し；各クライアント２０は上記サーバ側の情報送受信部１０９からテストスクリプトを受取って、これら内容をメモリ上に展開し；クライアント２０におけるテストスクリプトをテスト再生部２０１において実行することにより、テストを実施しようとするテスト対象プログラム３００に所要の操作を加え；情報取得部２０３は、テスト対象プログラム３００を操作した結果や期待値の比較結果など、当該時点において取得する各種情報を収集し；上記過程において収集された情報をクライアント側の情報送受信部２００からサーバ１０に対して送信し；前記サーバ側の情報送受信部１０９は前記クライアント側の情報送受信部２００から送信された各種情報を受信してサーバ１０内の結果確認部１１０に記録し；そして、サーバ１０におけるテストプロジェクトファイル（ＴＰＦ）１０２、テストスクリプトファイル（ＴＳＦ）１０１、クライアント情報ファイル１０３における記述内容の全てが完了するまで、上記処理を繰り返し、処理完了後サーバ側の情報送受信部１０９および対応するクライアント側の情報送受信部２００を介してテスト結果を表示すると共にサーバ１０のテスト結果ファイル１０４に保存するソフトウェアテスト自動化方法であることを特徴とする。
【００１７】
請求項５に記載の発明は、サーバ１０における再生指示部１０８ならびに情報送受信部１０９を協働せしめることにより、複数のクライアントにおけるソフトウェアテストを順次実行するために、サーバ内の再生指示部１０８から情報送受信部１０９に対して対応するクライアントに適用されるテストスクリプト２０２の送信を指示し；上記サーバ側の情報送受信部１０９はクライアント側の対応する情報送受信部２００に対してテストスクリプト２０２を送信し；該サーバ側の情報送受信部１０９から送信されたテストスクリプトを受信した自クライアント内のテスト再生部２０１は所要処理を実行し、処理結果を自クライアント側の情報送受信部２００ならびにサーバ側の情報送受信部１０９を介してサーバ内の再生指示部１０８に結果を報知し、次いで異なる処理対象のクライアントの対応部位との間で上記処理を順次繰り返すソフトウェアテスト自動化方法であることを特徴とする。
【００１８】
請求項６に記載の発明は、サーバ１０における再生指示部１０８ならびに情報送受信部１０９を協働せしめ、さらに複数のクライアントにおける情報送受信部２００に対してテストスクリプトを重復して送信し、各クライアント内のそれぞれのテスト再生部２０１において並列的に所要処理が実行されるソフトウェアテスト自動化方法であることを特徴とする。
【００１９】
請求項７に記載の発明は、複数のクライアントに対するソフトウェアテストの実行中にクライアントが再起動された状況下において、引き続きソフトウェアテストを継続実行するために、サーバ１０のデータ編集部１０７は、対象クライアントの再起動が完了して通信可能となるまで待機し、当該クライアントの情報送受信部２００と通信可能となった後に待機中の機能を再開せしめ、所要処理ステップを順次実行するように構成されたソフトウェアテスト自動化方法であることを特徴とする。
【発明の効果】
【００２０】
以上のような構成ならびに動作を実行するソフトウェアテスト自動化システム及びソフトウェアテスト自動化方法によれば、サーバ側から複数のクライアントに対するソフトウェアテストが自動的に実行可能であり、以下のような特徴が得られる。
（１）各クライアントに対してクライアントそれぞれの稼動状態、入−切、交信の可否等の諸事情を考慮したソフトウェアテストが実行可能となる。
（２）複数のクライアントに対して任意のタイミングでソフトウェアテストが可能となる。したがって、それぞれの使用環境に合わせて、同時実行、連続実行、間歇的実行などが選択可能となる。
（３）クライアントを再起動させた後であっても、引き続きソフトウェアテストが実行可能である。
（４）各クライアントの情報をサーバ側において任意のタイミングにより取得可能である。
（５）テストスクリプトをクライアント毎にコンパイルすることにより、どのクライアントに対しても実行可能である。
（６）それぞれのクライアントの負荷状態が確認可能であり、空いているクライアントマシンを選んで、ソフトウェアテストが実行可能である。
（７）ソフトウェアテストの実行開始時間を、任意に設定可能である。
【図面の簡単な説明】
【００２１】
【図１】本発明に係るソフトウェアテスト自動化システムのブロック図である。
【図２】複数のクライアントに対してソフトウェアテストを実行するフロー図である。
【図３】２台のクライアントに対しソフトウェアテストを順次実行するシーケンス図である。
【図４】２台のクライアントに対しソフトウェアテストを同時実行するシーケンス図である。
【図５】クライアントの再起動後、ソフトウェアテストを引き続き実行するフロー図である。
【図６】ソフトウェアテスト実行のスケジュール予約を行う際のフロー図である。
【図７】クライアント機器から任意のタイミングで各種情報を取得及び保存する際のフロー図である。
【図８】クライアントの負荷分散に関するフロー図である。
【図９】複数クライアントにおいて負荷分散する際のシーケンス図である。
【発明を実施するための形態】
【００２２】
以下、本発明に係るソフトウェアテスト自動化システム及びソフトウェアテスト自動化方法に関する実施の形態について開示する。図１は、本発明を実施するためのコンピュータシステムを模式的に図示したブロック図であり、サーバ１０と、ネットワーク３０を介して接続された複数のクライアント群２０−１、２０−２、・・・２０−ｎから構成されている。サーバは本発明において実施するソフトウェアテストの管理装置であり、クライアントは当該テストを実行する対象装置である。
【００２３】
サーバ１０は、目的とする処理の種類、容量、規模等により構成が異なる可能性はあるものの、一般的に記憶装置１００、操作記録部１０６、データ編集部１０７、再生指示部１０８、サーバ側の情報送受信部１０９、結果確認部１１０、スケジュール予約部１１１、起動部１１２等から構成される。なお、記憶装置１００は、例えば、テストスクリプトファイル（「ＴＳＦ」と略記することがある）１０１、テストプロジェクトファイル（「ＴＰＦ」と略記することがある）１０２、クライアント情報ファイル１０３、テスト結果ファイル１０４、テスト予約ファイル１０５等を包含するものとする。
【００２４】
テストスクリプトファイル（ＴＳＦ）１０１はテストの手順や情報の取得内容を記述したテストスクリプトを記録して保存するもの、テストプロジェクトファイル（ＴＰＦ）１０２はテストスクリプトの実行順番や繰り返し回数等を記述したテストプロジェクトを記録して保存するもの、クライアント情報ファイル１０３はテスト対象となるクライアントのマシン名やマシンアドレス等の情報を記述したクライアント情報を記録して保存するもの、テスト結果ファイル１０４はテスト実行結果や取得した各種情報を記録して保存するもの、テスト予約ファイル１０５はテスト実行の予約日時等を記録して保存するものである。
【００２５】
操作記録部１０６はテストの操作手順を記録するもの、データ編集部１０７はテストスクリプト、テストプロジェクト、クライアント情報を編集するもの、再生指示部１０８はテストスクリプト、テストプロジェクト、クライアント情報を分析再生してテスト実行の指示を行なうもの、情報送受信部１０９はテストスクリプト、テストプロジェクトをクライアントに対し送信し、クライアント側からテスト結果や各種情報を受信するもの、結果確認部１１０は実行して得たテスト結果や各種情報を表示・確認するもの、スケジュール予約部１１１はテスト実行の日時を予約するもの、起動部１１２は予約された日時にソフトウェアテストを起動させるものである。
【００２６】
クライアント２０は、例えば、クライアント側の情報送受信部２００、テスト再生部２０１、テストスクリプト２０２、情報取得部２０３等から構成され、必然的に該クライアントに対して所望の機能を発揮せしめるためのプログラムを保有している。これは、本発明においてテストの対象となるクライアントを作動させるソフトウェアであるテスト対象プログラム３００として示している。なお、このようなクライアントは、２０−１、２０−２、・・・２０−ｎのように複数台接続され、容量的ないし機能的には個々に異なることもあり得るが、テスト対象プログラム３００は、本発明に係るソフトウェアテスト自動化システムにより自動的に機能チェック、修正、改変、置換等を含むソフトウェアテストが実行可能である。
【００２７】
ネットワーク３０はケーブル類による有線ネットワーク方式をはじめ、種々の無線媒体を利用するワイヤレス方式等、所望の機能を発揮するものであれば足り、任意である。いずれの場合にあっても、サーバ１０および各クライアント２０−１、２０−２、・・・２０−ｎ間の連携はそれぞれのネットワーク様式に適合せしめられる。なお、クライアントがサーバに同居しているような構成であっても、情報送受信部による情報の送受によって本発明に係るソフトウェアテスト自動化システム及び自動化方法は適用可能である。
【００２８】
図２は、サーバ１０から複数のクライアント２０−１、２０−２、・・・２０−ｎに対してソフトウェアテストを自動的に実行する際のフロー図である。サーバ１０では、自動テストを行うためのテストプロジェクトファイル（ＴＰＦ）１０２、テストスクリプトファイル（ＴＳＦ）１０１、クライアント情報ファイル１０３から、テストプロジェクト、テストスクリプト、クライアント情報をデータ編集部１０７に読み込む（ステップＡ１０１）。この際、テストの実行効率を向上させる等の観点から必要であればそれらの情報の所要の編集を実行しておくことができる（ステップＡ１０２）。その後、再生指示部１０８は、前記データ編集部１０７において編集され保持されているテストプロジェクト、テストスクリプト、クライアント情報を分析して所要処理を実行する（ステップＡ１０３）。
【００２９】
再生指示部１０８は情報送受信部１０９に対しクライアントに向けてテストスクリプトを送信する指示を行ない、情報送受信部１０９は、クライアント情報ファイル１０３によって特定されるクライアント２０に対して、テストプロジェクトファイル（ＴＰＦ）１０２に記録されているテスト実行順番で、テストスクリプトを送信し、複数のクライアントが指定されている場合は、サーバ１０の情報送受信部１０９から複数のクライアントに向けてテストスクリプトを送信する（ステップＡ１０４）。各クライアント２０−１、２０−２、・・・２０−ｎは、それぞれの情報送受信部２００からテストスクリプトを受取り、図示していないメモリ上に展開する（ステップＡ１０５）。
【００３０】
各クライアントは、受取ったテストスクリプト２０２をテスト再生部２０１において実行することにより、テスト対象プログラム３００に対して所要の修正、改変、削除等の操作を実行する（ステップＡ１０６）。情報取得部２０３は、テスト対象プログラム３００を操作した結果や期待値の比較結果等の、そのときに取得する各種情報を収集する（ステップＡ１０７）。収集した情報はクライアント側の情報送受信部２００を介してサーバ１０側へ送信される（ステップＡ１０８）。
【００３１】
サーバ１０側の情報送受信部１０９において各種情報を受信し、結果確認部１１０に記録する（ステップＡ１０９）。次いで、ステップＡ１１０においてテストプロジェクトファイル（ＴＰＦ）１０２、テストスクリプトファイル（ＴＳＦ）１０１、クライアント情報ファイル１０３における全記述を終了したか否かの判定を行う（ステップＡ１１０）。この判定において「ＮＯ」と判定された場合は、ステップＡ１０３からステップＡ１０９の各ステップを繰り返し実行する。他方、ステップＡ１１０において「ＹＥＳ」と判定された場合は、サーバ１０の結果確認部１１０によりテスト結果を表示すると共にテスト結果ファイル１０４として保存し、一連の処理を終了する（ステップＡ１１１）。
【００３２】
図３は、２台のクライアントに対するテストを順次実行するシーケンスを図示したものである。サーバ１０内の再生指示部１０８、情報送受信部１０９を経て、図示していないネットワーク３０を介して、第１のクライアント１の情報送受信部２００に対しテストスクリプトを送信する。受信されたテストスクリプトは、クライアント１内のテスト再生部２０１に転送されて、テスト過程における所要処理が実行される。この処理における実行結果は当該クライアント内のテスト再生部２０１から情報送受信部２００に伝えられる。情報送受信部２００は、ネットワーク３０を介してサーバ１０の情報送受信部１０９に対して結果送信を行い、そしてサーバ１０内の再生指示部１０８に伝送される。この結果送信を受信したサーバ１０は、引き続き第２のクライアント２に対して、上記のクライアント１と同様の手順によりテストスクリプト送信以降のステップを繰り返し実行する。
【００３３】
図４は、例えば同種の構成及び機能を有する２台のクライアントに対するテストを同時実行する場合のシーケンスを図示したものである。サーバ内の再生指示部１０８、情報送受信部１０９から、図示していないネットワーク３０を介して、クライアント１およびクライアント２それぞれの情報送受信部２００に対して同時にテストスクリプトを送信する。それぞれの情報送受信部２００で受信されたテストスクリプトは、クライアント１および２内のテスト再生部２０１にそれぞれ転送されて、各クライアント毎に所要の処理が実行される。この処理における実行結果は両クライアント内のテスト再生部２０１から情報送受信部２００にそれぞれ伝えられる。双方の情報送受信部２００は、図示していないネットワーク３０を介してサーバ１０側の情報送受信部１０９に対してそれぞれ結果送信を行い、そしてサーバ１０内の再生指示部１０８に個別に伝送される。この結果送信を受信したサーバ１０は、両クライアントにおけるテストがそれぞれ完了したことを確認すると共に所定の記録を実行する。
【００３４】
図５は、一連のクライアントの中で、特定のクライアントを再起動した後に、引き続きテストが実行される状態を示すフロー図である。テスト開始に応じて図２に示したフローのステップＡ１０１からＡ１０９を実行する（ステップＢ１０１）。実行にあたり、ステップＡ１０６においてマシンの再起動要求を行う（ステップＢ１０２）。サーバ１０の再生指示部１０８は、対象クライアントが再起動して、情報送受信部２００と通信可能になるまで待機する（ステップＢ１０３）。情報送受信部２００と通信可能になったことが確認されると、図２のステップＡ１０３からＡ１１０までを引き続き実行する（ステップＢ１０４）。さらに、クライアント側の情報送受信部２００と通信可能になると、図２のステップＡ１０４からＡ１１０を引き続き実行する（ステップＢ１０５）。
【００３５】
図６は、テスト実行にあたり必要なスケジュール予約を行う際のフロー図であり、テストプロジェクトファイル（ＴＰＦ）１０２、テストスクリプトファイル（ＴＳＦ）１０１、クライアント情報ファイル１０３から読み出したテストプロジェクト、テストスクリプト、クライアント情報を編集して保存しておく（ステップＣ１０１）。
次いで、スケジュール予約部１１１でテストを実行する日時と、実行するテストプロジェクト、テストスクリプト、クライアント情報を指定し、その情報をテスト予約ファイル１０５に保存する（ステップＣ１０２）。起動部１１２はテスト予約ファイル１０５の内容を読み取り、指定された日時に再生指示部１０８に処理を引き渡す（ステップＣ１０３）。その後、再生指示部１０８は図２に示したフローのステップＡ１０３からＡ１１１までを実行して、処理結果をテスト結果ファイル１０４に保存する（ステップＣ１０４）。
【００３６】
図７は、クライアント機器から任意のタイミングで各種情報を取得及び保存する際の一連の動作を示すフロー図である。各種情報の取得指示命令はテストスクリプトファイル（ＴＳＦ）１０１に記述しておく（ステップＤ１０１）。この場合、各種情報取得の記述位置は任意となっている。次いで、各種情報の取得は図２のステップＡ１０３からＡ１１１までを実行し、その処理結果をテスト結果ファイル１０４に保存する(ステップＤ１０２)。
【００３７】
図８は、クライアントの負何分散している状態におけるフローを示すものである。負荷分散を行うために、複数のクライアントをクライアント情報ファイル１０３に登録して、保存しておく（ステップＥ１０１）。次いで、負何分散が必要な箇所をテストプロジェクトファイル（ＴＰＦ）１０２およびテストスクリプトファイル（ＴＳＦ）１０１に記述する（ステップＥ１０２）。そして、起動時に負荷分散対象となるクライアントの各種情報を、図７のフローにおけるステップＤ１０１、Ｄ１０２の処理によって収集する（ステップＥ１０３）。
【００３８】
前記ステップＥ１０３において取得した情報を比較して、再生指示部１０８は早期に処理可能なクライアントの選択を行う（ステップＥ１０４）。ステップＥ１０４において選択された処理先クライアントに対し、図２のフローのＡ１０３からＡ１０９までを実行する（ステップＥ１０５）。次いで、テストプロジェクトファイル（ＴＰＦ）１０２およびテストスクリプトファイル（ＴＳＦ）１０１に負荷分散の記述があった時点において、再生指示部１０８が処理していないクライアントに対し送信する（ステップＥ１０６）。その後、ステップＥ１０５とＥ１０６とを、ＴＰＦ１０２およびＴＳＦ１０１の全ての記述が終了するまで繰り返し実行する（ステップＥ１０７）。
【００３９】
図９は、複数台クライアントで負荷分散する際のシーケンスを示すものであり、ここでは３台のクライアント１、２、３の場合の実施例を示している。サーバ１０の再生指示部１０８から情報送受信部１０９を介して、当初クライアント１の情報送受信部２００に向けてテストスクリプトの送信を行い、次いでクライアント２に対して同様のテストを実施する。それぞれのクライアントにおけるテスト再生部２０１での処理が行われ、その結果はそれぞれの情報送受信部２００およびサーバ側の送受信部１０９を介してサーバ１０側に送信される。そして負荷比較を行った後、クライアント１、クライアント３に対しても同様のテストを行うシーケンスを示している。
【産業上の利用可能性】
【００４０】
１台のサーバと複数のクライアントがネットワークを介して連携される一連のコンピュータシステムにあっては、ソフトウェアが完全であることが望まれるが、開発段階から実際の稼動の期間を通じて完全であり続けることは困難である。開発時において見落とされたバグなどによる不具合や使用中の不注意によるデグレードの発生なども懸念される。さらに、運用にあたって確認された問題点を改良する必要なども生じてくる。
【００４１】
このような、ソフトウェアの不具合が発見された場合に、小規模なシステムであればソフト担当者による対応も容易であるが、大規模なシステムにおいて人手によるソフトウェアテストを実行することはマンパワーおよび所要時間の観点から困難が伴う。そのため、各種のテスト自動化が試みられているが、実施の順序、時期、サーバ対クライアントの接続状況等が予め限定されることが多く、多数のクライアントに対するテストの実行が妨げられる事態が多かった。本発明に係るソフトウェアのテスト自動化システムおよび方法によれば、予め設定されたテスト内容により、任意の順序、任意のタイミングで、信頼性の高いソフトウェアテストが省力かつ省時間で実行可能である。
【符号の説明】
【００４２】
１０    サーバ
２０−１、２０−２、・・・２０−ｎ    クライアント
３０    ネットワーク
１００  記憶装置
１０１  テストスクリプトファイル（ＴＳＦ）
１０２  テストプロジェクトファイル（ＴＰＦ）
１０３  クライアント情報ファイル
１０４  テスト結果ファイル
１０５  テスト予約ファイル
１０６  操作記録部
１０７  データ編集部
１０８  再生指示部
１０９  情報送受信部
１１０  結果確認部
１１１  スケジュール予約部
１１２  起動部
２００  情報送受信部
２０１  テスト再生部
２０２  テストスクリプト
２０３  情報取得部
３００  テスト対象プログラム
【図１】
2011128940.tif 000003
【図２】
2011128940.tif 000004
【図３】
2011128940.tif 000005
【図４】
2011128940.tif 000006
【図５】
2011128940.tif 000007
【図６】
2011128940.tif 000008
【図７】
2011128940.tif 000009
【図８】
2011128940.tif 000010
【図９】
2011128940.tif 000011