(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023123815
(43)【公開日】2023-09-05
(54)【発明の名称】プログラム、情報処理装置及び処理方法
(51)【国際特許分類】
G06F 11/36 20060101AFI20230829BHJP
G06F 8/30 20180101ALI20230829BHJP
【FI】
G06F11/36 184
G06F11/36 188
G06F8/30
【審査請求】有
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023110533
(22)【出願日】2023-07-05
(62)【分割の表示】P 2018246505の分割
【原出願日】2018-12-28
(31)【優先権主張番号】P 2018089565
(32)【優先日】2018-05-07
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】390002761
【氏名又は名称】キヤノンマーケティングジャパン株式会社
(71)【出願人】
【識別番号】592135203
【氏名又は名称】キヤノンITソリューションズ株式会社
(74)【代理人】
【識別番号】100189751
【弁理士】
【氏名又は名称】木村 友輔
(74)【代理人】
【識別番号】100227857
【弁理士】
【氏名又は名称】中山 圭
(72)【発明者】
【氏名】石田 知子
(72)【発明者】
【氏名】柴本 文洋
(72)【発明者】
【氏名】村井 悟
(57)【要約】
【課題】 アプリケーション構築ツールにおいて、テストケースを容易に作成する仕組みを提供する。
【解決手段】 アプリケーションを構築する情報処理装置であって、アプリケーションを構築するための定義情報を取得する。取得された定義情報に基づき、前記アプリケーションを構築する。構築されたアプリケーションを実行する。アプリケーションに対して行われた操作情報を取得する。取得された操作情報から、前記アプリケーションを構築するために用いられた定義情報及び当該定義情報に対する操作内容を取得する。アプリケーションに係るテストをするテストケースであって、取得された定義情報に対して、取得された当該定義情報に対する操作内容を実行するテストケースを生成することを特徴とする情報処理装置。
【選択図】
図17
【特許請求の範囲】
【請求項1】
アプリケーションを構築する情報処理装置で実行可能なプログラムであって、
前記情報処理装置を、
アプリケーションを構築するための定義情報を取得する定義情報取得手段と、
前記定義情報取得手段により取得された定義情報に基づき、前記アプリケーションを構築するアプリケーション構築手段と、
前記アプリケーション構築手段により構築されたアプリケーションを実行するアプリケーション実行手段と、
前記アプリケーション実行手段によりアプリケーションに対して行われた操作情報を取得する操作情報取得手段と、
前記操作情報取得手段により取得された操作情報から、前記アプリケーションを構築するために用いられた定義情報及び当該定義情報に対する操作内容を取得する操作内容取得手段と、
前記アプリケーションに係るテストをするテストケースであって、前記操作内容取得手段により取得された定義情報に対して、前記操作内容取得手段により取得された当該定義情報に対する操作内容を実行するテストケースを生成するテストケース生成手段
として機能させるためのプログラム。
【請求項2】
前記テストケース生成手段により生成されたテストケースに基づき、テストを実行するテスト実行手段と
を更に備えることを特徴とする請求項1に記載のプログラム。
【請求項3】
前記テストケース生成手段により生成されたテストケースは、
前記テスト実行手段によりテストが実行されたとき、前記アプリケーション実行手段により実行されているアプリケーションに係る値を検証するテストケースであること
を特徴とする請求項2に記載のプログラム。
【請求項4】
前記テストケースの生成対象とする前記検証に係る設定を取得する検証設定取得手段と、
前記テストケース生成手段により生成されたテストケースは、
前記テスト実行手段によりテストが実行されたとき、前記アプリケーション実行手段により実行されているアプリケーションに係る値であって、前記検証設定取得手段により取得された設定に基づく値を検証するテストケースであること
を特徴とする請求項3に記載のプログラム。
【請求項5】
前記検証に用いるテストケースを生成するトリガーの設定を取得するトリガー設定取得手段と、
前記テストケース生成手段は、
前記トリガー設定取得手段により取得された設定に基づき、前記操作内容取得手段により取得された定義情報が前記トリガーであると判断した場合、前記検証に用いるテストケースを生成すること
を特徴とする請求項3又は4に記載のプログラム。
【請求項6】
前記テストケースの生成対象とする定義情報の設定を取得する定義情報対象設定取得手段と、
前記テストケース生成手段は、
前記定義情報対象設定取得手段により取得された設定に基づき、前記操作内容取得手段により取得された定義情報が前記テストケースの生成対象であると判断した場合、当該定義情報に対して、前記操作内容取得手段により取得された当該定義情報に対する操作内容を実行するテストケースを生成すること
を特徴とする請求項1乃至5のいずれか1項に記載のプログラム。
【請求項7】
アプリケーションを構築する情報処理装置であって、
アプリケーションを構築するための定義情報を取得する定義情報取得手段と、
前記定義情報取得手段により取得された定義情報に基づき、前記アプリケーションを構築するアプリケーション構築手段と、
前記アプリケーション構築手段により構築されたアプリケーションを実行するアプリケーション実行手段と、
前記アプリケーション実行手段によりアプリケーションに対して行われた操作情報を取得する操作情報取得手段と、
前記操作情報取得手段により取得された操作情報から、前記アプリケーションを構築するために用いられた定義情報及び当該定義情報に対する操作内容を取得する操作内容取得手段と、
前記アプリケーションに係るテストをするテストケースであって、前記操作内容取得手段により取得された定義情報に対して、前記操作内容取得手段により取得された当該定義情報に対する操作内容を実行するテストケースを生成するテストケース生成手段と
を備えることを特徴とする情報処理装置。
【請求項8】
アプリケーションを構築する情報処理装置における処理方法であって、
前記情報処理装置が、
アプリケーションを構築するための定義情報を取得する定義情報取得ステップと、
前記定義情報取得ステップにより取得された定義情報に基づき、前記アプリケーションを構築するアプリケーション構築ステップと、
前記アプリケーション構築ステップにより構築されたアプリケーションを実行するアプリケーション実行ステップと、
前記アプリケーション実行ステップによりアプリケーションに対して行われた操作情報を取得する操作情報取得ステップと、
前記操作情報取得ステップにより取得された操作情報から、前記アプリケーションを構築するために用いられた定義情報及び当該定義情報に対する操作内容を取得する操作内容取得ステップと、
前記アプリケーションに係るテストをするテストケースであって、前記操作内容取得ステップにより取得された定義情報に対して、前記操作内容取得ステップにより取得された当該定義情報に対する操作内容を実行するテストケースを生成するテストケース生成ステップと
を実行することを特徴とする処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーションを構築するためのプログラム、情報処理装置及び処理方法に関する。
【背景技術】
【0002】
従来、設定された定義に基づきアプリケーションを構築(生成)するツールやサービスが存在する。このようなツールやサービスを利用して構築したアプリケーションであっても、定義の設定ミス等により予想外の動作をすることがあるため、テスト工程を省略することはできない。
【0003】
特許文献1には、アプリケーションの操作に応じて、当該アプリケーションをテストするために当該操作を再現するテストプログラムを生成する仕組みが開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、特許文献1のテストは、構築済のアプリケーションが予想通りに動作するかのテストであって、アプリケーションを構築するために設定した定義情報が予想通りに設定されているかのテストではない。
【0006】
そのため、特許文献1の仕組みを用いたとしても、アプリケーション構築するツールやサービスにおいて、アプリケーションを構築するための定義情報に係るテストケースを容易に生成することができないという課題がある。
【0007】
そこで、本発明の目的は、アプリケーション構築ツールにおいて、テストケースを容易に生成する仕組みを提供することである。
【課題を解決するための手段】
【0008】
アプリケーションを構築する情報処理装置であって、アプリケーションを構築するための定義情報を取得する定義情報取得手段と、前記定義情報取得手段により取得された定義情報に基づき、前記アプリケーションを構築するアプリケーション構築手段と、前記アプリケーション構築手段により構築されたアプリケーションを実行するアプリケーション実行手段と、前記アプリケーション実行手段によりアプリケーションに対して行われた操作情報を取得する操作情報取得手段と、前記操作情報取得手段により取得された操作情報から、前記アプリケーションを構築するために用いられた定義情報及び当該定義情報に対する操作内容を取得する操作内容取得手段と、前記アプリケーションに係るテストをするテストケースであって、前記操作内容取得手段により取得された定義情報に対して、前記操作内容取得手段により取得された当該定義情報に対する操作内容を実行するテストケースを生成するテストケース生成手段とを備えることを特徴とする情報処理装置。
【発明の効果】
【0009】
本発明によれば、アプリケーション構築ツールにおいて、テストケースを容易に生成する仕組みを提供することができる。
【図面の簡単な説明】
【0010】
【
図1】本発明に係るシステムの構成図の一例である。
【
図2】情報処理装置、アプリケーションサーバ、データベースサーバ、アプリケーションクライアントとして適用可能な各ハードウェア構成の一例を示すブロック図である。
【
図3】ソフトウェア構成を示すブロック図の一例である。
【
図5】アプリケーション生成のフローチャートの一例を示す図である。
【
図6】アプリケーションの入出力定義画面及びアプリケーションの実行画面の一例を示す図である。
【
図7】テストケース定義生成のフローチャートの一例を示す図である。
【
図8】テスト実行のフローチャートの一例を示す図である。
【
図9】テスト実行のフローチャートの一例を示す図である。
【
図10】テスト実行のフローチャートの一例を示す図である。
【
図11】テストケース作成メニューの一例を示す図である。
【
図12】テストケース手順入力画面の一例を示す図である。
【
図13】テストケース作成画面の一例を示す図である。
【
図16】テストケース定義情報の一例を示す図である。
【
図17】アプリケーションに対して行われた操作内容に基づきテストケースを生成する画面の一例を示す図である。
【
図18】プロキシサーバが受信するリクエスト情報の一例を示す図である。
【
図19】アプリケーションに対して行われた操作内容に基づき生成したテストケース定義情報の一例を示す図である。
【
図20】第2の実施形態のソフトウェア構成を示すブロック図の一例である。
【
図21】第2の実施形態に係るシステムの構成図である。
【
図22】第2の実施形態のテストケース定義生成のフローチャートの一例を示す図である。
【
図23】第2の実施形態のテストケース生成に係る設定をする画面の一例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
〔第1の実施形態〕
図1は、本発明に係るシステムの構成図の一例である。
【0012】
情報処理装置101は、開発者の操作に従って画面レイアウト及びデータベース検索指示などを定義する。情報処理装置101は、アプリケーションのプログラム生成を行う。
【0013】
なお、本実施形態においては、情報処理装置101で生成するアプリケーションはWebアプリケーションとしたが、これに限定するものではなく、携帯電話・スマートフォン・タブレットなどの情報処理装置で動作するアプリケーションや組込みソフトウェアなど、Web技術による通信を利用するアプリケーションでなくてもよい。
【0014】
また、本実施形態においては、情報処理装置101はアプリケーションのプログラムを生成するとしたが、この方法に限定するものではなく、プログラムを生成することなく、アプリケーションサーバ102やクラウド環境等でアプリケーションが動作する様にデータやファイル等を生成することにより、アプリケーション(の動作環境)を構築する等であってもよい。
【0015】
アプリケーションサーバ102は、情報処理装置101で生成され配置されたアプリケーションを実行する。また、アプリケーションサーバ102は、データベースサーバ103に接続し、データベースのデータを操作することができる。
【0016】
データベースサーバ103は、生成されたアプリケーションが利用するデータベースである。なお、開発時にも動作確認などのために利用してもよい。また、データベースサーバ103は、情報処理装置101や、アプリケーションサーバ102と同一の装置で構成されていてもよいし、LANなどのネットワーク105内に配置されてもよい。
【0017】
アプリケーションクライアント104は、アプリケーションサーバ102と協調して情報処理装置101で開発したアプリケーションプログラムを動作させる、エンドユーザの操作端末である。この、アプリケーションクライアント104は、携帯端末などの情報処理装置であってもよい。
【0018】
クラウド環境106は、動的にスケーラブルかつ仮想化されたリソースを供給することが可能な環境である。
【0019】
クラウド環境106内の仮想アプリケーションサーバ107は、情報処理装置101で生成され配置されたアプリケーションを実行する。また、仮想アプリケーションサーバ107は、仮想データベースサーバ108に接続し、データベースのデータを操作することができる。
【0020】
クラウド環境106内の仮想データベースサーバ108は、生成されたアプリケーションが利用するデータベースである。なお、開発時にも動作確認などのために利用してもよい。
【0021】
なお、クラウド環境106は動的にスケーラブルかつ仮想化されたリソースを供給することが可能な環境であるとしたが、本実施形態においては、この特徴を備えている必要はなく、クラウド環境106が仮想アプリケーションサーバ107及び仮想データベースサーバ108の動作を提供するのであれば、動的にスケーラブルでなくても、仮想化されたリソースを供給できなくてもよい。
【0022】
図2は、本発明に係わる情報処理装置101、アプリケーションサーバ102、データベースサーバ103、アプリケーションクライアント104として適用可能な各ハードウェア構成の一例を示すブロック図である。
【0023】
図2において、CPU201は、システムバス204に接続される各デバイスを統括的に制御する。
【0024】
また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるオペレーティングシステム(OS)や、各サーバ、クライアント、装置など情報処理装置の後述する各種機能を実現するためのプログラムが記憶されている。
【0025】
RAM202は、CPU201の主メモリ、ワークエリア、一時待避領域等として機能する。
【0026】
入力コントローラ205は、入力部209からの入力を制御する。この入力部209としては、情報処理装置では、キーボード、マウス等のポインティングデバイス、タッチパネルが挙げられる。
【0027】
なお、入力部209がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下(指等でタッチ)することにより、各種の指示を行うことができることとする。
【0028】
また、タッチパネルは、マルチタッチスクリーン等の、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
【0029】
出力コントローラ206は、出力部210の表示を制御する。この出力部210としては、例えば、CRTや液晶ディスプレイ等が挙げられる。尚、本体と一体になったノート型パソコンのディスプレイも含まれるものとする。また、プロジェクタであってもよいこととする。
【0030】
外部メモリコントローラ207は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザーファイル、編集ファイル、プリンタドライバ等を記憶する外部メモリ211へのアクセスを制御する。外部メモリ211には、各サーバ、クライアント、装置等の各種機能を実現するための各種テーブル、パラメータが記憶されている。この外部メモリ211としては、ハードディスク(HD)やフレキシブルディスク(FD)、PCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)、スマートメディア等が挙げられる。
【0031】
なお、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォント展開(ラスタライズ)処理を実行することにより、出力部210上での表示を可能としている。また、CPU201は、出力部210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【0032】
通信I/Fコントローラ208は、ネットワークを介して外部機器との通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
【0033】
本発明を実現するためのプログラム212は外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。
【0034】
図3は、本発明の実施の形態のソフトウェア構成を示すブロック図の一例である。
【0035】
情報処理装置101は、以下の機能部を備える。
【0036】
定義情報取得部301は、アプリケーションを構築するための定義情報を取得する機能部である。
アプリケーション構築部302は、定義情報取得部301により取得された定義情報に基づき、アプリケーションを構築する機能部である。
【0037】
アプリケーション実行部303は、アプリケーション構築部302により構築されたアプリケーションを実行する機能部である。
【0038】
操作情報取得部304は、アプリケーション実行部303によりアプリケーションに対して行われた操作情報を取得する機能部である。
【0039】
操作内容取得部305は、操作情報取得部304により取得された操作情報から、アプリケーションを構築するために用いられた定義情報及び当該定義情報に対する操作内容を取得する機能部である。
【0040】
テストケース生成部306は、アプリケーションに係るテストをするテストケースであって、操作内容取得部305により取得された定義情報に対して、操作内容取得部305により取得された当該定義情報に対する操作内容を実行するテストケースを生成する機能部である。
テスト実行部307は、テストケース生成部306により生成されたテストケースに基づき、テストを実行する機能部である。
【0041】
【0042】
図4は、情報処理装置101、アプリケーションサーバ102及びアプリケーションクライアント104の構成図である。
【0043】
情報処理装置101は、リポジトリ定義部401及びアプリケーション生成部410を備える。
【0044】
情報処理装置101は、アプリケーションを構築するために開発者により設定されたリポジトリ定義部401の各定義情報を用いて、アプリケーション生成部410によりアプリケーションを生成する。
【0045】
リポジトリ定義部401には、アプリケーション定義402、入出力定義403、データモデル定義404、ビジネスプロセス定義405、データベース定義406が記憶されている。これら402~406の定義は、アプリケーション構築ツールを介して、開発者によって入力設定または配置される。
【0046】
入出力定義403は、アプリケーション画面に配置される各種項目のレイアウトの定義情報を保持する。入出力定義403は、入力項目定義情報及び出力項目定義情報を含む。入力項目定義情報は、生成されたアプリケーションの画面を介して当該アプリケーションのエンドユーザが入力する入力項目を定義した情報である。出力項目定義情報は、生成されたアプリケーションの画面に出力する出力項目を定義した情報である。以降、「入力項目定義情報」及び「出力項目定義情報」をまとめて「入出力項目定義情報」と呼ぶ。
【0047】
なお、本実施形態においては、「入力項目定義情報は、生成されたアプリケーションの画面を介して当該アプリケーションのエンドユーザが入力する入力項目を定義した情報」「出力項目定義情報は、生成されたアプリケーションの画面に出力する出力項目を定義した情報」としたが、これらに限定するものではなく、例えば、画面を有さないバッチやWebサービス等のように、「入力項目定義情報は、生成されたアプリケーションに入力される入力項目を定義した情報」「出力項目定義情報は、生成されたアプリケーションが出力する出力項目を定義した情報」であってもよい。
【0048】
データモデル定義404は、データベースのテーブルの項目の定義情報を保持する。入出力定義403の各項目には、データモデル定義404の項目を対応づけることができる。
【0049】
ビジネスプロセス定義405は、アプリケーションにおけるデータを処理するためのロジックの定義情報を保持する。
【0050】
データベース定義406は、アプリケーションが接続するデータベースに係る情報(データベースサーバ103のIPアドレス、接続ユーザ、接続パスワード等)を定義する。
【0051】
アプリケーション生成部410は、アプリケーション生成用のリポジトリ定義解析部411を用いてリポジトリ定義部401に記憶されている各定義を解析し、アプリケーションコード生成部412及びソースコードコンパイル部413を介し、コンパイル済Java(登録商標)コード441及びHTML/JSP/JavaScript(登録商標)442を含むアプリケーションを生成する。すなわち、アプリケーション生成部410は、設定された定義を用いて、アプリケーションとして用いられるプログラムを生成する手段の一例である。
【0052】
リポジトリ定義エディタ部420は、リポジトリ定義参照部421によってリポジトリ定義部401を解析し、テストケース定義407の場合は、テストケース定義エディタ部460を用いて、それ以外の定義の時はそれぞれに対応したその他定義エディタ部422を用いてリポジトリ定義を作成、変更又は参照する。
【0053】
テスト実行部430は、テストケース定義受信部431によってテストケース定義407を取得し、テストケース定義解釈部433を用いてその内容を解析する。テスト実行部(インタープリタ)434は、テストケース定義解釈部433を用いて、アプリケーションコードアクセス部436から、アプリケーションコードをテスト実行する。
【0054】
テスト実行部(インタープリタ)434は、テストケース定義解釈部433を用いて解釈した内容からテスト実行準備部を用いてテストの事前処理を行い、アプリケーションコードアクセス部436を用いてアプリケーションコードをテスト実行する。
【0055】
テストがすべて完了すると、テスト実行部(インタープリタ)435はテスト終了処理部437を用いてテスト終了処理を行う。
【0056】
テスト結果取得部435を用いて、テスト実行の結果を取得し、テスト結果表示部438に表示する。
プロキシサーバ部480は、リクエスト受信部483を介し、アプリケーションの操作を行うアプリケーションクライアント104からのリクエスト情報を仲介するようにして受信する。受信したリクエスト情報は、記録管理部484で外部メモリに記録し、アプリケーションサーバ102に転送する。
【0057】
プロキシサーバ部480は、レスポンス受信部481を介し、アプリケーション446から送信されるレスポンス情報を仲介するようにして受信する。受信したレスポンス情報は、記録管理部484で外部メモリに記録し、アプリケーションクライアント104に転送する。
【0058】
プロキシサーバ部480は、データ解析・変換部482を介し、リクエスト情報及びレスポンス情報を解析し、テストケース定義データ登録部470へ引き渡す。
【0059】
プロキシサーバ部480は、起動・停止処理部485を介し、プロキシサーバ部480を起動・停止する。
テストケース定義エディタ部460は、リポジトリ参照部461、対象画面入力部462、値入力部463、アクション入力部464、対象項目入力部465及び期待値入力部466を備え、各入力部から入力された値を保存し、テストケース定義407を作成する。
【0060】
テストケース定義データ登録部470は、データ受信部473を介し、プロキシサーバ部480から解析されたリクエスト情報又はレスポンス情報を受信する。
【0061】
テストケース定義データ登録部470は、テストケース定義生成部472を介し、解析されたリクエスト情報又はレスポンス情報に基づき、テストケース定義データ471を生成する。
【0062】
テストケース定義データ登録部470は、テストケース定義エディタ部460を介し、テストケース定義データ471をテストケース定義407として保存する。
【0063】
なお、本実施形態においては、プロキシサーバ部480及びテストケース定義データ登録部470は、情報処理装置101が備えるとしたが、この構成に限定するものではなく、アプリケーションサーバ102やアプリケーションクライアント104等が備え、アプリケーションサーバ102やアプリケーションクライアント104が情報処理装置101に対してテストケース定義データ471をテストケース定義407として記憶させる指示を送信するとしてもよい。
【0064】
【0065】
図5は、アプリケーション生成のフローチャートの一例を示す図である。
【0066】
情報処理装置101は、ディレクトリ構造を用いて、リポジトリ定義部401の各定義をファイルとして管理する。なお、本実施形態においては、ディレクトリ構造を用いて、リポジトリ定義部401の各定義をファイルとして管理するとしたが、これに限定するものではなく、例えば、データベースを用いてリポジトリ定義部401の各定義を管理してもよいし、クラウドなどネットワーク上の記憶装置を用いて管理する等としてもよい。
【0067】
アプリケーション生成のフローチャートについて説明する。
【0068】
ステップS501において、情報処理装置101は、アプリケーション定義402の設定を受け付ける。具体的には、アプリケーション構築ツールの画面を介して、アプリケーション開発者から入出力定義403、データモデル定義404、ビジネスプロセス定義405及びデータベース定義406の設定を受け付ける。
【0069】
ステップS501にて、受け付けたアプリケーション定義402、入出力定義403、データモデル定義404、ビジネスプロセス定義405及びデータベース定義406の設定は、リポジトリ定義部401にXMLファイル形式で記憶する。
【0070】
ステップS502において、情報処理装置101は、アプリケーション生成の指示を受け付ける。
【0071】
ステップS503において、情報処理装置101は、リポジトリ定義部401からアプリケーション定義402を取得する。リポジトリ定義解析部411は、読み込んだ定義を解析したうえでROM203に記憶しておき、解析された定義は各生成部から適宜参照される。
【0072】
ステップS504において、情報処理装置101は、リポジトリ定義部401からデータモデル定義404を取得する。
【0073】
ステップS505において、情報処理装置101は、リポジトリ定義部401から入出力定義403を取得する。
【0074】
ステップS506において、情報処理装置101は、リポジトリ定義部401からビジネスプロセス定義405を取得する。
【0075】
ステップS507において、情報処理装置101は、リポジトリ定義部401からデータベース定義406を取得する。すなわち、ステップS501~S507は、アプリケーションを構築するための定義情報を取得する処理の一例を示すステップである。
【0076】
ステップS508において、情報処理装置101は、アプリケーション生成部410を用いて、Webアプリケーションに用いるプログラムを生成する。すなわち、ステップS508は、アプリケーションのプログラムを生成する処理の一例を示すステップである。また、ステップS508は、アプリケーションを構築する処理の一例を示すステップである。
【0077】
ステップS509において、情報処理装置101は、テストケース定義を生成する(詳細は、
図7の説明にて後述する)。すなわち、ステップS509は、取得された定義情報を用いて、テストケースを生成する処理の一例を示すステップである。また、ステップS509は、受け付けた定義に基づき、テストケースを生成する処理の一例を示すステップである。
【0078】
ステップS510において、情報処理装置101は、ステップS509にて生成したテストケース定義に用いてテストを実行する(詳細は、
図8の説明にて後述する)。すなわち、ステップS510は、定義情報を用いて生成されたテストケースに基づき、アプリケーションに係るテストを実行する処理の一例を示すステップである。また、ステップS510は、定義情報を用いて生成されたテストケースに基づき、定義情報が正しく定義されているか否かテストを実行する処理の一例を示すステップである。
【0079】
この段階ではアプリケーションをアプリケーションサーバ102に配置(デプロイ)していないため、以上により、アプリケーションサーバ102を用意することなく、テストを実行することができる。
【0080】
また、以上により、アプリケーションアーカイブファイルの生成、アプリケーションサーバ102への転送、デプロイをすることなく、テストを実行することができるため、テストにかかる時間を削減することができ、開発とテストをシームレスに何度も繰り返すことができる。
【0081】
また、以上により、情報処理装置101だけでアプリケーションサーバ102にて動作するアプリケーションのテストを実行することができるため、複数人の開発者が同時に並行してテストを行うことができる。
【0082】
ステップS511において、情報処理装置101は、ステップS510にて実行したテストにおける失敗したテストケースの有無を判定し、有る場合は本フローチャートを終了し、無い場合はステップS512に進む。すなわち、ステップS511は、テストの結果に従って、アプリケーションの構築をする/しないを制御する処理の一例を示すステップである。
【0083】
ステップS512において、情報処理装置101は、ステップS508にて生成したプログラムをアプリケーションサーバ102に配置(デプロイ)する。
【0084】
これにより、失敗テストが無い状態のアプリケーションをサーバに構築する仕組みを提供することができる。よって、テストに時間がかかってしまう場合、夜間にテストを実行させ、テストが成功した場合は、続けてアプリケーションサーバ102にデプロイさせておくことができるため、アプリケーション管理者や運用者の手間を軽減することができる。
【0085】
また、失敗テストが有る状態のアプリケーションはサーバに構築することが無くなるため、不具合を含んだアプリケーションをリリースすることがなくなり、アプリケーションが不整合なデータを出力することもなくなるため、結果として、信頼性の高いアプリケーションを運用することができ、エンドユーザの満足度も向上させることができる。
【0086】
【0087】
以上により、アプリケーションプログラム生成、テスト実行、デプロイ等の処理を1つの指示で行うことができる。よって、アプリケーション構築ツールにおいて、テストを効率的に行う仕組みを提供することができる。
【0088】
図7は、テストケース定義生成のフローチャートの一例を示す図である。
【0089】
ステップS701において、情報処理装置101は、ユーザからのテストケース定義生成の指示を受け付ける。具体的には、新規テストケース作成メニュー1101(
図11)の押下を受け付ける。
【0090】
ステップS702において、情報処理装置101は、外部メモリ211にアプリケーション定義402が作成済か否かを判定する。作成済の場合はステップS703に進み、未作成の場合は本フローチャートを終了する。
【0091】
ステップS703において、情報処理装置101は、新規テストケース作成ダイアログ1102(
図11)を表示し、新規のテストケースの生成に必要な「コード名」「名前」「対象アプリケーション1103」の入力を受け付け、受け付けた情報に基づき、外部メモリ211にテストケース定義407を新規に作成する。
【0092】
ステップS704において、情報処理装置101は、ステップS703にて作成されたテストケースのテスト手順を入力するためのテスト手順入力画面1201(
図12)表示する。この時点では、テストケースにテスト手順が登録されていない状態であるため、テスト手順入力画面1201の「テスト手順」タブを選択した場合、テスト手順を設定するエディタ部には何も表示されていない。
【0093】
ステップS705において、情報処理装置101は、ステップS703にて入力を受け付けた「対象アプリケーション1103」に属す入出力定義403を外部メモリ211から取得する。すなわち、ステップS705は、アプリケーションを構築するための定義情報を取得する処理の一例を示すステップである。
【0094】
ステップS706において、情報処理装置101は、プロキシサーバ設定情報1701(
図17)の入力を受け付ける。具体的には、プロキシサーバのURL及びポート番号の入力を受け付ける。
【0095】
ステップS707において、情報処理装置101は、プロキシサーバの動作開始ボタン1702(
図17)の押下を受け付ける。
【0096】
ステップS708において、情報処理装置101は、リクエスト情報・レスポンス情報の記録開始ボタン1704(
図17)の押下を受け付け、リクエスト情報・レスポンス情報の外部メモリ211への記録を開始する。
【0097】
ステップS709において、情報処理装置101は、記録停止ボタン1705(
図17)の押下を受け付けるまで、ステップS710~S717を繰り返す。
【0098】
ステップS710において、情報処理装置101は、リクエスト受信部483を介し、アプリケーションの操作を行うアプリケーションクライアント104からのリクエスト情報を仲介するようにして受信する。ここでは、リクエスト情報1810(
図18)又はリクエスト情報1820(
図18)のようなリクエストを受信したとする。
【0099】
すなわち、ステップS710は、実行されるテストに用いる情報を受け付ける処理の一例を示すステップである。また、ステップS710は、定義情報に含まれる項目に対して代入する値を受け付ける処理の一例を示すステップである。また、ステップS710は、アプリケーションに対して行われた操作情報を取得する処理の一例を示すステップである。
【0100】
ステップS711において、情報処理装置101は、データ解析・変換部482を介し、ステップS710にて受信したリクエスト情報を解析・変換する。
【0101】
例えば、画面表示要求の操作(例:画面遷移するためのリンクのクリック操作等)を受け付けた場合は、リクエスト情報1810(
図18)のようなリクエストが受信されるため、1811内の“_link.do?i=”の後の文字列から、「io001」という画面への遷移要求によって送信されたリクエストであることがわかる。つまり、これにより、どの画面を表示するために送信されたリクエストかを解析することができる。
【0102】
また、画面内のアクション操作(例:更新ボタンのクリック操作等)を受け付けた場合は、リクエスト情報1820(
図18)のようなリクエストが受信されるため、リクエスト情報1820(
図18)のPOST情報1821内の“.do?_Action_=”の前後の文字列から、「io001」という画面の「updateAction」というアクションによって送信されたリクエストであることがわかる。また、1822(
図18)から、アクション時にアプリケーションクライアント104から送信されたパラメータ及びそれらの値(引数)も知ることができる。つまり、これらによって、どの画面からどのアクションによりどのような引数を伴って送信されたリクエストかを解析することができる。
【0103】
なお、本実施形態においては、「引数」の例として「入出力項目の値」を挙げたが、「入出力項目の値」に限定するものではなく、「引数」は、例えば、画面の入出力に係る位置、色、大きさ又は内容等に係る情報であってもよい。また、表示、認証、検索、追加、更新若しくは削除等の処理に対して与える情報、又は、カメラ等の周辺機器に対して送信する情報等、テスト実行のために用いる情報であれば、その他の情報であってもよい。
【0104】
すなわち、ステップS711は、操作情報から、アプリケーションを構築するために用いられた定義情報及び当該定義情報に対する操作内容を取得する処理の一例を示すステップである。
【0105】
ステップS712において、情報処理装置101は、遷移先の入出力定義(画面定義)がこれまでの入出力定義と異なる場合(アクション後に異なる入出力定義へ遷移する場合も含む)は)保存先テストケース定義を変更すべくステップS713に進み、同じ場合はステップS717へ進む。
【0106】
ステップS713において、情報処理装置101は、保存先テストケース定義を検索する。例えば、保存先テストケース定義の名称は、入出力定義ファイル名+日付とする。
【0107】
ステップS714において、情報処理装置101は、ステップS713で検索したテストケース定義ファイルが存在しない場合はステップS715へ進む、存在する場合はステップS716へ進む。具体的には、テストケース定義ファイルが存在しない場合とは、例えば、リクエスト情報の取得開始後、途中でテスト対象の入出力定義が変わった(画面が遷移した)際、遷移後の入出力定義名+日付のファイル名を持つテストケース定義が定義リポジトリに内に存在しない場合等が考えられる。
【0108】
ステップS715において、情報処理装置101は、新たなテスト対象である入出力定義用のテストケース定義ファイルを作成する。
【0109】
ステップS716において、情報処理装置101は、対象のテストケース定義ファイルに、ステップS711にて解析したリクエスト情報の解析結果に基づき、テストケース定義情報を生成する。具体的には、ステップS711にて解析した結果、リクエスト情報が「画面表示要求の操作」であると判定した場合は、当該画面を表示する「画面表示」命令を生成する。また、ステップS711にて解析した結果、リクエスト情報が「アクション操作」であると判定した場合は、パラメータに対応する入出力定義の項目に引数の値を入力する「項目値入力」命令を生成し、当該アクションを実行する「アクション実行」命令を生成する。
【0110】
なお、本実施形態においては、ステップS716にて「画面表示」「項目値入力」「アクション実行」命令を生成するとしたが、これらの命令に限定するものではなく、ステップS710にてその他の命令(例:キーボード・マウス・タッチパネル等の入力装置による操作、カメラ等の周辺機器の操作、音声入力、ブラウザ操作、n秒待機、不正な操作等)を含むリクエスト情報を取得し、ステップS711にてそれらの命令を解析し、ステップS716にてそれらの命令に対応するテストケース定義を生成できるとしてもよい。
【0111】
ステップS717において、情報処理装置101は、ステップS710~S717を繰り返すことによって作成されたテストケース定義に基づき、
図19のようなテストケース定義407を生成し、外部メモリ211に記憶する。
【0112】
具体的には、ステップS711にて解析したリクエスト情報を、テストケース定義407の要素<autotest-step>に変換することにより、テストケース定義407を生成する。同様に、テストケース手順の「命令」はテストケース定義407の要素<command>に、「入出力」は<object_01>に、「入出力項目」は<object_02>に、「行番号」は<object_03>に、「引数」は<argument>にそれぞれ変換する。
【0113】
なお、本実施形態においては、テストケース定義407を
図16のようなXMLファイルとしたが、XMLファイルに限定するものではなく、その他の形式のファイルとして生成したり、データベースに記憶させたり、ファイルやデータベース以外の情報として生成したりしてもよい。
【0114】
すなわち、ステップS717は、アプリケーションに係るテストをするテストケースであって、取得された定義情報に対して、取得された当該定義情報に対する操作内容を実行するテストケースを生成する処理の一例を示すステップである。
なお、アプリケーションの操作によらずにテストケース定義を作成する場合、テストケース手順入力画面(
図12)を用いて作成する。
【0115】
例えば、
図12では、グループ項目「G ユーザマスタ」の入出力項目「ID」「パスワード」「名前」への引数を入力する。グループ項目とは、入出力項目を複数持つ表である(例:
図6の602)。この命令に、行番号と引数を入力したものを1302(
図13)に示す。1302(
図13)は、グループ項目における明細「1」行目の入出力項目「ID」「パスワード」「名前」にそれぞれ「1」「yamada」「山田」を入力するという意味である。
【0116】
また、命令が「項目値検証」の場合の引数は、その「入出力項目」の値が、テスト実行時にその「引数」の値と等しいか否かを判定するという意味である(
図13の1303)。ここでは、1302にて「項目値入力」を行い、「アクション実行」でUPDATE(更新)処理を行った後において、「ID」の値が「1」と等しいか否かを判定する。つまり、その時点で「ID」=1の場合は、そのテスト手順=成功と判定し、「ID」≠1の場合は、そのテスト手順=失敗と判定する(詳細は、
図9のステップS911にて後述する)。
以上で、
図7の説明を終了する。
【0117】
以上により、アプリケーション構築ツールにおいて生成したアプリケーションを操作することによってテストケースを生成することができるため、アプリケーション構築ツールにおいて、アプリケーションを構築するための定義情報に係るテストケースを容易に生成する仕組みを提供することができる。これにより、アプリケーションを構築するための定義情報が正しく定義されているか否かテストするためのテストケースを容易に生成することができる。
【0118】
つまり、アプリケーション開発者は、テストを実行するプログラム(テストスクリプト)を記述する必要がないため、テストに係る工数を削減することができ、テストを効率的に行うことができる。よって、プログラミング知識のないアプリケーション開発者や単なるテスターであっても、アプリケーションの操作内容及びその手順さえ理解できれば、アプリケーションに係るテストケースを容易に生成することができる。
【0119】
図8、
図9及び
図10は、テスト実行のフローチャートの一例を示す図である。
【0120】
ステップS801において、情報処理装置101は、テスト実行指示を受け付ける。具体的には、実行メニュー1401(
図14)の押下を受け付ける。
【0121】
ステップS802において、情報処理装置101は、テスト実行対象のテストケース定義に係るアプリケーション1103(
図11)のアプリケーションコード440が作成済か否かを判定する。作成済の場合はステップS803に進み、未作成の場合は本フローチャートを終了する。
【0122】
ステップS803において、情報処理装置101は、テスト実行部(インタープリタ)434とテストケース定義解釈部433を用いて、ステップS801で実行メニュー1401の押下時に選択されていたテストケースに対応するテストケース定義407を外部メモリ211から取得する。
【0123】
ステップS804において、情報処理装置101は、テスト実行部(インタープリタ)434とテストケース定義解釈部433を用いて、ステップS803にて取得したテストケース定義407に含まれるテストケース数及びテスト手順数をカウントする。
【0124】
ステップS805において、情報処理装置101は、テストビュー1403(
図14)を表示する。
【0125】
ステップS806において、情報処理装置101は、テスト進捗バー1404(
図14)を空の状態で表示する。
【0126】
ステップS807において、情報処理装置101は、テスト情報のテストツリーペイン1406(
図14)に、ステップS803及びステップS804でテスト対象としたテストケース名(例:ユーザ登録フォームチェック、商品登録フォームチェック)及びテスト手順(1.画面表示、2.行追加、3.…)を表示する。
【0127】
ステップS808において、情報処理装置101は、テスト情報の詳細ペイン1407(
図14)にメッセージ「実行中…」を表示する。
【0128】
ステップS809において、情報処理装置101は、テスト実行準備部432を用いて、テスト実行前準備を行う。具体的には、テスト実行前準備では、セッション、クッキー及びスレッド等の生成を行い、ユーザが実際にブラウザを用いてアプリケーションを実行した場合と同様のアプリケーションデータを生成する。これにより、ブラウザ、エンドユーザ操作及びアプリケーションサーバ等を用いなくても、アプリケーション構築ツールにおいて、テストを効率的に行うことができる。
【0129】
ステップS901において、情報処理装置101は、テスト実行対象のテストケースの分だけ、ステップS902~S1001を繰り返す。
【0130】
ステップS902において、情報処理装置101は、テスト実行対象のテストケースのテスト手順の分だけ、ステップS903~S915、S921又はS925を繰り返す。
【0131】
ステップS903において、情報処理装置101は、強制終了ボタン1405(
図14)の押下を受け付けたか否かを判断し、押下された場合はステップS904へ進み、押下されていない場合はステップS905へ進む。
【0132】
ステップS904において、情報処理装置101は、テスト進捗バー1404を灰色100%で更新し、未実行のテストケース又はテスト手順がある場合であっても中断し、本フローチャートを終了する。
【0133】
ステップS905において、情報処理装置101は、テストケース定義解釈部433を用いて、テスト手順情報1203を取得する。
【0134】
ステップS906において、情報処理装置101は、テスト手順情報のテスト命令が入力系か否かを判定し、入力系の場合はステップS907へ進み、入力系でない場合はステップS908へ進む。
【0135】
ステップS907において、情報処理装置101は、アプリケーションコードアクセス部436を用いて、生成済のアプリケーションコード440へ疑似的に値の入力を実行する。その後、アプリケーションコードアクセス部を用いて、アプリケーションコード440から実行結果を受け取り、テスト結果取得部435を用いてテスト結果を得る。すなわち、ステップS907は、ステップS712にて受け付けた情報を用いて、テストを実行する処理の一例を示すステップである。また、ステップS907は、生成されたテストケースに基づき、テストを実行する処理の一例を示すステップである。
【0136】
ステップS908において、情報処理装置101は、テスト手順情報のテスト命令が実行系か否かを判定し、実行系の場合はステップS909へ進み、実行系でない場合はステップS910へ進む。
【0137】
ステップS909において、情報処理装置101は、アプリケーションコードアクセス部436を用いて、生成済のアプリケーションコード440へ疑似的にアクションを実行するリクエストを送る。その後、アプリケーションコードアクセス部436を用いて、アプリケーションコード440から実行結果を受け取り、テスト結果取得部435を用いてテスト結果を得る。
【0138】
ステップS910において、情報処理装置101は、アプリケーションコードアクセス部436を用いて、生成済のアプリケーションコード440から検証対象の情報を取得する。
【0139】
ステップS911において、情報処理装置101は、検証対象の情報(検証対象が定義情報に含まれる項目である場合、当該項目に係る情報(例;当該項目が持つ値や属性値))が条件(例;ステップS712にて入力を受け付けた引数の値)に合致するか否かを判定し、検証が成功(条件に合致する)の場合はステップS916へ進み、失敗(条件に合致しない)の場合はステップS912へ進む。
【0140】
例えば、
図13の1303の場合、1302にて「項目値入力」を行い、「アクション実行」でUPDATE(更新)を行った後において、「ID」の値が「1」と等しいか否かを判定する。つまり、その時点で「ID」=1の場合は、そのテスト手順=“成功”と判定し、「ID」≠1の場合は、そのテスト手順=“失敗”と判定する。
【0141】
なお、本実施形態においては、検証系の例として「項目値検証」を挙げたが、項目値に限定するものではなく、例えば、表示するオブジェクトやメッセージの表示位置、色、大きさ又は表示内容等の検証であってもよい。また、表示、認証、検索、追加、更新若しくは削除等の処理にかかった時間、CPUの使用率、記憶領域の空き容量、又は、カメラ等の周辺機器から取得可能な情報等、テスト実行時に取得可能な情報に係る検証であれば、その他の検証であってもよい。
【0142】
すなわち、ステップS911は、ステップS712にて受け付けた情報を用いて、テストを実行する処理の一例を示すステップである。また、ステップS911は、受け付けた値と項目が持つ値とを比較した結果に基づいて、実行されるテストの成否を判定する処理の一例を示すステップである。
【0143】
ステップS912において、情報処理装置101は、テスト手順のステータスを“失敗”としてRAM202に記憶する。
【0144】
ステップS913において、情報処理装置101は、テスト結果取得部435及びテスト結果表示部438を用いて、検証失敗数を更新する(
図15の1503)。
【0145】
ステップS914において、情報処理装置101は、テスト結果取得部435及びテスト結果表示部438を用いて、テスト手順数を更新する(
図15の1502)。
【0146】
ステップS915において、情報処理装置101は、テスト結果取得部435及びテスト結果表示部438を用いて、進捗バーを赤色で更新する(
図15の1505)。
【0147】
ステップS916において、情報処理装置101は、アプリケーションエラーが発生していないことを確認する。発生していなければステップS922へ進み、エラーが発生している場合は、ステップS917へ進む。
【0148】
ステップS917において、情報処理装置101は、テスト手順のステータスを“テスト失敗”としてRAM202に記憶する。
【0149】
ステップS918において、情報処理装置101は、テスト結果取得部435及びテスト結果表示部438を用いて、テスト失敗数を更新する(
図15の1504)。
【0150】
ステップS919において、情報処理装置101は、テスト結果取得部435及びテスト結果表示部438を用いて、テスト手順数を更新する(
図15の1502)。
【0151】
ステップS920において、情報処理装置101は、テスト結果取得部435及びテスト結果表示部438を用いて、進捗バーを赤色で更新する(
図15の1505)。
【0152】
ステップS921において、情報処理装置101は、テスト結果表示部438を用いて、テストケース数を更新する(
図15の1501)。その後、未実施のテスト手順が実行中のテストケースに含まれている場合であっても、それらの実行はせず、次に実行予定のテストケースを実行する。ステップS902に戻る。
【0153】
ステップS922において、情報処理装置101は、テスト手順のステータスを“成功”として登録する(
図15の1507)。
【0154】
ステップS923において、情報処理装置101は、テスト結果表示部438を用いて、テスト手順数を更新する(
図15の1502)。
【0155】
ステップS924において、情報処理装置101は、これまでのテスト手順のステータスにテスト失敗及び検証失敗の両方が0件であるか否かを判定し、正の場合はステップS925に進み、偽の場合はステップS925を行わない。
【0156】
ステップS1001において、情報処理装置101は、テスト結果表示部438を用いて、テストケース数を更新する(
図15の1501)。
【0157】
ステップS1002において、情報処理装置101は、テスト終了処理部437を用いて、テスト実行を終了する。具体的には、テスト実行終了処理では、ステップS809にて生成したセッション、クッキー及びスレッド等をクローズする。
【0158】
ステップS1003において、情報処理装置101は、テスト結果表示部438を用いて、テスト実行時間を更新する(
図15の1506)。
【0159】
ステップS1004において、情報処理装置101は、テスト結果取得部435とテスト結果表示部438を用いて、テスト中に出力されるログをアプリケーションログビューに表示する(
図15の1509)。
【0160】
以上により、テスト対象の画面や処理に到達するまでに必要な画面や処理(例えば、ログイン処理やメニュー画面等)がテストできる程度に構築されていない状態であっても、アプリケーション構築ツールにおいて、テスト対象の定義についてのみテストを行うことができるため、テストを効率的に行うことができる。つまり、早い段階でテスト工程を開始することができるため、高品質なアプリケーションを構築することができる。
【0161】
【0162】
なお、本実施形態のようなアプリケーション構築ツールにおいては、構築されたアプリケーション又は生成されたそのプログラムが正しく動作するかのテストよりも、アプリケーションを構築するために設定した定義情報が予想通りに設定されているかのテストをすべきである。
【0163】
つまり、アプリケーション構築ツールによるアプリケーション構築又はプログラム生成そのものは信頼すべきであり、構築又は生成の基となった(アプリケーション開発者が設定した)定義情報についての正否についてテストすべきである。そのため、本発明が有効である。
【0164】
以上により、アプリケーション構築ツールにおいて、アプリケーションを構築する又はプログラムを生成するために設定した定義情報が正しく定義されているかについて、テストを行うことができる。つまり、これにより、アプリケーション構築ツールにおいて、テスト対象を定義情報に絞ったテスト行うことができるため、テストを効率的に行うことができる。
【0165】
勿論、本実施形態により生成したテストケースを用いて、テスト対象を定義情報に絞ったテストを行うだけでなく、構築又は生成したアプリケーションを動作させてテストを行うことで、アプリケーション全体までテスト対象を広げたテスト(総合テスト)を行うとしてもよい。
【0166】
〔第2の実施形態〕
第1の実施形態は、アプリケーション構築ツールにおいて生成したアプリケーションを操作することによって、アプリケーション構築ツールにおいて、アプリケーションを構築するための定義情報に係るテストケースを容易に生成する仕組みであり、第2の実施形態は、テストケースを生成する設定に基づきテストケースを生成することで、必要なテストケースだけを容易に生成する仕組みである。
【0167】
図20は、第2の実施形態のソフトウェア構成を示すブロック図の一例である。第2の実施形態では、第1の実施形態における
図3のブロック図を
図20に置き換え、第1の実施形態と同じ機能については、同じ番号を付与し説明を省略する。
【0168】
情報処理装置101は、以下の機能部を備える。
【0169】
検証設定取得部2001は、テストケースの生成対象とする検証に係る設定を取得する機能部である。
【0170】
トリガー設定取得部2002は、検証に用いるテストケースを生成するトリガーの設定を取得する機能部である。
【0171】
定義情報対象設定取得部2003は、テストケースの生成対象とする定義情報の設定を取得する機能部である。
【0172】
【0173】
図21は、情報処理装置101、アプリケーションサーバ102及びアプリケーションクライアント104の構成図である。第2の実施形態では、第1の実施形態における
図4の構成図を
図21に置き換え、第1の実施形態と同じ構成については、同じ番号を付与し説明を省略する。
【0174】
プロキシサーバ部480は、リクエスト受信部483を介し、アプリケーションの操作を行うアプリケーションクライアント104からのリクエスト情報を仲介するようにして受信する。受信したリクエスト情報は、記録管理部484で外部メモリに記録し、アプリケーションサーバ102に転送する。
【0175】
プロキシサーバ部480は、フィルタ処理部474(
図21)を介し、アプリケーションの操作を行うアプリケーションクライアント104からのリクエスト情報のうち、テストケース定義情報(テストケース定義データ471)の生成の対象となる操作のみについて、テストケース定義情報の生成を行うべく、フィルタリングを行う。
【0176】
テスト操作記録出力設定部450は、生成されたアプリケーションにおいてどのような操作又は処理が行われた場合に、その操作又は処理をテストケース定義情報(操作命令)(例:
図13の1302)として生成するかの設定である「記録する操作命令情報451」を外部メモリ211に記憶する。
【0177】
テスト操作記録出力設定部450は、生成されたアプリケーションにおいてどのような検証を行うか、検証するために生成するテストケース定義情報(検証命令)(例:
図13の1303)の設定である「記録する検証命令情報452」を外部メモリ211に記憶する。
【0178】
【0179】
図22は、第2の実施形態のテストケース定義生成のフローチャートの一例を示す図である。第2の実施形態では、第1の実施形態における
図7のフローチャートを
図22に置き換え、第1の実施形態と同じ処理については、同じ番号を付与し説明を省略する。
【0180】
ステップS2201において、情報処理装置101は、テストケースを生成する設定情報を取得する。すなわち、ステップS2201は、テストケースの生成対象とする検証に係る設定を取得する処理の一例を示すステップである。また、ステップS2201は、検証に用いるテストケースを生成するトリガーの設定を取得する処理の一例を示すステップである。また、ステップS2201は、テストケースの生成対象とする定義情報の設定を取得する処理の一例を示すステップである。
【0181】
具体的には、外部メモリ211に記憶されているテスト操作記録出力設定部450の「記録する操作命令情報451」及び「記録する検証命令情報452」を取得する。テスト操作記録出力設定部450は、テスト操作記録出力設定画面2300(
図23)であり、この画面で設定されたテストケース生成に係る設定が、「記録する操作命令情報451」及び「記録する検証命令情報452」として外部メモリ211に記憶される。
【0182】
ここで、
図23について説明しておく。
図23は、第2の実施形態のテストケース生成に係る設定をする画面の一例を示す図である。
【0183】
2310は、「全ての命令を出力する」「命令をフィルタリングする」のどちらかを選択するラジオボタンである。
【0184】
2320は、生成されたアプリケーションにおいて、どのような操作又は処理が行われた場合に、その操作又は処理をテストケース定義情報(操作命令)として生成するかの設定である。2320の設定情報は、「記録する操作命令情報451」として外部メモリ211に記憶される。
【0185】
例えば、画面表示2321(
図23)がチェックされた状態であれば、生成されたアプリケーションにおいて、「画面表示」の処理が行われた場合に、「画面表示」の処理を行うテストケース定義情報(操作命令)として生成する。
【0186】
同様に、アクション実行2322(
図23)がチェックされた状態であれば、生成されたアプリケーションにおいて、「アクション実行」の操作が行われた場合に、「アクション実行」の操作を行うテストケース定義情報(操作命令)として生成する。「ページ」「ソート」「行追加」「行削除」「行選択」等の操作が行われた場合も同様である。
【0187】
2330は、生成されたアプリケーションにおいて、どのような検証を行うか、検証するために生成するテストケース定義情報(検証命令)の設定である。2330の設定情報は、「記録する検証命令情報452」として外部メモリ211に記憶される。
【0188】
例えば、画面検証2331(
図23)がチェックされた状態であれば、どのような画面が表示されているかを検証するテストケース定義情報(検証命令)を生成する。
【0189】
同様に、項目値検証2332(
図23)がチェックされた状態であれば、生成されたアプリケーションにおける項目にどのような値が出力されているかを検証するテストケース定義情報(検証命令)を生成する。「メッセージ」「選択肢」「フィールドスタイル」「(ユーザの)ロール」等を検証する設定についても同様である。
【0190】
2340は、テストケース定義情報(検証命令)を生成するためのトリガーの設定である。2340の設定情報も、2330と同様に「記録する検証命令情報452」として外部メモリ211に記憶される。
【0191】
例えば、画面表示2341(
図23)がチェックされた状態であれば、生成されたアプリケーションにおいて、「画面表示」の処理が行われた場合に、テストケース定義情報(検証命令)を生成する。
【0192】
同様に、アクション実行2322(
図23)がチェックされた状態であれば、生成されたアプリケーションにおいて、「アクション実行」の操作が行われた場合に、テストケース定義情報(検証命令)を生成する。「ページ」「ソート」「行追加」等の操作が行われた場合も同様である。
【0193】
2320、2330、2340の選択肢は、
図23の選択肢に限定するものではなく、アプリケーションに係るその他の選択肢があってもよい。
【0194】
【0195】
【0196】
ステップS2202において、情報処理装置101は、ステップS711にて解析したリクエスト情報に、テストケース定義情報(検証命令)を生成するためのトリガー(記録する検証命令情報452のトリガー情報)が含まれるかを判定する。トリガーが含まれる(つまり、アプリケーションの操作を行うアプリケーションクライアント104での操作がトリガー操作であった)場合はステップS2203に進み、トリガーが含まれない(つまり、アプリケーションの操作を行うアプリケーションクライアント104での操作がトリガー操作ではなかった)場合はステップS2204に進む。
【0197】
ステップS2203において、情報処理装置101は、「記録する検証命令情報452」として記憶されている検証命令(
図23の2330)を、テストケース定義情報(検証命令)(
図4の471)として生成する。
【0198】
すなわち、ステップS2203は、テストが実行されたとき、実行されているアプリケーションに係る値を検証するテストケースを生成する処理の一例を示すステップである。また、ステップS2203は、テストが実行されたとき、実行されているアプリケーションに係る値であって、取得された設定に基づく値を検証するテストケースを生成する処理の一例を示すステップである。また、ステップS2203は、取得された設定に基づき、取得された定義情報がトリガーであると判断した場合、検証に用いるテストケースを生成する処理の一例を示すステップである。
【0199】
これにより、所望する操作がされたときにのみ、所望するテストケースのみを容易に生成する仕組みを提供することができる。
【0200】
ステップS2204において、情報処理装置101は、ステップS711にて解析したリクエスト情報に、テストケース定義情報(操作命令)を生成する対象の操作が含まれるかを判定する。対象の操作が含まれる(つまり、アプリケーションの操作を行うアプリケーションクライアント104での操作がテストケース定義情報(操作命令)を生成する対象の操作であった)場合はステップS2205に進み、対象の操作が含まれない(つまり、アプリケーションの操作を行うアプリケーションクライアント104での操作がテストケース定義情報(操作命令)を生成する対象の操作ではなかった)場合はステップS717に進む。
【0201】
ステップS2205において、情報処理装置101は、ステップS711にて解析したリクエスト情報に含まれる操作をテストケース定義情報(操作命令)(
図21の471)として生成する。すなわち、ステップS2205は、取得された設定に基づき、取得された定義情報がテストケースの生成対象であると判断した場合、当該定義情報に対して、取得された当該定義情報に対する操作内容を実行するテストケースを生成する処理の一例を示すステップである。
【0202】
これにより、所望するテストケースのみを容易に生成する仕組みを提供することができる。
【0203】
【0204】
以上により、テストケースを生成する設定に基づきテストケースを生成することで、所望する場合にのみ、所望するテストケースを容易に生成する仕組みを提供することができる。これにより、アプリケーションを構築するための定義情報が正しく定義されているか否かテストするためのテストケースを容易に生成することができる。
【0205】
つまり、本発明により、必要なテストケースを効率的に生成することができるようになる。また、不要なテストケースが出力されないため、テストに要する時間を短縮することができるようになる。
【0206】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(又はCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【0207】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【0208】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、DVD-ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
【0209】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0210】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0211】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0212】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、OS(オペレーティングシステム)に供給されるスクリプトデータ等の形態から成ってもよい。
【0213】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0214】
101 情報処理装置
102 アプリケーションサーバ
103 データベースサーバ
104 アプリケーションクライアント
105 ネットワーク