(57)【要約】【課題】コマンドパラメタの決定段階でのテストスクリプトの生成及びテストスクリプト作成者に依存しないテストスクリプトの生成を可能としたテスト自動実行システムの提供。【解決手段】コマンドパラメタの各パラメタ値の形式を正規表現で指定し、正規表現から各パラメタ毎に正常値及び異常値を生成し、その生成したパラメタ値の全組合せから直交表の論理を使用して有効な組合せに絞り込み、絞り込んだ組合せからテストスクリプトを生成し、期待する実行結果を格納しておき、生成したテストスクリプトの事項結果と比較することにより成功か否かを判断するテスト自動化システムである。【選択図】図２
2011034274.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステム上で実行されるアプリケーションプログラムを実行可能なコンピュータを備えたテスト自動実行システムにおいて、前記コンピュータが、
入力された各コマンドパラメタとそのコマンドパラメタの正規表現及び条件とに基づいて各コマンドパラメタについてその正規表現から指定可能なパラメタ値の範囲を検索し、検索した指定可能なパラメタ値の範囲から複数のパラメタ値を生成し、生成したパラメタ値の全組合せから直交表の論理に基づいて不具合を発見しやすいパラメタ値の組合せに絞り込み、絞り込まれたパラメタ値の組合せに基づいて各コマンドパラメタのテストスクリプトを生成し、各コマンドパラメタについて生成したテストスクリプトをテストスクリプトＤＢに格納する手段と、
前記テストスクリプトＤＢに格納されたテストスクリプトについての、期待する実行結果を、実行結果ＤＢに格納する手段と、
前記テストスクリプトＤＢに格納されたテストスクリプトを実行し、その実行結果を、前記実行結果ＤＢに格納されている期待する実行結果と比較することにより、同じであるか否かを判断する比較手段と、を有することを特徴とするテスト自動実行システム。
【請求項２】
前記比較手段により判断した結果を、マトリックスチェックリストとして生成し、生成したマトリックスチェックリストを出力する手段を有することを特徴とする請求項１に記載のテスト自動実行システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムのテストのために、コマンドパラメタの生成およびコマンドパラメタからのテストスクリプトの生成を行い、テストを自動実行するテスト自動実行システムに関する。
【背景技術】
【０００２】
近年、アプリケーションプログラムのテストにおいて、テスト自動実行ツールを利用し、テストの実行を自動化していることが多い。テスト自動実行ツールを利用する場合、予めテストスクリプトを準備しておき、テスト自動実行ツールはそのテストスクリプトに従ってテストを再現する。テストスクリプトは、テスト項目が連続したものとして構成されている。テスト項目とは、時系列に沿ってキー入力操作やマウス操作を記録したものである。
例えば、日立ソフトウェアエンジニアリング株式会社製「ａｎｙＷａｒｐ Ｃａｐｔｕｒｅ／Ｒｅｐｌａｙ」は、上記の回帰テスト自動実行ツールの代表例であり、以下の機能を持つ。
（１）記録機能：アプリケーション上で操作した事象と、その際の画面の内容を記録する。アプリケーション上で操作した事象はテストスクリプトとして記録する。
（２）再現機能：記録機能で記録したテストスクリプトをアプリケーション上で再現する。再現された画面の内容を記録する。
（３）比較機能：記録機能で記録された画面の内容と、再現機能で再現された画面の内容とを比較し、再現結果の成否を判定する。
（４）編集機能：記録機能で記録されたテストスクリプトの内容を編集する。
本発明に関連する公知技術文献としては以下特許文献１があげられる。特許文献１では、クライアント端末からのリクエスト情報と該リクエスト情報に対するＷｅｂサーバからのレスポンス情報とから構成される１テスト項目を連続させることによりテストシナリオ（テストスクリプトに相当）を生成する方法において、複数のテスト項目を予め保存しておき、その保存されているテスト項目をテストシナリオから参照する構成が記載されている。保存されたテスト項目では、固定部と変動部が定義され、変動部に関する変更情報を含み、変更情報を変更することで異なるテストシナリオを生成できる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−３３４８３７
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、キー入力操作やマウス操作を時系列に沿って記録・再現する従来の方法では、以下のような欠点を抱えている。
（１）テストスクリプトは、アプリケーションプログラムが動作する段階でないと作成することができない。
（２）テストスクリプト作成には、キー入力操作やマウス操作を行なう必要があり、時間が掛かる。
（３）テストスクリプトの内容がテストスクリプト作成者に依存しており、テストスクリプト数が多くなったり、無駄なテストスクリプトであったりと有効性のないテストスクリプトの場合がある。
【０００５】
本発明は、このような従来技術の問題を解決するものであり、コマンドパラメタの決定段階でのテストスクリプトの生成及びテストスクリプト作成者に依存しないテストスクリプトの生成を可能とするテスト自動実行システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明のテスト自動実行システムは、オペレーティングシステム上で実行されるアプリケーションプログラムを実行可能なコンピュータを備えたテスト自動実行システムにおいて、前記コンピュータが、入力された各コマンドパラメタとそのコマンドパラメタの正規表現及び条件とに基づいて各コマンドパラメタについてその正規表現から指定可能なパラメタ値の範囲を検索し、検索した指定可能なパラメタ値の範囲から複数のパラメタ値を生成し、生成したパラメタ値の全組合せから直交表の論理に基づいて不具合を発見しやすいパラメタ値の組合せに絞り込み、絞り込まれたパラメタ値の組合せに基づいて各コマンドパラメタのテストスクリプトを生成し、各コマンドパラメタについて生成したテストスクリプトをテストスクリプトＤＢに格納する手段と、前記テストスクリプトＤＢに格納されたテストスクリプトについての、期待する実行結果を、実行結果ＤＢに格納する手段と、前記テストスクリプトＤＢに格納されたテストスクリプトを実行し、その実行結果を、前記実行結果ＤＢに格納されている期待する実行結果と比較することにより、同じであるか否かを判断する比較手段と、を有する。
好適には、前記比較手段により判断した結果を、マトリックスチェックリストとして生成し、生成したマトリックスチェックリストを出力する手段を有する。
【発明の効果】
【０００７】
本発明により、テスト自動実行システムにおいて、コマンドパラメタの決定段階でのテストスクリプトの生成およびテストスクリプト作成者に依存しないテストスクリプトの生成が可能となった。
【図面の簡単な説明】
【０００８】
【図１】本発明のテスト自動実行システムの一実施形態における概略構成の一実施例を示すシステム構成図である。
【図２】本発明のテスト自動実行システムの一実施形態におけるソフトウエア処理を示す構成図である。
【図３】本発明のテスト自動実行システムの一実施形態における正規表現範囲ＤＢの内部構成を示すデータ構造図である。
【図４】本発明のテスト自動実行システムの一実施形態における正規表現範囲から作成したパラメタ値ＤＢの内部構成を示すデータ構造図である。
【図５】本発明のテスト自動実行システムの一実施形態における各パラメタの全組合せから絞り込んだパラメタ値ＤＢの内部構成を示すデータ構造図である。
【図６】本発明のテスト自動実行システムの一実施形態における、生成したテストスクリプトの例である。
【図７】本発明のテスト自動実行システムの一実施形態におけるテストスクリプトの実行結果ＤＢの内部構成を示すデータ構造図である。
【図８】本発明のテスト自動実行システムの一実施形態における、生成したマトリックスチェックリストの例である。
【図９】本発明のテスト自動実行システムの一実施形態における、コマンドパラメタとパラメタ毎の正規表現からテストスクリプトを生成し、生成したテストスクリプトの自動実行、および実行結果を確認する動作を示すフロー図である。
【発明を実施するための形態】
【０００９】
図１は、本発明のテスト自動実行システムの一実施形態における概略構成の一実施例を示すシステム構成図である。この実施例のテスト自動実行システムは、キーボードなどの入力装置１０１と、パーソナルコンピュータなどのコンピュータにより実施できるテスト自動実行装置１０２、画面表示装置１０３と、パーソナルコンピュータなどのコンピュータにより実施できるコマンド実行装置１０４とを有する。テスト自動実行装置１０２とコマンド実行装置１０４は、１つのパーソナルコンピュータに構築してもよく、又は、別のパーソナルコンピュータにそれぞれ構築してネットワークなどを介し情報を授受するようにしてもよい。
【００１０】
テスト自動実行装置１０２は、オペレーティングシステム上で実行されるアプリケーションプログラムとして実現されるテスト自動実行ツール１０５を備える。ＣＰＵが、テスト自動実行ツール１０５をメモリに読み込み、実行することで、テストスクリプトの生成及びテスト自動実行の各機能が実現される。テスト自動実行装置１０２は、記憶装置を具備し、その記憶装置内に、作成したテストスクリプトを格納するテストスクリプトＤＢ(データベース)１０６、および、作成したテストスクリプトについての期待する実行結果を格納する実行結果ＤＢ１０７を構築している。
【００１１】
コマンド実行装置１０４は、オペレーティングシステム上で実行されるコマンド１０８を備えている。コマンド実行装置１０２は、テスト自動実行装置１０２からの要求に応じてコマンド１０８を実行し、その実行結果を、テスト自動実行装置１０２に応答するとともに、テスト画面表示装置１０３に表示する。
【００１２】
このような構成により、テスト自動実行装置１０２は、テストスクリプトＤＢ１０６に格納されたテスト項目に従って、テスト対象となるコマンド実行装置１０４にテスト項目を要求し、テスト項目を再現する（コマンド実行装置１０４が実行する）。再現したテスト結果は、テスト自動実行装置１０２に応答され、期待する実行結果ＤＢ１０７と比較され、テスト結果を判断される。
【００１３】
図２は、図１に示した本発明のテスト自動実行システムの一実施形態に対応するソフトウエア処理を説明する構成図である。
【００１４】
入力装置１０１では、コマンドパラメタ２０５と、コマンドパラメタ毎の正規表現および条件２０６とが入力され、入力された情報をテスト自動実行装置１０２に伝える。
【００１５】
テスト自動実行装置１０２の備えるテスト自動実行ツール１０５は、入力装置１０１から受け取ったコマンドパラメタ２０５とコマンドパラメタ毎の正規表現および条件２０６とから各コマンドパラメタの正規表現の範囲を決定する正規表現範囲検索部２１０と、決定した正規表現の範囲を格納する正規表現範囲ＤＢ２１７とを有する。
さらに、テスト自動実行ツール１０５は、正規表現範囲ＤＢ２１７に格納された正規表現の範囲から各パラメタ値を作成するパラメタ値作成部２１１と、作成したパラメタ値を格納するパラメタ値ＤＢ２１８とを有する。
さらに、テスト自動実行ツール１０５は、パラメタ値ＤＢ２１８に格納されたパラメタ値の全組合せから有効的な組合せを絞り込むパラメタ値組合せ絞込部２１２と、絞込後のパラメタ値組合せを格納する絞込後パラメタ値ＤＢ２１９とを有する。
さらに、テスト自動実行ツール１０５は、絞込後パラメタ値ＤＢ２１９に格納されたパラメタ値組合せからテストスクリプトを生成しかつ生成したテストスクリプトをテストスクリプトＤＢ１０６に格納するテストスクリプト生成部２１３を有する。
さらに、テスト自動実行ツール１０５は、テストスクリプトＤＢ１０６に格納されたテストスクリプトを再現するテストスクリプト実行部２１４を有する。テストスクリプト実行部２１４は、コマンド実行装置１０４にコマンドの実行を要求する。
さらに、テスト自動実行ツール１０５は、コマンド実行装置１０４から応答された今回の実行結果と、期待する実行結果を格納している実行結果ＤＢ１０７とを比較する実行結果確認部２１５を有し、またさらに、比較した実行結果をマトリックスチェックリスト２２０として生成するマトリックスチェックリスト生成部２１６を有する。
【００１６】
このような構成により、テスト自動実行ツール１０５は、入力装置１０１から受け取ったコマンドパラメタ２０５とコマンドパラメタ毎の正規表現および条件２０６とから、正規表現範囲検索部２１０により各コマンドパラメタの正規表現の範囲を決定し、決定した正規表現の範囲を正規表現範囲ＤＢ２１７に格納し、その各コマンドパラメタの正規表現範囲からパラメタ作成部２１１により各パラメタ値を作成し、作成した各パラメタ値をパラメタ値ＤＢ２１８に格納し、その各パラメタ値の全組合せからパラメタ値組合せ絞込部２１２により有効的な組合せを絞り込み、絞込後のパラメタ値組合せを絞込後パラメタ値ＤＢ２１９に格納し、その絞り込んだパラメタ値組合せからテストスクリプト生成部２１３よりテストスクリプトを生成してテストスクリプトＤＢ１０７に格納する。そして、テストスクリプトＤＢ１０７からテストスクリプト実行部２１４によりテストを再現し、再現したテストの実行結果と、期待する実行結果ＤＢ１０７とを実行結果確認部２１５により比較し、比較した結果に基づいてマトリックスチェックリスト生成部２１６がマトリックチェックリスト２２０を出力する。
【００１７】
図３は、本発明のテスト自動実行システムの一実施形態における、図２に示した正規表現範囲ＤＢ２１７の内部構成を示すデータ構造図である。正規表現範囲ＤＢ２１７は、コマンドパラメタ２０５から各パラメタを抜き出した「パラメタ名」３０２と、パラメタ毎の正規表現および条件２０６で入力された、「正規表現」３０３と、正規表現の許容範囲内であれば正常を、許容範囲外であれば異常を示す「条件」３０４と、正規表現の許容範囲内及び許容範囲外をそれぞれ示す「範囲」３０５が保存されている。
【００１８】
図３の正規表現範囲ＤＢ２１７のような情報を保存することにより、各パラメタに指定した正規表現範囲からパラメタ値を作成できる。
【００１９】
図４は、本発明のテスト自動実行システムの一実施形態における、図２の正規表現範囲ＤＢ２１７から作成したパラメタ値ＤＢ２１８の内部構成を示すデータ構造図である。パラメタ値ＤＢ２１８は、コマンドパラメタ２０５から各パラメタを抜き出した「パラメタ名」４０２と、図３の正規表現範囲ＤＢ２１７の「範囲」３０５から生成した「パラメタ値」４０３が保存されている。「パラメタ値」４０３は、正規表現範囲ＤＢ２１７を参照することにより指定可能なパラメタ値の範囲から正常条件、異常条件、境界条件等に基づき、必要なパラメタ値を生成する。
【００２０】
図４のパラメタ値ＤＢ２１８のような情報を保存することにより、各パラメタ値の全組合せを作成できる。
【００２１】
図５は、本発明のテスト自動実行システムの一実施形態における、各パラメタ値の全組合せから絞り込んだ絞込後パラメタ値ＤＢ２１９の内部構成を示すデータ構造図である。図４に示したパラメタ値ＤＢ２１８からパラメタ値の全組合せを作成し、パラメタ値の全組合せから直交表の論理により有効的組合せを絞り込んだ、<number>パラメタ値５０２と<char>パラメタ値５０３と<string>パラメタ値５０４とが保存されている。
【００２２】
図５の絞込後パラメタ値ＤＢ２１９のような情報を保存することにより、不具合を発見しやすいパラメタ値に絞り込んだテストスクリプトを作成できる。
【００２３】
図６は、本発明のテスト自動実行システムの一実施形態における、図２に示したテストスクリプトＤＢ１０６に格納されたテストスクリプトの例である。図５の絞込後パラメタ値ＤＢ２１９に基づいて生成したテストスクリプトは、図２のテストスクリプトＤＢ１０６に格納される。テストスクリプト６０１は、テスト識別子６０２を表示する命令行と、コマンド実行行６０３と、コマンド戻り値６０４を表示する命令行とにより構成されている。テスト識別子６０２は、テストスクリプトＤＢ１０６内、もしくは開発プロジェクト内でテスト項目を一意に識別するための名称である。コマンド実行行６０３は、生成したコマンドパラメタである。コマンド戻り値６０４は、コマンド実行行６０３の戻り値を表示するための命令行である。
【００２４】
図６に示したように、ハードウエアに依存しないテストスクリプトを作成できる。
【００２５】
図７は、本発明のテスト自動実行システムの一実施形態における、図２の実行結果ＤＢ１０７の内部構成を示すデータ構造図である。実行結果ＤＢ１０７は、テスト項目を識別するための「テスト識別子」７０２と、期待するコマンド終了時の「出力メッセージ」７０３と、「戻り値」７０４が保存されている。
【００２６】
図７の実行結果ＤＢ１０７のような情報を保存することにより、再現した結果と期待する実行結果ＤＢ１０７とを比較し、テスト結果を判断できる。
【００２７】
図８は、本発明のテスト自動実行システムの一実施形態における、図２に示したマトリックスチェックリスト２２０の例である。マトリックスチェックリスト２２０は、図２の実行結果確認部２１５によるテスト結果の判断に基づいて、マトリックスチェックリスト生成部２１６が生成する。マトリックスチェックリスト２２０は、コマンドパラメタを記述した「チェック条件」８０２と、期待する実行結果を記載した「確認内容」８０３と、「確認日」８０４と、「チェックＩＤ」８０５で構成されている。コマンドパラメタを記述した「チェック条件」８０２は、生成したコマンドパラメタである。期待する実行結果を記載した「確認内容」８０３は、図７に示した実行結果ＤＢ１０７に格納された期待するコマンド終了時の「出力メッセージ」７０３と「戻り値」７０４である。「確認日」８０４は、テスト実行時のテスト結果が、期待する実行結果と同じであれば、テスト実行日時を記載する項目である。「チェックＩＤ」８０５は、チェック条件８０２と確認内容８０３をマトリックスでチェックしたテスト項目を識別する番号である。
【００２８】
テスト成功例８０６は、テストの再現時の成功例である。成功判断した場合は実行したテストのチェック条件に該当するマトリックスの列の確認日にテスト実行日時を記載する。テスト失敗例８０７は、テストの再現時の失敗例である。失敗判断した場合は、実行したテストのチェック条件に該当するマトリックスの列の確認日に記載しないことにより、テスト実行者に失敗したことを告知する。
【００２９】
マトリックスチェックリスト２２０のような情報で構成することにより、テストの再現した結果を判断でき、テスト結果の実行証明書として使用できる。
【００３０】
図９は、本発明のテスト自動実行システムの一実施形態において、コマンドパラメタとパラメタ毎の正規表現からテストスクリプトを生成し、生成したテストスクリプトの自動実行、および実行結果を確認する動作フローを示すフロー図である。入力装置からコマンドパラメタ、およびパラメタ毎の正規表現および条件の入力する（ステップ１）。次に、正規表現範囲検索処理において、各コマンドパラメタの正規表現から指定可能な値の範囲を検索する（ステップ２）。次に、パラメタ値作成処理において、各コマンドパラメタの指定可能な値の範囲からパラメタ値に置き換える（ステップ３）。次に、パラメタ値組合せ絞込処理において、各パラメタ値の全組合せを作成し、その全組合せから直交表の論理に基づき、不具合を発見しやすい有効的なパラメタ値の組合せに絞り込む（ステップ４）。次に、テストスクリプト生成処理において、テストスクリプトとして使用するためにコマンド名と絞り込んだパラメタ値の組合せを結合した文字列をテストスクリプトとして生成する（ステップ５）。生成したテストスクリプトは、テストスクリプトＤＢに格納する（ステップ６）。次にテストスクリプト実行処理において、テストスクリプトＤＢに格納されているテストスクリプトを実行し（ステップ７）、実行結果を実行結果ＤＢに格納する（ステップ８）。次に、実行結果比較処理において、期待する実行結果を取り出し（ステップ９）、期待する実行結果と今回実行した結果とを比較し、同じであれば今回のテストは成功と判断し、異なれば今回のテストは失敗と判断する（ステップ１０）。次に、判断した結果をマトリックスチェックリストとして生成し（ステップ１１）、生成したマトリックスチェックリストを出力する（ステップ１２）。
【符号の説明】
【００３１】
１０１  入力装置
１０２  テスト自動実行装置
１０３  画面表示装置
１０４  コマンド実行装置
１０５  テスト自動実行ツール
１０６  テストスクリプトＤＢ
１０７  実行結果ＤＢ
１０８  コマンド
２０５  コマンドパラメタ
２０６  パラメタ毎の正規表現および条件
２１０  正規表現範囲検索部
２１１  パラメタ値作成部
２１２  パラメタ値組合せ絞込部
２１３  テストスクリプト生成部
２１４  テストスクリプト実行部
２１５  実行結果確認部
２１６  マトリックスチェックリスト生成部
２１７  正規表現範囲ＤＢ
２１８  パラメタ値ＤＢ
２１９  絞込後パラメタ値ＤＢ
２２０  マトリックスチェックリスト
３０２  パラメタ名
３０３  正規表現
３０４  条件
３０５  範囲
４０２  パラメタ名
４０３  パラメタ値
５０２  <number>パラメタ値
５０３  <char>パラメタ値
５０４  <string>パラメタ値
６０１  テストスクリプト
６０２  テスト識別子
６０３  コマンド実行行
６０４  コマンド戻り値
７０２  テスト識別子
７０３  出力メッセージ
７０４  戻り値
８０２  コマンドパラメタを記述したチェック条件
８０３  期待する実行結果を記載した確認内容
８０４  確認日
８０５  チェック項目
８０６  テスト成功例
８０７  テスト失敗例
【図１】
2011034274.tif 000003
【図２】
2011034274.tif 000004
【図３】
2011034274.tif 000005
【図４】
2011034274.tif 000006
【図５】
2011034274.tif 000007
【図６】
2011034274.tif 000008
【図７】
2011034274.tif 000009
【図８】
2011034274.tif 000010
【図９】
2011034274.tif 000011