(57)【要約】      （修正有）【課題】  信頼性の高いコンピュータプログラムのテストを行うために必要となるテストケースを生成する方法を提供する。【解決手段】  コンピュータプログラムの入力データ項目である複数のファクターがとり得る入力データの同値の組合せに基づいてテストケースを生成するテストケース生成方法において、単独で処理フローの分岐点となるファクターである独立系ファクターの同値を含む独立系ファクター情報と、複数で処理フローの分岐点となるファクターである依存系ファクターの同値を含む依存系ファクター情報とを取得するステップＳ４０１と、依存系ファクター情報に基づいて、依存系ファクターの同値の組合せを生成し、独立系ファクター情報に基づいて、独立系ファクターの同値の組合せを生成するステップＳ４０２と、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成するステップＳ４０３とを有する。【選択図】  図１３
2005284484.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータプログラムの入力データ項目である複数のファクターがとり得る入力データのうち所定の特性を有している入力データである同値の組合せに基づいて、前記コンピュータプログラムをテストするためのテストケースを生成するテストケース生成方法において、
単独で処理フローの分岐点となるファクターである独立系ファクターの同値を少なくとも含む独立系ファクター情報と、複数で処理フローの分岐点となるファクターである依存系ファクターの同値を少なくとも含む依存系ファクター情報とを取得するステップと、
取得された依存系ファクター情報に基づいて、依存系ファクターの同値の組合せを生成するステップと、
取得された独立系ファクター情報に基づいて、独立系ファクターの同値の組合せを生成するステップと、
生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成するステップと
を有することを特徴とするテストケース生成方法。
【請求項２】
前記依存系ファクターの同値の組合せを生成するステップは、
相互に依存関係にある依存系ファクターのグループを生成するステップと、
生成されたグループ毎に依存系ファクターの同値の網羅的な組合せを生成するステップと、
ＣＦＤ技法を用いて、生成された依存系ファクターの同値の組合せを結合するステップと
を有する、請求項１に記載のテストケース生成方法。
【請求項３】
前記独立系ファクターの同値の組合せを生成するステップは、ＣＦＤ技法を用いて、独立系ファクターの同値の組合せを生成する、請求項１又は請求項２に記載のテストケース生成方法。
【請求項４】
前記テストケースを生成するステップは、ＣＦＤ技法を用いて、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成する、請求項１乃至請求項３の何れかに記載のテストケース生成方法。
【請求項５】
ファクターの同値を少なくとも含むファクター情報を格納するファクター情報データベースから所定のファクター情報を検索するステップと、
検索されたファクター情報と、前記取得された独立系ファクター情報及び／又は依存系ファクター情報とを比較するステップと、
比較した結果に基づいて、前記検索されたファクター情報の同値と前記取得された独立系ファクター情報及び／又は依存系ファクター情報の同値とが異なるか否かを判定するステップと、
異なると判定された場合、異なる同値に関する同値アンマッチ情報を出力するステップと
をさらに有する、請求項１乃至請求項４の何れかに記載のテストケース生成方法。
【請求項６】
前記取得された依存系ファクター情報及び前記取得された独立系ファクター情報には、ファクターの同値が処理フローを終了させるための同値である無効系同値であるか否かを示す情報が含まれており、
前記依存系ファクターの同値の組合せを生成するステップ及び前記独立系ファクターの同値の組合せを生成するステップは、無効系同値を含む同値の組合せを生成し、
前記テストケースを生成するステップは、無効系同値を含む同値の組合せを用いて生成されたテストケースであるか否かを示す情報を付加したテストケースを生成する、請求項１乃至請求項５の何れかに記載のテストケース生成方法。
【請求項７】
コンピュータプログラムの入力データ項目である複数のファクターがとり得る入力データのうち所定の特性を有している入力データである同値の組合せに基づいて、前記コンピュータプログラムをテストするためのテストケースを生成するように構成されているテストケース生成装置において、
単独で処理フローの分岐点となるファクターである独立系ファクターの同値を少なくとも含む独立系ファクター情報と、複数で処理フローの分岐点となるファクターである依存系ファクターの同値を少なくとも含む依存系ファクター情報とを取得するファクター情報取得手段と、
当該ファクター情報取得手段によって取得された依存系ファクター情報に基づいて、依存系ファクターの同値の組合せを生成する依存系同値組合せ生成手段と、
前記ファクター情報取得手段によって取得された独立系ファクター情報に基づいて、独立系ファクターの同値の組合せを生成する独立系同値組合せ生成手段と、
前記依存系同値組合せ生成手段によって生成された依存系ファクターの同値の組合せ及び前記独立系同値組合せ生成手段によって生成された独立系ファクターの同値の組合せを結合してテストケースを生成するテストケース生成手段と
を備えることを特徴とするテストケース生成装置。
【請求項８】
前記依存系ファクター同値組合せ生成手段は、
相互に依存関係にある依存系ファクターのグループを生成し、生成されたグループ毎に依存系ファクターの同値の網羅的な組合せを生成し、ＣＦＤ技法を用いて、生成された依存系ファクターの同値の組合せを結合するように構成されている、請求項７に記載のテストケース生成装置。
【請求項９】
前記独立系ファクター同値組合せ生成手段は、ＣＦＤ技法を用いて、独立系ファクターの同値の組合せを生成するように構成されている、請求項７又は請求項８に記載のテストケース生成装置。
【請求項１０】
前記テストケース生成手段は、ＣＦＤ技法を用いて、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成するように構成されている、請求項７乃至請求項９の何れかに記載のテストケース生成装置。
【請求項１１】
ファクターの同値を少なくとも含むファクター情報を格納するファクター情報データベースから所定のファクター情報を検索するファクター情報検索手段と、
当該ファクター情報検索手段によって検索されたファクター情報と、前記ファクター情報取得手段によって取得された独立系ファクター情報及び／又は依存系ファクター情報とを比較するファクター情報比較手段と、
当該ファクター情報比較手段による比較の結果に基づいて、前記検索されたファクター情報の同値と前記取得された独立系ファクター情報及び／又は依存系ファクター情報の同値とが異なるか否かを判定する判定手段と、
当該判定手段によって異なると判定された場合、異なる同値に関する同値アンマッチ情報を出力する出力手段と
をさらに備える、請求項７乃至請求項１０の何れかに記載のテストケース生成装置。
【請求項１２】
前記取得された依存系ファクター情報及び前記取得された独立系ファクター情報には、ファクターの同値が処理フローを終了させるための同値である無効系同値であるか否かを示す情報が含まれており、
前記依存系同値組合せ生成手段及び前記独立系同値組合せ生成手段は、無効系同値を含む同値の組合せを生成するように構成され、
前記テストケース生成手段は、無効系同値を含む同値の組合せを用いて生成されたテストケースであるか否かを示す情報を付加したテストケースを生成するように構成されている、請求項７乃至請求項１１の何れかに記載のテストケース生成装置。
【請求項１３】
コンピュータに、テスト対象コンピュータプログラムの入力データ項目である複数のファクターがとり得る入力データのうち所定の特性を有している入力データである同値の組合せに基づいて、前記テスト対象コンピュータプログラムをテストするためのテストケースを生成させるためのコンピュータプログラムにおいて、
前記コンピュータに、
単独で処理フローの分岐点となるファクターである独立系ファクターの同値を少なくとも含む独立系ファクター情報と、複数で処理フローの分岐点となるファクターである依存系ファクターの同値を少なくとも含む依存系ファクター情報とを取得させる手順と、
取得された依存系ファクター情報に基づいて、依存系ファクターの同値の組合せを生成させる手順と、
取得された独立系ファクター情報に基づいて、独立系ファクターの同値の組合せを生成させる手順と、
生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成させる手順と
を実行させるためのコンピュータプログラム。
【請求項１４】
前記依存系ファクターの同値の組合せを生成させる手順は、
前記コンピュータに、相互に依存関係にある依存系ファクターのグループを生成させ、生成されたグループ毎に依存系ファクターの同値の網羅的な組合せを生成させ、ＣＦＤ技法を用いて、生成された依存系ファクターの同値の組合せを結合させる、請求項１３に記載のコンピュータプログラム。
【請求項１５】
前記独立系ファクターの同値の組合せを生成させる手順は、
前記コンピュータに、ＣＦＤ技法を用いて、独立系ファクターの同値の組合せを生成させる、請求項１３又は請求項１４に記載のコンピュータプログラム。
【請求項１６】
前記テストケースを生成させる手順は、
前記コンピュータに、ＣＦＤ技法を用いて、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成させる、請求項１３乃至請求項１５の何れかに記載のコンピュータプログラム。
【請求項１７】
前記コンピュータに、
ファクターの同値を少なくとも含むファクター情報を格納するファクター情報データベースから所定のファクター情報を検索させる手順と、
検索されたファクター情報と、前記取得された独立系ファクター情報及び／又は依存系ファクター情報とを比較させる手順と、
比較の結果に基づいて、前記検索されたファクター情報の同値と前記取得された独立系ファクター情報及び／又は依存系ファクター情報の同値とが異なるか否かを判定させる手順と、
異なると判定された場合、異なる同値に関する同値アンマッチ情報を出力させる手順と
をさらに実行させるための請求項１３乃至請求項１６の何れかに記載のコンピュータプログラム。
【請求項１８】
前記取得された依存系ファクター情報及び前記取得された独立系ファクター情報には、ファクターの同値が処理フローを終了させるための同値である無効系同値であるか否かを示す情報が含まれており、
前記依存系ファクターの同値の組合せを生成する手順及び前記独立系ファクターの同値の組合せを生成する手順は、前記コンピュータに、無効系同値を含む同値の組合せを生成させ、
前記テストケースを生成する手順は、前記コンピュータに、無効系同値を含む同値の組合せを用いて生成されたテストケースであるか否かを示す情報を付加したテストケースを生成させる、請求項１３乃至請求項１７の何れかに記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムが所望の処理を実行するか否かを判定するためのテストに用いられるテストケースを効率良く生成することができるテストケース生成方法、その方法を実施するためのテストケース生成装置、及びその方法をコンピュータに実施させるためのコンピュータプログラムに関する。
【背景技術】
【０００２】
コンピュータプログラムの品質を検証するために、当該コンピュータプログラムが所望の処理を実行することができるか否かを判定するためのテストが行われる。信頼性の高いテストを行うためには、検証対象項目を漏れなくカバーした適切なテストケースを作成しなければならない。しかし、時間及び費用の都合上、実施することができるテストケースの数は限られてくる。そこで、いかにして少ないテストケースで検証対象項目を漏れなくカバーできるのかが問題となる。
【０００３】
非特許文献１では、テストケースの数を合理的に減少させる方法として、以下の３つのものが提案されている。
【０００４】
第一の手法は「同値分割法」である。同値分割法とは、「入力データを１つ１つ識別する代わりに同じ特性を持った部分集合としてとらえ、その部分集合に対して一つのテストを行う方法」をいう。ここで、上述したような部分集合を「同値」と呼び、コンピュータプログラムへの入力データ項目（以下、ファクターと言う）を同値に分けることを「同値分割」と呼ぶ。
【０００５】
この同値分割法では、コンピュータプログラムの仕様に基づいて、ファクターの値の無限の組合せが、有効な同値（コンピュータプログラムの仕様により正しい入力範囲として定義された部分集合）と無効な同値（有効な同値以外の部分集合であって、コンピュータプログラムの仕様により正しくない入力範囲として定義されたもの）とに集約される。そして、この同値のうちの特定の一つの入力に対してコンピュータプログラムが正しく動作した場合、その同値内の他の入力に対しても同様に正しく動作することが確認されたものとする。これにより、すべての入力データそれぞれについてコンピュータプログラムが正しく動作するか否かを確認する場合と比べて、少ないテストケースとすることができる。
【０００６】
また、第二の手法は「原因結果グラフ技法」である。原因結果グラフ技法とは、「テスト項目の設計において入力間の組合せを合理的に減少させ、かつテストの網羅性を維持する技法」をいう。より具体的には、同値分割を行った後に、コンピュータプログラムの各出力と論理的な関係を共有する入力同値のセットを求め、その入力同値（原因）と出力（結果）との関係をブール代数により表現して原因結果グラフを求める。そして、その原因結果グラフを表形式に表したデシジョンテーブルを作成し、そのデシジョンテーブルに基づいてテストケースを得る。このようにデシジョンテーブルにテスト項目をまとめることによりテスト項目間の重複を容易に確認することができるため、テストケースの数を抑制することができる。
【０００７】
さらに、第三の手法は「ＣＦＤ（Case Flow Diagram：原因流れ図）技法」である。このＣＦＤ技法は、前述した原因結果グラフ技法を改良したものであり、同値分割についても図式で表現することにより、同値間の関係をより正確に表現することができる方法である。このようにして表現された同値間の関係に基づいて必要なテストケースを抽出する。ここで、ＣＦＤ技法の場合、原因結果グラフ技法の場合と異なり、同値間の相互依存のテストをテストケースに含めない。これにより、原因結果グラフ技法と比べて、テストケースの数をより少なくすることができる。
【非特許文献１】松本正雄，小山田正史，松尾谷徹，「ソフトウェア開発・検証技法」，電子情報通信学会，1997年，p.139-155
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、ファクターは次の２種類のものに分けることがある。一つは単独で処理フローに影響を与える、すなわち処理フローの分岐点となるファクター（以下、独立系ファクターという）で、もう一つは複数で処理フローの分岐点となるファクター（依存系ファクターという）である。以下、独立系ファクターとその他のファクターとの間の関係を独立関係と呼び、依存系ファクター間の関係を依存関係と呼ぶことにする。
【０００９】
前述したとおり、ＣＦＤ技法の場合、同値間の相互依存のテストをテストケースに含めていない。これは、すべてのファクター間には独立関係が成立していることを前提としているためである。したがって、ＣＦＤ技法の場合、ファクター間に依存関係が成立している場合については考慮していない。しかしながら、通常の場合では依存関係が成立している依存系ファクターが存在していることがほとんどであり、その依存系ファクターを独立系ファクターとして処理した場合、検証すべき同値の組合せを見落とすおそれがある。そのため、ＣＦＤ技法を用いてテストケースを生成すると、テストケースの数を抑制することができる一方で、必要なテストケースが欠落するという問題があった。
【００１０】
また、すべてのファクターが独立系ファクターである、またはすべてのファクターが依存系ファクターであるということは極めて稀であり、通常では、独立系ファクターと依存系ファクターとが混在している。しかしながら、この点を考慮したテストケース生成方法はこれまで提案されておらず、その結果必要なテストケースを効率良く生成することができないという問題があった。
【００１１】
本発明は斯かる事情に鑑みてなされたものであり、その目的は、ファクター間の独立関係及び依存関係の双方に対応したテストケースを生成することにより、必要なテストケースを効率良く生成することができるテストケース生成方法、その方法を実施するためのテストケース生成装置、及びその方法をコンピュータに実施させるためのコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
前述した課題を解決するために、本発明に係るテストケース生成方法は、コンピュータプログラムの入力データ項目である複数のファクターがとり得る入力データのうち所定の特性を有している入力データである同値の組合せに基づいて、前記コンピュータプログラムをテストするためのテストケースを生成するテストケース生成方法において、単独で処理フローの分岐点となるファクターである独立系ファクターの同値を少なくとも含む独立系ファクター情報と、複数で処理フローの分岐点となるファクターである依存系ファクターの同値を少なくとも含む依存系ファクター情報とを取得するステップと、取得された依存系ファクター情報に基づいて、依存系ファクターの同値の組合せを生成するステップと、取得された独立系ファクター情報に基づいて、独立系ファクターの同値の組合せを生成するステップと、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成するステップとを有することを特徴とする。
【００１３】
前記発明に係るテストケース生成方法において、前記依存系ファクターの同値の組合せを生成するステップは、相互に依存関係にある依存系ファクターのグループを生成するステップと、生成されたグループ毎に依存系ファクターの同値の網羅的な組合せを生成するステップと、ＣＦＤ技法を用いて、生成された依存系ファクターの同値の組合せを結合するステップとを有することが好ましい。
【００１４】
また、前記発明に係るテストケース生成方法において、前記独立系ファクターの同値の組合せを生成するステップは、ＣＦＤ技法を用いて、独立系ファクターの同値の組合せを生成することが好ましい。
【００１５】
また、前記発明に係るテストケース生成方法において、前記テストケースを生成するステップは、ＣＦＤ技法を用いて、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成することが好ましい。
【００１６】
また、前記発明に係るテストケース生成方法において、ファクターの同値を少なくとも含むファクター情報を格納するファクター情報データベースから所定のファクター情報を検索するステップと、検索されたファクター情報と、前記取得された独立系ファクター情報及び／又は依存系ファクター情報とを比較するステップと、比較した結果に基づいて、前記検索されたファクター情報の同値と前記取得された独立系ファクター情報及び／又は依存系ファクター情報の同値とが異なるか否かを判定するステップと、異なると判定された場合、異なる同値に関する同値アンマッチ情報を出力するステップとをさらに有することが好ましい。
【００１７】
さらに、前記発明に係るテストケース生成方法において、前記取得された依存系ファクター情報及び前記取得された独立系ファクター情報には、ファクターの同値が処理フローを終了させるための同値である無効系同値であるか否かを示す情報が含まれており、前記依存系ファクターの同値の組合せを生成するステップ及び前記独立系ファクターの同値の組合せを生成するステップは、無効系同値を含む同値の組合せを生成し、前記テストケースを生成するステップは、無効系同値を含む同値の組合せを用いて生成されたテストケースであるか否かを示す情報を付加したテストケースを生成することが好ましい。
【００１８】
また、本発明に係るテストケース生成装置は、コンピュータプログラムの入力データ項目である複数のファクターがとり得る入力データのうち所定の特性を有している入力データである同値の組合せに基づいて、前記コンピュータプログラムをテストするためのテストケースを生成するように構成されているテストケース生成装置において、単独で処理フローの分岐点となるファクターである独立系ファクターの同値を少なくとも含む独立系ファクター情報と、複数で処理フローの分岐点となるファクターである依存系ファクターの同値を少なくとも含む依存系ファクター情報とを取得するファクター情報取得手段と、当該ファクター情報取得手段によって取得された依存系ファクター情報に基づいて、依存系ファクターの同値の組合せを生成する依存系同値組合せ生成手段と、前記ファクター情報取得手段によって取得された独立系ファクター情報に基づいて、独立系ファクターの同値の組合せを生成する独立系同値組合せ生成手段と、前記依存系同値組合せ生成手段によって生成された依存系ファクターの同値の組合せ及び前記独立系同値組合せ生成手段によって生成された独立系ファクターの同値の組合せを結合してテストケースを生成するテストケース生成手段とを備えることを特徴とする。
【００１９】
前記発明に係るテストケース生成装置において、前記依存系ファクター同値組合せ生成手段は、相互に依存関係にある依存系ファクターのグループを生成し、生成されたグループ毎に依存系ファクターの同値の網羅的な組合せを生成し、ＣＦＤ技法を用いて、生成された依存系ファクターの同値の組合せを結合するように構成されていることが好ましい。
【００２０】
また、前記発明に係るテストケース生成装置において、前記独立系ファクター同値組合せ生成手段は、ＣＦＤ技法を用いて、独立系ファクターの同値の組合せを生成するように構成されていることが好ましい。
【００２１】
また、前記発明に係るテストケース生成装置において、前記テストケース生成手段は、ＣＦＤ技法を用いて、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成するように構成されていることが好ましい。
【００２２】
また、前記発明に係るテストケース生成装置において、ファクターの同値を少なくとも含むファクター情報を格納するファクター情報データベースから所定のファクター情報を検索するファクター情報検索手段と、当該ファクター情報検索手段によって検索されたファクター情報と、前記ファクター情報取得手段によって取得された独立系ファクター情報及び／又は依存系ファクター情報とを比較するファクター情報比較手段と、当該ファクター情報比較手段による比較の結果に基づいて、前記検索されたファクター情報の同値と前記取得された独立系ファクター情報及び／又は依存系ファクター情報の同値とが異なるか否かを判定する判定手段と、当該判定手段によって異なると判定された場合、異なる同値に関する同値アンマッチ情報を出力する出力手段とをさらに備えることが好ましい。
【００２３】
さらに、前記発明に係るテストケース生成装置において、前記取得された依存系ファクター情報及び前記取得された独立系ファクター情報には、ファクターの同値が処理フローを終了させるための同値である無効系同値であるか否かを示す情報が含まれており、前記依存系同値組合せ生成手段及び前記独立系同値組合せ生成手段は、無効系同値を含む同値の組合せを生成するように構成され、前記テストケース生成手段は、無効系同値を含む同値の組合せを用いて生成されたテストケースであるか否かを示す情報を付加したテストケースを生成するように構成されていることが好ましい。
【００２４】
また、本発明に係るコンピュータプログラムは、コンピュータに、テスト対象コンピュータプログラムの入力データ項目である複数のファクターがとり得る入力データのうち所定の特性を有している入力データである同値の組合せに基づいて、前記テスト対象コンピュータプログラムをテストするためのテストケースを生成させるためのコンピュータプログラムにおいて、前記コンピュータに、単独で処理フローの分岐点となるファクターである独立系ファクターの同値を少なくとも含む独立系ファクター情報と、複数で処理フローの分岐点となるファクターである依存系ファクターの同値を少なくとも含む依存系ファクター情報とを取得させる手順と、取得された依存系ファクター情報に基づいて、依存系ファクターの同値の組合せを生成させる手順と、取得された独立系ファクター情報に基づいて、独立系ファクターの同値の組合せを生成させる手順と、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成させる手順とを実行させる。
【００２５】
前記発明に係るコンピュータプログラムにおいて、前記依存系ファクターの同値の組合せを生成させる手順は、前記コンピュータに、相互に依存関係にある依存系ファクターのグループを生成させ、生成されたグループ毎に依存系ファクターの同値の網羅的な組合せを生成させ、ＣＦＤ技法を用いて、生成された依存系ファクターの同値の組合せを結合させることが好ましい。
【００２６】
また、前記発明に係るコンピュータプログラムにおいて、前記独立系ファクターの同値の組合せを生成させる手順は、前記コンピュータに、ＣＦＤ技法を用いて、独立系ファクターの同値の組合せを生成させることが好ましい。
【００２７】
また、前記発明に係るコンピュータプログラムにおいて、前記テストケースを生成させる手順は、前記コンピュータに、ＣＦＤ技法を用いて、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成させることが好ましい。
【００２８】
また、前記発明に係るコンピュータプログラムにおいて、前記コンピュータに、ファクターの同値を少なくとも含むファクター情報を格納するファクター情報データベースから所定のファクター情報を検索させる手順と、検索されたファクター情報と、前記取得された独立系ファクター情報及び／又は依存系ファクター情報とを比較させる手順と、比較の結果に基づいて、前記検索されたファクター情報の同値と前記取得された独立系ファクター情報及び／又は依存系ファクター情報の同値とが異なるか否かを判定させる手順と、異なると判定された場合、異なる同値に関する同値アンマッチ情報を出力させる手順とをさらに実行させることが好ましい。
【００２９】
さらに、前記発明に係るコンピュータプログラムにおいて、前記取得された依存系ファクター情報及び前記取得された独立系ファクター情報には、ファクターの同値が処理フローを終了させるための同値である無効系同値であるか否かを示す情報が含まれており、前記依存系ファクターの同値の組合せを生成する手順及び前記独立系ファクターの同値の組合せを生成する手順は、前記コンピュータに、無効系同値を含む同値の組合せを生成させ、前記テストケースを生成する手順は、前記コンピュータに、無効系同値を含む同値の組合せを用いて生成されたテストケースであるか否かを示す情報を付加したテストケースを生成させることが好ましい。
【発明の効果】
【００３０】
本発明のテストケース生成方法、その方法を実施するためのテストケース生成装置、及びその方法をコンピュータに実施させるためのコンピュータプログラムは、信頼性の高いコンピュータプログラムのテストを行うために必要なテストケースを生成することができ、しかもそのテストケースの数を抑制することができる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の実施の形態について図面を参照しながら詳述する。
【００３２】
（実施の形態１）
図１は、本発明の実施の形態１に係るテストケース生成装置の構成を示すブロック図である。図１に示すように、テストケース生成装置はＣＰＵ１０を備えており、ＣＰＵ１０はバスを介して後述する各ハードウェアと接続されている。そして、ＣＰＵ１０は、それらのハードウェアの動作を制御するとともに、メモリ１２にロードされるコンピュータプログラムを実行する。これにより、テストケース生成装置は、後述するような処理を実行することができる。
【００３３】
メモリ１２は、例えばＤＲＡＭ又はＳＲＡＭ等で構成され、コンピュータプログラムの実行時において発生する一時的なデータ等を記憶する。
【００３４】
表示部１４は、ＣＲＴ又は液晶ディスプレイ等で構成され、後述するようにして生成されるテストケースを示したファイル等を出力する。また、入力部１６は、キーボード及びマウス等で構成され、テストケース生成装置に対してユーザが各種の指示等をする場合に用いられる。
【００３５】
外部記憶装置２０は、例えばＣＤ−ＲＯＭドライブ又はフレキシブルディスクドライブ等で構成され、本発明のコンピュータプログラム（テストケース生成プログラム３０）が記録されているＣＤ−ＲＯＭ又はフレキシブルディスク等の可搬型記録媒体２２からテストケース生成プログラム３０を読み取る。
【００３６】
なお、テストケース生成装置は、前述したようにして外部記憶装置２０が可搬型記録媒体２２から読み取る以外の方法によって本発明のテストケース生成プログラム３０を取得することができる。例えば、インターネット等の通信ネットワークに接続されているデータベース（図示せず）がテストケース生成プログラム３０を記憶しているような場合であれば、このデータベースからダウンロードすることによってテストケース生成装置がテストケース生成プログラム３０を取得することができる。
【００３７】
ハードディスク１８は、読み書き可能な磁気ディスク等で構成され、テストケース生成装置の動作に必要なコンピュータプログラムであるテストケース生成プログラム３０及びＯＳ（オペレーティングシステム）３２、並びに各種のデータ等を記憶している。
【００３８】
なお、このハードディスク１８には、ファクターＤＢ３４及びコードＤＢ３６が格納されている。ファクターＤＢ３４には、テスト対象となるコンピュータプログラムの入力データ項目であるファクターに関するファクター情報が格納されている。このファクター情報には、例えばファクターの名称、ファクターの同値、ファクターがコード型であるか（ファクターの同値がコード値であるか）又は論理型であるか（ファクターの同値が真偽の何れかの論理値であるか）を示すデータ等が含まれている。一方、コードＤＢ３６には、コード型のファクターがとりうるコード値を示すコード値情報が格納されている。
【００３９】
次に、以上のように構成されたテストケース生成装置の動作について説明する。
【００４０】
図２は、テスト対象となるコンピュータプログラム（以下、テスト対象プログラムという）の仕様書の例を示す図である。図２には、クレジットカードの使用により生じた売上に関するカード売上データをコンピュータシステムに登録する機能を有するコンピュータプログラムの仕様書の一部が例示されている。このテスト対象プログラムの処理概要は、図２に示されているように以下のとおりである。
【００４１】
まず、テスト対象プログラムは、使用されたクレジットカードが解約されているか否かを判別するためのカード解約チェック、及び使用されたクレジットカードが不正なものであるか否かを判別するための不正カードチェックを行う。
【００４２】
カード解約チェックにおいて、テスト対象プログラムは、ファクター「カード解約チェック」の同値に基づいて、使用されたクレジットカードが既に解約されていると判別された場合は処理を終了する。一方、解約されていないと判別された場合は処理を継続する。また、不正カードチェックにおいて、テスト対象プログラムは、ファクター「不正カードチェック」の同値に基づいて、使用されたクレジットカードが不正なものであると判別した場合は売上データ中のカード種別に「不正カード」を示す情報をセットする。一方、不正なものではないと判別した場合は処理を継続する。
【００４３】
次に、テスト対象プログラムは、ショッピングリボルビング払いの申請が事前になされているか否かを判別するためのショッピングリボ事前申請チェックを行う。
【００４４】
このショッピングリボ事前申請チェックにおいて、テスト対象プログラムは、ファクター「売上受入区分」の同値が「１回払い」である場合であって、ショッピングリボの事前申請があるときには売上データ中の顧客決済区分に「ショッピングリボ」をセットし、ショッピングリボの事前申請がないときには同じく顧客決済区分に「１回払い」をセットする。なお、ここでショッピングリボの事前申請があるか否かの判別はファクター「Ｓリボ事前申請チェック」の同値に基づいてなされる。一方、ファクター「売上受入区分」の同値が「１回払い以外」である場合は売上データ中の顧客決済区分にファクター「売上受入区分」の同値をセットする。
【００４５】
次に、テスト対象プログラムは、ショッピングリボルビング払いが停止となっているか否かを判別するためのショッピングリボ停止チェックを行う。
【００４６】
このショッピングリボ停止チェックにおいて、テスト対象プログラムは、ファクター「顧客決済区分」が「ショッピングリボ」である場合であって、ショッピングリボが停止となっているときには売上データ中の顧客決済区分に「１回払い」をセットし、ショッピングリボが停止となっていないときには同じく顧客決済区分に「ショッピングリボ」をセットする。なお、ここでショッピングリボが停止となっているか否かの判別はファクター「Ｓリボ停止チェック」の同値に基づいてなされる。一方、ファクター「顧客決済区分」の同値がショッピングリボ以外の場合は何の処理もしない。
【００４７】
さらに、テスト対象プログラムは、キャッシングリボルビング払いが停止となっているか否かを判別するためのキャッシングリボ停止チェックを行う。
【００４８】
このキャッシングリボ停止チェックにおいて、テスト対象プログラムは、ファクター「顧客決済区分」が「キャッシングリボ」である場合であって、キャッシングリボが停止となっているときには売上データ中の顧客決済区分に「１回払い」をセットし、キャッシングリボが停止となっていないときには同じく顧客決済区分に「キャッシングリボ」をセットする。なお、ここでキャッシングリボが停止となっているか否かの判別はファクター「Ｃリボ停止チェック」の同値に基づいてなされる。一方、ファクター「顧客決済区分」の値がキャッシングリボ以外の場合は何の処理もしない。
【００４９】
以上のような処理の概要が記載されているテスト対象プログラムの仕様書に基づいて、ユーザは、ファクターの内容を示すファクター表を作成し、入力部１６を用いて、そのファクター表をテストケース生成装置に対して入力する。
【００５０】
図３は、本発明の実施の形態１に係るテストケース生成装置に入力されるファクター表の例を示す図である。図３に示すとおり、ファクター表には、ファクターの名称を格納するためのファクター名フィールド５１，独立系ファクター又は依存系ファクターの何れであるのかを示す情報を格納するための独立／依存フィールド５２，ファクターの値がコード値であるか否かを示す情報を格納するためのコード値フィールド５３，同じく真偽の何れかの論理値であるか否かを示す情報を格納するための論理値フィールド５４，同値の内容を示す同値情報を格納するための同値フィールド５５，及び依存系ファクターである場合に依存関係にあるファクターの名称を格納するための依存先ファクター名フィールド５６が設けられている。
【００５１】
ここで、独立系ファクターとは他のファクターとの間で依存関係が成立していないファクターを意味し、依存系ファクターとは他のファクターとの間で依存関係が成立しているファクターを意味する。また、独立／依存フィールド５２に「１」が格納されていれば独立系ファクターであることを意味し、「２」が格納されていれば依存系ファクターであることを意味する。さらに、コード値フィールド５３及び論理値フィールド５４に「１」が格納されていれば、ファクターの値がコード値であること及び論理値であることをそれぞれ意味し、同じく「０」が格納されていれば、ファクターの値がコード値ではないこと及び論理値ではないことをそれぞれ意味する。
【００５２】
なお、本実施の形態では、図３に示すようなファクター表をユーザが作成することとしているが、このファクター表を生成するために必要な情報をテスト対象プログラムの仕様書に明記しておき、その仕様書をテストケース生成装置に対して入力することにより、テストケース生成装置が自動的にファクター表を生成するようにしてもよい。
【００５３】
テストケース生成装置に対してユーザにより入力されたファクター表は、テストケース生成装置のハードディスク１８に記憶される。その後、テストケース生成装置は、ユーザの指示にしたがって次の４つの処理、（１）ファクターリストの生成、（２）独立系ファクターに関する同値パターン（同値の組合せ）の生成、（３）依存系ファクターに関する同値パターンの生成、（４）テストケースの生成を実行する。
【００５４】
［ファクターリストの生成］
図４は、ファクターリストを生成する場合における本発明の実施の形態１に係るテストケース生成装置の動作の流れを示すフローチャートである。
【００５５】
まず、テストケース生成装置は、ハードディスク１８に記憶されているファクター表を読み込む（Ｓ１０１）。そして、テストケース生成装置は、そのファクター表の独立／依存フィールド５２に格納されている情報を参照して独立系ファクター及び依存系ファクターの別を確認し、その結果に基づいて、独立系ファクターに関する情報を納めるための独立系ファクターリストファイル及び依存系ファクターに関する情報を納めるための依存系ファクターリストファイルを生成する（Ｓ１０２）。
【００５６】
次に、テストケース生成装置は、ハードディスク１８に格納されているファクターＤＢ３４を参照し、ファクター表に格納されているファクターに関するファクター情報を取得する（Ｓ１０３）。また、同様にしてコードＤＢ３６を参照し、ファクター表に格納されているファクターに関するコード値情報を取得する（Ｓ１０４）。
【００５７】
次に、テストケース生成装置は、ステップＳ１０３にて取得したファクター情報及びＳ１０４にて取得したコード値情報から、ファクター表に格納されているファクターの同値を示す同値情報を抽出し、その同値情報とファクター表の同値フィールド５５に格納されている同値情報とが同じであるか否かを判定する（Ｓ１０５）。ここで同じであると判定した場合（Ｓ１０５でＹＥＳ）は後述するステップＳ１０８へ進む。一方、同じではないと判定した場合（Ｓ１０５でＮＯ）、テストケース生成装置は、異なっている同値を示す同値アンマッチリストファイルを生成し（Ｓ１０６）、その生成した同値アンマッチリストファイルを表示部１４上に表示する（Ｓ１０７）。
【００５８】
図２５は、前述したようにして生成された同値アンマッチリストファイルの例を示す図である。ここでは、ファクター「売上受入区分」の同値として、ファクター表にはない「回数指定払い（均等）」、「回数指定払い（ボーナス併用）」がファクターＤＢ３４に格納されているものとする。そのため、図２５に示す同値アンマッチリストファイルでは、ファクター「売上受入区分」の同値が、ファクター表とファクターＤＢとに分けられて対応して表示されている。
【００５９】
このようにして表示部１４上に表示された同値アンマッチリストファイルを参照することにより、ユーザは、自己が行った設計に誤りがなかったかどうか等を確認することが可能となる。
【００６０】
ところで、ファクター表には必要な情報が欠落している場合があり得る。図３を参照すると、ファクター「不正カードチェック」についてのコード値フィールド５３の値、論理値フィールド５４の値、及び同値フィールド５５の値が欠落している。そこで、テストケース生成装置は、ステップＳ１０３においてファクター「不正カードチェック」に関するファクター情報をファクターＤＢ３４から取得し、これらの不足している値を得る。なお、ファクター情報を取得した結果、例えばファクター「不正カードチェック」が論理型であることが判明した場合、このファクターの同値を自動的に「あり、なし」に設定するようにしてもよい。
【００６１】
また、図３を参照すると、ファクター「売上受入区分」の同値フィールド５５の値が欠落している。そこで、テストケース生成装置は、ステップＳ１０４においてファクター「売上受入区分」に関するコード値情報をコードＤＢ３６から取得し、このファクターの同値（例えば「１回払い、１回払い以外」）を取得する。
【００６２】
このようにファクターＤＢ３４及びコードＤＢ３６それぞれからファクター情報及びコード値情報を得ることにより、ファクター表で不足している情報を補うことができるため、ファクター表を完全に作成しなくても済む場合があり、ユーザの負担を軽減すること等が可能となる。
【００６３】
次に、テストケース生成装置は、ファクター表に格納されている各種の情報、ステップＳ１０３にて取得したファクター情報、及びステップＳ１０４にて取得したコード値情報を独立系ファクターリストファイル及び依存系ファクターリストファイルに出力することにより、これらの独立系ファクターリストファイル及び依存系ファクターリストファイルを更新し（Ｓ１０８）、ハードディスク１８に記憶する（Ｓ１０９）。
【００６４】
図５は、前述したようにして生成された独立系ファクターリストファイルの例を示す図である。図５に示すように、独立系ファクターリストファイルには、図３に示すファクター表の独立系／依存系フィールド５２，ファクター名フィールド５１及び同値フィールド５５と同様の独立／依存フィールド１０１，ファクター名フィールド１０２及び同値フィールド１０３が設けられている。また、一つのファクターに対して、そのファクターの同値の数と同じ行数のレコードが設けられており、同値フィールド１０３には各レコードにつき一つの同値のみが格納されている。
【００６５】
また、図６は、前述したようにして生成された依存系ファクターリストファイルの例を示す図である。図６に示すように、依存系ファクターリストファイルには、図３に示すファクター表の独立系／依存系フィールド５２，依存先ファクター名フィールド５６，ファクター名フィールド５１及び同値フィールド５５と同様の独立／依存フィールド１１１，依存先ファクター名フィールド１１２，ファクター名フィールド１１３及び同値フィールド１１４が設けられている。また、独立系ファクターリストファイルの場合と同様に、一つのファクターに対して、そのファクターの同値の数と同じ行数のレコードが設けられており、同値フィールド１１４には各レコードにつき一つの同値のみが格納されている。
【００６６】
なお、このようにして生成された独立系ファクターリストファイル及び依存系ファクターリストファイルに基づいてファクターＤＢ３４を更新することにより、ファクターＤＢ３４に新たなファクター情報を格納させて次回のテストケース生成に備えるようにしてもよい。
【００６７】
［独立系ファクターに関する同値パターンの生成］
図７は、独立系ファクターに関する同値パターンを生成する場合における本発明の実施の形態１に係るテストケース生成装置の動作の流れを示すフローチャートである。
【００６８】
まず、テストケース生成装置は、ハードディスク１８に記憶されている独立系ファクターリストファイルを読み込む（Ｓ２０１）。そして、テストケース生成装置は、その独立系ファクターリストファイルに後述する同値パターンを格納するための同値パターンフィールドを追加した独立系同値パターンファイルを生成する（Ｓ２０２）。なお、同値パターンフィールドには、生成する同値パターンの数と同じ数の列が設けられる。
【００６９】
次に、テストケース生成装置は、生成した独立系同値パターンファイルに基づいて、独立系ファクターの同値の数の最大値ｎを取得する（Ｓ２０３）。その後、テストケース生成装置は、変数ｍに１をセット（Ｓ２０４）した後、各独立系ファクターについて、同値のｍ番目の行であって同値パターンフィールドのｍ番目の列に‘○’をセットする（Ｓ２０５）。そして、テストケース生成装置は、ｎとｍとの値を比較し、ｎとｍとが同一の値であるか否かを判定する（Ｓ２０６）。ここで、同一ではないと判定した場合（Ｓ２０６でＮＯ）、テストケース生成装置は、ｍにｍ＋１をセット（Ｓ２０７）した後、再度ステップＳ２０５及びＳ２０６を実行する。そして、ステップＳ２０６においてｎとｍとの値が同一であると判定した場合（Ｓ２０６でＹＥＳ）、テストケース生成装置は、独立系同値パターンを記憶する（Ｓ２０８）。
【００７０】
なお、独立系ファクターが複数ある場合であって、ある独立系ファクターの同値の数が他の独立系ファクターの同値の数よりも少ないとき、ステップＳ２０５において、その独立系ファクターについて同値のｍ番目の行が存在しない事態が生じ得る。そのような場合は、任意の行の同値パターンフィールドのｍ番目の列に‘○’をセットすればよい。したがって、ステップＳ２０５において、例えば当該独立系ファクターの最新に‘○’がセットされた行の同値パターンフィールドのｍ番目の列に‘○’をセットすればよい。このように処理しても問題ないのは、既にすべての同値について‘○’がセットされているファクターの場合、それ以降のテストケースではどの同値でテストしても問題がないためである。
【００７１】
図８は、前述したようにして生成された独立系同値パターンファイルの例を示す図である。図８に示すように、独立系同値パターンファイルには、図５に示す独立系ファクターリストファイルと同様の独立／依存フィールド１２１，ファクター名フィールド１２２，及び同値フィールド１２３、並びに前述した同値パターンフィールド１２４が設けられている。
【００７２】
前述したように処理が実行された結果、図８に示すとおりに同値パターンフィールド１２４には‘○’がセットされている。図８に示す例の場合、２つの同値パターンが生成されたことになる。
【００７３】
なお、図７のフローチャートを参照して説明した処理は、各ファクターが独立関係であることを前提にしたＣＦＤ技法に則したものである。したがって、以下では、このような処理を行うことを「ＣＦＤ技法を用いて処理を行う」と表現する。
【００７４】
［依存系ファクターに関する同値パターンの生成］
図９は、依存系ファクターに関する同値パターンを生成する場合における本発明の実施の形態１に係るテストケース生成装置の動作の流れを示すフローチャートである。
【００７５】
まず、テストケース生成装置は、ハードディスク１８に記憶されている依存系ファクターリストファイルを読み込む（Ｓ３０１）。そして、テストケース生成装置は、その依存系ファクターリストファイルを参照して依存関係にあるファクターをグルーピングする（Ｓ３０２）。図６に示す依存系ファクターリストファイルの例の場合、ファクター「Ｓリボ事前申請チェック」及び「売上受入区分」が一つのグループとなり、ファクター「Ｓリボ停止チェック」、「Ｃリボ停止チェック」及び「顧客決済区分」が一つのグループとなる。以下、このようにして生成されたグループを依存系ファクターグループと呼ぶ。
【００７６】
次に、テストケース生成装置は、依存系ファクターグループ毎に、依存系ファクターリストファイルに同値パターンを格納するための同値パターンフィールドを追加した依存系同値パターンファイルを生成する（Ｓ３０３）。なお、独立系同値パターンファイルの生成の場合と同様に、この同値パターンフィールドには生成する同値パターンの数と同じ数の列が設けられる。
【００７７】
次に、テストケース生成装置は、複数の依存系ファクターグループのうち特定の一つの依存系ファクターグループを選択し（Ｓ３０４）、その依存系ファクターグループ内のファクターの同値の組合せが網羅的になるように、当該依存系ファクターグループに係る依存系同値パターンファイルの同値パターンフィールドの列に‘○’をセットする（Ｓ３０５）。そして、テストケース生成装置は、このようにして‘○’がセットされた依存系同値パターンファイルをハードディスク１８に記憶する（Ｓ３０６）。
【００７８】
その後、テストケース生成装置は、すべての依存系ファクターグループを選択したか否かを判定する（Ｓ３０７）。ここで、まだ選択されていない依存系ファクターグループがあると判定した場合（Ｓ３０７でＮＯ）、テストケース生成装置はステップＳ３０４に戻る。一方、すべての依存系ファクターグループを選択したと判定した場合（Ｓ３０７でＹＥＳ）、テストケース生成装置は後述するステップＳ３０８へ進む。
【００７９】
図１０及び図１１は、前述したようにして生成された依存系同値パターンファイルの例を示す図である。図１０及び図１１に示すように、依存系同値パターンファイルには、図６に示す依存系ファクターリストファイルの独立／依存フィールド１１１，依存先ファクター名フィールド１１２，ファクター名フィールド１１３及び同値フィールド１１４と同様の独立／依存フィールド１３１，依存先ファクター名フィールド１３２，ファクター名フィールド１３３及び同値フィールド１３４、並びに前述した同値パターンフィールド１３４が設けられている。
【００８０】
図１０には、ファクター「Ｓリボ事前申請チェック」及び「売上受入区分」から構成される依存系ファクターグループに係る依存系同値パターンファイルが示されている。この依存系ファクターグループの場合、２つのファクターの同値が２個あるため、前述したような処理が実行された結果、図１０に示すとおりに同値パターンフィールド１３５に‘○’がセットされ、４（＝２×２）個の同値パターンが生成される。
【００８１】
また、図１１には、ファクター「Ｓリボ停止チェック」、「Ｃリボ停止チェック」及び「顧客決済区分」から構成される依存系ファクターグループに係る依存系同値パターンファイルが示されている。この依存系ファクターグループの場合、ファクター「顧客決済区分」の同値が７個あり、その他の２つのファクターの同値が２個ずつあるため、前述したようにして処理が実行された結果、図１１に示すとおりに同値パターンフィールド１３５に‘○’がセットされ、２８（＝７×２×２）個の同値パターンが生成される。
【００８２】
なお、ファクター間の依存関係を考慮した場合、不要となる同値パターンが存在することがある。例えば、図１０に示す同値パターンの場合、ファクター「売上受入区分」の同値が「１回払い以外」のときはファクター「Ｓリボ事前申請チェック」の同値が「あり」又は「ない」の何れかでも良い。したがって、図１０に示す３番目の同値パターンは不要となる。その結果、この依存系グループの場合、図１０に示す１番目、２番目、及び４番目の３個の同値パターンで足りる。
【００８３】
また、図１１に示す同値パターンの場合、ファクター「Ｓリボ停止チェック」の同値が「あり」の同値パターンはファクター「顧客決済区分」の同値が「ショッピングリボ」のときだけでよい。同様に、ファクター「Ｃリボ停止チェック」の同値が「あり」の同値パターンはファクター「顧客決済区分」の同値が「キャッシングリボ」のときだけでよい。その結果、２８個の同値パターンのうち２１個は不要となり、同値パターンは７個あれば足りることになる。
【００８４】
このように不要な同値パターンが存在していることを確認したユーザは、それらの不要な同値パターンを削除するようにテストケース生成装置に指示することができる。以下ではこの削除指示がなされ、テストケース生成装置において不要な同値パターンを削除するように依存系同値パターンファイルを更新したものとして説明する。なお、このように不要な同値パターンを削除する処理は任意のものであり、必要に応じて実行すればよい。
【００８５】
テストケース生成装置は、以上のようにしてハードディスク１８に記憶された各依存系ファクターグループに係る依存系同値パターンファイルを読み込み、読み込んだ複数の依存系同値パターンファイルを結合する（Ｓ３０８）。ここで、各依存系ファクターグループ間には独立関係が成立している。したがって、ステップＳ３０８における結合処理は、ＣＦＤ技法を用いて行われる。その結果、図１２に示す結合処理後の依存系同値パターンファイルのとおりに同値パターンフィールド１３５に‘○’がセットされた７個の同値パターンが生成される。
【００８６】
最後に、テストケース生成装置は、結合処理の結果得られた依存系同値パターンファイルをハードディスク１８に記憶する（Ｓ３０９）。
【００８７】
［テストケースの生成］
図１３は、テストケースを生成する場合における本発明の実施の形態１に係るテストケース生成装置の動作の流れを示すフローチャートである。
【００８８】
まず、テストケース生成装置は、ハードディスク１８に記憶されている独立系同値パターンファイル及び依存系同値パターンファイルを読み込む（Ｓ４０１）。また、テストケース生成装置は、独立系同値パターンファイル及び依存系同値パターンファイルの同値パターンフィールドの代わりに後述するテストケースを格納するためのテストケースフィールドを設けたテストケースファイルを生成する（Ｓ４０２）。なお、テストケースフィールドには、生成するテストケースの数と同じ数の列が設けられる。
【００８９】
次に、テストケース生成装置は、ステップＳ４０１にて読み込んだ独立系同値パターンファイル及び依存系同値パターンファイルを結合し（Ｓ４０３）、その結果をテストケースファイルに出力する（Ｓ４０４）。ここで、独立系同値パターンと依存系同値パターンとの間には独立関係が成立している。したがって、ステップＳ４０２における結合処理は、ＣＦＤ技法を用いて行われる。
【００９０】
図１４は、前述したようにして得られたテストケースファイルの例を示す図である。図１４に示すように、テストケースファイルには、図１１及び図１２に示す依存系同値パターンファイルと同様の独立／依存フィールド１４１，依存先ファクター名フィールド１４２，ファクター名フィールド１４３，及び同値フィールド１４３、並びに前述したテストケースフィールド１４５が設けられている。
【００９１】
前述したように処理が実行された結果、図１４に示すとおりにテストケースフィールド１４５には‘○’がセットされている。ここで、図１４に示す例では、１番目から７番目までのテストケースが主に依存系ファクターのテストを考慮したものとなり、８，９番目のテストケースが主に独立系ファクターのテストを考慮したものとなっている。
【００９２】
最後に、テストケース生成装置は、ステップＳ４０４にて結合処理の結果が出力されたテストケースファイルをハードディスク１８に記憶する（Ｓ４０４）。
【００９３】
このようにして生成されたテストケースは、ファクター間の依存関係が考慮された上で生成されたものであるから、単にＣＦＤ技法のみを用いて生成する従来の場合と異なり、必要なテストケースが欠落する事態を回避することができる。
【００９４】
また、独立関係にあるファクターの同値パターンについては、ＣＦＤ技法を用いることにより、その数を抑制することができる。
【００９５】
なお、テスト対象プログラムのテストを行う際、ユーザは、テストケース生成装置に対して、ハードディスク１８に記憶されているテストケースファイルを表示部１４に表示させるように指示する。その結果、表示部１４にテストケースファイルの内容が表示され、ユーザはその内容を確認しながらテストシナリオを作成することにより、信頼性の高いテストを効率良く実行することができる。
【００９６】
（実施の形態２）
本発明の実施の形態２に係るテストケース生成装置は、あるファクターが特定の値をとった場合にその時点で処理が終了するテストケースである無効系テストケースと、無効系テストケース以外の有効系テストケースとを分けて生成することができるものである。なお、実施の形態２のテストケース生成装置の構成は、実施の形態１の場合と同様であるので説明を省略する。以下、実施の形態２のテストケース生成装置の動作について説明する。
【００９７】
図２に示すような処理の概要が記載されている対象プログラムの仕様書に基づいて、ユーザは、ファクターの内容を示すファクター表を作成し、入力部１６を用いて、そのファクター表をテストケース生成装置に対して入力する。
【００９８】
図１５は、実施の形態２におけるファクター表の例を示す図である。図１５に示すように、このファクター表のファクター「カード解約チェック」の同値フィールド５５には「あり＊」、「なし」がセットされている。ここで「あり＊」は、ファクター「カード解約チェック」の同値が「あり」である場合のテストケースは無効系テストケースになることを表している。
【００９９】
なお、テストケース生成装置が自動的にファクター表を生成するようにしてもよいことは実施の形態１の場合と同様である。
【０１００】
テストケース生成装置に対してユーザにより入力されたファクター表は、テストケース生成装置のハードディスク１８に記憶される。その後、実施の形態１の場合と同様に、ユーザの指示にしたがって、テストケース生成装置は次の４つの処理、（１）ファクターリストの生成、（２）独立系ファクターに関する同値パターンの生成、（３）依存系ファクターに関する同値パターンの生成、（４）テストケースの生成を実行する。
【０１０１】
［ファクターリストの生成］
実施の形態２のテストケース生成装置は、実施の形態１の場合と同様にして独立系ファクターリストファイル及び依存系ファクターリストファイルを生成する。ただし、前述したとおり実施の形態２の場合では、実施の形態１の場合と異なり、テストケース生成装置が読み込むファクター表に「＊」が付されているファクターの同値が存在することがある。このように「＊」が付されていることを示す情報を格納するために、実施の形態２のテストケース生成装置が生成する独立系ファクターリストファイル及び依存系ファクターリストファイルには、無効系フィールドが設けられている。
【０１０２】
図１６は、実施の形態２に係るテストケース生成装置が生成する独立系ファクターリストファイルの例を示す図である。図１６に示すように、この独立系ファクターリストファイルには、実施の形態１の場合の独立／依存フィールド１０１，ファクター名フィールド１０２及び同値フィールド１０３と、前述した無効系フィールド２０１とが設けられている。そして、この例では、ファクター「カード解約チェック」の同値「あり」の場合について、無効系フィールド２０１の列に‘○’がセットされている。
【０１０３】
また、図１７は、実施の形態２に係るテストケース生成装置が生成する依存系ファクターリストファイルの例を示す図である。図１７に示すように、この依存系ファクターリストファイルには、実施の形態１の場合の独立／依存フィールド１１１，依存先ファクター名フィールド１１２，ファクター名フィールド１１３及び同値フィールド１１４と、前述した無効系フィールド２１１とが設けられている。そして、この例では、ファクター表の依存系ファクターの同値には「＊」がないため、何れの行の無効系フィールド２０１の列にも‘○’がセットされていない。
【０１０４】
以上のように無効系フィールドが設けられた独立系ファクターリストファイル及び依存系ファクターリストファイルが生成され、ハードディスク１８に記憶される。
【０１０５】
［独立系ファクターに関する同値パターンの生成］
図１８は、独立系ファクターに関する同値パターンを生成する場合における本発明の実施の形態２に係るテストケース生成装置の動作の流れを示すフローチャートである。なお、ステップＳ２０１乃至Ｓ２０８については実施の形態１の場合と同様なので同一符号を付して説明を省略する。ただし、ステップＳ２０２で生成される独立系同値パターンファイルの最下行には、後述するように、生成された同値パターンが有効系であるのか又は無効系であるのかを示すための行である有効系レコード及び無効系レコードが設けられている。
【０１０６】
テストケース生成装置は、ステップＳ２０６においてｎとｍとの値が同一であると判定した場合（Ｓ２０６でＹＥＳ）、無効系フィールドに‘○’がセットされている列があるか否かを判定する（Ｓ５０１）。ここで、当該列があると判定した場合（Ｓ５０１でＹＥＳ）、テストケース生成装置は、独立系同値パターンファイルの無効系レコードの当該列に‘○’をセットし（Ｓ５０２）、有効系レコードのその他の列に‘○’をセットする（Ｓ５０３）。一方、無効系フィールドに‘○’がセットされている列はないと判定した場合（Ｓ５０１でＮＯ）、テストケース生成装置は、有効系レコードのすべての列に‘○’をセットする（Ｓ５０３）。
【０１０７】
図１９は、実施の形態２に係るテストケース生成装置が生成する独立系同値パターンファイルの例を示す図である。図１９に示すように、最下行には前述した有効系レコード１２５及び無効系レコード１２６が設けられている。そして、前述した処理の結果、１番目の同値パターン（ファクター「カード解約チェック」の同値が「あり」の場合の同値パターン）の列の無効系レコードに‘○’がセットされている。また、この１番目の同値パターンのようにファクター「カード解約チェック」の同値が「あり」の場合は処理が終了することになるため、ファクター「不正カードチェック」の行には‘○’がセットされていない。
【０１０８】
［依存系ファクターに関する同値パターンの生成］
図２０は、依存系ファクターに関する同値パターンを生成する場合における本発明の実施の形態２に係るテストケース生成装置の動作の流れを示すフローチャートである。なお、ステップＳ３０１乃至Ｓ３０９については実施の形態１の場合と同様なので同一符号を付して説明を省略する。ただし、ステップＳ３０２で生成される依存系同値パターンファイルの最下行には、独立系同値パターンファイルと同様に有効系レコード及び無効系レコードが設けられている。
【０１０９】
テストケース生成装置は、すべての依存系ファクターグループを選択したと判定した場合（Ｓ３０７でＹＥＳ）、無効系フィールドに‘○’がセットされている列があるか否かを判定する（Ｓ６０１）。ここで、当該列があると判定した場合（Ｓ６０１でＹＥＳ）、テストケース生成装置は、依存系同値パターンファイルの無効系レコードの当該列に‘○’をセットし（Ｓ６０２）、有効系レコードのその他の列に‘○’をセットする（Ｓ６０３）。一方、無効系フィールドに‘○’がセットされている列はないと判定した場合（Ｓ６０１でＮＯ）、テストケース生成装置は、有効系レコードのすべての列に‘○’をセットする（Ｓ６０３）。
【０１１０】
図２１及び図２２は、実施の形態２に係るテストケース生成装置が生成する依存系同値パターンファイルの例を示す図である。また、図２３は、実施の形態２に係るテストケース生成装置が生成する結合処理後の依存系同値パターンファイルの例を示す図である。
【０１１１】
図２１から図２３に示すように、最下行には前述した有効系レコード１３６及び無効系レコード１３７が設けられている。そして、図１７に示すとおり依存系ファクターリストファイルの無効系フィールド２１１には１つも‘○’がセットされていないため、依存系同値パターンファイルの同値パターンフィールド１３５のすべての列において有効系レコードに‘○’がセットされている。
【０１１２】
［テストケースの生成］
実施の形態２のテストケース生成装置は、実施の形態１の場合と同様にしてテストケースファイルを生成する。ただし、実施の形態２の場合、テストケースファイルの最下行には有効系レコード及び無効系レコードが設けられている。また、無効系レコードに‘○’がセットされているテストケースフィールドの列には、無効系のファクターの同値の行以外のすべての行について‘○’が削除される。
【０１１３】
図２４は、実施の形態２のテストケース生成装置が生成するテストケースファイルの例を示す図である。図２４に示すように、テストケースファイルの最下行には有効系レコード１４６及び無効系レコード１４７が設けられている。ここで、図２４に示す例では、２番目から９番目までのテストケースが主に依存系ファクターのテストを考慮したものとなり、１，９番目のテストケースが主に独立系ファクターのテストを考慮したものとなっている。そして、１番目のテストケースは無効系のテストケースであり、無効系のファクター「カード解約チェック」の同値「あり」の行には‘○’がセットされ、それ以外のすべての行には‘○’がセットされていない。
【０１１４】
このようにして無効系であるか否かが考慮されたテストケースを生成することにより、より効率的にテスト対象プログラムのテストを行うことが可能になる。
【産業上の利用可能性】
【０１１５】
本発明に係るテストケース生成方法、テストケース生成装置及びコンピュータプログラムは、信頼性の高いテストを行うために必要となるテストケースを生成するテストケース生成装置等に有用である。
【図面の簡単な説明】
【０１１６】
【図１】本発明の実施の形態１に係るテストケース生成装置の構成を示すブロック図である。
【図２】テスト対象となるコンピュータプログラムの仕様書の例を示す図である。
【図３】本発明の実施の形態１に係るテストケース生成装置に入力されるファクター表の例を示す図である。
【図４】ファクターリストを生成する場合における本発明の実施の形態１に係るテストケース生成装置の動作の流れを示すフローチャートである。
【図５】実施の形態１に係るテストケース生成装置が生成する独立系ファクターリストファイルの例を示す図である。
【図６】実施の形態１に係るテストケース生成装置が生成する依存系ファクターリストファイルの例を示す図である。
【図７】独立系ファクターに関する同値パターンを生成する場合における本発明の実施の形態１に係るテストケース生成装置の動作の流れを示すフローチャートである。
【図８】実施の形態１に係るテストケース生成装置が生成する独立系同値パターンファイルの例を示す図である。
【図９】依存系ファクターに関する同値パターンを生成する場合における本発明の実施の形態１に係るテストケース生成装置の動作の流れを示すフローチャートである。
【図１０】実施の形態１に係るテストケース生成装置が生成する依存系同値パターンファイルの例を示す図である。
【図１１】実施の形態１に係るテストケース生成装置が生成する依存系同値パターンファイルの例を示す図である。
【図１２】実施の形態１に係るテストケース生成装置が生成する結合処理後の依存系同値パターンファイルの例を示す図である。
【図１３】テストケースを生成する場合における本発明の実施の形態１に係るテストケース生成装置の動作の流れを示すフローチャートである。
【図１４】実施の形態１に係るテストケース生成装置が生成するテストケースファイルの例を示す図である。
【図１５】実施の形態２に係るテストケース生成装置が用いるファクター表の例を示す図である。
【図１６】実施の形態２に係るテストケース生成装置が生成する独立系ファクターリストファイルの例を示す図である。
【図１７】実施の形態２に係るテストケース生成装置が生成する依存系ファクターリストファイルの例を示す図である。
【図１８】独立系ファクターに関する同値パターンを生成する場合における本発明の実施の形態２に係るテストケース生成装置の動作の流れを示すフローチャートである。
【図１９】実施の形態２に係るテストケース生成装置が生成する独立系同値パターンファイルの例を示す図である。
【図２０】依存系ファクターに関する同値パターンを生成する場合における本発明の実施の形態２に係るテストケース生成装置の動作の流れを示すフローチャートである。
【図２１】実施の形態２に係るテストケース生成装置が生成する依存系同値パターンファイルの例を示す図である。
【図２２】実施の形態２に係るテストケース生成装置が生成する依存系同値パターンファイルの例を示す図である。
【図２３】実施の形態２に係るテストケース生成装置が生成する結合処理後の依存系同値パターンファイルの例を示す図である。
【図２４】実施の形態２のテストケース生成装置が生成するテストケースファイルの例を示す図である。
【図２５】同値アンマッチリストファイルの例を示す図である。
【符号の説明】
【０１１７】
１０  ＣＰＵ
１２  メモリ
１４  表示部
１６  入力部
１８  ハードディスク
２０  外部記憶装置
２２  可搬型記録媒体
３０  テストケース生成プログラム
３２  オペレーティングシステム
３４  ファクターＤＢ
３６  コードＤＢ
【図１】
2005284484.tif 000003
【図２】
2005284484.tif 000004
【図３】
2005284484.tif 000005
【図４】
2005284484.tif 000006
【図５】
2005284484.tif 000007
【図６】
2005284484.tif 000008
【図７】
2005284484.tif 000009
【図８】
2005284484.tif 000010
【図９】
2005284484.tif 000011
【図１０】
2005284484.tif 000012
【図１１】
2005284484.tif 000013
【図１２】
2005284484.tif 000014
【図１３】
2005284484.tif 000015
【図１４】
2005284484.tif 000016
【図１５】
2005284484.tif 000017
【図１６】
2005284484.tif 000018
【図１７】
2005284484.tif 000019
【図１８】
2005284484.tif 000020
【図１９】
2005284484.tif 000021
【図２０】
2005284484.tif 000022
【図２１】
2005284484.tif 000023
【図２２】
2005284484.tif 000024
【図２３】
2005284484.tif 000025
【図２４】
2005284484.tif 000026
【図２５】
2005284484.tif 000027