"特定のテストケースを実施する際の、確認したいシステムの振る舞いを引き起こせる、テスト用入力データを生成するテスト用入力データ生成装置であって、ユーザ端末より、設計書で記述した設計情報を読み込み内部形式である設計モデルに変換する設計情報読込手段と、前記設計モデルから画面と処理間のインタラクションをテスト対象として抽出する設計モデル分析手段と、前記テスト対象から実行経路を抽出し、実行経路記憶手段に格納する実行経路抽出手段と、前記実行経路記憶手段から各実行経路を読み込んで、該各実行経路の始点から終点までを走査することにより入力データが満たすべきテストデータ生成条件を抽出する条件抽出手段と、前記テストデータ生成条件を変数毎に整理し、前記入力データを構成する値候補を生成するための定義域を作成し、定義域記憶手段に格納する定義域生成手段と、前記定義域記憶手段から前記定義域を読み込み、該定義域が表す範囲の中から値候補を生成する値候補生成手段と、複数の変数のそれぞれに前記値候補を割り当てて組み合わせを生成し、入力データとして前記ユーザ端末に出力する組み合わせ生成手段と、を有することを特徴とするテスト用入力データ生成装置。前記定義域生成手段は、前記定義域記憶手段の定義域に、前記テストデータ生成条件を順次格納していき、前記条件抽出手段で抽出されたテストデータ生成条件に含まれる各条件と、既に該定義域記憶手段に格納されているテストデータ生成条件の各条件との相互矛盾を検出するチェック手段と、前記チェック手段において、前記条件抽出手段で抽出されたテストデータ生成条件に含まれる各条件と矛盾があると判断された場合には、設計誤りとして前記ユーザ端末に通知し、矛盾がないと判断された場合には、前記定義域に前記条件を追加する通知手段と、を含む請求項1記載のテスト用入力データ生成装置。前記定義域記憶手段は、文字列の長さ、文字種、包含文字列の各属性をもつ文字列型の定義域と、数値型の定義域を有し、前記定義域生成手段は、前記テストデータ生成条件の変数のデータ型が文字列型である場合は、前記条件抽出手段で抽出されたテストデータ生成条件の変数毎に条件を振り分け、各条件の文字列の長さ、文字種、包含文字列の各属性を識別し、該属性毎に前記文字列型の定義域に該条件を格納し、該データ型が数値型の場合は、該数値型の定義域に該条件を格納する条件格納手段を含み、前記条件格納手段は、前記包含文字列について、文字列の長さの条件を新規に生成し、前記定義域に格納し、全ての条件の保存終了後に、前記文字列の長さに属する複数の条件をマージし、前記文字種に属する複数の条件をマージする手段を含む請求項1または2記載のテスト用データ生成装置。前記チェック手段は、前記定義域記憶手段の前記文字列型の定義域に格納されている、文字列型の入力データ生成における、異なる属性の条件間の相互矛盾、および、同じ属性の相反する条件の存在をチェックする手段を含み、前記異なる属性の条件間の相互矛盾として、包含文字列と文字列の長さの間の相互矛盾及び包含文字列と文字種の間の相互矛盾を検証し、前記同じ属性の相反する条件の存在として、複数の文字種の指定、及び、複数の文字列の長さの指定、及び、複数の包含文字列の指定を検証することにより、相互矛盾を検出する手段を含む請求項2または3記載のテスト用データ生成装置。特定のテストケースを実施する際の、確認したいシステムの振る舞いを引き起こせる、テスト用入力データを生成するテスト用入力データ生成方法であって、設計情報読込手段が、ユーザ端末より、設計書で記述した設計情報を読み込み内部形式である設計モデルに変換する設計情報読込ステップと、設計モデル分析手段が、前記設計モデルから画面と処理間のインタラクションをテスト対象として抽出する設計モデル分析ステップと、実行経路抽出手段が、前記テスト対象から実行経路を抽出し、実行経路記憶手段に格納する実行経路抽出ステップと、条件抽出手段が、前記実行経路記憶手段から各実行経路を読み込んで、該各実行経路の始点から終点までを走査することにより入力データが満たすべきテストデータ生成条件を抽出する条件抽出ステップと、定義域生成手段が、前記テストデータ生成条件を変数毎に整理し、前記入力データを構成する値候補を生成するための定義域を作成し、定義域記憶手段に格納する定義域生成ステップと、値候補生成手段が、前記定義域記憶手段から前記定義域を読み込み、該定義域が表す範囲の中から値候補を生成する値候補生成ステップと、組み合わせ生成手段が、複数の変数のそれぞれに前記値候補を割り当てて組み合わせを生成し、入力データとして前記ユーザ端末に出力する組み合わせ生成ステップと、を行うことを特徴とするテスト用入力データ生成方法。前記定義域生成ステップにおいて、前記定義域記憶手段の定義域に、前記テストデータ生成条件を順次格納していき、前記条件抽出ステップで抽出されたテストデータ生成条件に含まれる各条件が、既に該定義域記憶手段に格納されているテストデータ生成条件の各条件との相互矛盾を検出するチェックステップと、前記チェックステップにおいて、前記条件抽出ステップで抽出されたテストデータ生成条件に含まれる各条件と矛盾があると判断された場合には、設計誤りとして前記ユーザ端末に通知し、矛盾がないと判断された場合には、前記定義域に前記条件を追加する通知ステップと、を行う請求項5記載のテスト用入力データ生成方法。前記定義域生成ステップにおいて、前記テストデータ生成条件の変数のデータ型が文字列型である場合は、前記条件抽出ステップで抽出されたテストデータ生成条件の変数毎に条件を振り分け、各条件の文字列の長さ、文字種、包含文字列の各属性を識別し、該属性毎に、前記定義域記憶手段上の文字列型の定義域に該条件を格納し、該データ型が数値型の場合は、該数値型の定義域に該条件を格納する条件格納ステップを行い、前記条件格納ステップにおいて、前記包含文字列について、文字列の長さの条件を新規に生成し、前記定義域に格納し、全ての条件の保存終了後に、前記文字列の長さに属する複数の条件をマージし、前記文字種に属する複数の条件をマージする請求項5または6記載のテスト用データ生成方法。前記チェックステップにおいて、前記定義域記憶手段の前記文字列型の定義域に格納されている、文字列型の入力データ生成における、異なる属性の条件間の相互矛盾、および、同じ属性の相反する条件の存在をチェックする条件チェックステップを行い、前記条件チェックステップでは、前記異なる属性の条件間の相互矛盾として、包含文字列と文字列の長さの間の相互矛盾及び包含文字列と文字種の間の相互矛盾を検証し、前記同じ属性の相反する条件の存在として、複数の文字種の指定、及び、複数の文字列の長さの指定、及び、複数の包含文字列の指定を検証することにより、相互矛盾を検出する請求項6または7記載のテスト用データ生成方法。コンピュータを、請求項1乃至4記載のテスト用データ生成装置の各手段として機能させるためのテスト用データ生成プログラム。しかしながら、上記のテストデータ自動生成の技術は、以下のような問題がある。プログラム動作履歴を入力とするテストデータ生成手法では、条件に従って数値型の変数に対する値を決定できるのみで、システムでよく使われる文字列型のテストデータ生成については言及していない。特許文献2では、数値に加え、扱えるデータ型として1文字であるCHAR型を挙げているが、文字の羅列である文字列型のデータ生成では、1文字ずつを単純に並べるだけでは所望する性質を有するテストデータは得られない。特許文献1では、文字列型の入力データ生成ができるが、単一の条件を満たした入力データしか生成できない。文字列の長さ、文字種、部分文字列などの、複数の相互に関連する条件がある場合、特許文献1の手法を用いて逐次的に1つずつの条件を満たしていっても、所望する入力データは得られない。つまり複数条件を同時に満たした生成ができないことが問題である。また、設計情報を入力とする特許文献1と特許文献2の技術では、設計情報が正しいと仮定してテストデータを生成するため、設計誤りの検出ができない。本発明は、上記の点に鑑みなされたもので、複数の条件を同時に満たした所望する文字列型の入力データの生成、および、設計誤りの検出を可能とするテスト用入力データ生成装置及び方法及びプログラムを提供することを目的とする。上記の課題を解決するため、本発明は、特定のテストケースを実施する際の、確認したいシステムの振る舞いを引き起こせる、テスト用入力データを生成するテスト用入力データ生成装置であって、ユーザ端末より、設計書で記述した設計情報を読み込み内部形式である設計モデルに変換する設計情報読込手段と、前記設計モデルから画面と処理間のインタラクションをテスト対象として抽出する設計モデル分析手段と、前記テスト対象から実行経路を抽出し、実行経路記憶手段に格納する実行経路抽出手段と、前記実行経路記憶手段から各実行経路を読み込んで、該各実行経路の始点から終点までを走査することにより入力データが満たすべきテストデータ生成条件を抽出する条件抽出手段と、前記テストデータ生成条件を変数毎に整理し、前記入力データを構成する値候補を生成するための定義域を作成し、定義域記憶手段に格納する定義域生成手段と、前記定義域記憶手段から前記定義域を読み込み、該定義域が表す範囲の中から値候補を生成する値候補生成手段と、複数の変数のそれぞれに前記値候補を割り当てて組み合わせを生成し、入力データとして前記ユーザ端末に出力する組み合わせ生成手段と、を有することを特徴とする。また、本発明は、前記定義域生成手段において、前記定義域記憶手段の定義域に、前記テストデータ生成条件を順次格納していき、前記条件抽出手段で抽出されたテストデータ生成条件に含まれる各条件と、既に該定義域記憶手段に格納されているテストデータ生成条件の各条件との相互矛盾を検出するチェック手段と、前記チェック手段において、前記条件抽出手段で抽出されたテストデータ生成条件に含まれる各条件と矛盾があると判断された場合には、設計誤りとして前記ユーザ端末に通知し、矛盾がないと判断された場合には、前記定義域に前記条件を追加する通知手段と、を含む。また、本発明は、前記定義域記憶手段に、文字列の長さ、文字種、包含文字列の各属性をもつ文字列型の定義域と、数値型の定義域を備え、前記定義域生成手段において、前記テストデータ生成条件の変数のデータ型が文字列型である場合は、前記条件抽出手段で抽出されたテストデータ生成条件の変数毎に条件を振り分け、各条件の文字列の長さ、文字種、包含文字列の各属性を識別し、該属性毎に前記文字列型の定義域に該条件を格納し、該データ型が数値型の場合は、該数値型の定義域に該条件を格納する条件格納手段を含み、前記条件格納手段は、前記包含文字列について、文字列の長さの条件を新規に生成し、前記定義域に格納し、全ての条件の保存終了後に、前記文字列の長さに属する複数の条件をマージし、前記文字種に属する複数の条件をマージする手段を含む。また、本発明は、前記チェック手段において、前記定義域記憶手段の前記文字列型の定義域に格納されている、文字列型の入力データ生成における、異なる属性の条件間の相互矛盾、および、同じ属性の相反する条件の存在をチェックする手段を含み、前記異なる属性の条件間の相互矛盾として、包含文字列と文字列の長さの間の相互矛盾及び包含文字列と文字種の間の相互矛盾を検証し、前記同じ属性の相反する条件の存在として、複数の文字種の指定、及び、複数の文字列の長さの指定、及び、複数の包含文字列の指定を検証することにより、相互矛盾を検出する手段を含む。上記のように本発明によれば、相互に関連する複数の条件を同時に満たす、文字列型の入力データを生成する。すなわち文字列の長さ、文字種、包含文字列の3つの属性に分類できる複数の条件を同時に満たした、文字列型の入力データを生成することで、プログラム開発工程におけるテストでの入力データ作成をより効率的に行う。また、本発明によれば、ソフトウェア設計情報に存在する設計誤りを検出する。すなわち、入力データ生成の過程での満たせない条件の検出により、通りえない実行経路が誤って設計されたことを検出できる。満たせない条件とは、文字列型の入力データ生成における、異なる属性の条件間の相互矛盾、および、同じ属性の相反する条件の存在を指し、以下のタイプがある。異なる属性の条件間の相互矛盾としては、包含文字列と文字列の長さの間の相互矛盾;包含文字列と文字種の間の相互矛盾;がある。同じ属性の相反する条件の存在としては、複数の文字種の指定;複数の文字列の長さの指定複数の包含文字列の指定を指す。包含文字列は、完全一致、前方部分一致、中間部分一致、後方部分一致を含む。文字種は、全角、半角、英数字、かな、を含む。本発明は、文字列型の入力データを生成することでテストケースの作成を効率化し、設計誤りを検出することで設計の品質を向上させることが可能となる。以下図面と共に、本発明の実施の形態を説明する。最初に、以下の実施の形態で用いる用語について説明する。テストケースとは、テスト対象システムの特定の振る舞いが正しいかを確認するためのものである。テストケースは、実行経路とテストデータを含む。テストデータとは、テスト対象システムへ与える刺激である。該当するテストケースで確認したい振る舞いを引き起こせる、言い換えれば、実行経路を通るものでなければならない。テストデータは、入力データと期待結果を含む。入力データとは、個々の入力変数がとる値の組み合わせである。変数には、文字列型、数値型、などのデータ型が定義されている。テストデータ生成条件とは、設計モデルから抽出された実行経路に含まれ、図1aに示すように、a>3のような変数ここではaの取り得る値に関する条件の羅列を指す。条件は変数の名前a、条件種別>、定数3から成る。図1bに示すように、条件種別には、不等号や文字列の長さ等通常使われる記法を用いる。定義域とは、変数がとりうる値の許容される範囲を示すものである。定義域は、図2に示すように、変数名、属性の配列、各属性の中に条件、設計誤り検出時のフラグをもつ。文字列型の定義域は、属性として、文字列の長さ、文字種、包含文字列の3つをもつ。包含文字列とは、特定の文字列を含む文字列であり、完全一致、前方部分一致、中間部分一致、後方部分一致を含む。文字種とは、使用可能な文字の集合を表すものである。選択肢として指定可能な文字種の一覧、およびそれらの包含関係は図1cに示すように木構造で保持される。リーフにある候補は、包含する文字の一覧をもつ例:半角数字であれば0129をもつ。設計情報とは、システムをどのような構成で実現するかを示す仕様である。本発明では、以下の設計書一式を設計情報として扱う。画面遷移図:機能内における各画面間の遷移を示すドキュメントを指す;画面要素一覧:画面内の各構成要素について入出力可否や属性テキスト、プルダウンリスト等に関して定義を記述したもの;入力制約定義書:入力となる画面要素単体についての制約事項を記述したもの;処理イベント定義書:画面上で発生したイベント主にユーザ操作に起因する処理の呼び出しを記述したもの;処理概要フロー定義書:処理の振る舞いを明確にするためのフロー:処理詳細定義書処理が終了した後の振る舞いを記述したもの:図3は、本発明の一実施の形態におけるテスト用入力データ生成装置の構成を示す。同図に示すテスト用入力データ生成装置は、設計情報読込部1、設計モデル分析部2、実行経路抽出部3、実行経路記憶部4、条件抽出部5、定義域生成部6、定義域記憶部7、値候補生成部8、組合せ生成部9、設計モデル記憶部10から構成される。このうち、設計情報読込部1、設計モデル分析部2、実行経路抽出部3、条件抽出部5、定義域生成部6、値候補生成部8、組合せ生成部9、設計モデル記憶部10は、CPU上の機能であり、実行経路記憶部4、定義域記憶部7は、ハードディスク装置等の記憶媒体である。ユーザ端末は、設計情報をテスト用入力データ生成装置の設計情報読込部1に与える。また、テスト用入力データ生成装置から入力データを取得し、場合によっては設計誤りの通知を受け取る。設計情報読込部1は、ユーザ端末から以下の設計書一式が与えられる。画面遷移図:機能内における各画面間の遷移を示す;画面要素定義書:画面内の各構成要素について入出力可否や属性に関する定義が記載されている;入力制約定義書:入力となる画面要素単体についての制約事項;処理イベント定義書:画面上で発生したイベントに起因する処理の呼び出しを記載;処理概要フロー定義書:処理の振る舞いを明確にするための処理フローを記載;処理詳細定義書:処理終了後の振る舞いを記述;上記の設計書一式を読み込み、単一の中間形式の言語に変換したオブジェクトを、単一の設計モデルに統合し、設計モデル記憶部10に保持する。ここでは、画面遷移図、処理概要フロー定義書はMSVisio登録商標形式、画面要素定義書、入力制約定義書、処理イベント定義書、処理詳細定義書はMSExcel登録商標形式で入力されるものとする。設計モデル分析部2は、画面と処理のインタラクションを単位に、設計モデル記憶部10に格納されている設計モデルから該当するアクティビティをテスト対象として抽出する。実行経路抽出部3は、アクティビティから実行経路を抽出する。実行経路記憶部4は、抽出された実行経路を保持する。条件抽出部5は、実行経路記憶部4より実行経路を取得し、経路の始端から終端までを走査することで経路上の条件を順に集め、テストデータ生成条件として保持する。定義域生成部6は、テストデータ生成条件を読み込み、変数毎に条件を分類した後、変数毎にその変数のデータ型に合った定義域を生成し、該当する変数に関する条件を1つずつ定義域に追加していき、矛盾を検出した時点で定義域に設計誤りフラグを立てて定義域記憶部7に保存し、残りの条件をスキップする。矛盾なくすべての条件の追加が終了したら定義域を定義域記憶部7に保存する。図2に示すようなフォーマットで定義域記憶部7に保存する。定義域記憶部7は、図2に示すように、文字列型の変数の定義域、数値型の変数の定義域の2種類の定義域を保持する。値候補生成部8は、定義域記憶部7より定義域を読み込み、定義域が表す範囲の中から境界値分析により値候補を複数生成する。組合せ生成部9は、変数のそれぞれに、その変数に対し生成された値候補から1つ選び割り当てることで組合せを生成し、これを入力データとしてユーザ端末に出力する。ここでは、入力データはMSExcel形式で出力するものとする。以下に、上記の構成における動作を説明する。図4は、本発明の一実施の形態におけるテスト用入力データ生成装置の動作のフローチャートである。ステップ100設計情報読込部1は、ユーザ端末から与えられる一式の設計書を読み込み、単一の中間言語JavaObjectに変換し、単一の設計モデルXMI形式UMLに変換し、設計モデル記憶部10に格納する。ステップ110設計モデル分析部2は、設計モデル記憶部10から取得した設計モデルを分解してアクティビティをテスト対象として抽出し、実行経路抽出部3に渡す。ステップ120実行経路抽出部3は、取得した各テスト対象アクティビティの開始ノードから終了ノードまで走査して実行経路を抽出し、全ての実行経路を実行経路記憶部4に渡す。実行経路は分岐条件、事後条件を含む。具体的な実行経路の抽出方法としては、前述の特許文献1の技術を適用することが可能である。ステップ130条件生成部5は、実行経路記憶部4から実行経路を読み出し、各実行経路から該当実行経路を通るために満たすべき条件分岐条件を逐一集めてテストデータ生成条件として定義域生成部6に渡す。本ステップのテストデータの生成条件の集約方法としては、前述の特許文献1の技術を用いることができる。ステップ140定義域生成部6は、テストデータ生成条件を構成する個々の条件を変数毎に振り分け、条件の属性文字列の長さ、文字種、包含文字列を識別し、変数毎の定義域にこれら条件を保存し、定義域記憶部7に保存する。条件を定義域に保存する際に条件間の矛盾が存在すれば、設計誤りを検出したとして定義域記憶部7の定義域図2の設計誤りがあるかの欄にフラグを立てて残りの条件をスキップする。以下に、定義域生成部6の動作を説明する。図5は、本発明の一実施の形態における定義域生成部のフローチャートであり、上記のステップ140変数毎に定義域を生成し記憶部に保存の詳細な動作を示す。ステップ200定義域生成部6は、条件生成部5からテストデータ生成条件を取得し、メモリ図示せずに格納する。ステップ210メモリ図示せずから条件を取得して、条件から変数名を抽出する。ステップ220変数名毎にソートした条件を、メモリ図示せずに格納する。ステップ230変数のデータ型を取得し、データ型に応じた定義域を生成し、メモリ図示せずに格納する。当該処理の詳細については、図6に沿って説明する。図6は、本発明の一実施の形態におけるステップ230の詳細なフローチャートである。ステップ300条件から対象とする変数を特定する。変数のデータ型が数値型、または、文字列型のいずれであるかを判定し、数値型の場合はステップ310に、文字列型の場合はステップ330に移行する。ステップ310変数のデータ型が数値型である場合、空白の数値型の定義域を生成しメモリ図示せずに格納する。ステップ320数値型の定義域に該当変数の変数名を設定する。ステップ330変数のデータ型が文字列型である場合、空白の文字列型の定義域を生成しメモリ図示せずに格納する。ステップ340文字列型の定義域に該当変数の変数名を設定する。ステップ240定義域生成部6は、メモリ図示せずからステップ230で格納された数値型、文字列型の条件を取得して、条件の属性に応じて定義域記憶部7の定義域の該当位置に保存する。当該処理の詳細については、図7に沿って説明する。図7は、本発明の一実施の形態におけるステップ240定義域に保存の詳細なフローチャートである。ステップ400メモリ図示せずから条件と定義域を取得し、定義域のデータ型を文字列型、数値型のいずれであるかを判定する。ステップ410定義域に変数名があれば、数値型として条件を定義域記憶部7の数値型の定義域図2bへ保存する。ステップ420定義域が空白であれば、文字列型として条件を定義域記憶部7の文字列型の定義域図2aへ保存する。当該処理の詳細については、図8に沿って説明する。図8は、本発明の一実施の形態におけるステップ420の詳細なフローチャートである。ステップ500メモリ図示せずから条件を取り込む。ステップ505条件をパースし条件種別を抽出。ステップ510属性毎の許容される条件種別の一覧を読み込む。ステップ515属性毎の許容される条件種別の一覧に載っていない、解読できない条件種別があれば、誤って記述されたと判断し、定義域に設計誤りのフラグを付与する。ステップ520条件種別が包含文字列例えば、[XContainsあいうえお]の条件ならば、定義域の包含文字列属性に条件を追加する。ステップ535条件種別が文字種の条件例えば、[XUseSet半角数字]ならば、定義域の文字種属性に条件を追加する。ステップ545条件種別が文字列の長さの条件例えば、[XLength10]であるような条件ならば、定義域の文字列の長さ属性に条件を追加する。ステップ530包含文字列の条件追加による矛盾検出を行う。当該処理の詳細については、図9に沿って後述する。ステップ540文字種の条件追加による矛盾検出を行う。当該処理の詳細については、図10に沿って後述する。ステップ550文字列の長さの条件追加による矛盾検出を行う。当該処理の詳細については、図11に沿って後述する。以降、条件追加時の矛盾検出について図9、図10、図11で説明する。図9は、本発明の一実施の形態におけるステップ530の詳細なフローチャートである。ステップ600包含文字列の条件と定義域を取得する。ステップ610包含文字列の条件同士の矛盾検出を行う。当該処理の詳細については、図14に沿って後述する。ステップ620包含文字列と文字種の矛盾検出を行う。当該処理の詳細については、図13に沿って後述する。ステップ630包含文字列の条件から暗黙的に読み取れる文字列の長さ属性の条件最小値を生成し追加する。当該処理の詳細については、図13に沿って後述する。ステップ640文字列の長さの条件同士の矛盾検出を行う。当該処理の詳細については、図12に沿って後述する。図10は、本発明の一実施の形態におけるステップ540の詳細なフローチャートである。ステップ700文字種の条件と定義域を取得する。ステップ710文字種の条件同士の矛盾検出を行う。当該処理の詳細については、図13に沿って後述する。ステップ720包含文字列と文字種の矛盾検出を行う。当該処理の詳細については、図10に沿って後述する。図11は、本発明の一実施の形態におけるステップ550の詳細なフローチャートである。ステップ800文字列の長さの条件と定義域を取得する。ステップ810文字列の長さの条件同士の矛盾検出を行う。当該処理の詳細については、図12に沿って後述する。以降、矛盾検出の仕方について図12、図13、図14で説明する。図12は、本発明の一実施の形態におけるステップ630の詳細なフローチャートである。ステップ900包含文字列属性の条件をすべて取得する。ステップ910Containsで指定された文字列に重なりがなければ、文字列の文字数をカウントし、すべて足し合わせた数をmaxとする。ステップ920Containsで指定された文字列に重なりがあれば、他と重ならない部分文字列の文字数をカウントし、足し合わせた数をmaxとする。ステップ930条件変数Lengthmaxを生成し、定義域記憶部7の定義域の文字列の長さ属性に追加する。図13は、本発明の一実施の形態におけるステップ620、ステップ720に共通する包含文字列と文字種の矛盾検出詳細なフローチャートである。ステップ1000包含文字列属性の条件、文字種属性の条件をすべて定義域から取得する。ステップ1010文字種属性の条件はあるかを判定する。なければ終了する。ステップ1020もし文字種属性の条件があれば、包含文字列Containsで指定された文字列群Cを取得する。ステップ1030Cに含まれる各文字列をそれぞれ、1文字ずつに分割し、メモリ図示せず内の文字種指定の文字一覧に含まれるか照合する。なお、文字種指定の文字一覧とは、数字なら0,1,...,9、ひらがなであれば、あ~を、アルファベットであればA~Zなどである。ステップ1040含まれない文字があるかを判定し、もしなければ終了する。ステップ1050含まれない文字があれば、矛盾を検出したとして、定義域に設計誤りのフラグを付与する。検出される矛盾の例を示す。条件XContains123あ45と条件XUseSet半角数字が共に定義域に存在すれば、文字あは半角数字に含まれないため設計誤りとなる。図14は、本発明の一実施の形態におけるステップ610包含文字列の条件同士の矛盾検出の詳細なフローチャートである。ステップ1100定義域記憶部7の定義域から包含文字列属性の条件をすべて取得する。ステップ1110条件種別がNotContains包含文字列ではないの条件はあるか判定する。なければ終了する。ステップ1120NotContainsで指定された文字列群Nを取得する。ステップ1130条件種別がContains包含文字列である条件はあるかを判断し、なければ終了する。ステップ1140Containsで指定された文字列群Cを取得する。ステップ1150文字列群Cの要素CiがNの要素Niを部分文字列として包含するか、つまり、Ni⊂Ciが成立するようなNiとCiのペアが存在するかを逐次判定する。存在しなければ終了する。ステップ1160存在すれば、矛盾を検出したとして、定義域記憶部7の定義域に設計誤りのフラグを付与する。検出される矛盾の例を示す。条件XNotContainsあいと条件XContainsあいうえおが共に定義域に存在すれば、あいうえおはあいを包含するため設計誤りとなる。図15は、本発明の一実施の形態におけるステップ640、ステップ810文字列の長さの条件同士の矛盾検出に共通する詳細なフローチャートである。ステップ1200文字列の長さの条件をすべて取得する。ステップ1210条件を一次連立不等式として見なし、解の存在を判定する。ステップ1220解が存在するか。存在すれば終了する。ステップ1230解が存在しなければ、矛盾を検出したとして、定義域に設計誤りのフラグを付与する。検出される矛盾の例を示す。条件XLength4と条件XLength5が共に定義域に存在すれば、連立不等式の解がない重なる範囲が無いため設計誤りとなる。図16は、本発明の一実施の形態におけるステップ710文字種の条件同士の矛盾検出の詳細なフローチャートである。ステップ1300文字種属性の条件をすべて取得する。ステップ1310条件種別がUseSetである条件で指定された文字種候補をすべて集め、図1cに示す文字種候補の一覧を照らし合わせて包含関係にあるかを判定する。包含関係であれば終了する。判定は木構造における親子関係の走査で行う。例えば、全角と全角かなは包含関係にあるが、全角と半角数字は包含関係にない。ステップ1320包含関係にない文字種候補のペアがあれば、矛盾を検出したとして、定義域に設計誤りのフラグを付与する。検出される矛盾の例を示す。条件XUseSet全角と条件XUseSet半角英数字が共に定義域に存在すれば、重なりが無いため設計誤りとなる。以上の処理により、定義域への条件の保存が完了した。引き続き図5の説明に戻る。ステップ250定義域に設計誤りのフラグがついているかを判定し、フラグがついていなければ定義域を単純化し、フラグがついていれば終了する。当該処理の詳細については、図17に沿って説明する。図17は、本発明の一実施の形態におけるステップ250定義域を単純化の詳細なフローチャートである。ステップ1400文字列の長さの条件をすべて取得する。ステップ1410文字列の長さの条件を、2つの条件最大値と最小値にまで単純化する。例えば、条件XLength5;条件XLength3;条件XLength5だけを残して他の条件を定義域から削除する。ステップ1420文字種の条件をすべて取得する。ステップ1430文字種の条件を、1つの条件包含関係における最下位の文字種候補にまで単純化する。例えば、条件XUseSet半角数字;条件XUseSet半角英数字;条件XUseSet半角;が存在する場合、半角⊃半角英数字⊃半角数字であるため、条件XUseSet半角数字だけを残して他の条件を定義域から削除する。当該図17に示す処理を行なうことで複数の条件を構造化、一元化し、単一の定義域が生成されるため、変数のとりうる値の範囲が明確になり、後述する値候補生成部8において全ての条件を同時に満たした値を生成が可能となる。以上の処理により、これにより冗長な情報が削除され、定義域が完全に生成された。引き続き、図4の説明に戻る。ステップ150値候補生成部8は、定義域を取得し設計誤りフラグがついているか判定し、ついていなければ値候補を生成する。ステップ160値候補生成部8は、定義域に設計誤りフラグがついていれば該当定義域を破棄し、ユーザ端末へ設計誤りの存在を通知する。以下に、値候補生成部8の動作を説明する。図18は、本発明の一実施の形態における値候補生成部のフローチャートであり、図4のS150値候補生成の詳細なフローを示す。ステップ1500値候補生成部8は、定義域記憶部7の定義域を取得する。ステップ1510定義域のデータ型を文字列型、数値型のいずれであるかを判定する。ステップ1520定義域のデータ型が数値型である場合は数値型の値候補を生成する。ステップ1530定義域のデータ型が文字列型である場合は、文字列型の値候補を生成する。当該処理の詳細については、図19に沿って後述する。図19は、本発明の一実施の形態におけるステップ1530文字列型の値候補の生成の詳細なフローチャートである。ステップ1600値候補生成部8は、定義域記憶部7から定義域を取得する。ステップ1610文字列の長さの条件をもとに、長さの最大値と最小値を求める。ステップ1620長さの最大値と最小値に基づき、最大値、最大値-1、最小値1、最小値の4パターンの長さをもつ空白の文字列Tを作成する。ステップ1630包含文字列の条件で指定された包含文字列をそれぞれ、Tのランダムな位置に埋め込む。ステップ1640文字種の条件で指定された文字種に属する文字をランダムに生成し、Tの残りの位置を補完する。上記のように、値候補生成部8は、定義域記憶部7から取得した矛盾がないと保証された定義域の条件に基づいて、文字列の長さ、文字種、包含文字列の3つの属性をそれぞれ満足するように文字列を構成することで、複数条件を同時に満たした文字列型の入力データを生成することができる。以上の処理により、入力データを構成する変数のとる値候補が生成された。引き続き、図4の説明に戻る。ステップ170組合せ生成部9は、変数のそれぞれに、その変数に対し値候補生成部8で生成された値候補から1つ選び割り当てることで組合せを生成し、これを入力データとしてユーザ端末に出力する。上記の処理により、テストデータ生成条件を満たす文字列型の入力データを生成できる。本発明では、定義域記憶部7に定義域というデータ構造を設け、入力データが満たすべき条件を一元化することで、すべての条件を同時に満たした文字列型の入力データを生成し、テストケースの作成の効率が向上する。また、定義域の生成時に条件間の矛盾を検出することにより、設計誤りを検出し、設計の品質が向上する。なお、上記の図3に示すテスト用入力データ生成装置の構成要素の動作をプログラムとして構築し、テスト用入力データ生成装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。また、構築されたプログラムをハードディスクや、フレキシブルディスクCD-ROM等の可搬記憶媒体に格納し、コンピュータにインストールする、または、配布することが可能である。なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更応用が可能である。"