JP2019197259A - 情報処理装置、その制御方法及びプログラム - Google Patents

情報処理装置、その制御方法及びプログラム Download PDF

Info

Publication number
JP2019197259A
JP2019197259A JP2018089331A JP2018089331A JP2019197259A JP 2019197259 A JP2019197259 A JP 2019197259A JP 2018089331 A JP2018089331 A JP 2018089331A JP 2018089331 A JP2018089331 A JP 2018089331A JP 2019197259 A JP2019197259 A JP 2019197259A
Authority
JP
Japan
Prior art keywords
test
definition
unit
processing apparatus
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018089331A
Other languages
English (en)
Inventor
知子 石田
Tomoko Ishida
知子 石田
文洋 柴本
Fumihiro Shibamoto
文洋 柴本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Marketing Japan Inc
Canon IT Solutions Inc
Original Assignee
Canon Marketing Japan Inc
Canon IT Solutions Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Marketing Japan Inc, Canon IT Solutions Inc filed Critical Canon Marketing Japan Inc
Priority to JP2018089331A priority Critical patent/JP2019197259A/ja
Publication of JP2019197259A publication Critical patent/JP2019197259A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】複数のテスト工程を並行して行うための仕組みを提供すること。【解決手段】アプリケーションを構築する情報処理装置であって、アプリケーションを構築するためのデータベース定義からデータベースの選択を受け付けるデータベース選択受付手段と、データベース選択受付手段で選択されたデータベースであって、互いに異なるデータベースを接続先とする複数のテストスイートを生成するテストスイート生成手段と、テストスイート生成手段により生成された複数のテストスイートに基づいて、接続先のデータベースのデータを用いてアプリケーションに係るテストを実行するテスト実行手段を備えることを特徴とする。【選択図】 図17

Description

