(57)【要約】【課題】画面の各オブジェクトに対する遷移パターンを全て把握できていないという問題である。更に、従来のテスト・スクリプトの生成では、稀な操作パターンの場合でのバグの検出が不可能であるという問題があった。【解決手段】標準アクション・パターン、画面毎の画面定義情報、イベント情報を用いて、画面毎の画面情報を作成する機能を備える。画面毎の画面情報とは、各オブジェクト毎の定義情報、フォーカス取得順序、各オブジェクトに対するアクションを実行した際の他のオブジェクトに関する状態遷移を表形式で表したものである。これらの情報を用いて各オブジェクトに対する入力パターンの組み合わせより、被テスト・プログラム画面における全入力パターンを網羅したテスト・スクリプト作成する手段を備える。【選択図】図１
2005115582.tif 000002
【特許請求の範囲】
【請求項１】
被テスト・プログラムの画面の各オブジェクト属性を記した画面定義情報と各オブジェクトに対してのアクションを実行した際の他のオブジェクトにおけるイベント情報と各オブジェクト型に対応する製品毎の標準アクション・パターンを備え、これらの情報をもとに、テストで使用する画面について画面の各オブジェクトのフォーカス順序取得手段と各オブジェクトに対するアクションを実行することによるオブジェクト入力順序の分岐情報生成手段とを設けたことを特徴とするテスト・スクリプト部品の自動生成システム。
【請求項２】
被テスト・プログラムの画面の各オブジェクトに関する定義情報と各オブジェクトに対するフォーカス取得順序と各オブジェクトに対するアクションを実行することによるオブジェクト入力順序の分岐情報をもとに、各画面に対しての全ての入力パターン生成手段を設けたことを特徴とする請求項１に記載のテスト・スクリプト部品の自動生成システム。
【請求項３】
請求項１または２に記載のテスト・スクリプト部品の自動生成システムにおいて、被テスト・プログラムの画面定義情報及びイベント情報を画面のソースから直接参照しユーザが被テスト・プログラムの画面ＩＤを入力し指定することをトリガとして取得し、標準アクション・パターン及び画面毎の画面定義情報及びイベント情報を用いて画面毎の画面情報を作成し、各オブジェクトに対する入力パターンの組み合わせより被テスト・プログラム画面における全入力パターンを網羅したテスト・スクリプトを作成することを特徴とする請求項１または２に記載のテスト・スクリプト部品の自動生成システムを用いたテスト・スクリプト部品の自動生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア・プログラムの自動テストシステムおよびテスト方法に関する。
【背景技術】
【０００２】
ソフトウェア・プログラムの自動テスト従来技術は、次の６領域に分けられる。１．テスト項目の自動生成技術、２．テスト手順の自動生成技術、３．テストデータの自動生成技術、４．テスト・スクリプトの自動生成技術、５．自動テスト実行技術、６．テスト結果の自動出力技術。
本発明のソフトウェア・プログラムの自動テストシステムおよびテスト方法は、このうち上記４のテスト・スクリプトの自動生成技術に関するものである。テスト・スクリプトとは、被テストプログラムとは別に、被テストプログラムの動作を外部からシミュレーションさせるためのプログラムである。
【０００３】
従来のテスト・スクリプトの自動生成技術による自動生成方法の例としては、特許文献１、特許文献２、特許文献３、特許文献４などに示されるような方法がある。
【０００４】
【特許文献１】特開２００２−１４８４５号
【０００５】
【特許文献２】特開平８−２２１２９１号
【特許文献３】特開平９−２２３０４０号
【特許文献４】特開平１０−３０１８０９号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記従来技術には、以下の２つの問題点があった。
一つは、画面の各オブジェクトに対する遷移パターンを全て把握できていないという問題である。従来のスクリプト部品の生成では、「画面のラジオボタンの押下による画面入力範囲の変更」などのイベントを把握することをせず、例えば、特許文献１の例では、テスト・スクリプトを自動生成できるが、画面の各オブジェクトに対するイベント情報を取得していないため、そのアクションにより画面の入力範囲が制限された場合でも把握できず、プロテクト状態にあるオブジェクトに対して数値の入力などを行ってしまうという問題があった。また、特許文献４の例では、画面のリソースコードを直接参照することによって、画面の各オブジェクト情報を取得しているが、アクションを実行することによるオブジェクト入力範囲制限の分岐情報を取得していないという問題があった。
もう一つは、画面に対するテスト・スクリプトのパターン生成に関する問題で、従来のテスト・スクリプトの生成では画面の入力パターンを全て網羅していなかったため、稀な操作パターンの場合でのバグの検出が不可能であるという問題があった。例えば特許文献１、特許文献３の例では、全ての入力イベントを少なくとも１回は必ず実行するようなテスト・スクリプトを生成するのみで、全ての入力パターンを網羅していないという問題があった。
【０００７】
本発明の目的は、上記問題を解決し、画面の各オブジェクトに対する遷移パターン及び画面の入力パターンを全て網羅したテスト・スクリプト部品を自動生成するシステムとテスト・スクリプト部品自動生成方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明は以下のようなシステム及び方法を用いる。
まず、各開発に使用する製品に対応する標準アクション・パターンを事前準備し、システムに格納しておく。標準アクション・パターンはラジオボタン、コンボボックス、テキスト入力欄といった、オブジェクト毎に、ボタングループのうち一つを選択するとか、テキストを入力するといったオブジェクトに特有の操作コマンドを記述したものである。
また、被テスト・プログラムの画面定義情報、イベント情報を画面のソースより直接参照して取得し、格納する。取得方法はユーザが被テスト・プログラムの画面ＩＤを入力し指定することをトリガとして行われるようにする。画面定義情報は、画面内の各オブジェクトに対応するフォーカス取得順序、画面上の配置、大きさ、アクションの種類、入力可能範囲などを含む。イベント情報は、各オブジェクトに対して、ラジオボタンの一つを選択した場合などのアクションを実行した際の、他のオブジェクトに対する選択可能状態、選択不可能状態などの状態遷移の分岐に関する情報を含む。
【０００９】
本システムは、標準アクション・パターン、画面毎の画面定義情報、イベント情報を用いて、画面毎の画面情報を作成する機能を備える。画面毎の画面情報とは、各オブジェクト毎の定義情報、フォーカス取得順序、各オブジェクトに対するアクションを実行した際の他のオブジェクトに関する状態遷移を表形式で表したものである。
また、本システムはこれらの情報を用いて各オブジェクトに対する入力パターンの組み合わせより、被テスト・プログラム画面における全入力パターンを網羅したテスト・スクリプト作成する機能を備える。この際、ラジオボタンを一つ選択したことなどによる、他のオブジェクトの選択可能状態、不可能状態を考慮したテスト・スクリプトを作成する。また、画面を組み合わせることにより、複数画面に跨る事務処理毎のテスト・スクリプトを作成することを可能にする。
【００１０】
本システムの備えるこれらの情報及び機能により、テスト・スクリプトを自動生成する。
作成したテスト・スクリプトは自動実行プログラムによって実行され、テスト結果はテスト結果記憶装置に記憶する。エラーとなった場合にはエラー情報をエラー情報記憶装置に記憶する。
これにより、テスト実行者は、被テスト対象となる画面のＩＤを指定するだけで、その画面に対する遷移パターン及び画面の入力パターンを全て網羅したテスト・スクリプト部品を自動生成することができ、入力パターン・テストを実行することができる。また一つの事務処理が複数画面に跨る場合にも、事務処理単位のテストを実行することが可能となる。また、全ての入力パターンを網羅することにより、稀なパターンのバグの摘出を効率よく実行することができる。
本発明のテスト・スクリプト記憶システムをユーザ端末に搭載することによって各ユーザの入力情報を記憶させ、障害発生時の再現テストへの入力情報とすることも可能である。
【発明の効果】
【００１１】
以上、本発明のテスト・スクリプト部品を自動生成するシステム及び自動生成方法によれば、画面の各オブジェクトに対する遷移パターン及び画面の入力パターンを全て網羅したテスト・スクリプト部品を自動生成し、自動的にテストを実施することが可能となる。
また、被テスト・プログラム画面に入力範囲の分岐がある場合でも、分岐を含めたテスト・スクリプトを作成することができ、効率のよいバグ摘出を行うことができる。
【発明を実施するための最良の形態】
【００１２】
以下本発明の実施の形態を図を用いて説明する。
図１は本発明のテスト・スクリプト部品の自動生成システムの構成図である。
本発明のテスト・スクリプト部品の自動生成システムは、製品毎における画面定義情報記憶機能１１１と、画面定義情報１０２とイベント情報１０３とを格納する画面情報記憶機能１１２と、表形式のオブジェクト情報、フォーカス順序、イベント情報より成る画面情報を出力する画面情報生成機能１２１と、テスト・スクリプト生成機能１２２と、生成したテスト・スクリプト記憶機能１１４と、テスト・スクリプト自動実行機能１２３と、テスト結果記憶機能１１６と、エラー情報記憶機能１１７を備え、入力装置１０１から被テスト対象となる画面ＩＤを入力する。
画面定義情報１１１は、開発に使用する製品の各オブジェクトの定義情報であり、画面内の各オブジェクトに対応するフォーカス取得順序、画面上の配置、大きさ、アクションの種類、入力可能範囲を含む。
画面定義情報１０２は、被テスト・プログラム画面より直接テキスト形式で参照した画面定義情報でフォーカス取得順序を含む。イベント情報１０３は、画面定義情報１０２同様、被テスト・プログラム画面より直接テキスト形式で参照した、各オブジェクトに対してアクションを実行した際のイベント情報である。
【００１３】
画面情報生成機能１２１は、入力装置１０１より入力された画面ＩＤ情報、画面定義情報１０２より入力された各オブジェクトに関する定義情報とフォーカス取得順序、イベント情報１０３より入力された各オブジェクトに対するアクションを実行した際の入力範囲分岐情報を、表形式のオブジェクト情報、フォーカス順序、イベント情報より成る画面情報１１３として出力する機能である。  
テスト・スクリプト生成機能１２２は、上記画面情報１１３を入力情報とし、各画面における全入力パターンをテスト・スクリプト１１５として作成し、テスト・スクリプト記憶機能１１４に格納する。一つの事務処理が複数画面に跨る場合は、入力装置１０１より、一つの事務処理を形成する画面ＩＤを複数指定することでテスト・スクリプトを作成する。
テスト・スクリプト自動実行機能１２３は、上記テスト・スクリプト１１５を入力情報とし、テスト・スクリプトの自動実行を行う。実行した結果が正常に終了した場合は、テスト結果記憶機能１１６にテスト結果を出力し、実行した結果が正常に終了しなかった場合はエラー情報記憶機能１１７にエラー情報を出力する。
【００１４】
図２は、本発明の処理フローを示したものである。入力装置１０１にて画面ＩＤを指定し（処理２０１）、指定された被テスト・プログラムの画面ＩＤと合致する画面定義をテキスト形式で参照する（処理２０２）。次に、指定された被テスト・プログラムの画面ＩＤと合致する画面ソースをテキスト形式で参照する（処理２０３）。次に製品毎の画面定義記憶装置から使用している製品の書式を読み込み、画面定義、画面ソースを解読する（処理２０４）。解読した画面定義、画面ソースからオブジェクトへの入力範囲制限等の分岐を判別し、画面情報を作成する（処理２０５）。オブジェクトへの入力範囲制限等の分岐は図３により後述する。画面情報については、図４により後述する。
【００１５】
処理２０５で作成した画面情報の組み合わせより被テスト・プログラムの画面のテスト・スクリプトを作成する（処理２０６）。次に一事務処理が複数画面に跨るか判断し（処理２０７）、複数画面に跨る場合には入力端末１０１より指定された一事務処理を構成する画面ＩＤの組み合わせよりテスト・スクリプトを作成する（処理２０８）。
【００１６】
作成されたテスト・スクリプトについて、自動でテストを実行する（処理２０９）。テスト実行結果がエラーであるか判断し（処理２１０）、エラーである場合には、エラー情報記憶装置に記憶する処理を行う（処理２１１）。エラーで無い場合には、テスト結果記憶装置にテスト結果を記憶する処理を行う（処理２１２）。最後にテスト・スクリプトが全パターン終了であるかの判定を行い（処理２１３）、全パターン終了でない場合には、処理２０９のスクリプト実行処理を行う。
【００１７】
図３は、被テスト・プログラム画面にイベント情報が存在した場合の処理フローを示したものである。まず指定された画面ＩＤをもとに被テスト・プログラム画面よりイベント情報を直接テキスト形式で参照する（処理３０１）。イベント情報の有無を判断し（処理３０２）、イベント情報の存在する場合は、イベント情報の読み込み処理を行う（処理３０３）。存在しない場合には処理を終了する。読み込まれたイベント情報は、イベント情報にオブジェクトのプロテクトによる入力範囲分岐情報が記載されているかの判定を行い（処理３０４）、記載ありの場合には各オブジェクトにアクションを実行した際の他のオブジェクトにおける選択可能状態、選択不可能状態の分岐を場合分けした表を作成する処理を行う（処理３０５）。記載なしの場合には処理を終了する。
【００１８】
図４は画面情報生成機能１２１により作成された画面情報１１３の例を示す。図４（ａ）は、被テスト・プログラム画面の各オブジェクトにおける位置、フォント、数値入力範囲などの情報を、画面定義情報１１１を基に解読したものを表で記しているものである。図４（ｂ）は被テスト・プログラム画面の各オブジェクト毎のフォーカス取得順序を記しているものである。図４（ｃ）は図３のフローにて作成されたイベント情報を示している。
図４では、例えば、オブジェクト３（ＯＢＪ３）のラジオボタン２を押下すると、オブジェクト４（ＯＢＪ４）のテキストボックスが選択不可能状態になることを示している。
【００１９】
図５は、テスト・スクリプト生成機能１２２により作成されたテスト・スクリプト１１５の一例を示したものである。例えば、図５で「スクリプト１」は、オブジェクト１のテキストボックスに“あああ”を入力し、次にオブジェクト２のラジオボタンを押下し、次にオブジェクト４に“0”を入力するスクリプトを示している。スクリプトの本数は、図４に示す組み合わせの数だけ存在する。
【００２０】
図６は、一つの事務処理が複数の画面に跨る際の事務処理毎のテスト・スクリプトの一例を示している。例えば、図６の「テスト・スクリプト１」においては、画面１において画面１のスクリプト１を実行し、次に画面２において画面２のスクリプト１を実行し、次に画面３において画面３のスクリプト１を実行し、最後に画面４において画面４のスクリプト１を実行するスクリプトを示している。
【図面の簡単な説明】
【００２１】
【図１】本発明を実現するための、計算機のハードウェア機器構成の一例を示す図である。
【図２】本発明を実現するための処理全体のフローの一例を示す図である。
【図３】イベント情報による分岐情報を把握するための処理の一例を示す図である。
【図４】画面定義、画面ソースより作成された画面情報の一例を示す図である。
【図５】被テスト・プログラム画面毎のテスト・スクリプトの一例を示す図である。
【図６】事務処理が複数画面に跨る場合のテスト・スクリプトの一例を示す図である。
【符号の説明】
【００２２】
１０１・・・画面ＩＤを指定する入力装置、１０２・・・画面定義情報、１０３・・・イベント情報、１０４・・・画面ＩＤを指定する入力装置、１１１・・・各オブジェクトの定義情報、１１２・・・画面情報生成処理装置、１１３・・・作成された画面情報、１１４・・・テスト・スクリプト記憶装置、１１５・・・テスト・スクリプト、１１６・・・正常なテスト結果を記憶する装置、１１７・・・エラー結果を記憶する装置、１２１・・・画面情報生成処理、１２２・・・テスト・スクリプト生成処理、１２３・・・テスト・スクリプト自動実行処理、２０１・・・画面ＩＤを指定する処理、２０２・・・画面定義をテキスト形式で参照する処理、２０３・・・画面ソースをテキスト形式で参照する処理、２０４・・・画面定義、画面ソースを解読する処理、２０５・・・画面情報を作成する処理、２０６・・・テスト・スクリプトを作成する処理、２０７・・・一事務処理が複数画面に跨るか判定する処理、２０８・・・一事務処理を構成する画面ＩＤの組み合わせよりテスト・スクリプトを作成する処理、２０９・・・テスト・スクリプト自動実行処理、２１０・・・テスト実行結果がエラーであるかの判定する処理、２１１・・・エラー情報記憶装置に記憶する処理、２１２・・・正常なテスト結果をテスト結果記憶装置に記憶する処理、２１３・・・テスト・スクリプトが全パターン終了であるか判定する処理、３０１・・・イベント情報を直接テキスト形式で参照する処理、３０２・・・イベント情報が存在するか判定する処理、３０３・・・イベント情報の読み込みを行う処理、３０４・・・オブジェクトのプロテクトによる入力範囲分岐情報が記載されているか判定する処理、３０５・・・各オブジェクトにアクションを実行した際の他のオブジェクトにおける選択可能状態、選択不可能状態の分岐を場合分けした表を作成する処理、４０１・・・被テスト・プログラム画面の各オブジェクトにおける位置、フォント、数値入力範囲などの情報を記した表、４０２・・・被テスト・プログラム画面の各オブジェクト毎のフォーカス取得順序を記した表、４０３・・・被テスト・プログラム画面の各オブジェクトにおけるイベント情報の表、５０１・・・テスト・スクリプトの表、６０１・・・一事務処理が複数の画面に跨る場合のテスト・スクリプト
【図１】
2005115582.tif 000003
【図２】
2005115582.tif 000004
【図３】
2005115582.tif 000005
【図４】
2005115582.tif 000006
【図５】
2005115582.tif 000007
【図６】
2005115582.tif 000008