"ユーザとシステムの間のインタラクションの流れを示すユースケース記述に基づいて、異常系のシナリオの組み合わせのテスト項目を抽出する異常系シナリオの組合せのテスト項目抽出装置であって、入力された設計モデルから、ユースケース記述を取得する設計モデル入力手段と、前記ユースケース記述からループ経路を含まない全てのテスト経路を抽出し、テスト経路集合に加えるループ無しテスト経路抽出手段と、前記ユースケース記述からループ経路を含むテスト経路を抽出し、前記テスト経路集合の前記ループ無し経路と該ループ有り経路をつなぎ合わせた新たなテスト経路を生成し、新規追加分テスト経路集合に加えるループ有りテスト経路補完手段と、前記新規追加分テスト経路集合から前記ユースケース記述の基本フローである正常系シナリオを除外した集合を前記テスト経路集合に加え、該テスト経路集合を実行経路記憶手段に格納するフィルタリング手段と、を有する実行経路抽出手段と、前記実行経路記憶手段から前記テスト経路を読み出して、該テスト経路に対するテスト項目を生成するテスト項目生成手段と、を有することを特徴とする異常系シナリオの組合せのテスト項目生成装置。前記ループ有りテスト経路補完手段は、前記ユースケース記述の矢印部分に相当するエッジのうち、前記ループ無し経路に存在しないエッジをループ経路エッジキューに加える手段と、前記ループ経路エッジキューの先頭のエッジXを取り出して、該エッジXを前記ループ無しテスト経路につなげて前記新たなテスト経路を生成する処理を、該ループ経路エッジキューが空になるまで繰り返す手段と、を含む請求項1記載の異常系シナリオの組合せのテスト項目生成装置。前記ループ有りテスト経路補完手段は、前記新たなテスト経路を生成する処理として、前記ユースケース記述のテスト経路から、あるエッジEが経路中に存在し、該エッジEの終点接続ノードの次展開エッジ群にループ経路エッジが含まれるテスト経路を抽出し、前半テスト経路集合とし、前記ユースケース記述からループ経路エッジを始点としたテスト経路を抽出し、後半テスト経路集合とし、前記前半テスト経路集合のうち、終了エッジに最も近いループ経路エッジから終了エッジまでの部分経路を前半経路とし、前記後半テスト経路集合中の各後半テスト経路とつなぐ手段を含む請求項2記載の異常系シナリオの組合せのテスト項目生成装置。ユーザとシステムの間のインタラクションの流れを示すユースケース記述に基づいて、異常系のシナリオの組み合わせのテスト項目を抽出する異常系シナリオの組合せのテスト項目生成方法であって、設計モデル入力手段が、入力された設計モデルから、ユースケース記述を取得する設計モデル入力ステップと、ループ無しテスト経路抽出手段が前記ユースケース記述からループ経路を含まない全てのテスト経路を抽出し、テスト経路集合に加えるループ無しテスト経路抽出ステップと、ループ有りテスト経路補完手段が、前記ユースケース記述からループ経路を含むテスト経路を抽出し、前記テスト経路集合の前記ループ無し経路と該ループ有り経路をつなぎ合わせた新たなテスト経路を生成し、新規追加分テスト経路集合に加えるループ有りテスト経路補完ステップと、フィルタリング手段が、前記新規追加分テスト経路集合から前記ユースケース記述の基本フローである正常系シナリオを除外した集合を前記テスト経路集合に加え、該テスト経路集合を実行経路記憶手段に格納するフィルタリングステップと、を含む実行経路抽出過程と、テスト項目生成手段が、前記実行経路記憶手段から前記テスト経路を読み出して、該テスト経路に対するテスト項目を生成するテスト項目生成過程と、を行うことを特徴とする異常系シナリオの組合せのテスト項目生成方法。前記ループ有りテスト経路補完ステップにおいて、前記ユースケース記述の矢印部分に相当するエッジのうち、前記ループ無し経路に存在しないエッジをループ経路エッジキューに加え、前記ループ経路エッジキューの先頭のエッジXを取り出して、該エッジXを前記ループ無しテスト経路につなげて前記新たなテスト経路を生成する処理を、該ループ経路エッジキューが空になるまで繰り返す、請求項4記載の異常系シナリオの組合せのテスト項目生成方法。前記ループ有りテスト経路補完ステップにおいて、前記新たなテスト経路を生成する処理として、前記ユースケース記述のテスト経路から、あるエッジEが経路中に存在し、該エッジEの終点接続ノードの次展開エッジ群にループ経路エッジが含まれるテスト経路を抽出し、前半テスト経路集合とし、前記ユースケース記述からループ経路エッジを始点としたテスト経路を抽出し、後半テスト経路集合とし、前記前半テスト経路集合のうち、終了エッジに最も近いループ経路エッジから終了エッジまでの部分経路を前半経路とし、前記後半テスト経路集合中の各後半テスト経路とつなぐ請求項5記載の異常系シナリオの組合せのテスト項目生成方法。コンピュータを、請求項1乃至3のいずれか1項に記載のテスト項目生成装置の各手段として機能させるためのテスト項目生成プログラム。上記従来の非特許文献1の技術は、ユースケース記述からループ経路を0回、1回通るような経路の順列を網羅的に抽出し、そこから複数種類の異常系シナリオの全組合せのテスト経路を選ぶというような方法も考えられる。しかしながら、異常系シナリオの数が増えると順列の数が増えすぎて現実的なメモリ量では計算できなくなる。例えば、異常系シナリオが10個の場合、順列の数で抽出されるテスト経路は9864101本にもなる。また、特許文献1の技術で抽出したテスト項目は、全組合せを網羅していない。当該技術の改良を行い、ユースケース記述から特定の異常系シナリオをユースケース記述から除き、残りの異常系シナリオを抽出するなどの方法も考えられるが、具体性はなく、どのようなユースケース記述に対応できるわけでもない。本発明は、上記の点に鑑みなされたもので、複数種類の異常系シナリオの実行順序に依存しない組合せにより発生するエラーを検出するための最小限のテスト経路を現実的なメモリ量で得ることが可能な異常系シナリオの組合せのテスト項目生成装置及び方法及びプログラムを提供することを目的とする。上記の課題を解決するため、本発明請求項1は、ユーザとシステムの間のインタラクションの流れを示すユースケース記述に基づいて、異常系のシナリオの組み合わせのテスト項目を抽出する異常系シナリオの組合せのテスト項目抽出装置であって、入力された設計モデルから、ユースケース記述を取得する設計モデル入力手段と、前記ユースケース記述からループ経路を含まない全てのテスト経路を抽出し、テスト経路集合に加えるループ無しテスト経路抽出手段と、前記ユースケース記述からループ経路を含むテスト経路を抽出し、前記テスト経路集合の前記ループ無し経路と該ループ有り経路をつなぎ合わせた新たなテスト経路を生成し、新規追加分テスト経路集合に加えるループ有りテスト経路補完手段と、前記新規追加分テスト経路集合から前記ユースケース記述の基本フローである正常系シナリオを除外した集合を前記テスト経路集合に加え、該テスト経路集合を実行経路記憶手段に格納するフィルタリング手段と、を有する実行経路抽出手段と、前記実行経路記憶手段から前記テスト経路を読み出して、該テスト経路に対するテスト項目を生成するテスト項目生成手段と、を有する。また、本発明請求項2は、前記ループ有りテスト経路補完手段に、前記ユースケース記述の矢印部分に相当するエッジのうち、前記ループ無し経路に存在しないエッジをループ経路エッジキューに加える手段と、前記ループ経路エッジキューの先頭のエッジXを取り出して、該エッジXを前記ループ無しテスト経路につなげて前記新たなテスト経路を生成する処理を、該ループ経路エッジキューが空になるまで繰り返す手段と、を含む。また、本発明請求項3は、前記ループ有りテスト経路補完手段において、前記新たなテスト経路を生成する処理として、前記ユースケース記述のテスト経路から、あるエッジEが経路中に存在し、該エッジEの終点接続ノードの次展開エッジ群にループ経路エッジが含まれるテスト経路を抽出し、前半テスト経路集合とし、前記ユースケース記述からループ経路エッジを始点としたテスト経路を抽出し、後半テスト経路集合とし、前記前半テスト経路集合のうち、終了エッジに最も近いループ経路エッジから終了エッジまでの部分経路を前半経路とし、前記後半テスト経路集合中の各後半テスト経路とつなぐ手段を含む。本発明によれば、ユースケース記述からループ経路を含まない全テスト経路及びループ経路を抽出し、ループ経路を含まないテスト経路に対し、ループ経路をつないでいくことにより新たなテスト経路を抽出することで、複数種類の異常系シナリオの実行順序に依存した組合せにより発生するエラーを検出するための最小限のテスト経路テスト項目を網羅的に得ることができる。また、ユースケース記述のループ無し経路に、ループ経路n種類をそれぞれつなぐパターン、つながないパターンの組合せの個数分、新たなテスト経路を作成することで、ループを含まないテスト経路1つに対し、2のn乗通りの新しいテスト経路を生成できる。典型的なユースケース記述では、異常系シナリオは10個程度含まれる。従来技術で抽出した全順列の数と較べて、全組合せでテスト経路テスト項目を抽出すると、約10000分の1というメモリ使用量で済む。以下図面と共に、本発明の実施の形態を説明する。まず、最初に本明細書中で使用する用語について説明する。シナリオテスト:要求定義に基づき、ユーザが行う業務を想定してシナリオを作成して、システムが想定シナリオ通りに振舞うかを確認するテスト。テスト項目:シナリオテストにおけるテスト項目は、テストシナリオと確認観点を含む。テストシナリオは、画面と操作で構成されたシーケンスであり、確認観点は画面遷移の正しさ、画面表示内容の正しさ、データベース破壊の有無、等がある。画面遷移図:設計ドキュメントの一種である。特定の機能内における各画面間の遷移を示す。ユースケース記述:設計ドキュメントの一種である。要求を明確化するための記法でもある。ユーザとシステム間のインタラクションの流れを示す。流れは、基本フローに沿って進むが、代替フロー、例外フローに分岐することもある。正常系シナリオ:ユースケース記述における基本フローを指す。1つ以上のエッジから構成される。異常系シナリオ:ユースケース記述における代替フロー、例外フローの総称であり、1つ以上のエッジから構成され、正常系シナリオから分岐して正常系シナリオに戻る。複数種類の異常系のシナリオの実行順序に依存せず組合せに依存して発生するエラー:異常系シナリオを通るたびに、特定の変数へ値を追記し、その追記の結果、システムが想定と違う動作を行うエラーである。例えば、ログイン失敗回数を誤って複数の異常系シナリオでインクリメントした結果、想定より少ない回数のログイン失敗でログイン禁止になるようなエラーを指す。ループ経路:1つ以上のエッジから構成される。以下の2つの場合がある。12つ以上のエッジE0E1...Enただし、E0≠Eii1...nで構成され、Enの次のエッジのいずれかにE0が含まれる部分経路;21つのエッジE0から構成され、E0の次のエッジにE0が含まれる部分経路;エッジ:ユースケース記述の矢印部分。両側始点と終点にノードが接続されている但し、開始エッジのみ、始点にノードが接続されていない。ノード:ユースケース記述内の節部分。エッジ始点との接続群を保持している。開始エッジ:ユースケース記述に1つ存在し、経路の開始を表すエッジ。終了エッジ:ユースケース記述に1つ以上存在し、経路の終了を表すエッジ。エッジ用スタック:ユースケース記述内で辿ったエッジを順番通りに保存するためのスタック。次展開エッジ群:次に辿るエッジ自ノードと始点で接続しているエッジの候補群。次展開エッジ群用スタック:これまで辿った経路中で、まだ辿っていない次展開エッジ群を保存しておくスタックである。前エッジ群:自ノードと終点で接続しているエッジ群。現在次展開エッジ群:次展開エッジ群用スタックの最上位のもの。現在ループ経路:これまでの経路エッジ用スタックに積まれているエッジにおいて、スタック最上位のエッジから最上位に最も近い現在エッジまでの経路である。ループ出現回数:ループが経路中に何回出現したかの回数。図1は、本発明の一実施の形態におけるシナリオテストのテスト項目生成装置の構成を示す。同図に示すテスト項目生成装置10は、設計情報読込部1、設計モデル分析部2、実行経路抽出部3、実行経路記憶部5、テスト項目生成部6から構成され、ユーザ端末20に接続されている。設計情報読込部1は、ユーザ端末20から入力された設計モデルを読み込み設計モデル分析部2に渡す。設計モデル分析部2は、入力された設計モデルからユースケース記述UMLActivity画面遷移図を抽出し設計モデルを生成し、実行経路抽出部3に渡す。実行経路抽出部3は、設計モデルのユースケース記述からテスト経路集合を生成し、その中から異常系テスト経路集合を抽出して実行経路記憶部5に格納する。実行経路抽出部3は、図2に示すように、設計モデル入力部31、ループ無し経路抽出部32、ループ有りテスト経路補完部33、フィルタリング部34から構成される。実行経路記憶部5は、実行経路抽出部3で抽出されたテスト経路を格納する。テスト項目生成部6は、実行経路記憶部5から実行経路を取得してテスト項目表を生成してユーザ端末20に出力する。図3は、本発明の一実施の形態における概要動作のフローチャートである。ステップ110設計情報読込部1は、ユーザ端末20から設計ドキュメント群を読み込む。ステップ120設計モデル分析部2は、読み込んだ設計ドキュメント群から設計モデルを生成する。ここで、設計モデルを生成する手法として、XStreamhttpxstreamcodehausorgtutorialhtmlを用いるものとする。生成された設計モデルを実行経路抽出部3に出力する。ステップ130実行経路抽出部3は、テスト項目を抽出し、実行経路記憶部5に格納する。詳細な処理については図4で詳述する。ステップ140テスト項目生成部6は、実行経路記憶部5から実行経路を読み込んで、テスト項目表を生成してユーザ端末20に出力する。次に、上記の実行経路抽出部3のステップ130の処理について詳述する。図4は、本発明の一実施の形態におけるステップ130の詳細フローチャートである。ステップ210実行経路抽出部3の設計モデル入力部31は、設計モデル分析部2で生成された設計モデルを読み込み、当該設計モデル内のユースケース記述を抽出し、ユースケース記述リストを生成し、メモリ図示せずに格納する。図5に示すように、ユースケース記述には、ノードID、ノード内テキスト、前エッジ群、次展開エッジ群、エッジID、始点接続ノードID、終点接続ノードID、遷移条件、種類が含まれている。図5のユースケース記述の構造イメージを図6に示す。ステップ220実行経路抽出部3のループ無し経路抽出部32は、ユースケース記述リスト読み込む。ステップ230実行経路抽出部3のループ無し経路抽出部32、ループ有りテスト経路補完部33は、ユースケース記述リストから異常系テスト経路を抽出する。詳細な処理については図7で詳述する。ステップ240実行経路抽出部3のフィルタリング部34は、フィルタリングを行い、フィルタリング後のテスト項目の異常系経路をテスト項目としてまとめる処理を全異常系テスト経路に対して行う。ステップ250フィルタリング部34は、テスト項目群を要素としてもつテスト項目表を作成して実行経路記憶部5に格納する。次に、上記のステップ230の実行経路抽出部3によるユースケース記述リストから異常系テスト経路を抽出する処理について説明する。図7は、本発明の一実施の形態におけるステップ230の詳細フローチャートである。ステップ310実行経路抽出部3のループ無し経路抽出部32は、ユースケース記述を読み込む。ステップ320ループ無し経路抽出部32は、ユースケース記述からループ無し経路を抽出し、メモリ図示せず上のテスト経路集合に加える。詳細な処理は図8で詳述する。当該ステップで得られるループ無し経路は、ループ経路に含まれない異常系シナリオの全ての組合せを網羅するテスト経路の最小セットである。ステップ330ループ有りテスト経路補完部33は、ユースケース記述からループ有りテスト経路を抽出し、メモリ図示せず上のテスト経路集合に加える。詳細な処理は図11で詳述する。ステップ340フィルタリング部34は、メモリ図示せずからテスト経路集合を読み出し、その中から異常系テスト経路のみを抽出する。上記のステップ320のループ無し経路を抽出する処理を説明する。図8は、本発明の一実施の形態におけるステップ320の詳細フローチャートである。ステップ410ループ無し経路抽出部32は、ユースケース記述から初期次展開エッジ群をメモリ図示せずの次展開エッジ群スタックに積む。ステップ415次展開エッジ群スタックが空である場合は、処理を終了し、空でない場合は、ステップ416に移行する。ステップ416次展開エッジ群用スタックの最上位にある次展開エッジ群に要素がある場合はステップ420に移行し、ない場合はステップ480に移行する。ステップ420メモリの次展開エッジ群スタックの最上位にある要素現在次展開エッジ群から1つエッジを得て現在エッジとする。ステップ430現在エッジ群から現在エッジ群を取り除く。ステップ440経路内のループ出現回数を計算する。詳細については図10で詳述する。ステップ445ステップ440で求められたループ出現回数が0より大きい場合はステップ415に戻り、0以下の場合はステップ450に移行する。ステップ450現在エッジをエッジ用スタックに積む。ステップ460現在のエッジの持つ終点接続ノードIDに基づいて、ユースケース記述からノードを取得し、そのノードのエッジ始点との接続群を取得し、その取得したエッジ始点との接続群を、次展開エッジとして、次展開エッジ群スタックに積む。ステップ470経路エッジ用スタックに積まれているエッジの列をテスト経路としてテスト経路集合に加え、ステップ415に戻る。テスト経路集合の例を図9に示す。ステップ480ステップ416で次展開エッジ群用スタックの最上位にある次展開エッジ群に要素がない場合は、次展開エッジ群用スタックをホップする。ステップ490エッジ用スタックが空でなければエッジ用スタックをホップし、処理を終了する。次に、ループ無し経路抽出部32における、上記のステップ440の経路内の現在ループ経路の出現回数を計算する処理について説明する。図10は、本発明の一実施の形態におけるステップ440の詳細フローチャートである。ステップ510ループ無し経路抽出部32は、ステップ420で選択された現在エッジを読み込む。ステップ520経路エッジ用スタックに積まれているエッジの列を読み込む。ステップ530経路を複製し、複製した経路を探索途中経路とする。ステップ540探索途中経路の先頭から一番近い現在エッジまでを現在ループ経路をとして抽出する。ステップ550探索途中経路内で現在ループ経路が何回出現するかループ出現回数を、文献1RSBoyerJSMooreAfaststringsearchingalgorithmCommACM20762772等の手法を用いて計算する。次に、ループ有りテスト経路補完部33における、図5のステップ330のループ有りテスト経路を補完する処理について説明する。ステップ320で抽出されたループ内テスト経路のループ経路に含まれない異常系シナリオの全組合せを網羅するテスト経路の最小セットであるのに対して、当該処理は、ループ経路に含まれる異常系シナリオを全組合せ分つなぐため、結果として全ての異常系シナリオの組合せを生成する。図11は、本発明の一実施の形態におけるステップ330の詳細フローチャートである。ステップ610ループ有りテスト経路補完部33は、ユースケース記述を読み込む。ステップ620ステップ320で生成されたメモリ図示せずからテスト経路集合を読み込む。ステップ630エッジを格納するループ経路エッジキューをメモリ図示せず上に用意する。ステップ640ユースケース記述を構成するエッジのうち、ステップ320で読み込んだテスト経路集合の中のテスト経路に存在しないエッジ、言い換えると、ループ経路中に存在するエッジを全てループ経路エッジキューに追加する。ステップ650ループ経路エッジキューから1つエッジループ経路エッジを取り出す。ステップ660ループ経路エッジキューにループ経路エッジが含まれる場合は、ループ経路エッジを含むループ経路をテスト経路集合に含まれるテスト経路につなぎ、新しいテスト経路を複数作成し、これを新規追加分テスト経路集合とする。詳細な処理は図12で詳述する。ステップ670ループ経路エッジキューから、新規追加分テスト経路集合のテスト経路に含まれるエッジを全て除く。ステップ680新規追加分テスト経路集合をテスト経路集合に加える。ステップ690ステップ650において、ループ経路エッジキューにループ経路エッジが含まれていない場合は、ループ経路エッジをループ経路エッジキューに入れなおす。上記の図11に示す処理は、例えば、ループ経路エッジキューに[A,B,C]があり、ある異常系シナリオがA⇒B⇒Cという3つのエッジで構成されている場合、最初に取り出したループ経路エッジがAだとすると、ステップ660において、異常系シナリオを含むようなテスト経路...⇒A⇒B⇒C⇒...が抽出される。この段階で、既に異常系シナリオA⇒B⇒Cは抽出されているので、ループ経路エッジキューに残った[B,C]については、ステップ660の処理を行う必要がないため、ステップ670でこのようなエッジB,Cを除く。次に、ループ有りテスト経路補完部33における、上記のステップ660のループ経路エッジを含むループ経路をテスト経路につなぎ、新しいテスト経路を作成する処理について説明する。図12は、本発明の一実施の形態におけるステップ660の詳細フローチャートである。ステップ710ループ有りテスト経路補完部33は、ステップ660で与えられたユースケース記述を読み込む。ステップ720同様に、ステップ660で与えられたテスト経路集合を読み込む。ステップ730ループ経路エッジキューからループ経路エッジを読み込む。ステップ740テスト経路集合から、あるエッジEが経路中に存在し、エッジEの終点接続ノードIDに対応するノードの次展開エッジ群にループ経路エッジが含まれるテスト経路を、前半経路用テスト経路集合として全て選び出す。ステップ750テスト経路集合からループ経路エッジに関する後半経路集合を抽出する。後半経路集合とは、ユースケース記述からループ経路エッジを始点としたテスト経路後半経路の集合である。ステップ760メモリ上に新規追加分テスト経路集合最初は空を用意する。ステップ770終了エッジに最も近いループ経路エッジから終了エッジまでの部分経路を前半経路として取り出す。ステップ780前半経路と後半経路をループ経路エッジで接続して新しい経路新規追加分テスト経路を作成する。ステップ790新追加分テスト経路を新規追加分テスト経路集合へ加える。上記のループ有りテスト経路補完部33において、抽出したループ経路を含まないテスト経路に対し、ループ経路をつないでいくことにより新しいテスト経路新規追加分テスト経路を生成できるため、ユースケース記述中のループ経路n種類L1L2...Lnをそれぞれつなぐパターン、つながないパターンの組合せの個数分の新規追加分テスト経路を作成することが可能となる。つまり、ループを含まないテスト経路1つに対し、2のn乗通りの新しいテスト経路を生成できる。上記のステップ230の異常系テスト経路の抽出処理について具体的に説明する。図13は、本発明の一実施の形態におけるユースケース記述から異常系テスト経路を抽出する例を示す。同図において、太線の矢印は正常系エッジを示し、破線の矢印は異常系エッジを示す。ユースケース記述から、正常系シナリオABCDがあり、異常系シナリオとして、1X2YZ3Wがある。ループ無し経路抽出部32において、ループ無し経路として、ABCDABCWをテスト経路集合として抽出する。これにより、ループ経路を含まない全テスト経路はループ経路に含まれない異常系シナリオの全ての組合せを網羅するテスト経路の最小セットになっており、複数種類の異常系シナリオの全ての組合せを網羅するテスト経路の最小セットを抽出できる。次に、ループ有りテスト経路補完部33において、以下のループ有り経路を補完するステップ330。ABCDループ無しABCWループ無しABAXBCDループありABYZBCDループありABXBYZBCDループありABXBCWループありABAYZBCWループありABXBYZBCWループあり上記の経路のうち、ABCDは正常系シナリオであるので、フィルタリング34により、取り除かれる。その結果、異常系テスト経路集合として、A⇒B⇒C⇒Wループ無しA⇒B⇒A⇒X⇒B⇒C⇒DループありA⇒B⇒Y⇒Z⇒B⇒C⇒DループありA⇒B⇒X⇒B⇒Y⇒Z⇒B⇒C⇒DループありA⇒B⇒X⇒B⇒C⇒WループありA⇒B⇒A⇒Y⇒Z⇒B⇒C⇒WループありA⇒B⇒X⇒B⇒Y⇒Z⇒B⇒C⇒Wループありが残る。これらは、上記の1~3の異常系シナリオ3つの全組合せであるので、以下の7パターンとなる。123122313123上記の7つのパターンが異常系テスト集合となり、実行経路記憶部5に格納される。次に、ループ有りテスト経路補完部33における図8のステップ330のループ有りテスト経路を補完する例を示す。図14は、本発明の一実施の形態におけるループ有りテスト経路を補完する例を示す。ユースケース記述では、以下の2つの経路がループ無しテスト経路として抽出されているものとする。A⇒B⇒C⇒DA⇒B⇒C⇒Wループ有りテスト経路補完部33は、メモリ上にループ経路エッジキューを用意し、ループ無しテスト経路に存在しないエッジを全て加える。図14の例では、ループ経路エッジキューには、[X,Y,Z,W]が追加されるステップ630,640。次に、ループ絵経路エッジキューの先頭のXを取り出す。ループ経路エッジXを経路ABCD,ABCWの間につなげ、新しい経路を生成する。図14の例において、前半経路A⇒B、後半経路B⇒C⇒D、後半経路B⇒C⇒Wの間にループ経路エッジXをつなげることにより、新規追加分テスト経路A⇒B⇒X⇒B⇒C⇒DA⇒B⇒X⇒B⇒C⇒Wの2つが生成され、これらをテスト経路集合に加えると、A⇒B⇒C⇒DA⇒B⇒C⇒WA⇒B⇒X⇒B⇒C⇒DA⇒B⇒X⇒B⇒C⇒Wとなる。上記の処理をループ経路エッジキュー[Y,Z,W]のそれぞれに対して行う。上記のループ無しテスト経路抽出部32で抽出した各テスト経路はループ経路に含まれない異常系シナリオの組合せを網羅するテスト経路の最小セットであり、それに対して、ループ有りテスト経路補完部33において、ループ経路に含まれる異常系シナリオを全組合せ分つなぐため、結果としてできるテスト経路は全ての異常系シナリオの組合せを網羅するテスト経路の最小セットとなっている。つまり、ループ無しテスト経路抽出部32により得られた組合せ数Aとループ有りテスト経路補完部33により得られた組合せ数Bにより、A×B=全組合せ数となる。これは、異常系シナリオの全組合せのテスト経路のみを抽出しているため、全順列で抽出する従来技術より、圧倒的に少ないメモリ使用量でテスト項目を得ることが可能となる。なお、図1に示すテスト項目生成装置10の各構成要素の動作をプログラムとして構築し、テスト項目生成装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更応用が可能である。"