テストケース生成プログラム及びテストケース生成装置
【課題】テストケース生成の際に、未熟な作業者にもテストケースの漏れ発生を無くす。
【解決手段】 実施形態のテストケース生成装置は、テスト対象の設計書に記述された画面又はデータに対応する設計要素の構造を表す設計メタモデルと、前記設計メタモデルの構造を表す設計メタメタモデルと、前記設計要素を用いてテスト内容を記述したテストケースの構造を表すテストケースメタモデルと、前記テストケースメタモデルの構造を表すテストケースメタメタモデルと、前記テストケースメタメタモデル及び前記設計メタメタモデル間の関係を表すマッピングルールメタメタモデルと、前記テストケースメタモデル及び前記設計メタモデル間の関連付けを表すマッピングルールメタモデルとを記憶する記憶手段を備えている。テストケース生成装置は、前記設計要素との置換部分を含んで前記テストケースのひな型を表すテストケーステンプレートを準備する。
【解決手段】 実施形態のテストケース生成装置は、テスト対象の設計書に記述された画面又はデータに対応する設計要素の構造を表す設計メタモデルと、前記設計メタモデルの構造を表す設計メタメタモデルと、前記設計要素を用いてテスト内容を記述したテストケースの構造を表すテストケースメタモデルと、前記テストケースメタモデルの構造を表すテストケースメタメタモデルと、前記テストケースメタメタモデル及び前記設計メタメタモデル間の関係を表すマッピングルールメタメタモデルと、前記テストケースメタモデル及び前記設計メタモデル間の関連付けを表すマッピングルールメタモデルとを記憶する記憶手段を備えている。テストケース生成装置は、前記設計要素との置換部分を含んで前記テストケースのひな型を表すテストケーステンプレートを準備する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、テストケース生成プログラム及びテストケース生成装置に関する。
【背景技術】
【0002】
一般に、テストケースを生成する作業者は、システム全体、機能の組合せ又は機能等のテスト対象毎に、テストケースへのマッピング方法(変換方法)を検討する。その後、作業者は、得られたマッピング方法に基づき、テスト対象からテストケースを生成する。
【0003】
例えば、作業者は、テスト対象の要件/設計要素からテストケースへのマッピング方法を個別に検討して抽出する。続いて、作業者は、抽出したマッピング方法に基づき、要件/設計要素をテストケースにマッピングし、テストケースを生成する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2004−220330号公報
【特許文献2】特許第3464159号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、以上のようなテストケース生成作業では、マッピング方法をどのように抽出するかが不明確であり、マッピング方法を個別に検討する手間がかかる結果、生成されるテストケースの質が低下する傾向にある。なお、ここでいう質の低下は、作業者のノウハウや経験に依存して発生しており、要件/設計要素に対応するテストケース全体が漏れている場合や、テスト条件が不十分なためにテストケースの一部が漏れている場合がある。すなわち、未熟な作業者である程、テストケースに漏れが発生し易い傾向にある。
【0006】
従って、テストケース生成の際に、未熟な作業者に対してもテストケースの漏れの発生を無くすことが求められている。
【0007】
本発明が解決しようとする課題は、テストケース生成の際に、未熟な作業者に対してもテストケースの漏れの発生を無くし得るテストケース生成プログラム及びテストケース生成装置を提供することである。
【課題を解決するための手段】
【0008】
実施形態のテストケース生成装置は、テスト対象の設計書に記述された画面又はデータに対応する設計要素と、前記設計要素の構造を表す設計メタモデルと、前記設計メタモデルの構造を表す設計メタメタモデルと、前記設計要素を用いてテスト内容を記述したテストケースの構造を表すテストケースメタモデルと、前記テストケースメタモデルの構造を表すテストケースメタメタモデルと、前記テストケースメタメタモデル及び前記設計メタメタモデル間の関係を表すマッピングルールメタメタモデルと、前記テストケースメタモデル及び前記設計メタモデル間の関連付けを表すマッピングルールメタモデルと、前記テストケースとを記憶するための記憶手段を備えている。
【0009】
前記テストケース生成装置は、前記設計要素との置換部分を含んで前記テストケースのひな型を表すテストケーステンプレートを前記テストケースメタモデルの一部として準備し、前記テストケーステンプレートの置換部分を前記テスト対象の設計要素に置換して前記テストケースを生成する。
【0010】
前記テストケース生成装置は、それぞれUMLのクラス図で表された前記設計メタメタモデル、前記テストケースメタメタモデル及び前記マッピングルールメタメタモデルを予め前記記憶手段に書込む。
【0011】
前記テストケース生成装置は、前記記憶手段内の設計メタメタモデルを表示することにより、前記設計メタモデルを表すUMLのクラス図の入力を促す。
【0012】
前記テストケース生成装置は、前記入力を受け付けた前記設計メタモデルを表すUMLのクラス図を前記記憶手段に書込む。
【0013】
前記テストケース生成装置は、前記記憶手段内の前記設計メタモデルを表すUMLのクラス図を表示することにより、前記設計メタモデルを構成する設計メタモデル要素を示す設計メタモデル要素データ、当該設計メタモデル要素の属性を示す設計メタモデル要素属性データ及び関連先の設計メタモデル要素データの入力を促す。
【0014】
前記テストケース生成装置は、前記入力を受け付けた前記設計メタモデル要素データ、前記設計メタモデル要素属性データ及び前記関連先の設計メタモデル要素データを前記記憶手段に書込む。
【0015】
前記テストケース生成装置は、前記記憶手段内の前記設計メタモデルを表すUMLのクラス図、前記設計メタモデル要素データ、前記設計メタモデル要素属性データ及び前記関連先の設計メタモデル要素データに対し、前記記憶手段内の設計メタメタモデルに違反している箇所を含むか否かを検証する。
【0016】
前記テストケース生成装置は、この検証結果が否を示す場合、前記記憶手段内の前記設計メタモデルを表すUMLのクラス図、前記設計メタモデル要素データ、前記設計メタモデル要素属性データ及び前記関連先の設計メタモデル要素データを表示することにより、前記設計要素を特定する要素データ、当該設計要素の項目を示す要素項目データ及び当該設計要素の処理を示す要素処理データの入力を促す。
【0017】
前記テストケース生成装置は、前記入力を受け付けた前記要素データ、前記要素項目データ及び前記要素処理データを前記記憶手段に書込む。
【0018】
前記テストケース生成装置は、前記記憶手段内のテストケースメタメタモデルを表すUMLのクラス図及び前記設計メタモデルを表すUMLのクラス図を表示することにより、前記テストケースメタモデルを表すUMLのクラス図の入力を促す。
【0019】
前記テストケース生成装置は、前記入力を受け付けた前記テストケースメタモデルを表すUMLのクラス図を前記記憶手段に書込む。
【0020】
前記テストケース生成装置は、前記記憶手段内の前記テストケースメタモデルを表すUMLのクラス図を表示することにより、前記テストケースメタモデルを構成するテストケースメタモデル要素を示すテストケースメタモデル要素データ及び当該テストケースメタモデル要素の属性を示すテストケースメタモデル要素属性データの入力を促す。
【0021】
前記テストケース生成装置は、前記入力を受け付けた前記テストケースメタモデル要素データ及び前記テストケースメタモデル要素属性データを前記記憶手段に書込む。
【0022】
前記テストケース生成装置は、前記記憶手段内の前記テストケースメタモデルを表すUMLのクラス図、前記テストケースメタモデル要素データ及び前記テストケースメタモデル要素属性データに対し、前記記憶手段内のテストケースメタメタモデルに違反している箇所を含むか否かを検証する。
【0023】
前記テストケース生成装置は、この検証結果が否を示す場合、前記記憶手段内のマッピングルールメタメタモデルを表すUMLのクラス図、前記記憶手段内のテストケースメタモデルを表すUMLのクラス図及び前記設計メタモデルを表すUMLのクラス図を表示することにより、前記マッピングルールメタモデルを表すUMLのクラス図の入力を促す。
【0024】
前記テストケース生成装置は、前記入力を受け付けた前記マッピングルールメタモデルを表すUMLのクラス図を前記記憶手段に書込む。
【0025】
前記テストケース生成装置は、前記記憶手段内の前記マッピングルールメタモデルを表すUMLのクラス図、前記設計メタモデル要素データ及び前記テストケースメタモデル要素データを表示することにより、前記マッピングルールメタモデルを構成するマッピングルールメタモデル要素を示すマッピングルールメタモデル要素データ及び当該マッピングルールメタモデル要素の属性を示すマッピングルールメタモデル要素属性データの入力を促す。
【0026】
前記テストケース生成装置は、前記入力を受け付けた前記マッピングルールメタモデル要素データ及び前記マッピングルールメタモデル要素属性データを前記記憶手段に書込む。
【0027】
前記テストケース生成装置は、前記記憶手段内の前記マッピングルールメタモデルを表すUMLのクラス図、前記マッピングルールメタモデル要素データ及び前記マッピングルールメタモデル要素属性データに対し、前記記憶手段内のマッピングルールメタメタモデルに違反している箇所を含むか否かを検証する。
【0028】
前記テストケース生成装置は、この検証結果が否を示す場合、前記記憶手段内のマッピングルールメタモデルを表すクラス図と前記テストケースメタモデル要素属性データとを表示することにより、前記設計要素との置換部分として前記要素データ、前記要素項目データ及び前記要素処理データ内のいずれかの項目を含んで前記テストケースのひな型を表すテストケーステンプレートの入力を促す。
【0029】
前記テストケース生成装置は、前記入力を受け付けたテストケーステンプレートを前記記憶手段に書込む。
【0030】
前記テストケース生成装置は、前記記憶手段内の前記テストケーステンプレートの置換部分の各項目を、前記要素データ、前記要素項目データ及び前記要素処理データ内の前記いずれかの項目の値に置換して前記テストケースを生成する。
【0031】
前記テストケース生成装置は、当該生成したテストケースを前記記憶手段に書込む。
【図面の簡単な説明】
【0032】
【図1】一実施形態に係るテストケース生成装置に用いられる各モデルの階層を説明するための模式図である。
【図2】同実施形態におけるテストケース生成装置の構成を示す模式図である。
【図3】同実施形態における設計要素記憶部を説明するための模式図である。
【図4】同実施形態における設計要素記憶部を説明するための模式図である。
【図5】同実施形態における設計メタメタモデル記憶部を説明するための模式図である。
【図6】同実施形態における設計メタメタモデル、テストケースメタメタモデル及びマッピングルールメタメタモデルを示す模式図である。
【図7】同実施形態における設計メタモデル記憶部を説明するための模式図である。
【図8】同実施形態における設計メタモデル記憶部を説明するための模式図である。
【図9】同実施形態におけるテストケースメタメタモデル記憶部を説明するための模式図である。
【図10】同実施形態におけるテストケースメタモデル記憶部を説明するための模式図である。
【図11】同実施形態におけるテストケースメタモデル記憶部を説明するための模式図である。
【図12】同実施形態におけるマッピングルールメタメタモデル記憶部を説明するための模式図である。
【図13】同実施形態におけるマッピングルールメタモデル記憶部を説明するための模式図である。
【図14】同実施形態におけるマッピングルールメタモデル記憶部を説明するための模式図である。
【図15】同実施形態におけるテストケース記憶部を説明するための模式図である。
【図16】同実施形態におけるテストケース生成装置の全体動作を説明するためのフローチャートである。
【図17】同実施形態における設計メタモデルの作成・登録の動作を説明するためのフローチャートである。
【図18】同実施形態における設計メタメタモデルの一部を示す模式図である。
【図19】同実施形態において作成・登録された設計メタモデル要素データ及び設計メタモデル要素属性データの一例を示す模式図である。
【図20】同実施形態において作成・登録された関連先の設計メタモデル要素データの一例を示す模式図である。
【図21】同実施形態において作成・登録された設計メタモデルの一部を示す模式図である。
【図22】同実施形態における設計メタモデルの検証の動作を説明するためのフローチャートである。
【図23】同実施形態における設計要素の作成・登録の動作を説明するための模式図である。
【図24】同実施形態におけるテストケースメタモデルの作成・登録の動作を説明するための模式図である。
【図25】同実施形態におけるテストケースメタメタモデルの一部を示す模式図である。
【図26】同実施形態において作成・登録されたテストケースメタモデル要素データ及びテストケースメタモデル要素属性データの一例を示す模式図である。
【図27】同実施形態において作成・登録されたテストケースメタモデルの一部を示す模式図である。
【図28】同実施形態におけるテストケースメタモデルの検証の動作を説明するためのフローチャートである。
【図29】同実施形態におけるマッピングルールメタモデルの作成・登録の動作を説明するためのフローチャートである。
【図30】同実施形態におけるマッピングルールメタメタモデルの一部を示す模式図である。
【図31】同実施形態において作成・登録されたマッピングルールメタモデル要素データ及びマッピングルールメタモデル要素属性データの一例を示す模式図である。
【図32】同実施形態において作成・登録されたマッピングルールの一部を示す模式図である。
【図33】同実施形態におけるマッピングルールメタモデルの検証の動作を説明するためのフローチャートである。
【図34】同実施形態におけるテストケースの生成の動作を説明するためのフローチャートである。
【図35】同実施形態におけるテストケーステンプレート及びマッピングルールメタモデルを示す模式図である。
【図36】同実施形態においてテストケーステンプレートの置換部分への置換に用いられる要素データ、要素項目データ及び要素処理データの一例を示す模式図である。
【図37】同実施形態において生成されたテストケースの一例を示す模式図である。
【発明を実施するための形態】
【0033】
以下、本発明の各実施形態について図面を用いて説明する。なお、以下の各装置は、装置毎に、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。
【0034】
本実施形態では、テスト対象の要件/設計要素の構造(設計メタモデル)を、テストケースの構造(テストケースメタモデル)にマッピングすることにより、テストケースの生成を行うことができる。実際に、要件/設計要素をテストケースに変換する際には、テストケースのテンプレートを用意する。但し、このテストケースのテンプレートは、テストケースの構造(テストケースメタモデル)の種類だけ用意すればよい。また、テスト対象の要件/設計要素の構造(設計メタモデル)、テストケースの構造(テストケースメタモデル)、及び両者のマッピングルール(マッピングルールメタモデル)を、利用者が定義してシステムに取り込むことを可能にし、テストケース生成の適用範囲を拡げることも容易になる。
【0035】
設計メタモデルの構造のパターン、テストケースメタモデルの構造のパターン、及び両者間のマッピングルールメタモデルのパターンは、図1に示すように、各メタモデルの上層である各メタメタモデルの階層で記述できるようにする。メタメタモデルの階層で、メタモデルの構造のパターンを記述することにより、メタメタモデルを利用してメタモデルの検証を可能にする。
【0036】
本実施形態での用語の定義は、以下の通りである。
【0037】
要件/設計要素は、要件定義や外部設計、内部設計の結果である成果物、要件定義書や、設計書の内容を表す。以下の説明では、要件定義書の内容を示す要件要素と、設計書の内容を表す設計要素のうち、設計要素を代表例に用いて要件/設計要素を述べる。
【0038】
設計メタモデルは、設計要素を構成する要素が、どのような属性をもち、他の要素とどのように関連しているかを表したモデルを表す。設計メタモデルは、例えば、UML(Unified Modeling Language:統一モデリング言語)のクラス図の表記で記述される。
【0039】
設計メタメタモデルは、設計メタモデルの要素が、他の要素とどのように関連しているか、その構造を表したモデルを表す。また、設計メタメタモデルは、設計メタモデルの構造のパターンを表しており、例えば、UMLのクラス図の表記で記述される。
【0040】
テストケースは、テスト対象である設計要素のテストの最小単位を表す。
【0041】
・テストケースメタモデルは、テストケースを構成する要素が、どのような属性をもち、他の要素とどのように関連しているかを表したモデルを表しており、例えば、UMLのクラス図の表記で記述される。
【0042】
テストケースメタメタモデルは、テストケースメタモデルの要素が、他の要素とどのように関連しているか、その構造を表したモデルを表す。テストケースメタメタモデルは、テストケースメタモデルの構造のパターンを表しており、例えば、UMLのクラス図の表記で記述される。
【0043】
マッピングルールメタモデルは、設計メタモデルとテストケースメタモデルの対応関係を表したモデルを表し、例えば、UMLのクラス図の表記で記述される。
【0044】
マッピングルールメタメタモデルは、設計メタメタモデルとテストケースメタメタモデルの対応関係を表したモデルを表す。マッピングルールメタメタモデルは、設計メタモデルとテストケースメタモデルのマッピングの構造のパターンを表しており、例えば、UMLのクラス図の表記で記述される。
【0045】
次に、一実施形態の具体的な構成について説明する。図2は一実施形態に係るテストケース生成装置の構成を示す模式図である。このテストケース生成装置は、テスト対象の設計書に記述された画面又はデータに対応する設計要素と、設計要素の構造を表す設計メタモデルと、設計メタモデルの構造を表す設計メタメタモデルと、設計要素を用いてテスト内容を記述したテストケースの構造を表すテストケースメタモデルと、テストケースメタモデルの構造を表すテストケースメタメタモデルと、テストケースメタメタモデル及び設計メタメタモデル間の関係を表すマッピングルールメタメタモデルと、テストケースメタモデル及び設計メタモデル間の関連付けを表すマッピングルールメタモデルと、テストデータとを記憶する記憶部201〜208を備えている。また、テストケース生成装置は、設計要素との置換部分を含んでテストケースのひな型を表すテストケーステンプレートをテストケースメタモデルの一部として準備し、テストケーステンプレートの置換部分をテスト対象の設計要素に置換してテストケースを生成する。
【0046】
具体的には、テストケース生成装置は、入出力部200、設計要素記憶部201、設計メタメタモデル記憶部202、設計メタモデル記憶部203、テストケースメタメタモデル記憶部204、テストケースメタモデル記憶部205、マッピングルールメタメタモデル記憶部206、マッピングルールメタモデル記憶部207、テストケース記憶部208、制御部209、設計メタモデル登録部210、設計メタモデル検証部211、設計要素入力部212、テストケースメタモデル登録部213、テストケースメタモデル検証部214、マッピングルールメタモデル登録部215、マッピングルールメタモデル検証部216及びテストケース生成部217を備えている。
【0047】
ここで、入出力部200は、テストケース生成者(本システムの利用者)に対するユーザ・インタフェースである。入出力部200としては、例えば、ディスプレイ等の表示出力装置と、キーボード及びマウス等の入力装置とが使用可能となっている。すなわち、入出力部200は、テストケース生成者の操作により、種々のデータを制御部209に入力する機能と、制御部209から受けるデータを表示する機能と、この表示により、種々のデータの入力を促す機能とをもっている。
【0048】
設計要素記憶部201は、図3及び図4に示すように、各部209〜217から読出/書込可能であって、テスト対象の設計書に記述された画面又はデータに対応する設計要素201aを記憶するためのDBMS(DataBase Management System)、記憶装置又は記憶装置の記憶領域である。なお、各記憶部201〜208は、別々の記憶装置として実現してもよく、同一の記憶装置内の別々の記憶領域として実現してもよい。
【0049】
ここで、設計要素201aは、設計要素を特定する要素データ201a1,201a4、当該設計要素の項目を示す要素項目データ201a2,201a5及び当該設計要素の処理を示す要素処理データ201a3から構成される。
【0050】
要素データ201a1,201a4は、設計要素を識別する要素IDの項目と値及び設計要素の名称を示す設計要素名の項目と値を含んでいる。
【0051】
要素項目データ201a2,201a5は、要素IDの項目と値、要素の項目を識別する要素項目IDの項目と値、要素の項目の名称を示す要素項目名の項目と値を含んでいる。
【0052】
要素処理データ201a3は、要素IDの項目と値、設計要素の処理を識別する要素処理IDの項目と値、設計要素の処理の名称を示す要素処理名の項目と値、要素項目IDの項目と値、イベントを識別するイベントIDの項目と値、処理先の要素項目IDの項目と値、設計要素の処理の結果を示す処理結果の項目と値を含んでいる。
【0053】
設計メタメタモデル記憶部202は、図5に示すように、各部209〜217から読出/書込可能であって、設計メタモデルの構造を表す設計メタメタモデル202aを記憶するためのDBMS、記憶装置又は記憶装置の記憶領域である。
【0054】
ここで、設計メタメタモデル202aは、設計要素を表す設計要素クラスに汎化される全体要素クラス及び項目要素クラスと、当該汎化される全体要素クラス又は項目要素クラス間の関係を示す組合せ情報クラス及び遷移情報クラスとの4種類の要素が設計メタモデルにあることを表し、項目要素クラスが多重度0以上で所有されるように全体要素クラスに関連付けられ、組合せ情報クラスが当該汎化されるいずれかの各要素クラスの関係を示す関連クラスであり、遷移情報クラスが当該汎化されるいずれかの各要素クラスに関連付けられることを表す情報である。また、設計メタメタモデル202aは、図6に示すように、他のメタメタモデル204a,206aと関係している。
【0055】
設計メタモデル記憶部203は、図7及び図8に示すように、各部209〜217から読出/書込可能であって、設計要素の構造を表す設計メタモデル203aを記憶するためのDBMS、記憶装置又は記憶装置の記憶領域である。
【0056】
補足すると、設計メタモデル記憶部203は、設計メタモデル203aを表すUMLのクラス図、設計メタモデル203aを構成する設計メタモデル要素を示す設計メタモデル要素データ203a1、当該設計メタモデル要素の属性を示す設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3が書き込まれる。
【0057】
設計メタモデル203aを表すUMLのクラス図は、全体要素クラス及び項目要素クラスの両者に対応するステレオタイプ名と設計メタモデル要素の名称を示すメタモデル要素名とをもつクラスと、項目要素クラスに対応するステレオタイプ名と前記メタモデル要素名とをもつクラスと、組合せ情報クラスに対応するステレオタイプ名と前記メタモデル要素名とをもつクラスと、遷移情報クラスに対応するステレオタイプ名と前記メタモデル要素名とをもつクラスとを関連付けて表した情報である。
【0058】
設計メタモデル要素データ203a1は、設計メタモデル要素を識別するメタモデル要素IDの項目と値及びメタモデル要素名の項目と値を含んでいる。
【0059】
設計メタモデル要素属性データ203a2は、メタモデル要素IDの項目と値、設計メタモデル要素の属性を識別するメタモデル要素属性IDの項目と値、設計メタモデル要素の属性の名称を示すメタモデル要素属性名の項目と値及び設計メタモデル要素の属性の型を示すメタモデル要素属性型の項目と値を含んでいる。
【0060】
関連先の設計メタモデル要素データ203a3は、設計メタモデル要素の関連先の設計メタモデル要素を識別するメタモデル要素IDの項目と値及び関連先の設計メタモデル要素の名称を示すメタモデル要素名の項目と値を含んでいる。
【0061】
テストケースメタメタモデル記憶部204は、図9に示すように、各部209〜217から読出/書込可能であって、テストケースメタモデルの構造を表すテストケースメタメタモデル204aを記憶するための記憶装置又は記憶装置の記憶領域である。
【0062】
ここで、テストケースメタメタモデル204aは、図6に示すように、設計メタメタモデル202aの設計要素クラスに関連付けられた多重度0以上のテストケース要素クラスという1種類の要素がテストケースメタモデルにあることを表し、テストケース要素クラスが一連のテスト要素を表すテストスイート要素クラスに所有され、テストケース要素クラスが多重度0以上のテスト観点クラスに関連付けられ、テストケース要素クラスがテストケーステンプレートクラスに関連付けられ、テストケーステンプレートクラスに汎化される組合せテストケーステンプレート、遷移テストケーステンプレート及び一覧テストケーステンプレートを含む情報である。
【0063】
テストケースメタモデル記憶部205は、図10及び図11に示すように、各部209〜217から読出/書込可能であって、設計要素を用いてテスト内容を記述したテストケースの構造を表すテストケースメタモデル205aを記憶するためのDBMS、記憶装置又は記憶装置の記憶領域である。
【0064】
補足すると、テストケースメタモデル記憶部205は、テストケースメタモデル205aを表すUMLのクラス図、テストケースメタモデル205aを構成するテストケースメタモデル要素を示すテストケースメタモデル要素データ205a1、当該テストケースメタモデル要素の属性を示すテストケースメタモデル要素属性データ205a2及びテストケーステンプレート205bが書き込まれる。
【0065】
ここで、テストケースメタモデル205aを表すUMLのクラス図は、設計メタモデル203aを表すクラス図内の各クラスのステレオタイプ名に代えてテストケース要素クラスに対応するステレオタイプ名をもつと共に、当該各クラスのメタモデル要素名に対するテストケース要素クラスを表すメタモデル要素名をもつ各クラスを表した情報である。
【0066】
テストケースメタモデル要素データ205a1は、テストスイート要素クラスに対応するテストスイートIDの項目と値、テストケースメタモデル要素を識別するメタモデル要素IDの項目と値及びテストケース要素クラスを表すメタモデル要素名の項目と値を含んでいる。
【0067】
テストケースメタモデル要素属性データ205a2は、メタモデル要素IDの項目と値、テストケースメタモデル要素の属性を識別するメタモデル要素属性IDの項目と値、テストケースメタモデル要素の属性の名称を示すメタモデル要素属性名の項目と値及びテストケースメタモデル要素の属性の型を示すメタモデル要素属性型の項目と値を含んでいる。
【0068】
テストケーステンプレート205bは、設計要素との置換部分として要素データ、要素項目データ及び要素処理データ内のいずれかの項目を含んでいるテストケースが記述されている。
【0069】
マッピングルールメタメタモデル記憶部206は、図12及び図6に示すように、各部209〜217から読出/書込可能であって、テストケースメタメタモデル204a及び設計メタメタモデル202a間の関係を表すマッピングルールメタメタモデル206aを記憶するためのDBMS、記憶装置又は記憶装置の記憶領域である。
【0070】
ここで、マッピングルールメタメタモデル206aは、設計メタメタモデル202a内の設計要素とテストケースメタメタモデル204a内のテストケース要素との関係を示す関連クラスであるマッピングルール要素クラスに汎化される組合せマッピングルール要素クラス、遷移マッピングルール要素クラス及び一覧マッピングルール要素クラスの3種類の要素がマッピングルールメタモデルにあることを表す情報である。
【0071】
マッピングルールメタモデル記憶部207は、図13及び図14に示すように、各部209〜217から読出/書込可能であって、テストケースメタモデル205a及び設計メタモデル203a間の関連付けを表すマッピングルールメタモデル207aを記憶するためのDBMS、記憶装置又は記憶装置の記憶領域である。
【0072】
補足すると、マッピングルールメタモデル記憶部207は、マッピングルールメタモデル207aを表すUMLのクラス図、マッピングルールメタモデル207aを構成するマッピングルールメタモデル要素を示すマッピングルールメタモデル要素データ207a1、及び当該マッピングルールメタモデル要素の属性を示すマッピングルールメタモデル要素属性データ207a2が書き込まれる。
【0073】
ここで、マッピングルールメタモデル207aを表すUMLのクラス図は、設計メタモデル203aを表すクラス図内の各クラスと、テストケースメタモデル205aを表すクラス図内の各クラスと、当該テストケースメタモデル205aを表すクラス図内の各クラスが設計メタモデル203aを表すクラス図内の各クラスに依存する旨を表すように依存元のクラスから依存先のクラスを結ぶ破線の矢印と、破線の矢印に近接して記述された依存先のクラスのステレオタイプ名とを表す情報である。
【0074】
マッピングルールメタモデル要素データ207a1は、破線の矢印を識別するマッピング要素IDの項目と値及び破線の矢印の名称を表すマッピング要素名の項目と値を含んでいる。
【0075】
マッピングルールメタモデル要素属性データ207a2は、依存先のクラスを識別する設計メタモデル要素IDの項目と値、依存元のクラスを識別するテストケースメタモデル要素IDの項目と値、及び破線の矢印に近接して記述されたステレオタイプ名の項目と値を含んでいる。
【0076】
テストケース記憶部208は、図15に示すように、各部209〜217から読出/書込可能であって、テストケーステンプレートの置換部分がテスト対象の設計要素に置換されて生成されたテストケース208dを記憶するためのDBMS、記憶装置又は記憶装置の記憶領域である。なお、テストケース記憶部208は、利用シナリオ毎にテストケース208dを含むテストケース一覧表208a、機能毎にテストケース208dを含むテストケース一覧表208b、及び機能の組合せ毎にテストケース208dを含むテストケース一覧表208cを記憶するものとしてもよい。
【0077】
制御部209は、入出力部200及び各部210〜217を制御する機能をもっている。具体的には例えば、制御部209は、以下の機能(f209-1)〜(f209-3)をもっている。
【0078】
(f209-1) UMLのクラス図で表された設計メタメタモデル202aを予め設計メタメタモデル記憶部202に書込む機能。
【0079】
(f209-2) UMLのクラス図で表されたテストケースメタメタモデル204aを予めテストケースメタメタモデル記憶部204に書込む機能。
【0080】
(f209-3) UMLのクラス図で表されたマッピングルールメタメタモデル206aを予めマッピングルールメタメタ記憶部206に書込む機能。
【0081】
設計メタモデル登録部210は、入出力部200からの設計メタモデル登録の依頼にしたがって、設計メタモデル203aを設計メタモデル記憶部203に書き込む機能をもっている。このとき、設計メタモデル登録部210は、予め記憶された設計メタメタモデル202aに基づき、設計メタメタモデル検証部211に設計メタモデル203aを検証させる。具体的には例えば、設計メタモデル登録部210は、以下の機能(f210-1)〜(f210-4)をもっている。
【0082】
(f210-1) 設計メタメタモデル記憶部202内の設計メタメタモデル202aを入出力部200にて表示することにより、設計メタモデル203aを表すUMLのクラス図の入力を促す機能。
【0083】
(f210-2) 入力を受け付けた設計メタモデル203aを表すUMLのクラス図を設計メタモデル記憶部203に書込む機能。
【0084】
(f210-3) 設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図を入出力部200にて表示することにより、設計メタモデル203aを構成する設計メタモデル要素を示す設計メタモデル要素データ203a1、当該設計メタモデル要素の属性を示す設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3の入力を促す機能。
【0085】
(f210-4) 入力を受け付けた設計メタモデル要素データ203a1、設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3を設計メタモデル記憶部203に書込む機能。
【0086】
設計メタモデル検証部211は、設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図、設計メタモデル要素データ203a1、設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3に対し、設計メタメタモデル記憶部202内の設計メタメタモデル202aに違反している箇所を含むか否かを検証する機能をもっている。
【0087】
設計要素入力部212は、入出力部からの設計要素入力の依頼にしたがって、設計要素を設計要素記憶部201に書き込む機能をもっている。具体的には設計要素入力部212は、以下の機能(f212-1)〜(f212-2)をもっている。
【0088】
(f212-1) 設計メタモデル検証部211による検証結果が否を示す場合、設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図、設計メタモデル要素データ203a1、設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3を入出力部200にて表示することにより、設計要素を特定する要素データ201a1,201a4、当該設計要素の項目を示す要素項目データ201a2,201a5及び当該設計要素の処理を示す要素処理データ201a3の入力を促す機能。
【0089】
(f212-2) 入力を受け付けた要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3を設計要素記憶部201に書込む機能。
【0090】
テストケースメタモデル登録部213は、入出力部200からのテストケースメタモデル登録の依頼にしたがって、テストケースメタモデル205aをテストケースメタモデル記憶部205に書き込む機能をもっている。なお、テストケースメタモデル登録部213は、テストケースメタメタモデル検証部214にテストケースメタモデル205aを検証させる機能ももっている。具体的にはテストケースメタモデル登録部213は、以下の機能(f213-1)〜(f213-6)をもっている。
【0091】
(f213-1) テストケースメタメタモデル記憶部204内のテストケースメタメタモデル204aを表すUMLのクラス図及び設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図を入出力部200にて表示することにより、テストケースメタモデル205aを表すUMLのクラス図の入力を促す機能。
【0092】
(f213-2) 入力を受け付けたテストケースメタモデル205aを表すUMLのクラス図をテストケースメタモデル記憶部205に書込む機能。
【0093】
(f213-3) テストケースメタモデル記憶部205内のテストケースメタモデル205aを表すUMLのクラス図を入出力部200にて表示することにより、テストケースメタモデル205aを構成するテストケースメタモデル要素を示すテストケースメタモデル要素データ205a1及び当該テストケースメタモデル要素の属性を示すテストケースメタモデル要素属性データ205a2の入力を促す機能。
【0094】
(f213-4) 入力を受け付けたテストケースメタモデル要素データ205a1及びテストケースメタモデル要素属性データ205a2をテストケースメタモデル記憶部205に書込む機能。
【0095】
(f213-5) マッピングルールメタモデル検証部216による検証結果が否を示す場合、マッピングルールメタモデル記憶部207内のマッピングルールメタモデル207aを表すクラス図とテストケースメタモデル記憶部205内のテストケースメタモデル要素属性データ205a2とを入出力部200にて表示することにより、テストケースのひな型を表すテストケーステンプレート205bの入力を促す機能。
【0096】
なお、この機能(f213-5)は、マッピングルールメタモデル記憶部207内のマッピングルールメタモデル207aを表すクラス図とテストケースメタモデル記憶部205内のテストケースメタモデル要素属性データ205a2内のメタモデル要素属性名の値に含まれるテストケーステンプレート名とを入出力部200にて表示する機能を含んでいる。
【0097】
(f213-6) 入力を受け付けたテストケーステンプレート205bをテストケースメタモデル記憶部205に書込む機能。
【0098】
テストケースメタモデル検証部214は、テストケースメタモデル記憶部205内のテストケースメタモデル205aを表すUMLのクラス図、テストケースメタモデル要素データ205a1及びテストケースメタモデル要素属性データ205a2に対し、テストケースメタメタモデル記憶部204内のテストケースメタメタモデル204aに違反している箇所を含むか否かを検証する機能をもっている。
【0099】
マッピングルールメタモデル登録部215は、入出力部200からのマッピングルールメタモデル登録の依頼にしたがって、マッピングルールメタモデル207aをマッピングルールメタモデル記憶部207に書き込む機能をもっている。なお、マッピングルールメタモデル登録部215は、マッピングルールメタモデル検証部216にマッピングルールメタモデル207aを検証させる機能ももっている。具体的にはマッピングルールメタモデル登録部215は、以下の機能(f215-1)〜(f215-4)をもっている。
【0100】
(f215-1) テストケースメタモデル検証部214による検証結果が否を示す場合、マッピングルールメタメタモデル記憶部206内のマッピングルールメタメタモデル206aを表すUMLのクラス図、テストケースメタモデル記憶部205内のテストケースメタモデル205aを表すUMLのクラス図及び設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図を入出力部200にて表示することにより、マッピングルールメタモデル207aを表すUMLのクラス図の入力を促す機能。
【0101】
(f215-2) 入力を受け付けたマッピングルールメタモデル207aを表すUMLのクラス図をマッピングルールメタモデル記憶部207に書込む機能。
【0102】
(f215-3) マッピングルールモデル記憶部207内のマッピングルールメタモデル207aを表すUMLのクラス図、設計メタモデル記憶部203内の設計メタモデル要素データ203a1及びテストケースメタモデル記憶部205内のテストケースメタモデル要素データ205a1を入出力部200にて表示することにより、マッピングルールメタモデル207aを構成するマッピングルールメタモデル要素を示すマッピングルールメタモデル要素データ207a1及び当該マッピングルールメタモデル要素の属性を示すマッピングルールメタモデル要素属性データ207a2の入力を促す機能。
【0103】
(f215-4) 入力を受け付けたマッピングルールメタモデル要素データ207a1及びマッピングルールメタモデル要素属性データ207a2をマッピングルールメタモデル記憶部207に書込む機能。
【0104】
マッピングメタモデル検証部216は、マッピングルールメタモデル記憶部207内のマッピングルールメタモデル207aを表すUMLのクラス図、マッピングルールメタモデル要素データ207a1及びマッピングルールメタモデル要素属性データ207a2に対し、マッピングルールメタメタモデル記憶部206内のマッピングルールメタメタモデル206aに違反している箇所を含むか否かを検証する機能をもっている。
【0105】
テストケース生成部217は、入出力部200からのテストケース生成の依頼にしたがって、テストケース208dを生成する機能をもっている。テストケース208dの生成は、設計要素201aから、マッピングルールメタモデル207aに基づいて、テストケース208dへのマッピングを行うことによって実現する。具体的にはテストケース生成部217は、以下の機能(f217-1)〜(f217-2)をもっている。
【0106】
(f217-1) テストケースメタモデル記憶部205内のテストケーステンプレート205bの置換部分の各項目を、要素データ、要素項目データ及び要素処理データ内のいずれかの項目の値に置換してテストケース208dを生成する機能。
【0107】
(f217-2) 当該生成したテストケース208dをテストケース記憶部208に書込む機能。
【0108】
次に、以上のように構成されたテストケース生成装置の動作について図16乃至図37を用いて説明する。具体的には図16に示すように、設計メタモデル203aの作成・登録(ST100)、設計メタモデル203aの検証(ST200)、設計要素201aの作成・登録(ST300)、テストケースメタモデル205aの作成・登録(ST400)、テストケースメタモデル205aの検証(ST500)、マッピングルールメタモデル207aの作成・登録(ST600)、マッピングルールメタモデル207aの検証(ST700)及びテストケース208dの生成(ST800)の順に動作を述べる。また、各メタメタモデル202a,204a,206aは、予め入出力部200から制御部209を介して各記憶部202a,204a,206aに書き込まれているとする。
【0109】
始めに、ステップST100における設計メタモデル203aの作成・登録の動作について図17を用いて述べる。まず、設計メタモデル登録部210は、設計メタメタモデル記憶部202内の設計メタメタモデル202aを入出力部200にて表示することにより、設計メタモデル203aを表すUMLのクラス図の入力を促す。ここで、設計メタメタモデル202aは、作成対象である設計メタモデル203aの構造を表す。具体的には、設計メタメタモデル202aは、設計メタモデルにはどのような種類の要素(全体要素、項目要素、組合せ情報、遷移情報)があり、その要素がどのように関連付けられるか(全体要素−項目要素、(全体要素、項目要素のいずれか)−組合せ情報、(全体要素、項目要素のいずれか)−遷移情報)を表している。
【0110】
続いて、設計メタモデル登録部210は、図17に示すように、テストケース生成者による入出力部200の操作により、入力を受け付けた設計メタモデル要素を追加していき(ST101〜ST102)、次いで、設計メタモデル要素を関連付けていく(ST103〜ST104)。このとき、テストケース生成者は、追加する設計メタモデル要素に関し、要素のステレオタイプ(どんな種類か)を設計メタメタモデル202aから選択する(ST102)。また、テストケース生成者は、設計メタモデル要素どうしを関連付けるときに、関連付けのステレオタイプ(どんな関連付けか)を、設計メタメタモデル202aから選択する(ST104)。
【0111】
しかる後、設計メタモデル要素の追加が不要になれば(ST101;追加不要)、設計メタモデル登録部210は、設計メタモデル203aを登録する(ST105)。すなわち、設計メタモデル登録部210は、入力を受け付けた設計メタモデル203aを表すUMLのクラス図を設計メタモデル記憶部203に書込む。
【0112】
また、設計メタモデル登録部210は、設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図を入出力部200にて表示することにより、設計メタモデル203aを構成する設計メタモデル要素を示す設計メタモデル要素データ203a1、当該設計メタモデル要素の属性を示す設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3の入力を促す。
【0113】
しかる後、設計メタモデル登録部210は、入力を受け付けた設計メタモデル要素データ203a1、設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3を設計メタモデル記憶部203に書込む。
【0114】
このように書き込まれた設計メタモデルの例を図18、図19、図20及び図21に示す。すなわち、図18に示す設計メタメタモデル202aに対し、図19及び図20に示す設計メタモデル要素データ203a1、設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3が設計メタモデル記憶部203に書き込まれる。これにより、図21に示す部分の設計メタモデル203aが作成・登録される。
【0115】
次に、ステップST200の設計メタモデル203aの検証の動作について図22を用いて述べる。ステップST200では、設計メタモデル検証部211は、設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図、設計メタモデル要素データ203a1、設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3に対し、設計メタメタモデル記憶部202内の設計メタメタモデル202aに違反している箇所を含むか否かを検証する。このような設計メタモデルの検証においては、設計メタモデル要素を検証し、次いで、設計メタモデル要素の関連付けを検証していくことにより、検証結果を得ることができる。検証結果には、設計メタモデル203aの中で、設計メタメタモデル202aに違反している箇所が含まれる。
【0116】
具体的には設計メタモデル検証部211は、図22に示すように、メタモデル記憶部203内の全ての設計メタモデル要素データ203a1を取得し(ST201)、未検証の設計メタモデル要素データ203a1があるか否かを判定する(ST202)。ステップST202の判定結果が否の場合(ST202;なし)にはステップST213に進み、検証結果を出力して処理を終了する。
【0117】
ステップST202の判定結果が未検証のデータありを示す場合(ST202;あり)、設計メタモデル検証部211は、設計メタモデル203aを表すクラス図内の各クラスのうち、当該設定メタモデル要素データ203a1のメタモデル要素名をもつクラスからステレオタイプを取得し(ST203)、このステレオタイプ名が設計メタメタモデル202aで定義済みか否かを判定する(ST204)。ステップST204の判定結果が否の場合(ST204;未定義)、設計メタモデル検証部211は、当該設計メタモデル要素データ203a1と、ステレオタイプ名が未定義である旨とを含む検証結果を既存の検証結果に追加し(ST205)、ステップST202の処理に戻る。
【0118】
ステップST204の判定結果が定義済みを示す場合、当該設計メタモデル要素データ203a1における全ての関連先の設計メタモデル要素データ203a3を設計メタモデル記憶部203から取得し(ST206)、未検証の関連先の設計メタモデル要素データ203a3があるか否かを判定する(ST207)。ステップST207の判定結果が否の場合(ST207;なし)にはステップST202の処理に戻る。
【0119】
ステップST207の判定結果が未検証の関連先ありを示す場合(ST207;あり)、設計メタモデル検証部211は、設計メタモデル203aを表すクラス図内の各クラスのうち、当該設定メタモデル要素データ203a3の関連元の設定メタモデル要素データ203a1のメタモデル要素名をもつクラスからステレオタイプを取得し(ST208)、当該関連先の設定メタモデル要素データ203a3のメタモデル要素名をもつクラスからステレオタイプを取得し(ST209)、両クラス間の関連を示す関連ステレオタイプを当該クラス図から取得する(ST210)。
【0120】
しかる後、設計メタモデル検証部211は、この関連ステレオタイプ名が設計メタメタモデル202aで定義済みか否かを判定する(ST211)。ステップST211の判定結果が否の場合(ST211;未定義)、設計メタモデル検証部211は、当該設計メタモデル要素203a1及び関連先の設計メタモデル要素データ203a3と、両者間の関連ステレオタイプ名が未定義である旨とを含む検証結果を既存の検証結果に追加し、ステップST207の処理に戻る。なお、ステップST207の処理に戻った後、前述した通り、ステップST207の判定により未検証の関連先がなければ、ステップST202の処理に戻り、ステップST202の判定により未検証の設計メタモデル要素データ203a1がなければ、検証結果を出力して(ST213)、検証処理を終了する。
【0121】
次に、ステップST300における設計要素の作成・登録の動作について図23を用いて述べる。ステップST300における設計要素の作成・登録は、設計メタモデル203a,203a1〜203a3で示された設計要素の構造毎に、設計要素を追加していく処理により実行される。
【0122】
具体的には図23に示すように、設計要素入力部212は、設計メタモデル検証部211による検証結果が違反箇所を含まない場合、設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図、設計メタモデル要素データ203a1、設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3を取得して(ST301)入出力部200にて表示する。
【0123】
これにより、設計要素入力部212は、設計要素を特定する要素データ201a1,201a4、当該設計要素の項目を示す要素項目データ201a2,201a5及び当該設計要素の処理を示す要素処理データ201a3の入力を促す。
【0124】
ここで、これら要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3を未入力の設計メタモデル要素が無ければ(ST302;なし)、ステップST305に進み、登録を完了して処理を終了する。
【0125】
一方、未入力の設計メタモデル要素があれば(ST302;あり)、設計要素入力部212は、入出力部200から要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3の追加入力を受け付ける(ST303)。また、設計要素入力部212は、入力を受け付けた要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3を設計要素記憶部201に書込む。
【0126】
しかる後、設計要素入力部212は、未入力の要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3があれば(ST304;あり)、ステップST303の処理に戻る。
【0127】
また、設計要素入力部212は、未入力の要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3がなければ(ST304;なし)、ステップST302の処理に戻る。なお、ステップST302の処理に戻った後、前述した通り、ステップST302の判定により要素データ等を未入力の設計メタモデル要素がなければ(ST302;なし)、登録を完了して処理を終了する(ST305)。
【0128】
ステップST400におけるテストケースメタモデル205aの作成・登録の動作について図24を用いて述べる。まず、テストケースメタモデル登録部213は、テストケースメタメタモデル記憶部204内のテストケースメタメタモデル204aを表すUMLのクラス図及び設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図を入出力部200にて表示することにより、テストケースメタモデル205aを表すUMLのクラス図の入力を促す。ここで、テストケースメタメタモデル204aは、作成対象であるテストケースメタモデル205aの構造を表す。具体的には、テストケースメタメタモデル204aは、テストケースメタモデル205aにはどのような種類の要素(テストケース要素)があるのかを表す。なお、テストケースメタモデル205aの要素同士を関連付けるという考え方はない。
【0129】
続いて、テストケースメタモデル登録部213は、図24に示すように、テストケース生成者による入出力部200の操作により、テストケースメタモデル要素の追加が不要となるまで(ST401)、入力を受け付けたテストケースメタモデル要素を追加していく(ST402)。また、ステップST402中、テストケース生成者は、テストケースメタモデル要素を追加するときに、要素のステレオタイプ(どんな種類か)を、テストケースメタメタモデル204aに基づいてテストケース生成者が選択する。
【0130】
しかる後、テストケースメタモデル要素の追加が不要になれば(ST401;追加不要)、テストケースメタモデル登録部213は、テストケースメタモデル205aを登録する(ST403)。すなわち、テストケースメタモデル登録部213は、入力を受け付けたテストケースメタモデル205aを表すUMLのクラス図をテストケースメタモデル記憶部205に書込む。
【0131】
また、テストケースメタモデル登録部213は、テストケースメタモデル記憶部205内のテストケースメタモデル205aを表すUMLのクラス図を入出力部200にて表示することにより、テストケースメタモデル205aを構成するテストケースメタモデル要素を示すテストケースメタモデル要素データ205a1及び当該テストケースメタモデル要素の属性を示すテストケースメタモデル要素属性データ205a2の入力を促す。
【0132】
しかる後、テストケースメタモデル登録部213は、入力を受け付けたテストケースメタモデル要素データ205a1及びテストケースメタモデル要素属性データ205a2をテストケースメタモデル記憶部205に書込む。
【0133】
このように書き込まれたテストケースメタモデルの例を図25、図26及び図27に示す。すなわち、図25に示すテストケースメタメタモデル204aに対し、図26に示すテストケースメタモデル要素データ205a1及びテストケースメタモデル要素属性データ205a2がテストケースメタモデル記憶部205に書き込まれる。これにより、図27に示す部分のテストケースメタモデル205aが作成・登録される。
【0134】
ステップST500のテストケースメタモデル205aの検証の動作について図28を用いて述べる。ステップST500では、テストケースメタモデル検証部214は、マッピングルールメタモデル記憶部207内のマッピングルールメタモデル207aを表すUMLのクラス図、マッピングルールメタモデル要素データ207a1及びマッピングルールメタモデル要素属性データ207a2に対し、マッピングルールメタメタモデル記憶部206内のマッピングルールメタメタモデル206aに違反している箇所を含むか否かを検証する。このようなテストケースメタモデル205aの検証においては、テストケースメタモデル要素を検証していくことで、検証結果を得ることができる。検証結果には、テストケースメタモデル205aの中で、テストケースメタメタモデル204aに違反している箇所が含まれる。
【0135】
具体的にはテストケースメタモデル検証部214は、テストケースモデル記憶部205内の全てのテストケースメタモデル要素データ205a1を取得し(ST501)、未検証のテストケースメタモデル要素データ205a1があるか否かを判定する(ST502)。ステップST502の判定結果が否の場合(ST502;なし)にはステップST506に進み、検証結果を出力して処理を終了する。
【0136】
ステップST502の判定結果が未検証のデータありを示す場合(ST502;あり)、テストケースメタモデル検証部214は、テストケースメタモデル205aを表すクラス図内の各クラスのうち、当該テストケースメタモデル要素データ205a1のメタモデル要素名をもつクラスからステレオタイプを取得し(ST503)、このステレオタイプ名がテストケースメタメタモデル204aで定義済みか否かを判定する(ST504)。ステップST504の判定結果が否の場合(ST504;未定義)、テストケースメタモデル検証部214は、当該テストケースメタモデル要素データ205a1と、ステレオタイプ名が未定義である旨とを含む検証結果を既存の検証結果に追加し(ST505)、ステップST502の処理に戻る。
【0137】
ステップST504の判定結果が定義済みを示す場合、テストケースメタモデル検証部214は、ステップST502の処理に戻る。なお、ステップST502の処理に戻った後、前述した通り、ステップST502の判定により未検証のテストケースメタモデル要素データ205a1がなければ、検証結果を出力して(ST506)、検証処理を終了する。
【0138】
ステップST600におけるマッピングルールメタモデル207aの作成・登録の動作について図29を用いて述べる。始めに、マッピングルールメタモデル登録部215は、テストケースメタモデル検証部214による検証結果が違反箇所を含まない場合、設計メタモデル記憶部203から、マッピングの候補となる、マッピングルールメタメタモデル206aで定義された3種類の設計メタモデル203aの構造を持つ設計メタモデル203aの組み合わせを抽出する(ST601)。ここで、マッピングルールメタメタモデル206aは、作成対象であるマッピングルールメタモデル207aの構造を表す。具体的には、マッピングルールメタメタモデル206aは、マッピングルールメタモデル207aが対象とする設計メタモデル203aにはどのような構造があり、その設計メタモデル203aがテストケースメタモデル205aとどのように関連付くかを表す。
【0139】
続いて、マッピングルールメタモデル登録部215は、マッピングルールメタメタモデル記憶部206内のマッピングルールメタメタモデル206aを表すUMLのクラス図、テストケースメタモデル記憶部205内のテストケースメタモデル205aを表すUMLのクラス図及び設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図を入出力部200にて表示することにより、マッピングルールメタモデル登録部215は、マッピングルールメタモデル207aを表すUMLのクラス図の入力を促す。
【0140】
次いで、マッピングルールメタモデル登録部215は、抽出した設計メタモデル203aの構造毎に、テストケース生成者による入出力部200の操作により、マッピングルールメタモデル要素の追加が不要となるまで(ST602)、入力を受け付けたテストスイートメタモデル要素(ステレオタイプ全体要素をもつ設計メタモデルにマッピングするテストスイートメタモデル要素)、及びこのテストスイートメタモデル要素に関連付けるテストケースメタモデル要素を選択し(ST603,ST604)、テストケースメタモデル要素と、抽出した設計メタモデル要素の残りとを関連付けていく(ST605)。
【0141】
しかる後、マッピングルールメタモデル要素の追加が不要になれば(ST602;追加不要)、マッピングルールメタモデル207aを登録する(ST606)。すなわち、マッピングルールメタモデル登録部215は、マッピングルールメタモデル登録部215は、入力を受け付けたマッピングルールメタモデル207aを表すUMLのクラス図をマッピングルールメタモデル記憶部207に書込む。
【0142】
また、マッピングルールメタモデル登録部215は、マッピングルールモデル記憶部207内のマッピングルールメタモデル207aを表すUMLのクラス図、設計メタモデル記憶部203内の設計メタモデル要素データ203a1及びテストケースメタモデル記憶部205内のテストケースメタモデル要素データ205a1を入出力部200にて表示することにより、マッピングルールメタモデル207aを構成するマッピングルールメタモデル要素を示すマッピングルールメタモデル要素データ207a1及び当該マッピングルールメタモデル要素の属性を示すマッピングルールメタモデル要素属性データ207a2の入力を促す。
【0143】
しかる後、マッピングルールメタモデル登録部215は、入力を受け付けたマッピングルールメタモデル要素データ207a1及びマッピングルールメタモデル要素属性データ207a2をマッピングルールメタモデル記憶部207に書込む。
【0144】
このように書き込まれたマッピングルールメタモデルの例を図30、図31及び図32に示す。図30に示すマッピングルールメタメタモデル206aに対し、図31に示すマッピングルールメタモデル要素データ207a1及びマッピングルールメタモデル要素属性データ207a2がマッピングルールメタモデル記憶部207に書き込まれる。これにより、図32に示す部分のマッピングルールメタモデル207aが作成・登録される。
【0145】
ステップST700のマッピングルールメタモデル207aの検証の動作について図33を用いて述べる。ステップST700では、マッピングメタモデル検証部216は、マッピングルールメタモデル記憶部207内のマッピングルールメタモデル207aを表すUMLのクラス図、マッピングルールメタモデル要素データ207a1及びマッピングルールメタモデル要素属性データ207a2に対し、マッピングルールメタメタモデル記憶部206内のマッピングルールメタメタモデル206aに違反している箇所を含むか否かを検証する。このようなマッピングルールメタモデル207aの検証においては、マッピングルールメタモデル要素を検証し、次いで、マッピングルールメタモデル要素の関連付けを検証していくことで、検証結果を得ることができる。検証結果には、マッピングルールメタモデル207aの中で、マッピングルールメタメタモデル206aに違反している箇所が含まれる。
【0146】
具体的にはマッピングルールメタモデル検証部216は、図33に示すように、マッピングルールメタモデル記憶部207内の全てのマッピングルールメタモデル要素データ207a1を取得し(ST701)、未検証のマッピングルールメタモデル要素データ207a1があるか否かを判定する(ST702)。ステップST702の判定結果が否の場合(ST702;なし)にはステップST712に進み、検証結果を出力して処理を終了する。
【0147】
ステップST702の判定結果が未検証のデータありを示す場合(ST702;あり)、マッピングルールメタモデル検証部216は、未検証のマッピングルールメタモデル要素データ207a1が設計メタモデル203a又はテストケースメタモデル205aで定義済みか否かを判定する(ST703)。ステップST703の判定結果が否の場合(ST703;未定義)、マッピングルールメタモデル検証部214は、当該マッピングルールメタモデル要素データ207a1が未定義である旨を含む検証結果を既存の検証結果に追加し(ST704)、ステップST702の処理に戻る。
【0148】
ステップST703の判定結果が定義済みを示す場合、当該マッピングルールメタモデル要素データ207a1における全ての関連先のメタモデル要素データ203a1をメタモデル記憶部203から取得し(ST705)、未検証の関連先のメタモデル要素データ203a1があるか否かを判定する(ST706)。ステップST706の判定結果が否の場合(ST706;なし)にはステップST702の処理に戻る。
【0149】
ステップST706の判定結果が未検証の関連先ありを示す場合(ST706;あり)、マッピングルールメタモデル検証部216は、マッピングルールメタモデル207aを表すクラス図内の各クラスのうち、当該マッピングルールメタモデル要素データ203a3の関連元のテストケースメタモデル要素データ205a1のメタモデル要素名をもつクラスからステレオタイプを取得し(ST707)、当該関連先の設定メタモデル要素データ203a1のメタモデル要素名をもつクラスからステレオタイプを取得し(ST708)、両クラス間の関連を示す関連ステレオタイプを当該クラス図から取得する(ST709)。
【0150】
しかる後、マッピングルールメタモデル検証部216は、この関連ステレオタイプ名がマッピングルールメタメタモデル206aで定義済みか否かを判定する(ST710)。ステップST710の判定結果が否の場合(ST710;未定義)、マッピングルールメタモデル検証部216は、当該テストケースメタモデル要素205a1及び関連先の設計メタモデル要素データ203a1と、両者間の関連ステレオタイプ名が未定義である旨とを含む検証結果を既存の検証結果に追加し(ST711)、ステップST706の処理に戻る。なお、ステップST706の処理に戻った後、前述した通り、ステップST706の判定により未検証の関連先がなければ、ステップST702の処理に戻り、ステップST702の判定により未検証のマッピングルールメタモデル要素データ207a1がなければ、検証結果を出力して(ST712)、検証処理を終了する。
【0151】
なお、マッピングルールメタモデル検証部216による検証結果が違反箇所を含まない場合、テストケースメタモデル登録部213は、マッピングルールメタモデル記憶部207内のマッピングルールメタモデル207aを表すクラス図とテストケースメタモデル記憶部205内のテストケースメタモデル要素属性データ205a2とを入出力部200にて表示することにより、テストケースのひな型を表すテストケーステンプレート205bの入力を促す。なお、入出力部200による表示は、マッピングルールメタモデル記憶部207内のマッピングルールメタモデル207aを表すクラス図とテストケースメタモデル記憶部205内のテストケースメタモデル要素属性データ205a2内のメタモデル要素属性名の値に含まれるテストケーステンプレート名とを含んでいる。
【0152】
しかる後、テストケースメタモデル登録部213は、入力を受け付けたテストケーステンプレート205bをテストケースメタモデル記憶部205に書込む。
【0153】
次に、ステップST800のテストケース208dの生成の動作について図34を用いて述べる。ステップST800では、テストケース生成部217は、テストケースメタモデル記憶部205内のテストケーステンプレート205bの置換部分の各項目を、要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3内のいずれかの項目の値に置換してテストケース208dを生成する。このようなテストケース208dの生成は、全てのテストスイートメタモデル要素の、全てのテストケースメタモデル要素に対して行う。テストケースメタモデル要素には、テストケーステンプレート205bがある。そのテンプレート205bの可変部分を、設計要素で置換していくことで、テストケース208dを生成する。
【0154】
具体的にはテストケース生成部217は、図34に示すように、テストケースメタモデル記憶部205内の全てのテストスイートメタモデル要素を取得し(ST801)、未生成のテストスイートメタモデル要素があるか否かを判定する(ST802)。ステップST802の判定結果が否の場合(ST802;なし)にはステップST812に進み、テストケースを出力して処理を終了する。
【0155】
ステップST802の判定結果が未生成のテストスイートメタモデル要素ありを示す場合(ST802;あり)、テストケース生成部217は、当該テストスイートメタモデル要素に関連付く全てのテストケースメタモデル要素208a1をテストケースメタモデル記憶部205から取得する(ST803)。
【0156】
次に、テストケース生成部217は、未生成のテストケースメタモデル要素があるか否かを判定し(ST804)、判定結果が否の場合(ST804;なし)にはステップST802に戻る。
【0157】
ステップST804の判定結果が未生成のテストケースメタモデル要素ありを示す場合(ST804;あり)、テストケース生成部217は、当該テストケースメタモデル要素に関連付くテストケーステンプレート205bをテストケースメタモデル記憶部205から取得する(ST805)。
【0158】
続いて、テストケース生成部217は、テストスイートメタモデル要素に関連付く設計メタモデル要素に基づく設計要素を設計要素記憶部201から取得し(ST806)、テストケースメタモデル要素に関連付く設計要素を設計要素記憶部201から取得する(ST807)。
【0159】
しかる後、テストケース生成部217は、テストケーステンプレート205b内に未変換の可変部分があるか否かを判定し(ST808)、可変部分があれば、当該可変部分に対応する設計要素を構成する要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3を取得し(ST809)、テストケーステンプレート205bの置換部分の各項目を、要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3内のいずれかの項目の値に置換する(ST810)。
【0160】
ステップST808の判定の結果、未変換の可変部分がなければ(ST808;なし)、テストケース生成部217は、全ての可変部分を置換後のテストケーステンプレート205bをテストケース208dとして生成し、当該生成したテストケース208dをテストケース記憶部208に追加(書込み)して、ステップST804に戻る。
【0161】
なお、ステップST804の処理に戻った後、テストケース生成部217は、前述した通り、ステップST804の判定により、未生成のテストケースメタモデル要素がなければ(ST804;なし)、ステップST802に戻り、未生成のテストスイートメタモデル要素がなければ(ST802;なし)、テストケース208dを出力して(ST812)、処理を終了する。
【0162】
このようにテストケースを生成する例を図35、図36及び図37に示す。すなわち、図35に示すテストケーステンプレート205bの置換部分の各項目を、図36に示す要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3内のいずれかの項目の値に置換する。このような置換後のテストケーステンプレート205bとして、図37に示すテストケース205bが生成される。
【0163】
上述したように本実施形態によれば、テスト対象の設計書に記述された画面又はデータに対応する設計要素201aの構造を表す設計メタモデル203aと、設計メタモデル203aの構造を表す設計メタメタモデル202aと、設計要素201aを用いてテスト内容を記述したテストケース208dの構造を表すテストケースメタモデル205aと、テストケースメタモデル205aの構造を表すテストケースメタメタモデル204aと、テストケースメタメタモデル204a及び設計メタメタモデル202a間の関係を表すマッピングルールメタメタモデル206aと、テストケースメタモデル205a及び設計メタモデル203a間の関連付けを表すマッピングルールメタモデル207aとを用い、設計要素201aとの置換部分を含んでテストケース208dのひな型を表すテストケーステンプレート205bを準備する構成により、テストケース生成の際に、未熟な作業者に対してもテストケースの漏れの発生を無くすことができる。
【0164】
また、本実施形態によれば、設計要素201a及びテストケーステンプレート205bに基づいてテストケース208dを生成する構成により、テスト対象からテストケースを生成する作業を自動化することができる。
【0165】
また、メタメタモデル202a,204a,206aを利用することにより、設計メタモデル203a、テストケースメタモデル205a、マッピングルールメタモデル207aの作成が容易になり、作成したメタモデル203a,205a,207aの検証が可能になる。
【0166】
さらに、テストケース生成者のノウハウや経験を、設計メタモデル203a、テストケースメタモデル205a、マッピングルールメタモデル207aという形で形式知化して蓄積することができるため、生成されるテストケース208dのバラつきがなくなり、テストケース208dの品質を向上させることができる。
【0167】
補足すると、本実施形態は、特許文献1に記載の技術とは異なり、固定のテストシナリオ作成ルールを持たないことから、テストシナリオ生成の適用範囲が限定されない。また、本実施形態は、特許文献2に記載の技術とは異なり、テスト仕様書のテンプレートをテストのパターン毎に用意しないことから、テスト仕様書テンプレートの作成に手間がかからない。
【0168】
また、本実施形態の設計要素201a、設計メタモデル203a、設計メタメタモデル202a、テストケースメタモデル205a、テストケースメタメタモデル204a、マッピングルールメタモデル207a、マッピングルールメタメタモデル206a及びテストケース208dは、DBMSに格納してもよく、表形式のファイルに格納してもよい。
【0169】
また、本実施形態の設計メタメタモデル202aでは、3種類の構造(一覧、遷移、組合)を対象にしているが、その他の構造としてもよい。また、本実施形態のマッピングルールメタメタモデル206aでは、設計メタメタモデル202aの3種類の構造毎に一つずつ計3種類のマッピングの構造を定義しているが、その他のマッピングの構造を定義してもよい。
【0170】
また、本実施形態は、設計メタメタモデル202aの組合せ構造に基づいて、設計メタモデル203aを構築する際に、二つの設計メタモデル要素を選択して組み合わせているが、三つ以上で組み合わせることもできる。
【0171】
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0172】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0173】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
【0174】
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0175】
また、記憶媒体は1つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【0176】
なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【0177】
また、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0178】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0179】
200…入出力部、201…設計要素記憶部、201a…設計要素、201a1,201a4…要素データ、201a2,201a5…要素項目データ、201a3…要素処理データ、202…設計メタメタモデル記憶部、202a…設計メタメタモデル、203…設計メタモデル記憶部、203a…設計メタモデル、203a1…設計メタモデル要素データ、203a2…設計メタモデル要素属性データ、203a3…関連先の設計メタモデル要素データ、204…テストケースメタメタモデル記憶部、204a…テストケースメタメタモデル、205…テストケースメタモデル記憶部、205a…テストケースメタモデル、205a1…テストケースメタモデル要素データ、205a2…テストケースメタモデル要素属性データ、205b…テストケーステンプレート、206…マッピングルールメタメタモデル記憶部、206a…マッピングルールメタメタモデル、207…マッピングルールメタモデル記憶部、207a…マッピングルールメタモデル、207a1…マッピングルールメタモデル要素データ、207a2…マッピングルールメタモデル要素属性データ、208…テストケース記憶部、208a〜208c…テストケース一覧表、208d…テストケース、209…制御部、210…設計メタモデル登録部、211…設計メタモデル検証部、212…設計要素入力部、213…テストケースメタモデル登録部、214…テストケースメタモデル検証部、215…マッピングルールメタモデル登録部、216…マッピングルールメタモデル検証部、217…テストケース生成部。
【技術分野】
【0001】
本発明の実施形態は、テストケース生成プログラム及びテストケース生成装置に関する。
【背景技術】
【0002】
一般に、テストケースを生成する作業者は、システム全体、機能の組合せ又は機能等のテスト対象毎に、テストケースへのマッピング方法(変換方法)を検討する。その後、作業者は、得られたマッピング方法に基づき、テスト対象からテストケースを生成する。
【0003】
例えば、作業者は、テスト対象の要件/設計要素からテストケースへのマッピング方法を個別に検討して抽出する。続いて、作業者は、抽出したマッピング方法に基づき、要件/設計要素をテストケースにマッピングし、テストケースを生成する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2004−220330号公報
【特許文献2】特許第3464159号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、以上のようなテストケース生成作業では、マッピング方法をどのように抽出するかが不明確であり、マッピング方法を個別に検討する手間がかかる結果、生成されるテストケースの質が低下する傾向にある。なお、ここでいう質の低下は、作業者のノウハウや経験に依存して発生しており、要件/設計要素に対応するテストケース全体が漏れている場合や、テスト条件が不十分なためにテストケースの一部が漏れている場合がある。すなわち、未熟な作業者である程、テストケースに漏れが発生し易い傾向にある。
【0006】
従って、テストケース生成の際に、未熟な作業者に対してもテストケースの漏れの発生を無くすことが求められている。
【0007】
本発明が解決しようとする課題は、テストケース生成の際に、未熟な作業者に対してもテストケースの漏れの発生を無くし得るテストケース生成プログラム及びテストケース生成装置を提供することである。
【課題を解決するための手段】
【0008】
実施形態のテストケース生成装置は、テスト対象の設計書に記述された画面又はデータに対応する設計要素と、前記設計要素の構造を表す設計メタモデルと、前記設計メタモデルの構造を表す設計メタメタモデルと、前記設計要素を用いてテスト内容を記述したテストケースの構造を表すテストケースメタモデルと、前記テストケースメタモデルの構造を表すテストケースメタメタモデルと、前記テストケースメタメタモデル及び前記設計メタメタモデル間の関係を表すマッピングルールメタメタモデルと、前記テストケースメタモデル及び前記設計メタモデル間の関連付けを表すマッピングルールメタモデルと、前記テストケースとを記憶するための記憶手段を備えている。
【0009】
前記テストケース生成装置は、前記設計要素との置換部分を含んで前記テストケースのひな型を表すテストケーステンプレートを前記テストケースメタモデルの一部として準備し、前記テストケーステンプレートの置換部分を前記テスト対象の設計要素に置換して前記テストケースを生成する。
【0010】
前記テストケース生成装置は、それぞれUMLのクラス図で表された前記設計メタメタモデル、前記テストケースメタメタモデル及び前記マッピングルールメタメタモデルを予め前記記憶手段に書込む。
【0011】
前記テストケース生成装置は、前記記憶手段内の設計メタメタモデルを表示することにより、前記設計メタモデルを表すUMLのクラス図の入力を促す。
【0012】
前記テストケース生成装置は、前記入力を受け付けた前記設計メタモデルを表すUMLのクラス図を前記記憶手段に書込む。
【0013】
前記テストケース生成装置は、前記記憶手段内の前記設計メタモデルを表すUMLのクラス図を表示することにより、前記設計メタモデルを構成する設計メタモデル要素を示す設計メタモデル要素データ、当該設計メタモデル要素の属性を示す設計メタモデル要素属性データ及び関連先の設計メタモデル要素データの入力を促す。
【0014】
前記テストケース生成装置は、前記入力を受け付けた前記設計メタモデル要素データ、前記設計メタモデル要素属性データ及び前記関連先の設計メタモデル要素データを前記記憶手段に書込む。
【0015】
前記テストケース生成装置は、前記記憶手段内の前記設計メタモデルを表すUMLのクラス図、前記設計メタモデル要素データ、前記設計メタモデル要素属性データ及び前記関連先の設計メタモデル要素データに対し、前記記憶手段内の設計メタメタモデルに違反している箇所を含むか否かを検証する。
【0016】
前記テストケース生成装置は、この検証結果が否を示す場合、前記記憶手段内の前記設計メタモデルを表すUMLのクラス図、前記設計メタモデル要素データ、前記設計メタモデル要素属性データ及び前記関連先の設計メタモデル要素データを表示することにより、前記設計要素を特定する要素データ、当該設計要素の項目を示す要素項目データ及び当該設計要素の処理を示す要素処理データの入力を促す。
【0017】
前記テストケース生成装置は、前記入力を受け付けた前記要素データ、前記要素項目データ及び前記要素処理データを前記記憶手段に書込む。
【0018】
前記テストケース生成装置は、前記記憶手段内のテストケースメタメタモデルを表すUMLのクラス図及び前記設計メタモデルを表すUMLのクラス図を表示することにより、前記テストケースメタモデルを表すUMLのクラス図の入力を促す。
【0019】
前記テストケース生成装置は、前記入力を受け付けた前記テストケースメタモデルを表すUMLのクラス図を前記記憶手段に書込む。
【0020】
前記テストケース生成装置は、前記記憶手段内の前記テストケースメタモデルを表すUMLのクラス図を表示することにより、前記テストケースメタモデルを構成するテストケースメタモデル要素を示すテストケースメタモデル要素データ及び当該テストケースメタモデル要素の属性を示すテストケースメタモデル要素属性データの入力を促す。
【0021】
前記テストケース生成装置は、前記入力を受け付けた前記テストケースメタモデル要素データ及び前記テストケースメタモデル要素属性データを前記記憶手段に書込む。
【0022】
前記テストケース生成装置は、前記記憶手段内の前記テストケースメタモデルを表すUMLのクラス図、前記テストケースメタモデル要素データ及び前記テストケースメタモデル要素属性データに対し、前記記憶手段内のテストケースメタメタモデルに違反している箇所を含むか否かを検証する。
【0023】
前記テストケース生成装置は、この検証結果が否を示す場合、前記記憶手段内のマッピングルールメタメタモデルを表すUMLのクラス図、前記記憶手段内のテストケースメタモデルを表すUMLのクラス図及び前記設計メタモデルを表すUMLのクラス図を表示することにより、前記マッピングルールメタモデルを表すUMLのクラス図の入力を促す。
【0024】
前記テストケース生成装置は、前記入力を受け付けた前記マッピングルールメタモデルを表すUMLのクラス図を前記記憶手段に書込む。
【0025】
前記テストケース生成装置は、前記記憶手段内の前記マッピングルールメタモデルを表すUMLのクラス図、前記設計メタモデル要素データ及び前記テストケースメタモデル要素データを表示することにより、前記マッピングルールメタモデルを構成するマッピングルールメタモデル要素を示すマッピングルールメタモデル要素データ及び当該マッピングルールメタモデル要素の属性を示すマッピングルールメタモデル要素属性データの入力を促す。
【0026】
前記テストケース生成装置は、前記入力を受け付けた前記マッピングルールメタモデル要素データ及び前記マッピングルールメタモデル要素属性データを前記記憶手段に書込む。
【0027】
前記テストケース生成装置は、前記記憶手段内の前記マッピングルールメタモデルを表すUMLのクラス図、前記マッピングルールメタモデル要素データ及び前記マッピングルールメタモデル要素属性データに対し、前記記憶手段内のマッピングルールメタメタモデルに違反している箇所を含むか否かを検証する。
【0028】
前記テストケース生成装置は、この検証結果が否を示す場合、前記記憶手段内のマッピングルールメタモデルを表すクラス図と前記テストケースメタモデル要素属性データとを表示することにより、前記設計要素との置換部分として前記要素データ、前記要素項目データ及び前記要素処理データ内のいずれかの項目を含んで前記テストケースのひな型を表すテストケーステンプレートの入力を促す。
【0029】
前記テストケース生成装置は、前記入力を受け付けたテストケーステンプレートを前記記憶手段に書込む。
【0030】
前記テストケース生成装置は、前記記憶手段内の前記テストケーステンプレートの置換部分の各項目を、前記要素データ、前記要素項目データ及び前記要素処理データ内の前記いずれかの項目の値に置換して前記テストケースを生成する。
【0031】
前記テストケース生成装置は、当該生成したテストケースを前記記憶手段に書込む。
【図面の簡単な説明】
【0032】
【図1】一実施形態に係るテストケース生成装置に用いられる各モデルの階層を説明するための模式図である。
【図2】同実施形態におけるテストケース生成装置の構成を示す模式図である。
【図3】同実施形態における設計要素記憶部を説明するための模式図である。
【図4】同実施形態における設計要素記憶部を説明するための模式図である。
【図5】同実施形態における設計メタメタモデル記憶部を説明するための模式図である。
【図6】同実施形態における設計メタメタモデル、テストケースメタメタモデル及びマッピングルールメタメタモデルを示す模式図である。
【図7】同実施形態における設計メタモデル記憶部を説明するための模式図である。
【図8】同実施形態における設計メタモデル記憶部を説明するための模式図である。
【図9】同実施形態におけるテストケースメタメタモデル記憶部を説明するための模式図である。
【図10】同実施形態におけるテストケースメタモデル記憶部を説明するための模式図である。
【図11】同実施形態におけるテストケースメタモデル記憶部を説明するための模式図である。
【図12】同実施形態におけるマッピングルールメタメタモデル記憶部を説明するための模式図である。
【図13】同実施形態におけるマッピングルールメタモデル記憶部を説明するための模式図である。
【図14】同実施形態におけるマッピングルールメタモデル記憶部を説明するための模式図である。
【図15】同実施形態におけるテストケース記憶部を説明するための模式図である。
【図16】同実施形態におけるテストケース生成装置の全体動作を説明するためのフローチャートである。
【図17】同実施形態における設計メタモデルの作成・登録の動作を説明するためのフローチャートである。
【図18】同実施形態における設計メタメタモデルの一部を示す模式図である。
【図19】同実施形態において作成・登録された設計メタモデル要素データ及び設計メタモデル要素属性データの一例を示す模式図である。
【図20】同実施形態において作成・登録された関連先の設計メタモデル要素データの一例を示す模式図である。
【図21】同実施形態において作成・登録された設計メタモデルの一部を示す模式図である。
【図22】同実施形態における設計メタモデルの検証の動作を説明するためのフローチャートである。
【図23】同実施形態における設計要素の作成・登録の動作を説明するための模式図である。
【図24】同実施形態におけるテストケースメタモデルの作成・登録の動作を説明するための模式図である。
【図25】同実施形態におけるテストケースメタメタモデルの一部を示す模式図である。
【図26】同実施形態において作成・登録されたテストケースメタモデル要素データ及びテストケースメタモデル要素属性データの一例を示す模式図である。
【図27】同実施形態において作成・登録されたテストケースメタモデルの一部を示す模式図である。
【図28】同実施形態におけるテストケースメタモデルの検証の動作を説明するためのフローチャートである。
【図29】同実施形態におけるマッピングルールメタモデルの作成・登録の動作を説明するためのフローチャートである。
【図30】同実施形態におけるマッピングルールメタメタモデルの一部を示す模式図である。
【図31】同実施形態において作成・登録されたマッピングルールメタモデル要素データ及びマッピングルールメタモデル要素属性データの一例を示す模式図である。
【図32】同実施形態において作成・登録されたマッピングルールの一部を示す模式図である。
【図33】同実施形態におけるマッピングルールメタモデルの検証の動作を説明するためのフローチャートである。
【図34】同実施形態におけるテストケースの生成の動作を説明するためのフローチャートである。
【図35】同実施形態におけるテストケーステンプレート及びマッピングルールメタモデルを示す模式図である。
【図36】同実施形態においてテストケーステンプレートの置換部分への置換に用いられる要素データ、要素項目データ及び要素処理データの一例を示す模式図である。
【図37】同実施形態において生成されたテストケースの一例を示す模式図である。
【発明を実施するための形態】
【0033】
以下、本発明の各実施形態について図面を用いて説明する。なお、以下の各装置は、装置毎に、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。
【0034】
本実施形態では、テスト対象の要件/設計要素の構造(設計メタモデル)を、テストケースの構造(テストケースメタモデル)にマッピングすることにより、テストケースの生成を行うことができる。実際に、要件/設計要素をテストケースに変換する際には、テストケースのテンプレートを用意する。但し、このテストケースのテンプレートは、テストケースの構造(テストケースメタモデル)の種類だけ用意すればよい。また、テスト対象の要件/設計要素の構造(設計メタモデル)、テストケースの構造(テストケースメタモデル)、及び両者のマッピングルール(マッピングルールメタモデル)を、利用者が定義してシステムに取り込むことを可能にし、テストケース生成の適用範囲を拡げることも容易になる。
【0035】
設計メタモデルの構造のパターン、テストケースメタモデルの構造のパターン、及び両者間のマッピングルールメタモデルのパターンは、図1に示すように、各メタモデルの上層である各メタメタモデルの階層で記述できるようにする。メタメタモデルの階層で、メタモデルの構造のパターンを記述することにより、メタメタモデルを利用してメタモデルの検証を可能にする。
【0036】
本実施形態での用語の定義は、以下の通りである。
【0037】
要件/設計要素は、要件定義や外部設計、内部設計の結果である成果物、要件定義書や、設計書の内容を表す。以下の説明では、要件定義書の内容を示す要件要素と、設計書の内容を表す設計要素のうち、設計要素を代表例に用いて要件/設計要素を述べる。
【0038】
設計メタモデルは、設計要素を構成する要素が、どのような属性をもち、他の要素とどのように関連しているかを表したモデルを表す。設計メタモデルは、例えば、UML(Unified Modeling Language:統一モデリング言語)のクラス図の表記で記述される。
【0039】
設計メタメタモデルは、設計メタモデルの要素が、他の要素とどのように関連しているか、その構造を表したモデルを表す。また、設計メタメタモデルは、設計メタモデルの構造のパターンを表しており、例えば、UMLのクラス図の表記で記述される。
【0040】
テストケースは、テスト対象である設計要素のテストの最小単位を表す。
【0041】
・テストケースメタモデルは、テストケースを構成する要素が、どのような属性をもち、他の要素とどのように関連しているかを表したモデルを表しており、例えば、UMLのクラス図の表記で記述される。
【0042】
テストケースメタメタモデルは、テストケースメタモデルの要素が、他の要素とどのように関連しているか、その構造を表したモデルを表す。テストケースメタメタモデルは、テストケースメタモデルの構造のパターンを表しており、例えば、UMLのクラス図の表記で記述される。
【0043】
マッピングルールメタモデルは、設計メタモデルとテストケースメタモデルの対応関係を表したモデルを表し、例えば、UMLのクラス図の表記で記述される。
【0044】
マッピングルールメタメタモデルは、設計メタメタモデルとテストケースメタメタモデルの対応関係を表したモデルを表す。マッピングルールメタメタモデルは、設計メタモデルとテストケースメタモデルのマッピングの構造のパターンを表しており、例えば、UMLのクラス図の表記で記述される。
【0045】
次に、一実施形態の具体的な構成について説明する。図2は一実施形態に係るテストケース生成装置の構成を示す模式図である。このテストケース生成装置は、テスト対象の設計書に記述された画面又はデータに対応する設計要素と、設計要素の構造を表す設計メタモデルと、設計メタモデルの構造を表す設計メタメタモデルと、設計要素を用いてテスト内容を記述したテストケースの構造を表すテストケースメタモデルと、テストケースメタモデルの構造を表すテストケースメタメタモデルと、テストケースメタメタモデル及び設計メタメタモデル間の関係を表すマッピングルールメタメタモデルと、テストケースメタモデル及び設計メタモデル間の関連付けを表すマッピングルールメタモデルと、テストデータとを記憶する記憶部201〜208を備えている。また、テストケース生成装置は、設計要素との置換部分を含んでテストケースのひな型を表すテストケーステンプレートをテストケースメタモデルの一部として準備し、テストケーステンプレートの置換部分をテスト対象の設計要素に置換してテストケースを生成する。
【0046】
具体的には、テストケース生成装置は、入出力部200、設計要素記憶部201、設計メタメタモデル記憶部202、設計メタモデル記憶部203、テストケースメタメタモデル記憶部204、テストケースメタモデル記憶部205、マッピングルールメタメタモデル記憶部206、マッピングルールメタモデル記憶部207、テストケース記憶部208、制御部209、設計メタモデル登録部210、設計メタモデル検証部211、設計要素入力部212、テストケースメタモデル登録部213、テストケースメタモデル検証部214、マッピングルールメタモデル登録部215、マッピングルールメタモデル検証部216及びテストケース生成部217を備えている。
【0047】
ここで、入出力部200は、テストケース生成者(本システムの利用者)に対するユーザ・インタフェースである。入出力部200としては、例えば、ディスプレイ等の表示出力装置と、キーボード及びマウス等の入力装置とが使用可能となっている。すなわち、入出力部200は、テストケース生成者の操作により、種々のデータを制御部209に入力する機能と、制御部209から受けるデータを表示する機能と、この表示により、種々のデータの入力を促す機能とをもっている。
【0048】
設計要素記憶部201は、図3及び図4に示すように、各部209〜217から読出/書込可能であって、テスト対象の設計書に記述された画面又はデータに対応する設計要素201aを記憶するためのDBMS(DataBase Management System)、記憶装置又は記憶装置の記憶領域である。なお、各記憶部201〜208は、別々の記憶装置として実現してもよく、同一の記憶装置内の別々の記憶領域として実現してもよい。
【0049】
ここで、設計要素201aは、設計要素を特定する要素データ201a1,201a4、当該設計要素の項目を示す要素項目データ201a2,201a5及び当該設計要素の処理を示す要素処理データ201a3から構成される。
【0050】
要素データ201a1,201a4は、設計要素を識別する要素IDの項目と値及び設計要素の名称を示す設計要素名の項目と値を含んでいる。
【0051】
要素項目データ201a2,201a5は、要素IDの項目と値、要素の項目を識別する要素項目IDの項目と値、要素の項目の名称を示す要素項目名の項目と値を含んでいる。
【0052】
要素処理データ201a3は、要素IDの項目と値、設計要素の処理を識別する要素処理IDの項目と値、設計要素の処理の名称を示す要素処理名の項目と値、要素項目IDの項目と値、イベントを識別するイベントIDの項目と値、処理先の要素項目IDの項目と値、設計要素の処理の結果を示す処理結果の項目と値を含んでいる。
【0053】
設計メタメタモデル記憶部202は、図5に示すように、各部209〜217から読出/書込可能であって、設計メタモデルの構造を表す設計メタメタモデル202aを記憶するためのDBMS、記憶装置又は記憶装置の記憶領域である。
【0054】
ここで、設計メタメタモデル202aは、設計要素を表す設計要素クラスに汎化される全体要素クラス及び項目要素クラスと、当該汎化される全体要素クラス又は項目要素クラス間の関係を示す組合せ情報クラス及び遷移情報クラスとの4種類の要素が設計メタモデルにあることを表し、項目要素クラスが多重度0以上で所有されるように全体要素クラスに関連付けられ、組合せ情報クラスが当該汎化されるいずれかの各要素クラスの関係を示す関連クラスであり、遷移情報クラスが当該汎化されるいずれかの各要素クラスに関連付けられることを表す情報である。また、設計メタメタモデル202aは、図6に示すように、他のメタメタモデル204a,206aと関係している。
【0055】
設計メタモデル記憶部203は、図7及び図8に示すように、各部209〜217から読出/書込可能であって、設計要素の構造を表す設計メタモデル203aを記憶するためのDBMS、記憶装置又は記憶装置の記憶領域である。
【0056】
補足すると、設計メタモデル記憶部203は、設計メタモデル203aを表すUMLのクラス図、設計メタモデル203aを構成する設計メタモデル要素を示す設計メタモデル要素データ203a1、当該設計メタモデル要素の属性を示す設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3が書き込まれる。
【0057】
設計メタモデル203aを表すUMLのクラス図は、全体要素クラス及び項目要素クラスの両者に対応するステレオタイプ名と設計メタモデル要素の名称を示すメタモデル要素名とをもつクラスと、項目要素クラスに対応するステレオタイプ名と前記メタモデル要素名とをもつクラスと、組合せ情報クラスに対応するステレオタイプ名と前記メタモデル要素名とをもつクラスと、遷移情報クラスに対応するステレオタイプ名と前記メタモデル要素名とをもつクラスとを関連付けて表した情報である。
【0058】
設計メタモデル要素データ203a1は、設計メタモデル要素を識別するメタモデル要素IDの項目と値及びメタモデル要素名の項目と値を含んでいる。
【0059】
設計メタモデル要素属性データ203a2は、メタモデル要素IDの項目と値、設計メタモデル要素の属性を識別するメタモデル要素属性IDの項目と値、設計メタモデル要素の属性の名称を示すメタモデル要素属性名の項目と値及び設計メタモデル要素の属性の型を示すメタモデル要素属性型の項目と値を含んでいる。
【0060】
関連先の設計メタモデル要素データ203a3は、設計メタモデル要素の関連先の設計メタモデル要素を識別するメタモデル要素IDの項目と値及び関連先の設計メタモデル要素の名称を示すメタモデル要素名の項目と値を含んでいる。
【0061】
テストケースメタメタモデル記憶部204は、図9に示すように、各部209〜217から読出/書込可能であって、テストケースメタモデルの構造を表すテストケースメタメタモデル204aを記憶するための記憶装置又は記憶装置の記憶領域である。
【0062】
ここで、テストケースメタメタモデル204aは、図6に示すように、設計メタメタモデル202aの設計要素クラスに関連付けられた多重度0以上のテストケース要素クラスという1種類の要素がテストケースメタモデルにあることを表し、テストケース要素クラスが一連のテスト要素を表すテストスイート要素クラスに所有され、テストケース要素クラスが多重度0以上のテスト観点クラスに関連付けられ、テストケース要素クラスがテストケーステンプレートクラスに関連付けられ、テストケーステンプレートクラスに汎化される組合せテストケーステンプレート、遷移テストケーステンプレート及び一覧テストケーステンプレートを含む情報である。
【0063】
テストケースメタモデル記憶部205は、図10及び図11に示すように、各部209〜217から読出/書込可能であって、設計要素を用いてテスト内容を記述したテストケースの構造を表すテストケースメタモデル205aを記憶するためのDBMS、記憶装置又は記憶装置の記憶領域である。
【0064】
補足すると、テストケースメタモデル記憶部205は、テストケースメタモデル205aを表すUMLのクラス図、テストケースメタモデル205aを構成するテストケースメタモデル要素を示すテストケースメタモデル要素データ205a1、当該テストケースメタモデル要素の属性を示すテストケースメタモデル要素属性データ205a2及びテストケーステンプレート205bが書き込まれる。
【0065】
ここで、テストケースメタモデル205aを表すUMLのクラス図は、設計メタモデル203aを表すクラス図内の各クラスのステレオタイプ名に代えてテストケース要素クラスに対応するステレオタイプ名をもつと共に、当該各クラスのメタモデル要素名に対するテストケース要素クラスを表すメタモデル要素名をもつ各クラスを表した情報である。
【0066】
テストケースメタモデル要素データ205a1は、テストスイート要素クラスに対応するテストスイートIDの項目と値、テストケースメタモデル要素を識別するメタモデル要素IDの項目と値及びテストケース要素クラスを表すメタモデル要素名の項目と値を含んでいる。
【0067】
テストケースメタモデル要素属性データ205a2は、メタモデル要素IDの項目と値、テストケースメタモデル要素の属性を識別するメタモデル要素属性IDの項目と値、テストケースメタモデル要素の属性の名称を示すメタモデル要素属性名の項目と値及びテストケースメタモデル要素の属性の型を示すメタモデル要素属性型の項目と値を含んでいる。
【0068】
テストケーステンプレート205bは、設計要素との置換部分として要素データ、要素項目データ及び要素処理データ内のいずれかの項目を含んでいるテストケースが記述されている。
【0069】
マッピングルールメタメタモデル記憶部206は、図12及び図6に示すように、各部209〜217から読出/書込可能であって、テストケースメタメタモデル204a及び設計メタメタモデル202a間の関係を表すマッピングルールメタメタモデル206aを記憶するためのDBMS、記憶装置又は記憶装置の記憶領域である。
【0070】
ここで、マッピングルールメタメタモデル206aは、設計メタメタモデル202a内の設計要素とテストケースメタメタモデル204a内のテストケース要素との関係を示す関連クラスであるマッピングルール要素クラスに汎化される組合せマッピングルール要素クラス、遷移マッピングルール要素クラス及び一覧マッピングルール要素クラスの3種類の要素がマッピングルールメタモデルにあることを表す情報である。
【0071】
マッピングルールメタモデル記憶部207は、図13及び図14に示すように、各部209〜217から読出/書込可能であって、テストケースメタモデル205a及び設計メタモデル203a間の関連付けを表すマッピングルールメタモデル207aを記憶するためのDBMS、記憶装置又は記憶装置の記憶領域である。
【0072】
補足すると、マッピングルールメタモデル記憶部207は、マッピングルールメタモデル207aを表すUMLのクラス図、マッピングルールメタモデル207aを構成するマッピングルールメタモデル要素を示すマッピングルールメタモデル要素データ207a1、及び当該マッピングルールメタモデル要素の属性を示すマッピングルールメタモデル要素属性データ207a2が書き込まれる。
【0073】
ここで、マッピングルールメタモデル207aを表すUMLのクラス図は、設計メタモデル203aを表すクラス図内の各クラスと、テストケースメタモデル205aを表すクラス図内の各クラスと、当該テストケースメタモデル205aを表すクラス図内の各クラスが設計メタモデル203aを表すクラス図内の各クラスに依存する旨を表すように依存元のクラスから依存先のクラスを結ぶ破線の矢印と、破線の矢印に近接して記述された依存先のクラスのステレオタイプ名とを表す情報である。
【0074】
マッピングルールメタモデル要素データ207a1は、破線の矢印を識別するマッピング要素IDの項目と値及び破線の矢印の名称を表すマッピング要素名の項目と値を含んでいる。
【0075】
マッピングルールメタモデル要素属性データ207a2は、依存先のクラスを識別する設計メタモデル要素IDの項目と値、依存元のクラスを識別するテストケースメタモデル要素IDの項目と値、及び破線の矢印に近接して記述されたステレオタイプ名の項目と値を含んでいる。
【0076】
テストケース記憶部208は、図15に示すように、各部209〜217から読出/書込可能であって、テストケーステンプレートの置換部分がテスト対象の設計要素に置換されて生成されたテストケース208dを記憶するためのDBMS、記憶装置又は記憶装置の記憶領域である。なお、テストケース記憶部208は、利用シナリオ毎にテストケース208dを含むテストケース一覧表208a、機能毎にテストケース208dを含むテストケース一覧表208b、及び機能の組合せ毎にテストケース208dを含むテストケース一覧表208cを記憶するものとしてもよい。
【0077】
制御部209は、入出力部200及び各部210〜217を制御する機能をもっている。具体的には例えば、制御部209は、以下の機能(f209-1)〜(f209-3)をもっている。
【0078】
(f209-1) UMLのクラス図で表された設計メタメタモデル202aを予め設計メタメタモデル記憶部202に書込む機能。
【0079】
(f209-2) UMLのクラス図で表されたテストケースメタメタモデル204aを予めテストケースメタメタモデル記憶部204に書込む機能。
【0080】
(f209-3) UMLのクラス図で表されたマッピングルールメタメタモデル206aを予めマッピングルールメタメタ記憶部206に書込む機能。
【0081】
設計メタモデル登録部210は、入出力部200からの設計メタモデル登録の依頼にしたがって、設計メタモデル203aを設計メタモデル記憶部203に書き込む機能をもっている。このとき、設計メタモデル登録部210は、予め記憶された設計メタメタモデル202aに基づき、設計メタメタモデル検証部211に設計メタモデル203aを検証させる。具体的には例えば、設計メタモデル登録部210は、以下の機能(f210-1)〜(f210-4)をもっている。
【0082】
(f210-1) 設計メタメタモデル記憶部202内の設計メタメタモデル202aを入出力部200にて表示することにより、設計メタモデル203aを表すUMLのクラス図の入力を促す機能。
【0083】
(f210-2) 入力を受け付けた設計メタモデル203aを表すUMLのクラス図を設計メタモデル記憶部203に書込む機能。
【0084】
(f210-3) 設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図を入出力部200にて表示することにより、設計メタモデル203aを構成する設計メタモデル要素を示す設計メタモデル要素データ203a1、当該設計メタモデル要素の属性を示す設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3の入力を促す機能。
【0085】
(f210-4) 入力を受け付けた設計メタモデル要素データ203a1、設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3を設計メタモデル記憶部203に書込む機能。
【0086】
設計メタモデル検証部211は、設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図、設計メタモデル要素データ203a1、設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3に対し、設計メタメタモデル記憶部202内の設計メタメタモデル202aに違反している箇所を含むか否かを検証する機能をもっている。
【0087】
設計要素入力部212は、入出力部からの設計要素入力の依頼にしたがって、設計要素を設計要素記憶部201に書き込む機能をもっている。具体的には設計要素入力部212は、以下の機能(f212-1)〜(f212-2)をもっている。
【0088】
(f212-1) 設計メタモデル検証部211による検証結果が否を示す場合、設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図、設計メタモデル要素データ203a1、設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3を入出力部200にて表示することにより、設計要素を特定する要素データ201a1,201a4、当該設計要素の項目を示す要素項目データ201a2,201a5及び当該設計要素の処理を示す要素処理データ201a3の入力を促す機能。
【0089】
(f212-2) 入力を受け付けた要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3を設計要素記憶部201に書込む機能。
【0090】
テストケースメタモデル登録部213は、入出力部200からのテストケースメタモデル登録の依頼にしたがって、テストケースメタモデル205aをテストケースメタモデル記憶部205に書き込む機能をもっている。なお、テストケースメタモデル登録部213は、テストケースメタメタモデル検証部214にテストケースメタモデル205aを検証させる機能ももっている。具体的にはテストケースメタモデル登録部213は、以下の機能(f213-1)〜(f213-6)をもっている。
【0091】
(f213-1) テストケースメタメタモデル記憶部204内のテストケースメタメタモデル204aを表すUMLのクラス図及び設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図を入出力部200にて表示することにより、テストケースメタモデル205aを表すUMLのクラス図の入力を促す機能。
【0092】
(f213-2) 入力を受け付けたテストケースメタモデル205aを表すUMLのクラス図をテストケースメタモデル記憶部205に書込む機能。
【0093】
(f213-3) テストケースメタモデル記憶部205内のテストケースメタモデル205aを表すUMLのクラス図を入出力部200にて表示することにより、テストケースメタモデル205aを構成するテストケースメタモデル要素を示すテストケースメタモデル要素データ205a1及び当該テストケースメタモデル要素の属性を示すテストケースメタモデル要素属性データ205a2の入力を促す機能。
【0094】
(f213-4) 入力を受け付けたテストケースメタモデル要素データ205a1及びテストケースメタモデル要素属性データ205a2をテストケースメタモデル記憶部205に書込む機能。
【0095】
(f213-5) マッピングルールメタモデル検証部216による検証結果が否を示す場合、マッピングルールメタモデル記憶部207内のマッピングルールメタモデル207aを表すクラス図とテストケースメタモデル記憶部205内のテストケースメタモデル要素属性データ205a2とを入出力部200にて表示することにより、テストケースのひな型を表すテストケーステンプレート205bの入力を促す機能。
【0096】
なお、この機能(f213-5)は、マッピングルールメタモデル記憶部207内のマッピングルールメタモデル207aを表すクラス図とテストケースメタモデル記憶部205内のテストケースメタモデル要素属性データ205a2内のメタモデル要素属性名の値に含まれるテストケーステンプレート名とを入出力部200にて表示する機能を含んでいる。
【0097】
(f213-6) 入力を受け付けたテストケーステンプレート205bをテストケースメタモデル記憶部205に書込む機能。
【0098】
テストケースメタモデル検証部214は、テストケースメタモデル記憶部205内のテストケースメタモデル205aを表すUMLのクラス図、テストケースメタモデル要素データ205a1及びテストケースメタモデル要素属性データ205a2に対し、テストケースメタメタモデル記憶部204内のテストケースメタメタモデル204aに違反している箇所を含むか否かを検証する機能をもっている。
【0099】
マッピングルールメタモデル登録部215は、入出力部200からのマッピングルールメタモデル登録の依頼にしたがって、マッピングルールメタモデル207aをマッピングルールメタモデル記憶部207に書き込む機能をもっている。なお、マッピングルールメタモデル登録部215は、マッピングルールメタモデル検証部216にマッピングルールメタモデル207aを検証させる機能ももっている。具体的にはマッピングルールメタモデル登録部215は、以下の機能(f215-1)〜(f215-4)をもっている。
【0100】
(f215-1) テストケースメタモデル検証部214による検証結果が否を示す場合、マッピングルールメタメタモデル記憶部206内のマッピングルールメタメタモデル206aを表すUMLのクラス図、テストケースメタモデル記憶部205内のテストケースメタモデル205aを表すUMLのクラス図及び設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図を入出力部200にて表示することにより、マッピングルールメタモデル207aを表すUMLのクラス図の入力を促す機能。
【0101】
(f215-2) 入力を受け付けたマッピングルールメタモデル207aを表すUMLのクラス図をマッピングルールメタモデル記憶部207に書込む機能。
【0102】
(f215-3) マッピングルールモデル記憶部207内のマッピングルールメタモデル207aを表すUMLのクラス図、設計メタモデル記憶部203内の設計メタモデル要素データ203a1及びテストケースメタモデル記憶部205内のテストケースメタモデル要素データ205a1を入出力部200にて表示することにより、マッピングルールメタモデル207aを構成するマッピングルールメタモデル要素を示すマッピングルールメタモデル要素データ207a1及び当該マッピングルールメタモデル要素の属性を示すマッピングルールメタモデル要素属性データ207a2の入力を促す機能。
【0103】
(f215-4) 入力を受け付けたマッピングルールメタモデル要素データ207a1及びマッピングルールメタモデル要素属性データ207a2をマッピングルールメタモデル記憶部207に書込む機能。
【0104】
マッピングメタモデル検証部216は、マッピングルールメタモデル記憶部207内のマッピングルールメタモデル207aを表すUMLのクラス図、マッピングルールメタモデル要素データ207a1及びマッピングルールメタモデル要素属性データ207a2に対し、マッピングルールメタメタモデル記憶部206内のマッピングルールメタメタモデル206aに違反している箇所を含むか否かを検証する機能をもっている。
【0105】
テストケース生成部217は、入出力部200からのテストケース生成の依頼にしたがって、テストケース208dを生成する機能をもっている。テストケース208dの生成は、設計要素201aから、マッピングルールメタモデル207aに基づいて、テストケース208dへのマッピングを行うことによって実現する。具体的にはテストケース生成部217は、以下の機能(f217-1)〜(f217-2)をもっている。
【0106】
(f217-1) テストケースメタモデル記憶部205内のテストケーステンプレート205bの置換部分の各項目を、要素データ、要素項目データ及び要素処理データ内のいずれかの項目の値に置換してテストケース208dを生成する機能。
【0107】
(f217-2) 当該生成したテストケース208dをテストケース記憶部208に書込む機能。
【0108】
次に、以上のように構成されたテストケース生成装置の動作について図16乃至図37を用いて説明する。具体的には図16に示すように、設計メタモデル203aの作成・登録(ST100)、設計メタモデル203aの検証(ST200)、設計要素201aの作成・登録(ST300)、テストケースメタモデル205aの作成・登録(ST400)、テストケースメタモデル205aの検証(ST500)、マッピングルールメタモデル207aの作成・登録(ST600)、マッピングルールメタモデル207aの検証(ST700)及びテストケース208dの生成(ST800)の順に動作を述べる。また、各メタメタモデル202a,204a,206aは、予め入出力部200から制御部209を介して各記憶部202a,204a,206aに書き込まれているとする。
【0109】
始めに、ステップST100における設計メタモデル203aの作成・登録の動作について図17を用いて述べる。まず、設計メタモデル登録部210は、設計メタメタモデル記憶部202内の設計メタメタモデル202aを入出力部200にて表示することにより、設計メタモデル203aを表すUMLのクラス図の入力を促す。ここで、設計メタメタモデル202aは、作成対象である設計メタモデル203aの構造を表す。具体的には、設計メタメタモデル202aは、設計メタモデルにはどのような種類の要素(全体要素、項目要素、組合せ情報、遷移情報)があり、その要素がどのように関連付けられるか(全体要素−項目要素、(全体要素、項目要素のいずれか)−組合せ情報、(全体要素、項目要素のいずれか)−遷移情報)を表している。
【0110】
続いて、設計メタモデル登録部210は、図17に示すように、テストケース生成者による入出力部200の操作により、入力を受け付けた設計メタモデル要素を追加していき(ST101〜ST102)、次いで、設計メタモデル要素を関連付けていく(ST103〜ST104)。このとき、テストケース生成者は、追加する設計メタモデル要素に関し、要素のステレオタイプ(どんな種類か)を設計メタメタモデル202aから選択する(ST102)。また、テストケース生成者は、設計メタモデル要素どうしを関連付けるときに、関連付けのステレオタイプ(どんな関連付けか)を、設計メタメタモデル202aから選択する(ST104)。
【0111】
しかる後、設計メタモデル要素の追加が不要になれば(ST101;追加不要)、設計メタモデル登録部210は、設計メタモデル203aを登録する(ST105)。すなわち、設計メタモデル登録部210は、入力を受け付けた設計メタモデル203aを表すUMLのクラス図を設計メタモデル記憶部203に書込む。
【0112】
また、設計メタモデル登録部210は、設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図を入出力部200にて表示することにより、設計メタモデル203aを構成する設計メタモデル要素を示す設計メタモデル要素データ203a1、当該設計メタモデル要素の属性を示す設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3の入力を促す。
【0113】
しかる後、設計メタモデル登録部210は、入力を受け付けた設計メタモデル要素データ203a1、設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3を設計メタモデル記憶部203に書込む。
【0114】
このように書き込まれた設計メタモデルの例を図18、図19、図20及び図21に示す。すなわち、図18に示す設計メタメタモデル202aに対し、図19及び図20に示す設計メタモデル要素データ203a1、設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3が設計メタモデル記憶部203に書き込まれる。これにより、図21に示す部分の設計メタモデル203aが作成・登録される。
【0115】
次に、ステップST200の設計メタモデル203aの検証の動作について図22を用いて述べる。ステップST200では、設計メタモデル検証部211は、設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図、設計メタモデル要素データ203a1、設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3に対し、設計メタメタモデル記憶部202内の設計メタメタモデル202aに違反している箇所を含むか否かを検証する。このような設計メタモデルの検証においては、設計メタモデル要素を検証し、次いで、設計メタモデル要素の関連付けを検証していくことにより、検証結果を得ることができる。検証結果には、設計メタモデル203aの中で、設計メタメタモデル202aに違反している箇所が含まれる。
【0116】
具体的には設計メタモデル検証部211は、図22に示すように、メタモデル記憶部203内の全ての設計メタモデル要素データ203a1を取得し(ST201)、未検証の設計メタモデル要素データ203a1があるか否かを判定する(ST202)。ステップST202の判定結果が否の場合(ST202;なし)にはステップST213に進み、検証結果を出力して処理を終了する。
【0117】
ステップST202の判定結果が未検証のデータありを示す場合(ST202;あり)、設計メタモデル検証部211は、設計メタモデル203aを表すクラス図内の各クラスのうち、当該設定メタモデル要素データ203a1のメタモデル要素名をもつクラスからステレオタイプを取得し(ST203)、このステレオタイプ名が設計メタメタモデル202aで定義済みか否かを判定する(ST204)。ステップST204の判定結果が否の場合(ST204;未定義)、設計メタモデル検証部211は、当該設計メタモデル要素データ203a1と、ステレオタイプ名が未定義である旨とを含む検証結果を既存の検証結果に追加し(ST205)、ステップST202の処理に戻る。
【0118】
ステップST204の判定結果が定義済みを示す場合、当該設計メタモデル要素データ203a1における全ての関連先の設計メタモデル要素データ203a3を設計メタモデル記憶部203から取得し(ST206)、未検証の関連先の設計メタモデル要素データ203a3があるか否かを判定する(ST207)。ステップST207の判定結果が否の場合(ST207;なし)にはステップST202の処理に戻る。
【0119】
ステップST207の判定結果が未検証の関連先ありを示す場合(ST207;あり)、設計メタモデル検証部211は、設計メタモデル203aを表すクラス図内の各クラスのうち、当該設定メタモデル要素データ203a3の関連元の設定メタモデル要素データ203a1のメタモデル要素名をもつクラスからステレオタイプを取得し(ST208)、当該関連先の設定メタモデル要素データ203a3のメタモデル要素名をもつクラスからステレオタイプを取得し(ST209)、両クラス間の関連を示す関連ステレオタイプを当該クラス図から取得する(ST210)。
【0120】
しかる後、設計メタモデル検証部211は、この関連ステレオタイプ名が設計メタメタモデル202aで定義済みか否かを判定する(ST211)。ステップST211の判定結果が否の場合(ST211;未定義)、設計メタモデル検証部211は、当該設計メタモデル要素203a1及び関連先の設計メタモデル要素データ203a3と、両者間の関連ステレオタイプ名が未定義である旨とを含む検証結果を既存の検証結果に追加し、ステップST207の処理に戻る。なお、ステップST207の処理に戻った後、前述した通り、ステップST207の判定により未検証の関連先がなければ、ステップST202の処理に戻り、ステップST202の判定により未検証の設計メタモデル要素データ203a1がなければ、検証結果を出力して(ST213)、検証処理を終了する。
【0121】
次に、ステップST300における設計要素の作成・登録の動作について図23を用いて述べる。ステップST300における設計要素の作成・登録は、設計メタモデル203a,203a1〜203a3で示された設計要素の構造毎に、設計要素を追加していく処理により実行される。
【0122】
具体的には図23に示すように、設計要素入力部212は、設計メタモデル検証部211による検証結果が違反箇所を含まない場合、設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図、設計メタモデル要素データ203a1、設計メタモデル要素属性データ203a2及び関連先の設計メタモデル要素データ203a3を取得して(ST301)入出力部200にて表示する。
【0123】
これにより、設計要素入力部212は、設計要素を特定する要素データ201a1,201a4、当該設計要素の項目を示す要素項目データ201a2,201a5及び当該設計要素の処理を示す要素処理データ201a3の入力を促す。
【0124】
ここで、これら要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3を未入力の設計メタモデル要素が無ければ(ST302;なし)、ステップST305に進み、登録を完了して処理を終了する。
【0125】
一方、未入力の設計メタモデル要素があれば(ST302;あり)、設計要素入力部212は、入出力部200から要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3の追加入力を受け付ける(ST303)。また、設計要素入力部212は、入力を受け付けた要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3を設計要素記憶部201に書込む。
【0126】
しかる後、設計要素入力部212は、未入力の要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3があれば(ST304;あり)、ステップST303の処理に戻る。
【0127】
また、設計要素入力部212は、未入力の要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3がなければ(ST304;なし)、ステップST302の処理に戻る。なお、ステップST302の処理に戻った後、前述した通り、ステップST302の判定により要素データ等を未入力の設計メタモデル要素がなければ(ST302;なし)、登録を完了して処理を終了する(ST305)。
【0128】
ステップST400におけるテストケースメタモデル205aの作成・登録の動作について図24を用いて述べる。まず、テストケースメタモデル登録部213は、テストケースメタメタモデル記憶部204内のテストケースメタメタモデル204aを表すUMLのクラス図及び設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図を入出力部200にて表示することにより、テストケースメタモデル205aを表すUMLのクラス図の入力を促す。ここで、テストケースメタメタモデル204aは、作成対象であるテストケースメタモデル205aの構造を表す。具体的には、テストケースメタメタモデル204aは、テストケースメタモデル205aにはどのような種類の要素(テストケース要素)があるのかを表す。なお、テストケースメタモデル205aの要素同士を関連付けるという考え方はない。
【0129】
続いて、テストケースメタモデル登録部213は、図24に示すように、テストケース生成者による入出力部200の操作により、テストケースメタモデル要素の追加が不要となるまで(ST401)、入力を受け付けたテストケースメタモデル要素を追加していく(ST402)。また、ステップST402中、テストケース生成者は、テストケースメタモデル要素を追加するときに、要素のステレオタイプ(どんな種類か)を、テストケースメタメタモデル204aに基づいてテストケース生成者が選択する。
【0130】
しかる後、テストケースメタモデル要素の追加が不要になれば(ST401;追加不要)、テストケースメタモデル登録部213は、テストケースメタモデル205aを登録する(ST403)。すなわち、テストケースメタモデル登録部213は、入力を受け付けたテストケースメタモデル205aを表すUMLのクラス図をテストケースメタモデル記憶部205に書込む。
【0131】
また、テストケースメタモデル登録部213は、テストケースメタモデル記憶部205内のテストケースメタモデル205aを表すUMLのクラス図を入出力部200にて表示することにより、テストケースメタモデル205aを構成するテストケースメタモデル要素を示すテストケースメタモデル要素データ205a1及び当該テストケースメタモデル要素の属性を示すテストケースメタモデル要素属性データ205a2の入力を促す。
【0132】
しかる後、テストケースメタモデル登録部213は、入力を受け付けたテストケースメタモデル要素データ205a1及びテストケースメタモデル要素属性データ205a2をテストケースメタモデル記憶部205に書込む。
【0133】
このように書き込まれたテストケースメタモデルの例を図25、図26及び図27に示す。すなわち、図25に示すテストケースメタメタモデル204aに対し、図26に示すテストケースメタモデル要素データ205a1及びテストケースメタモデル要素属性データ205a2がテストケースメタモデル記憶部205に書き込まれる。これにより、図27に示す部分のテストケースメタモデル205aが作成・登録される。
【0134】
ステップST500のテストケースメタモデル205aの検証の動作について図28を用いて述べる。ステップST500では、テストケースメタモデル検証部214は、マッピングルールメタモデル記憶部207内のマッピングルールメタモデル207aを表すUMLのクラス図、マッピングルールメタモデル要素データ207a1及びマッピングルールメタモデル要素属性データ207a2に対し、マッピングルールメタメタモデル記憶部206内のマッピングルールメタメタモデル206aに違反している箇所を含むか否かを検証する。このようなテストケースメタモデル205aの検証においては、テストケースメタモデル要素を検証していくことで、検証結果を得ることができる。検証結果には、テストケースメタモデル205aの中で、テストケースメタメタモデル204aに違反している箇所が含まれる。
【0135】
具体的にはテストケースメタモデル検証部214は、テストケースモデル記憶部205内の全てのテストケースメタモデル要素データ205a1を取得し(ST501)、未検証のテストケースメタモデル要素データ205a1があるか否かを判定する(ST502)。ステップST502の判定結果が否の場合(ST502;なし)にはステップST506に進み、検証結果を出力して処理を終了する。
【0136】
ステップST502の判定結果が未検証のデータありを示す場合(ST502;あり)、テストケースメタモデル検証部214は、テストケースメタモデル205aを表すクラス図内の各クラスのうち、当該テストケースメタモデル要素データ205a1のメタモデル要素名をもつクラスからステレオタイプを取得し(ST503)、このステレオタイプ名がテストケースメタメタモデル204aで定義済みか否かを判定する(ST504)。ステップST504の判定結果が否の場合(ST504;未定義)、テストケースメタモデル検証部214は、当該テストケースメタモデル要素データ205a1と、ステレオタイプ名が未定義である旨とを含む検証結果を既存の検証結果に追加し(ST505)、ステップST502の処理に戻る。
【0137】
ステップST504の判定結果が定義済みを示す場合、テストケースメタモデル検証部214は、ステップST502の処理に戻る。なお、ステップST502の処理に戻った後、前述した通り、ステップST502の判定により未検証のテストケースメタモデル要素データ205a1がなければ、検証結果を出力して(ST506)、検証処理を終了する。
【0138】
ステップST600におけるマッピングルールメタモデル207aの作成・登録の動作について図29を用いて述べる。始めに、マッピングルールメタモデル登録部215は、テストケースメタモデル検証部214による検証結果が違反箇所を含まない場合、設計メタモデル記憶部203から、マッピングの候補となる、マッピングルールメタメタモデル206aで定義された3種類の設計メタモデル203aの構造を持つ設計メタモデル203aの組み合わせを抽出する(ST601)。ここで、マッピングルールメタメタモデル206aは、作成対象であるマッピングルールメタモデル207aの構造を表す。具体的には、マッピングルールメタメタモデル206aは、マッピングルールメタモデル207aが対象とする設計メタモデル203aにはどのような構造があり、その設計メタモデル203aがテストケースメタモデル205aとどのように関連付くかを表す。
【0139】
続いて、マッピングルールメタモデル登録部215は、マッピングルールメタメタモデル記憶部206内のマッピングルールメタメタモデル206aを表すUMLのクラス図、テストケースメタモデル記憶部205内のテストケースメタモデル205aを表すUMLのクラス図及び設計メタモデル記憶部203内の設計メタモデル203aを表すUMLのクラス図を入出力部200にて表示することにより、マッピングルールメタモデル登録部215は、マッピングルールメタモデル207aを表すUMLのクラス図の入力を促す。
【0140】
次いで、マッピングルールメタモデル登録部215は、抽出した設計メタモデル203aの構造毎に、テストケース生成者による入出力部200の操作により、マッピングルールメタモデル要素の追加が不要となるまで(ST602)、入力を受け付けたテストスイートメタモデル要素(ステレオタイプ全体要素をもつ設計メタモデルにマッピングするテストスイートメタモデル要素)、及びこのテストスイートメタモデル要素に関連付けるテストケースメタモデル要素を選択し(ST603,ST604)、テストケースメタモデル要素と、抽出した設計メタモデル要素の残りとを関連付けていく(ST605)。
【0141】
しかる後、マッピングルールメタモデル要素の追加が不要になれば(ST602;追加不要)、マッピングルールメタモデル207aを登録する(ST606)。すなわち、マッピングルールメタモデル登録部215は、マッピングルールメタモデル登録部215は、入力を受け付けたマッピングルールメタモデル207aを表すUMLのクラス図をマッピングルールメタモデル記憶部207に書込む。
【0142】
また、マッピングルールメタモデル登録部215は、マッピングルールモデル記憶部207内のマッピングルールメタモデル207aを表すUMLのクラス図、設計メタモデル記憶部203内の設計メタモデル要素データ203a1及びテストケースメタモデル記憶部205内のテストケースメタモデル要素データ205a1を入出力部200にて表示することにより、マッピングルールメタモデル207aを構成するマッピングルールメタモデル要素を示すマッピングルールメタモデル要素データ207a1及び当該マッピングルールメタモデル要素の属性を示すマッピングルールメタモデル要素属性データ207a2の入力を促す。
【0143】
しかる後、マッピングルールメタモデル登録部215は、入力を受け付けたマッピングルールメタモデル要素データ207a1及びマッピングルールメタモデル要素属性データ207a2をマッピングルールメタモデル記憶部207に書込む。
【0144】
このように書き込まれたマッピングルールメタモデルの例を図30、図31及び図32に示す。図30に示すマッピングルールメタメタモデル206aに対し、図31に示すマッピングルールメタモデル要素データ207a1及びマッピングルールメタモデル要素属性データ207a2がマッピングルールメタモデル記憶部207に書き込まれる。これにより、図32に示す部分のマッピングルールメタモデル207aが作成・登録される。
【0145】
ステップST700のマッピングルールメタモデル207aの検証の動作について図33を用いて述べる。ステップST700では、マッピングメタモデル検証部216は、マッピングルールメタモデル記憶部207内のマッピングルールメタモデル207aを表すUMLのクラス図、マッピングルールメタモデル要素データ207a1及びマッピングルールメタモデル要素属性データ207a2に対し、マッピングルールメタメタモデル記憶部206内のマッピングルールメタメタモデル206aに違反している箇所を含むか否かを検証する。このようなマッピングルールメタモデル207aの検証においては、マッピングルールメタモデル要素を検証し、次いで、マッピングルールメタモデル要素の関連付けを検証していくことで、検証結果を得ることができる。検証結果には、マッピングルールメタモデル207aの中で、マッピングルールメタメタモデル206aに違反している箇所が含まれる。
【0146】
具体的にはマッピングルールメタモデル検証部216は、図33に示すように、マッピングルールメタモデル記憶部207内の全てのマッピングルールメタモデル要素データ207a1を取得し(ST701)、未検証のマッピングルールメタモデル要素データ207a1があるか否かを判定する(ST702)。ステップST702の判定結果が否の場合(ST702;なし)にはステップST712に進み、検証結果を出力して処理を終了する。
【0147】
ステップST702の判定結果が未検証のデータありを示す場合(ST702;あり)、マッピングルールメタモデル検証部216は、未検証のマッピングルールメタモデル要素データ207a1が設計メタモデル203a又はテストケースメタモデル205aで定義済みか否かを判定する(ST703)。ステップST703の判定結果が否の場合(ST703;未定義)、マッピングルールメタモデル検証部214は、当該マッピングルールメタモデル要素データ207a1が未定義である旨を含む検証結果を既存の検証結果に追加し(ST704)、ステップST702の処理に戻る。
【0148】
ステップST703の判定結果が定義済みを示す場合、当該マッピングルールメタモデル要素データ207a1における全ての関連先のメタモデル要素データ203a1をメタモデル記憶部203から取得し(ST705)、未検証の関連先のメタモデル要素データ203a1があるか否かを判定する(ST706)。ステップST706の判定結果が否の場合(ST706;なし)にはステップST702の処理に戻る。
【0149】
ステップST706の判定結果が未検証の関連先ありを示す場合(ST706;あり)、マッピングルールメタモデル検証部216は、マッピングルールメタモデル207aを表すクラス図内の各クラスのうち、当該マッピングルールメタモデル要素データ203a3の関連元のテストケースメタモデル要素データ205a1のメタモデル要素名をもつクラスからステレオタイプを取得し(ST707)、当該関連先の設定メタモデル要素データ203a1のメタモデル要素名をもつクラスからステレオタイプを取得し(ST708)、両クラス間の関連を示す関連ステレオタイプを当該クラス図から取得する(ST709)。
【0150】
しかる後、マッピングルールメタモデル検証部216は、この関連ステレオタイプ名がマッピングルールメタメタモデル206aで定義済みか否かを判定する(ST710)。ステップST710の判定結果が否の場合(ST710;未定義)、マッピングルールメタモデル検証部216は、当該テストケースメタモデル要素205a1及び関連先の設計メタモデル要素データ203a1と、両者間の関連ステレオタイプ名が未定義である旨とを含む検証結果を既存の検証結果に追加し(ST711)、ステップST706の処理に戻る。なお、ステップST706の処理に戻った後、前述した通り、ステップST706の判定により未検証の関連先がなければ、ステップST702の処理に戻り、ステップST702の判定により未検証のマッピングルールメタモデル要素データ207a1がなければ、検証結果を出力して(ST712)、検証処理を終了する。
【0151】
なお、マッピングルールメタモデル検証部216による検証結果が違反箇所を含まない場合、テストケースメタモデル登録部213は、マッピングルールメタモデル記憶部207内のマッピングルールメタモデル207aを表すクラス図とテストケースメタモデル記憶部205内のテストケースメタモデル要素属性データ205a2とを入出力部200にて表示することにより、テストケースのひな型を表すテストケーステンプレート205bの入力を促す。なお、入出力部200による表示は、マッピングルールメタモデル記憶部207内のマッピングルールメタモデル207aを表すクラス図とテストケースメタモデル記憶部205内のテストケースメタモデル要素属性データ205a2内のメタモデル要素属性名の値に含まれるテストケーステンプレート名とを含んでいる。
【0152】
しかる後、テストケースメタモデル登録部213は、入力を受け付けたテストケーステンプレート205bをテストケースメタモデル記憶部205に書込む。
【0153】
次に、ステップST800のテストケース208dの生成の動作について図34を用いて述べる。ステップST800では、テストケース生成部217は、テストケースメタモデル記憶部205内のテストケーステンプレート205bの置換部分の各項目を、要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3内のいずれかの項目の値に置換してテストケース208dを生成する。このようなテストケース208dの生成は、全てのテストスイートメタモデル要素の、全てのテストケースメタモデル要素に対して行う。テストケースメタモデル要素には、テストケーステンプレート205bがある。そのテンプレート205bの可変部分を、設計要素で置換していくことで、テストケース208dを生成する。
【0154】
具体的にはテストケース生成部217は、図34に示すように、テストケースメタモデル記憶部205内の全てのテストスイートメタモデル要素を取得し(ST801)、未生成のテストスイートメタモデル要素があるか否かを判定する(ST802)。ステップST802の判定結果が否の場合(ST802;なし)にはステップST812に進み、テストケースを出力して処理を終了する。
【0155】
ステップST802の判定結果が未生成のテストスイートメタモデル要素ありを示す場合(ST802;あり)、テストケース生成部217は、当該テストスイートメタモデル要素に関連付く全てのテストケースメタモデル要素208a1をテストケースメタモデル記憶部205から取得する(ST803)。
【0156】
次に、テストケース生成部217は、未生成のテストケースメタモデル要素があるか否かを判定し(ST804)、判定結果が否の場合(ST804;なし)にはステップST802に戻る。
【0157】
ステップST804の判定結果が未生成のテストケースメタモデル要素ありを示す場合(ST804;あり)、テストケース生成部217は、当該テストケースメタモデル要素に関連付くテストケーステンプレート205bをテストケースメタモデル記憶部205から取得する(ST805)。
【0158】
続いて、テストケース生成部217は、テストスイートメタモデル要素に関連付く設計メタモデル要素に基づく設計要素を設計要素記憶部201から取得し(ST806)、テストケースメタモデル要素に関連付く設計要素を設計要素記憶部201から取得する(ST807)。
【0159】
しかる後、テストケース生成部217は、テストケーステンプレート205b内に未変換の可変部分があるか否かを判定し(ST808)、可変部分があれば、当該可変部分に対応する設計要素を構成する要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3を取得し(ST809)、テストケーステンプレート205bの置換部分の各項目を、要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3内のいずれかの項目の値に置換する(ST810)。
【0160】
ステップST808の判定の結果、未変換の可変部分がなければ(ST808;なし)、テストケース生成部217は、全ての可変部分を置換後のテストケーステンプレート205bをテストケース208dとして生成し、当該生成したテストケース208dをテストケース記憶部208に追加(書込み)して、ステップST804に戻る。
【0161】
なお、ステップST804の処理に戻った後、テストケース生成部217は、前述した通り、ステップST804の判定により、未生成のテストケースメタモデル要素がなければ(ST804;なし)、ステップST802に戻り、未生成のテストスイートメタモデル要素がなければ(ST802;なし)、テストケース208dを出力して(ST812)、処理を終了する。
【0162】
このようにテストケースを生成する例を図35、図36及び図37に示す。すなわち、図35に示すテストケーステンプレート205bの置換部分の各項目を、図36に示す要素データ201a1,201a4、要素項目データ201a2,201a5及び要素処理データ201a3内のいずれかの項目の値に置換する。このような置換後のテストケーステンプレート205bとして、図37に示すテストケース205bが生成される。
【0163】
上述したように本実施形態によれば、テスト対象の設計書に記述された画面又はデータに対応する設計要素201aの構造を表す設計メタモデル203aと、設計メタモデル203aの構造を表す設計メタメタモデル202aと、設計要素201aを用いてテスト内容を記述したテストケース208dの構造を表すテストケースメタモデル205aと、テストケースメタモデル205aの構造を表すテストケースメタメタモデル204aと、テストケースメタメタモデル204a及び設計メタメタモデル202a間の関係を表すマッピングルールメタメタモデル206aと、テストケースメタモデル205a及び設計メタモデル203a間の関連付けを表すマッピングルールメタモデル207aとを用い、設計要素201aとの置換部分を含んでテストケース208dのひな型を表すテストケーステンプレート205bを準備する構成により、テストケース生成の際に、未熟な作業者に対してもテストケースの漏れの発生を無くすことができる。
【0164】
また、本実施形態によれば、設計要素201a及びテストケーステンプレート205bに基づいてテストケース208dを生成する構成により、テスト対象からテストケースを生成する作業を自動化することができる。
【0165】
また、メタメタモデル202a,204a,206aを利用することにより、設計メタモデル203a、テストケースメタモデル205a、マッピングルールメタモデル207aの作成が容易になり、作成したメタモデル203a,205a,207aの検証が可能になる。
【0166】
さらに、テストケース生成者のノウハウや経験を、設計メタモデル203a、テストケースメタモデル205a、マッピングルールメタモデル207aという形で形式知化して蓄積することができるため、生成されるテストケース208dのバラつきがなくなり、テストケース208dの品質を向上させることができる。
【0167】
補足すると、本実施形態は、特許文献1に記載の技術とは異なり、固定のテストシナリオ作成ルールを持たないことから、テストシナリオ生成の適用範囲が限定されない。また、本実施形態は、特許文献2に記載の技術とは異なり、テスト仕様書のテンプレートをテストのパターン毎に用意しないことから、テスト仕様書テンプレートの作成に手間がかからない。
【0168】
また、本実施形態の設計要素201a、設計メタモデル203a、設計メタメタモデル202a、テストケースメタモデル205a、テストケースメタメタモデル204a、マッピングルールメタモデル207a、マッピングルールメタメタモデル206a及びテストケース208dは、DBMSに格納してもよく、表形式のファイルに格納してもよい。
【0169】
また、本実施形態の設計メタメタモデル202aでは、3種類の構造(一覧、遷移、組合)を対象にしているが、その他の構造としてもよい。また、本実施形態のマッピングルールメタメタモデル206aでは、設計メタメタモデル202aの3種類の構造毎に一つずつ計3種類のマッピングの構造を定義しているが、その他のマッピングの構造を定義してもよい。
【0170】
また、本実施形態は、設計メタメタモデル202aの組合せ構造に基づいて、設計メタモデル203aを構築する際に、二つの設計メタモデル要素を選択して組み合わせているが、三つ以上で組み合わせることもできる。
【0171】
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0172】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0173】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
【0174】
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0175】
また、記憶媒体は1つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【0176】
なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【0177】
また、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0178】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0179】
200…入出力部、201…設計要素記憶部、201a…設計要素、201a1,201a4…要素データ、201a2,201a5…要素項目データ、201a3…要素処理データ、202…設計メタメタモデル記憶部、202a…設計メタメタモデル、203…設計メタモデル記憶部、203a…設計メタモデル、203a1…設計メタモデル要素データ、203a2…設計メタモデル要素属性データ、203a3…関連先の設計メタモデル要素データ、204…テストケースメタメタモデル記憶部、204a…テストケースメタメタモデル、205…テストケースメタモデル記憶部、205a…テストケースメタモデル、205a1…テストケースメタモデル要素データ、205a2…テストケースメタモデル要素属性データ、205b…テストケーステンプレート、206…マッピングルールメタメタモデル記憶部、206a…マッピングルールメタメタモデル、207…マッピングルールメタモデル記憶部、207a…マッピングルールメタモデル、207a1…マッピングルールメタモデル要素データ、207a2…マッピングルールメタモデル要素属性データ、208…テストケース記憶部、208a〜208c…テストケース一覧表、208d…テストケース、209…制御部、210…設計メタモデル登録部、211…設計メタモデル検証部、212…設計要素入力部、213…テストケースメタモデル登録部、214…テストケースメタモデル検証部、215…マッピングルールメタモデル登録部、216…マッピングルールメタモデル検証部、217…テストケース生成部。
【特許請求の範囲】
【請求項1】
テスト対象の設計書に記述された画面又はデータに対応する設計要素と、前記設計要素の構造を表す設計メタモデルと、前記設計メタモデルの構造を表す設計メタメタモデルと、前記設計要素を用いてテスト内容を記述したテストケースの構造を表すテストケースメタモデルと、前記テストケースメタモデルの構造を表すテストケースメタメタモデルと、前記テストケースメタメタモデル及び前記設計メタメタモデル間の関係を表すマッピングルールメタメタモデルと、前記テストケースメタモデル及び前記設計メタモデル間の関連付けを表すマッピングルールメタモデルと、前記テストケースとを記憶するための記憶手段を備え、前記設計要素との置換部分を含んで前記テストケースのひな型を表すテストケーステンプレートを前記テストケースメタモデルの一部として準備し、前記テストケーステンプレートの置換部分を前記テスト対象の設計要素に置換して前記テストケースを生成するテストケース生成装置に用いられるテストケース生成プログラムであって、
前記テストケース生成装置を、
それぞれUMLのクラス図で表された前記設計メタメタモデル、前記テストケースメタメタモデル及び前記マッピングルールメタメタモデルを予め前記記憶手段に書込む手段、
前記記憶手段内の設計メタメタモデルを表示することにより、前記設計メタモデルを表すUMLのクラス図の入力を促す手段、
前記入力を受け付けた前記設計メタモデルを表すUMLのクラス図を前記記憶手段に書込む手段、
前記記憶手段内の前記設計メタモデルを表すUMLのクラス図を表示することにより、前記設計メタモデルを構成する設計メタモデル要素を示す設計メタモデル要素データ、当該設計メタモデル要素の属性を示す設計メタモデル要素属性データ及び関連先の設計メタモデル要素データの入力を促す手段、
前記入力を受け付けた前記設計メタモデル要素データ、前記設計メタモデル要素属性データ及び前記関連先の設計メタモデル要素データを前記記憶手段に書込む手段、
前記記憶手段内の前記設計メタモデルを表すUMLのクラス図、前記設計メタモデル要素データ、前記設計メタモデル要素属性データ及び前記関連先の設計メタモデル要素データに対し、前記記憶手段内の設計メタメタモデルに違反している箇所を含むか否かを検証する手段、
この検証結果が否を示す場合、前記記憶手段内の前記設計メタモデルを表すUMLのクラス図、前記設計メタモデル要素データ、前記設計メタモデル要素属性データ及び前記関連先の設計メタモデル要素データを表示することにより、前記設計要素を特定する要素データ、当該設計要素の項目を示す要素項目データ及び当該設計要素の処理を示す要素処理データの入力を促す手段、
前記入力を受け付けた前記要素データ、前記要素項目データ及び前記要素処理データを前記記憶手段に書込む手段、
前記記憶手段内のテストケースメタメタモデルを表すUMLのクラス図及び前記設計メタモデルを表すUMLのクラス図を表示することにより、前記テストケースメタモデルを表すUMLのクラス図の入力を促す手段、
前記入力を受け付けた前記テストケースメタモデルを表すUMLのクラス図を前記記憶手段に書込む手段、
前記記憶手段内の前記テストケースメタモデルを表すUMLのクラス図を表示することにより、前記テストケースメタモデルを構成するテストケースメタモデル要素を示すテストケースメタモデル要素データ及び当該テストケースメタモデル要素の属性を示すテストケースメタモデル要素属性データの入力を促す手段、
前記入力を受け付けた前記テストケースメタモデル要素データ及び前記テストケースメタモデル要素属性データを前記記憶手段に書込む手段、
前記記憶手段内の前記テストケースメタモデルを表すUMLのクラス図、前記テストケースメタモデル要素データ及び前記テストケースメタモデル要素属性データに対し、前記記憶手段内のテストケースメタメタモデルに違反している箇所を含むか否かを検証する手段、
この検証結果が否を示す場合、前記記憶手段内のマッピングルールメタメタモデルを表すUMLのクラス図、前記記憶手段内のテストケースメタモデルを表すUMLのクラス図及び前記設計メタモデルを表すUMLのクラス図を表示することにより、前記マッピングルールメタモデルを表すUMLのクラス図の入力を促す手段、
前記入力を受け付けた前記マッピングルールメタモデルを表すUMLのクラス図を前記記憶手段に書込む手段、
前記記憶手段内の前記マッピングルールメタモデルを表すUMLのクラス図、前記設計メタモデル要素データ及び前記テストケースメタモデル要素データを表示することにより、前記マッピングルールメタモデルを構成するマッピングルールメタモデル要素を示すマッピングルールメタモデル要素データ及び当該マッピングルールメタモデル要素の属性を示すマッピングルールメタモデル要素属性データの入力を促す手段、
前記入力を受け付けた前記マッピングルールメタモデル要素データ及び前記マッピングルールメタモデル要素属性データを前記記憶手段に書込む手段、
前記記憶手段内の前記マッピングルールメタモデルを表すUMLのクラス図、前記マッピングルールメタモデル要素データ及び前記マッピングルールメタモデル要素属性データに対し、前記記憶手段内のマッピングルールメタメタモデルに違反している箇所を含むか否かを検証する手段、
この検証結果が否を示す場合、前記記憶手段内のマッピングルールメタモデルを表すクラス図と前記テストケースメタモデル要素属性データとを表示することにより、前記設計要素との置換部分として前記要素データ、前記要素項目データ及び前記要素処理データ内のいずれかの項目を含んで前記テストケースのひな型を表すテストケーステンプレートの入力を促す手段、
前記入力を受け付けたテストケーステンプレートを前記記憶手段に書込む手段、
前記記憶手段内の前記テストケーステンプレートの置換部分の各項目を、前記要素データ、前記要素項目データ及び前記要素処理データ内の前記いずれかの項目の値に置換して前記テストケースを生成する手段、
当該生成したテストケースを前記記憶手段に書込む手段、
として機能させるためのテストケース生成プログラム。
【請求項2】
請求項1に記載のテストケース生成プログラムにおいて、
前記設計メタメタモデルモデルは、前記設計要素を表す設計要素クラスに汎化される全体要素クラス及び項目要素クラスと、当該汎化される全体要素クラス又は項目要素クラス間の関係を示す組合せ情報クラス及び遷移情報クラスとの4種類の要素が前記設計メタモデルにあることを表し、前記項目要素クラスが多重度0以上で所有されるように前記全体要素クラスに関連付けられ、前記組合せ情報クラスが前記汎化されるいずれかの各要素クラスの関係を示す関連クラスであり、前記遷移情報クラスが前記汎化されるいずれかの各要素クラスに関連付けられることを表す情報であり、
前記テストケースメタモデルは、前記設計要素クラスに関連付けられた多重度0以上のテストケース要素クラスという1種類の要素が前記テストケースメタモデルにあることを表し、前記テストケース要素クラスが一連のテスト要素を表すテストスイート要素クラスに所有され、前記テストケース要素クラスが多重度0以上のテスト観点クラスに関連付けられ、前記テストケース要素クラスがテストケーステンプレートクラスに関連付けられ、前記テストケーステンプレートクラスに汎化される組合せテストケーステンプレート、遷移テストケーステンプレート及び一覧テストケーステンプレートを含む情報であり、
前記マッピングルールメタメタモデルは、前記設計メタメタモデル内の設計要素と前記テストケースメタメタモデル内のテストケース要素との関係を示す関連クラスであるマッピングルール要素クラスに汎化される組合せマッピングルール要素クラス、遷移マッピングルール要素クラス及び一覧マッピングルール要素クラスの3種類の要素が前記マッピングルールメタモデルにあることを表す情報であり、
前記設計メタモデルを表すUMLのクラス図は、前記全体要素クラス及び項目要素クラスの両者に対応するステレオタイプ名と前記設計メタモデル要素の名称を示すメタモデル要素名とをもつクラスと、前記項目要素クラスに対応するステレオタイプ名と前記メタモデル要素名とをもつクラスと、前記組合せ情報クラスに対応するステレオタイプ名と前記メタモデル要素名とをもつクラスと、前記遷移情報クラスに対応するステレオタイプ名と前記メタモデル要素名とをもつクラスとを関連付けて表した情報であり、
前記設計メタモデル要素データは、前記設計メタモデル要素を識別するメタモデル要素IDの項目と値及び前記メタモデル要素名の項目と値を含んでおり、
前記設計メタモデル要素属性データは、前記メタモデル要素IDの項目と値、前記設計メタモデル要素の属性を識別するメタモデル要素属性IDの項目と値、前記設計メタモデル要素の属性の名称を示すメタモデル要素属性名の項目と値及び前記設計メタモデル要素の属性の型を示すメタモデル要素属性型の項目と値を含んでおり、
前記関連先の設計メタモデル要素データは、前記設計メタモデル要素の関連先の設計メタモデル要素を識別するメタモデル要素IDの項目と値及び前記関連先の設計メタモデル要素の名称を示すメタモデル要素名の項目と値を含んでおり、
前記要素データは、前記設計要素を識別する要素IDの項目と値及び前記設計要素の名称を示す設計要素名の項目と値を含んでおり、
前記要素項目データは、前記要素IDの項目と値、前記要素の項目を識別する要素項目IDの項目と値、前記要素の項目の名称を示す要素項目名の項目と値を含んでおり、
前記要素処理データは、前記要素IDの項目と値、前記設計要素の処理を識別する要素処理IDの項目と値、前記設計要素の処理の名称を示す要素処理名の項目と値、前記要素項目IDの項目と値、イベントを識別するイベントIDの項目と値、処理先の要素項目IDの項目と値、前記設計要素の処理の結果を示す処理結果の項目と値を含んでおり、
前記テストケースメタモデルを表すUMLのクラス図は、前記設計メタモデルを表すクラス図内の各クラスのステレオタイプ名に代えて前記テストケース要素クラスに対応するステレオタイプ名をもつと共に、当該各クラスのメタモデル要素名に対する前記テストケース要素クラスを表すメタモデル要素名をもつ各クラスを表した情報であり、
前記テストケースメタモデル要素データは、前記テストスイート要素クラスに対応するテストスイートIDの項目と値、前記テストケースメタモデル要素を識別するメタモデル要素IDの項目と値及び前記テストケース要素クラスを表すメタモデル要素名の項目と値を含んでおり、
前記テストケースメタモデル要素属性データは、前記メタモデル要素IDの項目と値、前記テストケースメタモデル要素の属性を識別するメタモデル要素属性IDの項目と値、前記テストケースメタモデル要素の属性の名称を示すメタモデル要素属性名の項目と値及び前記テストケースメタモデル要素の属性の型を示すメタモデル要素属性型の項目と値を含んでおり、
前記マッピングルールメタモデルを表すUMLのクラス図は、前記設計メタモデルを表すクラス図内の各クラスと、前記テストケースメタモデルを表すクラス図内の各クラスと、当該テストケースメタモデルを表すクラス図内の各クラスが前記設計メタモデルを表すクラス図内の各クラスに依存する旨を表すように依存元のクラスから依存先のクラスを結ぶ破線の矢印と、前記破線の矢印に近接して記述された依存先のクラスのステレオタイプ名とを表す情報であり、
前記マッピングルールメタモデル要素データは、前記破線の矢印を識別するマッピング要素IDの項目と値及び前記破線の矢印の名称を表すマッピング要素名の項目と値を含んでおり、
前記マッピングルールメタモデル要素属性データは、前記依存先のクラスを識別する設計メタモデル要素IDの項目と値、前記依存元のクラスを識別するテストケースメタモデル要素IDの項目と値、及び前記破線の矢印に近接して記述されたステレオタイプ名の項目と値を含んでおり、
前記テストケーステンプレートの入力を促す手段は、前記記憶手段内のマッピングルールメタモデルを表すクラス図と前記テストケースメタモデル要素属性データ内のメタモデル要素属性名の値に含まれるテストケーステンプレート名とを表示する手段、を含んでいることを特徴とするテストケース生成プログラム。
【請求項3】
テスト対象の設計書に記述された画面又はデータに対応する設計要素と、前記設計要素の構造を表す設計メタモデルと、前記設計メタモデルの構造を表す設計メタメタモデルと、前記設計要素を用いてテスト内容を記述したテストケースの構造を表すテストケースメタモデルと、前記テストケースメタモデルの構造を表すテストケースメタメタモデルと、前記テストケースメタメタモデル及び前記設計メタメタモデル間の関係を表すマッピングルールメタメタモデルと、前記テストケースメタモデル及び前記設計メタモデル間の関連付けを表すマッピングルールメタモデルと、前記テストケースとを記憶するための記憶手段を備え、前記設計要素との置換部分を含んで前記テストケースのひな型を表すテストケーステンプレートを前記テストケースメタモデルの一部として準備し、前記テストケーステンプレートの置換部分を前記テスト対象の設計要素に置換して前記テストケースを生成するテストケース生成装置であって、
それぞれUMLのクラス図で表された前記設計メタメタモデル、前記テストケースメタメタモデル及び前記マッピングルールメタメタモデルを予め前記記憶手段に書込む手段と、
前記記憶手段内の設計メタメタモデルを表示することにより、前記設計メタモデルを表すUMLのクラス図の入力を促す手段と、
前記入力を受け付けた前記設計メタモデルを表すUMLのクラス図を前記記憶手段に書込む手段と、
前記記憶手段内の前記設計メタモデルを表すUMLのクラス図を表示することにより、前記設計メタモデルを構成する設計メタモデル要素を示す設計メタモデル要素データ、当該設計メタモデル要素の属性を示す設計メタモデル要素属性データ及び関連先の設計メタモデル要素データの入力を促す手段と、
前記入力を受け付けた前記設計メタモデル要素データ、前記設計メタモデル要素属性データ及び前記関連先の設計メタモデル要素データを前記記憶手段に書込む手段と、
前記記憶手段内の前記設計メタモデルを表すUMLのクラス図、前記設計メタモデル要素データ、前記設計メタモデル要素属性データ及び前記関連先の設計メタモデル要素データに対し、前記記憶手段内の設計メタメタモデルに違反している箇所を含むか否かを検証する手段と、
この検証結果が否を示す場合、前記記憶手段内の前記設計メタモデルを表すUMLのクラス図、前記設計メタモデル要素データ、前記設計メタモデル要素属性データ及び前記関連先の設計メタモデル要素データを表示することにより、前記設計要素を特定する要素データ、当該設計要素の項目を示す要素項目データ及び当該設計要素の処理を示す要素処理データの入力を促す手段と、
前記入力を受け付けた前記要素データ、前記要素項目データ及び前記要素処理データを前記記憶手段に書込む手段と、
前記記憶手段内のテストケースメタメタモデルを表すUMLのクラス図及び前記設計メタモデルを表すUMLのクラス図を表示することにより、前記テストケースメタモデルを表すUMLのクラス図の入力を促す手段と、
前記入力を受け付けた前記テストケースメタモデルを表すUMLのクラス図を前記記憶手段に書込む手段と、
前記記憶手段内の前記テストケースメタモデルを表すUMLのクラス図を表示することにより、前記テストケースメタモデルを構成するテストケースメタモデル要素を示すテストケースメタモデル要素データ及び当該テストケースメタモデル要素の属性を示すテストケースメタモデル要素属性データの入力を促す手段と、
前記入力を受け付けた前記テストケースメタモデル要素データ及び前記テストケースメタモデル要素属性データを前記記憶手段に書込む手段と、
前記記憶手段内の前記テストケースメタモデルを表すUMLのクラス図、前記テストケースメタモデル要素データ及び前記テストケースメタモデル要素属性データに対し、前記記憶手段内のテストケースメタメタモデルに違反している箇所を含むか否かを検証する手段と、
この検証結果が否を示す場合、前記記憶手段内のマッピングルールメタメタモデルを表すUMLのクラス図、前記記憶手段内のテストケースメタモデルを表すUMLのクラス図及び前記設計メタモデルを表すUMLのクラス図を表示することにより、前記マッピングルールメタモデルを表すUMLのクラス図の入力を促す手段と、
前記入力を受け付けた前記マッピングルールメタモデルを表すUMLのクラス図を前記記憶手段に書込む手段と、
前記記憶手段内の前記マッピングルールメタモデルを表すUMLのクラス図、前記設計メタモデル要素データ及び前記テストケースメタモデル要素データを表示することにより、前記マッピングルールメタモデルを構成するマッピングルールメタモデル要素を示すマッピングルールメタモデル要素データ及び当該マッピングルールメタモデル要素の属性を示すマッピングルールメタモデル要素属性データの入力を促す手段と、
前記入力を受け付けた前記マッピングルールメタモデル要素データ及び前記マッピングルールメタモデル要素属性データを前記記憶手段に書込む手段と、
前記記憶手段内の前記マッピングルールメタモデルを表すUMLのクラス図、前記マッピングルールメタモデル要素データ及び前記マッピングルールメタモデル要素属性データに対し、前記記憶手段内のマッピングルールメタメタモデルに違反している箇所を含むか否かを検証する手段と、
この検証結果が否を示す場合、前記記憶手段内のマッピングルールメタモデルを表すクラス図と前記テストケースメタモデル要素属性データとを表示することにより、前記設計要素との置換部分として前記要素データ、前記要素項目データ及び前記要素処理データ内のいずれかの項目を含んで前記テストケースのひな型を表すテストケーステンプレートの入力を促す手段と、
前記入力を受け付けたテストケーステンプレートを前記記憶手段に書込む手段と、
前記記憶手段内の前記テストケーステンプレートの置換部分の各項目を、前記要素データ、前記要素項目データ及び前記要素処理データ内の前記いずれかの項目の値に置換して前記テストケースを生成する手段と、
当該生成したテストケースを前記記憶手段に書込む手段と、
を備えたことを特徴とするテストケース生成装置。
【請求項4】
請求項3に記載のテストケース生成装置において、
前記設計メタメタモデルモデルは、前記設計要素を表す設計要素クラスに汎化される全体要素クラス及び項目要素クラスと、当該汎化される全体要素クラス又は項目要素クラス間の関係を示す組合せ情報クラス及び遷移情報クラスとの4種類の要素が前記設計メタモデルにあることを表し、前記項目要素クラスが多重度0以上で所有されるように前記全体要素クラスに関連付けられ、前記組合せ情報クラスが前記汎化されるいずれかの各要素クラスの関係を示す関連クラスであり、前記遷移情報クラスが前記汎化されるいずれかの各要素クラスに関連付けられることを表す情報であり、
前記テストケースメタモデルは、前記設計要素クラスに関連付けられた多重度0以上のテストケース要素クラスという1種類の要素が前記テストケースメタモデルにあることを表し、前記テストケース要素クラスが一連のテスト要素を表すテストスイート要素クラスに所有され、前記テストケース要素クラスが多重度0以上のテスト観点クラスに関連付けられ、前記テストケース要素クラスがテストケーステンプレートクラスに関連付けられ、前記テストケーステンプレートクラスに汎化される組合せテストケーステンプレート、遷移テストケーステンプレート及び一覧テストケーステンプレートを含む情報であり、
前記マッピングルールメタメタモデルは、前記設計メタメタモデル内の設計要素と前記テストケースメタメタモデル内のテストケース要素との関係を示す関連クラスであるマッピングルール要素クラスに汎化される組合せマッピングルール要素クラス、遷移マッピングルール要素クラス及び一覧マッピングルール要素クラスの3種類の要素が前記マッピングルールメタモデルにあることを表す情報であり、
前記設計メタモデルを表すUMLのクラス図は、前記全体要素クラス及び項目要素クラスの両者に対応するステレオタイプ名と前記設計メタモデル要素の名称を示すメタモデル要素名とをもつクラスと、前記項目要素クラスに対応するステレオタイプ名と前記メタモデル要素名とをもつクラスと、前記組合せ情報クラスに対応するステレオタイプ名と前記メタモデル要素名とをもつクラスと、前記遷移情報クラスに対応するステレオタイプ名と前記メタモデル要素名とをもつクラスとを関連付けて表した情報であり、
前記設計メタモデル要素データは、前記設計メタモデル要素を識別するメタモデル要素IDの項目と値及び前記メタモデル要素名の項目と値を含んでおり、
前記設計メタモデル要素属性データは、前記メタモデル要素IDの項目と値、前記設計メタモデル要素の属性を識別するメタモデル要素属性IDの項目と値、前記設計メタモデル要素の属性の名称を示すメタモデル要素属性名の項目と値及び前記設計メタモデル要素の属性の型を示すメタモデル要素属性型の項目と値を含んでおり、
前記関連先の設計メタモデル要素データは、前記設計メタモデル要素の関連先の設計メタモデル要素を識別するメタモデル要素IDの項目と値及び前記関連先の設計メタモデル要素の名称を示すメタモデル要素名の項目と値を含んでおり、
前記要素データは、前記設計要素を識別する要素IDの項目と値及び前記設計要素の名称を示す設計要素名の項目と値を含んでおり、
前記要素項目データは、前記要素IDの項目と値、前記要素の項目を識別する要素項目IDの項目と値、前記要素の項目の名称を示す要素項目名の項目と値を含んでおり、
前記要素処理データは、前記要素IDの項目と値、前記設計要素の処理を識別する要素処理IDの項目と値、前記設計要素の処理の名称を示す要素処理名の項目と値、前記要素項目IDの項目と値、イベントを識別するイベントIDの項目と値、処理先の要素項目IDの項目と値、前記設計要素の処理の結果を示す処理結果の項目と値を含んでおり、
前記テストケースメタモデルを表すUMLのクラス図は、前記設計メタモデルを表すクラス図内の各クラスのステレオタイプ名に代えて前記テストケース要素クラスに対応するステレオタイプ名をもつと共に、当該各クラスのメタモデル要素名に対する前記テストケース要素クラスを表すメタモデル要素名をもつ各クラスを表した情報であり、
前記テストケースメタモデル要素データは、前記テストスイート要素クラスに対応するテストスイートIDの項目と値、前記テストケースメタモデル要素を識別するメタモデル要素IDの項目と値及び前記テストケース要素クラスを表すメタモデル要素名の項目と値を含んでおり、
前記テストケースメタモデル要素属性データは、前記メタモデル要素IDの項目と値、前記テストケースメタモデル要素の属性を識別するメタモデル要素属性IDの項目と値、前記テストケースメタモデル要素の属性の名称を示すメタモデル要素属性名の項目と値及び前記テストケースメタモデル要素の属性の型を示すメタモデル要素属性型の項目と値を含んでおり、
前記マッピングルールメタモデルを表すUMLのクラス図は、前記設計メタモデルを表すクラス図内の各クラスと、前記テストケースメタモデルを表すクラス図内の各クラスと、当該テストケースメタモデルを表すクラス図内の各クラスが前記設計メタモデルを表すクラス図内の各クラスに依存する旨を表すように依存元のクラスから依存先のクラスを結ぶ破線の矢印と、前記破線の矢印に近接して記述された依存先のクラスのステレオタイプ名とを表す情報であり、
前記マッピングルールメタモデル要素データは、前記破線の矢印を識別するマッピング要素IDの項目と値及び前記破線の矢印の名称を表すマッピング要素名の項目と値を含んでおり、
前記マッピングルールメタモデル要素属性データは、前記依存先のクラスを識別する設計メタモデル要素IDの項目と値、前記依存元のクラスを識別するテストケースメタモデル要素IDの項目と値、及び前記破線の矢印に近接して記述されたステレオタイプ名の項目と値を含んでおり、
前記テストケーステンプレートの入力を促す手段は、前記記憶手段内のマッピングルールメタモデルを表すクラス図と前記テストケースメタモデル要素属性データ内のメタモデル要素属性名の値に含まれるテストケーステンプレート名とを表示する手段、を備えたことを特徴とするテストケース生成装置。
【請求項1】
テスト対象の設計書に記述された画面又はデータに対応する設計要素と、前記設計要素の構造を表す設計メタモデルと、前記設計メタモデルの構造を表す設計メタメタモデルと、前記設計要素を用いてテスト内容を記述したテストケースの構造を表すテストケースメタモデルと、前記テストケースメタモデルの構造を表すテストケースメタメタモデルと、前記テストケースメタメタモデル及び前記設計メタメタモデル間の関係を表すマッピングルールメタメタモデルと、前記テストケースメタモデル及び前記設計メタモデル間の関連付けを表すマッピングルールメタモデルと、前記テストケースとを記憶するための記憶手段を備え、前記設計要素との置換部分を含んで前記テストケースのひな型を表すテストケーステンプレートを前記テストケースメタモデルの一部として準備し、前記テストケーステンプレートの置換部分を前記テスト対象の設計要素に置換して前記テストケースを生成するテストケース生成装置に用いられるテストケース生成プログラムであって、
前記テストケース生成装置を、
それぞれUMLのクラス図で表された前記設計メタメタモデル、前記テストケースメタメタモデル及び前記マッピングルールメタメタモデルを予め前記記憶手段に書込む手段、
前記記憶手段内の設計メタメタモデルを表示することにより、前記設計メタモデルを表すUMLのクラス図の入力を促す手段、
前記入力を受け付けた前記設計メタモデルを表すUMLのクラス図を前記記憶手段に書込む手段、
前記記憶手段内の前記設計メタモデルを表すUMLのクラス図を表示することにより、前記設計メタモデルを構成する設計メタモデル要素を示す設計メタモデル要素データ、当該設計メタモデル要素の属性を示す設計メタモデル要素属性データ及び関連先の設計メタモデル要素データの入力を促す手段、
前記入力を受け付けた前記設計メタモデル要素データ、前記設計メタモデル要素属性データ及び前記関連先の設計メタモデル要素データを前記記憶手段に書込む手段、
前記記憶手段内の前記設計メタモデルを表すUMLのクラス図、前記設計メタモデル要素データ、前記設計メタモデル要素属性データ及び前記関連先の設計メタモデル要素データに対し、前記記憶手段内の設計メタメタモデルに違反している箇所を含むか否かを検証する手段、
この検証結果が否を示す場合、前記記憶手段内の前記設計メタモデルを表すUMLのクラス図、前記設計メタモデル要素データ、前記設計メタモデル要素属性データ及び前記関連先の設計メタモデル要素データを表示することにより、前記設計要素を特定する要素データ、当該設計要素の項目を示す要素項目データ及び当該設計要素の処理を示す要素処理データの入力を促す手段、
前記入力を受け付けた前記要素データ、前記要素項目データ及び前記要素処理データを前記記憶手段に書込む手段、
前記記憶手段内のテストケースメタメタモデルを表すUMLのクラス図及び前記設計メタモデルを表すUMLのクラス図を表示することにより、前記テストケースメタモデルを表すUMLのクラス図の入力を促す手段、
前記入力を受け付けた前記テストケースメタモデルを表すUMLのクラス図を前記記憶手段に書込む手段、
前記記憶手段内の前記テストケースメタモデルを表すUMLのクラス図を表示することにより、前記テストケースメタモデルを構成するテストケースメタモデル要素を示すテストケースメタモデル要素データ及び当該テストケースメタモデル要素の属性を示すテストケースメタモデル要素属性データの入力を促す手段、
前記入力を受け付けた前記テストケースメタモデル要素データ及び前記テストケースメタモデル要素属性データを前記記憶手段に書込む手段、
前記記憶手段内の前記テストケースメタモデルを表すUMLのクラス図、前記テストケースメタモデル要素データ及び前記テストケースメタモデル要素属性データに対し、前記記憶手段内のテストケースメタメタモデルに違反している箇所を含むか否かを検証する手段、
この検証結果が否を示す場合、前記記憶手段内のマッピングルールメタメタモデルを表すUMLのクラス図、前記記憶手段内のテストケースメタモデルを表すUMLのクラス図及び前記設計メタモデルを表すUMLのクラス図を表示することにより、前記マッピングルールメタモデルを表すUMLのクラス図の入力を促す手段、
前記入力を受け付けた前記マッピングルールメタモデルを表すUMLのクラス図を前記記憶手段に書込む手段、
前記記憶手段内の前記マッピングルールメタモデルを表すUMLのクラス図、前記設計メタモデル要素データ及び前記テストケースメタモデル要素データを表示することにより、前記マッピングルールメタモデルを構成するマッピングルールメタモデル要素を示すマッピングルールメタモデル要素データ及び当該マッピングルールメタモデル要素の属性を示すマッピングルールメタモデル要素属性データの入力を促す手段、
前記入力を受け付けた前記マッピングルールメタモデル要素データ及び前記マッピングルールメタモデル要素属性データを前記記憶手段に書込む手段、
前記記憶手段内の前記マッピングルールメタモデルを表すUMLのクラス図、前記マッピングルールメタモデル要素データ及び前記マッピングルールメタモデル要素属性データに対し、前記記憶手段内のマッピングルールメタメタモデルに違反している箇所を含むか否かを検証する手段、
この検証結果が否を示す場合、前記記憶手段内のマッピングルールメタモデルを表すクラス図と前記テストケースメタモデル要素属性データとを表示することにより、前記設計要素との置換部分として前記要素データ、前記要素項目データ及び前記要素処理データ内のいずれかの項目を含んで前記テストケースのひな型を表すテストケーステンプレートの入力を促す手段、
前記入力を受け付けたテストケーステンプレートを前記記憶手段に書込む手段、
前記記憶手段内の前記テストケーステンプレートの置換部分の各項目を、前記要素データ、前記要素項目データ及び前記要素処理データ内の前記いずれかの項目の値に置換して前記テストケースを生成する手段、
当該生成したテストケースを前記記憶手段に書込む手段、
として機能させるためのテストケース生成プログラム。
【請求項2】
請求項1に記載のテストケース生成プログラムにおいて、
前記設計メタメタモデルモデルは、前記設計要素を表す設計要素クラスに汎化される全体要素クラス及び項目要素クラスと、当該汎化される全体要素クラス又は項目要素クラス間の関係を示す組合せ情報クラス及び遷移情報クラスとの4種類の要素が前記設計メタモデルにあることを表し、前記項目要素クラスが多重度0以上で所有されるように前記全体要素クラスに関連付けられ、前記組合せ情報クラスが前記汎化されるいずれかの各要素クラスの関係を示す関連クラスであり、前記遷移情報クラスが前記汎化されるいずれかの各要素クラスに関連付けられることを表す情報であり、
前記テストケースメタモデルは、前記設計要素クラスに関連付けられた多重度0以上のテストケース要素クラスという1種類の要素が前記テストケースメタモデルにあることを表し、前記テストケース要素クラスが一連のテスト要素を表すテストスイート要素クラスに所有され、前記テストケース要素クラスが多重度0以上のテスト観点クラスに関連付けられ、前記テストケース要素クラスがテストケーステンプレートクラスに関連付けられ、前記テストケーステンプレートクラスに汎化される組合せテストケーステンプレート、遷移テストケーステンプレート及び一覧テストケーステンプレートを含む情報であり、
前記マッピングルールメタメタモデルは、前記設計メタメタモデル内の設計要素と前記テストケースメタメタモデル内のテストケース要素との関係を示す関連クラスであるマッピングルール要素クラスに汎化される組合せマッピングルール要素クラス、遷移マッピングルール要素クラス及び一覧マッピングルール要素クラスの3種類の要素が前記マッピングルールメタモデルにあることを表す情報であり、
前記設計メタモデルを表すUMLのクラス図は、前記全体要素クラス及び項目要素クラスの両者に対応するステレオタイプ名と前記設計メタモデル要素の名称を示すメタモデル要素名とをもつクラスと、前記項目要素クラスに対応するステレオタイプ名と前記メタモデル要素名とをもつクラスと、前記組合せ情報クラスに対応するステレオタイプ名と前記メタモデル要素名とをもつクラスと、前記遷移情報クラスに対応するステレオタイプ名と前記メタモデル要素名とをもつクラスとを関連付けて表した情報であり、
前記設計メタモデル要素データは、前記設計メタモデル要素を識別するメタモデル要素IDの項目と値及び前記メタモデル要素名の項目と値を含んでおり、
前記設計メタモデル要素属性データは、前記メタモデル要素IDの項目と値、前記設計メタモデル要素の属性を識別するメタモデル要素属性IDの項目と値、前記設計メタモデル要素の属性の名称を示すメタモデル要素属性名の項目と値及び前記設計メタモデル要素の属性の型を示すメタモデル要素属性型の項目と値を含んでおり、
前記関連先の設計メタモデル要素データは、前記設計メタモデル要素の関連先の設計メタモデル要素を識別するメタモデル要素IDの項目と値及び前記関連先の設計メタモデル要素の名称を示すメタモデル要素名の項目と値を含んでおり、
前記要素データは、前記設計要素を識別する要素IDの項目と値及び前記設計要素の名称を示す設計要素名の項目と値を含んでおり、
前記要素項目データは、前記要素IDの項目と値、前記要素の項目を識別する要素項目IDの項目と値、前記要素の項目の名称を示す要素項目名の項目と値を含んでおり、
前記要素処理データは、前記要素IDの項目と値、前記設計要素の処理を識別する要素処理IDの項目と値、前記設計要素の処理の名称を示す要素処理名の項目と値、前記要素項目IDの項目と値、イベントを識別するイベントIDの項目と値、処理先の要素項目IDの項目と値、前記設計要素の処理の結果を示す処理結果の項目と値を含んでおり、
前記テストケースメタモデルを表すUMLのクラス図は、前記設計メタモデルを表すクラス図内の各クラスのステレオタイプ名に代えて前記テストケース要素クラスに対応するステレオタイプ名をもつと共に、当該各クラスのメタモデル要素名に対する前記テストケース要素クラスを表すメタモデル要素名をもつ各クラスを表した情報であり、
前記テストケースメタモデル要素データは、前記テストスイート要素クラスに対応するテストスイートIDの項目と値、前記テストケースメタモデル要素を識別するメタモデル要素IDの項目と値及び前記テストケース要素クラスを表すメタモデル要素名の項目と値を含んでおり、
前記テストケースメタモデル要素属性データは、前記メタモデル要素IDの項目と値、前記テストケースメタモデル要素の属性を識別するメタモデル要素属性IDの項目と値、前記テストケースメタモデル要素の属性の名称を示すメタモデル要素属性名の項目と値及び前記テストケースメタモデル要素の属性の型を示すメタモデル要素属性型の項目と値を含んでおり、
前記マッピングルールメタモデルを表すUMLのクラス図は、前記設計メタモデルを表すクラス図内の各クラスと、前記テストケースメタモデルを表すクラス図内の各クラスと、当該テストケースメタモデルを表すクラス図内の各クラスが前記設計メタモデルを表すクラス図内の各クラスに依存する旨を表すように依存元のクラスから依存先のクラスを結ぶ破線の矢印と、前記破線の矢印に近接して記述された依存先のクラスのステレオタイプ名とを表す情報であり、
前記マッピングルールメタモデル要素データは、前記破線の矢印を識別するマッピング要素IDの項目と値及び前記破線の矢印の名称を表すマッピング要素名の項目と値を含んでおり、
前記マッピングルールメタモデル要素属性データは、前記依存先のクラスを識別する設計メタモデル要素IDの項目と値、前記依存元のクラスを識別するテストケースメタモデル要素IDの項目と値、及び前記破線の矢印に近接して記述されたステレオタイプ名の項目と値を含んでおり、
前記テストケーステンプレートの入力を促す手段は、前記記憶手段内のマッピングルールメタモデルを表すクラス図と前記テストケースメタモデル要素属性データ内のメタモデル要素属性名の値に含まれるテストケーステンプレート名とを表示する手段、を含んでいることを特徴とするテストケース生成プログラム。
【請求項3】
テスト対象の設計書に記述された画面又はデータに対応する設計要素と、前記設計要素の構造を表す設計メタモデルと、前記設計メタモデルの構造を表す設計メタメタモデルと、前記設計要素を用いてテスト内容を記述したテストケースの構造を表すテストケースメタモデルと、前記テストケースメタモデルの構造を表すテストケースメタメタモデルと、前記テストケースメタメタモデル及び前記設計メタメタモデル間の関係を表すマッピングルールメタメタモデルと、前記テストケースメタモデル及び前記設計メタモデル間の関連付けを表すマッピングルールメタモデルと、前記テストケースとを記憶するための記憶手段を備え、前記設計要素との置換部分を含んで前記テストケースのひな型を表すテストケーステンプレートを前記テストケースメタモデルの一部として準備し、前記テストケーステンプレートの置換部分を前記テスト対象の設計要素に置換して前記テストケースを生成するテストケース生成装置であって、
それぞれUMLのクラス図で表された前記設計メタメタモデル、前記テストケースメタメタモデル及び前記マッピングルールメタメタモデルを予め前記記憶手段に書込む手段と、
前記記憶手段内の設計メタメタモデルを表示することにより、前記設計メタモデルを表すUMLのクラス図の入力を促す手段と、
前記入力を受け付けた前記設計メタモデルを表すUMLのクラス図を前記記憶手段に書込む手段と、
前記記憶手段内の前記設計メタモデルを表すUMLのクラス図を表示することにより、前記設計メタモデルを構成する設計メタモデル要素を示す設計メタモデル要素データ、当該設計メタモデル要素の属性を示す設計メタモデル要素属性データ及び関連先の設計メタモデル要素データの入力を促す手段と、
前記入力を受け付けた前記設計メタモデル要素データ、前記設計メタモデル要素属性データ及び前記関連先の設計メタモデル要素データを前記記憶手段に書込む手段と、
前記記憶手段内の前記設計メタモデルを表すUMLのクラス図、前記設計メタモデル要素データ、前記設計メタモデル要素属性データ及び前記関連先の設計メタモデル要素データに対し、前記記憶手段内の設計メタメタモデルに違反している箇所を含むか否かを検証する手段と、
この検証結果が否を示す場合、前記記憶手段内の前記設計メタモデルを表すUMLのクラス図、前記設計メタモデル要素データ、前記設計メタモデル要素属性データ及び前記関連先の設計メタモデル要素データを表示することにより、前記設計要素を特定する要素データ、当該設計要素の項目を示す要素項目データ及び当該設計要素の処理を示す要素処理データの入力を促す手段と、
前記入力を受け付けた前記要素データ、前記要素項目データ及び前記要素処理データを前記記憶手段に書込む手段と、
前記記憶手段内のテストケースメタメタモデルを表すUMLのクラス図及び前記設計メタモデルを表すUMLのクラス図を表示することにより、前記テストケースメタモデルを表すUMLのクラス図の入力を促す手段と、
前記入力を受け付けた前記テストケースメタモデルを表すUMLのクラス図を前記記憶手段に書込む手段と、
前記記憶手段内の前記テストケースメタモデルを表すUMLのクラス図を表示することにより、前記テストケースメタモデルを構成するテストケースメタモデル要素を示すテストケースメタモデル要素データ及び当該テストケースメタモデル要素の属性を示すテストケースメタモデル要素属性データの入力を促す手段と、
前記入力を受け付けた前記テストケースメタモデル要素データ及び前記テストケースメタモデル要素属性データを前記記憶手段に書込む手段と、
前記記憶手段内の前記テストケースメタモデルを表すUMLのクラス図、前記テストケースメタモデル要素データ及び前記テストケースメタモデル要素属性データに対し、前記記憶手段内のテストケースメタメタモデルに違反している箇所を含むか否かを検証する手段と、
この検証結果が否を示す場合、前記記憶手段内のマッピングルールメタメタモデルを表すUMLのクラス図、前記記憶手段内のテストケースメタモデルを表すUMLのクラス図及び前記設計メタモデルを表すUMLのクラス図を表示することにより、前記マッピングルールメタモデルを表すUMLのクラス図の入力を促す手段と、
前記入力を受け付けた前記マッピングルールメタモデルを表すUMLのクラス図を前記記憶手段に書込む手段と、
前記記憶手段内の前記マッピングルールメタモデルを表すUMLのクラス図、前記設計メタモデル要素データ及び前記テストケースメタモデル要素データを表示することにより、前記マッピングルールメタモデルを構成するマッピングルールメタモデル要素を示すマッピングルールメタモデル要素データ及び当該マッピングルールメタモデル要素の属性を示すマッピングルールメタモデル要素属性データの入力を促す手段と、
前記入力を受け付けた前記マッピングルールメタモデル要素データ及び前記マッピングルールメタモデル要素属性データを前記記憶手段に書込む手段と、
前記記憶手段内の前記マッピングルールメタモデルを表すUMLのクラス図、前記マッピングルールメタモデル要素データ及び前記マッピングルールメタモデル要素属性データに対し、前記記憶手段内のマッピングルールメタメタモデルに違反している箇所を含むか否かを検証する手段と、
この検証結果が否を示す場合、前記記憶手段内のマッピングルールメタモデルを表すクラス図と前記テストケースメタモデル要素属性データとを表示することにより、前記設計要素との置換部分として前記要素データ、前記要素項目データ及び前記要素処理データ内のいずれかの項目を含んで前記テストケースのひな型を表すテストケーステンプレートの入力を促す手段と、
前記入力を受け付けたテストケーステンプレートを前記記憶手段に書込む手段と、
前記記憶手段内の前記テストケーステンプレートの置換部分の各項目を、前記要素データ、前記要素項目データ及び前記要素処理データ内の前記いずれかの項目の値に置換して前記テストケースを生成する手段と、
当該生成したテストケースを前記記憶手段に書込む手段と、
を備えたことを特徴とするテストケース生成装置。
【請求項4】
請求項3に記載のテストケース生成装置において、
前記設計メタメタモデルモデルは、前記設計要素を表す設計要素クラスに汎化される全体要素クラス及び項目要素クラスと、当該汎化される全体要素クラス又は項目要素クラス間の関係を示す組合せ情報クラス及び遷移情報クラスとの4種類の要素が前記設計メタモデルにあることを表し、前記項目要素クラスが多重度0以上で所有されるように前記全体要素クラスに関連付けられ、前記組合せ情報クラスが前記汎化されるいずれかの各要素クラスの関係を示す関連クラスであり、前記遷移情報クラスが前記汎化されるいずれかの各要素クラスに関連付けられることを表す情報であり、
前記テストケースメタモデルは、前記設計要素クラスに関連付けられた多重度0以上のテストケース要素クラスという1種類の要素が前記テストケースメタモデルにあることを表し、前記テストケース要素クラスが一連のテスト要素を表すテストスイート要素クラスに所有され、前記テストケース要素クラスが多重度0以上のテスト観点クラスに関連付けられ、前記テストケース要素クラスがテストケーステンプレートクラスに関連付けられ、前記テストケーステンプレートクラスに汎化される組合せテストケーステンプレート、遷移テストケーステンプレート及び一覧テストケーステンプレートを含む情報であり、
前記マッピングルールメタメタモデルは、前記設計メタメタモデル内の設計要素と前記テストケースメタメタモデル内のテストケース要素との関係を示す関連クラスであるマッピングルール要素クラスに汎化される組合せマッピングルール要素クラス、遷移マッピングルール要素クラス及び一覧マッピングルール要素クラスの3種類の要素が前記マッピングルールメタモデルにあることを表す情報であり、
前記設計メタモデルを表すUMLのクラス図は、前記全体要素クラス及び項目要素クラスの両者に対応するステレオタイプ名と前記設計メタモデル要素の名称を示すメタモデル要素名とをもつクラスと、前記項目要素クラスに対応するステレオタイプ名と前記メタモデル要素名とをもつクラスと、前記組合せ情報クラスに対応するステレオタイプ名と前記メタモデル要素名とをもつクラスと、前記遷移情報クラスに対応するステレオタイプ名と前記メタモデル要素名とをもつクラスとを関連付けて表した情報であり、
前記設計メタモデル要素データは、前記設計メタモデル要素を識別するメタモデル要素IDの項目と値及び前記メタモデル要素名の項目と値を含んでおり、
前記設計メタモデル要素属性データは、前記メタモデル要素IDの項目と値、前記設計メタモデル要素の属性を識別するメタモデル要素属性IDの項目と値、前記設計メタモデル要素の属性の名称を示すメタモデル要素属性名の項目と値及び前記設計メタモデル要素の属性の型を示すメタモデル要素属性型の項目と値を含んでおり、
前記関連先の設計メタモデル要素データは、前記設計メタモデル要素の関連先の設計メタモデル要素を識別するメタモデル要素IDの項目と値及び前記関連先の設計メタモデル要素の名称を示すメタモデル要素名の項目と値を含んでおり、
前記要素データは、前記設計要素を識別する要素IDの項目と値及び前記設計要素の名称を示す設計要素名の項目と値を含んでおり、
前記要素項目データは、前記要素IDの項目と値、前記要素の項目を識別する要素項目IDの項目と値、前記要素の項目の名称を示す要素項目名の項目と値を含んでおり、
前記要素処理データは、前記要素IDの項目と値、前記設計要素の処理を識別する要素処理IDの項目と値、前記設計要素の処理の名称を示す要素処理名の項目と値、前記要素項目IDの項目と値、イベントを識別するイベントIDの項目と値、処理先の要素項目IDの項目と値、前記設計要素の処理の結果を示す処理結果の項目と値を含んでおり、
前記テストケースメタモデルを表すUMLのクラス図は、前記設計メタモデルを表すクラス図内の各クラスのステレオタイプ名に代えて前記テストケース要素クラスに対応するステレオタイプ名をもつと共に、当該各クラスのメタモデル要素名に対する前記テストケース要素クラスを表すメタモデル要素名をもつ各クラスを表した情報であり、
前記テストケースメタモデル要素データは、前記テストスイート要素クラスに対応するテストスイートIDの項目と値、前記テストケースメタモデル要素を識別するメタモデル要素IDの項目と値及び前記テストケース要素クラスを表すメタモデル要素名の項目と値を含んでおり、
前記テストケースメタモデル要素属性データは、前記メタモデル要素IDの項目と値、前記テストケースメタモデル要素の属性を識別するメタモデル要素属性IDの項目と値、前記テストケースメタモデル要素の属性の名称を示すメタモデル要素属性名の項目と値及び前記テストケースメタモデル要素の属性の型を示すメタモデル要素属性型の項目と値を含んでおり、
前記マッピングルールメタモデルを表すUMLのクラス図は、前記設計メタモデルを表すクラス図内の各クラスと、前記テストケースメタモデルを表すクラス図内の各クラスと、当該テストケースメタモデルを表すクラス図内の各クラスが前記設計メタモデルを表すクラス図内の各クラスに依存する旨を表すように依存元のクラスから依存先のクラスを結ぶ破線の矢印と、前記破線の矢印に近接して記述された依存先のクラスのステレオタイプ名とを表す情報であり、
前記マッピングルールメタモデル要素データは、前記破線の矢印を識別するマッピング要素IDの項目と値及び前記破線の矢印の名称を表すマッピング要素名の項目と値を含んでおり、
前記マッピングルールメタモデル要素属性データは、前記依存先のクラスを識別する設計メタモデル要素IDの項目と値、前記依存元のクラスを識別するテストケースメタモデル要素IDの項目と値、及び前記破線の矢印に近接して記述されたステレオタイプ名の項目と値を含んでおり、
前記テストケーステンプレートの入力を促す手段は、前記記憶手段内のマッピングルールメタモデルを表すクラス図と前記テストケースメタモデル要素属性データ内のメタモデル要素属性名の値に含まれるテストケーステンプレート名とを表示する手段、を備えたことを特徴とするテストケース生成装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【公開番号】特開2013−77173(P2013−77173A)
【公開日】平成25年4月25日(2013.4.25)
【国際特許分類】
【出願番号】特願2011−216730(P2011−216730)
【出願日】平成23年9月30日(2011.9.30)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】
【公開日】平成25年4月25日(2013.4.25)
【国際特許分類】
【出願日】平成23年9月30日(2011.9.30)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】
[ Back to top ]