テストコード生成プログラム及び装置
【課題】 テスト手順を再利用化でき、テスト対象のソフトウェア毎にテスト手順を定義する必要がないようにする。
【解決手段】 実施形態のテストコード生成装置は、テスト手順パターン情報内のテスト手順名をテスト順番に沿って読み出し、当該読み出したテスト手順名に関連付けられたテストコード断片IDを含むテストコード情報を読み出す。実施形態のテストコード生成装置は、当該読み出したテストコード情報をテスト順番に沿って結合してテストコード雛形情報を作成する。実施形態のテストコード生成装置は、テストコード雛形情報内の各々の変数部分を設計情報オブジェクト内で当該変数部分に一致する項目の値に置換することにより、テストコード雛形情報からテストコードを生成する。
【解決手段】 実施形態のテストコード生成装置は、テスト手順パターン情報内のテスト手順名をテスト順番に沿って読み出し、当該読み出したテスト手順名に関連付けられたテストコード断片IDを含むテストコード情報を読み出す。実施形態のテストコード生成装置は、当該読み出したテストコード情報をテスト順番に沿って結合してテストコード雛形情報を作成する。実施形態のテストコード生成装置は、テストコード雛形情報内の各々の変数部分を設計情報オブジェクト内で当該変数部分に一致する項目の値に置換することにより、テストコード雛形情報からテストコードを生成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の各実施形態は、Webアプリケーション開発のテスト工程に用いられるテストコードを生成するためのテストコード生成プログラム及び装置に関する。
【背景技術】
【0002】
Webアプリケーション開発におけるテスト工程においては、設計書から作成されたWebアプリケーションに対し、例えば、Webブラウザ上で画面項目を確認するテスト、値を入力して画面遷移を確認するテスト、結果の値を確認するテスト、といった様々なテストが実行される。これらのテストを実行する方法としては、人手によって実行する方法と、テスト自動化ツールによって実行する方法とがある。近年では、テスト自動化ツールによって自動的に実行する方法が一般的に用いられる。
【0003】
しかしながら、テスト自動化ツールによって実行する方法は、テスト自動化ツールに入力されるテストコードを作成する必要がある。テストコードの作成には手間がかかるため、設計書などからテスト手順と一体化させたテストコードを自動的に生成する方法が幾つか提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第4148527号公報
【特許文献2】特開2002−366387号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、以上のようなテストコードを自動生成する技術は、通常は何の問題もないが、本発明者の検討によれば、テスト手順と一体化させたテストコードを生成するため、テスト自動化ツールを変更した場合、テスト手順だけを再利用することが困難である。
【0006】
また、テスト手順が分離されている場合も、テスト対象のソフトウェアごとにテスト手順を定義する必要があり、コストがかかる。
【0007】
本明細書に開示した実施形態は、テスト手順を再利用化でき、テスト対象のソフトウェア毎にテスト手順を定義する必要がないテストコード生成プログラム及び装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
以下で説明する本発明の実施形態のテストコード生成装置は、検索対象の物理名の値と検索結果の値とを関連付けて記憶する関連テーブルとしてのデータベース部に接続され、Webアプリケーションにおける複数の設計書データからテスト自動化ツールで用いられるテストコードを生成する。
【0009】
実施形態のテストコード生成装置は、前記各設計書データのうちの画面遷移設計書データであって、前記Webアプリケーションの各画面の遷移に関し、画面遷移IDの項目と値、シナリオ名の項目と値、リクエスト発生画面URLの項目と値、及び遷移先画面URLの項目と値、を関連付けて示す前記画面遷移設計書データの入力を受け付ける。
【0010】
実施形態のテストコード生成装置は、前記各設計書データのうちの画面項目設計書データであって、前記Webアプリケーションの各画面の項目に関し、画面項目IDの項目と値、HTML要素の項目と値、デフォルト値の項目と値、Name属性の項目と値、及び関連テーブルの物理名の項目と値のうち、前記画面項目IDのうちの第1画面項目IDの項目と値、前記HTML要素の項目とタイトルを示す値、及び前記デフォルト値の項目と値を関連付けて示し、前記画面項目IDのうちの第2画面項目IDの項目と値、前記HTML要素の項目とテキストエリアを示す値、前記Name属性の項目と検索対象の物理名の値、及び前記関連テーブルの物理名の項目と値、を関連付けて示すと共に、前記画面項目IDのうちの第3画面項目IDの項目と値、前記HTML要素の項目とインプットを示す値、及び前記Name属性の項目と実行を示す値、を関連付けて示す前記画面項目設計書データの入力を受け付ける。
【0011】
実施形態のテストコード生成装置は、前記各設計書データのうちの画面一覧設計書データであって、前記Webアプリケーションの各画面に関し、画面IDの項目と値、及び画面URLの項目と値、を関連付けて示す前記画面一覧設計書データの入力を受け付ける。
【0012】
実施形態のテストコード生成装置のテスト手順パターン記憶手段は、前記シナリオ名のいずれかの値と同一の文字列からなるテスト手順パターンIDと、テスト順番に沿って配列した複数のテスト手順名とを含むテスト手順パターン情報を記憶する。
【0013】
実施形態のテストコード生成装置の操作記憶手段は、前記テスト手順名、操作及びテストコード断片IDを関連付けて記憶する。
【0014】
実施形態のテストコード生成装置のテストコード断片記憶手段は、前記テストコード断片ID及び変数部分を含んでおり、前記変数部分としては、前記リクエスト発生画面URLの項目、前記遷移先画面URLの項目、前記HTML要素の項目とタイトルを示す値、前記HTML要素の項目とインプットを示す値、又は画面項目値の項目、を個別に含んでいる、複数のテストコード断片情報を記憶する。
【0015】
実施形態のテストコード生成装置は、前記入力を受け付けた画面遷移設計書データ内からシナリオ名の項目と値を抽出する。
【0016】
実施形態のテストコード生成装置の画面遷移オブジェクト生成手段は、前記抽出したシナリオ名の値を含み、当該シナリオ名の値と同一のシナリオ名の値が他に抽出されている場合には更に識別番号を含むオブジェクト名と、プロパティとを含む画面遷移オブジェクトであって、当該プロパティとしては、当該オブジェクト名内のシナリオ名の値に前記画面遷移設計書データ内で関連付けられたリクエスト発生画面URLの項目と値及び遷移先画面URLの項目と値と、当該リクエスト発生画面URLの値に一致する前記画面一覧設計書内の画面URLの値に関連付けられた画面IDの値からなるリクエスト発生画面IDの値と項目と、当該リクエスト発生画面IDの値をオブジェクト名としたリクエスト発生画面オブジェクトを示すリクエスト発生画面項目と、当該遷移先画面URLの値に一致する前記画面一覧設計書内の画面URLの値に関連付けられた画面IDの値からなる遷移先画面IDと、当該遷移先画面IDの値をオブジェクト名とした遷移先画面オブジェクトを示す遷移先画面項目とを含んでいる、前記画面遷移オブジェクトを生成する。
【0017】
実施形態のテストコード生成装置の発生画面オブジェクト生成手段は、前記画面遷移オブジェクトのリクエスト発生画面IDの値からなるオブジェクト名と、プロパティとを含むリクエスト発生画面オブジェクトであって、当該プロパティとしては、当該リクエスト発生画面IDの値に中間一致する前記画面項目設計書内の画面項目IDの値からなる画面項目を含んでいる、前記リクエスト発生画面オブジェクトを生成する。
【0018】
実施形態のテストコード生成装置の発生画面項目オブジェクト生成手段は、前記リクエスト発生画面オブジェクトの画面項目IDの値からなるオブジェクト名と、プロパティとを含むリクエスト発生画面項目オブジェクトであって、当該プロパティとしては、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びデフォルト値の項目と値からなる第1発生画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値、Name属性の項目と値及び関連テーブルの物理名の項目と値からなる第2発生画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びName属性の項目と値からなる第3発生画面項目とのうちのいずれかの発生画面項目を含んでいる、前記リクエスト発生画面項目オブジェクトを個別に生成する。
【0019】
実施形態のテストコード生成装置の遷移先画面オブジェクト生成手段は、前記画面遷移オブジェクトの遷移先画面IDの値からなるオブジェクト名と、プロパティとを含む遷移先画面オブジェクトであって、当該プロパティとしては、当該遷移先画面IDの値に中間一致する前記画面項目設計書内の画面項目IDの値からなる画面項目を含んでいる、前記遷移先画面オブジェクトを生成する。
【0020】
実施形態のテストコード生成装置の遷移先画面項目オブジェクト生成手段は、前記遷移先画面オブジェクトの画面項目IDの値からなるオブジェクト名と、プロパティとを含む遷移先画面項目オブジェクトであって、当該プロパティとしては、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びデフォルト値の項目と値からなる第1遷移先画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値、Name属性の項目と値及び関連テーブルの物理名の項目と値からなる第2遷移先画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びName属性の項目と値からなる第3遷移先画面項目とのうちのいずれかの遷移先画面項目を含んでいる、前記遷移先画面項目オブジェクトを個別に生成する。
【0021】
実施形態のテストコード生成装置の設計情報オブジェクト生成手段は、前記画面遷移オブジェクト、前記リクエスト発生画面オブジェクト、前記リクエスト発生画面項目オブジェクト、前記遷移先画面オブジェクト及び前記遷移先画面項目オブジェクトを含む設計情報オブジェクトを生成する。
【0022】
実施形態のテストコード生成装置のテスト手順パターン読出手段は、前記設計情報オブジェクト内の画面遷移オブジェクトのオブジェクト名に含まれるシナリオ名の値に一致するテスト手順パターンIDを含むテスト手順パターン情報を前記テスト手順パターン記憶手段から読み出す。
【0023】
実施形態のテストコード生成装置は、当該読み出したテスト手順パターン情報内のテスト手順名を前記テスト順番に沿って読み出し、当該読み出したテスト手順名に一致する前記操作記憶手段内のテスト手順名に関連付けられたテストコード断片IDを当該操作記憶手段から読み出す。
【0024】
実施形態のテストコード生成装置は、当該読み出したテストコード断片IDに一致するテストコード断片IDを含むテストコード情報を前記テストコード断片記憶手段から読み出し、当該読み出したテストコード情報を前記テスト順番に沿って結合してテストコード雛形情報を作成する。
【0025】
実施形態のテストコード生成装置は、前記テストコード雛形情報内の各々の変数部分のうち、「前記リクエスト発生画面URLの項目」又は「前記遷移先画面URLの項目」を示す変数部分を前記設計情報オブジェクト内で当該変数部分に一致する項目の値に置換し、前記各々の変数部分のうち、「前記HTML要素の項目がタイトルを示すデフォルト値の値」を示す変数部分を前記設計情報オブジェクト内で当該変数部分と同一オブジェクト内のデフォルト値の値に置換し、前記各々の変数部分のうち、「前記HTML要素の項目がインプットを示すName属性の値」又は「物理名がidを示す値」を示す変数部分を前記設計情報オブジェクト内で当該変数部分と同一オブジェクト内のName属性の値に置換し、当該「前記物理名がidを示す値」を示す変数部分については更に当該同一オブジェクト内の物理名の値に一致する前記データベース内の物理名の値に関連付けられた検索結果の値を当該置換したName属性の値の次の行に挿入することにより、前記テストコード雛形情報から前記テストコードを生成する。
【図面の簡単な説明】
【0026】
【図1】第1の実施形態に係るテストコード生成装置及びその周辺構成を示すブロック図である。
【図2】同実施形態における動作を説明するためのフローチャートである。
【図3】第2の実施形態に係る画面遷移設計書データの構成を示す模式図である。
【図4】同実施形態における画面項目設計書データの構成を示す模式図である。
【図5】同実施形態におけるテーブル項目設計書データの構成を示す模式図である。
【図6】同実施形態における例外処理設計書データの構成を示す模式図である。
【図7】同実施形態における画面一覧設計書データの構成を示す模式図である。
【図8】同実施形態における入力画面の一例を示す模式図である。
【図9】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図10】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図11】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図12】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図13】同実施形態におけるテスト手順パターン情報の一例を示す模式図である。
【図14】同実施形態における設計情報オブジェクトの一例を示す模式図である。
【図15】同実施形態におけるテストコード雛形情報の生成動作を説明するための模式図である。
【図16】同実施形態におけるテストコードの生成動作を説明するための模式図である。
【図17】第3の実施形態に係るテストコード断片情報の一例を示す模式図である。
【図18】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図19】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図20】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図21】同実施形態におけるテストコード雛形情報の生成動作を説明するための模式図である。
【図22】同実施形態におけるテストコードの生成動作を説明するための模式図である。
【発明を実施するための形態】
【0027】
以下、各実施形態について図面を用いて説明する。なお、以下のテストコード生成装置は、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体からテストコード生成装置となるコンピュータにインストールされ、テストコード生成装置の機能を実現させるためのプログラムが用いられる。また、テストコード生成装置は、この名称に限らず、例えば、Webアプリケーション開発のテスト工程を支援することからWebアプリケーションテスト支援装置と呼んでもよく、また、テストコード作成装置やテストコード自動生成装置といった任意の名称で呼んでもよい。
【0028】
(第1の実施形態)
図1は第1の実施形態に係るテストコード生成装置及びその周辺構成を示すブロック図である。このテストコード生成装置10は、設計書データ、テスト手順パターン情報、テストコード断片情報及びデータベース部20内のデータに基づいて、テストコードを生成して出力するものである。なお、データベース部20内のデータは、設計書データに基づいて、テーブルデータ生成部21により書き込まれている。また、出力されたテストコードは、テスト自動化ツール部30によるテストに用いられる。
【0029】
このようなテストコード生成装置10は、設計書読込部11、設計情報オブジェクト生成部12、テスト手順パターン記憶部13、操作記憶部14、テストコード断片記憶部15、テスト手順パターン抽出部16及びテストコード生成部17を備えている。
【0030】
ここで、設計書読込部11は、ユーザの操作により、入力となる各種の設計書データの読込を実行し、読み込んだ設計書データを設計情報オブジェクト生成部12に送出するものである。各種の設計書データとしては、画面遷移設計書データ、画面項目設計書データ、テーブル項目設計書データ、画面一覧設計書データ及び例外処理設計書データがある。なお、ユーザの操作に対応するデータ又は命令の入力は、GUI(graphical user interface)を介して該当する機能部11〜17に伝えられる。
【0031】
設計情報オブジェクト生成部12は、設計書読込部11から送出された各種の設計書データのうちの画面遷移設計書データからテスト対象処理名(シナリオ名)を抽出する処理対象抽出機能と、抽出されたテスト対象処理名毎に、当該各種の設計書データから設計情報オブジェクトを生成する設計情報オブジェクト生成機能とをもっている。ここで、設計情報オブジェクトは、設計書データのうち、上位概念のデータ(例、画面に関するデータ項目とデータ)を上位のオブジェクトとして表し、この上位概念のデータに対する下位概念のデータ(例、画面内の項目に関するデータ項目とデータ)を下位のオブジェクトとして表し、上位と下位のオブジェクトを関連付けてなるオブジェクトデータである。
【0032】
テスト手順パターン記憶部13は、1つのテスト手順パターン名と、テスト順番に沿って記述された複数のテスト手順名とを含み、テスト対象処理としてのある機能における一連のテスト手順のパターンを示すテスト手順パターン情報を記憶している。ある機能とは、検索、更新、登録、削除などであり、ユーザが追加することも可能である。テスト手順パターン名は、設計情報オブジェクト部12により抽出されるテスト対象処理名と同一の文字列からなる。このようなテスト手順パターン情報は、予めユーザにより、テスト手順パターン記憶部13に書き込まれている。また、テスト手順パターン情報は、ユーザの操作により、適宜、追加、変更又は削除等の編集が可能となっている。
【0033】
操作記憶部14は、テスト手順パターン記憶部13内のテスト手順パターン情報に含まれるテスト手順名と、テストコード断片記憶部15内のテストコード断片情報に含まれるテストコード断片IDとを関連付けて記憶する。操作記憶部14は、予めユーザの操作により、各情報が関連付けて書き込まれている。
【0034】
テストコード断片記憶部15は、テストコード断片IDと、設計書オブジェクト内の項目とを含んでテストコードの一部が記述されたテストコード断片情報を記憶する。テストコード断片情報は、予めユーザの操作により、テストコード断片記憶部15に書き込まれている。なお、テストコード断片情報は、テストコード雛形断片情報と呼んでもよい。
【0035】
テスト手順パターン抽出部16は、設計情報オブジェクト生成部12により抽出されたテスト対象処理名に基づいて、テスト手順パターン記憶部13からテスト手順パターン情報を読み出し、このテスト手順パターン情報をテストコード生成部17に送出する機能をもっている。
【0036】
テストコード生成部17は、テスト手順パターン抽出部16から送出されたテスト手順パターン情報と、当該テスト手順パターン情報内の各テスト手順名に操作記憶部14内で関連付けられたテストコード断片IDを含むテストコード断片記憶部15内のテストコード断片情報に基づいて、テストコード雛形情報を生成するテストコード雛形生成機能と、当該生成したテストコード雛形情報と、設計情報オブジェクト生成部12により生成された設計情報オブジェクトと、テストで使用するデータベース部20の値とに基づいてテストコードを生成するテストコード生成機能と、生成したテストコードを出力するテストコード出力機能とをもっている。
【0037】
データベース部20は、テーブルデータ生成部21により書き込まれたテスト用のデータを記憶するテーブルであり、テストコード生成部17から読出可能となっている。補足すると、データベース部20は、検索対象の物理名の値と検索結果の値とを関連付けて記憶する関連テーブルとして用いられる。
【0038】
テーブルデータ生成部21は、各種設計書データのうちのテーブル項目設計書データに基づいてテスト用のデータを生成し、このデータをデータベース部20に登録する機能を持つ。このテーブルデータ生成部21は、既存技術が使用可能となっている。
【0039】
テスト自動化ツール部30は、テストコード生成装置10から出力されたテストコードを用いて、各種設計書データに示されたソフトウェアのテスト工程を実行するテスト自動化ツールプログラムを実行する機能をもっている。
【0040】
次に、以上のように構成されたテストコード生成装置の動作を図2のフローチャートを用いて説明する。なお、データベース部20は、既存技術により、テスト用のデータが登録されているものとする。
【0041】
いま、テストコード生成装置10においては、ユーザの操作により、設計書読込部11が、入力となる各種の設計書データを読み込む(ST1)。読み込まれた各種の設計書データは、設計書読込部11から設計情報オブジェクト生成部12に送出される。
【0042】
次に、設計情報オブジェクト生成部12は、送出された設計書データのうちの画面遷移設計書からテスト対象処理名を抽出し(ST2)、抽出したテスト対象処理名毎に、各種の設計書データから設計情報オブジェクトを生成する(ST3)。
【0043】
テスト手順パターン抽出部16は、抽出されたテスト対象処理名に基づいて、テスト手順パターン記憶部13からテスト手順パターン情報を読み出す(ST4)。読み出されたテスト手順パターン情報は、テスト手順パターン抽出部16からテストコード生成部17に送出される。
【0044】
テストコード生成部17は、ユーザによりGUIから入力されたテストコード断片の種類から使用するテストコード断片情報を特定する(ST5)。例えば、複数のテスト自動化ツールA,Bがある場合、入力されたテストコード断片の種類が“ツールA用テストコード断片”であれば、ツールA用のテストコード断片情報を特定し、入力されたテストコード断片の種類が“ツールB用テストコード断片”であれば、ツールB用のテストコード断片情報を特定する。なお、ステップST5は、複数のテスト自動化ツールが無い場合等には省略可能となっている。
【0045】
テストコード生成部17は、テスト手順パターン抽出部16から送出されたテスト手順パターン情報と、当該テスト手順パターン情報内の各テスト手順名に操作記憶部14内で関連付けられたテストコード断片IDを含むテストコード断片記憶部15内のテストコード断片情報に基づき、テスト手順パターン情報内のテスト手順名の順番に沿ってテストコード断片情報を結合してテストコード雛形情報を生成する(ST6)。
【0046】
また、テストコード生成部17は、当該生成したテストコード雛形情報と、設計情報オブジェクト生成部12により生成された設計情報オブジェクトと、テストで使用するデータベース部20の値とに基づいて、テストコードを生成する(ST7)。
【0047】
例えば、テストコード生成部17は、テストコード雛形情報を構成するテストコード断片情報内に含まれる「設計書オブジェクト内の項目」を「設計書オブジェクト内の当該項目の値」や「設計書オブジェクト内の当該項目の値に関連付けられたデータベース部20内の値」に置換することにより、テストコード雛形情報、設計書オブジェクト及びデータベース部20の値からテストコードを生成する。
【0048】
しかる後、テストコード生成部17は、生成したテストコードを出力する(ST8)。出力されたテストコードは、テスト自動化ツール部30によるテスト工程に使用される。
【0049】
上述したように本実施形態によれば、入力される設計書データに対し、予め記憶したテスト手順パターン情報及びテストコード断片情報に基づいてテストコードを生成する構成により、テスト手順とテストコードの分離によって、テスト自動化ツールの変更に容易に対応でき、設計書に基づいて、メンテナンス性の高いテストコードを効率的に生成できるため、テスト全体のコストを下げ、Webアプリケーションの品質向上に寄与することができる。
【0050】
補足すると、本実施形態によれば、テスト手順とテストコードを分離し、設計書データと汎用的なテスト手順パターンから機械的にテストコードを生成する構成により、従来とは異なり、テスト対象のソフトウェア毎にテスト手順を定義する必要がなく、コストを下げることができる。
【0051】
(第2の実施形態)
第2の実施形態は、第1の実施形態に述べた図1の構成及び図2の動作において入出力を具体的に示した例であり、図3乃至図7に示す設計書データを入力し、コード書式がHTML(Hypertext Markup Language)のテスト自動化ツール(ツールA)のテストコードを出力する形態となっている。なお、設計書データの書式は、例えば図3乃至図7に示した如き、必要な内容が書かれていれば任意の書式が使用可能となっている。但し、装置を実装する際には便宜上形式を定める。
【0052】
ここで、画面遷移設計書データは、図3に示すように、Webアプリケーションの各画面の遷移に関し、画面遷移IDの項目と値、シナリオ名の項目と値、リクエスト発生画面URLの項目と値、及び遷移先画面URLの項目と値、を関連付けて示している。
【0053】
画面項目設計書データは、図4に示すように、Webアプリケーションの各画面の項目に関し、画面項目IDの項目と値、HTML要素の項目と値、デフォルト値の項目と値、Name属性の項目と値、及び関連テーブルの物理名の項目と値のうち、画面項目IDのうちの第1画面項目IDの項目と値、HTML要素の項目とタイトルを示す値、及びデフォルト値の項目と値を関連付けて示し、画面項目IDのうちの第2画面項目IDの項目と値、HTML要素の項目とテキストエリアを示す値、Name属性の項目と検索対象の物理名の値、及び関連テーブルの物理名の項目と値、を関連付けて示すと共に、画面項目IDのうちの第3画面項目IDの項目と値、HTML要素の項目とインプットを示す値、及びName属性の項目と実行を示す値、を関連付けて示している。
【0054】
テーブル項目設計書データは、図5に示すように、Webアプリケーションの検索処理に用いられる関連テーブルのテーブル項目に関し、項目名の項目と値、物理名の項目と値、主キーの項目と値、型の項目と値、及び桁の項目と値、を関連付けて示している。
【0055】
例外処理設計書データは、図6に示すように、Webアプリケーションの例外処理に関し、例外発生条件の項目と値、例外発生画面URLの項目と値、例外発生遷移先画面URLの項目と値、及び例外メッセージの項目と値を関連付けて示している。
【0056】
画面一覧設計書データは、図7に示すように、Webアプリケーションの各画面に関し、画面IDの項目と値、及び画面URLの項目と値、を関連付けて示している。
【0057】
設計書データとテストコード断片情報の種類の入力は、図8に示す入力画面G10から行う。テストコード断片情報の種類は、プルダウン又はリストボックスg11等により選択可能となっており、選択肢として、予めテストコード断片記憶部15に記憶されているテストコード断片情報の種類が表示される。
【0058】
ここでは、HTML形式のテストコード断片情報の例を図9乃至図12に示す。
【0059】
図9に示したテストコード断片情報は、テストコード断片ID“open”及び変数部分を含んでおり、変数部分としては、リクエスト発生画面URLの項目“#リクエスト発生画面URL#”を含んでいる。同様のテストコード断片情報としては、テストコード断片ID“open”及び変数部分“#遷移先画面URL#を含むテストコード断片情報(図示せず)もテストコード断片記憶部15に記憶されている。
【0060】
図10に示したテストコード断片情報は、テストコード断片ID“click”及び変数部分を含んでおり、変数部分としては、HTML要素の項目がインプットである値のName属性の示す値“name=”#HTML要素(input).Name属性#””を含んでいる。ここで、“name="#HTML要素(input).Name属性#"”は、先に示した図4の列タイトル「HTML要素」の値がinputである値の列タイトル「Name属性」の値が変数部分に入ることを意味する。そして、変数部分"#HTML要素(input).Name属性#"が"検索実行"に置き換わった後は、“name="検索実行"”となる。
【0061】
図11に示したテストコード断片情報は、テストコード断片ID“assertTitle”及び変数部分を含んでおり、変数部分としては、HTML要素の項目がタイトルである値のデフォルト値の値#HTML要素(title).デフォルト値#”を含んでいる。
【0062】
図12に示したテストコード断片情報は、テストコード断片ID“type”及び変数部分を含んでおり、変数部分としては、HTML要素の項目がテキストエリアである値のName属性の示す値“name=“#HTML要素(textarea).Name属性#””を含んでいる。なお、各図9〜図12中、変数部分を記号#で挟んだ部分として示したが、これに限らず、他の記号で挟んだ部分を変数部分としてもよい。これは他の実施形態でも同様である。
【0063】
テスト手順パターン記憶部13には、予め図13に示す如き、シナリオ名のいずれかの値(search)と同一の文字列からなるテスト手順パターンID(search)と、テスト順番に沿って配列した複数のテスト手順名(access, check, type, click, check)とを含むテスト手順パターン情報が記憶されている。図示したテスト手順パターン情報は、一般的な検索処理のテスト手順パターンの例を示している。下線部分のテスト手順名は、操作記憶部14内の操作及びツールコード断片IDと1対1に対応している。
【0064】
テストコード断片記憶部15にも、すでにいくつかの書式のテストコード断片が記憶されている。テスト手順パターンの操作と各テストコードの操作の対応は、操作記憶部14に記憶されている。
【0065】
また、データベース部20は、検索対象の物理名の値と検索結果の値とを関連付けて記憶する関連テーブルとして用いられ、テストコード生成装置10に接続されている。
【0066】
次に、以上のようなデータの具体例を用いた場合のテストコード生成装置の動作を図2のフローチャートに沿って説明する。
【0067】
ステップST1においては、テストコード生成装置10の設計書読込部11が、ユーザの操作により、入力画面G10から各種の設計書データの入力を受け付ける。また、設計書読込部11は、ユーザの操作により、テストコード断片情報の種類の選択を受け付ける。設計書データは本装置の書式に準拠したものとする。設計書読込部11は、本装置の書式に準拠しない設計書データが入力されたときには、画面に検証エラーを表示する。準拠しない旨の判定は、例えば予め保持する本装置の書式データに記述された項目と、入力された設計書データ内の項目とを比較し、両者が一致するか否か等により実行可能となっている。
【0068】
ステップST2においては、設計情報オブジェクト生成部12は、図3に示した如き、入力を受け付けた画面遷移設計書データ内からテスト対象処理名としてのシナリオ名の項目と値(search, search, search, regist)を抽出する。
【0069】
ステップST3においては、設計情報オブジェクト生成部12は、抽出されたシナリオ名毎に、図14に示す如き、設計情報オブジェクトを生成する。
【0070】
設計情報オブジェクトは、画面遷移設計書データ、画面項目設計書データ、データ項目設計書データ、画面一覧設計書データ、例外処理設計書データから生成する。図14では、テスト対象として抽出された1つ目のsearch(search1)の設計情報オブジェクトを示している。以下にステップST3−1〜ST3−3として設計情報オブジェクト生成の手順を示す。
【0071】
ステップST3−1においては、設計情報オブジェクト生成部12は、画面遷移設計書データから、search1のリクエスト発生画面と遷移先画面をプロパティとするsearch1オブジェクトを生成する。
【0072】
詳しくは、設計情報オブジェクト生成部12は、抽出したシナリオ名の値(search)を含み、当該シナリオ名の値(search)と同一のシナリオ名の値(search)が他に抽出されている場合には更に識別番号(1)を含むオブジェクト名(search1)と、プロパティとを含む画面遷移オブジェクト(search1オブジェクト)を生成する。当該画面遷移オブジェクト(search1オブジェクト)のプロパティとしては、当該オブジェクト名内のシナリオ名の値(search)に画面遷移設計書データ内で関連付けられたリクエスト発生画面URLの項目と値(searchIndex.jsp)及び遷移先画面URLの項目と値(searchResult.jsp)と、当該リクエスト発生画面URLの値に一致する画面一覧設計書内の画面URLの値(searchIndex.jsp)に関連付けられた画面IDの値(S1)からなるリクエスト発生画面IDの値(S1)と項目と、当該リクエスト発生画面IDの値をオブジェクト名(S1)としたリクエスト発生画面オブジェクト(S1オブジェクト)を示すリクエスト発生画面項目と、当該遷移先画面URLの値(searchIndex.jsp)に一致する画面一覧設計書内の画面URLの値(searchIndex.jsp)に関連付けられた画面IDの値(S2)からなる遷移先画面IDと、当該遷移先画面IDの値をオブジェクト名とした遷移先画面オブジェクト(S2オブジェクト)を示す遷移先画面項目とを含んでいる。
【0073】
ステップST3−2においては、設計情報オブジェクト生成部12は、画面項目をプロパティとするリクエスト発生画面と遷移先画面のそれぞれのオブジェクトを生成する。
【0074】
詳しくは、設計情報オブジェクト生成部12は、画面遷移オブジェクト(search1オブジェクト)のリクエスト発生画面IDの値(S1)からなるオブジェクト名(S1)と、プロパティとを含むリクエスト発生画面オブジェクト(S1オブジェクト)を生成する。当該リクエスト発生画面オブジェクト(S1オブジェクト)のプロパティとしては、当該リクエスト発生画面IDの値に中間一致する画面項目設計書内の画面項目IDの値(S1-1, S1-2, S1-3)からなる画面項目を含んでいる、当該リクエスト発生画面オブジェクト(S1オブジェクト)を生成する。
【0075】
同様に、設計情報オブジェクト生成部12は、画面遷移オブジェクト(search1オブジェクト)の遷移先画面IDの値(S2)からなるオブジェクト名(S2)と、プロパティとを含む遷移先画面オブジェクト(S2オブジェクト)を生成する。当該遷移先画面オブジェクト(S2オブジェクト)のプロパティとしては、当該遷移先画面IDの値(S2)に中間一致する画面項目設計書内の画面項目IDの値(S2-1, S2-2, S2-3)からなる画面項目を含んでいる。
【0076】
ステップST3−3においては、設計情報オブジェクト生成部12は、さらに画面項目要素をプロパティとする画面項目オブジェクトを作成する。
【0077】
詳しくは、設計情報オブジェクト生成部12は、リクエスト発生画面オブジェクト(S1オブジェクト)の画面項目IDの値(S1-1, S1-2, S1-3)からなるオブジェクト名(S1-1, S1-2, S1-3)と、プロパティとを含むリクエスト発生画面項目オブジェクト(S1-1オブジェクト、S1-2オブジェクト、S1-3オブジェクト)を個別に生成する。
【0078】
当該リクエスト発生画面項目オブジェクトのプロパティとしては、当該画面項目IDの値(S1-1)に画面項目設計書内で関連付けられたHTML要素の項目と値(title)及びデフォルト値の項目と値(検索条件画面)からなる第1発生画面項目と、当該画面項目IDの値(S1-2)に画面項目設計書内で関連付けられたHTML要素の項目と値(textarea)、Name属性の項目と値(idFromForSearch)及び関連テーブルの物理名の項目と値(id)からなる第2発生画面項目と、当該画面項目IDの値(S1-3)に画面項目設計書内で関連付けられたHTML要素の項目と値(input)及びName属性の項目と値(検索実行)からなる第3発生画面項目とのうちのいずれかの発生画面項目を含んでいる。
【0079】
このようなオブジェクトの状態にすることで、画面と画面項目、画面項目要素の関係がわかるようになる。
【0080】
また、設計情報オブジェクト生成部12は、ステップST3−1〜ST3−3に示したように生成した画面遷移オブジェクト、リクエスト発生画面オブジェクト、リクエスト発生画面項目オブジェクト、遷移先画面オブジェクト及び遷移先画面項目オブジェクトを含む設計情報オブジェクトを生成する。
【0081】
ステップST4においては、テスト手順パターン抽出部16は、抽出されたテスト対象処理名に基づいて、テスト手順パターン記憶部13からテスト手順パターン情報を読み出す。その際、設計情報オブジェクトのオブジェクト名を使用する。
【0082】
詳しくは、テスト手順パターン抽出部16は、例えば、設計情報オブジェクト内の画面遷移オブジェクトのオブジェクト名(search1)に含まれるシナリオ名の値(search)に一致するテスト手順パターンID(search)を含むテスト手順パターン情報をテスト手順パターン記憶部13から読み出す。
【0083】
更に詳しくは、テスト手順パターン情報の抽出は以下のステップST4−1〜ST4−2に示す手順で実行する。
【0084】
ステップST4−1においては、テスト対象処理が例外処理であるかを、画面遷移設計書データと例外処理設計書データから判定する。画面遷移設計書データのリクエスト発生画面URLと遷移先画面URLの対が、例外処理設計書データの例外発生画面URLと例外発生遷移先画面URLの対と同じであれば、その処理を例外処理と判定する。
【0085】
具体的には、テスト手順パターン抽出部16は、テスト手順パターン情報の読み出しよりも先に、設計情報オブジェクト内の画面遷移オブジェクトのオブジェクト名(search1)に含まれるシナリオ名の値(search)に一致する画面遷移設計書データ内のシナリオ名の値(search)に関連付けられたリクエスト発生画面URLの値及び遷移先画面URLの値と、例外処理設計書データ内の例外発生画面URLの値及び例外発生遷移先画面URLの値とが一致するか否かを判定し、両者が一致する場合には例外処理と判定する。
【0086】
ステップST4−2においては、両者が一致しない場合(例外処理ではない場合)は、テスト対象処理画面、テスト対象処理の入力項目から、対応するテスト手順パターン情報を抽出する。例えば、同じsearchというテスト対象処理でも、対象画面の入力項目数(HTML要素:textareaを含む画面項目オブジェクト)が複数ある場合は詳細検索のテスト手順パターンID(searchDetail)を含むテスト手順パターン情報を抽出し、入力項目数が1つである場合は検索のテスト手順パターンID(search)を含むテスト手順パターン情報を抽出する。
【0087】
なお、ステップST4−1〜ST4−2で抽出されるテスト手順パターン情報は、以下の例の通りである。
【0088】
テスト対象処理名としてのシナリオ名“search”で入力項目数が1つの場合、検索のテスト手順パターン情報(テスト手順パターンID:search)が抽出される。
【0089】
テスト対象処理名としてのシナリオ名“search”で入力項目数が複数の場合、詳細検索のテスト手順パターン情報(テスト手順パターンID:searchDetail)が抽出される。
【0090】
テスト対象処理名としてのシナリオ名“search”で例外処理の場合、例外のテスト手順パターン情報(テスト手順パターンID:error)が抽出される。
【0091】
テスト対象処理名としてのシナリオ名“regist”の場合、登録のテスト手順パターン情報(テスト手順パターンID:regist)が抽出される。
【0092】
ステップST5においては、テストコード生成部17は、入力画面G10で選択されたテストコード断片情報の種類から使用するテストコード断片情報を特定する。ここでは、HTMLのコード書式に対応するツールA用のテストコード断片情報の種類から使用するテストコード断片情報が特定される。
【0093】
ステップST6においては、テストコード生成部17は、図15に示すように、ステップST4で読み出されたテスト手順パターン情報と、ステップST5で特定された種類のテストコード断片情報とに基づいて、テストコード雛形情報を生成する。
【0094】
詳しくは、ステップST6は、以下のステップST6−1〜ST6−2に示すように実行される。
【0095】
ステップST6−1においては、テストコード生成部17は、ステップST4で読み出されたテスト手順パターン情報内のテスト手順名をテスト順番に沿って読み出し、当該読み出したテスト手順名に一致する操作記憶部14内のテスト手順名に関連付けられたテストコード断片IDを当該操作記憶部14から読み出す。
【0096】
ステップST6−2においては、テストコード生成部17は、読み出したテストコード断片IDに一致するテストコード断片IDを含むテストコード情報をテストコード断片記憶部15から読み出し、当該読み出したテストコード情報をテスト順番に沿って結合してテストコード雛形情報を作成する。
【0097】
ステップST7においては、図16に示すように、テストコード生成部17は、当該生成したテストコード雛形情報と、設計情報オブジェクト生成部12により生成された設計情報オブジェクトと、テストで使用するデータベース部20の値とに基づいて、テストコードを生成する。
【0098】
詳しくは、ステップST7は、以下のステップST7−1〜ST7−2に示すように実行される。
【0099】
ステップST7−1においては、テストコード生成部17は、テストコード雛形情報の変数部分に設計情報オブジェクトの情報を当てはめて、テストコードを生成する。テストコード雛形の変数部分とは#で囲んだ部分のことをいう。
【0100】
ステップST7−2においては、テストコード生成部17は、検索結果の確認などでデータベースの値を参照する場合に、データベース部20から期待値を取得する。テストコード生成部17は、アプリケーションの検索キーで使用した値の物理名を設計情報オブジェクトから取得し、設計書に基づいて作成されたテーブルに対してデータベース検索を行う。
【0101】
具体的には、テストコード生成部17は、テストコード雛形情報内の各々の変数部分のうち、「リクエスト発生画面URLの項目」又は「遷移先画面URLの項目」を示す変数部分(#リクエスト発生画面URL#)を設計情報オブジェクト内で当該変数部分に一致する項目の値(searchIndex.jsp)に置換する。
【0102】
また、テストコード生成部17は、各々の変数部分のうち、「HTML要素の項目がタイトルを示すデフォルト値の値」を示す変数部分(#HTML要素(title).デフォルト値#)を設計情報オブジェクト内で当該変数部分と同一オブジェクト(S1-1オブジェクト)内のデフォルト値の値(検索条件画面)に置換する。
【0103】
また、テストコード生成部17は、各々の変数部分のうち、「HTML要素の項目がインプットを示すName属性の値」又は「HTML要素の項目がテキストエリアを示すName属性の値」を示す変数部分(「#HTML要素(input).Name属性#」又は「#HTML要素(textarea).Name属性#」)を設計情報オブジェクト内で当該変数部分と同一オブジェクト(S1-3オブジェクト又はS1-2オブジェクト)の値(「検索実行」又は「idFromForSearch」)に置換する。
【0104】
また、テストコード生成部17は、当該「HTML要素の項目がテキストエリアを示すName属性の値」を示す変数部分(#HTML要素(textarea).Name属性#)については更に当該同一オブジェクト(S1-2オブジェクト)内の物理名の値(id)に一致するデータベース内の物理名の値(id)に関連付けられた検索結果の値(1111)を当該置換したName属性の値(idFromForSearch)の次の行(<td><td>)に挿入する。このように、テストコード生成部17は、テストコード雛形情報からテストコードを生成する。
【0105】
ステップST8においては、テストコード生成部17は、生成したテストコードを出力する。
【0106】
上述したように第2の実施形態によれば、第1の実施形態の構成において、具体的な設計書データ、テスト手順パターン情報、操作記憶部14の記憶内容及びテストコード断片情報を用いた構成により、第1の実施形態の効果に加え、HTMLのコード書式をもつテストコードを生成することができる。
【0107】
(第3の実施形態)
第3の実施形態は、第1の実施形態に述べた図1の構成及び図2の動作において入出力を具体的に示した例であり、図3乃至図7に示した設計書データを入力し、コード書式がJava(登録商標)のテスト自動化ツール(ツールB)のテストコードを出力する形態となっている。なお、各種の設計書データ、設計情報オブジェクト、テスト手順パターン情報及びステップST1〜ST4までの処理は、第2の実施形態と同一であるので、重複した説明を省略する。
【0108】
以下では、図2のフローチャートのステップST5から説明する。
【0109】
ステップST5においては、テストコード生成部17は、入力画面G10で選択されたテストコード断片情報の種類から使用するテストコード断片情報を特定する。ここでは、Javaのコード書式に対応するツールB用のテストコード断片情報の種類から使用するテストコード断片情報が特定される。
【0110】
ここで、Java形式のテストコード断片情報の例を図17乃至図20に示す。
【0111】
図17に示したテストコード断片情報は、テストコード断片ID“open”及び変数部分を含んでおり、変数部分としては、リクエスト発生画面URLの項目“#リクエスト発生画面URL#”を含んでいる。同様のテストコード断片情報としては、テストコード断片ID“open”及び変数部分“#遷移先画面URL#を含むテストコード断片情報(図示せず)もテストコード断片記憶部15に記憶されている。
【0112】
図18に示したテストコード断片情報は、テストコード断片ID(assertEquals)及び変数部分を含んでおり、変数部分としては、HTML要素の項目がタイトルを示すデフォルト値の値(#HTML要素(title).デフォルト値#)を含んでいる。
【0113】
図19に示したテストコード断片情報は、テストコード断片ID(type)及び変数部分を含んでおり、変数部分としては、HTML要素の項目がテキストエリアを示すName属性の値及び物理名がidを示す値(#HTML要素(textarea).Name属性#、#物理名(id)#)を含んでいる。
【0114】
図20に示したテストコード断片情報は、テストコード断片ID(click)及び変数部分を含んでおり、変数部分としては、HTML要素の項目がインプットを示すName属性の値(#HTML要素(input).Name属性#)を含んでいる。
【0115】
ステップST6においては、テストコード生成部17は、図21に示すように、ステップST4で読み出されたテスト手順パターン情報と、ステップST5で特定された種類のテストコード断片情報とに基づいて、テストコード雛形情報を生成する。
【0116】
詳しくは、ステップST6は、以下のステップST6−1〜ST6−2に示すように実行される。
【0117】
ステップST6−1においては、テストコード生成部17は、ステップST4で読み出されたテスト手順パターン情報内のテスト手順名をテスト順番に沿って読み出し、当該読み出したテスト手順名に一致する操作記憶部14内のテスト手順名に関連付けられたテストコード断片IDを当該操作記憶部14から読み出す。
【0118】
ステップST6−2においては、テストコード生成部17は、読み出したテストコード断片IDに一致するテストコード断片IDを含むテストコード情報をテストコード断片記憶部15から読み出し、当該読み出したテストコード情報をテスト順番に沿って結合してテストコード雛形情報を作成する。
【0119】
ステップST7においては、図22に示すように、テストコード生成部17は、当該生成したテストコード雛形情報と、設計情報オブジェクト生成部12により生成された設計情報オブジェクトと、テストで使用するデータベース部20の値とに基づいて、テストコードを生成する。
【0120】
具体的には、テストコード生成部17は、テストコード雛形情報内の各々の変数部分のうち、「リクエスト発生画面URLの項目」又は「遷移先画面URLの項目」を示す変数部分(#リクエスト発生画面URL#)を設計情報オブジェクト内で当該変数部分に一致する項目の値(searchIndex.jsp)に置換する。
【0121】
また、テストコード生成部17は、各々の変数部分のうち、「HTML要素の項目がタイトルを示すデフォルト値の値」を示す変数部分(#HTML要素(title).デフォルト値#)を設計情報オブジェクト内で当該変数部分と同一オブジェクト(S1-1オブジェクト)内のデフォルト値の値(検索条件画面)に置換する。
【0122】
また、テストコード生成部17は、各々の変数部分のうち、「HTML要素の項目がテキストエリアを示すName属性の値及び物理名がidを示す値」を示す変数部分(#HTML要素(textarea).Name属性#、#物理名(id)#)を設計情報オブジェクト内で当該変数部分と同一オブジェクト(S1-2オブジェクト)内のName属性の値(idFromForSearch)及び物理名の値(id)に一致するデータベース内の物理名の値(id)に関連付けられた検索結果の値(1111)にそれぞれ置換する。
【0123】
また、テストコード生成部17は、各々の変数部分のうち、「HTML要素の項目がインプットを示すName属性の値」を示す変数部分(#HTML要素(input).Name属性#)を設計情報オブジェクト内で当該変数部分と同一オブジェクト(S1-3オブジェクト)内のName属性の値(検索実行)に置換する。このように、テストコード生成部17は、テストコード雛形情報からテストコードを生成する。
【0124】
ステップST8においては、テストコード生成部17は、生成したテストコードを出力する。
【0125】
上述したように第3の実施形態によれば、第2の実施形態のテスト手順パターン情報、操作記憶部14の記憶内容及びテストコード断片情報に代えて、Java形式に対応したテスト手順パターン情報、操作記憶部14の記憶内容及びテストコード断片情報を用いた構成により、第1の実施形態の効果に加え、Javaのコード書式をもつテストコードを生成することができる。
【0126】
以上で説明した少なくとも一つの実施形態によれば、テスト手順パターン情報とテストコード断片情報に基づいてテストコード雛形情報を生成し、テストコード雛形情報と設計情報オブジェクトとテスト用の値とに基づいてテストコードを生成する構成により、テスト手順を再利用化でき、テスト対象のソフトウェア毎にテスト手順を定義する必要をなくすことができる。
【0127】
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0128】
この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0129】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
【0130】
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0131】
また、記憶媒体は1つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【0132】
そして、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【0133】
さらに、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0134】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0135】
10…テストコード生成装置、11…設計書読込部、12…設計情報オブジェクト生成部、13…テスト手順パターン記憶部、14…操作記憶部、15…テストコード断片記憶部、16…テスト手順パターン抽出部、17…テストコード生成部、20…データベース部、21…テーブルデータ生成部、30…テスト自動化ツール部。
【技術分野】
【0001】
本発明の各実施形態は、Webアプリケーション開発のテスト工程に用いられるテストコードを生成するためのテストコード生成プログラム及び装置に関する。
【背景技術】
【0002】
Webアプリケーション開発におけるテスト工程においては、設計書から作成されたWebアプリケーションに対し、例えば、Webブラウザ上で画面項目を確認するテスト、値を入力して画面遷移を確認するテスト、結果の値を確認するテスト、といった様々なテストが実行される。これらのテストを実行する方法としては、人手によって実行する方法と、テスト自動化ツールによって実行する方法とがある。近年では、テスト自動化ツールによって自動的に実行する方法が一般的に用いられる。
【0003】
しかしながら、テスト自動化ツールによって実行する方法は、テスト自動化ツールに入力されるテストコードを作成する必要がある。テストコードの作成には手間がかかるため、設計書などからテスト手順と一体化させたテストコードを自動的に生成する方法が幾つか提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第4148527号公報
【特許文献2】特開2002−366387号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、以上のようなテストコードを自動生成する技術は、通常は何の問題もないが、本発明者の検討によれば、テスト手順と一体化させたテストコードを生成するため、テスト自動化ツールを変更した場合、テスト手順だけを再利用することが困難である。
【0006】
また、テスト手順が分離されている場合も、テスト対象のソフトウェアごとにテスト手順を定義する必要があり、コストがかかる。
【0007】
本明細書に開示した実施形態は、テスト手順を再利用化でき、テスト対象のソフトウェア毎にテスト手順を定義する必要がないテストコード生成プログラム及び装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
以下で説明する本発明の実施形態のテストコード生成装置は、検索対象の物理名の値と検索結果の値とを関連付けて記憶する関連テーブルとしてのデータベース部に接続され、Webアプリケーションにおける複数の設計書データからテスト自動化ツールで用いられるテストコードを生成する。
【0009】
実施形態のテストコード生成装置は、前記各設計書データのうちの画面遷移設計書データであって、前記Webアプリケーションの各画面の遷移に関し、画面遷移IDの項目と値、シナリオ名の項目と値、リクエスト発生画面URLの項目と値、及び遷移先画面URLの項目と値、を関連付けて示す前記画面遷移設計書データの入力を受け付ける。
【0010】
実施形態のテストコード生成装置は、前記各設計書データのうちの画面項目設計書データであって、前記Webアプリケーションの各画面の項目に関し、画面項目IDの項目と値、HTML要素の項目と値、デフォルト値の項目と値、Name属性の項目と値、及び関連テーブルの物理名の項目と値のうち、前記画面項目IDのうちの第1画面項目IDの項目と値、前記HTML要素の項目とタイトルを示す値、及び前記デフォルト値の項目と値を関連付けて示し、前記画面項目IDのうちの第2画面項目IDの項目と値、前記HTML要素の項目とテキストエリアを示す値、前記Name属性の項目と検索対象の物理名の値、及び前記関連テーブルの物理名の項目と値、を関連付けて示すと共に、前記画面項目IDのうちの第3画面項目IDの項目と値、前記HTML要素の項目とインプットを示す値、及び前記Name属性の項目と実行を示す値、を関連付けて示す前記画面項目設計書データの入力を受け付ける。
【0011】
実施形態のテストコード生成装置は、前記各設計書データのうちの画面一覧設計書データであって、前記Webアプリケーションの各画面に関し、画面IDの項目と値、及び画面URLの項目と値、を関連付けて示す前記画面一覧設計書データの入力を受け付ける。
【0012】
実施形態のテストコード生成装置のテスト手順パターン記憶手段は、前記シナリオ名のいずれかの値と同一の文字列からなるテスト手順パターンIDと、テスト順番に沿って配列した複数のテスト手順名とを含むテスト手順パターン情報を記憶する。
【0013】
実施形態のテストコード生成装置の操作記憶手段は、前記テスト手順名、操作及びテストコード断片IDを関連付けて記憶する。
【0014】
実施形態のテストコード生成装置のテストコード断片記憶手段は、前記テストコード断片ID及び変数部分を含んでおり、前記変数部分としては、前記リクエスト発生画面URLの項目、前記遷移先画面URLの項目、前記HTML要素の項目とタイトルを示す値、前記HTML要素の項目とインプットを示す値、又は画面項目値の項目、を個別に含んでいる、複数のテストコード断片情報を記憶する。
【0015】
実施形態のテストコード生成装置は、前記入力を受け付けた画面遷移設計書データ内からシナリオ名の項目と値を抽出する。
【0016】
実施形態のテストコード生成装置の画面遷移オブジェクト生成手段は、前記抽出したシナリオ名の値を含み、当該シナリオ名の値と同一のシナリオ名の値が他に抽出されている場合には更に識別番号を含むオブジェクト名と、プロパティとを含む画面遷移オブジェクトであって、当該プロパティとしては、当該オブジェクト名内のシナリオ名の値に前記画面遷移設計書データ内で関連付けられたリクエスト発生画面URLの項目と値及び遷移先画面URLの項目と値と、当該リクエスト発生画面URLの値に一致する前記画面一覧設計書内の画面URLの値に関連付けられた画面IDの値からなるリクエスト発生画面IDの値と項目と、当該リクエスト発生画面IDの値をオブジェクト名としたリクエスト発生画面オブジェクトを示すリクエスト発生画面項目と、当該遷移先画面URLの値に一致する前記画面一覧設計書内の画面URLの値に関連付けられた画面IDの値からなる遷移先画面IDと、当該遷移先画面IDの値をオブジェクト名とした遷移先画面オブジェクトを示す遷移先画面項目とを含んでいる、前記画面遷移オブジェクトを生成する。
【0017】
実施形態のテストコード生成装置の発生画面オブジェクト生成手段は、前記画面遷移オブジェクトのリクエスト発生画面IDの値からなるオブジェクト名と、プロパティとを含むリクエスト発生画面オブジェクトであって、当該プロパティとしては、当該リクエスト発生画面IDの値に中間一致する前記画面項目設計書内の画面項目IDの値からなる画面項目を含んでいる、前記リクエスト発生画面オブジェクトを生成する。
【0018】
実施形態のテストコード生成装置の発生画面項目オブジェクト生成手段は、前記リクエスト発生画面オブジェクトの画面項目IDの値からなるオブジェクト名と、プロパティとを含むリクエスト発生画面項目オブジェクトであって、当該プロパティとしては、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びデフォルト値の項目と値からなる第1発生画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値、Name属性の項目と値及び関連テーブルの物理名の項目と値からなる第2発生画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びName属性の項目と値からなる第3発生画面項目とのうちのいずれかの発生画面項目を含んでいる、前記リクエスト発生画面項目オブジェクトを個別に生成する。
【0019】
実施形態のテストコード生成装置の遷移先画面オブジェクト生成手段は、前記画面遷移オブジェクトの遷移先画面IDの値からなるオブジェクト名と、プロパティとを含む遷移先画面オブジェクトであって、当該プロパティとしては、当該遷移先画面IDの値に中間一致する前記画面項目設計書内の画面項目IDの値からなる画面項目を含んでいる、前記遷移先画面オブジェクトを生成する。
【0020】
実施形態のテストコード生成装置の遷移先画面項目オブジェクト生成手段は、前記遷移先画面オブジェクトの画面項目IDの値からなるオブジェクト名と、プロパティとを含む遷移先画面項目オブジェクトであって、当該プロパティとしては、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びデフォルト値の項目と値からなる第1遷移先画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値、Name属性の項目と値及び関連テーブルの物理名の項目と値からなる第2遷移先画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びName属性の項目と値からなる第3遷移先画面項目とのうちのいずれかの遷移先画面項目を含んでいる、前記遷移先画面項目オブジェクトを個別に生成する。
【0021】
実施形態のテストコード生成装置の設計情報オブジェクト生成手段は、前記画面遷移オブジェクト、前記リクエスト発生画面オブジェクト、前記リクエスト発生画面項目オブジェクト、前記遷移先画面オブジェクト及び前記遷移先画面項目オブジェクトを含む設計情報オブジェクトを生成する。
【0022】
実施形態のテストコード生成装置のテスト手順パターン読出手段は、前記設計情報オブジェクト内の画面遷移オブジェクトのオブジェクト名に含まれるシナリオ名の値に一致するテスト手順パターンIDを含むテスト手順パターン情報を前記テスト手順パターン記憶手段から読み出す。
【0023】
実施形態のテストコード生成装置は、当該読み出したテスト手順パターン情報内のテスト手順名を前記テスト順番に沿って読み出し、当該読み出したテスト手順名に一致する前記操作記憶手段内のテスト手順名に関連付けられたテストコード断片IDを当該操作記憶手段から読み出す。
【0024】
実施形態のテストコード生成装置は、当該読み出したテストコード断片IDに一致するテストコード断片IDを含むテストコード情報を前記テストコード断片記憶手段から読み出し、当該読み出したテストコード情報を前記テスト順番に沿って結合してテストコード雛形情報を作成する。
【0025】
実施形態のテストコード生成装置は、前記テストコード雛形情報内の各々の変数部分のうち、「前記リクエスト発生画面URLの項目」又は「前記遷移先画面URLの項目」を示す変数部分を前記設計情報オブジェクト内で当該変数部分に一致する項目の値に置換し、前記各々の変数部分のうち、「前記HTML要素の項目がタイトルを示すデフォルト値の値」を示す変数部分を前記設計情報オブジェクト内で当該変数部分と同一オブジェクト内のデフォルト値の値に置換し、前記各々の変数部分のうち、「前記HTML要素の項目がインプットを示すName属性の値」又は「物理名がidを示す値」を示す変数部分を前記設計情報オブジェクト内で当該変数部分と同一オブジェクト内のName属性の値に置換し、当該「前記物理名がidを示す値」を示す変数部分については更に当該同一オブジェクト内の物理名の値に一致する前記データベース内の物理名の値に関連付けられた検索結果の値を当該置換したName属性の値の次の行に挿入することにより、前記テストコード雛形情報から前記テストコードを生成する。
【図面の簡単な説明】
【0026】
【図1】第1の実施形態に係るテストコード生成装置及びその周辺構成を示すブロック図である。
【図2】同実施形態における動作を説明するためのフローチャートである。
【図3】第2の実施形態に係る画面遷移設計書データの構成を示す模式図である。
【図4】同実施形態における画面項目設計書データの構成を示す模式図である。
【図5】同実施形態におけるテーブル項目設計書データの構成を示す模式図である。
【図6】同実施形態における例外処理設計書データの構成を示す模式図である。
【図7】同実施形態における画面一覧設計書データの構成を示す模式図である。
【図8】同実施形態における入力画面の一例を示す模式図である。
【図9】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図10】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図11】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図12】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図13】同実施形態におけるテスト手順パターン情報の一例を示す模式図である。
【図14】同実施形態における設計情報オブジェクトの一例を示す模式図である。
【図15】同実施形態におけるテストコード雛形情報の生成動作を説明するための模式図である。
【図16】同実施形態におけるテストコードの生成動作を説明するための模式図である。
【図17】第3の実施形態に係るテストコード断片情報の一例を示す模式図である。
【図18】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図19】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図20】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図21】同実施形態におけるテストコード雛形情報の生成動作を説明するための模式図である。
【図22】同実施形態におけるテストコードの生成動作を説明するための模式図である。
【発明を実施するための形態】
【0027】
以下、各実施形態について図面を用いて説明する。なお、以下のテストコード生成装置は、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体からテストコード生成装置となるコンピュータにインストールされ、テストコード生成装置の機能を実現させるためのプログラムが用いられる。また、テストコード生成装置は、この名称に限らず、例えば、Webアプリケーション開発のテスト工程を支援することからWebアプリケーションテスト支援装置と呼んでもよく、また、テストコード作成装置やテストコード自動生成装置といった任意の名称で呼んでもよい。
【0028】
(第1の実施形態)
図1は第1の実施形態に係るテストコード生成装置及びその周辺構成を示すブロック図である。このテストコード生成装置10は、設計書データ、テスト手順パターン情報、テストコード断片情報及びデータベース部20内のデータに基づいて、テストコードを生成して出力するものである。なお、データベース部20内のデータは、設計書データに基づいて、テーブルデータ生成部21により書き込まれている。また、出力されたテストコードは、テスト自動化ツール部30によるテストに用いられる。
【0029】
このようなテストコード生成装置10は、設計書読込部11、設計情報オブジェクト生成部12、テスト手順パターン記憶部13、操作記憶部14、テストコード断片記憶部15、テスト手順パターン抽出部16及びテストコード生成部17を備えている。
【0030】
ここで、設計書読込部11は、ユーザの操作により、入力となる各種の設計書データの読込を実行し、読み込んだ設計書データを設計情報オブジェクト生成部12に送出するものである。各種の設計書データとしては、画面遷移設計書データ、画面項目設計書データ、テーブル項目設計書データ、画面一覧設計書データ及び例外処理設計書データがある。なお、ユーザの操作に対応するデータ又は命令の入力は、GUI(graphical user interface)を介して該当する機能部11〜17に伝えられる。
【0031】
設計情報オブジェクト生成部12は、設計書読込部11から送出された各種の設計書データのうちの画面遷移設計書データからテスト対象処理名(シナリオ名)を抽出する処理対象抽出機能と、抽出されたテスト対象処理名毎に、当該各種の設計書データから設計情報オブジェクトを生成する設計情報オブジェクト生成機能とをもっている。ここで、設計情報オブジェクトは、設計書データのうち、上位概念のデータ(例、画面に関するデータ項目とデータ)を上位のオブジェクトとして表し、この上位概念のデータに対する下位概念のデータ(例、画面内の項目に関するデータ項目とデータ)を下位のオブジェクトとして表し、上位と下位のオブジェクトを関連付けてなるオブジェクトデータである。
【0032】
テスト手順パターン記憶部13は、1つのテスト手順パターン名と、テスト順番に沿って記述された複数のテスト手順名とを含み、テスト対象処理としてのある機能における一連のテスト手順のパターンを示すテスト手順パターン情報を記憶している。ある機能とは、検索、更新、登録、削除などであり、ユーザが追加することも可能である。テスト手順パターン名は、設計情報オブジェクト部12により抽出されるテスト対象処理名と同一の文字列からなる。このようなテスト手順パターン情報は、予めユーザにより、テスト手順パターン記憶部13に書き込まれている。また、テスト手順パターン情報は、ユーザの操作により、適宜、追加、変更又は削除等の編集が可能となっている。
【0033】
操作記憶部14は、テスト手順パターン記憶部13内のテスト手順パターン情報に含まれるテスト手順名と、テストコード断片記憶部15内のテストコード断片情報に含まれるテストコード断片IDとを関連付けて記憶する。操作記憶部14は、予めユーザの操作により、各情報が関連付けて書き込まれている。
【0034】
テストコード断片記憶部15は、テストコード断片IDと、設計書オブジェクト内の項目とを含んでテストコードの一部が記述されたテストコード断片情報を記憶する。テストコード断片情報は、予めユーザの操作により、テストコード断片記憶部15に書き込まれている。なお、テストコード断片情報は、テストコード雛形断片情報と呼んでもよい。
【0035】
テスト手順パターン抽出部16は、設計情報オブジェクト生成部12により抽出されたテスト対象処理名に基づいて、テスト手順パターン記憶部13からテスト手順パターン情報を読み出し、このテスト手順パターン情報をテストコード生成部17に送出する機能をもっている。
【0036】
テストコード生成部17は、テスト手順パターン抽出部16から送出されたテスト手順パターン情報と、当該テスト手順パターン情報内の各テスト手順名に操作記憶部14内で関連付けられたテストコード断片IDを含むテストコード断片記憶部15内のテストコード断片情報に基づいて、テストコード雛形情報を生成するテストコード雛形生成機能と、当該生成したテストコード雛形情報と、設計情報オブジェクト生成部12により生成された設計情報オブジェクトと、テストで使用するデータベース部20の値とに基づいてテストコードを生成するテストコード生成機能と、生成したテストコードを出力するテストコード出力機能とをもっている。
【0037】
データベース部20は、テーブルデータ生成部21により書き込まれたテスト用のデータを記憶するテーブルであり、テストコード生成部17から読出可能となっている。補足すると、データベース部20は、検索対象の物理名の値と検索結果の値とを関連付けて記憶する関連テーブルとして用いられる。
【0038】
テーブルデータ生成部21は、各種設計書データのうちのテーブル項目設計書データに基づいてテスト用のデータを生成し、このデータをデータベース部20に登録する機能を持つ。このテーブルデータ生成部21は、既存技術が使用可能となっている。
【0039】
テスト自動化ツール部30は、テストコード生成装置10から出力されたテストコードを用いて、各種設計書データに示されたソフトウェアのテスト工程を実行するテスト自動化ツールプログラムを実行する機能をもっている。
【0040】
次に、以上のように構成されたテストコード生成装置の動作を図2のフローチャートを用いて説明する。なお、データベース部20は、既存技術により、テスト用のデータが登録されているものとする。
【0041】
いま、テストコード生成装置10においては、ユーザの操作により、設計書読込部11が、入力となる各種の設計書データを読み込む(ST1)。読み込まれた各種の設計書データは、設計書読込部11から設計情報オブジェクト生成部12に送出される。
【0042】
次に、設計情報オブジェクト生成部12は、送出された設計書データのうちの画面遷移設計書からテスト対象処理名を抽出し(ST2)、抽出したテスト対象処理名毎に、各種の設計書データから設計情報オブジェクトを生成する(ST3)。
【0043】
テスト手順パターン抽出部16は、抽出されたテスト対象処理名に基づいて、テスト手順パターン記憶部13からテスト手順パターン情報を読み出す(ST4)。読み出されたテスト手順パターン情報は、テスト手順パターン抽出部16からテストコード生成部17に送出される。
【0044】
テストコード生成部17は、ユーザによりGUIから入力されたテストコード断片の種類から使用するテストコード断片情報を特定する(ST5)。例えば、複数のテスト自動化ツールA,Bがある場合、入力されたテストコード断片の種類が“ツールA用テストコード断片”であれば、ツールA用のテストコード断片情報を特定し、入力されたテストコード断片の種類が“ツールB用テストコード断片”であれば、ツールB用のテストコード断片情報を特定する。なお、ステップST5は、複数のテスト自動化ツールが無い場合等には省略可能となっている。
【0045】
テストコード生成部17は、テスト手順パターン抽出部16から送出されたテスト手順パターン情報と、当該テスト手順パターン情報内の各テスト手順名に操作記憶部14内で関連付けられたテストコード断片IDを含むテストコード断片記憶部15内のテストコード断片情報に基づき、テスト手順パターン情報内のテスト手順名の順番に沿ってテストコード断片情報を結合してテストコード雛形情報を生成する(ST6)。
【0046】
また、テストコード生成部17は、当該生成したテストコード雛形情報と、設計情報オブジェクト生成部12により生成された設計情報オブジェクトと、テストで使用するデータベース部20の値とに基づいて、テストコードを生成する(ST7)。
【0047】
例えば、テストコード生成部17は、テストコード雛形情報を構成するテストコード断片情報内に含まれる「設計書オブジェクト内の項目」を「設計書オブジェクト内の当該項目の値」や「設計書オブジェクト内の当該項目の値に関連付けられたデータベース部20内の値」に置換することにより、テストコード雛形情報、設計書オブジェクト及びデータベース部20の値からテストコードを生成する。
【0048】
しかる後、テストコード生成部17は、生成したテストコードを出力する(ST8)。出力されたテストコードは、テスト自動化ツール部30によるテスト工程に使用される。
【0049】
上述したように本実施形態によれば、入力される設計書データに対し、予め記憶したテスト手順パターン情報及びテストコード断片情報に基づいてテストコードを生成する構成により、テスト手順とテストコードの分離によって、テスト自動化ツールの変更に容易に対応でき、設計書に基づいて、メンテナンス性の高いテストコードを効率的に生成できるため、テスト全体のコストを下げ、Webアプリケーションの品質向上に寄与することができる。
【0050】
補足すると、本実施形態によれば、テスト手順とテストコードを分離し、設計書データと汎用的なテスト手順パターンから機械的にテストコードを生成する構成により、従来とは異なり、テスト対象のソフトウェア毎にテスト手順を定義する必要がなく、コストを下げることができる。
【0051】
(第2の実施形態)
第2の実施形態は、第1の実施形態に述べた図1の構成及び図2の動作において入出力を具体的に示した例であり、図3乃至図7に示す設計書データを入力し、コード書式がHTML(Hypertext Markup Language)のテスト自動化ツール(ツールA)のテストコードを出力する形態となっている。なお、設計書データの書式は、例えば図3乃至図7に示した如き、必要な内容が書かれていれば任意の書式が使用可能となっている。但し、装置を実装する際には便宜上形式を定める。
【0052】
ここで、画面遷移設計書データは、図3に示すように、Webアプリケーションの各画面の遷移に関し、画面遷移IDの項目と値、シナリオ名の項目と値、リクエスト発生画面URLの項目と値、及び遷移先画面URLの項目と値、を関連付けて示している。
【0053】
画面項目設計書データは、図4に示すように、Webアプリケーションの各画面の項目に関し、画面項目IDの項目と値、HTML要素の項目と値、デフォルト値の項目と値、Name属性の項目と値、及び関連テーブルの物理名の項目と値のうち、画面項目IDのうちの第1画面項目IDの項目と値、HTML要素の項目とタイトルを示す値、及びデフォルト値の項目と値を関連付けて示し、画面項目IDのうちの第2画面項目IDの項目と値、HTML要素の項目とテキストエリアを示す値、Name属性の項目と検索対象の物理名の値、及び関連テーブルの物理名の項目と値、を関連付けて示すと共に、画面項目IDのうちの第3画面項目IDの項目と値、HTML要素の項目とインプットを示す値、及びName属性の項目と実行を示す値、を関連付けて示している。
【0054】
テーブル項目設計書データは、図5に示すように、Webアプリケーションの検索処理に用いられる関連テーブルのテーブル項目に関し、項目名の項目と値、物理名の項目と値、主キーの項目と値、型の項目と値、及び桁の項目と値、を関連付けて示している。
【0055】
例外処理設計書データは、図6に示すように、Webアプリケーションの例外処理に関し、例外発生条件の項目と値、例外発生画面URLの項目と値、例外発生遷移先画面URLの項目と値、及び例外メッセージの項目と値を関連付けて示している。
【0056】
画面一覧設計書データは、図7に示すように、Webアプリケーションの各画面に関し、画面IDの項目と値、及び画面URLの項目と値、を関連付けて示している。
【0057】
設計書データとテストコード断片情報の種類の入力は、図8に示す入力画面G10から行う。テストコード断片情報の種類は、プルダウン又はリストボックスg11等により選択可能となっており、選択肢として、予めテストコード断片記憶部15に記憶されているテストコード断片情報の種類が表示される。
【0058】
ここでは、HTML形式のテストコード断片情報の例を図9乃至図12に示す。
【0059】
図9に示したテストコード断片情報は、テストコード断片ID“open”及び変数部分を含んでおり、変数部分としては、リクエスト発生画面URLの項目“#リクエスト発生画面URL#”を含んでいる。同様のテストコード断片情報としては、テストコード断片ID“open”及び変数部分“#遷移先画面URL#を含むテストコード断片情報(図示せず)もテストコード断片記憶部15に記憶されている。
【0060】
図10に示したテストコード断片情報は、テストコード断片ID“click”及び変数部分を含んでおり、変数部分としては、HTML要素の項目がインプットである値のName属性の示す値“name=”#HTML要素(input).Name属性#””を含んでいる。ここで、“name="#HTML要素(input).Name属性#"”は、先に示した図4の列タイトル「HTML要素」の値がinputである値の列タイトル「Name属性」の値が変数部分に入ることを意味する。そして、変数部分"#HTML要素(input).Name属性#"が"検索実行"に置き換わった後は、“name="検索実行"”となる。
【0061】
図11に示したテストコード断片情報は、テストコード断片ID“assertTitle”及び変数部分を含んでおり、変数部分としては、HTML要素の項目がタイトルである値のデフォルト値の値#HTML要素(title).デフォルト値#”を含んでいる。
【0062】
図12に示したテストコード断片情報は、テストコード断片ID“type”及び変数部分を含んでおり、変数部分としては、HTML要素の項目がテキストエリアである値のName属性の示す値“name=“#HTML要素(textarea).Name属性#””を含んでいる。なお、各図9〜図12中、変数部分を記号#で挟んだ部分として示したが、これに限らず、他の記号で挟んだ部分を変数部分としてもよい。これは他の実施形態でも同様である。
【0063】
テスト手順パターン記憶部13には、予め図13に示す如き、シナリオ名のいずれかの値(search)と同一の文字列からなるテスト手順パターンID(search)と、テスト順番に沿って配列した複数のテスト手順名(access, check, type, click, check)とを含むテスト手順パターン情報が記憶されている。図示したテスト手順パターン情報は、一般的な検索処理のテスト手順パターンの例を示している。下線部分のテスト手順名は、操作記憶部14内の操作及びツールコード断片IDと1対1に対応している。
【0064】
テストコード断片記憶部15にも、すでにいくつかの書式のテストコード断片が記憶されている。テスト手順パターンの操作と各テストコードの操作の対応は、操作記憶部14に記憶されている。
【0065】
また、データベース部20は、検索対象の物理名の値と検索結果の値とを関連付けて記憶する関連テーブルとして用いられ、テストコード生成装置10に接続されている。
【0066】
次に、以上のようなデータの具体例を用いた場合のテストコード生成装置の動作を図2のフローチャートに沿って説明する。
【0067】
ステップST1においては、テストコード生成装置10の設計書読込部11が、ユーザの操作により、入力画面G10から各種の設計書データの入力を受け付ける。また、設計書読込部11は、ユーザの操作により、テストコード断片情報の種類の選択を受け付ける。設計書データは本装置の書式に準拠したものとする。設計書読込部11は、本装置の書式に準拠しない設計書データが入力されたときには、画面に検証エラーを表示する。準拠しない旨の判定は、例えば予め保持する本装置の書式データに記述された項目と、入力された設計書データ内の項目とを比較し、両者が一致するか否か等により実行可能となっている。
【0068】
ステップST2においては、設計情報オブジェクト生成部12は、図3に示した如き、入力を受け付けた画面遷移設計書データ内からテスト対象処理名としてのシナリオ名の項目と値(search, search, search, regist)を抽出する。
【0069】
ステップST3においては、設計情報オブジェクト生成部12は、抽出されたシナリオ名毎に、図14に示す如き、設計情報オブジェクトを生成する。
【0070】
設計情報オブジェクトは、画面遷移設計書データ、画面項目設計書データ、データ項目設計書データ、画面一覧設計書データ、例外処理設計書データから生成する。図14では、テスト対象として抽出された1つ目のsearch(search1)の設計情報オブジェクトを示している。以下にステップST3−1〜ST3−3として設計情報オブジェクト生成の手順を示す。
【0071】
ステップST3−1においては、設計情報オブジェクト生成部12は、画面遷移設計書データから、search1のリクエスト発生画面と遷移先画面をプロパティとするsearch1オブジェクトを生成する。
【0072】
詳しくは、設計情報オブジェクト生成部12は、抽出したシナリオ名の値(search)を含み、当該シナリオ名の値(search)と同一のシナリオ名の値(search)が他に抽出されている場合には更に識別番号(1)を含むオブジェクト名(search1)と、プロパティとを含む画面遷移オブジェクト(search1オブジェクト)を生成する。当該画面遷移オブジェクト(search1オブジェクト)のプロパティとしては、当該オブジェクト名内のシナリオ名の値(search)に画面遷移設計書データ内で関連付けられたリクエスト発生画面URLの項目と値(searchIndex.jsp)及び遷移先画面URLの項目と値(searchResult.jsp)と、当該リクエスト発生画面URLの値に一致する画面一覧設計書内の画面URLの値(searchIndex.jsp)に関連付けられた画面IDの値(S1)からなるリクエスト発生画面IDの値(S1)と項目と、当該リクエスト発生画面IDの値をオブジェクト名(S1)としたリクエスト発生画面オブジェクト(S1オブジェクト)を示すリクエスト発生画面項目と、当該遷移先画面URLの値(searchIndex.jsp)に一致する画面一覧設計書内の画面URLの値(searchIndex.jsp)に関連付けられた画面IDの値(S2)からなる遷移先画面IDと、当該遷移先画面IDの値をオブジェクト名とした遷移先画面オブジェクト(S2オブジェクト)を示す遷移先画面項目とを含んでいる。
【0073】
ステップST3−2においては、設計情報オブジェクト生成部12は、画面項目をプロパティとするリクエスト発生画面と遷移先画面のそれぞれのオブジェクトを生成する。
【0074】
詳しくは、設計情報オブジェクト生成部12は、画面遷移オブジェクト(search1オブジェクト)のリクエスト発生画面IDの値(S1)からなるオブジェクト名(S1)と、プロパティとを含むリクエスト発生画面オブジェクト(S1オブジェクト)を生成する。当該リクエスト発生画面オブジェクト(S1オブジェクト)のプロパティとしては、当該リクエスト発生画面IDの値に中間一致する画面項目設計書内の画面項目IDの値(S1-1, S1-2, S1-3)からなる画面項目を含んでいる、当該リクエスト発生画面オブジェクト(S1オブジェクト)を生成する。
【0075】
同様に、設計情報オブジェクト生成部12は、画面遷移オブジェクト(search1オブジェクト)の遷移先画面IDの値(S2)からなるオブジェクト名(S2)と、プロパティとを含む遷移先画面オブジェクト(S2オブジェクト)を生成する。当該遷移先画面オブジェクト(S2オブジェクト)のプロパティとしては、当該遷移先画面IDの値(S2)に中間一致する画面項目設計書内の画面項目IDの値(S2-1, S2-2, S2-3)からなる画面項目を含んでいる。
【0076】
ステップST3−3においては、設計情報オブジェクト生成部12は、さらに画面項目要素をプロパティとする画面項目オブジェクトを作成する。
【0077】
詳しくは、設計情報オブジェクト生成部12は、リクエスト発生画面オブジェクト(S1オブジェクト)の画面項目IDの値(S1-1, S1-2, S1-3)からなるオブジェクト名(S1-1, S1-2, S1-3)と、プロパティとを含むリクエスト発生画面項目オブジェクト(S1-1オブジェクト、S1-2オブジェクト、S1-3オブジェクト)を個別に生成する。
【0078】
当該リクエスト発生画面項目オブジェクトのプロパティとしては、当該画面項目IDの値(S1-1)に画面項目設計書内で関連付けられたHTML要素の項目と値(title)及びデフォルト値の項目と値(検索条件画面)からなる第1発生画面項目と、当該画面項目IDの値(S1-2)に画面項目設計書内で関連付けられたHTML要素の項目と値(textarea)、Name属性の項目と値(idFromForSearch)及び関連テーブルの物理名の項目と値(id)からなる第2発生画面項目と、当該画面項目IDの値(S1-3)に画面項目設計書内で関連付けられたHTML要素の項目と値(input)及びName属性の項目と値(検索実行)からなる第3発生画面項目とのうちのいずれかの発生画面項目を含んでいる。
【0079】
このようなオブジェクトの状態にすることで、画面と画面項目、画面項目要素の関係がわかるようになる。
【0080】
また、設計情報オブジェクト生成部12は、ステップST3−1〜ST3−3に示したように生成した画面遷移オブジェクト、リクエスト発生画面オブジェクト、リクエスト発生画面項目オブジェクト、遷移先画面オブジェクト及び遷移先画面項目オブジェクトを含む設計情報オブジェクトを生成する。
【0081】
ステップST4においては、テスト手順パターン抽出部16は、抽出されたテスト対象処理名に基づいて、テスト手順パターン記憶部13からテスト手順パターン情報を読み出す。その際、設計情報オブジェクトのオブジェクト名を使用する。
【0082】
詳しくは、テスト手順パターン抽出部16は、例えば、設計情報オブジェクト内の画面遷移オブジェクトのオブジェクト名(search1)に含まれるシナリオ名の値(search)に一致するテスト手順パターンID(search)を含むテスト手順パターン情報をテスト手順パターン記憶部13から読み出す。
【0083】
更に詳しくは、テスト手順パターン情報の抽出は以下のステップST4−1〜ST4−2に示す手順で実行する。
【0084】
ステップST4−1においては、テスト対象処理が例外処理であるかを、画面遷移設計書データと例外処理設計書データから判定する。画面遷移設計書データのリクエスト発生画面URLと遷移先画面URLの対が、例外処理設計書データの例外発生画面URLと例外発生遷移先画面URLの対と同じであれば、その処理を例外処理と判定する。
【0085】
具体的には、テスト手順パターン抽出部16は、テスト手順パターン情報の読み出しよりも先に、設計情報オブジェクト内の画面遷移オブジェクトのオブジェクト名(search1)に含まれるシナリオ名の値(search)に一致する画面遷移設計書データ内のシナリオ名の値(search)に関連付けられたリクエスト発生画面URLの値及び遷移先画面URLの値と、例外処理設計書データ内の例外発生画面URLの値及び例外発生遷移先画面URLの値とが一致するか否かを判定し、両者が一致する場合には例外処理と判定する。
【0086】
ステップST4−2においては、両者が一致しない場合(例外処理ではない場合)は、テスト対象処理画面、テスト対象処理の入力項目から、対応するテスト手順パターン情報を抽出する。例えば、同じsearchというテスト対象処理でも、対象画面の入力項目数(HTML要素:textareaを含む画面項目オブジェクト)が複数ある場合は詳細検索のテスト手順パターンID(searchDetail)を含むテスト手順パターン情報を抽出し、入力項目数が1つである場合は検索のテスト手順パターンID(search)を含むテスト手順パターン情報を抽出する。
【0087】
なお、ステップST4−1〜ST4−2で抽出されるテスト手順パターン情報は、以下の例の通りである。
【0088】
テスト対象処理名としてのシナリオ名“search”で入力項目数が1つの場合、検索のテスト手順パターン情報(テスト手順パターンID:search)が抽出される。
【0089】
テスト対象処理名としてのシナリオ名“search”で入力項目数が複数の場合、詳細検索のテスト手順パターン情報(テスト手順パターンID:searchDetail)が抽出される。
【0090】
テスト対象処理名としてのシナリオ名“search”で例外処理の場合、例外のテスト手順パターン情報(テスト手順パターンID:error)が抽出される。
【0091】
テスト対象処理名としてのシナリオ名“regist”の場合、登録のテスト手順パターン情報(テスト手順パターンID:regist)が抽出される。
【0092】
ステップST5においては、テストコード生成部17は、入力画面G10で選択されたテストコード断片情報の種類から使用するテストコード断片情報を特定する。ここでは、HTMLのコード書式に対応するツールA用のテストコード断片情報の種類から使用するテストコード断片情報が特定される。
【0093】
ステップST6においては、テストコード生成部17は、図15に示すように、ステップST4で読み出されたテスト手順パターン情報と、ステップST5で特定された種類のテストコード断片情報とに基づいて、テストコード雛形情報を生成する。
【0094】
詳しくは、ステップST6は、以下のステップST6−1〜ST6−2に示すように実行される。
【0095】
ステップST6−1においては、テストコード生成部17は、ステップST4で読み出されたテスト手順パターン情報内のテスト手順名をテスト順番に沿って読み出し、当該読み出したテスト手順名に一致する操作記憶部14内のテスト手順名に関連付けられたテストコード断片IDを当該操作記憶部14から読み出す。
【0096】
ステップST6−2においては、テストコード生成部17は、読み出したテストコード断片IDに一致するテストコード断片IDを含むテストコード情報をテストコード断片記憶部15から読み出し、当該読み出したテストコード情報をテスト順番に沿って結合してテストコード雛形情報を作成する。
【0097】
ステップST7においては、図16に示すように、テストコード生成部17は、当該生成したテストコード雛形情報と、設計情報オブジェクト生成部12により生成された設計情報オブジェクトと、テストで使用するデータベース部20の値とに基づいて、テストコードを生成する。
【0098】
詳しくは、ステップST7は、以下のステップST7−1〜ST7−2に示すように実行される。
【0099】
ステップST7−1においては、テストコード生成部17は、テストコード雛形情報の変数部分に設計情報オブジェクトの情報を当てはめて、テストコードを生成する。テストコード雛形の変数部分とは#で囲んだ部分のことをいう。
【0100】
ステップST7−2においては、テストコード生成部17は、検索結果の確認などでデータベースの値を参照する場合に、データベース部20から期待値を取得する。テストコード生成部17は、アプリケーションの検索キーで使用した値の物理名を設計情報オブジェクトから取得し、設計書に基づいて作成されたテーブルに対してデータベース検索を行う。
【0101】
具体的には、テストコード生成部17は、テストコード雛形情報内の各々の変数部分のうち、「リクエスト発生画面URLの項目」又は「遷移先画面URLの項目」を示す変数部分(#リクエスト発生画面URL#)を設計情報オブジェクト内で当該変数部分に一致する項目の値(searchIndex.jsp)に置換する。
【0102】
また、テストコード生成部17は、各々の変数部分のうち、「HTML要素の項目がタイトルを示すデフォルト値の値」を示す変数部分(#HTML要素(title).デフォルト値#)を設計情報オブジェクト内で当該変数部分と同一オブジェクト(S1-1オブジェクト)内のデフォルト値の値(検索条件画面)に置換する。
【0103】
また、テストコード生成部17は、各々の変数部分のうち、「HTML要素の項目がインプットを示すName属性の値」又は「HTML要素の項目がテキストエリアを示すName属性の値」を示す変数部分(「#HTML要素(input).Name属性#」又は「#HTML要素(textarea).Name属性#」)を設計情報オブジェクト内で当該変数部分と同一オブジェクト(S1-3オブジェクト又はS1-2オブジェクト)の値(「検索実行」又は「idFromForSearch」)に置換する。
【0104】
また、テストコード生成部17は、当該「HTML要素の項目がテキストエリアを示すName属性の値」を示す変数部分(#HTML要素(textarea).Name属性#)については更に当該同一オブジェクト(S1-2オブジェクト)内の物理名の値(id)に一致するデータベース内の物理名の値(id)に関連付けられた検索結果の値(1111)を当該置換したName属性の値(idFromForSearch)の次の行(<td><td>)に挿入する。このように、テストコード生成部17は、テストコード雛形情報からテストコードを生成する。
【0105】
ステップST8においては、テストコード生成部17は、生成したテストコードを出力する。
【0106】
上述したように第2の実施形態によれば、第1の実施形態の構成において、具体的な設計書データ、テスト手順パターン情報、操作記憶部14の記憶内容及びテストコード断片情報を用いた構成により、第1の実施形態の効果に加え、HTMLのコード書式をもつテストコードを生成することができる。
【0107】
(第3の実施形態)
第3の実施形態は、第1の実施形態に述べた図1の構成及び図2の動作において入出力を具体的に示した例であり、図3乃至図7に示した設計書データを入力し、コード書式がJava(登録商標)のテスト自動化ツール(ツールB)のテストコードを出力する形態となっている。なお、各種の設計書データ、設計情報オブジェクト、テスト手順パターン情報及びステップST1〜ST4までの処理は、第2の実施形態と同一であるので、重複した説明を省略する。
【0108】
以下では、図2のフローチャートのステップST5から説明する。
【0109】
ステップST5においては、テストコード生成部17は、入力画面G10で選択されたテストコード断片情報の種類から使用するテストコード断片情報を特定する。ここでは、Javaのコード書式に対応するツールB用のテストコード断片情報の種類から使用するテストコード断片情報が特定される。
【0110】
ここで、Java形式のテストコード断片情報の例を図17乃至図20に示す。
【0111】
図17に示したテストコード断片情報は、テストコード断片ID“open”及び変数部分を含んでおり、変数部分としては、リクエスト発生画面URLの項目“#リクエスト発生画面URL#”を含んでいる。同様のテストコード断片情報としては、テストコード断片ID“open”及び変数部分“#遷移先画面URL#を含むテストコード断片情報(図示せず)もテストコード断片記憶部15に記憶されている。
【0112】
図18に示したテストコード断片情報は、テストコード断片ID(assertEquals)及び変数部分を含んでおり、変数部分としては、HTML要素の項目がタイトルを示すデフォルト値の値(#HTML要素(title).デフォルト値#)を含んでいる。
【0113】
図19に示したテストコード断片情報は、テストコード断片ID(type)及び変数部分を含んでおり、変数部分としては、HTML要素の項目がテキストエリアを示すName属性の値及び物理名がidを示す値(#HTML要素(textarea).Name属性#、#物理名(id)#)を含んでいる。
【0114】
図20に示したテストコード断片情報は、テストコード断片ID(click)及び変数部分を含んでおり、変数部分としては、HTML要素の項目がインプットを示すName属性の値(#HTML要素(input).Name属性#)を含んでいる。
【0115】
ステップST6においては、テストコード生成部17は、図21に示すように、ステップST4で読み出されたテスト手順パターン情報と、ステップST5で特定された種類のテストコード断片情報とに基づいて、テストコード雛形情報を生成する。
【0116】
詳しくは、ステップST6は、以下のステップST6−1〜ST6−2に示すように実行される。
【0117】
ステップST6−1においては、テストコード生成部17は、ステップST4で読み出されたテスト手順パターン情報内のテスト手順名をテスト順番に沿って読み出し、当該読み出したテスト手順名に一致する操作記憶部14内のテスト手順名に関連付けられたテストコード断片IDを当該操作記憶部14から読み出す。
【0118】
ステップST6−2においては、テストコード生成部17は、読み出したテストコード断片IDに一致するテストコード断片IDを含むテストコード情報をテストコード断片記憶部15から読み出し、当該読み出したテストコード情報をテスト順番に沿って結合してテストコード雛形情報を作成する。
【0119】
ステップST7においては、図22に示すように、テストコード生成部17は、当該生成したテストコード雛形情報と、設計情報オブジェクト生成部12により生成された設計情報オブジェクトと、テストで使用するデータベース部20の値とに基づいて、テストコードを生成する。
【0120】
具体的には、テストコード生成部17は、テストコード雛形情報内の各々の変数部分のうち、「リクエスト発生画面URLの項目」又は「遷移先画面URLの項目」を示す変数部分(#リクエスト発生画面URL#)を設計情報オブジェクト内で当該変数部分に一致する項目の値(searchIndex.jsp)に置換する。
【0121】
また、テストコード生成部17は、各々の変数部分のうち、「HTML要素の項目がタイトルを示すデフォルト値の値」を示す変数部分(#HTML要素(title).デフォルト値#)を設計情報オブジェクト内で当該変数部分と同一オブジェクト(S1-1オブジェクト)内のデフォルト値の値(検索条件画面)に置換する。
【0122】
また、テストコード生成部17は、各々の変数部分のうち、「HTML要素の項目がテキストエリアを示すName属性の値及び物理名がidを示す値」を示す変数部分(#HTML要素(textarea).Name属性#、#物理名(id)#)を設計情報オブジェクト内で当該変数部分と同一オブジェクト(S1-2オブジェクト)内のName属性の値(idFromForSearch)及び物理名の値(id)に一致するデータベース内の物理名の値(id)に関連付けられた検索結果の値(1111)にそれぞれ置換する。
【0123】
また、テストコード生成部17は、各々の変数部分のうち、「HTML要素の項目がインプットを示すName属性の値」を示す変数部分(#HTML要素(input).Name属性#)を設計情報オブジェクト内で当該変数部分と同一オブジェクト(S1-3オブジェクト)内のName属性の値(検索実行)に置換する。このように、テストコード生成部17は、テストコード雛形情報からテストコードを生成する。
【0124】
ステップST8においては、テストコード生成部17は、生成したテストコードを出力する。
【0125】
上述したように第3の実施形態によれば、第2の実施形態のテスト手順パターン情報、操作記憶部14の記憶内容及びテストコード断片情報に代えて、Java形式に対応したテスト手順パターン情報、操作記憶部14の記憶内容及びテストコード断片情報を用いた構成により、第1の実施形態の効果に加え、Javaのコード書式をもつテストコードを生成することができる。
【0126】
以上で説明した少なくとも一つの実施形態によれば、テスト手順パターン情報とテストコード断片情報に基づいてテストコード雛形情報を生成し、テストコード雛形情報と設計情報オブジェクトとテスト用の値とに基づいてテストコードを生成する構成により、テスト手順を再利用化でき、テスト対象のソフトウェア毎にテスト手順を定義する必要をなくすことができる。
【0127】
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0128】
この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0129】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
【0130】
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0131】
また、記憶媒体は1つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【0132】
そして、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【0133】
さらに、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0134】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0135】
10…テストコード生成装置、11…設計書読込部、12…設計情報オブジェクト生成部、13…テスト手順パターン記憶部、14…操作記憶部、15…テストコード断片記憶部、16…テスト手順パターン抽出部、17…テストコード生成部、20…データベース部、21…テーブルデータ生成部、30…テスト自動化ツール部。
【特許請求の範囲】
【請求項1】
検索対象の物理名の値と検索結果の値とを関連付けて記憶する関連テーブルとしてのデータベース部に接続され、且つテスト手順パターン記憶手段、操作記憶手段及びテストコード断片記憶手段を備えるとともに、Webアプリケーションにおける複数の設計書データからテスト自動化ツールで用いられるテストコードを生成するテストコード生成装置に用いられるテストコード生成プログラムであって、
前期テストコード生成装置を、
前記各設計書データのうちの画面遷移設計書データであって、前記Webアプリケーションの各画面の遷移に関し、画面遷移IDの項目と値、シナリオ名の項目と値、リクエスト発生画面URLの項目と値、及び遷移先画面URLの項目と値、を関連付けて示す前記画面遷移設計書データの入力を受け付ける手段、
前記各設計書データのうちの画面項目設計書データであって、前記Webアプリケーションの各画面の項目に関し、画面項目IDの項目と値、HTML要素の項目と値、デフォルト値の項目と値、Name属性の項目と値、及び関連テーブルの物理名の項目と値のうち、前記画面項目IDのうちの第1画面項目IDの項目と値、前記HTML要素の項目とタイトルを示す値、及び前記デフォルト値の項目と値を関連付けて示し、前記画面項目IDのうちの第2画面項目IDの項目と値、前記HTML要素の項目とテキストエリアを示す値、前記Name属性の項目と検索対象の物理名の値、及び前記関連テーブルの物理名の項目と値、を関連付けて示すと共に、前記画面項目IDのうちの第3画面項目IDの項目と値、前記HTML要素の項目とインプットを示す値、及び前記Name属性の項目と実行を示す値、を関連付けて示す前記画面項目設計書データの入力を受け付ける手段、
前記各設計書データのうちの画面一覧設計書データであって、前記Webアプリケーションの各画面に関し、画面IDの項目と値、及び画面URLの項目と値、を関連付けて示す前記画面一覧設計書データの入力を受け付ける手段、
前記シナリオ名のいずれかの値と同一の文字列からなるテスト手順パターンIDと、テスト順番に沿って配列した複数のテスト手順名とを含むテスト手順パターン情報を前記テスト手順パターン記憶手段に書き込む手段、
前記テスト手順名、操作及びテストコード断片IDを関連付けて前記操作記憶手段に書き込む手段、
前記テストコード断片ID及び変数部分を含んでおり、前記変数部分としては、前記リクエスト発生画面URLの項目、前記遷移先画面URLの項目、前記HTML要素の項目とタイトルを示す値、前記HTML要素の項目とインプットを示す値、又は画面項目値の項目、を個別に含んでいる、複数のテストコード断片情報を前記テストコード断片記憶手段に書き込む手段、
前記入力を受け付けた画面遷移設計書データ内からシナリオ名の項目と値を抽出する手段、
前記抽出したシナリオ名の値を含み、当該シナリオ名の値と同一のシナリオ名の値が他に抽出されている場合には更に識別番号を含むオブジェクト名と、プロパティとを含む画面遷移オブジェクトであって、当該プロパティとしては、当該オブジェクト名内のシナリオ名の値に前記画面遷移設計書データ内で関連付けられたリクエスト発生画面URLの項目と値及び遷移先画面URLの項目と値と、当該リクエスト発生画面URLの値に一致する前記画面一覧設計書内の画面URLの値に関連付けられた画面IDの値からなるリクエスト発生画面IDの値と項目と、当該リクエスト発生画面IDの値をオブジェクト名としたリクエスト発生画面オブジェクトを示すリクエスト発生画面項目と、当該遷移先画面URLの値に一致する前記画面一覧設計書内の画面URLの値に関連付けられた画面IDの値からなる遷移先画面IDと、当該遷移先画面IDの値をオブジェクト名とした遷移先画面オブジェクトを示す遷移先画面項目とを含んでいる、前記画面遷移オブジェクトを生成する画面遷移オブジェクト生成手段、
前記画面遷移オブジェクトのリクエスト発生画面IDの値からなるオブジェクト名と、プロパティとを含むリクエスト発生画面オブジェクトであって、当該プロパティとしては、当該リクエスト発生画面IDの値に中間一致する前記画面項目設計書内の画面項目IDの値からなる画面項目を含んでいる、前記リクエスト発生画面オブジェクトを生成する発生画面オブジェクト生成手段、
前記リクエスト発生画面オブジェクトの画面項目IDの値からなるオブジェクト名と、プロパティとを含むリクエスト発生画面項目オブジェクトであって、当該プロパティとしては、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びデフォルト値の項目と値からなる第1発生画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値、Name属性の項目と値及び関連テーブルの物理名の項目と値からなる第2発生画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びName属性の項目と値からなる第3発生画面項目とのうちのいずれかの発生画面項目を含んでいる、前記リクエスト発生画面項目オブジェクトを個別に生成する発生画面項目オブジェクト生成手段、
前記画面遷移オブジェクトの遷移先画面IDの値からなるオブジェクト名と、プロパティとを含む遷移先画面オブジェクトであって、当該プロパティとしては、当該遷移先画面IDの値に中間一致する前記画面項目設計書内の画面項目IDの値からなる画面項目を含んでいる、前記遷移先画面オブジェクトを生成する遷移先画面オブジェクト生成手段、
前記遷移先画面オブジェクトの画面項目IDの値からなるオブジェクト名と、プロパティとを含む遷移先画面項目オブジェクトであって、当該プロパティとしては、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びデフォルト値の項目と値からなる第1遷移先画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値、Name属性の項目と値及び関連テーブルの物理名の項目と値からなる第2遷移先画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びName属性の項目と値からなる第3遷移先画面項目とのうちのいずれかの遷移先画面項目を含んでいる、前記遷移先画面項目オブジェクトを個別に生成する遷移先画面項目オブジェクト生成手段、
前記画面遷移オブジェクト、前記リクエスト発生画面オブジェクト、前記リクエスト発生画面項目オブジェクト、前記遷移先画面オブジェクト及び前記遷移先画面項目オブジェクトを含む設計情報オブジェクトを生成する設計情報オブジェクト生成手段、
前記設計情報オブジェクト内の画面遷移オブジェクトのオブジェクト名に含まれるシナリオ名の値に一致するテスト手順パターンIDを含むテスト手順パターン情報を前記テスト手順パターン記憶手段から読み出すテスト手順パターン読出手段、
当該読み出したテスト手順パターン情報内のテスト手順名を前記テスト順番に沿って読み出し、当該読み出したテスト手順名に一致する前記操作記憶手段内のテスト手順名に関連付けられたテストコード断片IDを当該操作記憶手段から読み出す手段、
当該読み出したテストコード断片IDに一致するテストコード断片IDを含むテストコード情報を前記テストコード断片記憶手段から読み出し、当該読み出したテストコード情報を前記テスト順番に沿って結合してテストコード雛形情報を作成する手段、
前記テストコード雛形情報内の各々の変数部分のうち、「前記リクエスト発生画面URLの項目」又は「前記遷移先画面URLの項目」を示す変数部分を前記設計情報オブジェクト内で当該変数部分に一致する項目の値に置換し、前記各々の変数部分のうち、「前記HTML要素の項目がタイトルを示すデフォルト値の値」を示す変数部分を前記設計情報オブジェクト内で当該変数部分と同一オブジェクト内のデフォルト値の値に置換し、前記各々の変数部分のうち、「前記HTML要素の項目がインプットを示すName属性の値」又は「物理名がidを示す値」を示す変数部分を前記設計情報オブジェクト内で当該変数部分と同一オブジェクト内のName属性の値に置換し、当該「前記物理名がidを示す値」を示す変数部分については更に当該同一オブジェクト内の物理名の値に一致する前記データベース内の物理名の値に関連付けられた検索結果の値を当該置換したName属性の値の次の行に挿入することにより、前記テストコード雛形情報から前記テストコードを生成する手段、
として機能させるためのテストコード生成プログラム。
【請求項2】
請求項1に記載のテストコード生成プログラムにおいて、
前記テストコード生成装置を、
前記各設計書データのうちの例外処理設計書データであって、前記Webアプリケーションの例外処理に関し、例外発生条件の項目と値、例外発生画面URLの項目と値、例外発生遷移先画面URLの項目と値、及び例外メッセージの項目と値を関連付けて示す前記例外処理設計書データの入力を受け付ける手段、
前記テスト手順パターン読出手段による読み出しよりも先に、前記設計情報オブジェクト内の画面遷移オブジェクトのオブジェクト名に含まれるシナリオ名の値に一致する前記画面遷移設計書データ内のシナリオ名の値に関連付けられたリクエスト発生画面URLの値及び遷移先画面URLの値と、前記例外処理設計書データ内の例外発生画面URLの値及び例外発生遷移先画面URLの値とが一致するか否かを判定する判定手段、
として更に機能させ、
前記テスト手順パターン読出手段は、前記判定手段による判定の結果が一致しない場合には、前記テスト手順パターン情報を読み出すことを特徴とするテストコード生成プログラム。
【請求項3】
検索対象の物理名の値と検索結果の値とを関連付けて記憶する関連テーブルとしてのデータベース部に接続され、Webアプリケーションにおける複数の設計書データからテスト自動化ツールで用いられるテストコードを生成するテストコード生成装置であって、
前記各設計書データのうちの画面遷移設計書データであって、前記Webアプリケーションの各画面の遷移に関し、画面遷移IDの項目と値、シナリオ名の項目と値、リクエスト発生画面URLの項目と値、及び遷移先画面URLの項目と値、を関連付けて示す前記画面遷移設計書データの入力を受け付ける手段と、
前記各設計書データのうちの画面項目設計書データであって、前記Webアプリケーションの各画面の項目に関し、画面項目IDの項目と値、HTML要素の項目と値、デフォルト値の項目と値、Name属性の項目と値、及び関連テーブルの物理名の項目と値のうち、前記画面項目IDのうちの第1画面項目IDの項目と値、前記HTML要素の項目とタイトルを示す値、及び前記デフォルト値の項目と値を関連付けて示し、前記画面項目IDのうちの第2画面項目IDの項目と値、前記HTML要素の項目とテキストエリアを示す値、前記Name属性の項目と検索対象の物理名の値、及び前記関連テーブルの物理名の項目と値、を関連付けて示すと共に、前記画面項目IDのうちの第3画面項目IDの項目と値、前記HTML要素の項目とインプットを示す値、及び前記Name属性の項目と実行を示す値、を関連付けて示す前記画面項目設計書データの入力を受け付ける手段と、
前記各設計書データのうちの画面一覧設計書データであって、前記Webアプリケーションの各画面に関し、画面IDの項目と値、及び画面URLの項目と値、を関連付けて示す前記画面一覧設計書データの入力を受け付ける手段と、
前記シナリオ名のいずれかの値と同一の文字列からなるテスト手順パターンIDと、テスト順番に沿って配列した複数のテスト手順名とを含むテスト手順パターン情報を記憶するテスト手順パターン記憶手段と、
前記テスト手順名、操作及びテストコード断片IDを関連付けて記憶する操作記憶手段と、
前記テストコード断片ID及び変数部分を含んでおり、前記変数部分としては、前記リクエスト発生画面URLの項目、前記遷移先画面URLの項目、前記HTML要素の項目とタイトルを示す値、前記HTML要素の項目とインプットを示す値、又は画面項目値の項目、を個別に含んでいる、複数のテストコード断片情報を記憶するテストコード断片記憶手段と、
前記入力を受け付けた画面遷移設計書データ内からシナリオ名の項目と値を抽出する手段と、
前記抽出したシナリオ名の値を含み、当該シナリオ名の値と同一のシナリオ名の値が他に抽出されている場合には更に識別番号を含むオブジェクト名と、プロパティとを含む画面遷移オブジェクトであって、当該プロパティとしては、当該オブジェクト名内のシナリオ名の値に前記画面遷移設計書データ内で関連付けられたリクエスト発生画面URLの項目と値及び遷移先画面URLの項目と値と、当該リクエスト発生画面URLの値に一致する前記画面一覧設計書内の画面URLの値に関連付けられた画面IDの値からなるリクエスト発生画面IDの値と項目と、当該リクエスト発生画面IDの値をオブジェクト名としたリクエスト発生画面オブジェクトを示すリクエスト発生画面項目と、当該遷移先画面URLの値に一致する前記画面一覧設計書内の画面URLの値に関連付けられた画面IDの値からなる遷移先画面IDと、当該遷移先画面IDの値をオブジェクト名とした遷移先画面オブジェクトを示す遷移先画面項目とを含んでいる、前記画面遷移オブジェクトを生成する画面遷移オブジェクト生成手段と、
前記画面遷移オブジェクトのリクエスト発生画面IDの値からなるオブジェクト名と、プロパティとを含むリクエスト発生画面オブジェクトであって、当該プロパティとしては、当該リクエスト発生画面IDの値に中間一致する前記画面項目設計書内の画面項目IDの値からなる画面項目を含んでいる、前記リクエスト発生画面オブジェクトを生成する発生画面オブジェクト生成手段と、
前記リクエスト発生画面オブジェクトの画面項目IDの値からなるオブジェクト名と、プロパティとを含むリクエスト発生画面項目オブジェクトであって、当該プロパティとしては、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びデフォルト値の項目と値からなる第1発生画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値、Name属性の項目と値及び関連テーブルの物理名の項目と値からなる第2発生画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びName属性の項目と値からなる第3発生画面項目とのうちのいずれかの発生画面項目を含んでいる、前記リクエスト発生画面項目オブジェクトを個別に生成する発生画面項目オブジェクト生成手段と、
前記画面遷移オブジェクトの遷移先画面IDの値からなるオブジェクト名と、プロパティとを含む遷移先画面オブジェクトであって、当該プロパティとしては、当該遷移先画面IDの値に中間一致する前記画面項目設計書内の画面項目IDの値からなる画面項目を含んでいる、前記遷移先画面オブジェクトを生成する遷移先画面オブジェクト生成手段と、
前記遷移先画面オブジェクトの画面項目IDの値からなるオブジェクト名と、プロパティとを含む遷移先画面項目オブジェクトであって、当該プロパティとしては、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びデフォルト値の項目と値からなる第1遷移先画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値、Name属性の項目と値及び関連テーブルの物理名の項目と値からなる第2遷移先画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びName属性の項目と値からなる第3遷移先画面項目とのうちのいずれかの遷移先画面項目を含んでいる、前記遷移先画面項目オブジェクトを個別に生成する遷移先画面項目オブジェクト生成手段と、
前記画面遷移オブジェクト、前記リクエスト発生画面オブジェクト、前記リクエスト発生画面項目オブジェクト、前記遷移先画面オブジェクト及び前記遷移先画面項目オブジェクトを含む設計情報オブジェクトを生成する設計情報オブジェクト生成手段と、
前記設計情報オブジェクト内の画面遷移オブジェクトのオブジェクト名に含まれるシナリオ名の値に一致するテスト手順パターンIDを含むテスト手順パターン情報を前記テスト手順パターン記憶手段から読み出すテスト手順パターン読出手段と、
当該読み出したテスト手順パターン情報内のテスト手順名を前記テスト順番に沿って読み出し、当該読み出したテスト手順名に一致する前記操作記憶手段内のテスト手順名に関連付けられたテストコード断片IDを当該操作記憶手段から読み出す手段と、
当該読み出したテストコード断片IDに一致するテストコード断片IDを含むテストコード情報を前記テストコード断片記憶手段から読み出し、当該読み出したテストコード情報を前記テスト順番に沿って結合してテストコード雛形情報を作成する手段と、
前記テストコード雛形情報内の各々の変数部分のうち、「前記リクエスト発生画面URLの項目」又は「前記遷移先画面URLの項目」を示す変数部分を前記設計情報オブジェクト内で当該変数部分に一致する項目の値に置換し、前記各々の変数部分のうち、「前記HTML要素の項目がタイトルを示すデフォルト値の値」を示す変数部分を前記設計情報オブジェクト内で当該変数部分と同一オブジェクト内のデフォルト値の値に置換し、前記各々の変数部分のうち、「前記HTML要素の項目がインプットを示すName属性の値」又は「物理名がidを示す値」を示す変数部分を前記設計情報オブジェクト内で当該変数部分と同一オブジェクト内のName属性の値に置換し、当該「前記物理名がidを示す値」を示す変数部分については更に当該同一オブジェクト内の物理名の値に一致する前記データベース内の物理名の値に関連付けられた検索結果の値を当該置換したName属性の値の次の行に挿入することにより、前記テストコード雛形情報から前記テストコードを生成する手段と、
を備えたことを特徴とするテストコード生成装置。
【請求項1】
検索対象の物理名の値と検索結果の値とを関連付けて記憶する関連テーブルとしてのデータベース部に接続され、且つテスト手順パターン記憶手段、操作記憶手段及びテストコード断片記憶手段を備えるとともに、Webアプリケーションにおける複数の設計書データからテスト自動化ツールで用いられるテストコードを生成するテストコード生成装置に用いられるテストコード生成プログラムであって、
前期テストコード生成装置を、
前記各設計書データのうちの画面遷移設計書データであって、前記Webアプリケーションの各画面の遷移に関し、画面遷移IDの項目と値、シナリオ名の項目と値、リクエスト発生画面URLの項目と値、及び遷移先画面URLの項目と値、を関連付けて示す前記画面遷移設計書データの入力を受け付ける手段、
前記各設計書データのうちの画面項目設計書データであって、前記Webアプリケーションの各画面の項目に関し、画面項目IDの項目と値、HTML要素の項目と値、デフォルト値の項目と値、Name属性の項目と値、及び関連テーブルの物理名の項目と値のうち、前記画面項目IDのうちの第1画面項目IDの項目と値、前記HTML要素の項目とタイトルを示す値、及び前記デフォルト値の項目と値を関連付けて示し、前記画面項目IDのうちの第2画面項目IDの項目と値、前記HTML要素の項目とテキストエリアを示す値、前記Name属性の項目と検索対象の物理名の値、及び前記関連テーブルの物理名の項目と値、を関連付けて示すと共に、前記画面項目IDのうちの第3画面項目IDの項目と値、前記HTML要素の項目とインプットを示す値、及び前記Name属性の項目と実行を示す値、を関連付けて示す前記画面項目設計書データの入力を受け付ける手段、
前記各設計書データのうちの画面一覧設計書データであって、前記Webアプリケーションの各画面に関し、画面IDの項目と値、及び画面URLの項目と値、を関連付けて示す前記画面一覧設計書データの入力を受け付ける手段、
前記シナリオ名のいずれかの値と同一の文字列からなるテスト手順パターンIDと、テスト順番に沿って配列した複数のテスト手順名とを含むテスト手順パターン情報を前記テスト手順パターン記憶手段に書き込む手段、
前記テスト手順名、操作及びテストコード断片IDを関連付けて前記操作記憶手段に書き込む手段、
前記テストコード断片ID及び変数部分を含んでおり、前記変数部分としては、前記リクエスト発生画面URLの項目、前記遷移先画面URLの項目、前記HTML要素の項目とタイトルを示す値、前記HTML要素の項目とインプットを示す値、又は画面項目値の項目、を個別に含んでいる、複数のテストコード断片情報を前記テストコード断片記憶手段に書き込む手段、
前記入力を受け付けた画面遷移設計書データ内からシナリオ名の項目と値を抽出する手段、
前記抽出したシナリオ名の値を含み、当該シナリオ名の値と同一のシナリオ名の値が他に抽出されている場合には更に識別番号を含むオブジェクト名と、プロパティとを含む画面遷移オブジェクトであって、当該プロパティとしては、当該オブジェクト名内のシナリオ名の値に前記画面遷移設計書データ内で関連付けられたリクエスト発生画面URLの項目と値及び遷移先画面URLの項目と値と、当該リクエスト発生画面URLの値に一致する前記画面一覧設計書内の画面URLの値に関連付けられた画面IDの値からなるリクエスト発生画面IDの値と項目と、当該リクエスト発生画面IDの値をオブジェクト名としたリクエスト発生画面オブジェクトを示すリクエスト発生画面項目と、当該遷移先画面URLの値に一致する前記画面一覧設計書内の画面URLの値に関連付けられた画面IDの値からなる遷移先画面IDと、当該遷移先画面IDの値をオブジェクト名とした遷移先画面オブジェクトを示す遷移先画面項目とを含んでいる、前記画面遷移オブジェクトを生成する画面遷移オブジェクト生成手段、
前記画面遷移オブジェクトのリクエスト発生画面IDの値からなるオブジェクト名と、プロパティとを含むリクエスト発生画面オブジェクトであって、当該プロパティとしては、当該リクエスト発生画面IDの値に中間一致する前記画面項目設計書内の画面項目IDの値からなる画面項目を含んでいる、前記リクエスト発生画面オブジェクトを生成する発生画面オブジェクト生成手段、
前記リクエスト発生画面オブジェクトの画面項目IDの値からなるオブジェクト名と、プロパティとを含むリクエスト発生画面項目オブジェクトであって、当該プロパティとしては、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びデフォルト値の項目と値からなる第1発生画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値、Name属性の項目と値及び関連テーブルの物理名の項目と値からなる第2発生画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びName属性の項目と値からなる第3発生画面項目とのうちのいずれかの発生画面項目を含んでいる、前記リクエスト発生画面項目オブジェクトを個別に生成する発生画面項目オブジェクト生成手段、
前記画面遷移オブジェクトの遷移先画面IDの値からなるオブジェクト名と、プロパティとを含む遷移先画面オブジェクトであって、当該プロパティとしては、当該遷移先画面IDの値に中間一致する前記画面項目設計書内の画面項目IDの値からなる画面項目を含んでいる、前記遷移先画面オブジェクトを生成する遷移先画面オブジェクト生成手段、
前記遷移先画面オブジェクトの画面項目IDの値からなるオブジェクト名と、プロパティとを含む遷移先画面項目オブジェクトであって、当該プロパティとしては、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びデフォルト値の項目と値からなる第1遷移先画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値、Name属性の項目と値及び関連テーブルの物理名の項目と値からなる第2遷移先画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びName属性の項目と値からなる第3遷移先画面項目とのうちのいずれかの遷移先画面項目を含んでいる、前記遷移先画面項目オブジェクトを個別に生成する遷移先画面項目オブジェクト生成手段、
前記画面遷移オブジェクト、前記リクエスト発生画面オブジェクト、前記リクエスト発生画面項目オブジェクト、前記遷移先画面オブジェクト及び前記遷移先画面項目オブジェクトを含む設計情報オブジェクトを生成する設計情報オブジェクト生成手段、
前記設計情報オブジェクト内の画面遷移オブジェクトのオブジェクト名に含まれるシナリオ名の値に一致するテスト手順パターンIDを含むテスト手順パターン情報を前記テスト手順パターン記憶手段から読み出すテスト手順パターン読出手段、
当該読み出したテスト手順パターン情報内のテスト手順名を前記テスト順番に沿って読み出し、当該読み出したテスト手順名に一致する前記操作記憶手段内のテスト手順名に関連付けられたテストコード断片IDを当該操作記憶手段から読み出す手段、
当該読み出したテストコード断片IDに一致するテストコード断片IDを含むテストコード情報を前記テストコード断片記憶手段から読み出し、当該読み出したテストコード情報を前記テスト順番に沿って結合してテストコード雛形情報を作成する手段、
前記テストコード雛形情報内の各々の変数部分のうち、「前記リクエスト発生画面URLの項目」又は「前記遷移先画面URLの項目」を示す変数部分を前記設計情報オブジェクト内で当該変数部分に一致する項目の値に置換し、前記各々の変数部分のうち、「前記HTML要素の項目がタイトルを示すデフォルト値の値」を示す変数部分を前記設計情報オブジェクト内で当該変数部分と同一オブジェクト内のデフォルト値の値に置換し、前記各々の変数部分のうち、「前記HTML要素の項目がインプットを示すName属性の値」又は「物理名がidを示す値」を示す変数部分を前記設計情報オブジェクト内で当該変数部分と同一オブジェクト内のName属性の値に置換し、当該「前記物理名がidを示す値」を示す変数部分については更に当該同一オブジェクト内の物理名の値に一致する前記データベース内の物理名の値に関連付けられた検索結果の値を当該置換したName属性の値の次の行に挿入することにより、前記テストコード雛形情報から前記テストコードを生成する手段、
として機能させるためのテストコード生成プログラム。
【請求項2】
請求項1に記載のテストコード生成プログラムにおいて、
前記テストコード生成装置を、
前記各設計書データのうちの例外処理設計書データであって、前記Webアプリケーションの例外処理に関し、例外発生条件の項目と値、例外発生画面URLの項目と値、例外発生遷移先画面URLの項目と値、及び例外メッセージの項目と値を関連付けて示す前記例外処理設計書データの入力を受け付ける手段、
前記テスト手順パターン読出手段による読み出しよりも先に、前記設計情報オブジェクト内の画面遷移オブジェクトのオブジェクト名に含まれるシナリオ名の値に一致する前記画面遷移設計書データ内のシナリオ名の値に関連付けられたリクエスト発生画面URLの値及び遷移先画面URLの値と、前記例外処理設計書データ内の例外発生画面URLの値及び例外発生遷移先画面URLの値とが一致するか否かを判定する判定手段、
として更に機能させ、
前記テスト手順パターン読出手段は、前記判定手段による判定の結果が一致しない場合には、前記テスト手順パターン情報を読み出すことを特徴とするテストコード生成プログラム。
【請求項3】
検索対象の物理名の値と検索結果の値とを関連付けて記憶する関連テーブルとしてのデータベース部に接続され、Webアプリケーションにおける複数の設計書データからテスト自動化ツールで用いられるテストコードを生成するテストコード生成装置であって、
前記各設計書データのうちの画面遷移設計書データであって、前記Webアプリケーションの各画面の遷移に関し、画面遷移IDの項目と値、シナリオ名の項目と値、リクエスト発生画面URLの項目と値、及び遷移先画面URLの項目と値、を関連付けて示す前記画面遷移設計書データの入力を受け付ける手段と、
前記各設計書データのうちの画面項目設計書データであって、前記Webアプリケーションの各画面の項目に関し、画面項目IDの項目と値、HTML要素の項目と値、デフォルト値の項目と値、Name属性の項目と値、及び関連テーブルの物理名の項目と値のうち、前記画面項目IDのうちの第1画面項目IDの項目と値、前記HTML要素の項目とタイトルを示す値、及び前記デフォルト値の項目と値を関連付けて示し、前記画面項目IDのうちの第2画面項目IDの項目と値、前記HTML要素の項目とテキストエリアを示す値、前記Name属性の項目と検索対象の物理名の値、及び前記関連テーブルの物理名の項目と値、を関連付けて示すと共に、前記画面項目IDのうちの第3画面項目IDの項目と値、前記HTML要素の項目とインプットを示す値、及び前記Name属性の項目と実行を示す値、を関連付けて示す前記画面項目設計書データの入力を受け付ける手段と、
前記各設計書データのうちの画面一覧設計書データであって、前記Webアプリケーションの各画面に関し、画面IDの項目と値、及び画面URLの項目と値、を関連付けて示す前記画面一覧設計書データの入力を受け付ける手段と、
前記シナリオ名のいずれかの値と同一の文字列からなるテスト手順パターンIDと、テスト順番に沿って配列した複数のテスト手順名とを含むテスト手順パターン情報を記憶するテスト手順パターン記憶手段と、
前記テスト手順名、操作及びテストコード断片IDを関連付けて記憶する操作記憶手段と、
前記テストコード断片ID及び変数部分を含んでおり、前記変数部分としては、前記リクエスト発生画面URLの項目、前記遷移先画面URLの項目、前記HTML要素の項目とタイトルを示す値、前記HTML要素の項目とインプットを示す値、又は画面項目値の項目、を個別に含んでいる、複数のテストコード断片情報を記憶するテストコード断片記憶手段と、
前記入力を受け付けた画面遷移設計書データ内からシナリオ名の項目と値を抽出する手段と、
前記抽出したシナリオ名の値を含み、当該シナリオ名の値と同一のシナリオ名の値が他に抽出されている場合には更に識別番号を含むオブジェクト名と、プロパティとを含む画面遷移オブジェクトであって、当該プロパティとしては、当該オブジェクト名内のシナリオ名の値に前記画面遷移設計書データ内で関連付けられたリクエスト発生画面URLの項目と値及び遷移先画面URLの項目と値と、当該リクエスト発生画面URLの値に一致する前記画面一覧設計書内の画面URLの値に関連付けられた画面IDの値からなるリクエスト発生画面IDの値と項目と、当該リクエスト発生画面IDの値をオブジェクト名としたリクエスト発生画面オブジェクトを示すリクエスト発生画面項目と、当該遷移先画面URLの値に一致する前記画面一覧設計書内の画面URLの値に関連付けられた画面IDの値からなる遷移先画面IDと、当該遷移先画面IDの値をオブジェクト名とした遷移先画面オブジェクトを示す遷移先画面項目とを含んでいる、前記画面遷移オブジェクトを生成する画面遷移オブジェクト生成手段と、
前記画面遷移オブジェクトのリクエスト発生画面IDの値からなるオブジェクト名と、プロパティとを含むリクエスト発生画面オブジェクトであって、当該プロパティとしては、当該リクエスト発生画面IDの値に中間一致する前記画面項目設計書内の画面項目IDの値からなる画面項目を含んでいる、前記リクエスト発生画面オブジェクトを生成する発生画面オブジェクト生成手段と、
前記リクエスト発生画面オブジェクトの画面項目IDの値からなるオブジェクト名と、プロパティとを含むリクエスト発生画面項目オブジェクトであって、当該プロパティとしては、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びデフォルト値の項目と値からなる第1発生画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値、Name属性の項目と値及び関連テーブルの物理名の項目と値からなる第2発生画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びName属性の項目と値からなる第3発生画面項目とのうちのいずれかの発生画面項目を含んでいる、前記リクエスト発生画面項目オブジェクトを個別に生成する発生画面項目オブジェクト生成手段と、
前記画面遷移オブジェクトの遷移先画面IDの値からなるオブジェクト名と、プロパティとを含む遷移先画面オブジェクトであって、当該プロパティとしては、当該遷移先画面IDの値に中間一致する前記画面項目設計書内の画面項目IDの値からなる画面項目を含んでいる、前記遷移先画面オブジェクトを生成する遷移先画面オブジェクト生成手段と、
前記遷移先画面オブジェクトの画面項目IDの値からなるオブジェクト名と、プロパティとを含む遷移先画面項目オブジェクトであって、当該プロパティとしては、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びデフォルト値の項目と値からなる第1遷移先画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値、Name属性の項目と値及び関連テーブルの物理名の項目と値からなる第2遷移先画面項目と、当該画面項目IDの値に前記画面項目設計書内で関連付けられたHTML要素の項目と値及びName属性の項目と値からなる第3遷移先画面項目とのうちのいずれかの遷移先画面項目を含んでいる、前記遷移先画面項目オブジェクトを個別に生成する遷移先画面項目オブジェクト生成手段と、
前記画面遷移オブジェクト、前記リクエスト発生画面オブジェクト、前記リクエスト発生画面項目オブジェクト、前記遷移先画面オブジェクト及び前記遷移先画面項目オブジェクトを含む設計情報オブジェクトを生成する設計情報オブジェクト生成手段と、
前記設計情報オブジェクト内の画面遷移オブジェクトのオブジェクト名に含まれるシナリオ名の値に一致するテスト手順パターンIDを含むテスト手順パターン情報を前記テスト手順パターン記憶手段から読み出すテスト手順パターン読出手段と、
当該読み出したテスト手順パターン情報内のテスト手順名を前記テスト順番に沿って読み出し、当該読み出したテスト手順名に一致する前記操作記憶手段内のテスト手順名に関連付けられたテストコード断片IDを当該操作記憶手段から読み出す手段と、
当該読み出したテストコード断片IDに一致するテストコード断片IDを含むテストコード情報を前記テストコード断片記憶手段から読み出し、当該読み出したテストコード情報を前記テスト順番に沿って結合してテストコード雛形情報を作成する手段と、
前記テストコード雛形情報内の各々の変数部分のうち、「前記リクエスト発生画面URLの項目」又は「前記遷移先画面URLの項目」を示す変数部分を前記設計情報オブジェクト内で当該変数部分に一致する項目の値に置換し、前記各々の変数部分のうち、「前記HTML要素の項目がタイトルを示すデフォルト値の値」を示す変数部分を前記設計情報オブジェクト内で当該変数部分と同一オブジェクト内のデフォルト値の値に置換し、前記各々の変数部分のうち、「前記HTML要素の項目がインプットを示すName属性の値」又は「物理名がidを示す値」を示す変数部分を前記設計情報オブジェクト内で当該変数部分と同一オブジェクト内のName属性の値に置換し、当該「前記物理名がidを示す値」を示す変数部分については更に当該同一オブジェクト内の物理名の値に一致する前記データベース内の物理名の値に関連付けられた検索結果の値を当該置換したName属性の値の次の行に挿入することにより、前記テストコード雛形情報から前記テストコードを生成する手段と、
を備えたことを特徴とするテストコード生成装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2012−37938(P2012−37938A)
【公開日】平成24年2月23日(2012.2.23)
【国際特許分類】
【出願番号】特願2010−174804(P2010−174804)
【出願日】平成22年8月3日(2010.8.3)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】
【公開日】平成24年2月23日(2012.2.23)
【国際特許分類】
【出願日】平成22年8月3日(2010.8.3)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】
[ Back to top ]