プログラムのテストを行う際に使用するテストシナリオを自動で作成するテストシナリオ自動作成システムであって、前記プログラムに含まれる条件判断ステートメントに含まれる条件と親ノードの条件判断ステートメントの真偽情報とをノードとし前記条件判断ステートメントについて複合条件網羅を満たす解析木を作成するとともに、前記プログラムから少なくとも条件判断ステートメントをキーワードとして抽出するプログラム解析部と、前記解析木を基に、マトリクス構造のデータであって、マトリクス中のセルが前記解析木の葉ノードを表し、前記セルの境界部が前記解析木のノードの条件判断ステートメントに含まれる条件であるとともに前記解析木の内部ノードを表すマトリクスデータを作成するマトリクスデータ作成部と、前記プログラム解析部が抽出した前記キーワードを格納するキーワード格納部と、前記解析木と前記マトリクスデータとを格納するマトリクスデータ格納部と、前記マトリクスデータを表示する操作画面を作成し、前記操作画面を用いて入力された情報を処理する入出力処理部と、前記操作画面を用いて指定された前記セルまたは前記セルの境界部に基づいて前記テストシナリオを作成し、出力するテストシナリオ出力部とを備え、前記テストシナリオは、前記セルが指定された場合は、前記解析木において、指定された前記セルに該当する葉ノードから根ノードに至る経路に含まれるノードの集合であり、前記セルの境界部が指定された場合は、前記解析木において、葉ノードから根ノードに至る経路のうち、指定された前記セルの境界部に該当する前記内部ノードを含む経路に含まれるノードの集合である、ことを特徴とするテストシナリオ自動作成システム。請求項1記載のテストシナリオ自動作成システムであって、前記入出力処理部は、前記操作画面を用いて入力された前記キーワードを含む条件判断ステートメントを検索し、検索した前記条件判断ステートメントを含む前記プログラムと前記テストシナリオとを前記操作画面に表示し、前記テストシナリオ出力部は、検索した前記条件判断ステートメントを含む前記テストシナリオを作成し、出力するテストシナリオ自動作成システム。請求項1または2記載のテストシナリオ自動作成システムであって、前記入出力処理部は、前記操作画面に、前記マトリクス中のセルの数を前記テストシナリオの総数として表示するテストシナリオ自動作成システム。請求項1から3のいずれか1項記載のテストシナリオ自動作成システムであって、前記入出力処理部は、前記操作画面に、前記テストシナリオに含まれる条件判断ステートメントを表示するテストシナリオ自動作成システム。特許文献1に記載のシステムは、プログラムの修正作業の確認試験等で使用したテストシナリオをソースファイル単位に登録し、登録したデータを基に、関連するテストシナリオを自動的に選択するシステムである。しかし、このシステムでは、修正を行ったソースファイルに関連するテストシナリオは自動で選択されるが、選択されたテストシナリオが、修正を行ったプログラムの修正箇所、及び修正による影響の波及箇所に関連するテスト内容を網羅している保障はない。テスト内容の網羅ができていない場合、不具合の見逃しが発生し、プログラムの試験の品質は低下する。見逃した不具合は、後工程にて見つかり、追加テストが発生し、試験にかかる工数が増加する可能性がある。そのため、テスト内容を網羅したテストシナリオを作成、選択し、プログラムの試験の品質を向上させる必要がある。本発明は、プログラムの改修箇所及び改修による影響の波及箇所に関連するテスト内容を網羅したテストシナリオを自動的に作成することができるシステムを提供することを目的とする。本発明によるテストシナリオ自動作成システムは、プログラムのテストを行う際に使用するテストシナリオを自動で作成し、次のような特徴を有する。前記プログラムに含まれる条件判断ステートメントに含まれる条件と親ノードの条件判断ステートメントの真偽情報とをノードとし前記条件判断ステートメントについて複合条件網羅を満たす解析木を作成するとともに、前記プログラムから少なくとも条件判断ステートメントをキーワードとして抽出するプログラム解析部を備える。前記解析木を基に、マトリクス構造のデータであって、マトリクス中のセルが前記解析木の葉ノードを表し、前記セルの境界部が前記解析木のノードの条件判断ステートメントに含まれる条件であるとともに前記解析木の内部ノードを表すマトリクスデータを作成するマトリクスデータ作成部を備える。前記プログラム解析部が抽出した前記キーワードを格納するキーワード格納部を備える。前記解析木と前記マトリクスデータとを格納するマトリクスデータ格納部を備える。前記マトリクスデータを表示する操作画面を作成し、前記操作画面を用いて入力された情報を処理する入出力処理部を備える。前記操作画面を用いて指定された前記セルまたは前記セルの境界部に基づいて前記テストシナリオを作成し、出力するテストシナリオ出力部を備える。前記テストシナリオは、前記セルが指定された場合は、前記解析木において、指定された前記セルに該当する葉ノードから根ノードに至る経路に含まれるノードの集合であり、前記セルの境界部が指定された場合は、前記解析木において、葉ノードから根ノードに至る経路のうち、指定された前記セルの境界部に該当する前記内部ノードを含む経路に含まれるノードの集合である。本発明によれば、改修を行ったプログラムのテストを行う場合に、改修箇所及び改修による影響の波及箇所に関連するテスト内容を網羅したテストシナリオを自動的に作成することができる。本発明によるテストシナリオ自動作成システムは、プログラムのテストを行う際に使用するテストシナリオを自動で作成するシステムであり、プログラムに含まれる関数をマトリクス構造で表して表示する。このマトリクスを用いることで、プログラムの改修箇所及び改修による影響の波及箇所に関連するテスト内容を網羅したテストシナリオを選択し、作成することができるので、プログラムの試験の品質を向上させることができる。上記以外の構成及び効果は、以下の実施形態の説明により明らかにされる。以下、本発明によるテストシナリオ自動作成システムの実施例を、図面を用いて説明する。本実施例では、条件判断ステートメントに関連するテストシナリオを自動的に作成するシステムと、その方法の例を説明する。図1は、本実施例によるテストシナリオ自動作成システムの構成図である。テストシナリオ自動作成システム100は、原始プログラム格納部101、プログラム入力部102、プログラム解析部103、キーワード格納部104、マトリクスデータ格納部105、マトリクスデータ作成部106、入出力処理部107、テストシナリオ出力部110、及びテストシナリオ格納部111を備え、テストシナリオを作成する。原始プログラム格納部101、キーワード格納部104、マトリクスデータ格納部105、及びテストシナリオ格納部111は、データを格納する。プログラム入力部102、プログラム解析部103、マトリクスデータ作成部106、及び入出力処理部107は、システムの処理を実行する。また、テストシナリオ自動作成システム100は、ディスプレイ108、及び入力装置109と接続される。原始プログラム格納部101は、テスト対象となるシステムの原始プログラムソースコードが格納されているデータベースである。プログラム入力部102は、原始プログラム格納部101から、テストシナリオを作成するプログラム原始プログラムを読込む。プログラム解析部103は、プログラム入力部102が読込んだプログラムの解析を行い、条件判断ステートメント、ソース範囲、関数名、モジュール名、定数、及び変数を抽出し、これらをキーワードとしてキーワード格納部104に格納する。ここで、抽出する条件判断ステートメントとは、if文、while文、for文のようなプログラムの処理の流れを変更するコードのことである。また、ソース範囲としては、ある条件判断ステートメントが記述された行から次の条件判断ステートメントが記述された行の1行前までの行番号を、プログラムに含まれる全ての条件判断ステートメントについて抽出する。また、プログラム解析部103は、プログラム中の関数について解析木を作成し、マトリクスデータ格納部105に格納する。この解析木は、条件判断ステートメントに含まれる条件についての情報と親ノードの真偽についての情報を各ノードとする。解析木の一例は、図8を用いて後で説明する。また、解析木を作成した際に、解析木の各ノードのアドレスをキーワードとしてキーワード格納部104に格納する。キーワード格納部104は、プログラム解析部103が抽出したキーワードを格納するデータベースである。格納されるキーワードの一例は、図10を用いて後で説明する。マトリクスデータ格納部105は、プログラム解析部103が作成した解析木と、マトリクスデータ作成部106が作成したマトリクスデータを格納するデータベースである。マトリクスデータ作成部106は、マトリクスデータ格納部105に格納されている解析木を基に、解析木をマトリクス構造で表示するためのマトリクスデータを作成し、作成したマトリクスデータをマトリクスデータ格納部105に格納する。また、後述するキーワード検索を実行した場合は、キーワード格納部104に格納されているキーワードを含むまたはキーワードに該当する関数の解析木を基に、マトリクスを作成する。マトリクスデータとは、ツリー構造で表現されている解析木を、マトリクス構造複数のセルと、各セルを区切るセルの境界部とからなるマトリクスで表現したデータのことである。詳細は後述するが、マトリクスのセルは、解析木の葉ノードを表し、セルの境界部は、各ノードの条件判断ステートメントに含まれる条件を表す。また、セルの境界部は、解析木の内部ノード葉ノード以外のノードを表す。セルの境界部により、条件判断ステートメントに含まれる条件の真偽が分けられているセルの境界部で分けられたセルの一方が真を表し、他方が偽を表す。すなわち、マトリクスは、解析木の各ノードに対応する条件判断ステートメントの条件の真偽に従ってセルに分割されており、セルの数は、解析木の葉ノードの数である。ツリー構造のデータをマトリクス構造のデータに変更する処理のことをマトリクスデータ化処理と称する。一つの解析木から一つのマトリクスデータが作成され、解析木とマトリクスデータは一対一に対応してマトリクスデータ格納部105に格納される。以下、マトリクスデータをマトリクスとも称する。マトリクスデータの一例は、図9を用いて後で説明する。入出力処理部107は、操作画面を作成してディスプレイ108に表示する。操作画面には、マトリクスデータ格納部105に格納されているマトリクスデータと、プログラム入力部102が読込んだプログラムと、このプログラムに含まれる関数を表示する。また、入出力処理部107は、入力装置109から入力された情報を基に処理を行い、ディスプレイ108の表示を更新する。ディスプレイ108は、入出力処理部107から送られてくるデータを逐次表示する。ディスプレイ108の画面レイアウトの一例は、図2を用いて後で説明する。入力装置109は、マウスやキーボードなど、オペレータがテストシナリオ自動作成システム100に対して入力や操作を行うための装置である。オペレータは、入力装置109を用いて、ディスプレイ108に表示される画面を操作することができる。テストシナリオ出力部110は、マトリクスデータ格納部105とキーワード格納部104から抽出した情報を基にテストシナリオを作成し、予め定めた所定のフォーマットに合わせて出力する。テストシナリオ格納部111は、テストシナリオ出力部110が出力したテストシナリオを格納する。テストシナリオのレイアウトの一例は、図11を用いて後で説明する。図2は、テストシナリオ自動作成システム100の実行時に、ディスプレイ108に表示される画面の一例を示す図である。ディスプレイ108には、入出力処理部107が作成した操作画面200が表示される。操作画面200は、リスト表示部201、プログラム表示部202、マトリクス表示部203、キーワード入力部204、探索ボタン205、クリアボタン206、テストシナリオ出力ボタン207、及び終了ボタン208を有する。リスト表示部201は、プログラム入力部102が読込んだプログラムに含まれる関数の名前、すなわち解析を行った関数名のリストを表示する。プログラム表示部202は、リスト表示部201で選択されている関数のプログラムを表示する。マトリクス表示部203は、リスト表示部201で選択されている関数に対応するマトリクスマトリクス構造で表示したマトリクスデータを表示する。マトリクス表示部203の下部に、選択されている関数について得られるテストシナリオの総数209選択されている関数に対するテストシナリオの全てのパターン数を表示する。テストシナリオの総数209は、後述するように、表示しているマトリクスに含まれるセルの数解析木の葉ノードの数に等しいである。オペレータは、マトリクス表示部203に表示されたマトリクスのセルやセルの境界部を選択することで、選択されている関数について得られる全てのテストシナリオの中から、実行したいテストシナリオを特定することができる。マトリクスについては、図9を用いて後述する。キーワード入力部204は、オペレータからキーワードの入力を受け付ける。探索ボタン205は、キーワード入力部204が受け付けたキーワードを用いてキーワード検索を実行するためのボタンである。クリアボタン206は、現在の表示を初期化するためのボタンである。テストシナリオ出力ボタン207は、テストシナリオを出力するためのボタンである。終了ボタン208は、テストシナリオ自動作成システム100の実行を終了するためのボタンである。リスト表示部201、プログラム表示部202、及びマトリクス表示部203にそれぞれ表示されている関数名、プログラム、及びマトリクスのセルは、オペレータによる操作や入出力処理部107の処理結果に応じて、表示が更新される。表示が更新されると、更新対象の関数名、プログラム、セル、及びセルの境界部は、強調表示される。すなわち、表示が変更された部分は、強調表示される。また、オペレータが選択して指定した関数名、プログラム、セル、またはセルの境界部も強調表示される。強調表示の方法は、色を変える、ハッチングなどを施して背景を変える、または点滅表示するなど、任意の方法を用いることができる。セルの境界部を強調表示する場合は、境界部を表す線の太さを変えることもできる。図2では、一例としてハッチングで強調表示をしており、リスト表示部201、プログラム表示部202、及びマトリクス表示部203の中のハッチング部分が更新対象を示している。プログラム表示部202とマトリクス表示部203は、互いに連動している。従って、プログラム表示部202の条件判断ステートメントを指定すると、マトリクス表示部203にて、指定した条件判断ステートメントに関連するセルの表示を更新することができる。指定した条件判断ステートメントに関連するセルとは、解析木の根ノードから葉ノードに至る複数の経路根ノードと葉ノードを含むのうちで指定した条件判断ステートメントの条件を持つノードを含む経路の葉ノードを表すセルのことである。尚、マトリクス表示部203に表示されるマトリクスの形状セルの配置は、セルの数や大きさにより変えることができる。セルの大きさは、セルが表している葉ノードから根ノードに至る経路に含まれるノードの数により異なり、このノードの数が多いほどセルは小さくなる。テストシナリオ出力ボタン207が操作されると、指定されて強調表示されているマトリクスのセルとセルの境界部に関連するテストシナリオを出力する。マトリクスのセルに関連するテストシナリオとは、解析木においてセルが表している葉ノードから根ノードに至る経路に含まれるノードの集合であり、これらのノードの条件判断ステートメントに含まれる条件と親ノードの真偽についての情報とを含む。マトリクスのセルの境界部に関連するテストシナリオとは、解析木において、葉ノードから根ノードに至る経路のうち、セルの境界部が表している内部ノードを含む経路に含まれるノードの集合であり、これらのノードの条件判断ステートメントに含まれる条件と親ノードの真偽についての情報とを含む。すなわち、セルの境界部が表している内部ノードの下方にある葉ノードから根ノードに至る経路に含まれるノード集合であり、これらのノードの条件判断ステートメントに含まれる条件と親ノードの真偽についての情報とを含む。マトリクスのセルの境界部に関連するテストシナリオは、通常、複数存在する。また、マトリクス表示部203のセルを選択して指定することで、プログラム表示部202にて、指定したセルに関連するテストシナリオに含まれる条件判断ステートメントの表示を更新することができる。従って、各テストシナリオがどの条件判断ステートメントを含んでいるのかを把握しながら、操作画面200の操作をすることができる。キーワード入力部204にキーワードが入力され、探索ボタン205が操作されると、入出力処理部107がキーワード検索を実行する。キーワード検索により、キーワードを含むキーワードがノードのアドレスの場合は、キーワードに該当するの意味である。以下同じ関数のリスト、プログラム、及びマトリクスを操作画面200に表示することが可能である。従って、キーワード検索により、キーワードを含んでいるテストシナリオを作成し、出力することができる。例えば、入力したキーワードを含む条件判断ステートメントを検索し、この条件判断ステートメントを含むテストシナリオを作成して出力することができる。また、入力したノードのアドレスに該当する条件判断ステートメントを検索し、この条件判断ステートメントを含むテストシナリオを作成して出力することができる。次に、図3、図4、図5、及び図6に示すフローチャートを用いて、テストシナリオ自動作成システム100の動作手順を説明する。図3は、テストシナリオ自動作成システム100の全体の動作手順の例を表すフローチャートである。まず、プログラム解析部103は、入力されたプログラム原始プログラムの解析を行いS301、プログラム中の関数について解析木を作成する。プログラムの解析については、図4を用いて動作手順を後述する。解析結果である解析木をマトリクスで表示するために、マトリクスデータ作成部106は、解析木のマトリクスデータ化処理を行いS302、マトリクスデータを作成する。マトリクスデータ化処理では、解析木の葉ノードをマトリクスのセルとし、解析木の内部ノード条件判断ステートメントに含まれる条件をセルの境界部とする。葉ノードから根ノードに至る経路において、経路に含まれるノードの数が多いと、葉ノードに係わる条件判断ステートメントが多いすなわち、根ノードから葉ノードに至るまでに多くの条件を経ていることになり、葉ノードが表すセルの大きさは小さくなる。入出力処理部107は、作成したマトリクスデータ、解析したプログラムに含まれる関数のリスト、及び関数のプログラムを、ディスプレイ108に表示するS303。次に、入出力処理部107は、入力装置109から入力された値の解析を行うS304。オペレータが入力装置109を用いて入力を行うまでの間、すなわち入力装置109からの入力がない場合は、以後の処理を実行せずに入力を待つS305。オペレータからの入力があり入力値が終了である場合S306は、テストシナリオ自動作成システム100は処理を終了する。オペレータからの入力があり入力値が終了でない場合S306は、入出力処理部107は、ディスプレイ108の更新を行うS307。ディスプレイ108の更新については、図5を用いて動作手順を後述する。ディスプレイ108の更新の処理後、テストシナリオ出力部110は、テストシナリオを作成し、テストシナリオの出力を行うS308。テストシナリオの出力S308の終了後、入出力処理部107は、再び入力値の解析を行うS304。テストシナリオ自動作成システム100は、以上のようにして、オペレータから終了が入力されるまで、処理を続ける。図4は、図3に示したフローチャートにおけるプログラムの解析S301の動作手順の例を表すフローチャートである。プログラムの解析S301は、プログラム解析部103が実行する。まず、入力として与えられた原始プログラムD401の字句解析を行うS402。字句解析には、従来の手法を用いることができる。字句解析を行った後、字句解析の結果を利用して構文解析を行うS403。構文解析には、従来の手法を用いることができる。構文解析S403の際に、原始プログラムD401に含まれる関数を抽出するとともに、条件判断ステートメントと、条件判断ステートメントで使用されているキーワードD404とを抽出し、抽出した関数について解析木D405を作成する。解析木D405の葉ノードから根ノードに至る経路に含まれるノードの集合が、解析木D405から得られるテストシナリオである。解析木D405の葉ノードは複数あるので、解析木D405から得られるテストシナリオは、各葉ノードから根ノードに至る経路の数だけ存在する。これらのテストシナリオは、それぞれ内容パターンが異なる。解析木の作成方法と作成した解析木の一例は、図8を用いて後で説明する。図5は、図3に示したフローチャートにおけるディスプレイ108の更新S307の動作手順の例を表すフローチャートである。ディスプレイ108の更新S307は、オペレータによる操作画面200の操作に従い、入出力処理部107が実行する。オペレータは、入力装置109を用いて、操作画面200に表示されている関数、ステートメント、及びマトリクスのセルを指定することができる。また、オペレータは、キーワード入力部204と探索ボタン205を操作してキーワード検索を行うことができ、クリアボタン206を操作して操作画面200のクリアを指定することができる。まず、操作画面200図2を参照のリスト表示部201に表示されている関数のリストにおいて関数が指定された場合S501は、リスト表示部201の表示更新S502を行って、指定された関数を強調表示する。さらに、プログラム表示部202の表示更新S503を行って、指定された関数のプログラムをプログラム表示部202に表示し、マトリクス表示部203の表示更新S504を行って、指定された関数についてのマトリクスをマトリクス表示部203に表示する。プログラム表示部202に表示されているプログラムにおいて条件判断ステートメントが指定された場合S505は、プログラム表示部202の表示更新S503を行って、指定された条件判断ステートメントを強調表示する。さらに、マトリクス表示部203の表示更新S504を行って、マトリクス表示部203に表示されている当該プログラムのマトリクスにおいて、指定された条件判断ステートメントに関連するセルを強調表示する。マトリクス表示部203に表示されているマトリクスにおいてセルやセルの境界部が指定された場合S506は、マトリクス表示部203の表示更新S504を行って、指定されたセルやセルの境界部を強調表示する。さらに、プログラム表示部202の表示更新S503を行って、プログラム表示部202に表示されているプログラムにおいて、指定されたセルやセルの境界部に関連するテストシナリオにて使用されている条件判断ステートメントを強調表示する。尚、プログラム表示部202の表示更新S503において、条件判断ステートメントを強調表示するときは、条件判断ステートメントの全体を強調表示してもよく、一部例えば、条件判断ステートメントの1行目と最終行のみ、または1行目のみを強調表示してもよい。図2に示したプログラム表示部202では、条件判断ステートメントの1行目のみを強調表示している。入出力処理部107によってキーワード検索が行われた場合S507は、検索の終了後に、リスト表示部201、プログラム表示部202、及びマトリクス表示部203の表示更新を行いS502、S503、及びS504、キーワードを含むまたはキーワードに関連する関数、プログラム、及びマトリクスを表示する。このとき、キーワードを含むまたはキーワードに関連する部分を強調表示してもよい。マトリクス表示部203の表示更新S504により、指定された条件判断ステートメントに関連するセルを強調表示することで、テストシナリオの網羅度を視覚的に分かりやすく表示することができる。テストシナリオの網羅度は、得られるテストシナリオの総数テストシナリオの全てのパターン数に対する作成したテストシナリオの数である。マトリクス中のセルの数が得られるテストシナリオの総数であるので、テストシナリオの網羅度は、マトリクスのセルのうち強調表示されたセルの割合として表示することができる。クリアボタン206が操作されて操作画面200のクリアが指定された場合S508は、リスト表示部201、プログラム表示部202、及びマトリクス表示部203に表示している全ての情報を初期化し、操作画面200を初期表示に更新するS509。尚、S501、S505、S506、S507、及びS508において、指定や検索が行われない場合は、操作画面200を更新しない。図6は、図3に示したフローチャートにおけるテストシナリオの出力S308の動作手順の例を表すフローチャートである。テストシナリオの出力S308は、オペレータが操作画面200のテストシナリオ出力ボタン207を操作して指定すると、テストシナリオ出力部110が実行する。まず、テストシナリオの出力が指定された場合S601は、マトリクスのセルまたはセルの境界部が1つ以上指定されているか選択状態にあるかを検索するS602。セルまたはセルの境界部が1つ以上指定されている場合は、指定されているセルまたはセルの境界部に関連するテストシナリオを、マトリクスデータ格納部105に格納されている解析木から特定するS604。S604にて特定するテストシナリオは、セルが指定されている場合は、指定されているセルが表している葉ノードから根ノードに至る経路に含まれるノードの集合葉ノードと根ノードを含むである後述する図8を参照。セルの境界部が指定されている場合は、指定されているセルの境界部が表している内部ノードの下方にある葉ノードから根ノードに至る経路に含まれるノードの集合葉ノードと根ノードを含むである。特定したテストシナリオに含まれているノードの情報と、キーワード格納部104に格納されている条件判断ステートメントの情報とをリンクさせ、条件判断ステートメントの情報が含まれたテストシナリオ作成するS605。S605にて作成したテストシナリオを、予め定めた所定のフォーマットに従って、テストシナリオ格納部111に出力するS606。S602において、マトリクスのセルまたはセルの境界部が1つ以上指定されていない場合すなわち、セルとセルの境界部のどちらも指定されていない場合は、テストシナリオの出力が不可である旨を表すエラーメッセージをディスプレイ108に出力しS603、テストシナリオは出力しない。図7は、図4に示した原始プログラムD401の一例を示すコーディングイメージである。原始プログラムD401は、原始プログラム格納部101に格納されている。図7に示した原始プログラムD401は、2つの条件判断ステートメントを有し、1番目の条件判断ステートメントは条件Aと条件Bを含み、2番目の条件判断ステートメントは条件Cを含む。図8は、プログラム解析部103が構文解析の結果に基づいて作成した解析木の一例を表している。プログラム解析部103は、図7に示した原始プログラムを解析し、条件判断ステートメントについて複合条件網羅を満たす解析木である複合条件網羅対応解析木800を作成する。尚、解析木の形状は、原始プログラムD401のプログラム構造に合った形状に変化する。複合条件網羅は、ソフトウェアのテスト手法の一つである制御パステストプログラム中のコードが全て実行されるようにテストデータを与えるテスト方法において、条件判断ステートメントの真と偽の可能な組み合わせを全て実行する。従って、複合条件網羅は、全命令語を1回は実行する命令網羅や、条件判断ステートメントが真と偽になる両方を実行する分岐網羅よりも試験密度単位ステップ数あたりの試験数が高く、他のテストよりもシステムの高信頼性が確保できる。複合条件網羅対応解析木800の各ノードは、図8に示したように、当該ノードに対応する条件判断ステートメントの情報と、当該ノードの親ノードの条件判断ステートメントの真偽情報親ノードの条件判断ステートメントが真であるか偽であるかについての情報。親ノード真偽の情報と称するとを保持している。また、葉ノードは、条件判断ステートメントの情報でNULLを保持しており、根ノードは、親ノード真偽の情報でNULLを保持している。例えば、ノード801、802、803、及び804は、それぞれ、条件判断ステートメントの情報として、NULL、条件C、条件B、及び条件Aを保持しノード801は葉ノードである、親ノード真偽の情報として、真、真、偽、及びNULLを保持しているノード804は根ノードである。複合条件網羅対応解析木800の葉ノードから根ノードに至る経路に含まれるノードの集合葉ノードと根ノードを含むが、複合条件網羅対応解析木800から得られるテストシナリオである。テストシナリオは、葉ノードの数だけ存在し、それぞれ内容パターンが異なる。また、解析木とマトリクスは一対一の関係となっている。解析木の葉ノードがマトリクスの1つのセルを表しており、解析木の各ノードの条件判断ステートメントに含まれる条件がセルの境界部を表している。セルの境界部は、条件判断ステートメントに含まれる条件の真偽によって、マトリクスを分割している。すなわち、セルは、解析木の各ノードに対応する条件判断ステートメントの条件の真偽に従って、セルの境界部によって区切られている。セルの数は、解析木の葉ノードの数である。また、解析木の葉ノードから根ノードに至る経路に含まれるノードの集合が、1つのテストシナリオである。従って、セルの数は、考えられるテストシナリオの総数テストシナリオの全パターン数を表す。図9は、マトリクスデータ作成部106が複合条件網羅対応解析木800から作成したマトリクスデータの一例を示している。マトリクスデータは、プログラム解析部103が作成したツリー構造の解析木を、マトリクス構造に変更したデータである。マトリクスデータは、プログラム解析部103で作成される解析木に合った形状で作成される。図9に示したマトリクスデータ900は、図8に示した複合条件網羅対応解析木800をマトリクス構造に変換した例である。マトリクスの各セルを区切るセルの境界部901、902、903、904、及び905点線で囲んだ線は、複合条件網羅対応解析木800の各ノードが保持している条件判断ステートメントの条件を表している。マトリクスの各セルは、複合条件網羅対応解析木800の葉ノードを表している。例えば、セルの境界部901条件Aは、複合条件網羅対応解析木800のノード804根ノードを表しており、図9においてセルの境界部901の左側は条件Aが真の場合であり、右側は偽の場合である。セルの境界部903条件Bは、ノード803を表しており、図9においてセルの境界部903の上側は条件Bが真の場合であり、下側は偽の場合である。セルの境界部904条件Cは、ノード802を表しており、図9においてセルの境界部904の左側は条件Cが真の場合であり、右側は偽の場合である。また、例えば、セル910は、セルの境界部901条件A、903条件B、及び904条件Cに区切られたセルであり、複合条件網羅対応解析木800の葉ノードであるノード801を表している。セル910は、条件Aが偽、条件Bが真、条件Cが真の場合に対応する。図9では、マトリクスのセルの中に、各セルに対応するテストシナリオを記載している。各セルに対応するテストシナリオとは、上述したように、各セルが表す葉ノードから根ノードに至る経路に含まれるノードの集合葉ノードと根ノードを含むである。例えば、セル910は、図8に示した葉ノードであるノード801を表し、ノード801から根ノードであるノード804に至る経路に含まれるノードの集合は、ノード801、802、803、及び804である。ノード804ノード803の親ノードは、条件判断ステートメントの条件Aを保有しており、ノード803は、親ノード真偽の情報として偽を保有しているので、テストシナリオは、条件Aを偽とした場合のものである。以下同様に、ノード803~801について、各ノードの保有する条件判断ステートメントと当該ノードの子ノードが保有する親ノード真偽の情報とに基づいてテストシナリオを定めると、条件Bは真、条件Cは真となる。従って、セル910に対応するテストシナリオは、条件Aを偽、条件Bを真、条件Cを真とした場合のテストシナリオである。図10は、図7に示した原始プログラムを解析した場合において、キーワード格納部104に格納されるキーワードの一例である。キーワード格納部104には、プログラム解析部103が解析して作成したキーワードが格納されている。図10に示す例では、1つのエントリに、キーワードの格納番号No1001、モジュール名1002、関数名1003、条件判断ステートメントのソース範囲1004、解析木のノードアドレス1005、及び条件判断ステートメント1006の項目を備える。図10には示していないが、定数や変数をキーワードに含めてもよい。キーワード検索を行う際には、エントリ内に含まれている情報に対して検索を行い、キーワードを含むエントリを特定する。図11は、図7に示した原始プログラムを対象とした場合において、テストシナリオ出力部110が出力するテストシナリオの一例である。テストシナリオには、指定したセルのテストシナリオを実現させるための条件判断ステートメントが実行順に記載されている。1つのエントリは、実行順番1101、モジュール名1102、関数名1103、条件判断ステートメントのソース範囲1104、条件判断ステートメント1105、及び条件判断ステートメントの結果1106を備える。図11に示したテストシナリオは、図9に示したマトリクスのセル910を指定した場合のテストシナリオである。尚、本発明は、上記の実施例に限定されるものではなく、様々な変形例を実施態様としてとることができる。例えば、上記の実施例は、本発明の一実施態様を分かりやすく詳細に説明したものであり、本発明は、必ずしも説明した全ての構成を備えるものに限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加削除置換をすることが可能である。また、上記の構成、機能、処理部、及び処理手段等は、これらの一部または全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよい。また、上記の構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、及びファイル等の情報は、メモリ、ハードディスク、SSDSolidStateDrive等の記録装置、またはICカード、SDカード、DVD等の記録媒体に保存することができる。また、制御線や情報線は、説明上必要と考えられるものを記載しており、必ずしも製品上必要な全ての制御線や情報線を示しているとは限らない。実際には、殆ど全ての構成が相互に接続されていると考えてもよい。本発明によるテストシナリオ自動作成システムによれば、以下のような作用効果が得られる。1.テスト対象プログラムを指定することで、プログラムをマトリクスで表現することができ、テストシナリオの総数、テストシナリオの網羅度を視覚的に捕らえることができ、テストシナリオの選択が容易になる。また、テストシナリオの試験密度、プログラムの構造を把握することができる。2.複合条件網羅を満たす解析木である複合条件網羅対応解析木からマトリクスを作成し、テストシナリオを作成する。このため、プログラムの追加や変更の改修作業が発生した場合でも、改修箇所及び改修による影響の波及箇所に関連するテスト内容を網羅したテストシナリオを作成し、関連のないテストシナリオを除外することができる。従って、テストシナリオの作成にかかる工数と、テストの実施にかかる工数を削減できる。3.制御パステストの中でも命令網羅や条件網羅よりも基準が厳しい複合条件網羅を対象としていることで、プログラムのバグを早期発見することができ、後工程でバグが発見され修正コストが上がるのを防ぎ、品質の高いシステムを作ることができる。