(57)【要約】【課題】テストにおける入力や選択の手間を削減する。【解決手段】プログラムのテスト方法は、表示画面上の入力項目のデータに応じて所定の処理を実行しその結果を出力するためのソフトウェアのスケルトンとなるソースコードを生成し、生成されたソースコードから作成されたプログラムのテストを実行する。このテスト方法において、ソースコード生成時に、ソースコードと共に入力項目のテストデータを設定するためのプログラムとなる設定メソッドを生成し、テスト実行前に、設定メソッドを呼び出してテストデータを設定し、テスト実行時に、設定メソッドを呼び出して入力項目内にテストデータが設定された状態で表示画面を表示する。【選択図】図３
2007304778.tif 000002
【特許請求の範囲】
【請求項１】
表示画面上の入力項目のデータに応じて所定の処理を実行しその結果を出力するためのソフトウェアのスケルトンとなるソースコードを生成し、生成されたソースコードから作成されたプログラムのテストを実行する方法において、
前記ソースコード生成時に、前記ソースコードと共に前記入力項目のテストデータを設定するためのプログラムとなる設定メソッドを生成するステップと、
前記テスト実行前に、前記設定メソッドを呼び出して前記テストデータを設定するステップと、
前記テスト実行時に、前記設定メソッドを呼び出して前記入力項目内に前記テストデータが設定された状態で前記表示画面を表示するステップとを有することを特徴とするプログラムのテスト方法。
【請求項２】
前記テストデータを設定するステップは、前記テストデータの最大桁の入力値を設定し、
前記表示画面を表示するステップは、前記入力項目に前記テストデータの最大桁の入力値が設定された状態で前記表示画面を表示することを特徴とする請求項１記載のプログラムのテスト方法。
【請求項３】
前記ソースコード生成時に、前記ソースコードと共に前記入力項目に入力したテストデータが正常にデータベースに登録、更新、又は削除されたかどうかを判定するためのプログラムとなる判定メソッドを生成するステップと、
前記テスト実行時に、前記判定メソッドを呼び出してその判定結果を表示するステップとをさらに有することを特徴とする請求項１又は２記載のプログラムのテスト方法。
【請求項４】
前記ソフトウェアは、Ｗｅｂアプリケーションであることを特徴とする請求項１乃至３のいずれか１項に記載のプログラムのテスト方法。
【請求項５】
表示画面上の入力項目のデータに応じて所定の処理を実行しその結果を出力するためのソフトウェアのスケルトンとなるソースコードを生成し、生成されたソースコードから作成されたプログラムのテストを実行するプログラムにおいて、
コンピュータに、
前記ソースコード生成時に、前記ソースコードと共に前記入力項目のテストデータを設定するためのプログラムとなる設定メソッドを生成するステップと、
前記テスト実行前に、前記設定メソッドを呼び出して前記テストデータを設定するステップと、
前記テスト実行時に、前記設定メソッドを呼び出して前記入力項目内に前記テストデータが設定された状態で前記表示画面を表示するステップとを実行させることを特徴とするプログラム。
【請求項６】
前記テストデータを設定するステップは、前記テストデータの最大桁の入力値を設定し、
前記表示画面を表示するステップは、前記入力項目に前記テストデータの最大桁の入力値が設定された状態で前記表示画面を表示することを特徴とする請求項５記載のプログラム。
【請求項７】
コンピュータに、
前記ソースコード生成時に、前記ソースコードと共に前記入力項目に入力したテストデータが正常にデータベースに登録、更新、又は削除されたかどうかを判定するためのプログラムとなる判定メソッドを生成するステップと、
前記テスト実行時に、前記判定メソッドを呼び出してその判定結果を表示するステップとをさらに実行させることを特徴とする請求項５又は６記載のプログラム。
【請求項８】
前記ソフトウェアは、Ｗｅｂアプリケーションであることを特徴とする請求項５乃至７のいずれか１項に記載のプログラム。
【請求項９】
表示画面上の入力項目のデータに応じて所定の処理を実行しその結果を出力するためのソフトウェアのスケルトンとなるソースコードを生成し、生成されたソースコードから作成されたプログラムのテストを実行する装置において、
前記ソースコード生成時に、前記ソースコードと共に前記入力項目のテストデータを設定するためのプログラムとなる設定メソッドを生成する生成手段と、
前記テスト実行前に、前記設定メソッドを呼び出して前記テストデータを設定する設定手段と、
前記テスト実行時に、前記設定メソッドを呼び出して前記入力項目内に前記テストデータが設定された状態で前記表示画面を表示する表示手段とを有することを特徴とするプログラムのテスト装置。
【請求項１０】
前記設定手段は、前記テストデータの最大桁の入力値を設定し、
前記表示手段は、前記入力項目に前記テストデータの最大桁の入力値が設定された状態で前記表示画面を表示することを特徴とする請求項９記載のプログラムのテスト装置。
【請求項１１】
前記ソースコード生成時に、前記ソースコードと共に前記入力項目に入力したテストデータが正常にデータベースに登録、更新、又は削除されたかどうかを判定するためのプログラムとなる判定メソッドを生成する手段と、
前記テスト実行時に、前記判定メソッドを呼び出してその判定結果を表示する手段とをさらに有することを特徴とする請求項９又は１０記載のプログラムのテスト装置。
【請求項１２】
前記ソフトウェアは、Ｗｅｂアプリケーションであることを特徴とする請求項９乃至１１のいずれか１項に記載のプログラムのテスト装置。
【請求項１３】
請求項９乃至１２のいずれか１項に記載のプログラムのテスト装置を備えたことを特徴とするアプリケーション開発システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムのテスト方法、プログラム、テスト装置、及びアプリケーション開発システムに係り、特にアプリケーション開発のもととなるスケルトンとなるソースコードを生成し、生成されたソースコードを用いて作成されたアプリケーションの単体テストを行う機能を有するアプリケーション開発システム（フレームワーク）の単体テスト簡略化機能に関する。
【背景技術】
【０００２】
近年のアプリケーション開発では、インターネットに代表されるネットワーク技術の進歩に伴い、ネットワークを介してサーバとクライアントとの間でＨＴＴＰ（HyperText Transfer Protocol）プロトコルを使って各種情報のやり取りを行うことで動作する形態の、いわゆるＷｅｂアプリケーションの開発が行われている。Ｗｅｂアプリケーションの場合、消費者向けのＷｅｂサイトから企業内の基幹システム等多岐にわたって利用されるため、その開発側では、これらニーズに合わせて品質の高い製品をより短期間で開発することが求められている。
【０００３】
Ｗｅｂアプリケーションを構成するコンポーネントとしては、クライアント側のブラウザで表示される画面のページを構成するＨＴＭＬ（HyperText Markup Language）ファイルやそれに関連付けたイメージファイル・音声ファイル等のほか、動的なページを生成するためのプログラムコード等がある。プログラムコードには、クライアント側で実行されるものや、サーバ側で実行されるものがあり、後者には例えばソースコードとしてＪＡＶＡ（登録商標。以下省略）コードを使用し、ブラウザからの要求を受け取って必要な処理を行い、その処理結果を返却するサーブレットや、ＨＴＭＬ内にＪＡＶＡコードを埋め込むことで動的なページを生成するＪＳＰ（Java Server Pages）等が含まれる。
【０００４】
従来、このようなＷｅｂアプリケーションの開発では、ソフトウェアを用いて、スケルトンとなるソースコードを生成し、そのソースコードを利用してアプリケーションを構築する手法が知られている。この手法では、作成したアプリケーションの単体テストを行う工程で、表示画面上の入力データや選択ボタンによる画面遷移のチェックを行っている。
【０００５】
これに関連する先行技術文献としては、特許文献１がある。この特許文献１では、アプリケーションオブジェクトの生成の省力化とプログラム品質の安定化を可能にするアプリケーションオブジェクトジェネレータが記述されている。このアプリケーションオブジェクトジェネレータは、オブジェクトのプロパティを列記したリストと、標準的なソースを記述したスケルトンを入力源とし、それをもとにオブジェクト自身のソースと単体テスト用のソースを出力する。
【特許文献１】特開２０００−２０２９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した単体テストでの画面遷移のチェックの際に、１画面に多くの入力フォームや選択ボタンがあると、その入力や選択の操作が非常に面倒であり、単体テストに必要なテスト工数が大きくなっていた。また、パターンが異なるだけで、ほぼ同様の入力チェックテストを行う場合、入力データに大差がないにも関わらず、同じだけの作業をパターンごとに行う必要があり、パターン数に比例してテスト工数も増大した。
【０００７】
特に単体テストで手間がかかるのは、入力フォームに入力された入力値の最大桁に関する異常動作を確認する最大桁チェックと、入力フォームに入力された入力値の文字制限に関する異常動作を確認する文字制限チェックとがある。これらのチェックでは、正常にエラー画面が表示されることを確認する。
【０００８】
このように従来のアプリケーション開発の手法では、複数パターンを有し、入力チェック項目や選択チェック項目が多大にある単体テストを行う場合、同一のテストデータを毎度入力、選択せねばならず、手間で、テスト工数が多く取られる、という問題があった。特許文献１は、このような問題を必ずしも考慮してなされたものではない。
【０００９】
本発明は、以上の問題点を解決し、テストにおける入力や選択の手間を削減できるプログラムのテスト方法、プログラム、テスト装置、及びアプリケーション開発システムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明に係るプログラムのテスト方法は、表示画面上の入力項目のデータに応じて所定の処理を実行しその結果を出力するためのアプリケーションのスケルトンとなるソースコードを生成し、生成されたソースコードから作成されたプログラムのテストを実行する方法において、前記ソースコード生成時に、前記ソースコードと共に前記入力項目のテストデータを設定するためのプログラムとなる設定メソッドを生成するステップと、前記テスト実行前に、前記設定メソッドを呼び出して前記テストデータを設定するステップと、前記テスト実行時に、前記設定メソッドを呼び出して前記入力項目内に前記テストデータが設定された状態で前記表示画面を表示するステップとを有することを特徴とする。
【００１１】
前記テストデータを設定するステップは、前記テストデータの最大桁の入力値を設定し、前記表示画面を表示するステップは、前記入力項目に前記テストデータの最大桁の入力値が設定された状態で前記表示画面を表示してもよい。
【００１２】
本発明において、前記ソースコード生成時に、前記ソースコードと共に前記入力項目に入力したテストデータが正常にデータベースに登録、更新、又は削除されたかどうかを判定するためのプログラムとなる判定メソッドを生成するステップと、前記テスト実行時に、前記判定メソッドを呼び出してその判定結果を表示するステップとをさらに有してもよい。
【００１３】
前記ソフトウェアは、Ｗｅｂアプリケーションであってもよい。
【００１４】
本発明に係るプログラムは、表示画面上の入力項目のデータに応じて所定の処理を実行しその結果を出力するためのソフトウェアのスケルトンとなるソースコードを生成し、生成されたソースコードから作成されたプログラムのテストを実行するプログラムにおいて、コンピュータに、前記ソースコード生成時に、前記ソースコードと共に前記入力項目のテストデータを設定するためのプログラムとなる設定メソッドを生成するステップと、前記テスト実行前に、前記設定メソッドを呼び出して前記テストデータを設定するステップと、前記テスト実行時に、前記設定メソッドを呼び出して前記入力項目内に前記テストデータが設定された状態で前記表示画面を表示するステップとを実行させることを特徴とする。
【００１５】
本発明に係るプログラムのテスト装置は、表示画面上の入力項目のデータに応じて所定の処理を実行しその結果を出力するためのソフトウェアのスケルトンとなるソースコードを生成し、生成されたソースコードから作成されたプログラムのテストを実行する装置において、前記ソースコード生成時に、前記ソースコードと共に前記入力項目のテストデータを設定するためのプログラムとなる設定メソッドを生成する生成手段と、前記テスト実行前に、前記設定メソッドを呼び出して前記テストデータを設定する設定手段と、前記テスト実行時に、前記設定メソッドを呼び出して前記入力項目内に前記テストデータが設定された状態で前記表示画面を表示する表示手段とを有することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、設定メソッドをスケルトンとなるソースコードとともに生成し、スケルトンとして生成されるソースコード自体に設定メソッドを用意し、テストデータを設定しているので、そのメソッドを呼び出すだけで、テストが実行でき、これによりテストにおける入力や選択の手間を削減できる。また、一度、テストすべきデータを設定しておけば、複数のパターンで少量の変更のみで同様のデータを使用できるので、テストにおける手間が削減できる。
【発明を実施するための最良の形態】
【００１７】
次に、本発明に係るプログラムのテスト方法、プログラム、テスト装置、及びアプリケーション開発システムを実施するための最良の形態について、図面を参照して詳細に説明する。
【実施例１】
【００１８】
図１は、本実施例の要部構成を説明する図である。
【００１９】
本実施例に係るプログラムのテスト方法を用いたアプリケーション開発システムは、コンピュータ機に実装されるソフトウェアから構成され、その機能はコンピュータ機のＣＰＵ（Central Processing Unit）がソフトウェアの命令を実行することにより実現される。このアプリケーション開発システムは、例えばネットワークを介してサーバとクライアントとの間でＨＴＴＰプロトコルを使って各種情報のやり取りを行うことで動作するＷｅｂアプリケーションを構築するもので、好適にはアプリケーション開発環境となるフレームワークとして提供される。本実施例に係るプログラムのテスト方法、プログラム、及びテスト装置は、このフレームワークを構成するソフトウェアの処理により実現されるテスト用の機能、例えば単体テスト簡略化機能として実現可能である。
【００２０】
図１に示すアプリケーション開発システムは、そのソフトウェアの要部構成として、本テスト手法を用いて構成されたソースジェネレータ１１を有している。その他、図示しない各種ソフトウェアも含まれる。各種ソフトウェアには、一例として、オペレーティングシステム（ＯＳ）と、Ｗｅｂサーバと、サーブレットやＪＳＰを動作させるコンテナ（サーブレットエンジン）と、ＪＡＶＡプログラム開発環境を提供する各種プログラム、例えばコンパイラ、デバッガ、クラスライブラリ、ＪＡＶＡ仮想マシン（ＪＶＭ）などを含むＪＤＫ（Java Development Kit）と、ＪＡＶＡプログラムからデータベースにアクセスするＪＤＢＣ（Java DataBase Connectivity）及びそのＪＤＢＣドライバとが含まれる。これら各種ソフトウェアについては、既知構成のものが適用されるため、その詳細を省略する。
【００２１】
ソースジェネレータ１１は、例えばアプリケーション開発のもととなるスケルトンとなるソースコードを自動生成する既知構成のソフトウェアを適用したものである。本実施例のソースジェネレータ１１は、予め定められた形式の設定ファイル、例えばＸＭＬ（eXtensible Markup Language）ファイルからアプリケーション用のスケルトンとなるソースコード、例えばＪＡＶＡコードを生成する。生成されるソースコードには、Ｗｅｂアプリケーションを構成する複数のパターン１〜ｎと、これら各パターン１〜ｎに応じて生成される設定メソッド１〜ｎとが含まれる。
【００２２】
図２は、スケルトンとなるソースコードの構成及びその機能を説明するものである。
【００２３】
図２を参照すると、ソースコードは、テスト対象画面となる入力画面Ａ２を呼び出す画面（以下「入力画面呼び出し画面」と呼ぶ）Ａ１を構成するコードと、その入力画面呼び出し画面Ａ１に呼び出される入力画面Ａ２を構成するコードと、入力画面呼び出し画面Ａ１に呼び出される設定メソッドＡ３に対応するコードと、入力画面Ａ２に呼び出されるテスト実行結果画面Ａ４を構成するコードとを含む。
【００２４】
入力画面呼び出し画面Ａ１を構成するコードは、例えばＨＴＭＬ又はＪＳＰファイルで構成され、画面Ａ１上にリンクやボタンを表示しそのイベント動作に応じた処理を実行するためのコードを含む。この画面Ａ１を構成するコードには、クリック等のイベント発生後、入力画面Ａ２に遷移するため、入力画面Ａ２を構成するコードの場所がそのイベントに対応付けて記憶されている。また、この画面Ａ１を構成するコードには、テストデータを設定する設定メソッドＡ３を呼び出すため、設定メソッドＡ３を構成するコードの場所が記憶されている。もしくは、設定メソッドＡ３に対応するコードそれ自体が含まれている。
【００２５】
入力画面Ａ２を構成するコードは、例えばＪＳＰファイルで構成され、本実施例のテスト対象画面を構成するものであり、多くの入力フォームや選択ボタンに対応するコードを含んでいる。また、入力画面Ａ２を構成するコードには、入力結果を次画面やデータベースに送信するために、画面Ａ２上にリンクやボタンを表示しそのイベント動作に応じた処理を実行するためのコードを含んでいる。
【００２６】
設定メソッドＡ３に対応するコードは、例えばＪＳＰファイルで構成され、本実施例のアプリケーション開発システム（フレームワーク）によって予め設定されたメソッドであり、テストデータが設定されると、その設定されたテストデータを保持する。この設定メソッドＡ３が呼び出されると、設定されたテストデータを入力画面Ａ２に送信する。
【００２７】
テスト実行結果画面Ａ４を構成するコードは、例えばＪＳＰファイルで構成され、入力画面Ａ２から呼び出され、そのテスト実行結果にエラーの有無があるのか判断する一部となる画面である。
【００２８】
次に、図３を参照して、本実施例の動作について詳細に説明する。
【００２９】
まず、利用者によりアプリケーションのソースコードを生成するための設定ファイルが作成され（ステップＳｔ１）、ソースジェネレータ１１に入力される。すると、ソースジェネレータ１１は、その設定ファイルから、ソースコードのスケルトンを生成する（ステップＳｔ２）。このときに生成されるソースコードには、入力画面呼び出し画面Ａ１を構成するコードと、入力画面Ａ２を構成するコードと、テストデータを予め設定する設定メソッドＡ３に対応するコードとが含まれる。
【００３０】
次いで、生成されたソースコードのスケルトンをベースにして、利用者によりアプリケーションの設計仕様に応じたソースコードの追加や修正が行われる（ステップＳｔ３）。このとき、テスト対象画面である入力画面Ａ２の入力フォームや選択ボタンの変更や追加があれば、それに応じて設定メソッドＡ３により呼び出されるテストデータの設定項目も、変更や追加を行う。テスト実行前に、利用者により設定メソッドＡ３にテストデータとして入力すべき値や選択項目が設定される（ステップＳｔ３）。このとき、最も汎用性のあるパターンをベースにして、そこに他の複雑なパターンを網羅できるデータが設定される。
【００３１】
次いで、テスト実行時に、入力画面呼び出し画面Ａ１から入力画面Ａ２に遷移する際に、設定メソッドＡ３が呼び出される。これにより、入力画面Ａ２は、テストデータがすでに設定された状態で表示される。ゆえに、入力画面Ａ２のテストは、入力画面Ａ２からテスト実行結果画面Ａ４に遷移するイベントを行うだけで完了する（ステップＳｔ４）。
【００３２】
一つのパターンのテストが終了したら、それと異なるパターンのテストを行う必要があるかどうかの判断を利用者に促す（ステップＳｔ５）。その結果、異なるパターンのテストを行う必要がある場合（ステップＳｔ５：ＹＥＳ）、上記ステップＳｔ３に戻り、設定メソッドＡ３のテストデータを変更、追加する。一方、全てのパターンのテストが終了したら（ステップＳｔ５：ＮＯ）、入力画面を呼び出す画面Ａ１から設定メソッドＡ３を呼び出すメソッドを消去する（ステップＳｔ６）。
【００３３】
次に、図４に示す具体例を用いて、本実施例の動作を説明する。
【００３４】
まず、設定ファイルで、入力画面Ａ２にテキストボックスＢ１と選択ラジオボタンＢ２を有する設定をし、ソースジェネレータ１１によりソースコードのスケルトンを生成する。このとき、ソースコードのスケルトンには、設定メソッドＡ３に対応するコードが生成される（ステップＳｔ１１）。そのコードには、テキストボックスＢ１には空白を入力し、選択ラジオボタンＢ２には1番最初の項目を選択する設定がされている。このとき、一番汎用的なパターンのテキストボックスＢ１の文字制限として、半角英数で２０文字とする。
【００３５】
次いで、テスト実行前に、設定メソッドＡ３に対応するコード中のテキストボックスＢ１の設定項目を”abcdefghijklmnopqrst”に変更し（ステップＳｔ１２）、テストデータとする。
【００３６】
次いで、テスト実行時に、入力画面呼び出し画面Ａ１から入力画面Ａ２に遷移する際に入力画面Ａ２を構成するコードと共に設定メソッドＡ３も呼び出され、その入力画面Ａ２が表示される。このとき、入力画面Ａ２のテキストボックスＢ１には、設定メソッドＡ３に設定されたテストデータの”abcdefghijklmnopqrst”が表示される（ステップＳｔ１３）。
【００３７】
次いで、テキストボックスＢ１のテストが行われる。このテストの手順としては、まず、入力画面Ａ２のテキストボックスＢ１に表示されているテストデータの”abcdefghijklmnopqrst”を入力したという状態で、入力画面Ａ２からテスト実行結果画面Ａ４に遷移するイベントを発生させる。これにより、そのデータを入力した場合のテストが実行され、その結果が画面表示される。こうすることで、正常動作確認が行われる（ステップＳｔ１４）。
【００３８】
次に、入力画面Ａ２でテキストボックスＢ１に”abcdefghijklmnopqrst”と表示されている状態から、末尾に”u”を追加したり、”st”を”あ”に変更し（ステップＳｔ１５、Ｓｔ１６）、入力画面Ａ２からテスト実行結果画面Ａ４に遷移するイベントを発生させる。これにより、そのデータを入力した場合のテストが実行され、その結果が画面表示される。こうすることで、異常動作確認が行われる（ステップＳｔ１７）。
【００３９】
上記処理にて一通り一つのパターンでテストが終了したら、次にテストを行うパターンの仕様に合わせて、設定メソッドも変更する。例えば、テキストボックスＢ１の仕様が文字制限として半角英数で２５文字とすると、設定メソッドＡ３における現在のテストデータに設定されている”abcdefghijklmnopqrst”を”abcdefghijklmnopqrstuvwxy”に変更を行う。このテストデータを用いて、前記と同様のテストを行う。
【００４０】
最後に、テストが終了したら、入力画面呼び出し画面Ａ１を構成するコードから設定メソッドＡ３を呼び出すメソッドを消去する。
【００４１】
次に、図５〜図１４を参照して、上記の設定ファイル、入力画面呼び出し画面Ａ１を構成するコード、入力画面Ａ２を構成するコード、設定メソッドＡ３に対応するコード、及びテスト結果実行画面Ａ４の具体例を説明する。本例では、入力画面Ａ２としてログイン画面を想定している。
【００４２】
図５は、本例のＷｅｂアプリケーションの構成を示す全体構成図である。図５の例では、Ｗｅｂアプリケーションは、入力画面呼び出し画面Ａ１を表示するためのｈｔｍｌファイルと、入力画面Ａ２を表示するためのＪＳＰファイルと、設定メソッドＡ３に対応するＪＳＰファイルと、テスト実行結果画面Ａ４を表示するためのＪＳＰファイルとを含む。また、画面Ａ２構成コードから呼び出されるサーブレットも含まれる。このサーブレットは、データベース（ＤＢ）にアクセスして、受け渡されたテストデータがＤＢに登録されたデータと一致するかどうかのＤＢ照合を行い、その結果に応じてログインが可能かどうかのメッセージ（図中の例ではログイン可能を表す「Ｓｕｃｃｅｓｓ！」等）を表示するテスト実行結果画面Ａ４を記述するＪＳＰファイルを呼び出す。
【００４３】
図６は、図５に示すＷｅｂアプリケーションのスケルトンとなるソースコードを生成するための設定ファイルの例である。設定ファイルは、ＸＭＬファイルで構成される。このＸＭＬファイルには、ｎａｍｅ属性をＡ２に設定した＜ｉｔｅｍ＞タグが記述され、この＜ｉｔｅｍ＞タグ内には、＜ｉｎｐｕｔ＞タグ及び＜ｓｅｌｅｃｔ＞タグが記述される。＜ｉｎｐｕｔ＞タグ内には、２つの＜ｅｌｅｍｎｔ＞タグが記述される。一方は、ｎａｍｅ属性がＵｓｅｒＮａｍｅ、ｔｙｐｅ属性がｓｔｒｉｎｇ、ｏｐｅｒａｔｉｏｎ属性がｃｈｅｃｋ、ｓｉｚｅ属性が５に、他方はｎａｍｅ属性がＵｓｅｒＩＤ、ｔｙｐｅ属性がｉｎｔ、ｏｐｅｒａｔｉｏｎ属性がｃｈｅｃｋ、ｓｉｚｅ属性が７にそれぞれ設定されている。＜ｓｅｌｅｃｔ＞タグ内には、１つの＜ｅｌｅｍｎｔ＞タグが記述され、その＜ｅｌｅｍｎｔ＞タグ内には、ｎａｍｅ属性がＤｅｐａｒｔｍｅｎｔ（部門）、ｔｙｐｅ属性がｉｎｔ、ｏｐｅｒａｔｉｏｎ属性がｃｈｅｃｋ、ｓｉｚｅ属性が７にそれぞれ設定されている。
【００４４】
図７は、図６に示す設定ファイルから生成されるスケルトンの構成例を示す。スケルトンには、ＨＴＭＬファイルからなる画面Ａ１構成コード（ｈｔｍｌ）と、ＪＳＰファイル（Ａ２．ｊｓｐ）からなる画面Ａ２構成コードと、テストデータを設定するためのＪＳＰファイル（Ａ３．ｊｓｐ）からなる設定メソッドＡ３とが含まれる。
【００４５】
図８は、画面Ａ１構成コードの例を示す。この画面Ａ１構成コードに対応するＨＴＭＬファイルにおいて、＜ｆｏｒｍ＞タグ内には、ｍｅｔｈｏｄ属性にＰＯＳＴが、ａｃｔｉｏｎ属性に画面Ａ２構成コードに対応するＪＳＰファイル（Ａ２．ｊｓｐ）がそれぞれ設定されている。また、＜ｉｎｐｕｔ＞タグ内には、ｔｙｐｅ属性にｓｕｂｍｉｔが、ｖａｌｕｅ属性にＧｏがそれぞれ設定されている。
【００４６】
図９は、図８に示す画面Ａ１構成コードにより表示される入力画面呼び出し画面Ａ１を示す。この画面Ａ１には、Ｇｏボタンが表示され、このボタンがクリックされると、そのイベント発生により画面Ａ２構成コードに対応するＪＳＰファイル（Ａ２．ｊｓｐ）が呼び出される。
【００４７】
図１０は、画面Ａ２構成コードの例を示す。この画面Ａ２構成コードに対応するＪＳＰファイルには、設定メソッドＡ３を読み込む箇所と、ＨＴＭＬが記述される箇所とが含まれる。ＨＴＭＬが記述される箇所では、＜ｆｏｒｍ＞タグ内に、ｍｅｔｈｏｄ属性にＰＯＳＴが、ａｃｔｉｏｎ属性に設定メソッドＡ３に対応するＪＳＰファイル（Ａ３．ｊｓｐ）がそれぞれ設定されている。また、＜ｉｎｐｕｔ＞タグ内には、４つの＜ｉｎｐｕｔ＞タグが記述される。最初の＜ｉｎｐｕｔ＞タグ内には、ｔｙｐｅ属性がｔｅｘｔ、ｎａｍｅ属性がＵｓｅｒｎａｍｅが設定され、ｖａｌｕｅ属性は設定メソッドＡ３から値を読み込む設定となっている。２番目の＜ｉｎｐｕｔ＞タグ内には、ｔｙｐｅ属性がｔｅｘｔ、ｎａｍｅ属性がＵｓｅｒＩＤが設定され、ｖａｌｕｅ属性は設定メソッドＡ３から値を読み込む設定となっている。３番目の＜ｉｎｐｕｔ＞タグ内には、ｔｙｐｅ属性がｒａｄｉｏ、ｎａｍｅ属性がＤｅｐａｒｔｍｅｎｔ（部門）が設定され、ｖａｌｕｅ属性は設定メソッドＡ３から値を読み込む設定となっている。最後の＜ｉｎｐｕｔ＞タグ内には、ｔｙｐｅ属性がｓｕｂｍｉｔ、ｖａｌｕｅ属性がＧｏにそれぞれ設定されている。
【００４８】
図１１は、図１０に示す画面Ａ２構成コードにより表示される入力画面Ａ２を示す。この入力画面Ａ２は、設定メソッドＡ３のテストデータ設定後の表示画面を表している。この入力画面Ａ２には、上記の画面Ａ２構成コードにより、Ｕｓｅｒｎａｍｅ及びＵｓｅｒＩＤの入力項目と、部門（Ｄｅｐａｒｔｍｅｎｔ）の選択項目（企画部、経理部、人事部、営業）と、Ｇｏボタンとが設定されている。このうち、Ｕｓｅｒｎａｍｅのテストデータには、半角英数で最大桁５に対応するａｉｕｅｏが、ＵｓｅｒＩＤのテストデータには、半角英数で最大桁７に対応する１２３４５６７が、部門のテストデータには、２番目の選択項目（経理部）がそれぞれ設定されている。この状態で、Ｇｏボタンがクリックされると、そのイベント発生により、入力されたテストデータを利用する所定のサーブレット（図５参照）が呼び出され、そのサーブレットの処理により、テストデータとＤＢの登録データとの間のＤＢ照合が行われ、その照合結果に応じてテスト実行結果画面Ａ４に対応するＪＳＰファイルが呼び出される。
【００４９】
図１２は、ＤＢ照合の結果、テストデータがＤＢの登録データと一致した場合のテスト実行結果画面Ａ４の表示例を示す。この場合、「ログインできました！」のメッセージが表記されたＪＳＰファイルが呼び出される。
【００５０】
図１３は、テストデータ設定前の設定メソッドＡ３の例を示す。この設定メソッドＡ３に対応するＪＳＰファイルには、Ｓｅｔｔｉｎｇクラスに、ＳｅｔｔｉｎｇＭｅｔｈｏｄメソッドが記述され、Ｕｓｅｒｎａｍｅ及びＵｓｅｒＩＤにはそれぞれ空白が入力され、Ｄｅｐａｒｔｍｅｎｔには最初の選択項目が選択された状態に設定されている。
【００５１】
図１４は、テストデータ設定後の設定メソッドＡ３の例を示す。この画面Ａ２構成コードに対応するＪＳＰファイルには、Ｓｅｔｔｉｎｇクラスに、ＳｅｔｔｉｎｇＭｅｔｈｏｄメソッドが記述され、Ｕｓｅｒｎａｍｅにはａｉｕｅｏが入力され、ＵｓｅｒＩＤには１２３４５６７が入力され、Ｄｅｐａｒｔｍｅｎｔには２番目の選択項目が選択された状態に設定されている。
【００５２】
以上説明したように、本実施例によれば、入力画面呼び出し画面Ａ１から入力画面Ａ２へ遷移する際、入力画面呼び出し画面Ａ１を構成するコードに設定メソッドＡ３を呼び出すメソッドをスケルトンのソースコードとして組み込んでおき、入力画面Ａ２に遷移した時点で、設定メソッドＡ３で予め設定されたテストデータが、入力、選択されている状態にする。テストが終了したら、手動で入力画面呼び出し画面Ａ１を構成するコードから設定メソッドＡ３を呼び出すメソッドの消去を行う。
【００５３】
従って、本実施例によれば、単体テストにおける入力チェック、選択チェックでの面倒な入力、選択を手作業でなく、予めスケルトンのソースコードとしてテストデータを設定する設定メソッドを提供し、そのメソッドを呼び出すことで、設定されたテストデータを自動的に入力、選択できる。すなわち、スケルトンとして生成されるソースコード自体に設定メソッドを用意し、テストデータを設定しているので、そのメソッドを呼び出すだけで、テストが実行でき、さらにテストすべきデータを一度設定しておけば、複数のパターンで少量の変更のみで同様のデータを使用できるため、テストにおける入力や選択の手間を大幅に削減できる。
【００５４】
また、本実施例では、設定メソッドで設定され、呼び出される入力値が、入力可能桁最大のものであり、それをもとに末尾桁に追加したり、文字種類を変更したりするテスト手法を念頭に置いた構成を採用している。このため、全ての入力項目で最大桁が入力されている状態で入力値が呼び出され、テスト実行時には、テストしたい入力項目にわずかな変更を加えることで簡単にテストできる。この効果は、テストで手間がかかる入力の最大桁チェックと入力文字の制限チェックとを行う際に最大限に発揮させることができる。
【実施例２】
【００５５】
次に、本発明の第２の実施例の構成について図面を参照して詳細に説明する。
【００５６】
図１５を参照すると、本実施例は、第１の実施例と比較して、設定ファイルからソースコードのスケルトンを生成する際に、設定メソッドＡ３に加え、判定メソッドＡ５を有する点で異なる。その他の構成については、第１の実施例と同様であるため、その説明を省略する。
【００５７】
判定メソッドＡ５は、これに対応するコードが例えばＪＳＰファイルで構成され、入力画面Ａ２で入力したテストデータが正常にデータベースに登録、更新、削除が行われたかどうかの結果をコンソール画面Ａ６に示す。この判定メソッドＡ５は、テスト実行結果画面Ａ４が表示されるタイミングで、テスト実行結果画面Ａ４から呼び出され、入力画面Ａ２で入力したテストデータが、データベースの保持するデータを更新した場合、その変更箇所を自動的に表示する。
【００５８】
図５のステップＳｔ１〜ステップＳｔ６で示される本実施例における動作は、図１に示された第１の実施例のステップＳｔ１〜ステップＳｔ１と同一のため、説明は省略する。ステップＳｔ７で、テスト終了後、第１の実施例と同様に設定メソッドＡ３の呼び出しメソッドを消去したあと、テスト実行結果画面Ａ４を構成するコードから判定メソッドＡ５を呼び出すメソッドを消去する（ステップＳｔ７）。
【００５９】
次に、本実施例の動作について、図面を参照して詳細に説明する。
【００６０】
まず、設定ファイルで、入力画面Ａ２に、テキストボックスＢ１と選択ラジオボタンＢ２を有する設定をし、ソースジェネレータ１１によりソースコードのスケルトンを作成する。このとき、設定メソッドＡ３と判定メソッドＡ５に対応するコードが生成される（ステップＳｔ１１）。そのコードには、テキストボックスＢ１には空白を入力、選択ラジオボタンＢ２は1番最初の項目を選択する設定がされている。このとき、一番汎用的なパターンのテキストボックスＢ１の文字制限として、半角英数で２０文字とする。
【００６１】
次いで、テスト実行前に、設定メソッドＡ３に対応するコード中のテキストボックスＢ１の設定項目を”abcdefghijklmnopqrst”に変更し（ステップＳｔ１２）、テストデータとする。
【００６２】
次いで、テスト実行時には、入力画面呼び出し画面Ａ１から入力画面Ａ２に遷移する際に入力画面Ａ２を構成するコードと共に設定メソッドＡ３も呼び出され、その入力画面が表示される。このとき、入力画面Ａ２のテキストボックスＢ１には、設定メソッドＡ３に設定されたテストデータの”abcdefghijklmnopqrst”が表示される（ステップＳｔ１３）。
【００６３】
次いで、テキストボックスＢ１のテスト行われる。この手順としては、まず、入力画面Ａ２のテキストボックスＢ１表示されているテストデータの”abcdefghijklmnopqrst”を入力したという状態で入力画面Ａ２からテスト実行結果画面Ａ４に遷移するイベントを発生させる。これにより、そのデータを入力した場合のテストが実行され、その結果が画面表示される。こうすることで、正常動作確認が行われる（ステップＳｔ１４）。またこのイベントが発生すると、テスト実行結果画面Ａ４の表示とともに、判定メソッドＡ５が呼び出され、コンソール画面Ａ６にその判定結果が表示される（ステップＳｔ１８）。
【００６４】
次に、入力画面Ａ２でテキストボックスＢ１に”abcdefghijklmnopqrst”と表示されている状態から末尾に”u”を追加したり、”st”を”あ”に変更し（ステップＳｔ１５、Ｓｔ１６）、入力画面Ａ２からテスト実行結果画面Ａ４に遷移するイベントを発生させる。これにより、そのデータを入力した場合のテストが実行され、その結果が画面表示される。こうすることで、異常動作確認が行われる（ステップＳｔ１７）。またこのイベントが発生すると、ステップＳｔ１８と同様に、テスト実行結果画面Ａ４の表示とともに、判定メソッドＡ５が呼び出され、コンソール画面Ａ６にその判定結果が表示される（ステップＳｔ１９）。
【００６５】
上記処理にて一通り一つのパターンでテストが終了したら、次にテストを行うパターンの仕様に合わせて、設定メソッドも変更する。例えば、テキストボックスＢ１の仕様が文字制限として、半角英数で２５文字とすると、設定メソッドＡ３における現在の設定、”abcdefghijklmnopqrst”を”abcdefghijklmnopqrstuvwxy”に変更を行う。このテストデータを用いて、前記と同様のテストを行う。
【００６６】
最後に、テストが終了したら、入力画面呼び出し画面Ａ１を構成するコードから設定メソッドＡ３を呼び出すメソッドを消去すると共に、テスト実行結果画面Ａ４を構成するコードから判定メソッドＡ５を呼び出すメソッドを消去する。
【００６７】
図１８は、上記の判定メソッドＡ５の具体例を示す。図１８に示す判定メソッドＡ５は、変更前のパスワードの値と、変更後のパスワードの値とを判定し、その判定結果として、「「パスワード」項目が変更前のパスワードの値から変更後のパスワードの値に変更されました。」旨を出力する場合が示されている。
【００６８】
図１９は、コンソール画面Ａ６の表示例を示す。図１９に示すコンソール画面Ａ６は、判定メソッドＡ５による判定結果として、「「パスワード」項目が１２３４５６７（変更前）から０１２３４５６（変更後）に変更されました。」旨のメッセージと、「「パスワード」項目が営業部（変更前）から企画部（変更後）に変更されました。」旨のメッセージとが表示される場合を示されている。
【００６９】
以上、本発明の各実施例を詳細に説明したが、本発明は、代表的に例示した上述の各実施例に限定されるものではなく、当業者であれば、特許請求の範囲の記載内容に基づき、本発明の要旨を逸脱しない範囲内で種々の態様に変形、変更することができる。これらの変形例や変更例も本発明の権利範囲に属するものである。
【００７０】
例えば、上記の各実施例に係るアプリケーション開発システムを構成するプログラムコードは、オペレーティングシステムや他のアプリケーションソフトウェア等と共同して上記機能が実現される場合は、それらのプログラムコードも含まれる。
【００７１】
また、前述した各実施例に係るアプリケーション開発システムを構成するプログラムコードを記録する記録媒体も、本発明の範疇に含まれる。記録媒体としては、前述したハードディスクやＲＯＭのほか、フレキシブルディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード等を用いることができる。
【００７２】
さらに、上記の各実施例に係るアプリケーション開発システムを構成するプログラムコードを実装するコンピュータ機についても、本発明の範疇に含まれる。このコンピュータ機は、プログラム制御で動作するプロセッサと、制御プログラムや制御データ等を格納する記憶領域を有するメモリと、各種入出力装置（例えば、外部記録装置、通信装置、表示装置、入力装置等の各種周辺装置）とを用いて実現することが可能である。この場合、プロセッサ、メモリ、及び各種入出力装置の各構成要素は、本発明の範疇に含まれる。図２０は、この場合のハードウェア構成例を示す。
【００７３】
図２０の例では、上記プログラムコードを実行するコンピュータ機は、ＣＰＵ１と、メモリ（ＲＯＭ／ＲＡＭ）２と、ハードディスク等の外部記憶装置３と、ＣＲＴや液晶ディスプレイ等の表示装置と、キーボードやマウス等の入力装置５と、通信モデムやＬＡＮインタフェース等の通信装置６とから構成されている。このコンピュータ機は、スタンドアロン型のものでも、ネットワークに通信可能に接続された複数のコンピュータ機から構成されたものでも、いずれでも適用可能である。
【産業上の利用可能性】
【００７４】
本発明によれば、アプリケーション開発のもととなるスケルトンとなるソースコードを自動生成するソフトウェアを作成するという用途に適用できる。
【図面の簡単な説明】
【００７５】
【図１】本発明の第１及び第２の実施例に係るプログラムのテスト方法を用いたアプリケーション開発システムの要部構成を示す概略ブロック図である。
【図２】第１の実施例において、作成されたアプリケーションのソースコードの構成及びその機能を説明する図である。
【図３】第１の実施例の動作を説明する概略フローチャートである。
【図４】第１の実施例の具体的な動作例を説明する図である。
【図５】第１の実施例において、作成されたＷｅｂアプリケーションのソースコードの構成及びその機能を説明する図である。
【図６】第１の実施例において、設定ファイルの具体例を説明する図である。
【図７】第１の実施例において、スケルトンとなるソースコードの具体例を説明する図である。
【図８】第１の実施例において、入力画面呼び出し画面を構成するコードの具体例を説明する図である。
【図９】第１の実施例において、入力画面呼び出し画面の表示例を説明する図である。
【図１０】第１の実施例において、入力画面を構成するコードを説明する図である。
【図１１】第１の実施例において、入力画面の表示例を説明する図である。
【図１２】第１の実施例において、テスト実行結果画面の表示例を説明する図である。
【図１３】テストデータ設定前の設定メソッドの具体例を説明する図である。
【図１４】テストデータ設定後の設定メソッドの具体例を説明する図である。
【図１５】本発明の第２の実施例において、作成されたアプリケーションのソースコードの構成及びその機能を説明する図である。
【図１６】第２の実施例の動作を説明する概略フローチャートである。
【図１７】第２の実施例の具体的な動作例を説明する図である。
【図１８】第２の実施例において、判定メソッドの具体例を説明する図である。
【図１９】第２の実施例において、コンソール画面の表示例を説明する図である。
【図２０】本発明に係るプログラムのテスト方法を用いたアプリケーション開発システムのハードウェア構成例を示す図である。
【符号の説明】
【００７６】
１１  ソースジェネレータ
Ａ１  入力画面呼び出し画面
Ａ２  入力画面
Ａ３  設定メソッド
Ａ４  テスト結果実行画面
Ａ５  判定メソッド
Ａ６  コンソール画面
Ｂ１  テキストボックス
【図１】
2007304778.tif 000003
【図２】
2007304778.tif 000004
【図３】
2007304778.tif 000005
【図４】
2007304778.tif 000006
【図５】
2007304778.tif 000007
【図６】
2007304778.tif 000008
【図７】
2007304778.tif 000009
【図８】
2007304778.tif 000010
【図９】
2007304778.tif 000011
【図１０】
2007304778.tif 000012
【図１１】
2007304778.tif 000013
【図１２】
2007304778.tif 000014
【図１３】
2007304778.tif 000015
【図１４】
2007304778.tif 000016
【図１５】
2007304778.tif 000017
【図１６】
2007304778.tif 000018
【図１７】
2007304778.tif 000019
【図１８】
2007304778.tif 000020
【図１９】
2007304778.tif 000021
【図２０】
2007304778.tif 000022