(57)【要約】      （修正有）【課題】アプリケーション構築ツールにおいて、アプリケーションに係るテストを効率的に行うプログラム、情報処理装置及び処理方法を提供する。【解決手段】アプリケーションを構築する情報処理装置で実行可能なプログラムであって、アプリケーションを構築するための定義情報を取得し、取得した定義情報に基づき、アプリケーションを構築し、構築されたアプリケーションの処理として実行するビジネスプロセスを取得する。プログラムはまた、アプリケーションを構築することなく、取得されたビジネスプロセスに係るテストを実行する。【選択図】図１６
2020126501.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションを構築する情報処理装置で実行可能なプログラムであって、
前記情報処理装置を、
前記アプリケーションを構築するための定義情報を取得するアプリケーション定義情報取得手段と、
前記アプリケーション定義情報取得手段により取得された定義情報に基づき、前記アプリケーションを構築するアプリケーション構築手段と、
前記アプリケーション構築手段により構築されたアプリケーションの処理として実行されるビジネスプロセスを取得するビジネスプロセス取得手段と、
前記アプリケーション構築手段によりアプリケーションを構築することなく、前記ビジネスプロセス取得手段により取得されたビジネスプロセスに係るテストを実行するテスト実行手段
として機能させるためのプログラム。
【請求項２】
前記テストを実行するためのテスト定義情報を取得するテスト定義情報取得手段と、
前記テスト実行手段は、
前記テスト定義情報取得手段により取得されたテスト定義情報に基づき、前記ビジネスプロセス取得手段により取得されたビジネスプロセスに係るテストを実行すること
を特徴とする請求項１に記載のプログラム。
【請求項３】
前記テスト実行手段は、
前記テスト定義情報取得手段により取得されたテスト定義情報に含まれる引数を、前記テスト定義情報取得手段により取得されたテスト定義情報に含まれるビジネスプロセス識別情報に対応するビジネスプロセスに渡して、当該ビジネスプロセスを実行し、当該ビジネスプロセスからの戻り値と前記テスト定義情報取得手段により取得されたテスト定義情報に含まれる予想値とに基づき、前記テストの成否を判定すること
を特徴とする請求項２に記載のプログラム。
【請求項４】
前記ビジネスプロセスは、
前記アプリケーションに係る、ビジネスロジック、プログラムコード又はデータベースクエリであること
を特徴とする請求項１乃至３のいずれか１項に記載のプログラム。
【請求項５】
アプリケーションを構築する情報処理装置であって、
前記アプリケーションを構築するための定義情報を取得するアプリケーション定義情報取得手段と、
前記アプリケーション定義情報取得手段により取得された定義情報に基づき、前記アプリケーションを構築するアプリケーション構築手段と、
前記アプリケーション構築手段により構築されたアプリケーションの処理として実行されるビジネスプロセスを取得するビジネスプロセス取得手段と、
前記アプリケーション構築手段によりアプリケーションを構築することなく、前記ビジネスプロセス取得手段により取得されたビジネスプロセスに係るテストを実行するテスト実行手段と
を備えることを特徴とする情報処理装置。
【請求項６】
アプリケーションを構築する情報処理装置における処理方法であって、
前記情報処理装置が、
前記アプリケーションを構築するための定義情報を取得するアプリケーション定義情報取得ステップと、
前記アプリケーション定義情報取得ステップにより取得された定義情報に基づき、前記アプリケーションを構築するアプリケーション構築ステップと、
前記アプリケーション構築ステップにより構築されたアプリケーションの処理として実行されるビジネスプロセスを取得するビジネスプロセス取得ステップと、
前記アプリケーション構築ステップによりアプリケーションを構築することなく、前記ビジネスプロセス取得ステップにより取得されたビジネスプロセスに係るテストを実行するテスト実行ステップと
を実行することを特徴とする処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションを構築するためのプログラム、情報処理装置及び処理方法に関する。
【背景技術】
【０００２】
従来、設定された定義に基づきアプリケーションを構築（生成）するツールやサービスが存在する。このようなツールやサービスを利用して構築したアプリケーションであっても、アプリケーションの処理として実行されるビジネスプロセスの設定ミスや記載ミス等により予想外の動作をすることがあるため、テスト工程を省略することはできない。
【０００３】
特許文献１には、アプリケーションをテストするためのプログラムを生成する仕組みが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２３７８４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１は、テスト対象のアプリケーションが動作可能な状態でなければならない。
【０００６】
つまり、特許文献１の仕組みを用いて、アプリケーション構築ツールを用いて構築するアプリケーションの処理として実行されるビジネスプロセスをテストする場合、テスト対象のビジネスプロセスに到達するまでに必要な画面や処理（例えば、ログイン処理やメニュー画面等）が構築されている必要がある。そのため、ビジネスプロセスのテスト工程の開始時期が遅れてしまい、テスト工程の開始までに設定又は記載したビジネスプロセスに係る品質を保証することができない。
【０００７】
そこで、本発明の目的は、アプリケーション構築ツールにおいて、アプリケーションに係るテストを効率的に行う仕組みを提供することである。
【課題を解決するための手段】
【０００８】
アプリケーションを構築する情報処理装置で実行可能なプログラムであって、前記情報処理装置を、前記アプリケーションを構築するための定義情報を取得するアプリケーション定義情報取得手段と、前記アプリケーション定義情報取得手段により取得された定義情報に基づき、前記アプリケーションを構築するアプリケーション構築手段と、前記アプリケーション構築手段により構築されたアプリケーションの処理として実行されるビジネスプロセスを取得するビジネスプロセス取得手段と、前記アプリケーション構築手段によりアプリケーションを構築することなく、前記ビジネスプロセス取得手段により取得されたビジネスプロセスに係るテストを実行するテスト実行手段として機能させるためのプログラム。
【発明の効果】
【０００９】
本発明によれば、アプリケーション構築ツールにおいて、アプリケーションに係るテストを効率的に行う仕組みを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明に係るシステムの構成図の一例である。
【図２】情報処理装置、アプリケーションサーバ、データベースサーバ、アプリケーションクライアントとして適用可能な各ハードウェア構成の一例を示すブロック図である。
【図３】ソフトウェア構成を示すブロック図の一例である。
【図４】本発明に係るシステムの構成図である。
【図５】アプリケーション生成のフローチャートの一例を示す図である。
【図６】アプリケーションの入出力定義画面及びアプリケーションの実行画面の一例を示す図である。
【図７】テストケース定義生成のフローチャートの一例を示す図である。
【図８】テスト実行のフローチャートの一例を示す図である。
【図９】テスト実行のフローチャートの一例を示す図である。
【図１０】テスト実行のフローチャートの一例を示す図である。
【図１１】テストケース作成メニューの一例を示す図である。
【図１２】テストケース手順入力画面の一例を示す図である。
【図１３】テストケース作成画面の一例を示す図である。
【図１４】テスト実行画面の一例を示す図である。
【図１５】テスト結果画面の一例を示す図である。
【図１６】テストドライバを用いたビジネスプロセステストの構成図である。
【図１７】テストドライバ定義生成のフローチャートの一例を示す図である。
【図１８】テストドライバ定義入力画面の一例を示す図である。
【図１９】テストドライバ定義情報の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【００１２】
図１は、本発明に係るシステムの構成図の一例である。
【００１３】
情報処理装置１０１は、開発者の操作に従って画面レイアウト、ビジネスプロセス（データベース処理、判定処理、演算処理等）等を定義する。情報処理装置１０１は、アプリケーションのプログラム生成を行う。
【００１４】
なお、本実施形態においては、情報処理装置１０１で生成するアプリケーションはＷｅｂアプリケーションとしたが、これに限定するものではなく、携帯電話・スマートフォン・タブレットなどの情報処理装置で動作するアプリケーションや組込みソフトウェアなど、Ｗｅｂ技術による通信を利用するアプリケーションでなくてもよい。
【００１５】
また、本実施形態においては、情報処理装置１０１はアプリケーションのプログラムを生成するとしたが、この方法に限定するものではなく、プログラムを生成することなく、アプリケーションサーバ１０２やクラウド環境等でアプリケーションが動作する様にデータやファイル等を生成することにより、アプリケーション（の動作環境）を構築する等であってもよい。
【００１６】
アプリケーションサーバ１０２は、情報処理装置１０１で生成され配置されたアプリケーションを実行する。また、アプリケーションサーバ１０２は、データベースサーバ１０３に接続し、データベースのデータを操作することができる。
【００１７】
データベースサーバ１０３は、生成されたアプリケーションが利用するデータベースである。なお、開発時にも動作確認などのために利用してもよい。また、データベースサーバ１０３は、情報処理装置１０１や、アプリケーションサーバ１０２と同一の装置で構成されていてもよいし、ＬＡＮなどのネットワーク１０５内に配置されてもよい。
【００１８】
アプリケーションクライアント１０４は、アプリケーションサーバ１０２と協調して情報処理装置１０１で開発したアプリケーションプログラムを動作させる、エンドユーザの操作端末である。この、アプリケーションクライアント１０４は、携帯端末などの情報処理装置であってもよい。
【００１９】
以上で、図１の説明を終了する。
【００２０】
図２は、本発明に係わる情報処理装置１０１、アプリケーションサーバ１０２、データベースサーバ１０３、アプリケーションクライアント１０４として適用可能な各ハードウェア構成の一例を示すブロック図である。
【００２１】
図２において、ＣＰＵ２０１は、システムバス２０４に接続される各デバイスを統括的に制御する。
【００２２】
また、ＲＯＭ２０３あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるオペレーティングシステム（ＯＳ）や、各サーバ、クライアント、装置など情報処理装置の後述する各種機能を実現するためのプログラムが記憶されている。
【００２３】
ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア、一時待避領域等として機能する。
【００２４】
入力コントローラ２０５は、入力部２０９からの入力を制御する。この入力部２０９としては、情報処理装置では、キーボード、マウス等のポインティングデバイス、タッチパネルが挙げられる。
【００２５】
なお、入力部２０９がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下（指等でタッチ）することにより、各種の指示を行うことができることとする。
【００２６】
また、タッチパネルは、マルチタッチスクリーン等の、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
【００２７】
出力コントローラ２０６は、出力部２１０の表示を制御する。この出力部２１０としては、例えば、ＣＲＴや液晶ディスプレイ等が挙げられる。尚、本体と一体になったノート型パソコンのディスプレイも含まれるものとする。また、プロジェクタであってもよいこととする。
【００２８】
外部メモリコントローラ２０７は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザーファイル、編集ファイル、プリンタドライバ等を記憶する外部メモリ２１１へのアクセスを制御する。外部メモリ２１１には、各サーバ、クライアント、装置等の各種機能を実現するための各種テーブル、パラメータが記憶されている。この外部メモリ２１１としては、ハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）、ＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）、スマートメディア等が挙げられる。
【００２９】
なお、ＣＰＵ２０１は、例えばＲＡＭ２０２内の表示情報用領域へアウトラインフォント展開（ラスタライズ）処理を実行することにより、出力部２１０上での表示を可能としている。また、ＣＰＵ２０１は、出力部２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００３０】
通信Ｉ／Ｆコントローラ２０８は、ネットワークを介して外部機器との通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いた通信等が可能である。
【００３１】
本発明を実現するためのプログラム２１２は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０２にロードされることによりＣＰＵ２０１によって実行されるものである。
【００３２】
図３は、本発明の実施の形態のソフトウェア構成を示すブロック図の一例である。
【００３３】
情報処理装置１０１は、以下の機能部を備える。
【００３４】
アプリケーション定義情報取得部３０１は、アプリケーションを構築するための定義情報を取得する機能部である。
【００３５】
アプリケーション構築部３０２は、アプリケーション定義情報取得部３０１により取得された定義情報に基づき、アプリケーションを構築する機能部である。
【００３６】
ビジネスプロセス取得部３０３は、アプリケーション構築部３０２により構築されたアプリケーションの処理として実行されるビジネスプロセスを取得する機能部である。
【００３７】
テスト実行部３０４は、アプリケーション構築部３０２によりアプリケーションを構築することなく、ビジネスプロセス取得部３０３により取得されたビジネスプロセスに係るテストを実行する機能部である。
【００３８】
テスト定義情報取得部３０５は、テストを実行するためのテスト定義情報を取得する機能部である。
【００３９】
テスト実行部３０４は、テスト定義情報取得部３０５により取得されたテスト定義情報に基づき、ビジネスプロセス取得部３０３により取得されたビジネスプロセスに係るテストを実行する機能部である。
【００４０】
テスト実行部３０４は、テスト定義情報取得部３０５により取得されたテスト定義情報に含まれる引数を、テスト定義情報取得部３０５により取得されたテスト定義情報に含まれるビジネスプロセス識別情報に対応するビジネスプロセスに渡して、当該ビジネスプロセスを実行し、当該ビジネスプロセスからの戻り値とテスト定義情報取得部３０５により取得されたテスト定義情報に含まれる予想値とに基づき、テストの成否を判定する機能部である。
【００４１】
以上で、図３の説明を終了する。
【００４２】
図４は、情報処理装置１０１、アプリケーションサーバ１０２及びアプリケーションクライアント１０４の構成図である。
【００４３】
情報処理装置１０１は、リポジトリ定義部４０１及びアプリケーション生成部４１０を備える。
【００４４】
情報処理装置１０１は、アプリケーションを開発する開発者により設定されたリポジトリ定義部４０１の各定義を用いて、アプリケーション生成部４１０によりアプリケーションを生成する。
【００４５】
リポジトリ定義部４０１には、アプリケーション定義４０２、入出力定義４０３、データモデル定義４０４、ビジネスプロセス定義４０５、テストドライバ定義４０６、テストケース定義４０７、データベース定義４０８が記憶されている。これら４０２〜４０８の定義は、アプリケーション構築ツールを介して、開発者によって入力設定または配置される。
【００４６】
入出力定義４０３は、アプリケーション画面に配置される各種項目のレイアウトの定義情報を保持する。入出力定義４０３は、入力項目定義情報及び出力項目定義情報を含む。入力項目定義情報は、生成されたアプリケーションの画面を介して当該アプリケーションのエンドユーザが入力する入力項目を定義した情報である。出力項目定義情報は、生成されたアプリケーションの画面に出力する出力項目を定義した情報である。以降、「入力項目定義情報」及び「出力項目定義情報」をまとめて「入出力項目定義情報」と呼ぶ。
【００４７】
なお、本実施形態においては、「入力項目定義情報は、生成されたアプリケーションの画面を介して当該アプリケーションのエンドユーザが入力する入力項目を定義した情報」「出力項目定義情報は、生成されたアプリケーションの画面に出力する出力項目を定義した情報」としたが、これらに限定するものではなく、例えば、画面を有さないバッチやＷｅｂサービス等のように、「入力項目定義情報は、生成されたアプリケーションに入力される入力項目を定義した情報」「出力項目定義情報は、生成されたアプリケーションが出力する出力項目を定義した情報」であってもよい。
【００４８】
データモデル定義４０４は、データベースのテーブルの項目の定義情報を保持する。入出力定義４０３の各項目には、データモデル定義４０４の項目を対応づけることができる。
【００４９】
ビジネスプロセス定義４０５は、アプリケーションにおけるデータを処理するためのロジックの定義情報を保持する。
【００５０】
テストドライバ定義４０６は、ビジネスプロセス定義４０５が実行されたときに期待する実行結果が返されるかをテストするテストドライバの定義情報を保持する。具体的には、図１７の１７０２にて説明するが、実行するビジネスプロセス定義、引数及び実行結果の期待値等を定義する。
【００５１】
テストケース定義４０７は、入出力定義４０３を用いて表示する画面に期待する値が表示されるかをテストするテストケースの定義情報を保持する。具体的には、図１３の１３０１にて説明するが、疑似的に表示する画面の入出力定義４０３、疑似的に入力する値、疑似的に実行するアクション及び疑似的に表示される値の期待値等を定義する。
【００５２】
データベース定義４０８は、アプリケーションが接続するデータベースに係る情報（データベースサーバ１０３のＩＰアドレス、接続ユーザ、接続パスワード等）を定義する。
【００５３】
アプリケーション生成部４１０は、アプリケーション生成用のリポジトリ定義解析部４１１を用いてリポジトリ定義部４０１に記憶されている各定義を解析し、アプリケーションコード生成部４１２及びソースコードコンパイル部４１３を介し、コンパイル済Ｊａｖａ（登録商標）コード４４１及びＨＴＭＬ／ＪＳＰ／ＪａｖａＳｃｒｉｐｔ（登録商標）４４２を含むアプリケーションを生成する。すなわち、アプリケーション生成部４１０は、設定された定義を用いて、アプリケーションとして用いられるプログラムを生成する手段の一例である。
【００５４】
リポジトリ定義エディタ部４２０は、リポジトリ定義参照部４２１によってリポジトリ定義部４０１を解析し、テストケース定義４０７の場合はテストケース定義エディタ部４２２を用いて、テストドライバ定義４０６の場合はテストドライバ定義エディタ部４２３を用いて、それ以外の定義の場合はそれぞれに対応したその他定義エディタ部４２４を用いて、各リポジトリ定義を変更及び参照する。
【００５５】
テスト実行部４３０は、テストドライバ定義受信部４３１を介して、リポジトリ定義部４０１からテストドライバ定義４０６を取得する。
【００５６】
ビジネスプロセスコード実行部４３２は、ビジネスプロセス処理コードアクセス部４３４を介して、ビジネスプロセス定義４０５を呼び出し、ビジネスプロセスを実行する。
【００５７】
アサーション実行部４３３は、テストドライバ定義受信部４３１を介して、ビジネスプロセスの実行結果と期待値との検証（アサーション）内容を読み込み、検証を行う。
【００５８】
アサーション実行部４３３は、テスト結果収集部４３５を介して、アサーション結果を収集し、テスト結果表示部４３６に表示する。
【００５９】
以上で、図４の説明を終了する。
【００６０】
図５は、アプリケーション生成のフローチャートの一例を示す図である。
【００６１】
情報処理装置１０１は、ディレクトリ構造を用いて、リポジトリ定義部４０１の各定義をファイルとして管理する。なお、本実施形態においては、ディレクトリ構造を用いて、リポジトリ定義部４０１の各定義をファイルとして管理するとしたが、これに限定するものではなく、例えば、データベースを用いてリポジトリ定義部４０１の各定義を管理してもよいし、クラウドなどネットワーク上の記憶装置を用いて管理する等としてもよい。
【００６２】
アプリケーション生成のフローチャートについて説明する。
【００６３】
ステップＳ５０１において、情報処理装置１０１は、リポジトリ定義の設定を受け付ける。
【００６４】
具体的には、アプリケーション構築ツールの画面を介して、アプリケーション開発者からアプリケーション定義４０２、入出力定義４０３、データモデル定義４０４、ビジネスプロセス定義４０５及びデータベース定義４０８の設定を受け付ける。
【００６５】
ステップＳ５０１にて、受け付けたアプリケーション定義４０２、入出力定義４０３、データモデル定義４０４、ビジネスプロセス定義４０５及びデータベース定義４０８の設定は、リポジトリ定義部４０１にＸＭＬファイル形式で記憶する。なお、本実施形態においては、ＸＭＬファイル形式としたが、この形式に限定するものではなく、他の形式であってもよい。
【００６６】
ステップＳ５０２において、情報処理装置１０１は、アプリケーション生成の指示を受け付ける。
【００６７】
ステップＳ５０３において、情報処理装置１０１は、リポジトリ定義部４０１からアプリケーション定義４０２を取得する。リポジトリ定義解析部４１１は、読み込んだ定義を解析したうえでＲＡＭ２０２に記憶しておき、解析された定義は各生成部から適宜参照される。
【００６８】
ステップＳ５０４において、情報処理装置１０１は、リポジトリ定義部４０１からデータモデル定義４０４を取得する。
【００６９】
ステップＳ５０５において、情報処理装置１０１は、リポジトリ定義部４０１から入出力定義４０３を取得する。
【００７０】
ステップＳ５０６において、情報処理装置１０１は、リポジトリ定義部４０１からビジネスプロセス定義４０５を取得する。すなわち、ステップＳ５０６は、構築されたアプリケーションの処理として実行されるビジネスプロセスを取得する処理の一例を示すステップである。
【００７１】
ステップＳ５０７において、情報処理装置１０１は、リポジトリ定義部４０１からデータベース定義４０８を取得する。すなわち、ステップＳ５０１〜Ｓ５０７は、アプリケーションを構築するための定義情報を取得する処理の一例を示すステップである。
【００７２】
ステップＳ５０８において、情報処理装置１０１は、アプリケーション生成部４１０を用いて、アプリケーションの実行に用いるプログラムを生成する。すなわち、ステップＳ５０８は、アプリケーションのプログラムを生成する処理の一例を示すステップである。また、ステップＳ５０８は、アプリケーションを構築する処理の一例を示すステップである。
【００７３】
ステップＳ５０９において、情報処理装置１０１は、テストケース定義４０７とテストドライバ定義４０６のどちらを生成するかを受け付け、テストケース定義４０７の場合はステップＳ５１０に進み、テストドライバ定義４０６の場合はステップＳ５１１に進む。
【００７４】
ステップＳ５１０において、情報処理装置１０１は、テストケース定義４０７を生成する（詳細は、図７の説明にて後述する）。すなわち、ステップＳ５１０は、取得された定義情報を用いて、テストケースを生成する処理の一例を示すステップである。また、ステップＳ５１０は、受け付けた定義に基づき、テストケースを生成する処理の一例を示すステップである。
【００７５】
ステップＳ５１１において、情報処理装置１０１は、テストドライバ定義４０６を生成する（詳細は、図１６の説明にて後述する）。すなわち、ステップＳ５１１は、取得された定義情報を用いて、アプリケーションの処理として実行されるビジネスプロセスに係るテストを実行するテストドライバを生成する処理の一例を示すステップである。また、ステップＳ５０９は、受け付けた定義に基づき、テストドライバを生成する処理の一例を示すステップである。
【００７６】
ステップＳ５１２において、情報処理装置１０１は、ステップＳ５１０にて生成したテストケース定義又はステップＳ５１１にて生成したテストドライバ定義を用いてテストを実行する（詳細は、図８〜１０の説明にて後述する）。
【００７７】
すなわち、ステップＳ５１２は、定義情報を用いて生成されたテストケースに基づき、アプリケーションに係るテストを実行する処理の一例を示すステップである。また、ステップＳ５１２は、定義情報を用いて生成されたテストケースに基づき、定義情報が正しく定義されているか否かテストを実行する処理の一例を示すステップである。
【００７８】
すなわち、ステップＳ５１２は、テストを実行するためのテスト定義情報に基づき、アプリケーションに係るテストを実行する処理の一例を示すステップである。また、ステップＳ５１２は、テストを実行するためのテスト定義情報に基づき、アプリケーションの処理として実行されるビジネスプロセスに係るテストを実行する処理の一例を示すステップである。また、ステップＳ５１２は、テストを実行するためのテスト定義情報に基づき、アプリケーションの処理として実行されるビジネスプロセスが正しく定義されているかのテストを実行する処理の一例を示すステップである。
【００７９】
この段階ではアプリケーションをアプリケーションサーバ１０２に配置（デプロイ）していないため、以上により、アプリケーションサーバ１０２を用意することなく、アプリケーションに係るテスト及びアプリケーションの処理として実行されるビジネスプロセスに係るテストを実行することができる。
【００８０】
また、以上により、アプリケーションアーカイブファイルの生成、アプリケーションサーバ１０２への転送、デプロイをすることなく、アプリケーションに係るテスト及びアプリケーションの処理として実行されるビジネスプロセスに係るテストを実行することができるため、テストにかかる時間を削減することができ、開発とテストをシームレスに何度も繰り返すことができる。
【００８１】
また、以上により、情報処理装置１０１だけでアプリケーションサーバ１０２にて動作するアプリケーションに係るテスト及びアプリケーションの処理として実行されるビジネスプロセスに係るテストを実行することができるため、複数人の開発者が同時に並行してテストを行うことができる。
【００８２】
ステップＳ５１３において、情報処理装置１０１は、ステップＳ５１２にて実行したテストにおける失敗したテストケースの有無を判定し、有る場合は本フローチャートを終了し、無い場合はステップＳ５１４に進む。すなわち、ステップＳ５１３は、テストの結果に従って、アプリケーションの構築をする／しないを制御する処理の一例を示すステップである。
【００８３】
ステップＳ５１４において、情報処理装置１０１は、ステップＳ５０８にて生成したプログラムをアプリケーションサーバ１０２に配置（デプロイ）する。すなわち、ステップＳ５１４は、取得された定義情報に基づき、アプリケーションを構築する処理の一例を示すステップである。
【００８４】
これにより、失敗テストが無い状態のアプリケーションをサーバに構築する仕組みを提供することができる。よって、テストに時間がかかってしまう場合、夜間にテストを実行させ、テストが成功した場合は、続けてアプリケーションサーバ１０２にデプロイさせておくことができるため、アプリケーション管理者や運用者の手間を軽減することができる。
【００８５】
また、失敗テストが有る状態のアプリケーションはサーバに構築することが無くなるため、不具合を含んだアプリケーションをリリースすることがなくなり、アプリケーションが不整合なデータを出力することもなくなるため、結果として、信頼性の高いアプリケーションを運用することができ、エンドユーザの満足度も向上させることができる。
【００８６】
以上で、図５の説明を終了する。
【００８７】
以上により、アプリケーションプログラム生成、テスト実行、デプロイ等の処理を１つの指示で行うことができる。よって、アプリケーション構築ツールにおいて、テストを効率的に行う仕組みを提供することができる。また、アプリケーション構築ツールにおいて、アプリケーションの処理として実行されるビジネスプロセスに係るテストを効率的に行う仕組みを提供することができる。
【００８８】
図７は、テストケース定義生成のフローチャートの一例を示す図である。
【００８９】
ステップＳ７０１において、情報処理装置１０１は、ユーザからのテストケース定義生成の指示を受け付ける。具体的には、新規テストケース作成メニュー１１０１（図１１）の押下を受け付ける。
【００９０】
ステップＳ７０２において、情報処理装置１０１は、外部メモリ２１１にアプリケーション定義４０２が作成済か否かを判定する。作成済の場合はステップＳ７０３に進み、未作成の場合は本フローチャートを終了する。
【００９１】
ステップＳ７０３において、情報処理装置１０１は、新規テストケース作成ダイアログ１１０２（図１１）を表示し、新規のテストケースの生成に必要な「コード名」「名前」「対象アプリケーション１１０３」の入力を受け付け、受け付けた情報に基づき、外部メモリ２１１にテストケース定義４０７を新規に作成する。
【００９２】
ステップＳ７０４において、情報処理装置１０１は、ステップＳ７０３にて作成されたテストケースのテスト手順を入力するためのテスト手順入力画面１２０１（図１２）を表示する。この時点では、テストケースにテスト手順が登録されていない状態であるため、テスト手順入力画面１２０１の「テスト手順」タブを選択した場合、テスト手順を設定するエディタ部には何も表示されていない。
【００９３】
ステップＳ７０５において、情報処理装置１０１は、ステップＳ７０３にて入力を受け付けた「対象アプリケーション１１０３」に属す入出力定義４０３を外部メモリ２１１から取得する。すなわち、ステップＳ７０５は、アプリケーションを構築するための定義情報を取得する処理の一例を示すステップである。
【００９４】
ステップＳ７０６において、情報処理装置１０１は、登録するテスト手順の数だけステップＳ７０７〜Ｓ７１２を繰り返す。
【００９５】
ステップＳ７０７において、情報処理装置１０１は、テスト実行時に疑似的に行う命令の選択を受け付ける。命令の種類には、「画面表示」「行追加」「項目値入力」「項目値検証」等がある。
【００９６】
通常、スクラッチ開発によって構築されたアプリケーションのテストは、テスト要員による「画面表示」「行追加」「項目値入力」等の操作及び目視による「項目値検証」を必要とするが、本実施形態におけるテストは、テスト要員が行う操作及び目視をステップＳ７０７にて「命令」として手順化しておき、構築又は生成されたアプリケーションプログラムに対して（テスト要員が操作を行ったかのように疑似的に）「命令」を実行することで、テストの実行及び検証が自動でできる。
【００９７】
なお、本実施形態においては、命令の種類は上記４種類の中から選択を受け付けるとしたが、この４種類に限定するものではなく、その他の命令（例：キーボード・マウス・タッチパネル等の入力装置による操作、カメラ等の周辺機器の操作、音声入力、ブラウザ操作、ｎ秒待機、不正な操作等）を選択できるとしてもよい。
【００９８】
ステップＳ７０８において、情報処理装置１０１は、ステップＳ７０５にて取得した入出力定義４０３に基づき、「対象アプリケーション１１０３」に属す入出力定義４０３を選択肢として表示する（図１２の１２０３）。
【００９９】
ステップＳ７０９において、情報処理装置１０１は、ステップＳ７０８にて表示した選択肢から、テスト実行に用いる入出力定義４０３の選択を受け付ける。
【０１００】
ステップＳ７１０において、情報処理装置１０１は、ステップＳ７０９にて選択を受け付けた入出力定義４０３に属す入出力項目を選択肢として表示する（図１２の１２０４）。例えば、ステップＳ７０７にて、命令に「項目値入力」が選択された場合は、入出力項目のうち値を入力できる項目だけに絞った選択肢を表示する。
【０１０１】
ステップＳ７１１において、情報処理装置１０１は、ステップＳ７１０にて表示した選択肢から、テスト実行に用いる入出力項目の選択を受け付ける。
【０１０２】
ステップＳ７１２において、情報処理装置１０１は、テストの命令実行時に用いる入出力項目への引数の入力を受け付ける。なお、「引数」とは、テスト手順を実行するときに、入出力定義などの定義情報に対して設定するテストデータのことである。
【０１０３】
例えば、図１２では、グループ項目「Ｇ  ユーザマスタ」の入出力項目「ＩＤ」「パスワード」「名前」への引数を入力する。グループ項目とは、入出力項目を複数持つ表である（例：図６の６０２）。この命令に、行番号と引数を入力したものを１３０２（図１３）に示す。１３０２（図１３）は、グループ項目における明細「１」行目の入出力項目「ＩＤ」「パスワード」「名前」にそれぞれ「１」「ｙａｍａｄａ」「山田」を入力するという意味である。
【０１０４】
また、命令が「項目値検証」の場合の引数は、その「入出力項目」の値が、テスト実行時にその「引数」の値と等しいか否かを判定するという意味である（図１３の１３０３）。ここでは、１３０２にて「項目値入力」を行い、「アクション実行」でＵＰＤＡＴＥ（更新）処理を行った後において、「ＩＤ」の値が「１」と等しいか否かを判定する。つまり、その時点で「ＩＤ」＝１の場合は、そのテスト手順＝成功と判定し、「ＩＤ」≠１の場合は、そのテスト手順＝失敗と判定する（詳細は、図９のステップＳ９１１にて後述する）。
【０１０５】
なお、本実施形態においては、「引数」の例として「入出力項目の値」を挙げたが、「入出力項目の値」に限定するものではなく、「引数」は、例えば、画面の入出力に係る位置、色、大きさ又は内容等に係る情報であってもよい。また、表示、認証、検索、追加、更新若しくは削除等の処理に対して与える情報、又は、カメラ等の周辺機器に対して送信する情報等、テスト実行のために用いる情報であれば、その他の情報であってもよい。
【０１０６】
すなわち、ステップＳ７１２は、実行されるテストに用いる情報を受け付ける処理の一例を示すステップである。また、ステップＳ７１２は、取得された定義情報に含まれる項目に対して代入する値の入力を受け付ける処理の一例を示すステップである。また、ステップＳ７１２は、取得された定義情報に含まれる項目が持つと予想される値の入力を受け付ける処理の一例を示すステップである。
【０１０７】
すなわち、ステップＳ７０６〜Ｓ７１２は、テストケースの定義を受け付ける処理の一例を示すステップである。
【０１０８】
ステップＳ７１３において、情報処理装置１０１は、ステップＳ７０６〜Ｓ７１２を繰り返すことによって作成されたテストケース手順（例：図１３の１３０１）に基づき、図１６のようなテストケース定義４０７を生成し、外部メモリ２１１に記憶する。
【０１０９】
具体的には、テストケース手順１３０１を１つずつ、テストケース定義４０７の要素＜ａｕｔｏｔｅｓｔ−ｓｔｅｐ＞に変換することにより、テストケース定義４０７を生成する。同様に、テストケース手順１３０１の「命令」はテストケース定義４０７の要素＜ｃｏｍｍａｎｄ＞に、「入出力」は＜ｏｂｊｅｃｔ＿０１＞に、「入出力項目」は＜ｏｂｊｅｃｔ＿０２＞に、「行番号」は＜ｏｂｊｅｃｔ＿０３＞に、「引数」は＜ａｒｇｕｍｅｎｔ＞にそれぞれ変換する。
【０１１０】
なお、本実施形態においては、テストケース定義４０７を図１６のようなＸＭＬファイルとしたが、ＸＭＬファイルに限定するものではなく、その他の形式のファイルとして生成したり、データベースに記憶させたり、ファイルやデータベース以外の情報として生成したりしてもよい。
【０１１１】
すなわち、ステップＳ７１３は、取得された定義情報を用いて、テストケースを生成する処理の一例を示すステップである。また、ステップＳ７１３は、受け付けた定義に基づき、テストケースを生成する処理の一例を示すステップである。また、ステップＳ７１３は、受け付けた値を項目に対して代入することを含むテストケースを生成する処理の一例を示すステップである。また、すなわち、ステップＳ７１３は、受け付けた値と項目が持つ値とを比較することを含むテストケースを生成する処理の一例を示すステップである。
【０１１２】
以上で、図７の説明を終了する。
【０１１３】
以上により、アプリケーションを構築するための定義情報を用いて、アプリケーションに係るテストケースを容易に生成することができる。また、アプリケーションを構築するための定義情報を用いて、定義情報が正しく定義されているか否かテストするためのテストケースを容易に生成することができる。
【０１１４】
つまり、アプリケーション開発者は、テストを実行するプログラム（テストスクリプト）を記述する必要がないため、テストに係る工数を削減することができ、テストを効率的に行うことができる。よって、プログラミング知識のないアプリケーション開発者であっても、定義情報さえ理解できれば、アプリケーションに係るテストケースを容易に生成することができる。
【０１１５】
図８、図９及び図１０は、テスト実行のフローチャートの一例を示す図である。
【０１１６】
ステップＳ８０１において、情報処理装置１０１は、テスト実行指示を受け付ける。具体的には、実行メニュー１４０１（図１４）の押下を受け付ける。
【０１１７】
ステップＳ８０２において、情報処理装置１０１は、テスト実行対象のテストケース定義に係るアプリケーション１１０３（図１１）のアプリケーションコード４４０が作成済か否かを判定する。作成済の場合はステップＳ８０３に進み、未作成の場合は本フローチャートを終了する。
【０１１８】
ステップＳ８０３において、情報処理装置１０１は、テスト実行部（インタープリタ）４３４とテストケース定義解釈部を用いて、ステップＳ８０１で実行メニュー１４０１の押下時に選択されていたテストケースに対応するテストケース定義４０７を外部メモリ２１１から取得する。
【０１１９】
ステップＳ８０４において、情報処理装置１０１は、テスト実行部（インタープリタ）４３４とテストケース定義解釈部を用いて、ステップＳ８０３にて取得したテストケース定義４０７に含まれるテストケース数及びテスト手順数をカウントする。
【０１２０】
ステップＳ８０５において、情報処理装置１０１は、テストビュー１４０３（図１４）を表示する。
【０１２１】
ステップＳ８０６において、情報処理装置１０１は、テスト進捗バー１４０４（図１４）を空の状態で表示する。
【０１２２】
ステップＳ８０７において、情報処理装置１０１は、テスト情報のテストツリーペイン１４０６（図１４）に、ステップＳ８０３及びステップＳ８０４でテスト対象としたテストケース名（例：ユーザ登録フォームチェック、商品登録フォームチェック）及びテスト手順（１．画面表示、２．行追加、３．…）を表示する。
【０１２３】
ステップＳ８０８において、情報処理装置１０１は、テスト情報の詳細ペイン１４０７（図１４）にメッセージ「実行中…」を表示する。
【０１２４】
ステップＳ８０９において、情報処理装置１０１は、テスト実行準備部を用いて、テスト実行前準備を行う。具体的には、テスト実行前準備では、セッション、クッキー及びスレッド等の生成を行い、ユーザが実際にブラウザを用いてアプリケーションを実行した場合と同様のアプリケーションデータを生成する。これにより、ブラウザ、エンドユーザ操作及びアプリケーションサーバ等を用いなくても、アプリケーション構築ツールにおいて、テストを効率的に行うことができる。
【０１２５】
ステップＳ９０１において、情報処理装置１０１は、テスト実行対象のテストケースの分だけ、ステップＳ９０２〜Ｓ１００１を繰り返す。
【０１２６】
ステップＳ９０２において、情報処理装置１０１は、テスト実行対象のテストケースのテスト手順の分だけ、ステップＳ９０３〜Ｓ９１５、Ｓ９２１又はＳ９２５を繰り返す。
【０１２７】
ステップＳ９０３において、情報処理装置１０１は、強制終了ボタン１４０５（図１４）の押下を受け付けたか否かを判断し、押下された場合はステップＳ９０４へ進み、押下されていない場合はステップＳ９０５へ進む。
【０１２８】
ステップＳ９０４において、情報処理装置１０１は、テスト進捗バー１４０４を灰色１００％で更新し、未実行のテストケース又はテスト手順がある場合であっても中断し、本フローチャートを終了する。
【０１２９】
ステップＳ９０５において、情報処理装置１０１は、テストケース定義解釈部を用いて、テスト手順情報１２０３を取得する。
【０１３０】
ステップＳ９０６において、情報処理装置１０１は、テスト手順情報のテスト命令が入力系か否かを判定し、入力系の場合はステップＳ９０７へ進み、入力系でない場合はステップＳ９０８へ進む。
【０１３１】
ステップＳ９０７において、情報処理装置１０１は、アプリケーションコードアクセス部を用いて、生成済のアプリケーションコード４４０へ疑似的に値の入力を実行する。その後、アプリケーションコードアクセス部を用いて、アプリケーションコード４４０から実行結果を受け取り、テスト結果収集部４３５を用いてテスト結果を得る。すなわち、ステップＳ９０７は、ステップＳ７１２にて受け付けた情報を用いて、テストを実行する処理の一例を示すステップである。
【０１３２】
ステップＳ９０８において、情報処理装置１０１は、テスト手順情報のテスト命令が実行系か否かを判定し、実行系の場合はステップＳ９０９へ進み、実行系でない場合はステップＳ９１０へ進む。
【０１３３】
ステップＳ９０９において、情報処理装置１０１は、アプリケーションコードアクセス部を用いて、生成済のアプリケーションコード４４０へ疑似的にアクションを実行するリクエストを送る。その後、アプリケーションコードアクセス部を用いて、アプリケーションコード４４０から実行結果を受け取り、テスト結果収集部４３５を用いてテスト結果を得る。
【０１３４】
ステップＳ９１０において、情報処理装置１０１は、アプリケーションコードアクセス部を用いて、生成済のアプリケーションコード４４０から検証対象の情報を取得する。
【０１３５】
ステップＳ９１１において、情報処理装置１０１は、検証対象の情報（検証対象が定義情報に含まれる項目である場合、当該項目に係る情報（例；当該項目が持つ値や属性値））が条件（例；ステップＳ７１２にて入力を受け付けた引数の値）に合致するか否かを判定し、検証が成功（条件に合致する）の場合はステップＳ９１６へ進み、失敗（条件に合致しない）の場合はステップＳ９１２へ進む。
【０１３６】
例えば、図１３の１３０３の場合、１３０２にて「項目値入力」を行い、「アクション実行」でＵＰＤＡＴＥ（更新）を行った後において、「ＩＤ」の値が「１」と等しいか否かを判定する。つまり、その時点で「ＩＤ」＝１の場合は、そのテスト手順＝“成功”と判定し、「ＩＤ」≠１の場合は、そのテスト手順＝“失敗”と判定する。
【０１３７】
なお、本実施形態においては、検証系の例として「項目値検証」を挙げたが、項目値に限定するものではなく、例えば、表示するオブジェクトやメッセージの表示位置、色、大きさ又は表示内容等の検証であってもよい。また、表示、認証、検索、追加、更新若しくは削除等の処理にかかった時間、ＣＰＵの使用率、記憶領域の空き容量、又は、カメラ等の周辺機器から取得可能な情報等、テスト実行時に取得可能な情報に係る検証であれば、その他の検証であってもよい。
【０１３８】
ステップＳ９１２において、情報処理装置１０１は、テスト手順のステータスを“失敗”としてＲＡＭ２０２に記憶する。
【０１３９】
ステップＳ９１３において、情報処理装置１０１は、テスト結果収集部４３５及びテスト結果表示部４３６を用いて、検証失敗数を更新する（図１５の１５０３）。
【０１４０】
ステップＳ９１４において、情報処理装置１０１は、テスト結果収集部４３５及びテスト結果表示部４３６を用いて、テスト手順数を更新する（図１５の１５０２）。
【０１４１】
ステップＳ９１５において、情報処理装置１０１は、テスト結果収集部４３５及びテスト結果表示部４３６を用いて、進捗バーを赤色で更新する（図１５の１５０５）。
【０１４２】
ステップＳ９１６において、情報処理装置１０１は、アプリケーションエラーが発生していないことを確認する。発生していなければステップＳ９２２へ進み、エラーが発生している場合は、ステップＳ９１７へ進む。
【０１４３】
ステップＳ９１７において、情報処理装置１０１は、テスト手順のステータスを“テスト失敗”としてＲＡＭ２０２に記憶する。
【０１４４】
ステップＳ９１８において、情報処理装置１０１は、テスト結果収集部４３５及びテスト結果表示部４３６を用いて、テスト失敗数を更新する（図１５の１５０４）。
【０１４５】
ステップＳ９１９において、情報処理装置１０１は、テスト結果収集部４３５及びテスト結果表示部４３６を用いて、テスト手順数を更新する（図１５の１５０２）。
【０１４６】
ステップＳ９２０において、情報処理装置１０１は、テスト結果収集部４３５及びテスト結果表示部４３６を用いて、進捗バーを赤色で更新する（図１５の１５０５）。
【０１４７】
ステップＳ９２１において、情報処理装置１０１は、テスト結果表示部４３６を用いて、テストケース数を更新する（図１５の１５０１）。その後、未実施のテスト手順が実行中のテストケースに含まれている場合であっても、それらの実行はせず、次に実行予定のテストケースを実行する。ステップＳ９０２に戻る。
【０１４８】
ステップＳ９２２において、情報処理装置１０１は、テスト手順のステータスを“成功”として登録する（図１５の１５０７）。
【０１４９】
ステップＳ９２３において、情報処理装置１０１は、テスト結果表示部４３６を用いて、テスト手順数を更新する（図１５の１５０２）。
【０１５０】
ステップＳ９２４において、情報処理装置１０１は、これまでのテスト手順のステータスにテスト失敗及び検証失敗の両方が０件であるか否かを判定し、正の場合はステップＳ９２５に進み、偽の場合はステップＳ９２５を行わない。
【０１５１】
ステップＳ１００１において、情報処理装置１０１は、テスト結果表示部４３６を用いて、テストケース数を更新する（図１５の１５０１）。
【０１５２】
ステップＳ１００２において、情報処理装置１０１は、テスト終了処理部４３７を用いて、テスト実行を終了する。具体的には、テスト実行終了処理では、ステップＳ８０９にて生成したセッション、クッキー及びスレッド等をクローズする。
【０１５３】
ステップＳ１００３において、情報処理装置１０１は、テスト結果表示部４３６を用いて、テスト実行時間を更新する（図１５の１５０６）。
【０１５４】
ステップＳ１００４において、情報処理装置１０１は、テスト結果収集部４３５とテスト結果表示部４３６を用いて、テスト中に出力されるログをアプリケーションログビューに表示する（図１５の１５０９）。
【０１５５】
以上により、テスト対象の画面や処理に到達するまでに必要な画面や処理（例えば、ログイン処理やメニュー画面等）がテストできる程度に構築されていない状態であっても、アプリケーション構築ツールにおいて、テスト対象の定義についてのみテストを行うことができるため、テストを効率的に行うことができる。つまり、早い段階でテスト工程を開始することができるため、高品質なアプリケーションを構築することができる。
【０１５６】
以上で、図８、図９及び図１０の説明を終了する。
【０１５７】
図１６は、テストドライバを用いたビジネスプロセステストの構成図である。
【０１５８】
図１６の左は、「テスト用画面を用いた従来のアプリケーションテスト」の構成図であり、図１６の右は、「テストドライバを用いたビジネスプロセステスト」の構成図である。
【０１５９】
「テスト用画面を用いた従来のアプリケーションテスト」は、引数入力及び戻り値表示のためのテスト用画面が必要となる。また、ブラックボックステストのため、エラーが発生した場合、ビジネスプロセス（例：ＣＡＬＣ＿ＢＰ）内に不具合があったとしても、原因を特定しづらい。
【０１６０】
「テストドライバを用いたビジネスプロセステスト」は、テスト用画面が無くても、テストドライバを用意することで、ビジネスプロセスを直接テストすることができるため、エラーが発生した場合であっても、原因を特定しやすくなる。また、ビジネスプロセス内のサブプロセス（例：ＳＵＢ＿ＣＡＬＣ＿ＢＰ１、ＳＵＢ＿ＣＡＬＣ＿ＢＰ２）を直接テストすることもできるため、原因をより容易に特定することができる。
【０１６１】
以上で、図１６の説明を終了する。
【０１６２】
図１７は、テストドライバ定義生成のフローチャートの一例を示す図である。
【０１６３】
ステップＳ１７０１において、情報処理装置１０１は、ユーザからのテストドライバ定義生成の指示を受け付ける。具体的には、新規テストドライバ作成メニュー（不図示）の押下を受け付ける。
【０１６４】
ステップＳ１７０２において、情報処理装置１０１は、外部メモリ２１１にアプリケーション定義４０２が作成済か否かを判定する。作成済の場合はステップＳ１７０３に進み、未作成の場合は本フローチャートを終了する。
【０１６５】
ステップＳ１７０３において、情報処理装置１０１は、新規テストドライバ作成ダイアログ（不図示）を表示し、新規のテストドライバの生成に必要な「コード名」「名前」「対象アプリケーション」の入力を受け付け、受け付けた情報に基づき、外部メモリ２１１にテストドライバ定義４０６を新規に作成する。
【０１６６】
ステップＳ１７０４において、情報処理装置１０１は、ステップＳ１７０３にて作成されたテストドライバのテスト手順を入力するためのテスト手順入力画面１８１０（図１８）を表示する。この時点では、テストドライバにテスト手順が登録されていない状態であるため、テスト手順入力画面１２０１の「テスト手順」タブを選択した場合、テスト手順を設定するエディタ部には何も表示されていない。
【０１６７】
ステップＳ１７０５において、情報処理装置１０１は、ステップＳ１７０３にて入力を受け付けた「対象アプリケーション」に属すビジネスプロセス定義４０５、クエリ及びプログラムコードを外部メモリ２１１から取得する。
【０１６８】
ステップＳ１７０６において、情報処理装置１０１は、登録するテスト手順の数だけステップＳ１７０７〜Ｓ１７１２を繰り返す。
【０１６９】
ステップＳ１７０７において、情報処理装置１０１は、テスト実行時に疑似的に行う「命令」の選択を受け付ける。「命令」の種類には、「ビジネスプロセス実行」「クエリ実行」「プログラムコード実行」「アサーション」等がある。図１８の１８２１では「ビジネスプロセス実行」、１８２２では「アサーション」、１８２５では「クエリ実行」、１８２６では「プログラムコード実行」の選択を受け付けたとする。
【０１７０】
通常、スクラッチ開発によって構築されたアプリケーションのテストは、テスト要員による「画面表示」「行追加」「項目値入力」等の操作及び目視による「項目値検証」を必要とするが、本実施形態におけるビジネスプロセステストは、テスト要員が行う操作及び目視をステップＳ１７０７にて「命令」として手順化しておき、生成又は設定されたビジネスプロセスのプログラムを（テスト要員が画面操作を行ったかのように疑似的に）実行することで、ビジネスプロセステストの実行及び検証が自動でできる。
【０１７１】
なお、本実施形態においては、「命令」の種類は上記４種類の中から選択を受け付けるとしたが、この４種類に限定するものではなく、その他の命令（例：キーボード・マウス・タッチパネル等の入力装置による操作、カメラ等の周辺機器の操作、音声入力、ブラウザ操作、ｎ秒待機、不正な操作等）を選択できるとしてもよい。
【０１７２】
ステップＳ１７０８において、情報処理装置１０１は、ステップＳ１７０５にて取得したビジネスプロセス定義４０５、クエリ及びプログラムコードに基づき、「対象アプリケーション」に属すビジネスプロセス定義４０５、クエリ又はプログラムコードの識別情報を「処理コード」の選択肢として表示する。これにより、ビジネスプロセスのテストだけでなく、定義されているクエリやプログラムコードのテストも実行できるようになる。
【０１７３】
具体的には、ステップＳ１７０７にて、「命令」に「ビジネスプロセス実行」の選択を受け付けた場合は「対象アプリケーション」に属すビジネスプロセス定義４０５の識別情報を「処理コード」の選択肢として表示する。「命令」に「クエリ実行」の選択を受け付けた場合は「対象アプリケーション」に属すクエリの識別情報を「処理コード」の選択肢として表示する。「命令」に「プログラムコード実行」の選択を受け付けた場合は「対象アプリケーション」に属すプログラムコードの識別情報を「処理コード」の選択肢として表示する。
【０１７４】
「命令」に「アサーション」の選択を受け付けた場合は“ＥＱＵＡＬ”を「処理コード」の選択肢として表示する。“ＥＱＵＡＬ”は、「期待値」に変数を設定した場合に当該変数の値を照合する場合に用いる。なお、本実施形態においては、「アサーション」の「処理コード」を“ＥＱＵＡＬ”のみとしたが、これに限定するものではなく、“＜”や“≦”などの不等号や、“ＯＲ”等の論理式等があってもよい。
【０１７５】
ステップＳ１７０９において、情報処理装置１０１は、ステップＳ１７０８にて表示した選択肢から、テスト実行するビジネスプロセス定義４０５、クエリ又はプログラムコードの選択を受け付ける。図１８の１８２１ではテスト実行するビジネスプロセス定義４０５として“ＣＡＬＣ＿ＢＰ“、１８２２では“ＥＱＵＡＬ”、１８２３ではテスト実行するビジネスプロセス定義４０５としてサブプロセスの“ＳＵＢ＿ＣＡＬＣ＿ＢＰ１“、１８２５では実行するクエリ、１８２６では実行するプログラムコードの識別情報の選択を受け付けたとする。
【０１７６】
ステップＳ１７１０において、情報処理装置１０１は、ステップＳ１７０９にて選択を受け付けたビジネスプロセス定義４０５、クエリ又はプログラムコードの引数を表示する（不図示）。例えば、ステップＳ１７０７にて、「処理コード」にビジネスプロセス定義４０５の識別情報が選択された場合は、選択したビジネスプロセス定義４０５を実行するためにどのような引数が必要かを認識させるために、当該ビジネスプロセス定義４０５に定義されている引数を表示する。
【０１７７】
ステップＳ１７１１において、情報処理装置１０１は、ステップＳ１７１０にて表示された引数として、ステップＳ１７０９にて選択を受け付けたビジネスプロセス定義４０５、クエリ又はプログラムコードへ渡す値の入力を受け付ける。
【０１７８】
ステップＳ１７１２において、情報処理装置１０１は、ステップＳ１７０９にて選択を受け付けたビジネスプロセス定義４０５、クエリ又はプログラムコードの実行結果である戻り値の「期待値」の入力を受け付ける。
【０１７９】
具体的には、ステップＳ１７０７にて「命令」に「ビジネスプロセス実行」「クエリ実行」「プログラムコード実行」の選択を受け付けた場合は、「期待値」には、ステップＳ１７０９にて選択を受け付けたビジネスプロセス定義４０５、クエリ又はプログラムコードの実行結果である戻り値を格納するための変数の変数名の入力を受け付ける。図１８の１８２１ではビジネスプロセス定義４０５“ＣＡＬＣ＿ＢＰ”の実行結果を格納する変数“＄ＲＥＴＡＬＬ”、１８２３ではサブプロセス“ＳＵＢ＿ＣＡＬＣ＿ＢＰ１”の実行結果を格納する変数“＄ＲＥＴ１”の入力を受け付けたとする。
【０１８０】
一方、ステップＳ１７０７にて「命令」に「アサーション」の選択を受け付けた場合は、「期待値」には、変数に格納された値の期待値の入力を受け付ける。図１８の１８２２では変数“＄ＲＥＴＡＬＬ”の期待値として“３２４０”、１８２４では変数“＄ＲＥＴ１”の期待値として“３０００”の入力を受け付けたとする。
【０１８１】
ステップＳ１７１３において、情報処理装置１０１は、ステップＳ１７０６〜Ｓ１７１２を繰り返すことによって作成されたテストドライバ手順（例：図１８の１８２０）に基づき、図１９のようなテストドライバ定義４０６を生成し、外部メモリ２１１に記憶する。
【０１８２】
具体的には、テストドライバ手順１８２１〜を１つずつ、テストドライバ定義４０６の要素＜ｂｐａｕｔｏｔｅｓｔ−ｓｔｅｐ＞に変換することにより、テストドライバ定義４０６を生成する。同様に、テストドライバ手順１８２１の「命令」はテストドライバ定義４０６の要素＜ｃｏｍｍａｎｄ＞に、「処理コード」は＜ｏｂｊｅｃｔ＿０１＞に、「引数」は＜ａｒｇｕｍｅｎｔ＞に、「期待値」は＜ｅｘｐｅｃｔａｔｉｏｎ＞に、「コメント」は＜ｃｏｍｍｅｎｔ＞にそれぞれ変換する。
【０１８３】
なお、本実施形態においては、テストドライバ定義４０６を図１９のようなＸＭＬファイルとしたが、ＸＭＬファイルに限定するものではなく、その他の形式のファイルとして生成したり、データベースに記憶させたり、ファイルやデータベース以外の情報として生成したりしてもよい。
【０１８４】
すなわち、ステップＳ１７１３は、取得された定義情報を用いて、テストドライバを生成する処理の一例を示すステップである。また、ステップＳ１７１３は、受け付けた定義に基づき、テストドライバを生成する処理の一例を示すステップである。また、ステップＳ１７１３は、受け付けた値を項目に対して代入することを含むテストドライバを生成する処理の一例を示すステップである。また、すなわち、ステップＳ１７１３は、受け付けた値と項目が持つ値とを比較することを含むテストドライバを生成する処理の一例を示すステップである。
【０１８５】
以上で、図１７の説明を終了する。
【０１８６】
以上により、アプリケーションを構築するための定義情報を用いて、アプリケーションに係るテストドライバを容易に生成することができる。また、アプリケーションを構築するための定義情報を用いて、定義情報が正しく定義されているかテストするためのテストドライバを容易に生成することができる。
【０１８７】
つまり、アプリケーション開発者は、テストを実行するプログラム（テストスクリプト）を記述する必要がないため、テストに係る工数を削減することができ、テストを効率的に行うことができる。よって、プログラミング知識のないアプリケーション開発者であっても、定義情報さえ理解できれば、アプリケーションに係るテストドライバを容易に生成することができる。
【０１８８】
テストドライバを用いたビジネスプロセステストの実行は、テストケースの実行と同様に図８、図９及び図１０のフローチャートに沿って行う。その際、「テストケース」は「テストドライバ」と読み替えることとする。すなわち、ステップＳ８０３は、テストを実行するためのテスト定義情報を取得する処理の一例を示すステップである。
【０１８９】
ただし、テストドライバのテスト手順には、ステップＳ９０６のような入力系が無いため、ステップＳ９０６は判定せず、ステップＳ９０８に進む。
【０１９０】
また、ステップＳ９０９では、情報処理装置１０１は、「処理コード」に設定されているビジネスプロセス定義４０５、クエリ又はプログラムコードを実行し、「期待値」に設定されている変数に戻り値を代入する。
【０１９１】
また、ステップＳ９１０では、情報処理装置１０１は、「引数」に設定されている変数に格納されている値と、「期待値」に設定されている値が等しい場合はステップＳ９１６に進み、異なる場合はステップＳ９１２に進む。
【０１９２】
すなわち、ステップＳ９１１は、アプリケーションを構築することなく、取得されたビジネスプロセスに係るテストを実行する処理の一例を示すステップである。また、ステップＳ９１１は、取得されたテスト定義情報に基づき、取得されたビジネスプロセスに係るテストを実行する処理の一例を示すステップである。また、ステップＳ９１１は、ビジネスプロセスからの戻り値と取得されたテスト定義情報に含まれる予想値とに基づき、テストの成否を判定すること処理の一例を示すステップである。
【０１９３】
これら以外のステップについては、テストケースの実行時の図８、図９及び図１０と同様の処理を行う。
【０１９４】
なお、本実施形態のようなアプリケーション構築ツールにおいては、構築されたアプリケーション又は生成されたそのプログラムが正しく動作するかのテストよりも、アプリケーションの処理として実行されるビジネスプロセスが期待通りに設定されているかのテストをすべきである。
【０１９５】
つまり、アプリケーション構築ツールによるアプリケーション構築又はプログラム生成そのものは信頼すべきであり、アプリケーションの処理として実行されるビジネスプロセスについての正否についてテストすべきである。そのため、本発明が有効である。
【０１９６】
以上により、アプリケーション構築ツールにおいて、アプリケーションの処理として実行されるビジネスプロセスが正しく定義されているかについて、テストを行うことができる。つまり、これにより、アプリケーション構築ツールにおいて、テスト対象をビジネスプロセスに絞ったテスト行うことができるため、テストを効率的に行うことができる。
【０１９７】
勿論、本実施形態により生成したテストドライバを用いて、テスト対象を定義情報に絞ったテストを行うだけでなく、構築又は生成したアプリケーションを動作させてテストを行うことで、アプリケーション全体までテスト対象を広げたテスト（総合テスト）を行うとしてもよい。
【０１９８】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【０１９９】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【０２００】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク等を用いることが出来る。
【０２０１】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２０２】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２０３】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０２０４】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、ＯＳ（オペレーティングシステム）に供給されるスクリプトデータ等の形態から成ってもよい。
【０２０５】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０２０６】
１０１  情報処理装置
１０２  アプリケーションサーバ
１０３  データベースサーバ
１０４  アプリケーションクライアント
１０５  ネットワーク
【図１】
2020126501.tif 000003
【図２】
2020126501.tif 000004
【図３】
2020126501.tif 000005
【図４】
2020126501.tif 000006
【図５】
2020126501.tif 000007
【図６】
2020126501.tif 000008
【図７】
2020126501.tif 000009
【図８】
2020126501.tif 000010
【図９】
2020126501.tif 000011
【図１０】
2020126501.tif 000012
【図１１】
2020126501.tif 000013
【図１２】
2020126501.tif 000014
【図１３】
2020126501.tif 000015
【図１４】
2020126501.tif 000016
【図１５】
2020126501.tif 000017
【図１６】
2020126501.tif 000018
【図１７】
2020126501.tif 000019
【図１８】
2020126501.tif 000020
【図１９】
2020126501.tif 000021