(57)【要約】【課題】ＵＩ層とＡＰ層を分離開発する際、ＵＩ層に対するユニットテスト工数を削減する。【解決手段】本発明によるユニットテスト装置１０は、画面遷移のある一連の画面群のうち、少なくとも１つの画面をテスト対象画面としてユニットテストを実施する。ユニットテスト装置１０は、テスト対象画面１００−２に対する遷移画面に関連する情報を、テストデータとして格納する記憶装置１３と、ユニットテストの際、スタブを実行するスタブ実行部８とを具備する。スタブ実行部８は、テスト対象画面１００−２の画面オブジェクトを呼び出し、本番実行時に画面オブジェクト１００−２に渡される情報の代わりに、記憶装置１３内のテストデータを画面オブジェクト１００−２に返却する。【選択図】図１３
2009093462.tif 000002
【特許請求の範囲】
【請求項１】
画面遷移のある一連の画面群のうち、少なくとも１つの画面をテスト対象画面としてユニットテストを実施するユニットテスト装置において、
本番実行時に、前記テスト対象画面の画面オブジェクトに渡される情報が、テストデータとして格納される記憶装置と、
前記ユニットテストにおいてスタブを実行するスタブ実行部と、
を具備し、
前記スタブ実行部は、前記テスト対象画面オブジェクトを呼び出し、前記テストデータを前記テスト対象画面オブジェクトに渡す
ユニットテスト装置。
【請求項２】
請求項１に記載のユニットテスト装置において、
前記テストデータは、本番実行時に、前記テスト対象画面の遷移元画面の画面オブジェクトから前記テスト対象画面オブジェクトに渡される画面間共有データを含み、
前記スタブ実行部は、前記記憶装置内の前記画面間共有データを前記テスト対象画面オブジェクトに渡す
ユニットテスト装置。
【請求項３】
請求項１又は２に記載のユニットテスト装置において、
前記スタブ実行部は、前記テスト対象画面の遷移先画面の画面オブジェクトと、前記テスト対象画面オブジェクトとの間における画面間共有データをテスト結果データとして前記記憶装置に格納する
ユニットテスト装置。
【請求項４】
請求項３に記載のユニットテスト装置において、
前記スタブ実行部は、前記テスト対象画面の遷移先画面の画面オブジェクトを呼び出し、前記テスト結果データを前記遷移先画面オブジェクトに渡す
ユニットテスト装置。
【請求項５】
請求項１から４いずれか１項に記載のユニットテスト装置において、
前記テストデータは、本番実行時に、前記テスト対象画面オブジェクトに渡されるビジネスロジックに関するデータを含み、
前記スタブ実行部は、前記記憶装置内の前記ビジネスロジックに関するデータを前記テスト対象画面オブジェクトに渡す
ユニットテスト装置。
【請求項６】
請求項１から５いずれか１項に記載のユニットテスト装置において、
前記スタブは、画面定義ファイルからユニットテストモードに設定されたビルドツールを用いて生成された実行ファイルを実行することで呼び出される
ユニットテスト装置。
【請求項７】
請求項１から６いずれか１項に記載のユニットテスト装置において、
前記スタブ実行部は、前記テスト対象画面の遷移先及び／又は遷移元の画面を指定する遷移情報ファイルに基づいて前記テスト対象画面オブジェクトを呼び出す
ユニットテスト装置。
【請求項８】
画面遷移のある一連の画面群のうち、少なくとも１つをテスト対象画面としてユニットテストを実施するユニットテスト方法において、
本番実行時に、前記テスト対象画面の画面オブジェクトに渡される情報を、テストデータとして記憶装置に格納するステップと、
前記ユニットテストの際、スタブを実行することで前記テスト対象画面を生成するステップと、
を具備し、
前記テスト対象画面を生成するステップは、
前記テスト対象画面オブジェクトを呼び出すステップと、
前記テストデータを前記テスト対象画面オブジェクトに渡すステップと、
を備えるユニットテスト方法。
【請求項９】
請求項８に記載のユニットテスト方法において、
前記テストデータは、本番実行時に、前記テスト対象画面の遷移元画面の画面オブジェクトから前記テスト対象画面オブジェクトに渡される画面間共有データを含み、
前記テスト対象画面を生成するステップは、前記記憶装置内の前記画面間共有データを前記テスト対象画面オブジェクトに渡すステップを更に備える
ユニットテスト方法。
【請求項１０】
請求項８又は９に記載のユニットテスト方法において、
前記テスト対象画面を生成するステップは、前記テスト対象画面の遷移先画面の画面オブジェクトと、前記テスト対象画面オブジェクトとの間における画面間共有データをテスト結果データとして前記記憶装置に格納するステップを更に具備する
ユニットテスト方法。
【請求項１１】
請求項１０に記載のユニットテスト方法において、
前記テスト対象画面を生成するステップは、
前記テスト対象画面の遷移先画面の画面オブジェクトを呼び出すステップと、
前記テスト結果データを前記遷移先画面オブジェクトに渡すステップと、
を更に備えるユニットテスト方法。
【請求項１２】
請求項８から１１いずれか１項に記載のユニットテスト方法において、
前記テストデータは、本番実行時に前記テスト対象画面オブジェクトに渡されるビジネスロジックに関するデータを含み、
前記テスト対象画面を生成するステップは、前記記憶装置内の前記ビジネスロジックに関するデータを前記テスト対象画面オブジェクトに渡すステップを更に備える
ユニットテスト方法。
【請求項１３】
請求項８から１２いずれか１項に記載のユニットテスト方法において、
画面定義ファイルからユニットテストモードに設定されたビルドツールを用いて実行ファイルを生成するステップと、
前記実行ファイルを実行して前記スタブを呼び出すステップと、
を更に具備するユニットテスト方法。
【請求項１４】
請求項８から１３いずれか１項に記載のユニットテスト方法において、
前記テスト対象画面を生成するステップは、前記前記テスト対象画面の遷移先及び／又は遷移元の画面を指定する遷移情報ファイルに基づいて前記テスト対象画面オブジェクトを呼び出すステップを備える
ユニットテスト方法。
【請求項１５】
請求項８から１４いずれか１項に記載のユニットテスト方法をコンピュータに実行させるユニットテストプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザインタフェース層に対してユニットテストを行うユニットテスト装置、ユニットテスト方法、及びユニットテストプログラムに関する。
【背景技術】
【０００２】
近年の情報処理装置では、画面上で視覚的にデータの参照や入力操作を可能にするＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）がユーザインタフェースの主流となり、複雑な画面設計を要求されるようになってきている。
【０００３】
ユーザインタフェース層（ＵＩ層：例えば表示画面）の開発とアプリケーション層（ＡＰ層：例えばビジネスロジック）の開発で必要となるスキルは異なる。このため、アプリケーションプログラムのＵＩ層とＡＰ層を分離して開発するケースが増えてきている。
【０００４】
それに伴い、ＵＩ層単体でのユニットテストが必要となることが多くなっている。しかし、ＵＩ層単体でのユニットテストを実施するには多くの準備が必要とされる。例えば、画面遷移のある一連の画面群のテストを行う場合、画面間に存在する依存関係を考慮してテストを行わなければならない。このため、画面群をテストする場合、それぞれの画面間共有データをやり取りするためのスタブや、ＡＰ層のビジネスロジックを予め用意する必要がある。
【０００５】
一方、アプリケーション製品の品質確保のため、単一画面の段階でテストを実施するのが望ましい。しかし、上述のように画面遷移のある画面群において単一画面のテストを行う場合、テスト対象画面の遷移前後の画面を考慮する必要がある。例えば、図１１に示すように、Ａ画面１００−１、Ｂ画面１００−２、Ｃ画面１００−１、…、Ｎ画面１００−Ｎの順で遷移するように画面遷移情報が設定されている場合において、Ｂ画面１００−２をテストする場合、Ａ画面１００−１及びＣ画面１００−１と共通する情報や、それぞれの画面とＢ画面１００−２との間でやり取りされるデータが必要となる。又、テスト対象画面（例えばＢ画面１００−２）以外の画面を作成せずにユニットテストを実施するには、Ｂ画面１００−２から呼び出されるビジネスロジックに相当するスタブや、遷移前後にあたるＡ画面１００−１及びＣ画面１００−３を表示させるためのスタブを作成する必要がある。
【０００６】
このため、従来技術では、画面遷移のある一連の画面群をテストする場合、他のテスト対象画面に関連する画面を作成するか、あるいは、ＡＰ層クラスライブラリ（例えばビジネスロジックファイル）を準備したり、テスト対象画面に連携する画面オブジェクトの代わりに動作するスタブをコーディングしなければならない。
【０００７】
以下に、インタフェース層に対してテストを行う従来技術の一例を示す。特開２０００−０１０８２０には、外部関数の呼び出しにインタフェースを合わせたダミー関数を利用して外部関数の機能を他プロセスが関与しない模倣した動作を行うテスト方法が記載されている（特許文献１参照）。又、特開２００６−０４８５２８には、アプリケーションロジックが用意されない環境で、ウェブアプリケーションの画面遷移を試験する画面遷移方法が記載されている（特許文献２参照）。更に、特開２００７−００４２４４には、画面を表示するためのパラメータ等を含む処理内容設定ファイルを記憶装置から取得して、遷移画面群における画面毎の表示処理を行う情報処理装置が記載されている（特許文献３参照）。
【０００８】
又、テスト用のスタブに関する技術が特開２００５−０３８０７６に記載されている（特許文献４参照）。特許文献４には、テスト対象プログラムをから外部に送られる電文を解析して必要とされるデータ項目を検出し、当該データ項目に対応する入力データを電文に埋め込むスタブが記載されている。この際、データ項目に対応する入力データは、ユーザによって入力される必要がある。又、特許文献４に記載の技術では、単一画面でのテストを想定されているため、一連の画面遷移があり画面間で受け渡すデータが存在する場合、画面間のテスト機構を別途用意する必要がある。
【０００９】
従って、上述の特許文献に記載の技術を利用しても、一連の画面遷移がある画面群における単一画面に対してユニットテストを行う場合、複数画面の完成を待って（時にはビジネスロジックの完成を待って）、複数ユニットを結合してからテストを実施する必要がある。あるいは、遷移前後の画面との間で共有データを受け渡すためのスタブや、ビジネスロジックに相当するスタブを作成する必要がある。このため、従来技術では、ＵＩ層とＡＰ層を分離開発する際、ＵＩ層に対するユニットテスト工数が多くなり、製品の開発効率が低下してしまう。
【特許文献１】特開２０００−０１０８２０
【特許文献２】特開２００６−０４８５２８
【特許文献３】特開２００７−００４２４４
【特許文献４】特開２００５−０３８０７６
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、ユーザインタフェース層の開発効率を増大させるユニットテスト装置、ユニットテスト方法、及びユニットテストプログラムを提供する。
【００１１】
本発明による他の目的は、ＵＩ層とＡＰ層を分離開発する際、ＵＩ層に対するユニットテスト工数を削減するユニットテスト装置、ユニットテスト方法、及びユニットテストプログラムを提供する。
【００１２】
本発明の更に他の目的は、画面遷移のある一連の画面群のうち、少なくとも１つ以上の画面に対するユニットテストを実現するユニットテスト装置、ユニットテスト方法、及びユニットテストプログラムを提供する。
【課題を解決するための手段】
【００１３】
本発明によるユニットテスト装置は、画面遷移のある一連の画面群のうち、少なくとも１つの画面をテスト対象画面としてユニットテストを行う。ユニットテスト装置は、記憶装置と、スタブ実行部とを具備する。記憶装置は、本番実行時に、テスト対象画面オブジェクトに渡される情報を、テストデータとして格納する。スタブ実行部は、ユニットテストを実施する際、スタブを実行することで、テスト対象画面の画面オブジェクトを呼び出す。又、スタブ実行部は、記憶装置内のテストデータをテスト対象画面オブジェクトに渡す。このため、遷移前の画面に対応するスタブや、画面間でやり取りされる情報を制御するスタブを専用に作成する必要がなくなる。
【００１４】
又、テストデータは、本番実行時、テスト対象画面の遷移元画面の画面オブジェクトからテスト対象画面オブジェクトに渡される画面間共有テストデータを含むことが好ましい。この場合、スタブ実行部は、記憶装置内の画面間共有テストデータをテスト対象画面オブジェクトに渡す。
【００１５】
又、スタブ実行部は、テスト対象画面の遷移先画面の画面オブジェクトと、テスト対象画面オブジェクトとの間における画面間共有データをテスト結果データとして記憶装置に格納することが好ましい。
【００１６】
更に、スタブ実行部は、テスト対象画面の遷移先画面の画面オブジェクトを呼び出すことが好ましい。この場合、記憶装置内に格納したテスト結果データを遷移先画面オブジェクトに渡す。
【００１７】
テストデータは、本番実行時に、テスト対象画面オブジェクトに渡されるビジネスロジックに関するデータを含むことが好ましい。スタブ実行部は、記憶装置内のビジネスロジックに関するデータをテスト対象画面オブジェクトに渡す。
【００１８】
更に、スタブ実行部で実行されるスタブは、画面定義ファイルからユニットテストモードに設定されたビルドツールを用いて生成された実行ファイルを実行することで呼び出されることが好ましい。これにより、本番時に使用する画面定義ファイルを変更することなくユニットテストを行うことができる。
【００１９】
上述のスタブ実行部の各機能は、プログラムをコンピュータによって実行することで実現されることが好ましい。
【発明の効果】
【００２０】
本発明によるユニットテスト装置、ユニットテスト方法、及びユニットテストプログラムによれば、ユーザインタフェース層の開発効率を増大させることができる。
【００２１】
本発明によるユニットテスト工数を削減するユニットテスト装置、ユニットテスト方法、及びユニットテストプログラムは、ＵＩ層とＡＰ層を分離開発する際、ＵＩ層に対するユニットテスト工数を削減することができる。
【００２２】
又、画面遷移のある一連の画面群のうち、少なくとも１つ以上の画面に対するユニットテストを実現する。
【発明を実施するための最良の形態】
【００２３】
以下、添付図面を参照して、本発明によるユニットテスト装置、ユニットテスト方法、及びユニットテストプログラムの実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示している。尚、同一又は類似の構成要素については、その説明を省略する。又、複数の構成要素には同一符号に追い番が付与され、それぞれを区別せず総称して説明する時は、追い番を付与しない符号を用いて説明する。
【００２４】
（概要）
本発明によるユニットテスト装置１０は、ユニットテスト用の実行ファイルの作成及び実行が指示されると、通常の初期画面表示のプログラムを、ＵＩ層単体ユニットテストの汎用スタブを呼び出すプログラムに変更して実行する。ユニットテスト装置１０は汎用スタブ実行することで、ＵＩ層とＡＰ層との間のインタフェース情報、及び画面オブジェクト間の遷移情報を定義したファイルに基づき、テスト対象画面を生成する際に必要な入出力情報を把握する。そして、テストデータベース（テストＤＢ）に対して、テストデータの取得／格納が行われる。本発明により、ＡＰ層クラスライブラリや連携する画面オブジェクトを呼び出すためのスタブを作成することなく、テストデータを用意するだけで単一画面でのユニットテストが可能となる。
【００２５】
（構成）
図面を参照して、本発明によるユニットテスト装置１０の実施の形態における構成を説明する。図１は、本発明によるユニットテスト装置１０の実施の形態における構成図である。ユニットテスト装置１０はコンピュータ等の情報処理装置に例示され、バス１６を介して相互に接続されるＣＰＵ１１と、主記憶装置（ＲＡＭ１２）と、記憶装置１３と、入力装置１４と、出力装置１５とを具備する。記憶装置１３は磁気ディスク、半導体メモリ、光ディスクあるいはその他の記録媒体に例示される外部記憶装置である。又、入力装置１４は、キーボードやマウス等のユーザによって操作されることで、コマンドや情報等をＣＰＵ１１や記憶装置１３に出力する。出力装置１５は、モニタやプリンタに例示され、ＣＰＵ１１から出力される処理結果（例えば画面情報）をユーザに対し視認可能に出力する。尚、図示しないが、ＣＰＵ１１には、記憶装置１３に対するデータの転送を制御するメモリ制御インタフェースや、入力装置１４及び出力装置１５へのデータの入出力を制御する入出力インタフェースが接続されている。又、バス１６には外部のネットワークと接続するためのインタフェースである通信制御装置を備えていてもよい。又、記憶装置１３は、必ずしもユニットテスト装置１０内に備える必要はなく、外部に独立して備えていてもよい。
【００２６】
記憶装置１３には、画面設計や画面遷移に必要なファイル、及びユニットテストを行うプログラムが格納される。詳細には、記録装置１３は、画面定義ファイル２１、画面遷移情報ファイル２２、インタラクション情報ファイル２３、テストデータベース２４（テストＤＢ２４）、ユニットテストプログラム２５を格納している。ＣＰＵ１１は、入力装置１４からの入力に応答して、記憶装置１３内のユニットテストプログラム２５を実行し、指定されたテスト対象画面の表示を及び解析に関する各種処理を行う。この際、記憶装置１３からの各種データやコマンドはＲＡＭ１２に一時格納され、ＣＰＵ１１は、ＲＡＭ１２内のデータを用いて各種処理を実行する。
【００２７】
ＣＰＵ１１は、ユニットテストプログラム２５を実行することで、図１３に示す画面設計ツール１、画面遷移情報作成ツール２、インタラクション情報作成ツール３、ビルドツール７、スタブ実行部８の各機能を実現する。又、ＣＰＵ１１は、図示しない画面生成プログラムを実行することで、図１０に示すビルドツール４、コントローラ５、ビジネスモジュール６の各機能を実現しても良い。ここで、画面設計ツール１、画面遷移作成ツール２、インストラクション情報作成ツール３は、ユニットテスト装置１０と異なる装置に設けられていても良い。
【００２８】
尚、図１０及び図１３に示す画面設計ツール１、画面遷移作成ツール２、ビルドツール７、コントローラ５、スタブ実行部８は、１台の情報処理装置に備えても良いし、複数の情報処理装置に分散して備えても良い。又、上記説明では、画面設計ツール１、画面遷移作成ツール２、ビルドツール７、コントローラ５、スタブ実行部８は、プログラムを実行することにより実現する例を示しているが、これらの機能は、例えばメモリや論理回路から成るＬＳＩ等により実現しても良い。
【００２９】
画面定義ファイル２１は、従来技術と同様に画面設計ツール１によって作成されるコードファイルである。画面定義ファイル２１は、例えばＸＭＬ形式で記述される。図２は、画面定義ファイル２１の構成の一例を示す図である。画面定義ファイル２１は、画面オブジェクトを識別するための画面クラス名２１１に対応付けられた画面レイアウト情報２１２とイベントハンドラ情報２１３等を含む。画面レイアウト情報２１２は、例えば表示された画面上に配置されるコントロールボタンやテキストボックス等を定義する情報である。又、本発明による画面定義ファイル２１は、汎用スタブに関する記述を含む。汎用スタブは、図１３に示すスタブ実行部８によって実行されることで、ＡＰ層スタブ機能、画面間共有データ取得用スタブ機能、画面間共有データ格納用スタブ機能の３つの機能を実現する。詳細には、ＡＰ層スタブ機能は、ビジネスロジックの代わりにデータベースに格納したテストデータを返却する。画面間共有データ取得用スタブ機能は、前画面オブジェクトから引き渡されるデータの代わりにデータベースに格納したテストデータを返却する。画面間共有データ格納用スタブ機能は、次画面オブジェクトに引き渡されるデータを、次画面オブジェクトの代わりにデータベースに格納する。
【００３０】
この汎用スタブ機能を利用することで、利用者はスタブ用のコーディングをすることなく、テストパターンにあわせてデータベースにテストデータを準備するだけでＵＩ層（画面）のユニットテストを実施できる。通常、汎用スタブ機能の動作を決定する設定ファイルが必要となるが、設定ファイルには本番実行時と同じ設定ファイルを参照して動作させることができるため、ユニットテスト用に新たに設定ファイルを用意する必要がない。尚、設定ファイルは、テスト対象アプリケーションの外部設計書及び内部設計書で定義すべき情報のみであるため、本発明では限定はしないが、設計書からの変換ツールを用意することが望ましい。
【００３１】
汎用スタブ機能の動作を決定する設定ファイルが必要となる。しかし、本発明では当該設定ファイルとして本番実行時と同じ設定ファイル（画面定義ファイル２１）を参照して動作させることができる。このためユニットテスト用に新たに設定ファイルを用意する必要はない。尚、画面定義ファイル２１は、テスト対象となるアプリケーションの外部設計書、及び内部設計書で定義すべき情報のみで記述されることが好ましい。この場合、設計書からコードファイルを生成する変換ツールが画面設計ツール１として用意される。しかし、本発明では、この限りではない。
【００３２】
画面遷移情報ファイル２２は、従来技術と同様に画面遷移作成ツール２によって作成され、開発対象アプリケーションに存在する画面からの画面遷移を定義する情報である。図３は、画面遷移情報ファイル２２の構成の一例を示す図である。又、図４に、画面遷移情報ファイル２２の記述例を示す。
【００３３】
画面遷移情報ファイル２２は、一般的に、アプリケーションの外部設計時に生成された画面遷移図を利用して自動生成されることが好ましい。例えば、図４に示す画面遷移情報ファイル２２は、図５に示す画面遷移図に基づいて生成されたファイルである。ただし、画面遷移情報ファイル２２は、画面とその遷移先画面との対応が分かれば、その生成方法は限定されない。又、画面遷移情報ファイル２２は、本番実行時とユニットテスト時で同じファイルを利用することが可能であるため、本発明のユニットテスト用に新たに作成する必要はない。
【００３４】
図３及び図４を参照して、画面遷移情報ファイル２２には、画面情報２２１と遷移情報２２２とが対応付けられて記述される。画面情報２２１は、画面クラス名に例示される表示画面（画面オブジェクト）を識別するための情報を有する。遷移情報２２２には、対応する画面情報２２１が特定する画面からの遷移先の画面クラス名や、画面遷移のトリガとなる遷移キーのキー名等の情報が対応付けられて記録される。例えば、図５に示す画面遷移図の一例では、遷移キー（ｎｅｘｔ）による指示に応じて、クラス名Ｆ００１のフォーム（００１）がクラス名Ｆ００２のフォーム（００２）に遷移し、遷移キー（ｎｅｘｔ）による指示に応じて、クラス名Ｆ００１のフォーム（００１）からクラス名Ｆ００２のフォーム（００２）に遷移し、遷移キー（ｐｏｐ）による指示に応じて、クラス名Ｆ００２のフォーム（００２）からクラス名Ｐ００１のフォーム（００３）に遷移する。又、画面表示処理の開始時には遷移キー（Ｓｔａｒｔ）に応じてフォーム（００１）の画面が表示され、フォーム（００２）の画面が表示されている時、遷移キー（Ｓｔａｒｔ）に応じて処理を終了する。このような画面遷移図に基づいて作成された画面遷移情報ファイル２２には、画面情報２２１として（Ｃｌａｓｓ＝“Ｆ００１”）や、クラスＩＤ（ＩＤ＝“Ｆ００１”）が記載され、遷移情報２２２として（ｔａｒｇｅｔ＝“Ｆ００２”）、（ｎａｍｅ＝“ｎｅｘｔ”）が記述される。又、遷移情報２２２には、遷移元画面のインスタンス管理や遷移元画面の表示状態に関する情報が記述されても良い。画面遷移情報ファイルを利用することで後述するコントローラ５やスタブ実行部８は、指定される遷移キーに基づいて遷移先の画面（画面オブジェクト）を特定したり、指定される画面クラス名に基づいて当該画面の遷移先（次画面）や遷移元（前画面）を特定することができる。更に、画面遷移情報ファイル２２には、ユニットテストの対象となる画面を特定する情報を含むことが好ましい。
【００３５】
インタラクション情報ファイル２３は、従来と同様にインタラクションエディタ（インタラクション情報作成ツール３）によって作成される。インタラクション情報ファイル２３は、ビジネスロジックのインタフェースに利用するデータ型（例えばデータテーブル形式）や画面間共有データのデータ型等を指定する情報を含む。図６は、インタラクション情報ファイル２３の構成の一例を示す図である。又、図７に、インタラクション情報ファイル２３の記述例を示す。
【００３６】
インタラクション情報ファイル２３は、一般的に、アプリケーションの内部設計時に生成されたシーケンス図を利用して自動生成されることが好ましい。例えば、図７に示すインタラクション情報ファイル２３は、図８に示すシーケンス図に基づいて生成されたファイルである。ただし、インタラクション情報ファイル２３は、画面生成に利用するビジネスロジックや画面間共有データを指定することができれば、その生成方法は限定されない。又、インタラクション情報ファイル２３は、本番実行時とユニットテスト時で同じファイルを利用することが可能であるため、本発明のユニットテスト用に新たに作成する必要はない。
【００３７】
図６及び図７を参照して、インタラクション情報ファイル２３には、ビジネスロジック情報２３１と画面間共有データ情報２３２とが記述される。ビジネスロジック情報２３１には、ビジネスロジッククラス名や、ビジネスロジックのＩ／Ｆに利用するデータ型を示すＩ／Ｆ情報が、これらの情報の呼び出しに用いられるキー名に対応付けられて記載される。画面間共有データ情報２３２には、画面間共有データのデータ型が、このデータ型の呼び出しに用いられるキー名に対応付けられて記載される。図７に示した一例は、「．ＮＥＴ基盤」を利用したアプリケーションにおけるインタラクション情報ファイル２３であるため、Ｉ／Ｆ情報のデータ型は、型付きデータテーブルを利用したデータ型であるが、アプリケーションに応じたデータ型が設定されることは言うまでもない。
【００３８】
図９を参照して、テストＤＢ２４には、予め、ビジネスロジックテストデータ２４３と、画面間共有テストデータ２４４とが、テストＩＤ２４１及びキー名２４２に対応付けられて格納される。テストＩＤは、予め設定されたテストパターン（テスト方法）を特定するための識別子である。ここでテストパターンとは、テストの手順を示し、テスト対象画面に対応するビジネスロジック及び画面間共有データ、画面に基づく操作によって入力装置１４からの入力データを規定する。このため、テストパターン毎に、画面オブジェクト１００から呼び出されるビジネスロジックテストデータ２４３や画面間共有テストデータ２４４がテストＤＢ２４に設定される。このテストパターンは、予め複数用意されることが好ましい。
【００３９】
キー名２４２は、ビジネスロジックの呼び出し、及び画面間共有データの格納及び／又は取得を、図１３に示すスタブ実行部８に対して指示するためのキーを識別する識別子である。ビジネスロジックテストデータ２４３は、ユニットテストの際、テスト対象となる画面オブジェクトから呼び出すビジネスロジックのＩ／Ｆとして利用されるデータである。画面間共有テストデータ２４４は、ユニットテストの際、画面間共有データとして利用されるデータである。
【００４０】
又、テストＤＢ２４には、更に、テスト結果データ２４６が、テストＩＤ２４１及びキー名２４２に対応付けられて記録される。これにより、テストパタンに対応するテスト結果データ２４５を記録することができる。テスト結果データ２４６には、結果データ、テストデータ種別、タイムスタンプ等が対応付けられて記録される。
【００４１】
結果データは、ユニットテストの際、入力装置１４からテスト対象画面に入力されたデータ（インプットデータ）や、ユニットテストにおいて、スタブ実行部８が画面遷移情報ファイル２２、インタラクション情報ファイル２３、テストＤＢ２４から取得した情報、及び画面オブジェクトに返却した情報（アウトプットデータ）を含む。例えば、インプットデータとして、入力装置１４によって入力（指定）された各種データ、テストＩＤ、遷移キー等が記録される。又、アウトプットデータとして、テスト対象画面オブジェクトと遷移先の画面オブジェクトとの間における画面間共有データやそのデータ型、テストに利用されたビジネスロジックやそのＩ／Ｆのデータ型等が記録される。
【００４２】
テストデータ種別は、対応する結果データがインプットデータかアウトプットデータかを示す情報である。タイムスタンプは、結果データの格納時間を示す。又、ビジネスロジックテストデータ２４３、画面間共有テストデータ２４４、テスト結果データ２４５（結果データ）には、ユーザがテストのために予め用意したデータか、ユニットテストの結果、格納（記録）されたデータかを識別できる情報が付加されていることが好ましい。
【００４３】
尚、テストＤＢ２４は、ＤＢＭＳ（ＤａｔａＢａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）によって管理されるデータテーブルによって実現されることが好ましい。又、このテーブルスキーマは、ツールによって画面定義ファイル２１（アプリケーションコード）又は実行ファイル４０から取得されたＩ／Ｆ情報に基づいて自動作成されることが好ましい。
【００４４】
（試験対象アプリケーションの動作）
図１０から図１２を参照して、ユニットテスト装置１０の試験対象であるアプリケーション（画像生成装置）の動作を説明する。図１０は、試験対象となるアプリケーションの構成を示す機能ブロック図である。
【００４５】
ビルドツールは、画面定義ファイル２１のコンパイルやクラスライブラリのリンクなどを行うことで、実行ファイルを生成する。設計対象となるアプリケーションでは、通常モードに設定されたビルドツール４によって生成された実行ファイル３０が用いられる。コントローラ５は、リフレクション機能によって実行ファイル３０から画面クラスをインスタンス化し、画面オブジェクト１００を起動する（呼び出す）。以下、画面オブジェクト１００、１００−１〜Ｎを画面１００、１００−１〜Ｎと称す。
【００４６】
又、図１１に示すように、コントローラ５は、画面遷移制御（画面遷移設定）、画面間におけるデータの受け渡し制御、ＡＰ層（ビジネスロジック）の呼び出し制御を実行する。例えば、コントローラ５は、画面遷移設定として、初期画面をＡ画面１００−１、遷移順をＡ画面１００−１、Ｂ画面１００−２、Ｃ画面１００−３、…、Ｎ画面１００−Ｎの順となるように設定する。又、コントローラ５は、Ａ画面１００−１とＢ画面１００−２との間、あるいはＢ画面１００−２とＣ画面１００−３との間で受け渡される画面間共有データや、画面に応じて入力装置１４から入力されるデータを制御する。更に、コントローラ５は、画面１００に対応するビジネスロジック３２の呼び出しや、画面１００に入力されたデータに応じて実行された業務結果の呼び出しを実行する。
【００４７】
ここで、ユニットテスト装置１０の設計対象となるアプリケーションの画面生成動作を図１０及び図１２を参照して説明する。
【００４８】
コントローラ５は、エントリポイントから実行を指示されると、画面遷移情報ファイル２２から初期画面（Ａ画面１００−１）の画面情報２２１を取得し、初期画面（Ａ画面１００−１）を起動する（ステップＳ１、Ｓ２、Ｓ３）。この際、コントローラ５は、初期画面の画面情報２２１を元に、リフレクションを用いて実行ファイル３０をインスタンス化して初期画面（Ａ画面１００−１）を起動する。
【００４９】
初期画面が起動されると、初期画面（Ａ画面１００−１）からコントローラ５に対しビジネスロジック呼び出しが指示される（ステップＳ４）。この際、初期画面（Ａ画面１００−１）からコントローラ５に対し、呼び出すビジネスロジックを特定するキーが渡される。コントローラ５は、ビジネスロジック呼び出し指示に応じて、初期画面から渡されたキーのキー名に対応するビジネスロジック情報をインタラクション情報ファイル２２から取得する（ステップＳ５）。ここで取得されるビジネスロジック情報には、ビジネスロジック３２のＩ／Ｆに関するデータ型を指定する情報（ビジネスロジック情報２３１）や、次画面（Ｂ画面１００−２）との間における画面間共有データのデータ型を指定する情報（画面間共有データ情報２３２）が含まれる。
【００５０】
次に、コントローラ５は、ビジネスロジック呼び出しを実行し、返却データを初期画面（Ａ画面１００−１）に返却する（ステップＳ６、Ｓ７）。ステップＳ６において、コントローラ５は、ステップＳ５において取得したビジネスロジック情報２３１をビジネスモジュール６に渡す。ビジネスモジュール６は、渡されたビジネスロジック情報２３１に対応するビジネスロジック３２を選択し、当該ビジネスロジック３２に記述される業務処理を実行する。この際、ビジネスモジュール６は、ＤＢＭＳ（Ｄａｔａｂａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）である本番データベース３１（本番ＤＢ３１）にアクセスして、業務処理に必要なデータの取得や結果データの格納を行う。ビジネスモジュール６は、ビジネスロジック３２の実行結果、あるいはビジネスロジック情報２３１に対応するビジネスロジック３２を、コントローラ５に渡す。ステップＳ７においてコントローラ５は、取得したビジネスロジック３２又はビジネスロジックの実行結果を返却データとして初期画面（Ａ画面１００−１）に返却する。
【００５１】
コントローラ５は、ステップＳ７において渡された返却データに基づき、以下に示すステップＳ８からステップＳ１３の処理によって初期画面（Ａ画面１００−１）から次画面（Ｂ画面１００−２）への画面遷移を行う。
【００５２】
先ず、コントローラ５は、初期画面（Ａ画面１００−１）から、次画面（Ｂ画面１００−２）との間における画面共有データの格納指示を受ける。コントローラ５は、ステップＳ５において取得した画面間共有データのデータ型に基づいて、初期画面（Ａ画面１００−１）から画面間共有データを抽出し、記憶装置１３に格納する（ステップＳ８）。続いて、コントローラ５は、初期画面（Ａ画面１００−１）の遷移指示に応じて、画面遷移情報ファイル２２から次画面の画面情報２２１を取得する（ステップＳ９、Ｓ１０）。この際、コントローラ５は、画面遷移情報ファイル２２を参照し、初期画面（Ａ画面１００−１）からの遷移キーに基づいて遷移先の画面クラス名を特定し、次画面の画面情報２２１を取得する。コントローラ５は、取得した次画面の画面情報２２１を元に、リフレクションを用いて実行ファイル３０をインスタンス化して次画面（Ｂ画面１００−２）を起動する（ステップＳ１１）。
【００５３】
ステップＳ１１において起動された次画面（Ｂ画面１００−２）は、コントローラ５に対して画面間共有データの取得を指示する（ステップＳ１２）。コントローラ５は、取得指示に応じて、ステップＳ８において格納した画面間共有データを、次画面（Ｂ画面１００−２）に返却する。（ステップＳ１３）。返却された画面間共有データを含む次画面（Ｂ画面１００−２）は、出力装置１５によって視認可能に出力される。
【００５４】
本発明に係るアプリケーションは、以上のような動作によって画面遷移を行う。ここで、コントローラ５は、初期画面から次画面へ受け渡すデータ管理を行うとともに、各画面に関連するビジネスロジック（又はビジネスロジックの実行結果）の受け渡しも行う。
【００５５】
（ユニットテストの動作）
図１３から図１５を参照して、ユニットテスト装置１０によるユニットテストの動作の詳細を説明する。図１３は、ユニットテストにおけるユニットテスト装置１０の構成を示す機能ブロック図である。
【００５６】
ユニットテストでは、ユニットテストモードに設定されたビルドツール７が、画面定義ファイル２１のコンパイルやライブラリのリンクなどを行い、実行ファイル４０を生成する。ビルドツール７は、画面定義ファイル２１に記述された汎用スタブを呼び出し、画面生成に関わる実行ファイルに含めて実行ファイル４０とする。
【００５７】
スタブ実行部８は、コントローラ５と同様に、リフレクションを用いて実行ファイル４０をインスタンス化してテスト対象となる画面１００やテスト起動画面オブジェクト２００（以下、起動画面２００と称す）を起動する。又、図１４に示すように、スタブ実行部８は、画面遷移スタブ制御（画面遷移設定）、画面間データの受け渡し制御、ＡＰ層（ビジネスロジック）の呼び出し制御を実行する。図１４を参照して、スタブ実行部８は、コントローラ５と同様に、画面遷移情報ファイル２２に基づいて画面遷移を設定する。例えば、スタブ実行部８は、画面遷移設定として、初期画面をＡ画面１００−１、遷移順をＡ画面１００−１、Ｂ画面１００−２、Ｃ画面１００−３、・・・、Ｎ画面１００−Ｎの順となるように設定する。又、スタブ実行部８は、テスト対象画面オブジェクトの前画面オブジェクトから引き渡されるデータの代わりに、テストＤＢ２４に格納されている画面間共有テストデータ２４４を取得し、テスト対象画面オブジェクトに返却する。例えば、Ｂ画面１００−２をテスト対象画面としてユニットテストを行う場合、スタブ実行部８は、Ａ画面１００−１から渡される画面間共有データに代えて、予めテストＤＢ２４に設定された画面間共有テストデータ２４４を抽出し、Ｂ画面１００−２に返却する。更に、スタブ実行部８は、次画面オブジェクトに引き渡すデータを、次画面オブジェクトに代えてテストデータＤＢ２４に格納する。例えば、Ｂ画面１００−２からＣ画面１００−３に渡される画面間共有データを、テストＤＢ２４のテスト結果データ２４６に格納する。更に、スタブ実行部８は、ビジネスロジックの代わりにテストＤＢ２４に格納されているビジネスロジックテストデータ２４３を返却する。例えば、Ｂ画面１００−２をテストする場合、スタブ実行部８は、Ｂ画面１００−２に関連するビジネスロジックテストデータ２４３をテストＤＢから抽出し、Ｂ画面１００−２に返却する。
【００５８】
以上のように、汎用スタブを実行することで、開発時において画面間、及び画面〜ビジネスロジック間の参照が不要になり、単独画面でビルドすることが可能となる。このためユーザインタフェース層（表示画面）とアプリケーション層（ビジネスロジック）の分離開発を容易に行うことが可能となる。
【００５９】
次に、図１３及び図１５を参照して、ユニットテストの動作の詳細を説明する。以下では、Ｂ画面１００−２をテスト対象画面としてユニットテストを行う場合を一例にユニットテストの動作を説明する。
【００６０】
ユニットテストでは、ユニットテストモードに設定されたビルドツール７によって生成された実行ファイル４０が用いられる。これにより、アプリケーションに手を加えることなく、図１５に示すエントリポイントのプログラムコードを、汎用スタブ（スタブ実行部８）の呼び出しのプログラムコードに変更して実行することができる。すなわち、本発明によれば、ユニットテストモードに設定されたビルドツールを用いてユニットテスト用実行ファイル（実行ファイル４０）を生成して実行するため、アプリケーションのためのプログラムコードを一切書き換えることなくユニットテストを実施できる。
【００６１】
実行ファイル４０におけるエントリポイントから実行が指示されると、汎用スタブ（スタブ実行部８）が呼び出される。スタブ実行部８は、実行指示に応じて、画面遷移情報ファイル２２からユニットテストの対象となり得る画面クラス名の一覧と、テスト対象画面への遷移を表す遷移キー（キー名）の一覧をテスト対象画面情報として取得する（ステップＳ１０１、Ｓ１０２）。ここで、スタブ実行部８は、画像遷移情報ファイル２２を参照して、テスト対象として指定されている画面クラス名と、この画面クラス名に対応付けられているキー名をテスト対象画面情報として取得する。
【００６２】
次に、スタブ実行部８は、取得したテスト対象画面情報や起動画面に関する情報（起動画面クラス名）を元に、リフレクションを用いて実行ファイル４０をインスタンス化し、起動画面２００を起動する（ステップＳ１０３）。起動画面２００は、出力装置１５においてテスト対象選択画面として表示される。テスト対象選択画面には、ユニットテスト対象となり得る画面クラス名の一覧や、画面クラス名に対応する遷移キー名の一覧が表示される。又、テスト対象選択画面には、ユニットテストのテストパターンを特定するテストＩＤの一覧が表示されることが好ましい。この場合、スタブ実行部８は、テストＤＢ２４から、テストパターンを識別するテストＩＤの一覧を取得し、起動画面２００に返却する。
【００６３】
このようにして表示されたテスト対象選択画面を利用して、テストユーザ（開発者）は、テストパターン（テスト方法）を表すテストＩＤ項目、テスト対象画面クラス名、テスト対象画面への遷移を表す遷移キー又はテスト対象画面からの遷移キーを選択することが可能となる。テストユーザが入力装置１４を用いてテスト対象画面名（テスト対象画面クラス名）を選択すると、そのテスト対象画面の遷移元の画面、又は遷移先の画面を特定する遷移キーの一覧が表示される。この一覧から遷移キーを指定することにより、テスト対象画面がどこから（どこへ）遷移した画面であるかを確認することができる。尚、テスト対象選択画面は、画面クラス名、遷移キー、テストＩＤを、画面上から選択できるような画面構成でも良いし、テストユーザによって任意に入力できる入力領域を有する画面構成でも良い。あるいは、それらを任意に組合せた画面構成でも良い。
【００６４】
テストユーザが、テスト対象画面の指定に加えてテストしたいテストパターンのテストＩＤ及び遷移キーを指定すると、スタブ実行部８に対してテスト対象画面の起動が指示される（ステップＳ１０４）。スタブ実行部８は、テストユーザによって指定されたテスト対象画面の画面クラス名を元にリフレクションを用いて実行ファイル４０をインスタンス化してテスト対象画面を起動する。ここでは、Ｂ画面１００−２がテスト対象画面オブジェクト（以下、テスト対象画面と称す）として起動される（ステップＳ１０５）。
【００６５】
次に、テスト対象画面（Ｂ画面１００−２）は、前画面（Ａ画面１００−１）から引き継ぐはずの画面間共有データの取得を指示する（ステップＳ１０６）。この際、テスト対象画面（Ｂ画面１００−２）からスタブ実行部８に対し、呼び出す画面間共有データのデータ型を特定するキーが渡される。
【００６６】
スタブ実行部８は、画面間共有データの取得指示に応じて、画面間共有データのデータ型（画面間共有データ情報２３２）を、インタラクション情報ファイル２３から取得する（ステップＳ１０７）。この際、スタブ実行部８は、テスト対象画面（Ｂ画面１００−２）から渡されるキーに対応するキー名から、取得する画面間共有データ情報２３２を特定する。又、スタブ実行部８は、取得した画面間共有データ情報２３２や、取得に用いたキー名を、実施されたユニットテストのテストＩＤに対応付け、結果データとしてテストＤＢ２４に記録する。この際、結果データは、テストデータ種別、タイムスタンプが付加されてテスト結果データ２４５に記録される。
【００６７】
続いてスタブ実行部８は、取得した画面間共有データ情報２３２に基づいて、テストＤＢ２４から画面間共有テストデータ２４５を抽出する（ステップＳ１０８）。この際、スタブ実行部８は、テストユーザによって指定されたにテストＩＤに対応する画面間共有データ２  ４４をテストＤＢ２４から取得する。これによりテストパターンに応じた画面間共有データをテスト対象画面に反映させることができる。
【００６８】
スタブ実行部８は、取得した画面間共有データ２４４をテスト対象画面（Ｂ画面１００−２）に返却する（ステップＳ１０９）。又、スタブ実行部８は、画面間共有データ呼び出しの際のパラメータ（例えば、呼び出しに用いられたキー名、呼び出された画面共有テストデータ２４４）を、実施されたユニットテストのテストＩＤに対応付け、結果データとしてテストＤＢ２４に記録する。この際、結果データは、タイムスタンプやデータ種別が付加されてテスト結果データ２４５に記録される。
【００６９】
画面間共有データ２４４が返却されると、テスト対象画面（Ｂ画面１００−２）からスタブ実行部８に対し、ビジネスロジック呼び出しが指示される（ステップＳ１１０）。この際、テスト対象画面（Ｂ画面１００−２）から、呼び出すビジネスロジックのＩ／Ｆのデータ型を特定するキーが渡される。スタブ実行部８は、ビジネスロジック呼び出し指示に応じて、テスト対象画面から渡されたキーのキー名に対応するビジネスロジック情報２３１を、インタラクション情報ファイル２２から取得する（ステップＳ１１１）。ここで取得されるビジネスロジック情報２３１には、ビジネスロジック３２のＩ／Ｆに関するデータ型を指定する情報が含まれる。
【００７０】
次に、スタブ実行部８は、取得したビジネスロジック情報２３１に基づいてテストＤＢ２４からビジネスロジックテストデータ２４３を取得する（ステップＳ１１２）。ここで、スタブ実行部８は、ステップＳ１１０において、テスト対象画面（Ｂ画面１００−２）から渡されたキー、及びテストユーザによって指定されたテストＩＤから、取得するビジネスロジックテストデータ２４３を特定する。
【００７１】
スタブ実行部８は、取得したビジネスロジックテストデータをテスト対象画面（Ｂ画面１００−２）に返却する（ステップＳ１１３）。又、スタブ実行部８は、ビジネスロジック呼び出しの際のパラメータ（例えば、呼び出しに用いられたキー名、取得されたビジネスロジックテストデータ２４３）を、実施されたユニットテストのテストＩＤに対応付け、結果データとしてテストＤＢ２４に記録する。この際、結果データは、タイムスタンプやデータ種別が付加されてテスト結果データ２４５に記録される。
【００７２】
更に、テスト対象画面（Ｂ画面１００−２）は、次画面（Ｃ画面１００−３）との間における画面間共有データの格納を指示する（ステップＳ１１４）。この際、テスト対象画面（Ｂ画面１００−２）からスタブ実行部８に対し、呼び出す画面間共有データのデータ型を特定するキーが渡される。
【００７３】
スタブ実行部８は、画面間共有データの格納指示に応じて、画面間共有データのデータ型（画面間共有データ情報２３２）を、インタラクション情報ファイル２３から取得する（ステップＳ１１５）。この際、スタブ実行部８は、テスト対象画面（Ｂ画面１００−２）から渡されたキーに対応するキー名から、取得する画面間共有データ情報２３２を特定する。スタブ実行部８は、ステップＳ１１５において取得した画面間共有データ情報２３２や、取得に用いたキー名を、実施されたユニットテストのテストＩＤに対応付け、結果データとしてテストＤＢ２４に記録する。
【００７４】
続いてスタブ実行部８は、ステップＳ１１５において取得した画面間共有データのデータ型に基づいて、テスト対象画面（Ｂ画面１００−２）から画面間共有データを抽出する。スタブ実行部８は、抽出した画面間共有データを、実施されたユニットテストのテストＩＤに対応付けて、結果データとしてテストＤＢ２４に格納する（ステップＳ１１６）。この際、結果データは、テストデータ種別、タイムスタンプが付加されてテスト結果データ２４５に記録される。
【００７５】
以上のように、本発明によるユニットテスト装置１０では、画面オブジェクト間で行われるデータの受け渡しやビジネスロジックの呼び出しを、スタブ実行部８（汎用スタブ）とデータベース（テストＤＢ２４）との間におけるデータの送受に置き換えてユニットテストが行われる。このため、本発明によれば、本来多くのスタブの作成を必要とするＵＩ層における単一画面だけでのユニットテストを、テストパターンにあわせたテストデータをデータベースに準備するだけで実施することが可能になる。又、プログラムソースを変更してテストする従来の方式に比べて、修正／コンパイルといった無駄な作業を省くことができる。更に、テスト準備作業簡易化により、画面単体テストの実施を促すことができるため、結果的にアプリケーションの品質向上につながる。
【００７６】
又、テスト対象画面の遷移先や遷移元の画面オブジェクト（ここではＡ画面１００−１、Ｃ画面１００−３）や、画面間共有データやビジネスロジックを呼び出すための専用スタブを事前に作成しなくても、テスト対象画面（ここではＢ画面１００−１）に対するユニットテストを行うことができる。このため、画面単位でのスタブプログラムなどを作成する工数を削減することが可能となる。又、従来技術のように画面の仕様変更時におけるスタブの修正が不要なため、仕様変更に強い試験体制を維持できる。
【００７７】
本発明によるユニットテスト装置１０は、例えば、複雑な画面設計を要求されるリッチクライアント型のアプリケーション開発のＵＩ開発全般に適用できる。又、シンクライアント型のアプリケーション開発にも応用可能である。
【００７８】
ユニットテスト装置１０は、遷移元の前画面（Ａ画面１００−１）や遷移先の次画面（Ｃ画面１００−３）に関する情報が、画面遷移情報ファイル２２に用意されていても、テスト対象画面（Ｂ画面１００−２）の試験を行うことができる。例えば、次画面（Ｃ画面１００−３）の画面情報２２１が画面遷移情報ファイル２２に用意されている場合、ユニットテスト装置１０は、次画面（Ｃ画面１００−３）に対するユニットテストも行うことができる。この場合、ステップＳ１１６の処理に引き続き、スタブ実行部８は、Ｂ画面１００−２から遷移指示を受け付ける（ステップＳ１１７）。スタブ実行部８は、Ｂ画面１００−１からの遷移指示に応じて画面遷移情報ファイル２２から次画面（Ｃ画面１００−３）の画面情報２２１を取得する（ステップＳ１１８）。以下、ユニットテスト装置１０は、ステップＳ１０７〜Ｓ１１６の処理と同様に、Ｃ画面１００−３に対するテストを行う。
【００７９】
このように、本発明によるユニットテスト装置１０は、画面間共有データの制御も可能な汎用スタブを利用しているため、単一画面のユニットテストのみでなく、一連の画面遷移がある関連する画面がすでに完成している場合、単一画面に対するユニットテストと同じ機構で画面間遷移テストも実施できる。従って、アプリケーションプログラムの開発生産性が更に向上する。
【００８０】
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。上記の実施例では、画面遷移情報ファイル２２とインタラクション情報ファイル２３は、それぞれ設計書から自動生成されることを前提として別ファイルとしたが、同一ファイルにすることも可能である。又、テストＤＢ２４や本番ＤＢ３１等へ格納するファイル形式は、ＤＢＭＳやテキストファイル、既存の表計算ソフトファイルなど任意である。更に、画面遷移情報ファイル２２とインタラクション情報ファイル２３の生成方法は任意である。
【００８１】
又、上記の実施におけるコントローラ５、及びスタブ実行部８（汎用スタブ）の機能は、テスト対象のアプリケーション構成によって、その一部を部分的に実装することも、他の機能が追加されることも可能である。
【図面の簡単な説明】
【００８２】
【図１】図１は、本発明によるユニットテスト装置の実施の形態におけるハードウェア構成を示すブロック図である。
【図２】図２は、本発明に係る画像定義ファイルの構造の一例を示す図である。
【図３】図３は、本発明に係る画面遷移情報ファイルの構造の一例を示す図である。
【図４】図４は、本発明に係る画面遷移情報ファイルの一例を示す図である。
【図５】図５は、本発明に係る画面遷移情報ファイルの元となる画面遷移図の一例を示す図である。
【図６】図６は、本発明に係るインタラクション情報ファイルの構造の一例を示す図である。
【図７】図７は、本発明に係るインタラクション情報ファイルの一例を示す図である。
【図８】図８は、本発明によるインタラクション情報の元となるシーケンス図の一例を示す図である。
【図９】図９は、本発明によるテストデータベースの構造の一例を示す図である。
【図１０】図１０は、本発明によるユニットテスト装置においてテスト対象となるアプリケーションの構成を示す機能ブロック図である。
【図１１】図１１は、テスト対象となるアプリケーションにおけるコントローラの機能を示す概念図である。
【図１２】図１２は、テスト対象となるアプリケーションの画面遷移動作を示すシーケンス図である。
【図１３】図１３は、本発明によるユニットテスト装置の実施の形態における構成を示す機能ブロック図である。
【図１４】図１４は、ユニットテスト装置におけるスタブ実行部の機能を示す概念図である。
【図１５】図１５は、本発明によるユニットテスト装置の実施の形態におけるユニットテスト動作を示すシーケンス図である。
【符号の説明】
【００８３】
１：画面設計ツール
２：画面遷移作成ツール
３：インストラクション情報作成ツール
４、７：ビルドツール
５：コントローラ
６：ビジネスモジュール
８：スタブ実行部
１１：ＣＰＵ
１２：ＲＡＭ
１３：記憶装置
１４：入力装置
１５：出力装置
１６：バス
２１：画面定義ファイル
２２：画面遷移情報ファイル
２３：インタラクション情報ファイル
２４：テストデータベース
２５：ユニットテストプログラム
３１：本番データベース
３２：ビジネスロジック
１００、１００−１〜Ｎ：画面オブジェクト
【図１】
2009093462.tif 000003
【図２】
2009093462.tif 000004
【図３】
2009093462.tif 000005
【図４】
2009093462.tif 000006
【図５】
2009093462.tif 000007
【図６】
2009093462.tif 000008
【図７】
2009093462.tif 000009
【図８】
2009093462.tif 000010
【図９】
2009093462.tif 000011
【図１０】
2009093462.tif 000012
【図１１】
2009093462.tif 000013
【図１２】
2009093462.tif 000014
【図１３】
2009093462.tif 000015
【図１４】
2009093462.tif 000016
【図１５】
2009093462.tif 000017