本発明は、アプリケーションを構築するための情報処理装置、その制御方法及びプログラムに関する。
従来、設定された定義に基づきアプリケーションを構築(生成)するツールやサービスが存在する。このようなツールやサービスを利用して構築したアプリケーションであっても、アプリケーション定義の設定ミスにより予想外の動作をすることがあるため、テスト工程を省略することはできない。また、アプリケーションが大規模になるに従い、テスト工程の数は肥大化する傾向となる。特に、大規模なアプリケーションの場合、複数のテスト工程を並列して同時に実行することによりテストにかかる時間を低減できることが好ましい。
特許文献1には、登録されたテストケースに基づきテスト用のプログラムを生成する仕組みが開示されている。
特開2010−237841号公報
しかしながら、特許文献1に記載の技術では、複数のテストを並列に同時実行する場合について何ら考慮されていない。特に、複数のテストを行う際に同一のデータベースに接続すると、1のテストの実行中にデータが書き換えられてしまい、正確なテスト結果が得られないおそれがあった。
そこで本発明は、上記の課題に鑑みてなされたものであり、複数のテスト工程を並行して行うための仕組みを提供することを目的とする。
本発明の目的を達成するために、例えば、本発明の情報処理装置は、以下の構成を有する。すなわち、アプリケーションを構築する情報処理装置であって、前記アプリケーションを構築するためのデータベース定義からデータベースの選択を受け付けるデータベース選択受付手段と、前記データベース選択受付手段で選択されたデータベースを接続先とするテストスイートを生成するテストスイート生成手段と、前記テストスイート生成手段により生成されたテストスイートに基づいて、前記接続先のデータベースのデータを用いて前記アプリケーションに係るテストを実行するテスト実行手段を備えることを特徴とする。
本発明によれば、複数のテスト工程を並行して行うための仕組みを提供することが可能となる。
本発明の一実施形態に係るシステムの構成図の一例である。 情報処理装置、アプリケーションサーバ、データベースサーバ、アプリケーションクライアント、として適用可能な各ハードウェア構成の一例を示すブロック図である。 ソフトウェア構成を示すブロック図の一例である。 本発明の一実施形態に係るシステムの構成図である。 アプリケーション生成のフローチャートの一例を示す図である。 アプリケーションの入出力定義画面及びアプリケーションの実行画面の一例を示す図である。 テストケース定義生成のフローチャートの一例を示す図である。 テスト実行のフローチャートの一例を示す図である。 テスト実行のフローチャートの一例を示す図である。 テスト実行のフローチャートの一例を示す図である。 テストケース作成メニューの一例を示す図である。 テストケース手順入力画面の一例を示す図である。 テストケース作成画面の一例を示す図である。 テスト実行画面の一例を示す図である。 テスト結果画面の一例を示す図である。 テストケース定義情報の一例を示す図である。 テストスイート定義作成のフローチャートの一例と示す図である。 DB別テストスイート用アプリケーション生成のフローチャートの一例を示す図である。 テストスイート作成メニュー画面の一例を示す図である。 テストスイート実行のフローチャートの一例を示す図である。 テストスイート作成画面の一例を示す図である。 テストスイート作成画面の一例を示す図である。 データベース定義画面の一例を示す図である。
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
図1は、本発明の一実施形態に係るシステムの構成図の一例である。
情報処理装置101は、開発者の操作に従って画面レイアウト及びデータベース検索指示などを定義する。情報処理装置101は、アプリケーションのプログラム生成を行う。
なお、本実施形態においては、情報処理装置101で生成するアプリケーションはWebアプリケーションとしたが、これに限定するものではなく、携帯電話・スマートフォン・タブレットなどの情報処理装置で動作するアプリケーションや組込みソフトウェアなど、Web技術による通信を利用するアプリケーションでなくてもよい。
また、本実施形態においては、情報処理装置101はアプリケーションのプログラムを生成するとしたが、この方法に限定するものではなく、プログラムを生成することなく、アプリケーションサーバ102やクラウド環境等でアプリケーションが動作する様にデータやファイル等を生成することにより、アプリケーション(の動作環境)を構築する等であってもよい。
アプリケーションサーバ102は、情報処理装置101で生成され配置されたアプリケーションを実行する。また、アプリケーションサーバ102は、データベースサーバ103に接続し、データベースのデータを操作することができる。
データベースサーバ103は、生成されたアプリケーションが利用するデータベースである。なお、開発時にも動作確認などのために利用してもよい。また、データベースサーバ103は、情報処理装置101や、アプリケーションサーバ102と同一の装置で構成されていてもよいし、LANなどのネットワーク105内に配置されてもよい。
アプリケーションクライアント104は、アプリケーションサーバ102と協調して情報処理装置101で開発したアプリケーションプログラムを動作させる、エンドユーザの操作端末である。この、アプリケーションクライアント104は、携帯端末などの情報処理装置であってもよい。
クラウド環境106は、動的にスケーラブルかつ仮想化されたリソースを供給することが可能な環境である。
クラウド環境106内の仮想アプリケーションサーバ107は、情報処理装置101で生成され配置されたアプリケーションを実行する。また、仮想アプリケーションサーバ107は、仮想データベースサーバ108に接続し、データベースのデータを操作することができる。
クラウド環境106内の仮想データベースサーバ108は、生成されたアプリケーションが利用するデータベースである。なお、仮想データベースサーバ108は、開発時にも動作確認などのために利用してもよい。なお、クラウド環境106は動的にスケーラブルかつ仮想化されたリソースを供給することが可能な環境であるとしたが、本実施形態においては、この特徴を備えている必要はなく、クラウド環境106が仮想アプリケーションサーバ107及び仮想データベースサーバ108の動作を提供するのであれば、動的にスケーラブルでなくても、仮想化されたリソースを供給できなくてもよい。
図2は、情報処理装置101、アプリケーションサーバ102、データベースサーバ103、アプリケーションクライアント104として適用可能な各ハードウェア構成の一例を示すブロック図である。
図2において、CPU201は、システムバス204に接続される各デバイスを統括的に制御する。
また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるオペレーティングシステム(OS)や、各サーバ、クライアント、装置など情報処理装置の後述する各種機能を実現するためのプログラムが記憶されている。
RAM202は、CPU201の主メモリ、ワークエリア、一時待避領域等として機能する。
入力コントローラ205は、入力部209からの入力を制御する。この入力部209としては、情報処理装置では、キーボード、マウス等のポインティングデバイス、タッチパネルが挙げられる。
なお、入力部209がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下(指等でタッチ)することにより、各種の指示を行うことができることとする。
また、タッチパネルは、マルチタッチスクリーン等の、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
出力コントローラ206は、出力部210の表示を制御する。この出力部210としては、例えば、CRTや液晶ディスプレイ等が挙げられる。尚、本体と一体になったノート型パソコンのディスプレイも含まれるものとする。また、プロジェクタであってもよいこととする。
外部メモリコントローラ207は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタドライバ等を記憶する外部メモリ211へのアクセスを制御する。外部メモリ211には、各サーバ、クライアント、装置等の各種機能を実現するための各種テーブル、パラメータが記憶されている。この外部メモリ211としては、ハードディスク(HD)やフレキシブルディスク(FD)、PCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)、スマートメディア等が挙げられる。
なお、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォント展開(ラスタライズ)処理を実行することにより、出力部210上での表示を可能としている。また、CPU201は、出力部210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
通信I/Fコントローラ208は、ネットワークを介して外部機器との通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
本発明の実施形態を実現するためのプログラム212は外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。
図3は、本発明の実施形態のソフトウェア構成を示すブロック図の一例である。
情報処理装置101は、以下の機能部を備える。
定義情報取得部301は、アプリケーションを構築するための定義情報を取得する機能部である。ここで、定義情報は、リポジトリ定義部401に設定された、アプリケーション定義402、入出力定義403、データモデル定義404、ビジネスプロセス定義405、データベース定義406(図4参照)を含む。
テスト実行部302は、定義情報取得部301により取得された定義情報を用いて生成されたテストケースに基づき、アプリケーションに係るテストを実行する機能部である。言い換えると、テスト実行部302は、定義情報取得部301により取得された定義情報を用いて生成されたテストケースに基づき、定義情報が正しく定義されているか否かのテストを実行する機能部であるともいえる。また、テスト実行部302は、情報受付部303により受け付けた情報を用いて、テストを実行する機能部である。
また、テスト実行部302は、生成されたテストスイートに基づき、接続先のデータベースのデータを用いてアプリケーションに係るテストを実行する機能部である。なお、テスト実行部302は、複数のテストスイートを並列に実行させ、テストを行うことが可能である。
情報受付部303は、テスト実行部302により実行されるテストに用いる情報を受け付ける機能部である。情報受付部303は、一態様として、表示制御部310により出力部210で選択可能に表示された各種情報の選択を受け付ける。具体的には、情報受付部303は、テストに用いるテストケースの選択を受け付ける。また、情報受付部303は、テストに用いるテストスイートに設定するテストケースの選択を受け付ける。さらに、情報受付部303は、設定されたテストケースあるいは、テストスイートに基づきアプリケーションに係るテストの開始を受け付ける。そして、情報受付部303は、図21における実行ボタン2105が選択されたか否かを受け付ける。つまり、情報受付部303は、テストの開始を受け付ける機能を備える(テスト開始受付部)。また、情報受付部303は、データベース定義からデータベースの選択を受け付ける機能を備える(データベース選択受付手段)。
テストケース定義受付部304は、テストケースの定義を受け付ける機能部である。
テストケース生成部305は、テストケース定義受付部304により受け付けた定義に基づき、テストケースを生成する機能部である。テストケース生成部305は、代入値入力受付部306により受け付けた値を項目に対して代入することを含むテストケースを生成する機能部である。テストケース生成部305は、予想値入力受付部307により受け付けた値と項目が持つ値とを比較することを含むテストケースを生成する機能部である。
代入値入力受付部306は、定義情報取得部301により取得された定義情報に含まれる項目に対して代入する値の入力を受け付ける機能部である。
予想値入力受付部307は、定義情報取得部301により取得された定義情報に含まれる項目が持つと予想される値の入力を受け付ける機能部である。
テスト成否判定部308は、予想値入力受付部307により受け付けた値と項目が持つ値とを比較した結果に基づいて、テスト実行部302により実行されるテストの成否を判定する機能部である。
アプリケーション構築制御部309は、テスト成否判定部308によりテストの結果に従って、アプリケーションの構築をする/しないを制御する機能部である。
表示制御部310は、出力部210(例えば、ディスプレイの画面上の表示)へ表示される内容を制御する機能部である。本実施形態において、表示制御部310は、後述する、図6、図11〜15、図19、図21〜23等のテストケース、およびテストスイートの生成から実行に係る各画面の表示を制御する。つまり、表示制御部310は、図4で説明する各エディタ部により生成される画面を表示する機能を備える。また、テストスイートを用いてテストする場合に、表示制御部310は、テストスイート生成部311で生成された複数のテストケースのうち所定の条件に対応するテストケースを選択可能に表示するように制御する。ここで、所定の条件とは、ユーザにより選択されたテストケースの表示内容を絞り込むための条件であり、例えば、定義情報単位、あるいは、生成した日時に基づいて決定される条件である。なお、具体的な処理については、図17〜23を用いて後述する。
テストスイート生成部311は、テストスイートを生成する機能部である。また、テストスイート生成部311は、ユーザの操作に応じて、テストケース生成部305で生成されたテストケースをテストスイートに設定する機能を備える。テストスイートは、1または複数のテストケースを1単位としたファイルである。テストスイートは、目的別に設定された複数のテストケースをまとめて管理をすることが可能となる。そのため、ユーザは、大規模なアプリケーションを構築する場合でも、目的単位のテストスイートを生成しておくことで、テストの内容を容易に管理することができる。
以上で、図3の説明を終了する。
図4は、情報処理装置101、アプリケーションサーバ102及びアプリケーションクライアント104の構成図である。
情報処理装置101は、リポジトリ定義部401及びアプリケーション生成部410を備える。
情報処理装置101は、アプリケーションを開発する開発者により設定されたリポジトリ定義部401の各定義を用いて、アプリケーション生成部410によりアプリケーションを生成する。
リポジトリ定義部401には、アプリケーション定義402、入出力定義403、データモデル定義404、ビジネスプロセス定義405、データベース定義406が記憶されている。これら402〜406の定義は、アプリケーション構築ツールを介して、開発者によって入力設定または配置される。さらに、リポジトリ定義部401には、テストケース定義407、プレビューデータ408、テストスイート定義409が記憶されている。
入出力定義403は、アプリケーション画面に配置される各種項目のレイアウトの定義情報を保持する。入出力定義403は、入力項目定義情報及び出力項目定義情報を含む。入力項目定義情報は、生成されたアプリケーションの画面を介して当該アプリケーションのエンドユーザが入力する入力項目を定義した情報である。出力項目定義情報は、生成されたアプリケーションの画面に出力する出力項目を定義した情報である。以降、「入力項目定義情報」及び「出力項目定義情報」をまとめて「入出力項目定義情報」と呼ぶ。
なお、本実施形態においては、「入力項目定義情報は、生成されたアプリケーションの画面を介して当該アプリケーションのエンドユーザが入力する入力項目を定義した情報」「出力項目定義情報は、生成されたアプリケーションの画面に出力する出力項目を定義した情報」としたが、これらに限定するものではなく、例えば、画面を有さないバッチやWebサービス等のように、「入力項目定義情報は、生成されたアプリケーションに入力される入力項目を定義した情報」「出力項目定義情報は、生成されたアプリケーションが出力する出力項目を定義した情報」であってもよい。
データモデル定義404は、データベースのテーブルの項目の定義情報を保持する。入出力定義403の各項目には、データモデル定義404の項目を対応づけることができる。
ビジネスプロセス定義405は、アプリケーションにおけるデータを処理するためのロジックの定義情報を保持する。
データベース定義406は、アプリケーションが接続するデータベースに係る情報(データベースサーバ103のIPアドレス、接続ユーザ、接続パスワード等)を定義する。
テストケース定義407は、テストケースの定義情報を保持する。
プレビューデータ408は、リポジトリ定義部401をプレビューする際のデータを保持する。
テストスイート定義409は、テストスイートの定義情報を保持する。
アプリケーション生成部410は、アプリケーション生成用のリポジトリ定義解析部411を用いてリポジトリ定義部401に記憶されている各定義を解析し、アプリケーションコード生成部412及びソースコードコンパイル部413を介し、コンパイル済Java(登録商標)コード441及びHTML/JSP/JavaScript(登録商標)442を含むアプリケーションを生成する。すなわち、アプリケーション生成部410は、設定された定義を用いて、アプリケーションとして用いられるプログラムを生成する手段の一例である。
リポジトリ定義エディタ部420は、リポジトリ定義参照部421によってリポジトリ定義部401を解析する。
テストケース定義エディタ部460は、テストケース定義参照部461と、対象画面入力部462と、値入力部463と、アクション入力部464と、対象項目入力部465と、期待値入力部466を有する。それぞれの入力部から入力された値を保存することでテストケース定義407が作成される。
テストスイート定義エディタ部470は、テストケース定義選択部471と、入出力定義選択部472と、ビジネスプロセス定義選択部473と、データモデル定義選択部474と、関連テストケース抽出部475と、定義ファイル変更時間条件部476と、選択済みテストケース定義477を有する。テストスイート定義エディタ部470は、これらの各部より選択、あるいは抽出された値に基づきテストスイート定義409を作成・編集する。
テストケース定義選択部471は、リポジトリ定義部401に含まれる任意のテストケース定義407の選択を受け付ける。
入出力定義選択部472は、リポジトリ定義部401に含まれる任意の入出力定義403の選択を受け付ける。
ビジネスプロセス定義選択部473は、リポジトリ定義部401に含まれる任意のビジネスプロセス定義405の選択を受け付ける。
データモデル定義選択部474は、リポジトリ定義部401に含まれる任意のデータモデル定義404の選択を受け付ける。
関連テストケース抽出部475は、入出力定義選択部472、ビジネスプロセス定義選択部473、データモデル定義選択部474で選択された定義を参照するテストケースを抽出する。
定義ファイル変更時間条件部476は、関連テストケース抽出部475がテストケース定義407を抽出する際に定義ファイルの変更時間を条件として抽出をする。
選択済みテストケース定義477は、テストスイートに含まれるテストケースとしてテストスイート定義409に保存される。
テスト実行部302は、テストケース定義受信部431によってテストケース定義407を取得する。また、接続先DB受信部439は、接続先DB482を受信する。そして、テストケース定義解釈部433は、取得したこれらの内容を解析する。テスト実行部(インタープリタ)434は、テストケース定義解釈部433を用いて、アプリケーションコードアクセス部436から、アプリケーションコードをテスト実行する。
テスト実行部(インタープリタ)434は、テストケース定義解釈部433を用いて解釈した内容からテスト実行準備部を用いてテストの事前処理を行い、アプリケーションコードアクセス部436を用いてアプリケーションコードをテスト実行する。
テストがすべて完了すると、テスト実行部(インタープリタ)435はテスト終了処理部437を用いてテスト終了処理を行う。
次に、テストスイート定義エディタ部470について説明する。テストスイート定義エディタ部470は、テストケース定義選択部471と、入出力定義選択部472と、ビジネスプロセス定義選択部473と、データモデル定義選択部474と、関連テストケース抽出部475と、定義ファイル変更時間条件部476と、選択済みテストケース定義477と、接続先DB設定部478を有する。テストスイート定義エディタ部470は、テストスイート定義409を作成・編集する機能を備える。
テストケース定義選択部471は、リポジトリ定義部401に含まれる任意のテストケース定義407の選択を受け付ける。
入出力定義選択部472は、リポジトリ定義部401に含まれる任意の入出力定義403の選択を受け付ける。
ビジネスプロセス定義選択部473は、リポジトリ定義部401に含まれる任意のビジネスプロセス定義405の選択を受け付ける。
データモデル定義選択部474は、リポジトリ定義部401に含まれる任意のデータモデル定義404の選択を受け付ける。
関連テストケース抽出部475は、入出力定義選択部472、ビジネスプロセス定義選択部473、データモデル定義選択部474で選択された定義を参照するテストケースを抽出する。
定義ファイル変更時間条件部476は、関連テストケース抽出部475がテストケース定義407を抽出する際に定義ファイルの変更時間を条件として抽出をかけることができる。
選択済みテストケース定義477は、テストスイートに含まれるテストケースとしてテストスイート定義409に保存される。
接続先DB設定部478は、テストをどのデータベース定義406で動かすかを設定する。設定された内容はテストスイート定義409に保存される。また、接続先DB設定部478は、初期設定の接続先も記憶する(データベース記憶手段)。
次に、テストスイート実行部480について説明する。テストスイート実行部480は、テストスイート定義受信部481と、接続先DB482と、テストケース定義取得部483と、スレッド生成部484を有する。
テストスイート定義受信部481は、テストスイート定義409を受信し、接続先DB482を取得する。テストケース定義取得部483は、テストスイートに設定されたテストケース定義407を取得する。接続先DB482は、データベース定義406で保存されるデータベースのうちテストの際に接続するデータベースである。
テストスイート実行部480は、スレッド生成部484を介して、テスト実行部302へテストケース定義取得部483で取得したテストケース定義407と接続先DB482を送信する。テスト実行部302はそれらをもとにテストを実行する。
そして、テスト結果取得部435は、テスト実行の結果を取得し、テスト結果表示部438に表示する。
以上で、図4の説明を終了する。
図5は、アプリケーション生成のフローチャートの一例を示す図である。
情報処理装置101は、ディレクトリ構造を用いて、リポジトリ定義部401の各定義をファイルとして管理する。なお、本実施形態においては、ディレクトリ構造を用いて、リポジトリ定義部401の各定義をファイルとして管理するとしたが、これに限定するものではなく、例えば、データベースを用いてリポジトリ定義部401の各定義を管理してもよいし、クラウドなどネットワーク上の記憶装置を用いて管理する等としてもよい。図5を用いて、アプリケーション生成のフローチャートについて説明する。
ステップS501において、情報処理装置101は、アプリケーション定義402の設定を受け付ける。具体的には、アプリケーション構築ツールの画面を介して、アプリケーション開発者から入出力定義403、データモデル定義404、ビジネスプロセス定義405及びデータベース定義406の設定を受け付ける。
ステップS501にて、受け付けたアプリケーション定義402、入出力定義403、データモデル定義404、ビジネスプロセス定義405及びデータベース定義406の設定は、リポジトリ定義部401にXMLファイル形式で記憶する。
ステップS502において、情報処理装置101は、アプリケーション生成の指示を受け付ける。
ステップS503において、情報処理装置101は、リポジトリ定義部401からアプリケーション定義402を取得する。リポジトリ定義解析部411は、読み込んだ定義を解析したうえでROM203に記憶しておき、解析された定義は各生成部から適宜参照される。
ステップS504において、情報処理装置101は、リポジトリ定義部401からデータモデル定義404を取得する。
ステップS505において、情報処理装置101は、リポジトリ定義部401から入出力定義403を取得する。
ステップS506において、情報処理装置101は、リポジトリ定義部401からビジネスプロセス定義405を取得する。
ステップS507において、情報処理装置101は、リポジトリ定義部401からデータベース定義406を取得する。すなわち、ステップS501〜S507は、アプリケーションを構築するための定義情報を取得する処理の一例を示すステップである。
ステップS508において、情報処理装置101は、アプリケーション生成部410を用いて、Webアプリケーションに用いるプログラムを生成する。すなわち、ステップS508は、アプリケーションのプログラムを生成する処理の一例を示すステップである。また、ステップS508は、アプリケーションを構築する処理の一例を示すステップである。
ステップS509において、情報処理装置101は、テストケース定義を生成する(詳細は、図7の説明にて後述する)。すなわち、ステップS509は、取得された定義情報を用いて、テストケースを生成する処理の一例を示すステップである。また、ステップS509は、受け付けた定義に基づき、テストケースを生成する処理の一例を示すステップである。
ステップS510において、情報処理装置101は、ステップS509にて生成したテストケース定義を用いてテストスイート定義409を作成する(詳細は、図17の説明にて後述する)。
ステップS511において、情報処理装置101は、DB別テストスイート用アプリケーションプログラム生成を行う(詳細は、図18の説明にて後述する)
ステップS512において、情報処理装置101は、テストスイート実行を行う(詳細は、図20にて後述する)。すなわち、ステップS512は、定義情報を用いて生成されたテストスイートに基づき、アプリケーションに係るテストを実行する処理の一例を示すステップである。また、ステップS512は、定義情報を用いて生成されたテストスイートに基づき、定義情報が正しく定義されているか否かテストを実行する処理の一例を示すステップである。
この段階ではアプリケーションをアプリケーションサーバ102に配置(デプロイ)していないため、以上により、アプリケーションサーバ102を用意することなく、テストを実行することができる。
また、以上により、アプリケーションアーカイブファイルの生成、アプリケーションサーバ102への転送、デプロイをすることなく、テストを実行することができるため、テストにかかる時間を削減することができ、開発とテストをシームレスに何度も繰り返すことができる。
また、以上により、情報処理装置101だけでアプリケーションサーバ102にて動作するアプリケーションのテストを実行することができるため、複数人の開発者が同時に並行してテストを行うことができる。
ステップS513において、情報処理装置101は、ステップS512にて実行したテストにおける失敗したテストケースの有無を判定し、有る場合は本フローチャートを終了し、無い場合はステップS514に進む。すなわち、ステップS513は、テストの結果に従って、アプリケーションの構築をする/しないを制御する処理の一例を示すステップである。
ステップS514において、情報処理装置101は、ステップS508にて生成したプログラムをアプリケーションサーバ102に配置(デプロイ)する。
これにより、失敗テストが無い状態のアプリケーションをサーバに構築する仕組みを提供することができる。よって、テストに時間がかかってしまう場合、夜間にテストを実行させ、テストが成功した場合は、続けてアプリケーションサーバ102にデプロイさせておくことができるため、アプリケーション管理者や運用者の手間を省くことができる。
また、失敗テストが有る状態のアプリケーションはサーバに構築することが無くなるため、不具合を含んだアプリケーションをリリースすることがなくなり、アプリケーションが不整合なデータを出力するといったこともなくなるため、結果として、信頼性の高いアプリケーションを運用することができる。
以上で、図5の説明を終了する。
以上により、アプリケーションプログラム生成、テスト実行、デプロイ等の処理を1つの指示で行うことができる。よって、アプリケーション構築ツールにおいて、テストを効率的に行う仕組みを提供することができる。
図6は、アプリケーションの入出力定義画面及びアプリケーションの実行画面の一例を示す図である。入出力定義画面601は、1つのアプリケーションに設定される入出力定義を一覧で表示する画面である。
図7は、テストケース定義生成のフローチャートの一例を示す図である。
ステップS701において、情報処理装置101は、ユーザからのテストケース定義生成の指示を受け付ける。具体的には、新規テストケース作成メニュー1101(図11)の押下を受け付ける。
ステップS702において、情報処理装置101は、外部メモリ211にアプリケーション定義402が作成済か否かを判定する。作成済の場合はステップS703に進み、未作成の場合は本フローチャートを終了する。
ステップS703において、情報処理装置101は、新規テストケース作成ダイアログ1102(図11)を表示し、新規のテストケースの生成に必要な「コード名」「名前」「対象アプリケーション1103」の入力を受け付け、受け付けた情報に基づき、外部メモリ211にテストケース定義407を新規に作成する。
ステップS704において、情報処理装置101は、ステップS703にて作成されたテストケースのテスト手順を入力するためのテスト手順入力画面1201(図12)表示する。この時点では、テストケースにテスト手順が登録されていない状態であるため、テスト手順入力画面1201の「テスト手順」タブを選択した場合、テスト手順を設定するエディタ部には何も表示されていない。
ステップS705において、情報処理装置101は、ステップS703にて入力を受け付けた「対象アプリケーション1103」に属す入出力定義403を外部メモリ211から取得する。
ステップS706において、情報処理装置101は、登録するテスト手順の数だけステップS707〜S712を繰り返す。
ステップS707において、情報処理装置101は、テスト実行時に疑似的に行う命令の選択を受け付ける。命令の種類は、例えば、「画面表示」「行追加」「項目値入力」「項目値検証」等がある。
通常、スクラッチ開発によって構築されたアプリケーションのテストは、テスト要員による「画面表示」「行追加」「項目値入力」等の操作及び目視による「項目値検証」を必要とするが、本実施形態におけるテストは、テスト要員が行う操作及び目視をステップS707にて「命令」として手順化しておき、構築されたアプリケーション又は生成されたアプリケーションプログラムに対して(テスト要員が操作を行ったかのように疑似的に)「命令」を実行することで、テストの実行及び検証が自動でできるようになる。
なお、本実施形態においては、命令の種類は上記4種類の中から選択を受け付けるとしたが、この4種類に限定するものではなく、その他の命令(例:キーボード・マウス・タッチパネル等の入力装置による操作、カメラ等の周辺機器の操作、音声入力、ブラウザ操作、n秒待機、不正な操作等)を選択できるとしてもよい。
ステップS708において、情報処理装置101は、ステップS705にて取得した入出力定義403に基づき、「対象アプリケーション1103」に属す入出力定義403を選択肢として表示する(図12の1203)。
ステップS709において、情報処理装置101は、ステップS708にて表示した選択肢から、テスト実行に用いる入出力定義403の選択を受け付ける。
ステップS710において、情報処理装置101は、ステップS709にて選択を受け付けた入出力定義403に属す入出力項目を選択肢として表示する(図12の1204)。例えば、ステップS707にて、命令に「項目値入力」が選択された場合は、入出力項目のうち値を入力できる項目だけに絞った選択肢を表示する。
ステップS711において、情報処理装置101は、ステップS710にて表示した選択肢から、テスト実行に用いる入出力項目の選択を受け付ける。
ステップS712において、情報処理装置101は、テストの命令実行時に用いる入出力項目への引数の入力を受け付ける。
例えば、図12では、グループ項目「G ユーザマスタ」の入出力項目「ID」「パスワード」「名前」への引数を入力する。グループ項目とは、入出力項目を複数持つ表である(例:図6の602)。この命令に、行番号と引数を入力したものを1302(図13)に示す。1302(図13)は、グループ項目における明細「1」行目の入出力項目「ID」「パスワード」「名前」にそれぞれ「1」「yamada」「山田」を入力するという意味である。
また、命令が「項目値検証」の場合の引数は、その「入出力項目」の値が、テスト実行時にその「引数」の値と等しいか否かを判定するという意味である(図13の1303)。ここでは、1302にて「項目値入力」を行い、「アクション実行」でUPDATE(更新)処理を行った後において、「ID」の値が「1」と等しいか否かを判定する。つまり、その時点で「ID」=1の場合は、そのテスト手順=成功と判定し、「ID」≠1の場合は、そのテスト手順=失敗と判定する(詳細は、図9のステップS911にて後述する)。
なお、本実施形態においては、「引数」の例として「入出力項目の値」を挙げたが、「入出力項目の値」に限定するものではなく、「引数」は、例えば、画面の入出力に係る位置、色、大きさ又は内容等に係る情報であってもよい。また、表示、認証、検索、追加、更新若しくは削除等の処理に対して与える情報、又は、カメラ等の周辺機器に対して送信する情報等、テスト実行のために用いる情報であれば、その他の情報であってもよい。
すなわち、ステップS712は、実行されるテストに用いる情報を受け付ける処理の一例を示すステップである。また、ステップS712は、取得された定義情報に含まれる項目に対して代入する値の入力を受け付ける処理の一例を示すステップである。また、ステップS712は、取得された定義情報に含まれる項目が持つと予想される値の入力を受け付ける処理の一例を示すステップである。
すなわち、ステップS706〜S712は、テストケースの定義を受け付ける処理の一例を示すステップである。
ステップS713において、情報処理装置101は、ステップS706〜S712を繰り返すことによって作成されたテストケース手順(例:図13の1301)に基づき、図16のようなテストケース定義407を生成し、外部メモリ211に記憶する。
具体的には、テストケース手順1301を1つずつ、テストケース定義407の要素<autotest−step>に変換することにより、テストケース定義407を生成する。同様に、テストケース手順1301の「命令」はテストケース定義407の要素<command>に、「入出力」は<object_01>に、「入出力項目」は<object_02>に、「行番号」は<object_03>に、「引数」は<argument>にそれぞれ変換する。
なお、本実施形態においては、テストケース定義407を図16のようなXMLファイルとしたが、XMLファイルに限定するものではなく、その他の形式のファイルとして生成したり、データベースに記憶させたり、ファイルやデータベース以外の情報にしたりしてもよい。
すなわち、ステップS713は、取得された定義情報を用いて、テストケースを生成する処理の一例を示すステップである。また、ステップS713は、受け付けた定義に基づき、テストケースを生成する処理の一例を示すステップである。また、ステップS713は、受け付けた値を項目に対して代入することを含むテストケースを生成する処理の一例を示すステップである。また、すなわち、ステップS713は、受け付けた値と項目が持つ値とを比較することを含むテストケースを生成する処理の一例を示すステップである。
以上で、図7の説明を終了する。
以上により、アプリケーションを構築するための定義情報を用いて、アプリケーションに係るテストケースを容易に生成することができるようになる。また、アプリケーションを構築するための定義情報を用いて、定義情報が正しく定義されているか否かテストするためのテストケースを容易に生成することができるようになる。
図8、図9及び図10は、テスト実行のフローチャートの一例を示す図である。
ステップS801において、情報処理装置101は、接続先DB受信部439を介して、テストスイート定義409に接続先DB482があるか否かを確認する。情報処理装置101は、確認した結果、接続先DBがある場合はステップS803へ進み、ない場合はステップS802へ進む。
ステップS802において、情報処理装置101は、テスト対象のWebアプリケーションコードが生成済みであるか否かを確認する。情報処理装置101は、該当するWebアプリケーションコードが生成されていればステップS804へ進み、なければテスト実行を終了する。
ステップS803において、情報処理装置101は、接続先DBが同じかつテスト対象のWebアプリケーションコードが生成済みであることを確認する。情報処理装置101は、該当するWebアプリケーションコードが生成されていればステップS804へ進み、なければテスト実行を終了する。
ステップS804において、情報処理装置101は、テスト実行部(インタープリタ)434とテストケース定義解釈部433を用いて、ステップS803にて取得したテストケース定義407に含まれるテストケース数及びテスト手順数をカウントする。
ステップS805において、情報処理装置101は、テストビュー1403(図14)を表示する。
ステップS806において、情報処理装置101は、テスト進捗バー1404(図14)を空の状態で表示する。
ステップS807において、情報処理装置101は、テスト情報のテストツリーペイン1406(図14)に、ステップS803及びステップS804でテスト対象としたテストケース名(例:ユーザ登録フォームチェック、商品登録フォームチェック)及びテスト手順(1.画面表示、2.行追加、3.…)を表示する。
ステップS808において、情報処理装置101は、テスト情報の詳細ペイン1407(図14)にメッセージ「実行中…」を表示する。
ステップS809において、情報処理装置101は、テスト実行準備部432を用いて、テスト実行前準備を行う。具体的には、テスト実行前準備では、セッション、クッキー及びスレッド等の生成を行い、ユーザが実際にブラウザを用いてアプリケーションを実行した場合と同様のアプリケーションデータを生成する。これにより、ブラウザ、エンドユーザ操作及びアプリケーションサーバ等を用いずに、アプリケーション構築ツールにおいて、テストを効率的に行うことができるようになる。
ステップS902において、情報処理装置101は、テスト実行対象のテストケースのテスト手順の分だけ、ステップS903〜S915、S921又はS925を繰り返す。
ステップS903において、情報処理装置101は、強制終了ボタン1405(図14)の押下を受け付けたか否かを判断し、押下された場合はステップS904へ進み、押下されていない場合はステップS905へ進む。
ステップS904において、情報処理装置101は、テスト進捗バー1404を灰色100%で更新し、未実行のテストケース又はテスト手順がある場合であっても中断し、本フローチャートを終了する。
ステップS905において、情報処理装置101は、テストケース定義解釈部433を用いて、テスト手順情報1203を取得する。
ステップS906において、情報処理装置101は、テスト手順情報のテスト命令が入力系か否かを判定し、入力系の場合はステップS907へ進み、入力系でない場合はステップS908へ進む。
ステップS907において、情報処理装置101は、アプリケーションコードアクセス部436を用いて、生成済のアプリケーションコード440へ疑似的に値の入力を実行する。その後、アプリケーションコードアクセス部を用いて、アプリケーションコード440から実行結果を受け取り、テスト結果取得部435を用いてテスト結果を得る。すなわち、ステップS907は、ステップS712にて受け付けた情報を用いて、テストを実行する処理の一例を示すステップである。
ステップS908において、情報処理装置101は、テスト手順情報のテスト命令が実行系か否かを判定し、実行系の場合はステップS909へ進み、実行系でない場合はステップS910へ進む。
ステップS909において、情報処理装置101は、アプリケーションコードアクセス部436を用いて、生成済のアプリケーションコード440へ疑似的にアクションを実行するリクエストを送る。その後、アプリケーションコードアクセス部436を用いて、アプリケーションコード440から実行結果を受け取り、テスト結果取得部435を用いてテスト結果を得る。
ステップS910において、情報処理装置101は、アプリケーションコードアクセス部436を用いて、生成済のアプリケーションコード440から検証対象の情報を取得する。
ステップS911において、情報処理装置101は、検証対象の情報(検証対象が定義情報に含まれる項目である場合、当該項目に係る情報(例;当該項目が持つ値や属性値))が条件(例;ステップS712にて入力を受け付けた引数の値)に合致するか否かを判定し、検証が成功(条件に合致する)の場合はステップS916へ進み、失敗(条件に合致しない)の場合はステップS912へ進む。
例えば、図13の1303の場合、1302にて「項目値入力」を行い、「アクション実行」でUPDATE(更新)を行った後において、「ID」の値が「1」と等しいか否かを判定する。つまり、その時点で「ID」=1の場合は、そのテスト手順=“成功”と判定し、「ID」≠1の場合は、そのテスト手順=“失敗”と判定する。
なお、本実施形態においては、検証系の例として「項目値検証」を挙げたが、項目値に限定するものではなく、例えば、表示するオブジェクトやメッセージの表示位置、色、大きさ又は表示内容等の検証であってもよい。また、表示、認証、検索、追加、更新若しくは削除等の処理にかかった時間、CPUの使用率、記憶領域の空き容量、又は、カメラ等の周辺機器から取得可能な情報等、テスト実行時に取得可能な情報に係る検証であれば、その他の検証であってもよい。
すなわち、ステップS911は、ステップS712にて受け付けた情報を用いて、テストを実行する処理の一例を示すステップである。また、ステップS911は、受け付けた値と項目が持つ値とを比較した結果に基づいて、実行されるテストの成否を判定する処理の一例を示すステップである。
ステップS912において、情報処理装置101は、テスト手順のステータスを“失敗”としてRAM202に記憶する。
ステップS913において、情報処理装置101は、テスト結果取得部435及びテスト結果表示部438を用いて、検証失敗数を更新する(図15の1503)。
ステップS914において、情報処理装置101は、テスト結果取得部435及びテスト結果表示部438を用いて、テスト手順数を更新する(図15の1502)。
ステップS915において、情報処理装置101は、テスト結果取得部435及びテスト結果表示部438を用いて、進捗バーを赤色で更新する(図15の1505)。
ステップS916において、情報処理装置101は、アプリケーションエラーが発生していないことを確認する。発生していなければステップS922へ進み、エラーが発生している場合は、ステップS917へ進む。
ステップS917において、情報処理装置101は、テスト手順のステータスを“テスト失敗”としてRAM202に記憶する。
ステップS918において、情報処理装置101は、テスト結果取得部435及びテスト結果表示部438を用いて、テスト失敗数を更新する(図15の1504)。
ステップS919において、情報処理装置101は、テスト結果取得部435及びテスト結果表示部438を用いて、テスト手順数を更新する(図15の1502)。
ステップS920において、情報処理装置101は、テスト結果取得部435及びテスト結果表示部438を用いて、進捗バーを赤色で更新する(図15の1505)。
ステップS921において、情報処理装置101は、テスト結果表示部438を用いて、テストケース数を更新する(図15の1501)。その後、未実施のテスト手順が実行中のテストケースに含まれている場合であっても、それらの実行はせず、次に実行予定のテストケースを実行する。ステップS902に戻る。
ステップS922において、情報処理装置101は、テスト手順のステータスを“成功”として登録する(図15の1507)。
ステップS923において、情報処理装置101は、テスト結果表示部438を用いて、テスト手順数を更新する(図15の1502)。
ステップS924において、情報処理装置101は、これまでのテスト手順のステータスにテスト失敗及び検証失敗の両方が0件であるか否かを判定し、正の場合はステップS925に進み、偽の場合はステップS925を行わない。
ステップS1001において、情報処理装置101は、テスト結果表示部438を用いて、テストケース数を更新する(図15の1501)。
ステップS1002において、情報処理装置101は、テスト終了処理部437を用いて、テスト実行を終了する。具体的には、テスト実行終了処理では、ステップS809にて生成したセッション、クッキー及びスレッド等をクローズする。
ステップS1003において、情報処理装置101は、テスト結果表示部438を用いて、テスト実行時間を更新する(図15の1506)。
ステップS1004において、情報処理装置101は、テスト結果取得部435とテスト結果表示部438を用いて、テスト中に出力されるログをアプリケーションログビューに表示する(図15の1509)。
以上により、テスト対象のアプリケーションが動作可能な状態でなくても、アプリケーション構築ツールにおいて、テスト対象の定義についてのみテストを行うことができるため、テストを効率的に行うことができるようになる。
以上で、図8、図9及び図10の説明を終了する。
次に、図17を用いて、テストスイート定義の作成フローについて説明する。
ステップS1701において、情報処理装置101は、ユーザからのテストケース定義作成の指示を受け付ける。具体的には、新規テストスイート生成受付表示1901(図19)の選択を受け付ける。ここで、図19のテストスイート作成メニュー画面の一例について説明する。情報処理装置101は、新規テストスイート生成受付表示1901が選択されたことに従い、ユーザによるテストスイート定義の作成指示を受け付ける。
ステップS1702において、情報処理装置101は、外部メモリ211にテストケース定義407が作成済か否かを判定する。情報処理装置101は、テストケース定義407が作成済の場合はステップS1703に進み、テストケース定義407が未作成の場合はテストスイート定義の作成処理を終了する。
ステップS1703において、情報処理装置101は、新規テストスイート生成メニュー画面1902(図19)を表示し、接続先DBコード1903の選択(図19)を受け付ける。接続先DBコード1903は、リポジトリ定義部401内のデータベース定義406の中から選択される。ここで、情報処理装置101は、データベースが選択されなかった場合に、初期設定の接続先のデータベース設定2303(図23)に接続し、テストを実行する。また、情報処理装置101は、すでに他のテストスイートで接続先として設定されているデータベースを選択できないように制御してもよい。例えば、情報処理装置101は、接続先DBコード1903のドロップダウンリストで表示させないようにしてもよい。あるいは、情報処理装置101は、他のテストスイートで接続先として設定されているデータベースを選択した場合に、新規テストスイート生成メニュー画面1902を遷移できないように制御してもよい。このように、情報処理装置101は、複数のテストスイートで互いに異なるデータベースに接続させるように、ユーザの操作を支援することができる。
また、情報処理装置101は、データベース設定画面2302を表示して接続先データベースを選択させてもよい。ユーザは、データベース設定画面2302上で、データベースを選択することにより、テストスイートに用いるデータベースを選択することができる。この場合、データベース設定画面2302は、デフォルトで接続するデータベースを示す表示アイテム2304を表示する。なお、情報処理装置101は、他のテストスイートの設定でユーザにより任意に設定されたデータベースを示す表示アイテム2305をデータベース設定画面2302に表示させてもよい。後述するように、本実施形態において、情報処理装置101は、複数のテストスイートを並列に実行する。そのため、情報処理装置101は、当該テストスイートで接続するデータベースを他のテストスイートで選択されていないデータベースに設定する。
ステップS1704において、情報処理装置101は、新規テストスイート生成メニュー画面1902(図19)の入力欄1905、接続先DBコード1903、対象テストケース1904で入力された内容に基づいてテストスイート定義が生成される。
ステップS1705において、情報処理装置101は、リポジトリ定義部401に記憶されるテストケース定義407を選択可能なテストスイート設定画面2100(図21)を表示する。図21におけるテストスイート設定画面2100は、テストスイート定義に記憶された複数のテストケースからテストスイートに設定するものを選択することができる。
また、テストスイート設定画面2100は、対象テストケース1904で選択されたテストケース2101をすでに選択された状態で表示される(図21)。ユーザは、テストスイート設定画面2100から、テストスイート定義に含めたいテストケースを任意に選択する。そして、情報処理装置101は、当該選択されたテストケースをテストスイート定義409に保存する。言い換えると、情報処理装置101は、テストケースの選択情報をテストスイート定義に設定しているとも言える。
ステップS1706において、情報処理装置101は、ユーザからのテストケース定義の絞り込みの指示を受け付ける。具体的には、情報処理装置101は、リポジトリ定義を示すタブ2102が選択されているか判定する。
ステップS1707において、情報処理装置101は、選択されたタブ2102が示すリポジトリ定義に対応するテストスイートを表示する。テストスイート設定画面2100を例に説明すると、情報処理装置101は、「IO」のタブ2102が選択されることにより、リポジトリ定義部401内の入出力定義403をテストに含むテストケースを一覧で表示する。情報処理装置101は、表示されたテストケースへの選択を受け付ける。また、情報処理装置101は、「DM」のタブ2102が選択されることにより、リポジトリ定義部401内のデータモデル定義404をテストに含むテストケースを一覧で表示する。また、情報処理装置101は、「BP」のタブ2102が選択されることにより、リポジトリ定義部401内のビジネスプロセス定義405をテストに含むテストケースを一覧で表示する。
ステップS1708において、情報処理装置101は、ユーザからの定義ファイル変更時間条件部476によるテストケース定義の絞り込みの指示を受け付ける。具体的には、情報処理装置101は、定義ファイル変更時間条件部476で記憶される変更情報を基に表示を制御する。情報処理装置101は、変更時間条件2104(図21)の入力を受け付け、当該入力された条件と定義ファイル変更時間条件部476で記憶する条件を比較する。情報処理装置101は、当該比較した結果を用いて、変更時間条件2104以降に記憶されたテストケース定義を表示する。
ステップS1709において、情報処理装置101は、入力された時間以降に更新されたリポジトリ情報を含むテストケースを表示する。具体的には、情報処理装置101は、定義ファイル変更時間条件部476に記憶された、後に更新されたリポジトリ情報を含むテストケース定義407をソートして表示する。
ステップS1710において、情報処理装置101は、所定の条件により表示されたテストケース定義407の選択を受け付ける。具体的には、情報処理装置101は、チェックボックス2109で、選択または解除することができる。情報処理装置101は、選択を受けつけたテストケース定義をテストスイートとして設定済みとし、テストスイート定義409を更新する。情報処理装置101は、選択結果2102(図21)で示すように、選択されたテストケースを、テストスイート定義を親とした階層構造で表示する。
次に図18を用いて、DB別テストスイート用アプリケーションプログラム生成フローについて説明する。
ステップS1801において、情報処理装置101は、アプリケーション定義402の設定を受け付ける。具体的には、アプリケーション構築ツールの画面を介して、アプリケーション開発者から入出力定義403、データモデル定義404、ビジネスプロセス定義405及びデータベース定義406の設定を受け付ける。
ステップS1801において、受け付けたアプリケーション定義402、入出力定義403、データモデル定義404、ビジネスプロセス定義405及びデータベース定義406の設定は、リポジトリ定義部401にXMLファイル形式で記憶する。
ステップS1802において、情報処理装置101は、アプリケーション生成の指示を受け付ける。
ステップS1803において、情報処理装置101は、リポジトリ定義部401からアプリケーション定義402を取得する。リポジトリ定義解析部411は、読み込んだ定義を解析したうえでROM203に記憶しておき、解析された定義は各生成部から適宜参照される。
ステップS1804において、情報処理装置101は、リポジトリ定義部401からデータモデル定義404を取得する。
ステップS1805において、情報処理装置101は、リポジトリ定義部401から入出力定義403を取得する。
ステップS1806において、情報処理装置101は、リポジトリ定義部401からビジネスプロセス定義405を取得する。
ステップS1807において、情報処理装置101は、リポジトリ定義部401からデータベース定義406を取得する。すなわち、ステップS1801〜S1807は、アプリケーションを構築するための定義情報を取得する処理の一例を示すステップである。
ステップS1808において、情報処理装置101は、ユーザからのテストスイート選択を受け付ける。具体的には、情報処理装置101は、アプリケーション生成画面2300(図23)で選択を受け付ける。情報処理装置101は、テストスイート選択部2301で選択されたテストスイートを生成対象として受け付ける。
ステップS1809において、情報処理装置101は、選択したテストスイートに接続先DB482がある場合は、ステップS1810へ進み、接続先DB482がない場合はステップS1812へ進む。
ステップS1810において、情報処理装置101は、接続先DBコードの情報がある場合、データベース定義406から該当する接続先DBコードと一致するデータベース情報を参照する。
ステップS1811において、情報処理装置101は、アプリケーション名をアプリケーション名とテストスイート名からなるものへ変更する。
ステップS1812において、情報処理装置101は、データベース定義406からデフォルトのデータベース設定を参照する。データベース設定画面2302は、データベース定義406に記憶されるデータベース定義を一覧で表示する画面である。当該データベース定義は、リポジトリ定義エディタ部420で参照され、表示制御部310で表示される。情報処理装置101は、データベース設定画面2302で表示されるデータベース定義のうち、いずれのデータベースをデフォルトで使用するかを記憶している。また、情報処理装置101は、いずれのデータベースをデフォルトの接続先とするかを識別可能に表示することが可能である。一例として、情報処理装置101は、データベース設定画面2302上で表示アイテム2304を表示することによりデフォルトの接続先を識別可能に表示する。
ステップS1813において、情報処理装置101は、上述の各設定に基づいてアプリケーションプログラムを生成する。
次に図20、図21、図22を用いてテストスイートの実行のフロー、各フローにおける画面の表示について説明する。なお、本実施形態においては、図17を用いて説明したテストスイート生成のフローにおいて、複数のテストスイートが生成されているとする。そのため、以下では、情報処理装置101は、複数のテストスイートのテストを並列して同時に実行する場合について説明する。
ステップS2001において、情報処理装置101は、テストの実行の開始の指示を受け付ける。具体的には、情報処理装置101は、実行ボタン2105(図21)が選択されたことに従い指示を受け付ける。なお、実行されるテストスイートは複数であってもよい。複数のテストスイートを並列に実行することで、1つずつテストする場合よりもテストにかかる工数が短縮される。本実施形態では、情報処理装置101は、テスト全体ビュー2106(図21)に表示されたテストスイートを同時に実行するとする。また、情報処理装置101は、テスト全体ビュー2106に表示されるテストスイート定義のうち、チェックボックス2110で選択されたテストスイート定義のみを実行ボタンの選択に従って実行することとしてもよい。
ステップS2002において、情報処理装置101は、テスト全体ビュー2106(図21)を表示する。テスト全体ビュー2106は、設定されたテストスイート定義409の一覧を表示する。そして、テスト全体ビュー2106は、実行されたテストの結果を、テストスイート単位で識別可能に表示することが可能である。また、テスト全体ビュー2106は、テスト進捗バー2107とテスト情報表示部2108とを表示する。テスト進捗バー2107は、必ずしもバー状のインジケータでなくてもよい。テスト進捗バー2107は、例えば、円状のものであってもよい。つまり。テスト進捗バー2107は、少なくとも、実行中のテストスイート定義409の全工程における進捗の割合を視認可能な情報であればよい。テスト情報表示部2108は、実行中のテストスイート定義409の進捗および結果をテキストにて表示する。テスト情報表示部2108は、例えば、「実行中」、「実行完了」、「エラー」等の表示を含む。
ステップS2003において、情報処理装置101は、テスト進捗バー2107を空の状態で表示する。つまり、情報処理装置101は、テストスイート定義409によるテストの進捗が「0」であることを示している。
ステップS2004において、情報処理装置101は、テスト情報表示部2108にテストは実行中であることを示すための表示をする。本実施形態では、情報処理装置101は、テスト情報表示部2108に「実行中…」という文字を表示する。
ステップS2005において、情報処理装置101は、対象であるテストスイートがなくなるまで以下のステップを繰り返す。
ステップS2006において、情報処理装置101は、対象テストスイートのテストスイート定義409を読み込む。
ステップS2007において、情報処理装置101は、対象テストスイートの数だけスレッドを作成する。複数のテストスイートが実行されるとき、スレッドは複数作成され並列に実行される。情報処理装置101は、作成されたスレッドをテスト全体ビュー2106に表示する。
ステップS2008において、情報処理装置101は、対象テストスイートに含まれるテストケース定義を読み込む。
ステップS2009において、情報処理装置101は、ステップS2008で読み込んだテストケースがなくなるまで以下のステップを繰りかえす。
ステップS2010において、情報処理装置101は、読み込んだテスト定義に基づいてテストを実行する。
ステップS2011において、情報処理装置101は、テストの実行状況に応じてテスト進捗バー2107を更新する。一つのテスト進捗バーは1つのテストスイートに対してどれだけ作業が完了したかを表す。
ステップS2012において、情報処理装置101は、テストスイート設定画面2200でテスト結果を表示する。ここで、図22を用いて、テストスイート定義を用いたテスト結果の表示方法について説明する。テストスイート設定画面2200は、テストスイート設定画面2150でテストの実行の開始がされたテストスイートが終了した際の画面の一例である。図22において、テスト進捗バー2201は、テストが完了したことを示している。本実施形態において、「Suite1.wptx」のテスト進捗バーは、エラーが発生せずにテストが完了したことを示す。一方、「Suite2.wptx」のテスト進捗バーは、はエラーが発生してテストが完了したことを示す。テストスイート設定画面2200に示す通り、それぞれのテストスイート定義の進捗バーは、異なる色で表示されるため、ユーザは、エラーが発生せずにテストが完了したか否かを視認することができる。また、それぞれのテストスイート定義の進捗バーの横に、結果が識別可能なアイコン2203が表示される。ユーザは、アイコン2203を目視することにより、いずれのテストスイートでエラーが発生したのかを認識することができる。また、それぞれのテストスイート定義に含まれるテストの横に、結果が識別可能なアイコン2204が表示される。ユーザは、アイコン2204を目視することにより、テストスイートに含まれるテストケースのうちいずれのテストケースでエラーが発生したのかを認識することができる。それぞれのテストケースのステップごとに、テスト結果を識別可能なアイコン2205が表示される。ユーザは、アイコン2205を目視することにより、テストケースのうちいずれのステップでエラーが発生したのかを認識することができる。
なお、本実施形態のようなアプリケーション構築ツールは、アプリケーションを構築するために設定した定義情報が予想通りに設定されているかのテストをするものである。つまり、本実施形態では、アプリケーション構築ツールによるアプリケーション構築又はプログラム生成そのものではなく、構築又は生成の基となる定義情報についての正否についてテストしている。
以上、上述の実施形態によれば、情報処理装置は、データベース定義からデータベースの選択を受け付け、互いに異なるデータベースを接続先とする複数のテストスイートを生成し、生成された複数のテストスイートに基づいて、選択された接続先のデータベースのデータを用いてアプリケーションに係るテストを実行する。そのため、ユーザがテストスイートごとに接続すべきデータベースを選択可能となる。従って、テストの過程でデータベースのデータの値を変更する場合であっても、複数のテストスイートを並行して同時に実行することができる。つまり、大規模なアプリケーションのテスト工程であっても、正確かつ迅速にテストを実行することができる。
上述の実施形態による効果についてより具体的に説明する。情報処理装置は、複数のテストスイートを並行して同時に実行することでトータルのテスト時間が短縮される。例えば、情報処理装置は、10000個のテストケースを実行する場合、直列に実行すれば10時間かかる場合に、10台の装置で並行して実行すれば、理論上は1時間で完了することができる。ただし、10台の装置で同じデータベースを利用した場合は、データベース同士のデータの衝突(他のテストの実行によりデータベースが上書きされる等)による問題が発生する。この考え方を適用すると、情報処理装置は、テストスイートごとに接続するデータベースを分けるために、どのテストをどのデータベースに接続するのかを設定することは有用である。また、複数のテストケースのそれぞれに接続先データベースを設定することは煩雑である。そのため、複数のテストケースを目的ごとにまとめたテストスイート定義を用いて、テストスイート単位ごとデータベースの接続先を設定することはより有用である。特に、本件のようなリポジトリ定義をベースとしたアプリケーション開発ツールを用いる場合と異なり、既存のスクラッチ開発で使われるテストスイートクラスは単にテストケースをまとめただけである。したがって、上述の実施形態のように、テストスイート定義に追加の条件を加えられることは効果的である。本実施形態のアプリケーション開発ツールは、テストスイート定義とともにデータベース定義を有しているため、当該データベース定義の中のどのデータベースに接続するのかを選択するだけで容易に設定が可能となる。
また、情報処理装置は、ユーザにより任意のデータベースの選択を受け付けていない場合には、データベース定義のうち初期設定のデータベースを用いてアプリケーションに係るテストを実行する。このため、情報処理装置は、必要に応じて、選択をせずともデータベースを用いたテストスイートの実行が可能となる。そのため、テスト工程におけるユーザの利便性を向上させることができる。
勿論、本発明の実施形態により生成したテストケースを用いて、テスト対象を定義情報に絞ったテストを行うだけでなく、構築又は生成したアプリケーションを動作させてテストを行うことでアプリケーション全体まで範囲を広げたテストを行うとしてもよい。
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(又はCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、OS(オペレーティングシステム)に供給されるスクリプトデータ等の形態から成ってもよい。
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
101 情報処理装置
102 アプリケーションサーバ
103 データベースサーバ
104 アプリケーションクライアント
105 ネットワーク
302 テスト実行部
305 テストケース生成部
311 テストスイート生成部

Claims (6)

  1. アプリケーションを構築する情報処理装置であって、
    前記アプリケーションを構築するためのデータベース定義からデータベースの選択を受け付けるデータベース選択受付手段と、
    前記データベース選択受付手段で選択されたデータベースであって、互いに異なるデータベースを接続先とする複数のテストスイートを生成するテストスイート生成手段と、
    前記テストスイート生成手段により生成された複数のテストスイートに基づいて、前記接続先のデータベースのデータを用いて前記アプリケーションに係るテストを実行するテスト実行手段
    を備えることを特徴とする情報処理装置。
  2. 前記アプリケーションを構築するためのデータベース定義のうち初期設定の接続先を記憶するデータベース記憶手段を更に備え、
    前記テスト実行手段は、前記データベース選択受付手段により選択を受け付けていない場合に、前記データベース記憶手段で記憶される初期設定のデータベースのデータを用いて前記アプリケーションに係るテストを実行することを特徴とする請求項1に記載の情報処理装置。
  3. 前記テストスイート生成手段により生成されたテストスイートに基づいて、アプリケーションプログラムを生成するアプリケーションプログラム生成手段を更に備えることを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記テスト実行手段は、複数の前記テストスイートに基づいて、それぞれ異なる接続先のデータベースのデータを用いて前記アプリケーションに係るテストを実行するテスト実行手段を備えることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. アプリケーションを構築する情報処理装置の制御方法であって、
    前記アプリケーションを構築するためのデータベース定義からデータベースの選択を受け付けるデータベース選択受付工程と、
    前記データベース選択受付工程で選択されたデータベースであって、互いに異なるデータベースを接続先とする複数のテストスイートを生成するテストスイート生成工程と、
    前記テストスイート生成工程により生成された複数のテストスイートに基づいて、前記接続先のデータベースのデータを用いて前記アプリケーションに係るテストを実行するテスト実行工程
    を備えることを特徴とする情報処理装置の制御方法。
  6. コンピュータを請求項1乃至4のいずれか1項に記載の情報処理装置として機能させるためのプログラム。
JP2018089331A 2018-05-07 2018-05-07 情報処理装置、その制御方法及びプログラム Pending JP2019197259A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018089331A JP2019197259A (ja) 2018-05-07 2018-05-07 情報処理装置、その制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018089331A JP2019197259A (ja) 2018-05-07 2018-05-07 情報処理装置、その制御方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2019197259A true JP2019197259A (ja) 2019-11-14

Family

ID=68538389

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018089331A Pending JP2019197259A (ja) 2018-05-07 2018-05-07 情報処理装置、その制御方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2019197259A (ja)

Similar Documents

Publication Publication Date Title
CN100492316C (zh) 测试自动化的系统和方法
JP5540160B2 (ja) プログラム解析・検証サービス提供システム、その制御方法、制御プログラム、コンピュータを機能させるための制御プログラム、プログラム解析・検証装置、プログラム解析・検証ツール管理装置
JP4395761B2 (ja) プログラムテスト支援装置およびその方法
CN109739855B (zh) 实现数据表拼接及自动训练机器学习模型的方法和系统
US11074162B2 (en) System and a method for automated script generation for application testing
JP2009265810A (ja) 状態遷移テスト支援装置、状態遷移テスト支援プログラム、および状態遷移テスト支援方法
CN113505082B (zh) 应用程序测试方法及装置
JP7212238B2 (ja) 情報処理装置、その制御方法及びプログラム
JP6434435B2 (ja) 情報処理装置、操作支援方法および操作支援プログラム
JP5344658B2 (ja) 情報処理装置、その制御方法、及びプログラム
JP7277694B2 (ja) 情報処理装置、その制御方法及びプログラム
KR101901310B1 (ko) 사용자 중심의 상호 연계 통합 애플리케이션 제공 시스템
JP2019197259A (ja) 情報処理装置、その制御方法及びプログラム
JP7219389B2 (ja) 情報処理装置、その制御方法及びプログラム
JP7323755B2 (ja) 情報処理システム、その制御方法及びプログラム
JP7319516B2 (ja) プログラム、情報処理装置及びその制御方法
JP7256353B2 (ja) 情報処理システム、その制御方法及びプログラム
JP7268759B2 (ja) テストデータ生成装置、テストデータ生成方法、及びプログラム
JP2019197261A (ja) 情報処理装置、その制御方法及びプログラム
JP2019192135A (ja) 情報処理装置、その処理方法及びプログラム
JP7311740B2 (ja) 情報処理システム、その制御方法、及びプログラム
JP2019153265A (ja) 情報処理装置、その処理方法及びプログラム
JP2019153264A (ja) 情報処理装置、その処理方法及びプログラム
JP2016126700A (ja) プログラム検証装置、プログラム検証方法及びプログラム検証プログラム
JP2019192133A (ja) 情報処理装置、その処理方法及びプログラム

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20180703

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20181031

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190115