(57)【要約】【課題】例外処理を試験シナリオの外部に定義することにより、簡単な試験シナリオで例外処理を行う。【解決手段】既知の障害が発生した時に試験を続行するための例外処理シナリオが記述された例外処理シナリオファイルと、障害の発生パターンと例外処理シナリオとが関連付けられた例外処理呼出条件テーブルと、試験シナリオが記述された試験シナリオファイルとを入力する入力装置１１と、既知の障害が発生した時に、例外処理呼出条件テーブルを参照して障害の発生パターンから例外処理シナリオを特定する例外処理部３３と、既知の障害が発生した時に試験シナリオを中断し、例外処理部３３で特定された例外処理シナリオを、例外処理シナリオファイルを参照して実行した後に、試験シナリオ内の中断した試験イベントから処理を続行する試験シナリオ処理部３２とを備えた。【選択図】        図１
2004341652.tif 000002
【特許請求の範囲】
【請求項１】
被試験対象装置と接続された自動試験機が、予め与えられた試験シナリオに基づいて試験を自動的に実行する自動試験方法において、
既知の障害が発生した時に前記試験を続行するための例外処理シナリオが記述された例外処理シナリオファイルと、前記障害の発生パターンと前記例外処理シナリオとが関連付けられた例外処理呼出条件テーブルと、前記試験シナリオが記述された試験シナリオファイルとを、入力装置から入力する入力ステップと、
前記既知の障害が発生した時に、例外処理部が、前記例外処理呼出条件テーブルを参照して、前記障害の発生パターンから例外処理シナリオを特定する特定ステップと、
前記既知の障害が発生した時に、試験シナリオ処理部が、前記試験シナリオを中断する中断ステップと、
前記試験シナリオ処理部が、前記特定ステップで特定された例外処理シナリオを、前記例外処理シナリオファイルを参照して実行する例外処理ステップと、
前記試験シナリオ処理部が、前記例外処理シナリオを実行した後に、前記試験シナリオ内の中断した試験イベントから処理を続行する続行ステップと
を備えたことを特徴とする自動試験方法。
【請求項２】
前記特定ステップは、前記例外処理部が、前記障害の発生パターンから例外処理シナリオを特定することができない場合には、前記被試験対象装置のリセットコマンド列を例外処理シナリオとして特定することを特徴とする請求項１に記載の自動試験方法。
【請求項３】
前記特定ステップは、前記例外処理部が、前記被試験対象装置のログ情報と前記自動試験機の障害情報とから、前記例外処理シナリオの実行により、前記試験を続行することができるか否かを判定する判定ステップを含み、
該判定ステップで続行できると判定された場合には前記例外処理シナリオを、前記判定ステップで続行できないと判定された場合には前記リセットコマンド列を、例外処理シナリオとして特定することを特徴とする請求項２に記載の自動試験方法。
【請求項４】
被試験対象装置と接続され、予め与えられた試験シナリオに基づいて試験を自動的に実行する自動試験機において、
既知の障害が発生した時に前記試験を続行するための例外処理シナリオが記述された例外処理シナリオファイルと、前記障害の発生パターンと前記例外処理シナリオとが関連付けられた例外処理呼出条件テーブルと、前記試験シナリオが記述された試験シナリオファイルとを入力する入力装置と、
前記既知の障害が発生した時に、前記例外処理呼出条件テーブルを参照して前記障害の発生パターンから例外処理シナリオを特定する例外処理部と、
前記既知の障害が発生した時に前記試験シナリオを中断し、前記例外処理部で特定された例外処理シナリオを、前記例外処理シナリオファイルを参照して実行した後に、前記試験シナリオ内の中断した試験イベントから処理を続行する試験シナリオ処理部と
を備えたことを特徴とする自動試験機。
【請求項５】
前記例外処理部は、前記障害の発生パターンから例外処理シナリオを特定することができない場合には、前記被試験対象装置のリセットコマンド列を例外処理シナリオとして特定することを特徴とする請求項４に記載の自動試験機。
【請求項６】
前記例外処理部は、前記被試験対象装置のログ情報と前記自動試験機の障害情報とから、前記例外処理シナリオの実行により、前記試験を続行することができるか否かを判定し、続行できると判定した場合には前記例外処理シナリオを、続行できないと判定した場合には前記リセットコマンド列を、例外処理シナリオとして特定することを特徴とする請求項５に記載の自動試験機。
【請求項７】
被試験対象装置と接続され、予め与えられた試験シナリオに基づいて試験を自動的に実行する自動試験機の試験制御装置に、請求項１、２または３に記載の各ステップを実行させるためのプログラム。
【請求項８】
被試験対象装置と接続され、予め与えられた試験シナリオに基づいて試験を自動的に実行する自動試験機の試験制御装置に、請求項１、２または３に記載の各ステップを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、自動試験方法及び自動試験機に関し、より詳細には、ネットワークに接続されている装置のアプリケーション・プログラムを被試験対象とし、予め設定された試験シナリオと試験項目とに基づいて試験を行う自動試験方法及び自動試験機に関する。
【０００２】
【従来の技術】
被試験対象である装置に搭載されているアプリケーション・プログラムが複雑化することにより、試験機の試験シナリオは複雑化し、試験項目は増大する一方である。アプリケーション・プログラムを効率的かつ自動的に試験する方法が提案されている（例えば、特許文献１参照）。特許文献１には、プロセス制御用計算機のアプリケーション・プログラムのシミュレーションを行うテスト装置が開示されている。被試験対象装置の外部にあるテスト装置は、シミュレーションで実行されるイベントごとに記述されたシナリオを有している。シナリオは、イベント名称、イベント発生時刻及び発生データなどにより構成されたリスト列として格納されている。また、テスト装置は、テスト結果のうちどの項目について検証を行うかを指定するテーブルを有しており、テスト結果として収集したい情報を自動的に生成させ、目的とする検証結果を取得することができる。
【０００３】
また、交換機のソフトウェア自動試験装置であって、無人による試験の連続運転を実現して、試験工程の効率化を図る方法が提案されている（例えば、特許文献２参照）。ソフトウェア自動試験装置は、試験中に交換機に障害が発生すると、試験途中で実行を中断し、交換機に対して再開処理を指示するとともに、次の順序の試験を開始して、試験を継続することができる。
【０００４】
【特許文献１】
特開平１１−３０５８２２号公報
【０００５】
【特許文献２】
特開平５−２４１９０１号公報
【０００６】
【発明が解決しようとする課題】
試験シナリオに基づく自動試験方法において、試験シナリオを、単純なイベント列から高級言語を用いた記述に拡張することにより、例外処理を試験シナリオに組込むことが行われている。このようにして、被試験対象装置に想定外の障害が発生した場合であっても、例外処理を実行して試験を継続することができる。
【０００７】
しかしながら、従来の高級言語を用いた方法では、イベントの実行状況を把握するために状態変数を用いて管理している。そのため、正常な試験シナリオの中に、イベント管理のための処理、例外処理を呼び出すための処理を追加する必要があった。従って、試験シナリオ自体が複雑になり、試験シナリオのロジックが分かり難くなるという問題があった。
【０００８】
また、例外処理は、障害内容やイベント発生パターンとの関連性が強いため、新規の障害が発生するごとに、回復手順を含む例外処理を試験シナリオに組み込まなければならないという問題もあった。
【０００９】
本発明は、このような問題に鑑みてなされたもので、その目的とするところは、例外処理を試験シナリオの外部に定義することにより、簡単な試験シナリオで例外処理を行うことができる自動試験方法および自動試験機を提供することにある。
【００１０】
【課題を解決するための手段】
本発明は、このような目的を達成するために、請求項１に記載の発明は、被試験対象装置と接続された自動試験機が、予め与えられた試験シナリオに基づいて試験を自動的に実行する自動試験方法において、既知の障害が発生した時に前記試験を続行するための例外処理シナリオが記述された例外処理シナリオファイルと、前記障害の発生パターンと前記例外処理シナリオとが関連付けられた例外処理呼出条件テーブルと、前記試験シナリオが記述された試験シナリオファイルとを、入力装置から入力する入力ステップと、前記既知の障害が発生した時に、例外処理部が、前記例外処理呼出条件テーブルを参照して、前記障害の発生パターンから例外処理シナリオを特定する特定ステップと、前記既知の障害が発生した時に、試験シナリオ処理部が、前記試験シナリオを中断する中断ステップと、前記試験シナリオ処理部が、前記特定ステップで特定された例外処理シナリオを、前記例外処理シナリオファイルを参照して実行する例外処理ステップと、前記試験シナリオ処理部が、前記例外処理シナリオを実行した後に、前記試験シナリオ内の中断した試験イベントから処理を続行する続行ステップとを備えたことを特徴とする。
【００１１】
この方法によれば、例外処理を試験シナリオの外部に定義して、試験シナリオに依存しないように例外処理シナリオを実装しておき、既知の障害が発生した時に、障害を回復して試験を続行するので、簡単な試験シナリオで例外処理を行うことができる。
【００１２】
請求項２に記載の発明は、請求項１に記載の前記特定ステップは、前記例外処理部が、前記障害の発生パターンから例外処理シナリオを特定することができない場合には、前記被試験対象装置のリセットコマンド列を例外処理シナリオとして特定することを特徴とする。
【００１３】
請求項３に記載の発明は、請求項２に記載の前記特定ステップは、前記例外処理部が、前記被試験対象装置のログ情報と前記自動試験機の障害情報とから、前記例外処理シナリオの実行により、前記試験を続行することができるか否かを判定する判定ステップを含み、該判定ステップで続行できると判定された場合には前記例外処理シナリオを、前記判定ステップで続行できないと判定された場合には前記リセットコマンド列を、例外処理シナリオとして特定することを特徴とする。
【００１４】
請求項４に記載の発明は、被試験対象装置と接続され、予め与えられた試験シナリオに基づいて試験を自動的に実行する自動試験機において、既知の障害が発生した時に前記試験を続行するための例外処理シナリオが記述された例外処理シナリオファイルと、前記障害の発生パターンと前記例外処理シナリオとが関連付けられた例外処理呼出条件テーブルと、前記試験シナリオが記述された試験シナリオファイルとを入力する入力装置と、前記既知の障害が発生した時に、前記例外処理呼出条件テーブルを参照して前記障害の発生パターンから例外処理シナリオを特定する例外処理部と、前記既知の障害が発生した時に前記試験シナリオを中断し、前記例外処理部で特定された例外処理シナリオを、前記例外処理シナリオファイルを参照して実行した後に、前記試験シナリオ内の中断した試験イベントから処理を続行する試験シナリオ処理部とを備えたことを特徴とする。
【００１５】
請求項５に記載の発明は、請求項４に記載の前記例外処理部は、前記障害の発生パターンから例外処理シナリオを特定することができない場合には、前記被試験対象装置のリセットコマンド列を例外処理シナリオとして特定することを特徴とする。
【００１６】
請求項６に記載の発明は、請求項５に記載の前記例外処理部は、前記被試験対象装置のログ情報と前記自動試験機の障害情報とから、前記例外処理シナリオの実行により、前記試験を続行することができるか否かを判定し、続行できると判定した場合には前記例外処理シナリオを、続行できないと判定した場合には前記リセットコマンド列を、例外処理シナリオとして特定することを特徴とする。
【００１７】
請求項７に記載の発明は、被試験対象装置と接続され、予め与えられた試験シナリオに基づいて試験を自動的に実行する自動試験機の試験制御装置に、請求項１、２または３に記載の各ステップを実行させるためのプログラムであることを特徴とする。
【００１８】
請求項８に記載の発明は、被試験対象装置と接続され、予め与えられた試験シナリオに基づいて試験を自動的に実行する自動試験機の試験制御装置に、請求項１、２または３に記載の各ステップを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であることを特徴とする。
【００１９】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態について詳細に説明する。ネットワークに接続されている装置のアプリケーション・プログラムを被試験対象とし、試験シナリオをイベント発生列として直接管理する。試験シナリオの中で、障害と関連するイベントが明確になり、関連するイベントに対して例外処理を定義すればよいので、例外処理を試験シナリオの外部に定義することができる。既知の障害が発生した時に、障害を回復して試験を続行するための例外処理シナリオをフィードバックさせ、試験シナリオに依存しないように例外処理シナリオを実装する。このようにして、次回以降の自動試験において既知の障害が発生した場合に、無人運転で自動試験を続行することができる。
【００２０】
図１に、本発明の一実施形態にかかる自動試験機の構成を示す。自動試験機１は、被試験対象装置１００と接続され自動試験を行う試験制御装置３０と、試験計画、試験シナリオ、例外処理シナリオ、例外処理呼出条件を入力する入力装置１１と、試験結果、障害情報、ログ情報を出力する出力装置１２とを備えている。また、試験制御装置３０は、試験イベントが記述された試験シナリオを作成する試験スケジューラ３１と、被試験対象装置１００に試験イベントの実行を指示する試験シナリオ処理部３２と、障害が発生した場合などの例外処理を行う例外処理部３３とを備えている。なお、試験制御装置３０を、被試験対象装置１００に組み込み、被試験対象装置１００の入力装置と出力装置とを、試験制御装置３０に接続することによっても、自動試験機を構成することができる。
【００２１】
図２に、自動試験機における情報の流れを示すとともに、自動試験機の動作を説明する。試験スケジューラ３１は、入力装置１１から試験計画ファイル２１を読み込み、実施すべき試験シナリオを決定し、試験シナリオの実施を試験シナリオ処理部３２に指示する。
【００２２】
試験シナリオ処理部３２は、入力装置１１から試験シナリオファイル２２を読み込み、試験スケジューラ３１で決定された試験シナリオに定められている試験イベントを順次抽出し、被試験対象装置１００に実行を指示する。被試験対象装置１００から応答結果を受理すると、試験シナリオ処理部３２は、実行した試験イベントのチェックポイントに従い応答結果をチェックし、その診断結果を試験結果データベース４１に書き込む。試験シナリオに定められている試験イベントに対して上記の処理を繰り返し、すべての試験イベントの処理を完了したら、試験スケジューラ３１に処理を返す。
【００２３】
また、試験シナリオ処理部３２は、タイムアウトを検知した場合には、試験イベントの処理を中断する。試験シナリオ処理部３２は、例外処理部３３を呼出し、タイムアウトが発生した試験イベントを通知する。例外処理部３３から例外処理シナリオ実行の指示を受けた場合には、試験シナリオ処理部３２は、例外処理シナリオファイル２３の例外処理イベントを順次処理する。例外処理イベントの実行により障害が回復すると、試験シナリオ内の中断した試験イベントから処理を続行する。
【００２４】
例外処理部３３から再開シナリオを受けた場合には、試験シナリオ処理部３２は、被試験対象装置１００に対してリセットコマンドを送信する。被試験対象装置１００から再開通知を受けると、試験シナリオ処理部３２は、試験スケジューラ３１に対して試験シナリオの中断を指示し、試験スケジューラ３１は、次に計画されている試験を実施するように計画を変更する。
【００２５】
図３に、例外処理部における処理フローを示す。試験シナリオ処理部３２から呼出されると、例外処理部３３は、第１ステップとしてログ収集処理３３１を実行し、被試験対象装置１００にログ情報の収集を指示する。被試験対象装置１００は、ログ情報を２次記憶装置に格納しておき、例外処理部３３は、被試験対象装置１００から定期的にダウンロードして、ログ情報データベース４２に格納する。次に、例外処理部３３は、第２ステップとして障害情報収集処理３３２を実行し、試験制御装置３０内のエラー情報を取得し、異常情報データベース４３に保存する。ログ情報データベース４２と異常情報データベース４３とにより、障害解析を行って、以下に述べる例外処理シナリオファイル２３および例外処理呼出条件テーブル２４を作成する。
【００２６】
障害発生パターンは、障害に関連する試験イベント列として定めておき、障害発生パターンと例外処理シナリオとが関連付けられた例外処理呼出条件テーブル２４を、予め作成しておく。例外処理部３３は、第３ステップとして例外処理シナリオ検索処理３３３を実行し、例外処理呼出条件テーブル２４を読み込む。例外処理部３３は、試験処理シナリオ部３２から通知された試験イベントを基準にして、実行済みの試験イベント列を読み出す。実行済みの試験イベント列と障害に関連する試験イベント列とを比較して、例外処理シナリオを特定する。例外処理呼出条件テーブル２４において該当する例外処理シナリオがヒットした場合には（３３４）、例外処理部３３は、試験シナリオ処理部３２に対し例外処理シナリオの実行を指示する（３３５）。試験シナリオ処理部３２は、例外処理シナリオファイル２３を参照して例外処理イベントを順次処理する。
【００２７】
また、例外処理部３３は、ログ情報データベース４２から被試験対象装置１００のログ情報と、異常情報データベース４３から試験制御装置３０の障害情報とを収集する。該当する例外処理シナリオが無い場合には（３３４）、例外処理部３３は、試験シナリオ処理部３２に対し、被試験対象装置１００のリセットコマンド列を再開シナリオとして指示する（３３６）。試験シナリオ処理部３２は、被試験対象装置１００に対してリセットコマンドを送信し、試験スケジューラに対して次に計画されている試験を継続するように指示を出し、試験スケジューラ３１に対して試験シナリオの中断を指示する。
【００２８】
例外処理シナリオファイル２３は、自動試験機の試験者がオフラインで作成する。試験者は、出力装置１２からログ情報データベース４２及び異常情報データベース４３を参照し、障害の内容を解析する。次に、障害の対処方法を、例外処理シナリオとして作成し、例外処理シナリオと例外処理呼出条件とを入力装置１１から試験制御装置３０に登録する。
【００２９】
（実施例）
例外処理部３３の具体的な処理フローを、ＣＵＧ（Ｃｌｏｓｅｄ  Ｕｓｅｒ  Ｇｒｏｕｐ）系サービスのネットワークシステムにおいて、リモートアクセスユーザを設定端末から自動登録する試験シナリオを用いて説明する。なお、自動試験機１と設定端末とを接続し、被試験対象装置である設定端末に搭載されたＧＵＩベースの設定アプリケーションは、自動試験機１より試験シナリオに基づき制御される。
【００３０】
図４に、自動試験機における例外処理の具体的な流れを示す。試験スケジューラ３１は、入力装置１１から試験計画ファイル２１を読み込み、試験シナリオ０００１の実効を決定し、試験シナリオ処理部３２に指示する。図５に、試験シナリオファイルの一例を示す。試験シナリオ００００１の試験イベント［ＣＵＧ登録（ＲＡＳ制御部、Ｃｕｇｉｄ，  ＣＲＤａｔａ）］を実行中にタイムアウトが発生した場面を想定する。試験シナリオ処理部３２は、試験シナリオファイル２２を読み込み、試験イベントを順次実行する。
【００３１】
例えば、ネットワークにおける瞬断レベルの通信エラーにより、非常に低い確率で登録が失敗することが分かっているとする。通信エラーが発生すると、設定端末では、通信エラーダイヤログウィンドウがアクティブになり（ポップアップウィンドウは未表示）、確認ボタンを押下しない限り、他の命令を受け付けなくなる。確認ボタンを押下すれば、設定端末は、自動登録を再実行する。
【００３２】
そこで、例外処理呼出条件テーブル２４には、異常パターン名称を「通信エラー」として、障害発生パターンと例外処理シナリオとを関連付けて登録しておく。図６に、例外処理呼出条件テーブルの一例を示す。障害発生パターンは、障害に関連する試験イベント列として、「関連イベント列：（“登録”ｏｒ“削除”）＆ポップアップウィンドウなし」が登録されている。例外処理シナリオは、例外処理シナリオ番号として「００００１」からなるエントリが登録されている。
【００３３】
試験イベント［ＣＵＧ登録（ＲＡＳ制御部、Ｃｕｇｉｄ，  ＣＲＤａｔａ）］を実行中にタイムアウトが発生すると、試験シナリオ処理部３２は、試験イベントの処理を中断し、例外処理部３３を呼出す。例外処理部３３は、ログ収集処理３３１と障害情報収集処理３３２とを実行した後に、例外処理シナリオ検索処理３３３を実行する。
【００３４】
例外処理シナリオ検索処理３３３では、例外処理呼出条件テーブル２４を参照し、試験シナリオ処理部３２が自動登録の処理を実行中にタイムアウトが発生したこと、ポップアップウィンドウが表示されないことから異常パターン番号００００３の通信エラーを特定する。次に、例外処理部３３は、通信エラー対処用の例外シナリオを特定して、試験シナリオ処理部３２に対し例外処理シナリオ００００１の実行を指示する（３３５）。
【００３５】
図７に、例外処理シナリオファイルの一例を示す。試験シナリオ処理部３２は、例外処理部３３の指示に基づいて、例外処理シナリオファイル２３を参照して例外処理イベントを順次処理する。試験シナリオ処理部３２は、通信エラーダイヤログ確認ＯＫを表示し、（通信エラー、Ｃｕｇｉｄ、Ｕｉｄ）を出力した後に、中断した試験イベント［ＣＵＧ登録（ＲＡＳ制御部、Ｃｕｇｉｄ，  ＣＲＤａｔａ）］から処理を続行する。
【００３６】
本実施形態によれば、試験シナリオをイベント発生列として直接管理するので、正常な試験シナリオの中に、イベント管理のための処理、例外処理を呼び出すための処理を追加する必要がない。また、関連するイベントに対して例外処理を定義すればよいので、例外処理を試験シナリオの外部に定義して、例外処理シナリオを個々の試験シナリオに依存しないように実装することができる。このようにして、高級言語を用いて試験シナリオに例外処理を埋め込む方法と比較して、試験シナリオと例外処理との独立性を高め、試験シナリオの処理ロジックと例外処理の処理ロジックとを明確にした。
【００３７】
また、試験シナリオは、試験手順書から作成するので、想定外の障害が発生した試験結果は、試験として成り立たない。このため、試験手順書には想定外の障害は、考慮されていない。従来は、障害が発生する度に試験手順書に障害回復手順を追加して試験シナリオを作り直す必要があった。本実施形態によれば、既知の障害については、例外処理シナリオを動的に埋め込めるため、試験手順書のフォーマット変換だけで自動試験を行うことができる。
【００３８】
【発明の効果】
以上説明したように、本発明によれば、例外処理を試験シナリオの外部に定義して、試験シナリオに依存しないように例外処理シナリオを実装しておき、既知の障害が発生した時に、障害を回復して試験を続行するので、簡単な試験シナリオで例外処理を行うことができ、ネットワークにおける瞬断レベルの通信エラーなどの外部要因に基づいて障害が発生した場合であっても、無人運転で自動試験を続行することが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施形態にかかる自動試験機を示すブロック構成図である。
【図２】本発明の一実施形態にかかる自動試験機における情報の流れを示す機能ブロック図である。
【図３】例外処理部における処理フローを示す機能ブロック図である。
【図４】自動試験機における例外処理の具体的な流れを示す機能ブロック図である。
【図５】試験シナリオファイルの一例を示す図である。
【図６】例外処理呼出条件テーブルの一例を示す図である。
【図７】例外処理シナリオファイルの一例を示す図である。
【符号の説明】
１    自動試験機
１１    入力装置
１２    出力装置
３０    試験制御装置
３１    試験スケジューラ
３２    試験シナリオ処理部
３３    例外処理部
１００    被試験対象装置
【図１】
2004341652.tif 000003
【図２】
2004341652.tif 000004
【図３】
2004341652.tif 000005
【図４】
2004341652.tif 000006
【図５】
2004341652.tif 000007
【図６】
2004341652.tif 000008
【図７】
2004341652.tif 000009