(57)【特許請求の範囲】
【請求項１】
検索対象の物理名の値と検索結果の値とを関連付けて記憶する関連テーブルとしてのデータベース部に接続され、且つテスト手順パターン記憶手段、操作記憶手段及びテストコード断片記憶手段を備えるとともに、Ｗｅｂアプリケーションにおける複数の設計書データからテスト自動化ツールで用いられるテストコードを生成するテストコード生成装置に用いられるテストコード生成プログラムであって、
前期テストコード生成装置を、
前記各設計書データのうちの画面遷移設計書データであって、前記Ｗｅｂアプリケーションの各画面の遷移に関し、画面遷移ＩＤの項目と値、シナリオ名の項目と値、リクエスト発生画面ＵＲＬの項目と値、及び遷移先画面ＵＲＬの項目と値、を関連付けて示す前記画面遷移設計書データの入力を受け付ける手段、
前記各設計書データのうちの画面項目設計書データであって、前記Ｗｅｂアプリケーションの各画面の項目に関し、画面項目ＩＤの項目と値、ＨＴＭＬ要素の項目と値、デフォルト値の項目と値、Name属性の項目と値、及び関連テーブルの物理名の項目と値のうち、前記画面項目ＩＤのうちの第１画面項目ＩＤの項目と値、前記ＨＴＭＬ要素の項目とタイトルを示す値、及び前記デフォルト値の項目と値を関連付けて示し、前記画面項目ＩＤのうちの第２画面項目ＩＤの項目と値、前記ＨＴＭＬ要素の項目とテキストエリアを示す値、前記Name属性の項目と検索対象の物理名の値、及び前記関連テーブルの物理名の項目と値、を関連付けて示すと共に、前記画面項目ＩＤのうちの第３画面項目ＩＤの項目と値、前記ＨＴＭＬ要素の項目とインプットを示す値、及び前記Name属性の項目と実行を示す値、を関連付けて示す前記画面項目設計書データの入力を受け付ける手段、
前記各設計書データのうちの画面一覧設計書データであって、前記Ｗｅｂアプリケーションの各画面に関し、画面ＩＤの項目と値、及び画面ＵＲＬの項目と値、を関連付けて示す前記画面一覧設計書データの入力を受け付ける手段、
前記シナリオ名のいずれかの値と同一の文字列からなるテスト手順パターンＩＤと、テスト順番に沿って配列した複数のテスト手順名とを含むテスト手順パターン情報を前記テスト手順パターン記憶手段に書き込む手段、
前記テスト手順名、操作及びテストコード断片ＩＤを関連付けて前記操作記憶手段に書き込む手段、
前記テストコード断片ＩＤ及び変数部分を含んでおり、前記変数部分としては、前記リクエスト発生画面ＵＲＬの項目、前記遷移先画面ＵＲＬの項目、前記ＨＴＭＬ要素の項目とタイトルを示す値、前記ＨＴＭＬ要素の項目とインプットを示す値、又は画面項目値の項目、を個別に含んでいる、複数のテストコード断片情報を前記テストコード断片記憶手段に書き込む手段、
前記入力を受け付けた画面遷移設計書データ内からシナリオ名の項目と値を抽出する手段、
前記抽出したシナリオ名の値を含み、当該シナリオ名の値と同一のシナリオ名の値が他に抽出されている場合には更に識別番号を含むオブジェクト名と、プロパティとを含む画面遷移オブジェクトであって、当該プロパティとしては、当該オブジェクト名内のシナリオ名の値に前記画面遷移設計書データ内で関連付けられたリクエスト発生画面ＵＲＬの項目と値及び遷移先画面ＵＲＬの項目と値と、当該リクエスト発生画面ＵＲＬの値に一致する前記画面一覧設計書内の画面ＵＲＬの値に関連付けられた画面ＩＤの値からなるリクエスト発生画面ＩＤの値と項目と、当該リクエスト発生画面ＩＤの値をオブジェクト名としたリクエスト発生画面オブジェクトを示すリクエスト発生画面項目と、当該遷移先画面ＵＲＬの値に一致する前記画面一覧設計書内の画面ＵＲＬの値に関連付けられた画面ＩＤの値からなる遷移先画面ＩＤと、当該遷移先画面ＩＤの値をオブジェクト名とした遷移先画面オブジェクトを示す遷移先画面項目とを含んでいる、前記画面遷移オブジェクトを生成する画面遷移オブジェクト生成手段、
前記画面遷移オブジェクトのリクエスト発生画面ＩＤの値からなるオブジェクト名と、プロパティとを含むリクエスト発生画面オブジェクトであって、当該プロパティとしては、当該リクエスト発生画面ＩＤの値に中間一致する前記画面項目設計書内の画面項目ＩＤの値からなる画面項目を含んでいる、前記リクエスト発生画面オブジェクトを生成する発生画面オブジェクト生成手段、
前記リクエスト発生画面オブジェクトの画面項目ＩＤの値からなるオブジェクト名と、プロパティとを含むリクエスト発生画面項目オブジェクトであって、当該プロパティとしては、当該画面項目ＩＤの値に前記画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値及びデフォルト値の項目と値からなる第１発生画面項目と、当該画面項目ＩＤの値に前記画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値、Name属性の項目と値及び関連テーブルの物理名の項目と値からなる第２発生画面項目と、当該画面項目ＩＤの値に前記画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値及びName属性の項目と値からなる第３発生画面項目とのうちのいずれかの発生画面項目を含んでいる、前記リクエスト発生画面項目オブジェクトを個別に生成する発生画面項目オブジェクト生成手段、
前記画面遷移オブジェクトの遷移先画面ＩＤの値からなるオブジェクト名と、プロパティとを含む遷移先画面オブジェクトであって、当該プロパティとしては、当該遷移先画面ＩＤの値に中間一致する前記画面項目設計書内の画面項目ＩＤの値からなる画面項目を含んでいる、前記遷移先画面オブジェクトを生成する遷移先画面オブジェクト生成手段、
前記遷移先画面オブジェクトの画面項目ＩＤの値からなるオブジェクト名と、プロパティとを含む遷移先画面項目オブジェクトであって、当該プロパティとしては、当該画面項目ＩＤの値に前記画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値及びデフォルト値の項目と値からなる第１遷移先画面項目と、当該画面項目ＩＤの値に前記画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値、Name属性の項目と値及び関連テーブルの物理名の項目と値からなる第２遷移先画面項目と、当該画面項目ＩＤの値に前記画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値及びName属性の項目と値からなる第３遷移先画面項目とのうちのいずれかの遷移先画面項目を含んでいる、前記遷移先画面項目オブジェクトを個別に生成する遷移先画面項目オブジェクト生成手段、
前記画面遷移オブジェクト、前記リクエスト発生画面オブジェクト、前記リクエスト発生画面項目オブジェクト、前記遷移先画面オブジェクト及び前記遷移先画面項目オブジェクトを含む設計情報オブジェクトを生成する設計情報オブジェクト生成手段、
前記設計情報オブジェクト内の画面遷移オブジェクトのオブジェクト名に含まれるシナリオ名の値に一致するテスト手順パターンＩＤを含むテスト手順パターン情報を前記テスト手順パターン記憶手段から読み出すテスト手順パターン読出手段、
当該読み出したテスト手順パターン情報内のテスト手順名を前記テスト順番に沿って読み出し、当該読み出したテスト手順名に一致する前記操作記憶手段内のテスト手順名に関連付けられたテストコード断片ＩＤを当該操作記憶手段から読み出す手段、
当該読み出したテストコード断片ＩＤに一致するテストコード断片ＩＤを含むテストコード情報を前記テストコード断片記憶手段から読み出し、当該読み出したテストコード情報を前記テスト順番に沿って結合してテストコード雛形情報を作成する手段、
前記テストコード雛形情報内の各々の変数部分のうち、「前記リクエスト発生画面ＵＲＬの項目」又は「前記遷移先画面ＵＲＬの項目」を示す変数部分を前記設計情報オブジェクト内で当該変数部分に一致する項目の値に置換し、前記各々の変数部分のうち、「前記ＨＴＭＬ要素の項目がタイトルを示すデフォルト値の値」を示す変数部分を前記設計情報オブジェクト内で当該変数部分と同一オブジェクト内のデフォルト値の値に置換し、前記各々の変数部分のうち、「前記ＨＴＭＬ要素の項目がインプットを示すName属性の値」又は「物理名がidを示す値」を示す変数部分を前記設計情報オブジェクト内で当該変数部分と同一オブジェクト内のName属性の値に置換し、当該「前記物理名がidを示す値」を示す変数部分については更に当該同一オブジェクト内の物理名の値に一致する前記データベース内の物理名の値に関連付けられた検索結果の値を当該置換したName属性の値の次の行に挿入することにより、前記テストコード雛形情報から前記テストコードを生成する手段、
として機能させるためのテストコード生成プログラム。
【請求項２】
請求項１に記載のテストコード生成プログラムにおいて、
前記テストコード生成装置を、
前記各設計書データのうちの例外処理設計書データであって、前記Ｗｅｂアプリケーションの例外処理に関し、例外発生条件の項目と値、例外発生画面ＵＲＬの項目と値、例外発生遷移先画面ＵＲＬの項目と値、及び例外メッセージの項目と値を関連付けて示す前記例外処理設計書データの入力を受け付ける手段、
前記テスト手順パターン読出手段による読み出しよりも先に、前記設計情報オブジェクト内の画面遷移オブジェクトのオブジェクト名に含まれるシナリオ名の値に一致する前記画面遷移設計書データ内のシナリオ名の値に関連付けられたリクエスト発生画面ＵＲＬの値及び遷移先画面ＵＲＬの値と、前記例外処理設計書データ内の例外発生画面ＵＲＬの値及び例外発生遷移先画面ＵＲＬの値とが一致するか否かを判定する判定手段、
として更に機能させ、
前記テスト手順パターン読出手段は、前記判定手段による判定の結果が一致しない場合には、前記テスト手順パターン情報を読み出すことを特徴とするテストコード生成プログラム。
【請求項３】
検索対象の物理名の値と検索結果の値とを関連付けて記憶する関連テーブルとしてのデータベース部に接続され、Ｗｅｂアプリケーションにおける複数の設計書データからテスト自動化ツールで用いられるテストコードを生成するテストコード生成装置であって、
前記各設計書データのうちの画面遷移設計書データであって、前記Ｗｅｂアプリケーションの各画面の遷移に関し、画面遷移ＩＤの項目と値、シナリオ名の項目と値、リクエスト発生画面ＵＲＬの項目と値、及び遷移先画面ＵＲＬの項目と値、を関連付けて示す前記画面遷移設計書データの入力を受け付ける手段と、
前記各設計書データのうちの画面項目設計書データであって、前記Ｗｅｂアプリケーションの各画面の項目に関し、画面項目ＩＤの項目と値、ＨＴＭＬ要素の項目と値、デフォルト値の項目と値、Name属性の項目と値、及び関連テーブルの物理名の項目と値のうち、前記画面項目ＩＤのうちの第１画面項目ＩＤの項目と値、前記ＨＴＭＬ要素の項目とタイトルを示す値、及び前記デフォルト値の項目と値を関連付けて示し、前記画面項目ＩＤのうちの第２画面項目ＩＤの項目と値、前記ＨＴＭＬ要素の項目とテキストエリアを示す値、前記Name属性の項目と検索対象の物理名の値、及び前記関連テーブルの物理名の項目と値、を関連付けて示すと共に、前記画面項目ＩＤのうちの第３画面項目ＩＤの項目と値、前記ＨＴＭＬ要素の項目とインプットを示す値、及び前記Name属性の項目と実行を示す値、を関連付けて示す前記画面項目設計書データの入力を受け付ける手段と、
前記各設計書データのうちの画面一覧設計書データであって、前記Ｗｅｂアプリケーションの各画面に関し、画面ＩＤの項目と値、及び画面ＵＲＬの項目と値、を関連付けて示す前記画面一覧設計書データの入力を受け付ける手段と、
前記シナリオ名のいずれかの値と同一の文字列からなるテスト手順パターンＩＤと、テスト順番に沿って配列した複数のテスト手順名とを含むテスト手順パターン情報を記憶するテスト手順パターン記憶手段と、
前記テスト手順名、操作及びテストコード断片ＩＤを関連付けて記憶する操作記憶手段と、
前記テストコード断片ＩＤ及び変数部分を含んでおり、前記変数部分としては、前記リクエスト発生画面ＵＲＬの項目、前記遷移先画面ＵＲＬの項目、前記ＨＴＭＬ要素の項目とタイトルを示す値、前記ＨＴＭＬ要素の項目とインプットを示す値、又は画面項目値の項目、を個別に含んでいる、複数のテストコード断片情報を記憶するテストコード断片記憶手段と、
前記入力を受け付けた画面遷移設計書データ内からシナリオ名の項目と値を抽出する手段と、
前記抽出したシナリオ名の値を含み、当該シナリオ名の値と同一のシナリオ名の値が他に抽出されている場合には更に識別番号を含むオブジェクト名と、プロパティとを含む画面遷移オブジェクトであって、当該プロパティとしては、当該オブジェクト名内のシナリオ名の値に前記画面遷移設計書データ内で関連付けられたリクエスト発生画面ＵＲＬの項目と値及び遷移先画面ＵＲＬの項目と値と、当該リクエスト発生画面ＵＲＬの値に一致する前記画面一覧設計書内の画面ＵＲＬの値に関連付けられた画面ＩＤの値からなるリクエスト発生画面ＩＤの値と項目と、当該リクエスト発生画面ＩＤの値をオブジェクト名としたリクエスト発生画面オブジェクトを示すリクエスト発生画面項目と、当該遷移先画面ＵＲＬの値に一致する前記画面一覧設計書内の画面ＵＲＬの値に関連付けられた画面ＩＤの値からなる遷移先画面ＩＤと、当該遷移先画面ＩＤの値をオブジェクト名とした遷移先画面オブジェクトを示す遷移先画面項目とを含んでいる、前記画面遷移オブジェクトを生成する画面遷移オブジェクト生成手段と、
前記画面遷移オブジェクトのリクエスト発生画面ＩＤの値からなるオブジェクト名と、プロパティとを含むリクエスト発生画面オブジェクトであって、当該プロパティとしては、当該リクエスト発生画面ＩＤの値に中間一致する前記画面項目設計書内の画面項目ＩＤの値からなる画面項目を含んでいる、前記リクエスト発生画面オブジェクトを生成する発生画面オブジェクト生成手段と、
前記リクエスト発生画面オブジェクトの画面項目ＩＤの値からなるオブジェクト名と、プロパティとを含むリクエスト発生画面項目オブジェクトであって、当該プロパティとしては、当該画面項目ＩＤの値に前記画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値及びデフォルト値の項目と値からなる第１発生画面項目と、当該画面項目ＩＤの値に前記画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値、Name属性の項目と値及び関連テーブルの物理名の項目と値からなる第２発生画面項目と、当該画面項目ＩＤの値に前記画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値及びName属性の項目と値からなる第３発生画面項目とのうちのいずれかの発生画面項目を含んでいる、前記リクエスト発生画面項目オブジェクトを個別に生成する発生画面項目オブジェクト生成手段と、
前記画面遷移オブジェクトの遷移先画面ＩＤの値からなるオブジェクト名と、プロパティとを含む遷移先画面オブジェクトであって、当該プロパティとしては、当該遷移先画面ＩＤの値に中間一致する前記画面項目設計書内の画面項目ＩＤの値からなる画面項目を含んでいる、前記遷移先画面オブジェクトを生成する遷移先画面オブジェクト生成手段と、
前記遷移先画面オブジェクトの画面項目ＩＤの値からなるオブジェクト名と、プロパティとを含む遷移先画面項目オブジェクトであって、当該プロパティとしては、当該画面項目ＩＤの値に前記画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値及びデフォルト値の項目と値からなる第１遷移先画面項目と、当該画面項目ＩＤの値に前記画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値、Name属性の項目と値及び関連テーブルの物理名の項目と値からなる第２遷移先画面項目と、当該画面項目ＩＤの値に前記画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値及びName属性の項目と値からなる第３遷移先画面項目とのうちのいずれかの遷移先画面項目を含んでいる、前記遷移先画面項目オブジェクトを個別に生成する遷移先画面項目オブジェクト生成手段と、
前記画面遷移オブジェクト、前記リクエスト発生画面オブジェクト、前記リクエスト発生画面項目オブジェクト、前記遷移先画面オブジェクト及び前記遷移先画面項目オブジェクトを含む設計情報オブジェクトを生成する設計情報オブジェクト生成手段と、
前記設計情報オブジェクト内の画面遷移オブジェクトのオブジェクト名に含まれるシナリオ名の値に一致するテスト手順パターンＩＤを含むテスト手順パターン情報を前記テスト手順パターン記憶手段から読み出すテスト手順パターン読出手段と、
当該読み出したテスト手順パターン情報内のテスト手順名を前記テスト順番に沿って読み出し、当該読み出したテスト手順名に一致する前記操作記憶手段内のテスト手順名に関連付けられたテストコード断片ＩＤを当該操作記憶手段から読み出す手段と、
当該読み出したテストコード断片ＩＤに一致するテストコード断片ＩＤを含むテストコード情報を前記テストコード断片記憶手段から読み出し、当該読み出したテストコード情報を前記テスト順番に沿って結合してテストコード雛形情報を作成する手段と、
前記テストコード雛形情報内の各々の変数部分のうち、「前記リクエスト発生画面ＵＲＬの項目」又は「前記遷移先画面ＵＲＬの項目」を示す変数部分を前記設計情報オブジェクト内で当該変数部分に一致する項目の値に置換し、前記各々の変数部分のうち、「前記ＨＴＭＬ要素の項目がタイトルを示すデフォルト値の値」を示す変数部分を前記設計情報オブジェクト内で当該変数部分と同一オブジェクト内のデフォルト値の値に置換し、前記各々の変数部分のうち、「前記ＨＴＭＬ要素の項目がインプットを示すName属性の値」又は「物理名がidを示す値」を示す変数部分を前記設計情報オブジェクト内で当該変数部分と同一オブジェクト内のName属性の値に置換し、当該「前記物理名がidを示す値」を示す変数部分については更に当該同一オブジェクト内の物理名の値に一致する前記データベース内の物理名の値に関連付けられた検索結果の値を当該置換したName属性の値の次の行に挿入することにより、前記テストコード雛形情報から前記テストコードを生成する手段と、
を備えたことを特徴とするテストコード生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の各実施形態は、Ｗｅｂアプリケーション開発のテスト工程に用いられるテストコードを生成するためのテストコード生成プログラム及び装置に関する。
【背景技術】
【０００２】
Ｗｅｂアプリケーション開発におけるテスト工程においては、設計書から作成されたＷｅｂアプリケーションに対し、例えば、Ｗｅｂブラウザ上で画面項目を確認するテスト、値を入力して画面遷移を確認するテスト、結果の値を確認するテスト、といった様々なテストが実行される。これらのテストを実行する方法としては、人手によって実行する方法と、テスト自動化ツールによって実行する方法とがある。近年では、テスト自動化ツールによって自動的に実行する方法が一般的に用いられる。
【０００３】
しかしながら、テスト自動化ツールによって実行する方法は、テスト自動化ツールに入力されるテストコードを作成する必要がある。テストコードの作成には手間がかかるため、設計書などからテスト手順と一体化させたテストコードを自動的に生成する方法が幾つか提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４１４８５２７号公報
【特許文献２】特開２００２−３６６３８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、以上のようなテストコードを自動生成する技術は、通常は何の問題もないが、本発明者の検討によれば、テスト手順と一体化させたテストコードを生成するため、テスト自動化ツールを変更した場合、テスト手順だけを再利用することが困難である。
【０００６】
また、テスト手順が分離されている場合も、テスト対象のソフトウェアごとにテスト手順を定義する必要があり、コストがかかる。
【０００７】
本明細書に開示した実施形態は、テスト手順を再利用化でき、テスト対象のソフトウェア毎にテスト手順を定義する必要がないテストコード生成プログラム及び装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
以下で説明する本発明の実施形態のテストコード生成装置は、検索対象の物理名の値と検索結果の値とを関連付けて記憶する関連テーブルとしてのデータベース部に接続され、Ｗｅｂアプリケーションにおける複数の設計書データからテスト自動化ツールで用いられるテストコードを生成する。
【０００９】
実施形態のテストコード生成装置は、前記各設計書データのうちの画面遷移設計書データであって、前記Ｗｅｂアプリケーションの各画面の遷移に関し、画面遷移ＩＤの項目と値、シナリオ名の項目と値、リクエスト発生画面ＵＲＬの項目と値、及び遷移先画面ＵＲＬの項目と値、を関連付けて示す前記画面遷移設計書データの入力を受け付ける。
【００１０】
実施形態のテストコード生成装置は、前記各設計書データのうちの画面項目設計書データであって、前記Ｗｅｂアプリケーションの各画面の項目に関し、画面項目ＩＤの項目と値、ＨＴＭＬ要素の項目と値、デフォルト値の項目と値、Name属性の項目と値、及び関連テーブルの物理名の項目と値のうち、前記画面項目ＩＤのうちの第１画面項目ＩＤの項目と値、前記ＨＴＭＬ要素の項目とタイトルを示す値、及び前記デフォルト値の項目と値を関連付けて示し、前記画面項目ＩＤのうちの第２画面項目ＩＤの項目と値、前記ＨＴＭＬ要素の項目とテキストエリアを示す値、前記Name属性の項目と検索対象の物理名の値、及び前記関連テーブルの物理名の項目と値、を関連付けて示すと共に、前記画面項目ＩＤのうちの第３画面項目ＩＤの項目と値、前記ＨＴＭＬ要素の項目とインプットを示す値、及び前記Name属性の項目と実行を示す値、を関連付けて示す前記画面項目設計書データの入力を受け付ける。
【００１１】
実施形態のテストコード生成装置は、前記各設計書データのうちの画面一覧設計書データであって、前記Ｗｅｂアプリケーションの各画面に関し、画面ＩＤの項目と値、及び画面ＵＲＬの項目と値、を関連付けて示す前記画面一覧設計書データの入力を受け付ける。
【００１２】
実施形態のテストコード生成装置のテスト手順パターン記憶手段は、前記シナリオ名のいずれかの値と同一の文字列からなるテスト手順パターンＩＤと、テスト順番に沿って配列した複数のテスト手順名とを含むテスト手順パターン情報を記憶する。
【００１３】
実施形態のテストコード生成装置の操作記憶手段は、前記テスト手順名、操作及びテストコード断片ＩＤを関連付けて記憶する。
【００１４】
実施形態のテストコード生成装置のテストコード断片記憶手段は、前記テストコード断片ＩＤ及び変数部分を含んでおり、前記変数部分としては、前記リクエスト発生画面ＵＲＬの項目、前記遷移先画面ＵＲＬの項目、前記ＨＴＭＬ要素の項目とタイトルを示す値、前記ＨＴＭＬ要素の項目とインプットを示す値、又は画面項目値の項目、を個別に含んでいる、複数のテストコード断片情報を記憶する。
【００１５】
実施形態のテストコード生成装置は、前記入力を受け付けた画面遷移設計書データ内からシナリオ名の項目と値を抽出する。
【００１６】
実施形態のテストコード生成装置の画面遷移オブジェクト生成手段は、前記抽出したシナリオ名の値を含み、当該シナリオ名の値と同一のシナリオ名の値が他に抽出されている場合には更に識別番号を含むオブジェクト名と、プロパティとを含む画面遷移オブジェクトであって、当該プロパティとしては、当該オブジェクト名内のシナリオ名の値に前記画面遷移設計書データ内で関連付けられたリクエスト発生画面ＵＲＬの項目と値及び遷移先画面ＵＲＬの項目と値と、当該リクエスト発生画面ＵＲＬの値に一致する前記画面一覧設計書内の画面ＵＲＬの値に関連付けられた画面ＩＤの値からなるリクエスト発生画面ＩＤの値と項目と、当該リクエスト発生画面ＩＤの値をオブジェクト名としたリクエスト発生画面オブジェクトを示すリクエスト発生画面項目と、当該遷移先画面ＵＲＬの値に一致する前記画面一覧設計書内の画面ＵＲＬの値に関連付けられた画面ＩＤの値からなる遷移先画面ＩＤと、当該遷移先画面ＩＤの値をオブジェクト名とした遷移先画面オブジェクトを示す遷移先画面項目とを含んでいる、前記画面遷移オブジェクトを生成する。
【００１７】
実施形態のテストコード生成装置の発生画面オブジェクト生成手段は、前記画面遷移オブジェクトのリクエスト発生画面ＩＤの値からなるオブジェクト名と、プロパティとを含むリクエスト発生画面オブジェクトであって、当該プロパティとしては、当該リクエスト発生画面ＩＤの値に中間一致する前記画面項目設計書内の画面項目ＩＤの値からなる画面項目を含んでいる、前記リクエスト発生画面オブジェクトを生成する。
【００１８】
実施形態のテストコード生成装置の発生画面項目オブジェクト生成手段は、前記リクエスト発生画面オブジェクトの画面項目ＩＤの値からなるオブジェクト名と、プロパティとを含むリクエスト発生画面項目オブジェクトであって、当該プロパティとしては、当該画面項目ＩＤの値に前記画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値及びデフォルト値の項目と値からなる第１発生画面項目と、当該画面項目ＩＤの値に前記画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値、Name属性の項目と値及び関連テーブルの物理名の項目と値からなる第２発生画面項目と、当該画面項目ＩＤの値に前記画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値及びName属性の項目と値からなる第３発生画面項目とのうちのいずれかの発生画面項目を含んでいる、前記リクエスト発生画面項目オブジェクトを個別に生成する。
【００１９】
実施形態のテストコード生成装置の遷移先画面オブジェクト生成手段は、前記画面遷移オブジェクトの遷移先画面ＩＤの値からなるオブジェクト名と、プロパティとを含む遷移先画面オブジェクトであって、当該プロパティとしては、当該遷移先画面ＩＤの値に中間一致する前記画面項目設計書内の画面項目ＩＤの値からなる画面項目を含んでいる、前記遷移先画面オブジェクトを生成する。
【００２０】
実施形態のテストコード生成装置の遷移先画面項目オブジェクト生成手段は、前記遷移先画面オブジェクトの画面項目ＩＤの値からなるオブジェクト名と、プロパティとを含む遷移先画面項目オブジェクトであって、当該プロパティとしては、当該画面項目ＩＤの値に前記画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値及びデフォルト値の項目と値からなる第１遷移先画面項目と、当該画面項目ＩＤの値に前記画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値、Name属性の項目と値及び関連テーブルの物理名の項目と値からなる第２遷移先画面項目と、当該画面項目ＩＤの値に前記画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値及びName属性の項目と値からなる第３遷移先画面項目とのうちのいずれかの遷移先画面項目を含んでいる、前記遷移先画面項目オブジェクトを個別に生成する。
【００２１】
実施形態のテストコード生成装置の設計情報オブジェクト生成手段は、前記画面遷移オブジェクト、前記リクエスト発生画面オブジェクト、前記リクエスト発生画面項目オブジェクト、前記遷移先画面オブジェクト及び前記遷移先画面項目オブジェクトを含む設計情報オブジェクトを生成する。
【００２２】
実施形態のテストコード生成装置のテスト手順パターン読出手段は、前記設計情報オブジェクト内の画面遷移オブジェクトのオブジェクト名に含まれるシナリオ名の値に一致するテスト手順パターンＩＤを含むテスト手順パターン情報を前記テスト手順パターン記憶手段から読み出す。
【００２３】
実施形態のテストコード生成装置は、当該読み出したテスト手順パターン情報内のテスト手順名を前記テスト順番に沿って読み出し、当該読み出したテスト手順名に一致する前記操作記憶手段内のテスト手順名に関連付けられたテストコード断片ＩＤを当該操作記憶手段から読み出す。
【００２４】
実施形態のテストコード生成装置は、当該読み出したテストコード断片ＩＤに一致するテストコード断片ＩＤを含むテストコード情報を前記テストコード断片記憶手段から読み出し、当該読み出したテストコード情報を前記テスト順番に沿って結合してテストコード雛形情報を作成する。
【００２５】
実施形態のテストコード生成装置は、前記テストコード雛形情報内の各々の変数部分のうち、「前記リクエスト発生画面ＵＲＬの項目」又は「前記遷移先画面ＵＲＬの項目」を示す変数部分を前記設計情報オブジェクト内で当該変数部分に一致する項目の値に置換し、前記各々の変数部分のうち、「前記ＨＴＭＬ要素の項目がタイトルを示すデフォルト値の値」を示す変数部分を前記設計情報オブジェクト内で当該変数部分と同一オブジェクト内のデフォルト値の値に置換し、前記各々の変数部分のうち、「前記ＨＴＭＬ要素の項目がインプットを示すName属性の値」又は「物理名がidを示す値」を示す変数部分を前記設計情報オブジェクト内で当該変数部分と同一オブジェクト内のName属性の値に置換し、当該「前記物理名がidを示す値」を示す変数部分については更に当該同一オブジェクト内の物理名の値に一致する前記データベース内の物理名の値に関連付けられた検索結果の値を当該置換したName属性の値の次の行に挿入することにより、前記テストコード雛形情報から前記テストコードを生成する。
【図面の簡単な説明】
【００２６】
【図１】第１の実施形態に係るテストコード生成装置及びその周辺構成を示すブロック図である。
【図２】同実施形態における動作を説明するためのフローチャートである。
【図３】第２の実施形態に係る画面遷移設計書データの構成を示す模式図である。
【図４】同実施形態における画面項目設計書データの構成を示す模式図である。
【図５】同実施形態におけるテーブル項目設計書データの構成を示す模式図である。
【図６】同実施形態における例外処理設計書データの構成を示す模式図である。
【図７】同実施形態における画面一覧設計書データの構成を示す模式図である。
【図８】同実施形態における入力画面の一例を示す模式図である。
【図９】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図１０】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図１１】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図１２】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図１３】同実施形態におけるテスト手順パターン情報の一例を示す模式図である。
【図１４】同実施形態における設計情報オブジェクトの一例を示す模式図である。
【図１５】同実施形態におけるテストコード雛形情報の生成動作を説明するための模式図である。
【図１６】同実施形態におけるテストコードの生成動作を説明するための模式図である。
【図１７】第３の実施形態に係るテストコード断片情報の一例を示す模式図である。
【図１８】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図１９】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図２０】同実施形態におけるテストコード断片情報の一例を示す模式図である。
【図２１】同実施形態におけるテストコード雛形情報の生成動作を説明するための模式図である。
【図２２】同実施形態におけるテストコードの生成動作を説明するための模式図である。
【発明を実施するための形態】
【００２７】
以下、各実施形態について図面を用いて説明する。なお、以下のテストコード生成装置は、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体からテストコード生成装置となるコンピュータにインストールされ、テストコード生成装置の機能を実現させるためのプログラムが用いられる。また、テストコード生成装置は、この名称に限らず、例えば、Ｗｅｂアプリケーション開発のテスト工程を支援することからＷｅｂアプリケーションテスト支援装置と呼んでもよく、また、テストコード作成装置やテストコード自動生成装置といった任意の名称で呼んでもよい。
【００２８】
（第１の実施形態）
図１は第１の実施形態に係るテストコード生成装置及びその周辺構成を示すブロック図である。このテストコード生成装置１０は、設計書データ、テスト手順パターン情報、テストコード断片情報及びデータベース部２０内のデータに基づいて、テストコードを生成して出力するものである。なお、データベース部２０内のデータは、設計書データに基づいて、テーブルデータ生成部２１により書き込まれている。また、出力されたテストコードは、テスト自動化ツール部３０によるテストに用いられる。
【００２９】
このようなテストコード生成装置１０は、設計書読込部１１、設計情報オブジェクト生成部１２、テスト手順パターン記憶部１３、操作記憶部１４、テストコード断片記憶部１５、テスト手順パターン抽出部１６及びテストコード生成部１７を備えている。
【００３０】
ここで、設計書読込部１１は、ユーザの操作により、入力となる各種の設計書データの読込を実行し、読み込んだ設計書データを設計情報オブジェクト生成部１２に送出するものである。各種の設計書データとしては、画面遷移設計書データ、画面項目設計書データ、テーブル項目設計書データ、画面一覧設計書データ及び例外処理設計書データがある。なお、ユーザの操作に対応するデータ又は命令の入力は、ＧＵＩ（graphical user interface）を介して該当する機能部１１〜１７に伝えられる。
【００３１】
設計情報オブジェクト生成部１２は、設計書読込部１１から送出された各種の設計書データのうちの画面遷移設計書データからテスト対象処理名（シナリオ名）を抽出する処理対象抽出機能と、抽出されたテスト対象処理名毎に、当該各種の設計書データから設計情報オブジェクトを生成する設計情報オブジェクト生成機能とをもっている。ここで、設計情報オブジェクトは、設計書データのうち、上位概念のデータ（例、画面に関するデータ項目とデータ）を上位のオブジェクトとして表し、この上位概念のデータに対する下位概念のデータ（例、画面内の項目に関するデータ項目とデータ）を下位のオブジェクトとして表し、上位と下位のオブジェクトを関連付けてなるオブジェクトデータである。
【００３２】
テスト手順パターン記憶部１３は、１つのテスト手順パターン名と、テスト順番に沿って記述された複数のテスト手順名とを含み、テスト対象処理としてのある機能における一連のテスト手順のパターンを示すテスト手順パターン情報を記憶している。ある機能とは、検索、更新、登録、削除などであり、ユーザが追加することも可能である。テスト手順パターン名は、設計情報オブジェクト部１２により抽出されるテスト対象処理名と同一の文字列からなる。このようなテスト手順パターン情報は、予めユーザにより、テスト手順パターン記憶部１３に書き込まれている。また、テスト手順パターン情報は、ユーザの操作により、適宜、追加、変更又は削除等の編集が可能となっている。
【００３３】
操作記憶部１４は、テスト手順パターン記憶部１３内のテスト手順パターン情報に含まれるテスト手順名と、テストコード断片記憶部１５内のテストコード断片情報に含まれるテストコード断片ＩＤとを関連付けて記憶する。操作記憶部１４は、予めユーザの操作により、各情報が関連付けて書き込まれている。
【００３４】
テストコード断片記憶部１５は、テストコード断片ＩＤと、設計書オブジェクト内の項目とを含んでテストコードの一部が記述されたテストコード断片情報を記憶する。テストコード断片情報は、予めユーザの操作により、テストコード断片記憶部１５に書き込まれている。なお、テストコード断片情報は、テストコード雛形断片情報と呼んでもよい。
【００３５】
テスト手順パターン抽出部１６は、設計情報オブジェクト生成部１２により抽出されたテスト対象処理名に基づいて、テスト手順パターン記憶部１３からテスト手順パターン情報を読み出し、このテスト手順パターン情報をテストコード生成部１７に送出する機能をもっている。
【００３６】
テストコード生成部１７は、テスト手順パターン抽出部１６から送出されたテスト手順パターン情報と、当該テスト手順パターン情報内の各テスト手順名に操作記憶部１４内で関連付けられたテストコード断片ＩＤを含むテストコード断片記憶部１５内のテストコード断片情報に基づいて、テストコード雛形情報を生成するテストコード雛形生成機能と、当該生成したテストコード雛形情報と、設計情報オブジェクト生成部１２により生成された設計情報オブジェクトと、テストで使用するデータベース部２０の値とに基づいてテストコードを生成するテストコード生成機能と、生成したテストコードを出力するテストコード出力機能とをもっている。
【００３７】
データベース部２０は、テーブルデータ生成部２１により書き込まれたテスト用のデータを記憶するテーブルであり、テストコード生成部１７から読出可能となっている。補足すると、データベース部２０は、検索対象の物理名の値と検索結果の値とを関連付けて記憶する関連テーブルとして用いられる。
【００３８】
テーブルデータ生成部２１は、各種設計書データのうちのテーブル項目設計書データに基づいてテスト用のデータを生成し、このデータをデータベース部２０に登録する機能を持つ。このテーブルデータ生成部２１は、既存技術が使用可能となっている。
【００３９】
テスト自動化ツール部３０は、テストコード生成装置１０から出力されたテストコードを用いて、各種設計書データに示されたソフトウェアのテスト工程を実行するテスト自動化ツールプログラムを実行する機能をもっている。
【００４０】
次に、以上のように構成されたテストコード生成装置の動作を図２のフローチャートを用いて説明する。なお、データベース部２０は、既存技術により、テスト用のデータが登録されているものとする。
【００４１】
いま、テストコード生成装置１０においては、ユーザの操作により、設計書読込部１１が、入力となる各種の設計書データを読み込む（ＳＴ１）。読み込まれた各種の設計書データは、設計書読込部１１から設計情報オブジェクト生成部１２に送出される。
【００４２】
次に、設計情報オブジェクト生成部１２は、送出された設計書データのうちの画面遷移設計書からテスト対象処理名を抽出し（ＳＴ２）、抽出したテスト対象処理名毎に、各種の設計書データから設計情報オブジェクトを生成する（ＳＴ３）。
【００４３】
テスト手順パターン抽出部１６は、抽出されたテスト対象処理名に基づいて、テスト手順パターン記憶部１３からテスト手順パターン情報を読み出す（ＳＴ４）。読み出されたテスト手順パターン情報は、テスト手順パターン抽出部１６からテストコード生成部１７に送出される。
【００４４】
テストコード生成部１７は、ユーザによりＧＵＩから入力されたテストコード断片の種類から使用するテストコード断片情報を特定する（ＳＴ５）。例えば、複数のテスト自動化ツールＡ，Ｂがある場合、入力されたテストコード断片の種類が“ツールＡ用テストコード断片”であれば、ツールＡ用のテストコード断片情報を特定し、入力されたテストコード断片の種類が“ツールＢ用テストコード断片”であれば、ツールＢ用のテストコード断片情報を特定する。なお、ステップＳＴ５は、複数のテスト自動化ツールが無い場合等には省略可能となっている。
【００４５】
テストコード生成部１７は、テスト手順パターン抽出部１６から送出されたテスト手順パターン情報と、当該テスト手順パターン情報内の各テスト手順名に操作記憶部１４内で関連付けられたテストコード断片ＩＤを含むテストコード断片記憶部１５内のテストコード断片情報に基づき、テスト手順パターン情報内のテスト手順名の順番に沿ってテストコード断片情報を結合してテストコード雛形情報を生成する（ＳＴ６）。
【００４６】
また、テストコード生成部１７は、当該生成したテストコード雛形情報と、設計情報オブジェクト生成部１２により生成された設計情報オブジェクトと、テストで使用するデータベース部２０の値とに基づいて、テストコードを生成する（ＳＴ７）。
【００４７】
例えば、テストコード生成部１７は、テストコード雛形情報を構成するテストコード断片情報内に含まれる「設計書オブジェクト内の項目」を「設計書オブジェクト内の当該項目の値」や「設計書オブジェクト内の当該項目の値に関連付けられたデータベース部２０内の値」に置換することにより、テストコード雛形情報、設計書オブジェクト及びデータベース部２０の値からテストコードを生成する。
【００４８】
しかる後、テストコード生成部１７は、生成したテストコードを出力する（ＳＴ８）。出力されたテストコードは、テスト自動化ツール部３０によるテスト工程に使用される。
【００４９】
上述したように本実施形態によれば、入力される設計書データに対し、予め記憶したテスト手順パターン情報及びテストコード断片情報に基づいてテストコードを生成する構成により、テスト手順とテストコードの分離によって、テスト自動化ツールの変更に容易に対応でき、設計書に基づいて、メンテナンス性の高いテストコードを効率的に生成できるため、テスト全体のコストを下げ、Ｗｅｂアプリケーションの品質向上に寄与することができる。
【００５０】
補足すると、本実施形態によれば、テスト手順とテストコードを分離し、設計書データと汎用的なテスト手順パターンから機械的にテストコードを生成する構成により、従来とは異なり、テスト対象のソフトウェア毎にテスト手順を定義する必要がなく、コストを下げることができる。
【００５１】
（第２の実施形態）
第２の実施形態は、第１の実施形態に述べた図１の構成及び図２の動作において入出力を具体的に示した例であり、図３乃至図７に示す設計書データを入力し、コード書式がＨＴＭＬ（Hypertext Markup Language）のテスト自動化ツール（ツールＡ）のテストコードを出力する形態となっている。なお、設計書データの書式は、例えば図３乃至図７に示した如き、必要な内容が書かれていれば任意の書式が使用可能となっている。但し、装置を実装する際には便宜上形式を定める。
【００５２】
ここで、画面遷移設計書データは、図３に示すように、Ｗｅｂアプリケーションの各画面の遷移に関し、画面遷移ＩＤの項目と値、シナリオ名の項目と値、リクエスト発生画面ＵＲＬの項目と値、及び遷移先画面ＵＲＬの項目と値、を関連付けて示している。
【００５３】
画面項目設計書データは、図４に示すように、Ｗｅｂアプリケーションの各画面の項目に関し、画面項目ＩＤの項目と値、ＨＴＭＬ要素の項目と値、デフォルト値の項目と値、Name属性の項目と値、及び関連テーブルの物理名の項目と値のうち、画面項目ＩＤのうちの第１画面項目ＩＤの項目と値、ＨＴＭＬ要素の項目とタイトルを示す値、及びデフォルト値の項目と値を関連付けて示し、画面項目ＩＤのうちの第２画面項目ＩＤの項目と値、ＨＴＭＬ要素の項目とテキストエリアを示す値、Name属性の項目と検索対象の物理名の値、及び関連テーブルの物理名の項目と値、を関連付けて示すと共に、画面項目ＩＤのうちの第３画面項目ＩＤの項目と値、ＨＴＭＬ要素の項目とインプットを示す値、及びName属性の項目と実行を示す値、を関連付けて示している。
【００５４】
テーブル項目設計書データは、図５に示すように、Ｗｅｂアプリケーションの検索処理に用いられる関連テーブルのテーブル項目に関し、項目名の項目と値、物理名の項目と値、主キーの項目と値、型の項目と値、及び桁の項目と値、を関連付けて示している。
【００５５】
例外処理設計書データは、図６に示すように、Ｗｅｂアプリケーションの例外処理に関し、例外発生条件の項目と値、例外発生画面ＵＲＬの項目と値、例外発生遷移先画面ＵＲＬの項目と値、及び例外メッセージの項目と値を関連付けて示している。
【００５６】
画面一覧設計書データは、図７に示すように、Ｗｅｂアプリケーションの各画面に関し、画面ＩＤの項目と値、及び画面ＵＲＬの項目と値、を関連付けて示している。
【００５７】
設計書データとテストコード断片情報の種類の入力は、図８に示す入力画面Ｇ１０から行う。テストコード断片情報の種類は、プルダウン又はリストボックスｇ１１等により選択可能となっており、選択肢として、予めテストコード断片記憶部１５に記憶されているテストコード断片情報の種類が表示される。
【００５８】
ここでは、ＨＴＭＬ形式のテストコード断片情報の例を図９乃至図１２に示す。
【００５９】
図９に示したテストコード断片情報は、テストコード断片ＩＤ“open”及び変数部分を含んでおり、変数部分としては、リクエスト発生画面ＵＲＬの項目“＃リクエスト発生画面ＵＲＬ＃”を含んでいる。同様のテストコード断片情報としては、テストコード断片ＩＤ“open”及び変数部分“＃遷移先画面ＵＲＬ＃を含むテストコード断片情報（図示せず）もテストコード断片記憶部１５に記憶されている。
【００６０】
図１０に示したテストコード断片情報は、テストコード断片ＩＤ“click”及び変数部分を含んでおり、変数部分としては、ＨＴＭＬ要素の項目がインプットである値のName属性の示す値“name=”＃ＨＴＭＬ要素(input).Name属性＃””を含んでいる。ここで、“name="＃ＨＴＭＬ要素(input).Name属性＃"”は、先に示した図４の列タイトル「HTML要素」の値がinputである値の列タイトル「Name属性」の値が変数部分に入ることを意味する。そして、変数部分"＃ＨＴＭＬ要素(input).Name属性＃"が"検索実行"に置き換わった後は、“name="検索実行"”となる。
【００６１】
図１１に示したテストコード断片情報は、テストコード断片ＩＤ“assertTitle”及び変数部分を含んでおり、変数部分としては、ＨＴＭＬ要素の項目がタイトルである値のデフォルト値の値＃ＨＴＭＬ要素(title).デフォルト値＃”を含んでいる。
【００６２】
図１２に示したテストコード断片情報は、テストコード断片ＩＤ“type”及び変数部分を含んでおり、変数部分としては、ＨＴＭＬ要素の項目がテキストエリアである値のName属性の示す値“name=“＃ＨＴＭＬ要素(textarea).Name属性＃””を含んでいる。なお、各図９〜図１２中、変数部分を記号＃で挟んだ部分として示したが、これに限らず、他の記号で挟んだ部分を変数部分としてもよい。これは他の実施形態でも同様である。
【００６３】
テスト手順パターン記憶部１３には、予め図１３に示す如き、シナリオ名のいずれかの値（search）と同一の文字列からなるテスト手順パターンＩＤ（search）と、テスト順番に沿って配列した複数のテスト手順名（access, check, type, click, check）とを含むテスト手順パターン情報が記憶されている。図示したテスト手順パターン情報は、一般的な検索処理のテスト手順パターンの例を示している。下線部分のテスト手順名は、操作記憶部１４内の操作及びツールコード断片ＩＤと１対１に対応している。
【００６４】
テストコード断片記憶部１５にも、すでにいくつかの書式のテストコード断片が記憶されている。テスト手順パターンの操作と各テストコードの操作の対応は、操作記憶部１４に記憶されている。
【００６５】
また、データベース部２０は、検索対象の物理名の値と検索結果の値とを関連付けて記憶する関連テーブルとして用いられ、テストコード生成装置１０に接続されている。
【００６６】
次に、以上のようなデータの具体例を用いた場合のテストコード生成装置の動作を図２のフローチャートに沿って説明する。
【００６７】
ステップＳＴ１においては、テストコード生成装置１０の設計書読込部１１が、ユーザの操作により、入力画面Ｇ１０から各種の設計書データの入力を受け付ける。また、設計書読込部１１は、ユーザの操作により、テストコード断片情報の種類の選択を受け付ける。設計書データは本装置の書式に準拠したものとする。設計書読込部１１は、本装置の書式に準拠しない設計書データが入力されたときには、画面に検証エラーを表示する。準拠しない旨の判定は、例えば予め保持する本装置の書式データに記述された項目と、入力された設計書データ内の項目とを比較し、両者が一致するか否か等により実行可能となっている。
【００６８】
ステップＳＴ２においては、設計情報オブジェクト生成部１２は、図３に示した如き、入力を受け付けた画面遷移設計書データ内からテスト対象処理名としてのシナリオ名の項目と値（search, search, search, regist）を抽出する。
【００６９】
ステップＳＴ３においては、設計情報オブジェクト生成部１２は、抽出されたシナリオ名毎に、図１４に示す如き、設計情報オブジェクトを生成する。
【００７０】
設計情報オブジェクトは、画面遷移設計書データ、画面項目設計書データ、データ項目設計書データ、画面一覧設計書データ、例外処理設計書データから生成する。図１４では、テスト対象として抽出された１つ目のsearch（search１）の設計情報オブジェクトを示している。以下にステップＳＴ３−１〜ＳＴ３−３として設計情報オブジェクト生成の手順を示す。
【００７１】
ステップＳＴ３−１においては、設計情報オブジェクト生成部１２は、画面遷移設計書データから、search1のリクエスト発生画面と遷移先画面をプロパティとするsearch1オブジェクトを生成する。
【００７２】
詳しくは、設計情報オブジェクト生成部１２は、抽出したシナリオ名の値（search）を含み、当該シナリオ名の値（search）と同一のシナリオ名の値（search）が他に抽出されている場合には更に識別番号（１）を含むオブジェクト名（search1）と、プロパティとを含む画面遷移オブジェクト（search1オブジェクト）を生成する。当該画面遷移オブジェクト（search1オブジェクト）のプロパティとしては、当該オブジェクト名内のシナリオ名の値（search）に画面遷移設計書データ内で関連付けられたリクエスト発生画面ＵＲＬの項目と値（searchIndex.jsp）及び遷移先画面ＵＲＬの項目と値（searchResult.jsp）と、当該リクエスト発生画面ＵＲＬの値に一致する画面一覧設計書内の画面ＵＲＬの値（searchIndex.jsp）に関連付けられた画面ＩＤの値（S1）からなるリクエスト発生画面ＩＤの値（S1）と項目と、当該リクエスト発生画面ＩＤの値をオブジェクト名（S1）としたリクエスト発生画面オブジェクト（S1オブジェクト）を示すリクエスト発生画面項目と、当該遷移先画面ＵＲＬの値（searchIndex.jsp）に一致する画面一覧設計書内の画面ＵＲＬの値（searchIndex.jsp）に関連付けられた画面ＩＤの値（S2）からなる遷移先画面ＩＤと、当該遷移先画面ＩＤの値をオブジェクト名とした遷移先画面オブジェクト（S2オブジェクト）を示す遷移先画面項目とを含んでいる。
【００７３】
ステップＳＴ３−２においては、設計情報オブジェクト生成部１２は、画面項目をプロパティとするリクエスト発生画面と遷移先画面のそれぞれのオブジェクトを生成する。
【００７４】
詳しくは、設計情報オブジェクト生成部１２は、画面遷移オブジェクト（search1オブジェクト）のリクエスト発生画面ＩＤの値（S1）からなるオブジェクト名（S1）と、プロパティとを含むリクエスト発生画面オブジェクト（S1オブジェクト）を生成する。当該リクエスト発生画面オブジェクト（S1オブジェクト）のプロパティとしては、当該リクエスト発生画面ＩＤの値に中間一致する画面項目設計書内の画面項目ＩＤの値（S1-1, S1-2, S1-3）からなる画面項目を含んでいる、当該リクエスト発生画面オブジェクト（S1オブジェクト）を生成する。
【００７５】
同様に、設計情報オブジェクト生成部１２は、画面遷移オブジェクト（search1オブジェクト）の遷移先画面ＩＤの値（S2）からなるオブジェクト名（S2）と、プロパティとを含む遷移先画面オブジェクト（S2オブジェクト）を生成する。当該遷移先画面オブジェクト（S2オブジェクト）のプロパティとしては、当該遷移先画面ＩＤの値（S2）に中間一致する画面項目設計書内の画面項目ＩＤの値（S2-1, S2-2, S2-3）からなる画面項目を含んでいる。
【００７６】
ステップＳＴ３−３においては、設計情報オブジェクト生成部１２は、さらに画面項目要素をプロパティとする画面項目オブジェクトを作成する。
【００７７】
詳しくは、設計情報オブジェクト生成部１２は、リクエスト発生画面オブジェクト（S1オブジェクト）の画面項目ＩＤの値（S1-1, S1-2, S1-3）からなるオブジェクト名（S1-1, S1-2, S1-3）と、プロパティとを含むリクエスト発生画面項目オブジェクト（S1-1オブジェクト、S1-2オブジェクト、S1-3オブジェクト）を個別に生成する。
【００７８】
当該リクエスト発生画面項目オブジェクトのプロパティとしては、当該画面項目ＩＤの値（S1-1）に画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値（title）及びデフォルト値の項目と値（検索条件画面）からなる第１発生画面項目と、当該画面項目ＩＤの値（S1-2）に画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値（textarea）、Name属性の項目と値（idFromForSearch）及び関連テーブルの物理名の項目と値（id）からなる第２発生画面項目と、当該画面項目ＩＤの値（S1-3）に画面項目設計書内で関連付けられたＨＴＭＬ要素の項目と値（input）及びName属性の項目と値（検索実行）からなる第３発生画面項目とのうちのいずれかの発生画面項目を含んでいる。
【００７９】
このようなオブジェクトの状態にすることで、画面と画面項目、画面項目要素の関係がわかるようになる。
【００８０】
また、設計情報オブジェクト生成部１２は、ステップＳＴ３−１〜ＳＴ３−３に示したように生成した画面遷移オブジェクト、リクエスト発生画面オブジェクト、リクエスト発生画面項目オブジェクト、遷移先画面オブジェクト及び遷移先画面項目オブジェクトを含む設計情報オブジェクトを生成する。
【００８１】
ステップＳＴ４においては、テスト手順パターン抽出部１６は、抽出されたテスト対象処理名に基づいて、テスト手順パターン記憶部１３からテスト手順パターン情報を読み出す。その際、設計情報オブジェクトのオブジェクト名を使用する。
【００８２】
詳しくは、テスト手順パターン抽出部１６は、例えば、設計情報オブジェクト内の画面遷移オブジェクトのオブジェクト名（search1）に含まれるシナリオ名の値（search）に一致するテスト手順パターンＩＤ（search）を含むテスト手順パターン情報をテスト手順パターン記憶部１３から読み出す。
【００８３】
更に詳しくは、テスト手順パターン情報の抽出は以下のステップＳＴ４−１〜ＳＴ４−２に示す手順で実行する。
【００８４】
ステップＳＴ４−１においては、テスト対象処理が例外処理であるかを、画面遷移設計書データと例外処理設計書データから判定する。画面遷移設計書データのリクエスト発生画面ＵＲＬと遷移先画面ＵＲＬの対が、例外処理設計書データの例外発生画面ＵＲＬと例外発生遷移先画面ＵＲＬの対と同じであれば、その処理を例外処理と判定する。
【００８５】
具体的には、テスト手順パターン抽出部１６は、テスト手順パターン情報の読み出しよりも先に、設計情報オブジェクト内の画面遷移オブジェクトのオブジェクト名（search1）に含まれるシナリオ名の値（search）に一致する画面遷移設計書データ内のシナリオ名の値（search）に関連付けられたリクエスト発生画面ＵＲＬの値及び遷移先画面ＵＲＬの値と、例外処理設計書データ内の例外発生画面ＵＲＬの値及び例外発生遷移先画面ＵＲＬの値とが一致するか否かを判定し、両者が一致する場合には例外処理と判定する。
【００８６】
ステップＳＴ４−２においては、両者が一致しない場合（例外処理ではない場合）は、テスト対象処理画面、テスト対象処理の入力項目から、対応するテスト手順パターン情報を抽出する。例えば、同じsearchというテスト対象処理でも、対象画面の入力項目数（ＨＴＭＬ要素：textareaを含む画面項目オブジェクト）が複数ある場合は詳細検索のテスト手順パターンＩＤ（searchDetail）を含むテスト手順パターン情報を抽出し、入力項目数が１つである場合は検索のテスト手順パターンＩＤ（search）を含むテスト手順パターン情報を抽出する。
【００８７】
なお、ステップＳＴ４−１〜ＳＴ４−２で抽出されるテスト手順パターン情報は、以下の例の通りである。
【００８８】
テスト対象処理名としてのシナリオ名“search”で入力項目数が１つの場合、検索のテスト手順パターン情報（テスト手順パターンＩＤ：search）が抽出される。
【００８９】
テスト対象処理名としてのシナリオ名“search”で入力項目数が複数の場合、詳細検索のテスト手順パターン情報（テスト手順パターンＩＤ：searchDetail）が抽出される。
【００９０】
テスト対象処理名としてのシナリオ名“search”で例外処理の場合、例外のテスト手順パターン情報（テスト手順パターンＩＤ：error）が抽出される。
【００９１】
テスト対象処理名としてのシナリオ名“regist”の場合、登録のテスト手順パターン情報（テスト手順パターンＩＤ：regist）が抽出される。
【００９２】
ステップＳＴ５においては、テストコード生成部１７は、入力画面Ｇ１０で選択されたテストコード断片情報の種類から使用するテストコード断片情報を特定する。ここでは、ＨＴＭＬのコード書式に対応するツールＡ用のテストコード断片情報の種類から使用するテストコード断片情報が特定される。
【００９３】
ステップＳＴ６においては、テストコード生成部１７は、図１５に示すように、ステップＳＴ４で読み出されたテスト手順パターン情報と、ステップＳＴ５で特定された種類のテストコード断片情報とに基づいて、テストコード雛形情報を生成する。
【００９４】
詳しくは、ステップＳＴ６は、以下のステップＳＴ６−１〜ＳＴ６−２に示すように実行される。
【００９５】
ステップＳＴ６−１においては、テストコード生成部１７は、ステップＳＴ４で読み出されたテスト手順パターン情報内のテスト手順名をテスト順番に沿って読み出し、当該読み出したテスト手順名に一致する操作記憶部１４内のテスト手順名に関連付けられたテストコード断片ＩＤを当該操作記憶部１４から読み出す。
【００９６】
ステップＳＴ６−２においては、テストコード生成部１７は、読み出したテストコード断片ＩＤに一致するテストコード断片ＩＤを含むテストコード情報をテストコード断片記憶部１５から読み出し、当該読み出したテストコード情報をテスト順番に沿って結合してテストコード雛形情報を作成する。
【００９７】
ステップＳＴ７においては、図１６に示すように、テストコード生成部１７は、当該生成したテストコード雛形情報と、設計情報オブジェクト生成部１２により生成された設計情報オブジェクトと、テストで使用するデータベース部２０の値とに基づいて、テストコードを生成する。
【００９８】
詳しくは、ステップＳＴ７は、以下のステップＳＴ７−１〜ＳＴ７−２に示すように実行される。
【００９９】
ステップＳＴ７−１においては、テストコード生成部１７は、テストコード雛形情報の変数部分に設計情報オブジェクトの情報を当てはめて、テストコードを生成する。テストコード雛形の変数部分とは＃で囲んだ部分のことをいう。
【０１００】
ステップＳＴ７−２においては、テストコード生成部１７は、検索結果の確認などでデータベースの値を参照する場合に、データベース部２０から期待値を取得する。テストコード生成部１７は、アプリケーションの検索キーで使用した値の物理名を設計情報オブジェクトから取得し、設計書に基づいて作成されたテーブルに対してデータベース検索を行う。
【０１０１】
具体的には、テストコード生成部１７は、テストコード雛形情報内の各々の変数部分のうち、「リクエスト発生画面ＵＲＬの項目」又は「遷移先画面ＵＲＬの項目」を示す変数部分（＃リクエスト発生画面ＵＲＬ＃）を設計情報オブジェクト内で当該変数部分に一致する項目の値（searchIndex.jsp）に置換する。
【０１０２】
また、テストコード生成部１７は、各々の変数部分のうち、「ＨＴＭＬ要素の項目がタイトルを示すデフォルト値の値」を示す変数部分（＃ＨＴＭＬ要素(title).デフォルト値＃）を設計情報オブジェクト内で当該変数部分と同一オブジェクト（S1-1オブジェクト）内のデフォルト値の値（検索条件画面）に置換する。
【０１０３】
また、テストコード生成部１７は、各々の変数部分のうち、「ＨＴＭＬ要素の項目がインプットを示すName属性の値」又は「ＨＴＭＬ要素の項目がテキストエリアを示すName属性の値」を示す変数部分（「＃ＨＴＭＬ要素(input)．Name属性＃」又は「＃ＨＴＭＬ要素(textarea).Name属性＃」）を設計情報オブジェクト内で当該変数部分と同一オブジェクト（S1-3オブジェクト又はS1-2オブジェクト）の値（「検索実行」又は「idFromForSearch」）に置換する。
【０１０４】
また、テストコード生成部１７は、当該「ＨＴＭＬ要素の項目がテキストエリアを示すName属性の値」を示す変数部分（＃ＨＴＭＬ要素(textarea).Name属性＃）については更に当該同一オブジェクト（S1-2オブジェクト）内の物理名の値（id）に一致するデータベース内の物理名の値（id）に関連付けられた検索結果の値（1111）を当該置換したName属性の値（idFromForSearch）の次の行（＜td＞＜td＞）に挿入する。このように、テストコード生成部１７は、テストコード雛形情報からテストコードを生成する。
【０１０５】
ステップＳＴ８においては、テストコード生成部１７は、生成したテストコードを出力する。
【０１０６】
上述したように第２の実施形態によれば、第１の実施形態の構成において、具体的な設計書データ、テスト手順パターン情報、操作記憶部１４の記憶内容及びテストコード断片情報を用いた構成により、第１の実施形態の効果に加え、ＨＴＭＬのコード書式をもつテストコードを生成することができる。
【０１０７】
（第３の実施形態）
第３の実施形態は、第１の実施形態に述べた図１の構成及び図２の動作において入出力を具体的に示した例であり、図３乃至図７に示した設計書データを入力し、コード書式がＪａｖａ（登録商標）のテスト自動化ツール（ツールＢ）のテストコードを出力する形態となっている。なお、各種の設計書データ、設計情報オブジェクト、テスト手順パターン情報及びステップＳＴ１〜ＳＴ４までの処理は、第２の実施形態と同一であるので、重複した説明を省略する。
【０１０８】
以下では、図２のフローチャートのステップＳＴ５から説明する。
【０１０９】
ステップＳＴ５においては、テストコード生成部１７は、入力画面Ｇ１０で選択されたテストコード断片情報の種類から使用するテストコード断片情報を特定する。ここでは、Ｊａｖａのコード書式に対応するツールＢ用のテストコード断片情報の種類から使用するテストコード断片情報が特定される。
【０１１０】
ここで、Ｊａｖａ形式のテストコード断片情報の例を図１７乃至図２０に示す。
【０１１１】
図１７に示したテストコード断片情報は、テストコード断片ＩＤ“open”及び変数部分を含んでおり、変数部分としては、リクエスト発生画面ＵＲＬの項目“＃リクエスト発生画面ＵＲＬ＃”を含んでいる。同様のテストコード断片情報としては、テストコード断片ＩＤ“open”及び変数部分“＃遷移先画面ＵＲＬ＃を含むテストコード断片情報（図示せず）もテストコード断片記憶部１５に記憶されている。
【０１１２】
図１８に示したテストコード断片情報は、テストコード断片ＩＤ（assertEquals）及び変数部分を含んでおり、変数部分としては、ＨＴＭＬ要素の項目がタイトルを示すデフォルト値の値（＃ＨＴＭＬ要素(title).デフォルト値＃）を含んでいる。
【０１１３】
図１９に示したテストコード断片情報は、テストコード断片ＩＤ（type）及び変数部分を含んでおり、変数部分としては、ＨＴＭＬ要素の項目がテキストエリアを示すName属性の値及び物理名がidを示す値（＃ＨＴＭＬ要素(textarea).Name属性＃、＃物理名(id)＃）を含んでいる。
【０１１４】
図２０に示したテストコード断片情報は、テストコード断片ＩＤ（click）及び変数部分を含んでおり、変数部分としては、ＨＴＭＬ要素の項目がインプットを示すName属性の値（＃ＨＴＭＬ要素(input).Name属性＃）を含んでいる。
【０１１５】
ステップＳＴ６においては、テストコード生成部１７は、図２１に示すように、ステップＳＴ４で読み出されたテスト手順パターン情報と、ステップＳＴ５で特定された種類のテストコード断片情報とに基づいて、テストコード雛形情報を生成する。
【０１１６】
詳しくは、ステップＳＴ６は、以下のステップＳＴ６−１〜ＳＴ６−２に示すように実行される。
【０１１７】
ステップＳＴ６−１においては、テストコード生成部１７は、ステップＳＴ４で読み出されたテスト手順パターン情報内のテスト手順名をテスト順番に沿って読み出し、当該読み出したテスト手順名に一致する操作記憶部１４内のテスト手順名に関連付けられたテストコード断片ＩＤを当該操作記憶部１４から読み出す。
【０１１８】
ステップＳＴ６−２においては、テストコード生成部１７は、読み出したテストコード断片ＩＤに一致するテストコード断片ＩＤを含むテストコード情報をテストコード断片記憶部１５から読み出し、当該読み出したテストコード情報をテスト順番に沿って結合してテストコード雛形情報を作成する。
【０１１９】
ステップＳＴ７においては、図２２に示すように、テストコード生成部１７は、当該生成したテストコード雛形情報と、設計情報オブジェクト生成部１２により生成された設計情報オブジェクトと、テストで使用するデータベース部２０の値とに基づいて、テストコードを生成する。
【０１２０】
具体的には、テストコード生成部１７は、テストコード雛形情報内の各々の変数部分のうち、「リクエスト発生画面ＵＲＬの項目」又は「遷移先画面ＵＲＬの項目」を示す変数部分（＃リクエスト発生画面ＵＲＬ＃）を設計情報オブジェクト内で当該変数部分に一致する項目の値（searchIndex.jsp）に置換する。
【０１２１】
また、テストコード生成部１７は、各々の変数部分のうち、「ＨＴＭＬ要素の項目がタイトルを示すデフォルト値の値」を示す変数部分（＃ＨＴＭＬ要素(title).デフォルト値＃）を設計情報オブジェクト内で当該変数部分と同一オブジェクト（S1-1オブジェクト）内のデフォルト値の値（検索条件画面）に置換する。
【０１２２】
また、テストコード生成部１７は、各々の変数部分のうち、「ＨＴＭＬ要素の項目がテキストエリアを示すName属性の値及び物理名がidを示す値」を示す変数部分（＃ＨＴＭＬ要素(textarea).Name属性＃、＃物理名(id)＃）を設計情報オブジェクト内で当該変数部分と同一オブジェクト（S1-2オブジェクト）内のName属性の値（idFromForSearch）及び物理名の値（id）に一致するデータベース内の物理名の値（id）に関連付けられた検索結果の値（1111）にそれぞれ置換する。
【０１２３】
また、テストコード生成部１７は、各々の変数部分のうち、「ＨＴＭＬ要素の項目がインプットを示すName属性の値」を示す変数部分（＃ＨＴＭＬ要素(input).Name属性＃）を設計情報オブジェクト内で当該変数部分と同一オブジェクト（S1-3オブジェクト）内のName属性の値（検索実行）に置換する。このように、テストコード生成部１７は、テストコード雛形情報からテストコードを生成する。
【０１２４】
ステップＳＴ８においては、テストコード生成部１７は、生成したテストコードを出力する。
【０１２５】
上述したように第３の実施形態によれば、第２の実施形態のテスト手順パターン情報、操作記憶部１４の記憶内容及びテストコード断片情報に代えて、Ｊａｖａ形式に対応したテスト手順パターン情報、操作記憶部１４の記憶内容及びテストコード断片情報を用いた構成により、第１の実施形態の効果に加え、Ｊａｖａのコード書式をもつテストコードを生成することができる。
【０１２６】
以上で説明した少なくとも一つの実施形態によれば、テスト手順パターン情報とテストコード断片情報に基づいてテストコード雛形情報を生成し、テストコード雛形情報と設計情報オブジェクトとテスト用の値とに基づいてテストコードを生成する構成により、テスト手順を再利用化でき、テスト対象のソフトウェア毎にテスト手順を定義する必要をなくすことができる。
【０１２７】
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【０１２８】
この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【０１２９】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が上記実施形態を実現するための各処理の一部を実行しても良い。
【０１３０】
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【０１３１】
また、記憶媒体は１つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【０１３２】
そして、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【０１３３】
さらに、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【０１３４】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１３５】
１０…テストコード生成装置、１１…設計書読込部、１２…設計情報オブジェクト生成部、１３…テスト手順パターン記憶部、１４…操作記憶部、１５…テストコード断片記憶部、１６…テスト手順パターン抽出部、１７…テストコード生成部、２０…データベース部、２１…テーブルデータ生成部、３０…テスト自動化ツール部。
【図１】
0005492006.tif 000002
【図２】
0005492006.tif 000003
【図３】
0005492006.tif 000004
【図４】
0005492006.tif 000005
【図５】
0005492006.tif 000006
【図６】
0005492006.tif 000007
【図７】
0005492006.tif 000008
【図８】
0005492006.tif 000009
【図９】
0005492006.tif 000010
【図１０】
0005492006.tif 000011
【図１１】
0005492006.tif 000012
【図１２】
0005492006.tif 000013
【図１３】
0005492006.tif 000014
【図１４】
0005492006.tif 000015
【図１５】
0005492006.tif 000016
【図１６】
0005492006.tif 000017
【図１７】
0005492006.tif 000018
【図１８】
0005492006.tif 000019
【図１９】
0005492006.tif 000020
【図２０】
0005492006.tif 000021
【図２１】
0005492006.tif 000022
【図２２】
0005492006.tif 000023