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