(57)【特許請求の範囲】
【請求項１】
入力されたソースコードから、そのソースコードが表すコンピュータプログラムが実行されたときの流れを示すパスをテストケースとして抽出すると共に、該抽出したパスに含まれる判断条件を抽出する抽出手段と、
前記抽出手段により抽出された判断条件を正規化する正規化手段と、
前記正規化手段により正規化された判断条件に基づいて、前記パスが実行可能であるか否かを判定し、実行可能でないと判定された場合、該パスを前記テストケースから除外する判定手段と
を備え、
前記判定手段は、前記正規化手段により正規化された複数の判断条件を含むパスのうち、当該複数の判断条件が互いに等価である場合に成立しないパス、および当該複数の判断条件が互いに排反する場合に成立しないパスを、実行可能でないと判定し、前記テストケースから除外するテストケース生成装置。
【請求項２】
入力されたソースコードから、そのソースコードが表すコンピュータプログラムが実行されたときの流れを示すパスをテストケースとして抽出すると共に、該抽出したパスに含まれる判断条件を抽出し、
前記抽出された判断条件を正規化し、
前記正規化された判断条件に基づいて、前記パスが実行可能であるか否かを判定し、実行可能でないと判定された場合、該パスを前記テストケースから除外し、
前記パスが実行可能であるか否かの判定にあたり、前記正規化された複数の判断条件を含むパスのうち、当該複数の判断条件が互いに等価である場合に成立しないパス、および当該複数の判断条件が互いに排反する場合に成立しないパスを、実行可能でないと判定し、前記テストケースから除外するテストケース生成方法。
【請求項３】
入力されたソースコードから、そのソースコードが表すコンピュータプログラムが実行されたときの流れを示すパスをテストケースとして抽出すると共に、該抽出したパスに含まれる判断条件を抽出する抽出処理と、
前記抽出された判断条件を正規化する正規化処理と、
前記正規化された判断条件に基づいて、前記パスが実行可能であるか否かを判定し、実行可能でないと判定された場合、該パスを前記テストケースから除外する判定処理と、
前記判定処理において、前記正規化された複数の判断条件を含むパスのうち、当該複数の判断条件が互いに等価である場合に成立しないパス、および当該複数の判断条件が互いに排反する場合に成立しないパスを、実行可能でないと判定し、前記テストケースから除外する処理を、コンピュータに実行させるテストケース生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テストケース生成装置、テストケース生成方法およびテストケース生成プログラムに関する。
【背景技術】
【０００２】
ソフトウェアの開発において、そのソフトウェアを搭載した製品が仕様を満たしているかどうかを確認したり、製品の品質を確認したりするために、ソフトウェアのテストが実施される。このテストは、重要な工程である。
【０００３】
ソフトウェアの内部構造の分析を基にしたテストとして、ホワイトボックステストがある。ホワイトボックステストとは、テスト対象のソフトウェアの内部構造に関する知識を拠り所にして、テスト対象のソフトウェアが正常に機能するかどうかを確認するテストである。
【０００４】
ホワイトボックステストの１つとして、パステストがある。パステストとは、プログラム中のコードがすべて実行されるようなテストデータに基づいてテストする技法である。パステストでは、テスト対象のソフトウェアからパス、すなわち制御フローパスを選択し、そのパスをテストする。具体的には、パステストでは、テスト対象のソフトウェアへの入力値および事前条件が予め決定された上でテストの対象ソフトウェアが実行される。そして、テストの結果が期待結果および事後条件を満たすかどうかを判定することにより、テスト対象のソフトウェアが正常に機能するかどうかを確認する。パステストは、制御フローテストとも呼ばれる。
【０００５】
パステスト法は、ソフトウェアのテストの基本的手法である。例えば、非特許文献１および非特許文献２に、パステスト法が記載されている。
【０００６】
パステストを行う場合、予め、選択されたパスと、そのパスを実行するための入力値や事前条件、および期待結果と事後条件を含むテストケースが定められる。
【０００７】
非特許文献１および非特許文献２は、パステストの設計を人が行う方法を開示する。また、特許文献１および特許文献２は、上記パステストの設計を自動化したシステムの例を開示する。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】ボーリス・バイザー著、「ソフトウェアテスト技法」、日経ＢＰ出版センター、１９９４年２月２５日、ｐｐ．４９−９７
【非特許文献２】リー・コープランド著、「はじめて学ぶソフトウェアのテスト技法」、日経ＢＰ社、２００５年１１月７日、ｐｐ．１２５−１４８
【特許文献】
【０００９】
【特許文献１】特開２００８−２９９５０２号公報
【特許文献２】特開２００４−２２０２６９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述したようなパステストの設計においては、選択されたパスが、いかなる入力値を組み合わせ、また設定しても、実行できない実行不可能パスが存在する。情報システム等のソフトウェアでは、フラグの意味を表わす変数を利用することによりパスを選択しており、通例、プログラム中にはフラグ条件による分岐箇所が多数存在する。
【００１１】
あるフラグがある処理中に不変である場合、ある分岐条件ではフラグが真の側に分岐し、別のある分岐ではそのフラグが偽の側に分岐することはあり得ない。このようなパスを実行不可能パスと称する。実行不可能パスがテストケースに含まれると、テストの効率が低下するという課題がある。
【００１２】
上記いずれの先行技術文献においても、実行不可能パスがテストケースに含まれるという課題がある。
【００１３】
本願発明は、上記課題を鑑みてなされたものであり、ソースコードが表すコンピュータプログラムのテスト効率を向上するテストケース生成装置、テストケース生成方法およびテストケース生成プログラムを提供することを主要な目的とする。
【課題を解決するための手段】
【００１４】
本発明に係るテストケース生成装置は、入力されたソースコードから、そのソースコードが表すコンピュータプログラムが実行されたときの流れを示すパスをテストケースとして抽出すると共に、該抽出したパスに含まれる判断条件を抽出する抽出手段と、前記抽出された判断条件に基づいて、前記パスが実行可能であるか否かを判定し、実行可能でないと判定された場合、該パスを前記テストケースから除外する判定手段とを備える。
【００１５】
本発明に係るテストケース生成方法は、入力されたソースコードから、そのソースコードが表すコンピュータプログラムが実行されたときの流れを示すパスをテストケースとして抽出すると共に、該抽出したパスに含まれる判断条件を抽出し、前記抽出された判断条件に基づいて、前記パスが実行可能であるか否かを判定し、実行可能でないと判定された場合、該パスを前記テストケースから除外することを備える。
【００１６】
なお同目的は、上記の各構成を有するテストケース生成装置、並びに対応する方法を、コンピュータによって実現するコンピュータ・プログラム、およびそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【００１７】
本願発明によれば、ソースコードが表すコンピュータプログラムのテスト効率を向上することができる効果が得られる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施形態に係るテストケース生成装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態に係るテストケース生成装置のハードウエア構成を示す図である。
【図３】本発明の第１の実施形態に係るテストケース生成装置の動作を示すフローチャートである。
【図４】本発明の第１の実施形態に係るテストケース生成装置により生成されるテストケースの具体例を示す図である。
【図５】本発明の第２の実施形態に係るテストケース生成装置により生成されるテストケースの具体例を示す図である。
【図６】本発明の第３の実施形態に係るテストケース生成装置により生成されるテストケースの具体例を示す図である。
【図７】本発明の第４の実施形態に係るテストケース生成装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１９】
第１の実施形態
次に、本発明の実施形態について図面を参照して詳細に説明する。
【００２０】
図１は、本発明の第１の実施形態に係るテストケース生成装置１０の構成を示すブロック図である。図１に示すように、テストケース生成装置１０は、入力部１１、パス解析部１２、述語正規化部１３、実行可能性判定部１４、パス解析結果記憶部１５および出力部１６を備える。
【００２１】
図１のテストケース生成装置１０は、コンピュータにより実現した場合、それぞれ図２に示すハードウエア構成を有する。図２に示す構成は、ＣＰＵ（Central Processing Unit）４０、メモリ等の記憶媒体４１および記憶媒体４１に含まれるプログラム４２を備える。テストケース生成装置１０のＣＰＵ４０は、各種ソフトウエア・プログラム（コンピュータ・プログラム）を実行することにより、テストケース生成装置１０の全体的な動作を司る。本実施形態および以下に示す他の実施形態において、ＣＰＵ４０が、メモリ等の記憶媒体４１を適宜参照しながら、以下に示すテストケース生成装置１０が備える各機能（各部）のソフトウエア・プログラムを実行する。
【００２２】
より具体的には、ＣＰＵ４０は、メモリ等の記憶媒体４１を適宜参照しながら、テストケース生成装置１０が備える入力部１１、パス解析部１２等のソフトウエア・プログラムを実行する。
【００２３】
テストケース生成装置１０の概要について説明する。
【００２４】
入力部１１は、ソースコードを読み出すと共に、読み出したソースコードをパス解析部１２に通知するする。入力部１１は、例えば、ソースコード記憶部２０等のハードディスクの記憶媒体に蓄積されているソースコードを読み出す機能を有する。また、入力部１１は、ネットワークを介してソースコードを読み出す機能等を有してもよい。
【００２５】
パス解析部１２は、入力部１１からソースコードを受け取ると共に、受け取ったソースコードから、処理の流れとしてあり得る全てのパスを抽出する。パスとは、ソースコードが表すコンピュータプログラムが実行されたときの流れを表し、コンピュータプログラムの実行に際してソースコードにおけるどの箇所を通るかを示す情報である。
【００２６】
また、パス解析部１２は、抽出したパスから、そのパスを制御する条件分岐における述語を抽出する。パスを制御する条件分岐における述語とは、ソースコード中の条件により分岐する箇所における判断条件を表す情報である（詳細は、図４を参照して後述する）。パス解析部１２は、抽出したパスと述語とを、パス解析結果記憶部１５に保存する。
【００２７】
述語正規化部１３は、パス解析結果記憶部１５から述語を読み出すと共に、読み出した述語を正規化して、再びパス解析結果記憶部１５に保存する。ここで、述語の正規化とは、述語同士を比較可能にするために、述語の意味を変えずに表式のみを変更することである（詳細は、図４を参照して後述する）。
【００２８】
実行可能性判定部１４は、パス解析結果記憶部１５からパスおよびそのパスに含まれる正規化された述語を読み出すと共に、そのパスが実行可能かどうかを判定する。具体的には、実行可能性判定部１４は、パスに含まれる正規化された２つの述語を読み出すと共にそれらを比較する。そして、実行可能性判定部１４は、２つの述語の意味が同一か否か、あるいは一方が成立するとき他方が成立し得ない排反であるかどうか等を判定し、その判定結果に基づいて、そのパスが実行可能かどうかを判定する。
【００２９】
実行可能性判定部１４は、２つの述語が実行の流れにおいて同時に成立し得ない場合、それらの述語を含むパスを実行不可能であると判定する。実行可能性判定部１４は、実行不可能であると判定したパスを除いたパスの集合を、テストケースとして出力部１６に通知する。
【００３０】
出力部１６は、実行可能性判定部１４により得られた実行不可能なパスを含まないテストケースを出力する。出力部１６は、例えば、テストケース記憶部３０等のハードディスク等の記憶媒体に、結果を蓄積する機能を有する。また、出力部１６は、テストケースを画面出力したりネットワークを介して出力したりするなど、様々な出力形態を有してもよい。
【００３１】
図３は、テストケース生成装置１０の動作を示すフローチャートである。また、図４は、テストケース生成装置１０により生成されたテストケースの具体例を示す図である。図３、図４を参照して、テストケース生成装置１０の動作について説明する。
【００３２】
テストケース生成装置１０の入力部１１は、テストケースの生成にあたり、ソースコード記憶部２０からソースコードを読み出すと共に、読み出したソースコードをパス解析部１２に通知する。パス解析部１２は、入力部１１からソースコードを取得すると、そのソースコードから全てのパス、あるいはある指定された特定の条件下におけるパスの集合を抽出すると共に、抽出したパスをパス解析結果記憶部１５に保存する（ステップＳ１０１）。
【００３３】
例えば、ソースコードが図４に示すものである場合について説明する。ソースコード５１は、以下の内容を示す。すなわち、まず、処理１が実行される。次に、述語Ａとして「ｘ＞０」を持った条件分岐「ｉｆ」文があり、述語Ａが真のときに処理２が実行され、述語Ａが偽のときに処理３が実行される。次に、処理４が実行される。次に、述語Ｂとして述語Ａと同一の「ｘ＞０」を持った条件分岐「ｉｆ」文があり、述語Ｂが真のときに処理５が実行され、述語Ｂが偽のときに処理６が実行される。次に処理７が実行される。
【００３４】
パス解析部１２は、上記ソースコード５１から、実行の流れとしてあり得る全てのパスを抽出する。すなわち、
パス１として、１（Ａ真）２４（Ｂ真）５７
パス２として、１（Ａ偽）３４（Ｂ真）５７
パス３として、１（Ａ真）２４（Ｂ偽）６７
パス４として、１（Ａ偽）３４（Ｂ偽）６７
というパスを抽出する。ここで、上記パスの表記において、「１」〜「７」の表記は処理名を表し、「Ａ」、「Ｂ」の表記は述語名を表す。また、述語の後ろの「真偽」の表記は、述語が真または偽であることを表す。上記表記の順番に処理が実行される。パス解析部１２は、上記抽出したパスをパス解析結果記憶部１５に保存する。
【００３５】
パス解析部１２は、続いて、抽出したパスから述語を抽出する（ステップＳ１０２）。すなわち、パス解析部１２はまず、パス１から述語を抽出する。述語Ａとして「ｘ＞０」、述語Ｂとして「ｘ＞０」が、それぞれ抽出される。パス解析部１２は、抽出した述語Ａ、Ｂを、パス解析結果記憶部１５に保存する。
【００３６】
続いて、述語正規化部１３は、パス解析部１２により保存された述語を正規化し、その結果をパス解析結果記憶部１５に保存する（ステップＳ１０３）。すなわち、述語正規化部１３は、述語Ａを「ｘ＞０」、述語Ｂを「ｘ＞０」のように、それぞれ正規化すると共に、述語Ａと述語Ｂとが等価であることを判断（認識）する。そして、述語正規化部１３は正規化した結果と、述語Ａと述語Ｂとが等価であることとを、パス解析結果記憶部１５に保存する。
【００３７】
続いて、実行可能性判定部１４は、パス解析結果記憶部１５に格納される正規化された述語に基づいて、パスが実行可能かどうかを判定し、判定結果を出力部１６に出力する（ステップＳ１０４）。
【００３８】
ここでは、図４に示すように、述語Ａと述語Ｂは等価である。よって、「述語Ａが真」かつ「述語Ｂが偽」、および「述語Ａが偽」かつ「述語Ｂが真」というケースは、成り立たない。したがって、実行可能性判定部１４は、そのような条件を含むパスを実行不可能パスであると判断すると共に、該パスを、パス解析結果記憶部１５に保存したパスの集合から除外したものを、テストケースとして出力部１６に出力する。この場合、実行不可能なパスは、パス２、パス３である。したがって、実行可能性判定部１４は、パス１とパス４とを含むパスの集合を、テストケースとして出力部１６に出力する。
【００３９】
以上のように、この第１の実施形態によれば、テストケース生成装置１０のパス解析部１２が、ソースコードからパスを抽出すると共に、抽出したパスから述語を抽出し、述語正規化部１３が、抽出した述語を正規化する。そして、実行可能性判定部１４が、正規化された述語に基づいて、パスが実行可能か否かを判定する。実行可能性判定部１４は、実行不可能なパスを除外したパスの集合を、テストケースとして出力する。本実施形態は上記構成を有するので、テスト実施者がテストを実施する前にテストケースが実行可能であるかどうかを判断することが不要になるという効果が得られる。また、テストケースから実行不可能なパスを除外できるため、テストケース数が少なくなり、ソースコードが表すコンピュータプログラムのテスト効率を向上することができるという効果が得られる。
【００４０】
なお、本第１の実施形態および以下の各実施形態において、述語同士の関係を判断することは、述語正規化部１３により実施されることに限らず、実行可能性判定部１４により実施されてもよい。
【００４１】
第２の実施形態
第２の実施形態では、上記第１の実施形態において説明したテストケース生成装置１０によりテストケースを生成する別の例について説明する。
【００４２】
図５は、テストケース生成装置１０により生成されるテストケースの具体例を示す図である。図５に示すソースコード５２は、図４に示したソースコード５１と、述語Ａおよび述語Ｂの内容が異なることを除いてソースコード５１と同一である。すなわち、ここでは、述語Ａが「ｘ＞１」であり、述語Ｂが「０＜ｘ−１」である。
【００４３】
テストケース生成装置１０は、図３に示した動作と同様の動作を行う。すなわち、パス解析部１２は、入力部１１からソースコード５２を取得し、そのソースコード５２からパスを抽出すると共に、抽出したパスをパス解析結果記憶部１５に保存する。ここでは、パス解析部１２は第１の実施形態と同一のパス１−４を抽出する。
【００４４】
続いて、パス解析部１２は、抽出したパスから述語を抽出すると共に、抽出した述語をパス解析結果記憶部１５に保存する。ここでは、パス解析部１２は、述語Ａとして「ｘ＞１」、述語Ｂとして「０＜ｘ−１」を抽出し、これらをパス解析結果記憶部１５に保存する。
【００４５】
続いて、述語正規化部１３は、パス解析部１２により保存された述語を正規化すると共に、その結果をパス解析結果記憶部１５に保存する。すなわち、述語正規化部１３は、述語Ａを「ｘ＞１」、述語Ｂを「ｘ＞１」のように、それぞれ正規化すると共に、述語Ａと述語Ｂとが等価であることを認識する。そして、述語正規化部１３は正規化した結果と、述語Ａと述語Ｂとが等価であることとを、パス解析結果記憶部１５に保存する。
【００４６】
続いて、実行可能性判定部１４は、パス解析結果記憶部１５に格納される正規化された述語に基づいて、パスが実行可能かどうかを判定し、判定結果を出力部１６に出力する。
【００４７】
ここでは、第１の実施形態と同様に、述語Ａと述語Ｂは等価である。よって、「述語Ａが真」かつ「述語Ｂが偽」、および「述語Ａが偽」かつ「述語Ｂが真」というケースは、成り立たない。したがって、実行可能性判定部１４は、第１の実施形態と同様に、そのような条件を含むパスを実行不可能パスであると判断すると共に、該パスを、パス解析結果記憶部１５に保存したパスの集合から除外したものを、テストケースとして出力部１６に出力する。すなわち、実行可能性判定部１４は、パス２およびパス３をパスの集合から除外したパス１およびパス４を、テストケースとして出力部１６に出力する。
【００４８】
以上のように、この第２の実施形態によれば、上記第１の実施形態と同様に、テストケース生成装置１０のパス解析部１２が、ソースコードからパスを抽出すると共に、抽出したパスから述語を抽出し、述語正規化部１３が、抽出した述語を正規化する。そして、実行可能性判定部１４が、正規化された述語に基づいて、パスが実行可能か否かを判定する。実行可能性判定部１４は、実行不可能なパスを除外したパスの集合を、テストケースとして出力する。本実施形態は上記構成を有するので、テスト実施者がテストを実施する前にテストケースが実行可能であるかどうかを判断することが不要になるという効果が得られる。また、テストケースから実行不可能なパスを除外できるため、テストケース数が少なくなり、ソースコードが表すコンピュータプログラムのテスト効率を向上することができるという効果が得られる。
【００４９】
第３の実施形態
第３の実施形態では、上記第１の実施形態において説明したテストケース生成装置１０によりテストケースを生成する別の例について説明する。
【００５０】
図６は、テストケース生成装置１０により生成されるテストケースの具体例を示す図である。図６に示すソースコード５３は、図４に示したソースコード５１と、述語Ａおよび述語Ｂの内容が異なることを除いてソースコード５１と同一である。すなわち、ここでは、述語Ａがｘ＞０であり、述語Ｂがｘ＜＝０である。
【００５１】
テストケース生成装置１０は、図３に示した動作と同様の動作を行う。すなわち、パス解析部１２は、入力部１１からソースコード５２を取得し、そのソースコード５２からパスを抽出すると共に、抽出したパスをパス解析結果記憶部１５に保存する。ここでは、パス解析部１２は第１の実施形態と同一のパス１−４を抽出する。
【００５２】
続いて、パス解析部１２は、抽出したパスから述語を抽出すると共に、抽出した述語をパス解析結果記憶部１５に保存する。ここでは、パス解析部１２は、述語Ａとしてｘ＞０、述語Ｂとしてｘ＜＝０を抽出し、これらをパス解析結果記憶部１５に保存する。
【００５３】
続いて、述語正規化部１３は、パス解析部１２により保存された述語を正規化すると共に、その結果をパス解析結果記憶部１５に保存する。すなわち、述語正規化部１３は、述語Ａを「ｘ＞０」、述語Ｂを「ｘ＜＝０」のように、それぞれ正規化すると共に、述語Ａの否定と述語Ｂとが等価であることを認識する。そして、述語正規化部１３は正規化した結果と、述語Ａの否定と述語Ｂとが等価であることとを、パス解析結果記憶部１５に保存する。
【００５４】
続いて、実行可能性判定部１４は、パス解析結果記憶部１５に格納される正規化された述語に基づいて、パスが実行可能かどうかを判定し、判定結果を出力部１６に出力する。
【００５５】
ここでは、述語Ａの否定と述語Ｂとが等価である。よって、述語Ａと述語Ｂとは互いに排反であるので、「述語Ａが真」かつ「述語Ｂが真」、および「述語Ａが偽」かつ「述語Ｂが偽」というケースは、成り立たない。したがって、実行可能性判定部１４は、そのような条件を含むパスを実行不可能パスであると判断すると共に、該パスを、パス解析結果記憶部１５に保存したパスの集合から除外したものを、テストケースとして出力部１６に出力する。すなわち、実行可能性判定部１４は、パス１およびパス４をパスの集合から除外したパス２およびパス３を、テストケースとして出力部１６に出力する。
【００５６】
以上のように、この第３の実施形態によれば、上記第１の実施形態と同様に、テストケース生成装置１０のパス解析部１２が、ソースコードからパスを抽出すると共に、抽出したパスから述語を抽出し、述語正規化部１３が、抽出した述語を正規化する。そして、実行可能性判定部１４が、正規化された述語に基づいて、パスが実行可能か否かを判定する。実行可能性判定部１４は、実行不可能なパスを除外したパスの集合を、テストケースとして出力する。本実施形態は上記構成を有するので、テスト実施者がテストを実施する前にテストケースが実行可能であるかどうかを判断することが不要になるという効果が得られる。また、テストケースから実行不可能なパスを除外できるため、テストケース数が少なくなり、ソースコードが表すコンピュータプログラムのテスト効率を向上することができるという効果が得られる。
【００５７】
第４の実施形態
図７は、本発明の第４の実施形態に係るテストケース生成装置６０の構成を示すブロック図である。図７に示すように、テストケース生成装置６０は、抽出部６１および判定部６２を備える。
【００５８】
抽出部６１は、入力されたソースコードから、そのソースコードが表すコンピュータプログラムが実行されたときの流れを示すパスをテストケースとして抽出すると共に、該抽出したパスに含まれる判断条件を抽出する。判定部６２は、抽出された判断条件に基づいて、パスが実行可能であるか否かを判定し、実行可能でないと判定された場合、該パスをテストケースから除外する。
【００５９】
抽出部６１は、第１の実施形態のパス解析部１２に相当し、判定部６２は、第１の実施形態の述語正規化部１３および実行可能性判定部１４に相当する。
【００６０】
以上のように、第４の実施形態によれば、テストケース生成装置６０は上記構成を有するので、ソースコードが表すコンピュータプログラムのテスト効率を向上することができるという効果が得られる。
【産業上の利用可能性】
【００６１】
本発明は、例えばソフトウェア開発におけるテストにおいてテストケースを生成するテストケース生成装置、テストケース生成装置をコンピュータに実現するためのプログラムといった用途に適用できる。また、テストケースを生成する機能を、ハードウエア開発におけるハードウエアに対するテストケース生成機能や、モデルベース開発におけるモデルに対するテストケース生成機能や、ビジネスロジックやビジネスプロセス等の論理記述言語に対するテストケース生成機能にも適用できる。
【符号の説明】
【００６２】
１０  テストケース生成装置
１１  入力部
１２  パス解析部
１３  述語正規化部
１４  実行可能性判定部
１５  パス解析結果記憶部
１６  出力部
２０  ソースコード記憶部
３０  テストケース記憶部
４０  ＣＰＵ
４１  記憶媒体
４２  プログラム
６０  テストケース生成装置
６１  抽出部
６２  判定部
【図１】
0005755861.tif 000002
【図２】
0005755861.tif 000003
【図３】
0005755861.tif 000004
【図４】
0005755861.tif 000005
【図５】
0005755861.tif 000006
【図６】
0005755861.tif 000007
【図７】
0005755861.tif 000008