(57)【特許請求の範囲】
【請求項１】
組み合わせを行う第１のテストケースと、第２のテストケースとを受け付け、
前記第１および第２のテストケースに共通する共通変数を抽出し、
前記第１のテストケースにおいて、前記抽出された共通変数を含む条件節の出現パターンを抽出し、
前記第１のテストケースにおいて、前記抽出された出現パターンごとに、少なくとも１つの代表テストケースを抽出し、
前記第１のテストケースにおいて前記出現パターンごとに抽出された代表テストケースと、前記第２のテストケースとを組み合わせて新たなテストケースを生成する
処理をコンピュータが実行することを特徴とするテストケース生成方法。
【請求項２】
前記第１のテストケースは、前記第２のテストケースよりも先に呼び出される処理にかかるテストケースである
ことを特徴とする請求項１に記載のテストケース生成方法。
【請求項３】
前記代表テストケースを抽出する処理は、前記抽出された出現パターンにおいて条件節数の少ないテストケースを代表テストケースとして抽出する
ことを特徴とする請求項１または２に記載のテストケース生成方法。
【請求項４】
組み合わせを行う第１のテストケースと、第２のテストケースとを受け付け、
前記第１および第２のテストケースに共通する共通変数を抽出し、
前記第１のテストケースにおいて、前記抽出された共通変数を含む条件節の出現パターンを抽出し、
前記第１のテストケースにおいて、前記抽出された出現パターンごとに、少なくとも１つの代表テストケースを抽出し、
前記第１のテストケースにおいて前記出現パターンごとに抽出された代表テストケースと、前記第２のテストケースとを組み合わせて新たなテストケースを生成する
処理をコンピュータに実行させることを特徴とするテストケース生成プログラム。
【請求項５】
組み合わせを行う第１のテストケースと、第２のテストケースとを受け付ける入力部と、
前記第１および第２のテストケースに共通する共通変数を抽出する第１の抽出部と、
前記第１のテストケースにおいて、前記抽出された共通変数を含む条件節の出現パターンを抽出する第２の抽出部と、
前記第１のテストケースにおいて、前記抽出された出現パターンごとに、少なくとも１つの代表テストケースを抽出する第３の抽出部と、
前記第１のテストケースにおいて前記出現パターンごとに抽出された代表テストケースと、前記第２のテストケースとを組み合わせて新たなテストケースを生成する生成部と
を有することを特徴とするテストケース生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、テストケース生成方法、テストケース生成プログラムおよびテストケース生成装置に関する。
【背景技術】
【０００２】
従来、単体テストに代表されるホワイトボックステスト（以下、テスト）を行うために、シンボリック実行等のプログラム解析技術を利用してテストケースを自動生成する技術がある。テストの際には、テスト対象のプログラムをモジュール単位で解析してモジュールごとの複数のテストケースを生成する。そして、生成された複数のテストケースを組み合わせて、テストケースに含まれる全ての条件について充足可能性を確認する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１４６１７８号公報
【特許文献２】特開２０１５−３２２８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来技術では、充足可能性を確認する条件の組合せ対象が膨大になる（爆発する）ことがあり、効率的にテストを実施することが困難となる場合がある。
【０００５】
１つの側面では、効率的にテストを実施することを可能とするテストケース生成方法、テストケース生成プログラムおよびテストケース生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
第１の案では、テストケース生成方法は、組み合わせを行う第１のテストケースと、第２のテストケースとを受け付ける処理をコンピュータが実行する。また、テストケース生成方法は、第１および第２のテストケースに共通する共通変数を抽出する処理をコンピュータが実行する。また、テストケース生成方法は、第１のテストケースにおいて、抽出された共通変数を含む条件節の出現パターンを抽出する処理をコンピュータが実行する。また、テストケース生成方法は、第１のテストケースにおいて、抽出された出現パターンごとに、少なくとも１つの代表テストケースを抽出する処理をコンピュータが実行する。また、テストケース生成方法は、第１のテストケースにおいて出現パターンごとに抽出された代表テストケースと、第２のテストケースとを組み合わせて新たなテストケースを生成する処理をコンピュータが実行する。
【発明の効果】
【０００７】
本発明の１実施態様によれば、効率的にテストを実施することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態にかかるテストケース生成装置の機能構成を例示するブロック図である。
【図２】図２は、影響因子の抽出にかかる処理の一例を示すフローチャートである。
【図３】図３は、影響因子の抽出を説明する説明図である。
【図４】図４は、分割条件の抽出にかかる処理の一例を示すフローチャートである。
【図５】図５は、分割条件の抽出を説明する説明図である。
【図６】図６は、同値類の抽出にかかる処理の一例を示すフローチャートである。
【図７】図７は、同値類の抽出を説明する説明図である。
【図８】図８は、代表テストケースの抽出にかかる処理の一例を示すフローチャートである。
【図９】図９は、代表テストケースの抽出を説明する説明図である。
【図１０】図１０は、テストケースの生成にかかる処理の一例を示すフローチャートである。
【図１１】図１１は、テストケースの生成を説明する説明図である。
【図１２】図１２は、実施形態にかかるテストケース生成装置のテストケース生成を説明する説明図である。
【図１３】図１３は、影響因子の抽出を説明する説明図である。
【図１４】図１４は、分割条件の抽出を説明する説明図である。
【図１５】図１５は、同値類の抽出を説明する説明図である。
【図１６】図１６は、代表テストケースの抽出を説明する説明図である。
【図１７】図１７は、実施形態にかかるテストケース生成装置のハードウエア構成を例示するブロック図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、実施形態にかかるテストケース生成方法、テストケース生成プログラムおよびテストケース生成装置を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明するテストケース生成方法、テストケース生成プログラムおよびテストケース生成装置は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【００１０】
図１は、実施形態にかかるテストケース生成装置の機能構成を例示するブロック図である。図１に示すように、テストケース生成装置１は、入力部１０、影響因子抽出部１１、同値類抽出部１２、代表テストケース抽出部１３、テストケース生成部１４、記憶部１５、テストケース結合部１６および出力部１７を有する。テストケース生成装置１は、テスト対象のプログラムにおけるモジュール単位のテストケース１０Ａ、１０Ｂの入力を受け付け、このテストケース１０Ａ、１０Ｂを組み合わせて新たなテストケース１０Ｄを出力する。ユーザは、テストケース生成装置１により出力されたテストケース１０Ｄに含まれる条件について充足可能（ＳＡＴ）／充足不可能（ＵＮＳＡＴ）についてのＳＡＴ検査を行うことで、テスト対象のプログラムのテストを行うことができる。
【００１１】
入力部１０は、通信インタフェースを介したデータ通信や記憶媒体に記憶されたデータの読み取りなどにより、組合せを行うテストケース１０Ａ、１０Ｂの入力を受け付ける。入力部１０は、受け付けたテストケース１０Ａ、１０Ｂを影響因子抽出部１１に出力する。
【００１２】
テストケース１０Ａ、１０Ｂは、テスト対象のプログラムをシンボリック実行等のプログラム解析技術を利用して解析し、モジュール単位で得られたテストケースのデータである。プログラム解析においては、プログラムの実行順に解析を行うことで、テスト対象のプログラムで呼び出されて処理が実行されるモジュールの実行順序に沿ってテストケース１０Ａ、１０Ｂが得られる。なお、本実施形態では、テストケース１０Ａがテストケース１０Ｂよりも先に呼び出される処理のモジュールにかかるテストケースであるものとする。例えば、テストケース１０Ａ、１０Ｂには、テスト対象のプログラムにおいて呼び出される順序を示す識別子などが付されていてもよい。
【００１３】
影響因子抽出部１１は、入力部１０が受け付けたテストケース１０Ａ、１０Ｂを解析し、テストケース１０Ａおよびテストケース１０Ｂに共通する影響因子である共通変数を抽出する。影響因子抽出部１１は、抽出した共通変数を識別子などを付与して記憶部１５の影響因子テーブル１５Ａに格納する。影響因子テーブル１５Ａは、テストケース１０Ａおよびテストケース１０Ｂに共通する影響因子として抽出された共通変数を格納するテーブルデータである。
【００１４】
図２は、影響因子の抽出にかかる処理の一例を示すフローチャートである。図２に示すように、処理が開始されると、影響因子抽出部１１は、テストケース１０Ａ、１０Ｂを解析してプログラムの共通変数を抽出する（Ｓ１）。影響因子抽出部１１は、テストケース１０Ａ、１０Ｂにおいて複数の共通変数がある場合には全ての共通変数を抽出する。
【００１５】
次いで、影響因子抽出部１１は、影響因子テーブル１５Ａを参照して影響因子テーブル１５Ａに登録済（処理済）の共通変数を確認し、Ｓ１において抽出した共通変数の中で未処理の共通変数があるか否かを判定する（Ｓ２）。
【００１６】
Ｓ１において抽出した共通変数の中に未処理の共通変数がある場合（Ｓ２：ＹＥＳ）、影響因子抽出部１１は、未処理の共通変数を影響因子テーブル１５Ａに格納し（Ｓ３）、Ｓ２へ処理を戻す。Ｓ１において抽出した共通変数の中に未処理の共通変数がない場合（Ｓ２：ＮＯ）、影響因子抽出部１１は、全ての共通変数を影響因子テーブル１５Ａに格納したことから、処理を終了する。
【００１７】
図３は、影響因子の抽出を説明する説明図である。図３に示すように、影響因子抽出部１１は、テストケース１０Ａ、１０Ｂを解析することで、互いに共通する変数（ｔｒｉ）を共通変数として抽出する。影響因子抽出部１１は、抽出した（ｔｒｉ）を、番号などの識別子を付与して影響因子テーブル１５Ａに格納する。
【００１８】
図１に戻り、同値類抽出部１２は、先に呼び出される処理のテストケース１０Ａより影響因子テーブル１５Ａに格納された共通変数を含む条件節を抽出する。次いで、同値類抽出部１２は、抽出した条件節より共通変数が同値となる同値類の出現パターンをテストケース１０Ａより抽出する。この出現パターンは、共通変数が同値となる条件節ごとにテストケース１０Ａを分割する条件（分割条件）となるパターン（条件パターン）であり、共通変数が取り得る値の個数分抽出される。すなわち、テストケース１０Ａは、共通変数が同値となる同値類ごとに分割される。
【００１９】
図４は、分割条件の抽出にかかる処理の一例を示すフローチャートである。図４に示すように、処理が開始されると、同値類抽出部１２は、先に呼び出される処理である第一引数のテストケース１０Ａ内に未処理のテストケースがあるか否かを判定する（Ｓ１１）。
【００２０】
例えば、テストケース１０Ａの先頭から順にテストケースを読み出して処理を行う際の、処理の開始時においては、未処理のテストケース（先頭）があることから、肯定判定（Ｓ１１：ＹＥＳ）となる。また、テストケース１０Ａの最後のテストケースまで処理を行った後においては、未処理のテストケースがないことから、否定判定（Ｓ１１：ＮＯ）となる。否定判定（Ｓ１１：ＮＯ）の場合は、テストケース１０Ａ内の全てのテストケースに対して処理済みであることから、同値類抽出部１２は分割条件の抽出にかかる処理を終了する。
【００２１】
肯定判定（Ｓ１１：ＹＥＳ）の場合、同値類抽出部１２は、処理対象の該当テストケース内に影響因子テーブル１５Ａ内の共通変数が出現する条件パターンを抽出する（Ｓ１２）。次いで、同値類抽出部１２は、Ｓ１２において抽出した条件パターンが記憶部１５の条件パターン情報１５Ｂに既に登録されているか否かを判定する（Ｓ１３）。条件パターン情報１５Ｂは、同値類抽出部１２により抽出された条件パターンを格納するテーブルデータ等である。
【００２２】
条件パターンが未登録である場合（Ｓ１３：ＮＯ）、同値類抽出部１２は、Ｓ１２において抽出された条件パターンを条件パターン情報１５Ｂに登録し（Ｓ１４）、Ｓ１１へ処理を戻してテストケース１０Ａ内の次のテストケースに対する処理を行う。
【００２３】
条件パターンが既に条件パターン情報１５Ｂに登録されている場合（Ｓ１３：ＹＥＳ）、同値類抽出部１２は、重複して登録することが無いようにＳ１２において抽出された条件パターンを記憶部１５に登録することなく、Ｓ１１へ処理を戻してテストケース１０Ａ内の次のテストケースに対する処理を行う。
【００２４】
図５は、分割条件の抽出を説明する説明図である。図５に示すように、同値類抽出部１２は、テストケース１０Ａより共通変数（ｔｒｉ）が出現する条件節を抽出し、共通変数が同値となる条件パターン（分割条件節１〜４）を記憶部１５に登録する。例えば、テストケース１０Ａからは、共通変数（ｔｒｉ）が出現する条件節より、共通変数が同値（ｔｒｉ＝”非三角形”，ｔｒｉ＝”正三角形”，ｔｒｉ＝”二等辺三角形”  ，ｔｒｉ＝”不等辺三角形”）となる４つの条件パターンが分割条件として抽出される。そして、抽出された分割条件は条件パターン情報１５Ｂに格納（登録）される。
【００２５】
図６は、同値類の抽出にかかる処理の一例を示すフローチャートである。図６に示すように、処理が開始されると、同値類抽出部１２は、条件パターン情報１５Ｂを参照し、条件パターン情報１５Ｂに登録されている条件パターン分の同値類情報１５Ｃを生成して記憶部１５に格納する（Ｓ２１）。同値類情報１５Ｃは、テストケース１０Ａを共通変数が同値となる同値類ごとに分割した情報であり、分割前の処理開始時においては空（ＮＵＬＬ）データが格納されている。
【００２６】
次いで、同値類抽出部１２は、条件パターン情報１５Ｂから条件パターンを読み出して未処理の条件パターンが条件パターン情報１５Ｂにあるか否かを判定する（Ｓ２２）。例えば、条件パターン情報１５Ｂの先頭から順に条件パターンを読み出して処理を行う際の、処理の開始時においては、未処理の条件パターンがあることから、肯定判定（Ｓ２２：ＹＥＳ）となる。また、条件パターン情報１５Ｂの最後の条件パターンまで処理を行った後においては、未処理の条件パターンがないことから、否定判定（Ｓ２２：ＮＯ）となる。否定判定（Ｓ２２：ＮＯ）の場合は、条件パターン情報１５Ｂ内の全ての条件パターンに対して処理済みであることから、同値類抽出部１２は同値類の抽出にかかる処理を終了する。
【００２７】
Ｓ２２において肯定判定（Ｓ２２：ＹＥＳ）の場合、同値類抽出部１２は、Ｓ１１と同様、先に呼び出される処理である第一引数のテストケース１０Ａ内に未処理のテストケースがあるか否かを判定する（Ｓ２３）。Ｓ２３において否定判定（Ｓ２３：ＮＯ）の場合は、テストケース１０Ａ内の全てのテストケースに対して処理済みであることから、同値類抽出部１２はＳ２２へ処理を戻す。
【００２８】
Ｓ２３において肯定判定（Ｓ２３：ＹＥＳ）の場合、同値類抽出部１２は、処理の該当条件パターンが該当テストケースに存在するか否かを判定する（Ｓ２４）。具体的には、同値類抽出部１２は、処理対象のテストケースにおいて条件パターン情報１５Ｂより読み出した条件パターンとマッチする部分の有無を確認する。
【００２９】
存在する場合（Ｓ２４：ＹＥＳ）、同値類抽出部１２は、該当テストケースを該当条件パターンに対応する同値類情報１５Ｃに格納し（Ｓ２５）、Ｓ２３へ処理を戻す。また、存在しない場合（Ｓ２４：ＮＯ）、同値類抽出部１２は、そのままＳ２３へ処理を戻す。
【００３０】
図７は、同値類の抽出を説明する説明図である。図７に示すように、同値類の抽出にかかる処理により、テストケース１０Ａは、共通変数が同値となる同値類（条件パターン）ごとの同値類情報１５Ｃに分割される。例えば、共通変数が同値（ｔｒｉ＝”非三角形”，ｔｒｉ＝”正三角形”，ｔｒｉ＝”二等辺三角形”ｔｒｉ＝”不等辺三角形”）となる４つの条件パターンごとの同値類情報１５Ｃに分割される。
【００３１】
図１に戻り、代表テストケース抽出部１３は、テストケース１０Ａより抽出された出現パターンごとに、少なくとも１つの代表とするテストケース（代表テストケース）を抽出する。具体的には、代表テストケース抽出部１３は、条件パターンごとの同値類情報１５Ｃより少なくとも１つずつ代表テストケースを抽出する。代表テストケース抽出部１３は、抽出した代表テストケースをテストケース生成部１４へ出力する。
【００３２】
テストケース生成部１４は、代表テストケース抽出部１３より抽出された条件パターンごとの代表テストケースを合わせて新たなテストケース１０Ｃを生成する。テストケース生成部１４は、テストケース１０Ａに代わって生成したテストケース１０Ｃと、テストケース１０Ｂとをテストケース結合部１６に出力する。
【００３３】
図８は、代表テストケースの抽出にかかる処理の一例を示すフローチャートである。図８に示すように、処理が開始されると、代表テストケース抽出部１３は、同値類情報１５Ｃを読み出し、未処理の同値類情報１５Ｃがあるか否かを判定する（Ｓ３１）。全ての同値類情報１５Ｃを処理済みである場合（Ｓ３１：ＮＯ）、代表テストケース抽出部１３は、代表テストケースの抽出にかかる処理を終了する。
【００３４】
未処理の同値類情報１５Ｃがある場合（Ｓ３１：ＹＥＳ）、代表テストケース抽出部１３は、当該未処理の同値類情報１５Ｃからテストケースを１つ選び（例えば先頭のもの）、代表テストケースとして抽出する（Ｓ３２）。次いで、代表テストケース抽出部１３は、抽出された代表テストケースを新たなテストケース１０Ｃに追加してＳ３１へ処理を戻す。
【００３５】
図９は、代表テストケースの抽出を説明する説明図である。図９に示すように、代表テストケースの抽出にかかる処理により、条件パターンごとの同値類情報１５Ｃより代表テストケース（代表テストケース１〜４）が抽出される。そして、抽出された代表テストケースを合わせて新たなテストケース１０Ｃが生成される。
【００３６】
図１に戻り、記憶部１５は、例えばメモリなどであり、影響因子テーブル１５Ａ、条件パターン情報１５Ｂおよび同値類情報１５Ｃを記憶する。
【００３７】
テストケース結合部１６は、テストケース１０Ａにおいて出現パターンごとに抽出された代表テストケースによるテストケース１０Ｃと、テストケース１０Ｂとを組み合わせて新たなテストケース１０Ｄを生成する。このテストケース結合部１６における組合せは、例えば、結合カバレッジ基準に即してテストケース同士を組み合わせる公知の手法を用いるものとする。
【００３８】
図１０は、テストケースの生成にかかる処理の一例を示すフローチャートである。図１１は、テストケースの生成を説明する説明図である。
【００３９】
図１０に示すように、処理が開始されると、テストケース生成部１４は、テストケース１０Ａより生成された新たなテストケース１０Ｃと、テストケース１０Ａより後に呼び出される処理（第２引数）であるテストケース１０Ｂとをテストケース結合部１６へ渡す（Ｓ４１）。次いで、テストケース結合部１６は、テストケース１０Ｃと、テストケース１０Ｂとの組み合せを行い、組み合わされたテストケース１０Ｄを取得する（Ｓ４２）。これにより、図１１に示すように、テストケース１０Ｃおよびテストケース１０Ｂを組み合わせた新たなテストケース１０Ｄを得ることができる。
【００４０】
出力部１７は、テストケース結合部１６により結合され、新たに生成されたテストケース１０Ｄを出力するインターフェースである。例えば、出力部１７は、テストケース１０ＤをＳＡＴ検査を行う装置などに出力する。これにより、ユーザは、テスト対象のプログラムのテストを実施することができる。
【００４１】
図１２は、実施形態にかかるテストケース生成装置１のテストケース生成を説明する説明図である。図１２に示すように、テストケース生成装置１は、組み合わせを行うテストケース１０Ａと、テストケース１０Ｂとを受け付け、互いに共通する共通変数を抽出する（Ｓ１〜Ｓ３）。次いで、テストケース生成装置１は、テストケース１０Ａにおいて、抽出された共通変数を含む条件節の出現パターン（同値類）を抽出し、テストケース１０Ａを分割する（Ｓ１１〜Ｓ２５）。次いで、テストケース生成装置１は、テストケース１０Ａにおいて抽出された出現パターンごとに、少なくとも１つの代表テストケースを抽出して新たなテストケース１０Ｃを得る（Ｓ３１〜Ｓ３３）。次いで、テストケース生成装置１は、テストケース１０Ｃとテストケース１０Ｂとを組み合わせて新たなテストケース１０Ｄを生成する（Ｓ４１〜Ｓ４２）。
【００４２】
このように、テストケース生成装置１は、テストとして必要な組み合わせに着目し、テストケース１０Ａより代表テストケースを抽出してテストケース１０Ｃを求める。そして、テストケース生成装置１は、テストケース１０Ｃとテストケース１０Ｂとを組み合わせてテストケース１０Ｄを生成するので、ＳＡＴ検査の対象を大幅に削減したテストケース１０Ｄを生成することができる。このため、ユーザは、新たなテストケース１０Ｄにより効率的にテストを実施することができ、より大きなプログラムに対するテストを容易に実施できる。
【００４３】
なお、上述した実施形態では、テストケース１０Ａ、１０Ｂにおける共通変数が１つの場合を例示したが、共通変数の個数は複数であってもよい。
【００４４】
図１３は、影響因子の抽出を説明する説明図である。図１３に示すように、影響因子抽出部１１は、テストケース１０Ａ’、１０Ｂ’に含まれる複数の共通変数（ｘ，ｙ）を抽出し、影響因子テーブル１５Ａに格納してもよい。
【００４５】
図１４は、分割条件の抽出を説明する説明図である。影響因子テーブル１５Ａに複数の共通変数（ｘ，ｙ）がある場合、図１４に示すように、同値類抽出部１２は、共通変数（ｘとｙ）が出現する条件節の条件パターンを抽出して条件パターン情報１５Ｂに格納する。
【００４６】
図１５は、同値類の抽出を説明する説明図である。図１５に示すように、共通変数が複数の場合も同様に、同値類の抽出にかかる処理により、テストケース１０Ａ’は、共通変数が同値となる同値類（条件パターン）ごとの同値類情報１５Ｃに分割される。
【００４７】
図１６は、代表テストケースの抽出を説明する説明図である。図１６に示すように、共通変数が複数の場合も同様に、代表テストケースの抽出にかかる処理により、条件パターンごとの同値類情報１５Ｃより代表テストケース（代表テストケース１〜４）が抽出される。そして、抽出された代表テストケースを合わせて新たなテストケース１０Ｃ’が生成される。
【００４８】
なお、代表テストケース抽出部１３における代表テストケースの抽出は、任意に行ってもよいが、テストケースに含まれる条件節の数に着目して抽出してもよい。例えば、同値類情報１５Ｃに含まれるテストケースの中からより条件節の数の少ない（短い）テストケースを代表テストケースとして抽出してもよい。例えば、図示例における（同値類１）では、「（ｘ＞０）  ａｎｄ  （ａ＝１）  ａｎｄ  （ｂ＜０）  ａｎｄ  ｎｏｔ（ｃ＝１）」、「（ｘ＞０）  ａｎｄ  （ａ＞１）  ａｎｄ  （ｂ＝１）」…の中から条件節の数の少ない（短い）「（ｘ＞０）  ａｎｄ  （ａ＞１）  ａｎｄ  （ｂ＝１）」を代表テストケースとしている。このように、条件節の数の少ない（短い）テストケースを代表テストケースとする場合には、ＳＡＴ検査時における処理の負荷を軽減することができる。
【００４９】
なお、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００５０】
また、テストケース生成装置１で行われる各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、またはワイヤードロジックによるハードウエア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。また、テストケース生成装置１で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
【００５１】
ところで、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施形態と同様の機能を有するプログラムを実行するコンピュータ（ハードウエア）の一例を説明する。図１７は、実施形態にかかるテストケース生成装置１のハードウエア構成を例示するブロック図である。
【００５２】
図１７に示すように、テストケース生成装置１は、各種演算処理を実行するＣＰＵ１０１と、データ入力を受け付ける入力装置１０２と、モニタ１０３と、スピーカ１０４とを有する。また、テストケース生成装置１は、記憶媒体からプログラム等を読み取る媒体読取装置１０５と、各種装置と接続するためのインタフェース装置１０６と、有線または無線により外部機器と通信接続するための通信装置１０７とを有する。また、テストケース生成装置１は、各種情報を一時記憶するＲＡＭ１０８と、ハードディスク装置１０９とを有する。また、テストケース生成装置１内の各部（１０１〜１０９）は、バス１１０に接続される。
【００５３】
ハードディスク装置１０９には、上記の実施形態で説明した入力部１０、影響因子抽出部１１、同値類抽出部１２、代表テストケース抽出部１３、テストケース生成部１４、テストケース結合部１６および出力部１７における各種の処理を実行するためのプログラム１１１が記憶される。また、ハードディスク装置１０９には、プログラム１１１が参照する各種データ１１２（影響因子テーブル１５Ａ、条件パターン情報１５Ｂおよび同値類情報１５Ｃなど）が記憶される。入力装置１０２は、例えば、テストケース生成装置１の操作者から操作情報の入力を受け付ける。モニタ１０３は、例えば、操作者が操作する各種画面を表示する。インタフェース装置１０６は、例えば印刷装置等が接続される。通信装置１０７は、ＬＡＮ（Local  Area  Network）等の通信ネットワークと接続され、通信ネットワークを介した外部機器との間で各種情報をやりとりする。
【００５４】
ＣＰＵ１０１は、ハードディスク装置１０９に記憶されたプログラム１１１を読み出して、ＲＡＭ１０８に展開して実行することで、各種の処理を行う。なお、プログラム１１１は、ハードディスク装置１０９に記憶されていなくてもよい。例えば、テストケース生成装置１が読み取り可能な記憶媒体に記憶されたプログラム１１１を読み出して実行するようにしてもよい。テストケース生成装置１が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこのプログラム１１１を記憶させておき、テストケース生成装置１がこれらからプログラム１１１を読み出して実行するようにしてもよい。
【符号の説明】
【００５５】
１…テストケース生成装置
１０…入力部
１０Ａ、１０Ａ’、１０Ｂ、１０Ｂ’、１０Ｃ、１０Ｃ’、１０Ｄ…テストケース
１１…影響因子抽出部
１２…同値類抽出部
１３…代表テストケース抽出部
１４…テストケース生成部
１５…記憶部
１５Ａ…影響因子テーブル
１５Ｂ…条件パターン情報
１５Ｃ…同値類情報
１６…テストケース結合部
１７…出力部
１０１…ＣＰＵ
１０２…入力装置
１０３…モニタ
１０４…スピーカ
１０５…媒体読取装置
１０６…インタフェース装置
１０７…通信装置
１０８…ＲＡＭ
１０９…ハードディスク装置
１１０…バス
１１１…プログラム
１１２…各種データ
【図１】
0006658297.tif 000002
【図２】
0006658297.tif 000003
【図３】
0006658297.tif 000004
【図４】
0006658297.tif 000005
【図５】
0006658297.tif 000006
【図６】
0006658297.tif 000007
【図７】
0006658297.tif 000008
【図８】
0006658297.tif 000009
【図９】
0006658297.tif 000010
【図１０】
0006658297.tif 000011
【図１１】
0006658297.tif 000012
【図１２】
0006658297.tif 000013
【図１３】
0006658297.tif 000014
【図１４】
0006658297.tif 000015
【図１５】
0006658297.tif 000016
【図１６】
0006658297.tif 000017
【図１７】
0006658297.tif 000018