図面 (/)
課題
信頼性の高いコンピュータプログラムのテストを行うために必要となるテストケースを生成する方法を提供する。
解決手段
コンピュータプログラムの入力データ項目である複数のファクターがとり得る入力データの同値の組合せに基づいてテストケースを生成するテストケース生成方法において、単独で処理フローの分岐点となるファクターである独立系ファクターの同値を含む独立系ファクター情報と、複数で処理フローの分岐点となるファクターである依存系ファクターの同値を含む依存系ファクター情報とを取得するステップS401と、依存系ファクター情報に基づいて、依存系ファクターの同値の組合せを生成し、独立系ファクター情報に基づいて、独立系ファクターの同値の組合せを生成するステップS402と、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成するステップS403とを有する。
概要
背景
コンピュータプログラムの品質を検証するために、当該コンピュータプログラムが所望の処理を実行することができるか否かを判定するためのテストが行われる。信頼性の高いテストを行うためには、検証対象項目を漏れなくカバーした適切なテストケースを作成しなければならない。しかし、時間及び費用の都合上、実施することができるテストケースの数は限られてくる。そこで、いかにして少ないテストケースで検証対象項目を漏れなくカバーできるのかが問題となる。
非特許文献1では、テストケースの数を合理的に減少させる方法として、以下の3つのものが提案されている。
第一の手法は「同値分割法」である。同値分割法とは、「入力データを1つ1つ識別する代わりに同じ特性を持った部分集合としてとらえ、その部分集合に対して一つのテストを行う方法」をいう。ここで、上述したような部分集合を「同値」と呼び、コンピュータプログラムへの入力データ項目(以下、ファクターと言う)を同値に分けることを「同値分割」と呼ぶ。
この同値分割法では、コンピュータプログラムの仕様に基づいて、ファクターの値の無限の組合せが、有効な同値(コンピュータプログラムの仕様により正しい入力範囲として定義された部分集合)と無効な同値(有効な同値以外の部分集合であって、コンピュータプログラムの仕様により正しくない入力範囲として定義されたもの)とに集約される。そして、この同値のうちの特定の一つの入力に対してコンピュータプログラムが正しく動作した場合、その同値内の他の入力に対しても同様に正しく動作することが確認されたものとする。これにより、すべての入力データそれぞれについてコンピュータプログラムが正しく動作するか否かを確認する場合と比べて、少ないテストケースとすることができる。
また、第二の手法は「原因結果グラフ技法」である。原因結果グラフ技法とは、「テスト項目の設計において入力間の組合せを合理的に減少させ、かつテストの網羅性を維持する技法」をいう。より具体的には、同値分割を行った後に、コンピュータプログラムの各出力と論理的な関係を共有する入力同値のセットを求め、その入力同値(原因)と出力(結果)との関係をブール代数により表現して原因結果グラフを求める。そして、その原因結果グラフを表形式に表したデシジョンテーブルを作成し、そのデシジョンテーブルに基づいてテストケースを得る。このようにデシジョンテーブルにテスト項目をまとめることによりテスト項目間の重複を容易に確認することができるため、テストケースの数を抑制することができる。
さらに、第三の手法は「CFD(Case Flow Diagram:原因流れ図)技法」である。このCFD技法は、前述した原因結果グラフ技法を改良したものであり、同値分割についても図式で表現することにより、同値間の関係をより正確に表現することができる方法である。このようにして表現された同値間の関係に基づいて必要なテストケースを抽出する。ここで、CFD技法の場合、原因結果グラフ技法の場合と異なり、同値間の相互依存のテストをテストケースに含めない。これにより、原因結果グラフ技法と比べて、テストケースの数をより少なくすることができる。
松本正雄,小山田正史,松尾谷徹,「ソフトウェア開発・検証技法」,電子情報通信学会,1997年,p.139-155
概要
信頼性の高いコンピュータプログラムのテストを行うために必要となるテストケースを生成する方法を提供する。 コンピュータプログラムの入力データ項目である複数のファクターがとり得る入力データの同値の組合せに基づいてテストケースを生成するテストケース生成方法において、単独で処理フローの分岐点となるファクターである独立系ファクターの同値を含む独立系ファクター情報と、複数で処理フローの分岐点となるファクターである依存系ファクターの同値を含む依存系ファクター情報とを取得するステップS401と、依存系ファクター情報に基づいて、依存系ファクターの同値の組合せを生成し、独立系ファクター情報に基づいて、独立系ファクターの同値の組合せを生成するステップS402と、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成するステップS403とを有する。
目的
本発明は斯かる事情に鑑みてなされたものであり、その目的は、ファクター間の独立関係及び依存関係の双方に対応したテストケースを生成することにより、必要なテストケースを効率良く生成することができるテストケース生成方法、その方法を実施するためのテストケース生成装置、及びその方法をコンピュータに実施させるためのコンピュータプログラムを提供することにある。
効果
実績
- 技術文献被引用数
- 1件
- 牽制数
- 0件
この技術が所属する分野
(分野番号表示ON)※整理標準化データをもとに当社作成
請求項1
コンピュータプログラムの入力データ項目である複数のファクターがとり得る入力データのうち所定の特性を有している入力データである同値の組合せに基づいて、前記コンピュータプログラムをテストするためのテストケースを生成するテストケース生成方法において、単独で処理フローの分岐点となるファクターである独立系ファクターの同値を少なくとも含む独立系ファクター情報と、複数で処理フローの分岐点となるファクターである依存系ファクターの同値を少なくとも含む依存系ファクター情報とを取得するステップと、取得された依存系ファクター情報に基づいて、依存系ファクターの同値の組合せを生成するステップと、取得された独立系ファクター情報に基づいて、独立系ファクターの同値の組合せを生成するステップと、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成するステップとを有することを特徴とするテストケース生成方法。
請求項2
前記依存系ファクターの同値の組合せを生成するステップは、相互に依存関係にある依存系ファクターのグループを生成するステップと、生成されたグループ毎に依存系ファクターの同値の網羅的な組合せを生成するステップと、CFD技法を用いて、生成された依存系ファクターの同値の組合せを結合するステップとを有する、請求項1に記載のテストケース生成方法。
請求項3
前記独立系ファクターの同値の組合せを生成するステップは、CFD技法を用いて、独立系ファクターの同値の組合せを生成する、請求項1又は請求項2に記載のテストケース生成方法。
請求項4
前記テストケースを生成するステップは、CFD技法を用いて、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成する、請求項1乃至請求項3の何れかに記載のテストケース生成方法。
請求項5
ファクターの同値を少なくとも含むファクター情報を格納するファクター情報データベースから所定のファクター情報を検索するステップと、検索されたファクター情報と、前記取得された独立系ファクター情報及び/又は依存系ファクター情報とを比較するステップと、比較した結果に基づいて、前記検索されたファクター情報の同値と前記取得された独立系ファクター情報及び/又は依存系ファクター情報の同値とが異なるか否かを判定するステップと、異なると判定された場合、異なる同値に関する同値アンマッチ情報を出力するステップとをさらに有する、請求項1乃至請求項4の何れかに記載のテストケース生成方法。
請求項6
前記取得された依存系ファクター情報及び前記取得された独立系ファクター情報には、ファクターの同値が処理フローを終了させるための同値である無効系同値であるか否かを示す情報が含まれており、前記依存系ファクターの同値の組合せを生成するステップ及び前記独立系ファクターの同値の組合せを生成するステップは、無効系同値を含む同値の組合せを生成し、前記テストケースを生成するステップは、無効系同値を含む同値の組合せを用いて生成されたテストケースであるか否かを示す情報を付加したテストケースを生成する、請求項1乃至請求項5の何れかに記載のテストケース生成方法。
請求項7
コンピュータプログラムの入力データ項目である複数のファクターがとり得る入力データのうち所定の特性を有している入力データである同値の組合せに基づいて、前記コンピュータプログラムをテストするためのテストケースを生成するように構成されているテストケース生成装置において、単独で処理フローの分岐点となるファクターである独立系ファクターの同値を少なくとも含む独立系ファクター情報と、複数で処理フローの分岐点となるファクターである依存系ファクターの同値を少なくとも含む依存系ファクター情報とを取得するファクター情報取得手段と、当該ファクター情報取得手段によって取得された依存系ファクター情報に基づいて、依存系ファクターの同値の組合せを生成する依存系同値組合せ生成手段と、前記ファクター情報取得手段によって取得された独立系ファクター情報に基づいて、独立系ファクターの同値の組合せを生成する独立系同値組合せ生成手段と、前記依存系同値組合せ生成手段によって生成された依存系ファクターの同値の組合せ及び前記独立系同値組合せ生成手段によって生成された独立系ファクターの同値の組合せを結合してテストケースを生成するテストケース生成手段とを備えることを特徴とするテストケース生成装置。
請求項8
前記依存系ファクター同値組合せ生成手段は、相互に依存関係にある依存系ファクターのグループを生成し、生成されたグループ毎に依存系ファクターの同値の網羅的な組合せを生成し、CFD技法を用いて、生成された依存系ファクターの同値の組合せを結合するように構成されている、請求項7に記載のテストケース生成装置。
請求項9
前記独立系ファクター同値組合せ生成手段は、CFD技法を用いて、独立系ファクターの同値の組合せを生成するように構成されている、請求項7又は請求項8に記載のテストケース生成装置。
請求項10
前記テストケース生成手段は、CFD技法を用いて、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成するように構成されている、請求項7乃至請求項9の何れかに記載のテストケース生成装置。
請求項11
ファクターの同値を少なくとも含むファクター情報を格納するファクター情報データベースから所定のファクター情報を検索するファクター情報検索手段と、当該ファクター情報検索手段によって検索されたファクター情報と、前記ファクター情報取得手段によって取得された独立系ファクター情報及び/又は依存系ファクター情報とを比較するファクター情報比較手段と、当該ファクター情報比較手段による比較の結果に基づいて、前記検索されたファクター情報の同値と前記取得された独立系ファクター情報及び/又は依存系ファクター情報の同値とが異なるか否かを判定する判定手段と、当該判定手段によって異なると判定された場合、異なる同値に関する同値アンマッチ情報を出力する出力手段とをさらに備える、請求項7乃至請求項10の何れかに記載のテストケース生成装置。
請求項12
前記取得された依存系ファクター情報及び前記取得された独立系ファクター情報には、ファクターの同値が処理フローを終了させるための同値である無効系同値であるか否かを示す情報が含まれており、前記依存系同値組合せ生成手段及び前記独立系同値組合せ生成手段は、無効系同値を含む同値の組合せを生成するように構成され、前記テストケース生成手段は、無効系同値を含む同値の組合せを用いて生成されたテストケースであるか否かを示す情報を付加したテストケースを生成するように構成されている、請求項7乃至請求項11の何れかに記載のテストケース生成装置。
請求項13
コンピュータに、テスト対象コンピュータプログラムの入力データ項目である複数のファクターがとり得る入力データのうち所定の特性を有している入力データである同値の組合せに基づいて、前記テスト対象コンピュータプログラムをテストするためのテストケースを生成させるためのコンピュータプログラムにおいて、前記コンピュータに、単独で処理フローの分岐点となるファクターである独立系ファクターの同値を少なくとも含む独立系ファクター情報と、複数で処理フローの分岐点となるファクターである依存系ファクターの同値を少なくとも含む依存系ファクター情報とを取得させる手順と、取得された依存系ファクター情報に基づいて、依存系ファクターの同値の組合せを生成させる手順と、取得された独立系ファクター情報に基づいて、独立系ファクターの同値の組合せを生成させる手順と、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成させる手順とを実行させるためのコンピュータプログラム。
請求項14
前記依存系ファクターの同値の組合せを生成させる手順は、前記コンピュータに、相互に依存関係にある依存系ファクターのグループを生成させ、生成されたグループ毎に依存系ファクターの同値の網羅的な組合せを生成させ、CFD技法を用いて、生成された依存系ファクターの同値の組合せを結合させる、請求項13に記載のコンピュータプログラム。
請求項15
前記独立系ファクターの同値の組合せを生成させる手順は、前記コンピュータに、CFD技法を用いて、独立系ファクターの同値の組合せを生成させる、請求項13又は請求項14に記載のコンピュータプログラム。
請求項16
前記テストケースを生成させる手順は、前記コンピュータに、CFD技法を用いて、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成させる、請求項13乃至請求項15の何れかに記載のコンピュータプログラム。
請求項17
前記コンピュータに、ファクターの同値を少なくとも含むファクター情報を格納するファクター情報データベースから所定のファクター情報を検索させる手順と、検索されたファクター情報と、前記取得された独立系ファクター情報及び/又は依存系ファクター情報とを比較させる手順と、比較の結果に基づいて、前記検索されたファクター情報の同値と前記取得された独立系ファクター情報及び/又は依存系ファクター情報の同値とが異なるか否かを判定させる手順と、異なると判定された場合、異なる同値に関する同値アンマッチ情報を出力させる手順とをさらに実行させるための請求項13乃至請求項16の何れかに記載のコンピュータプログラム。
請求項18
前記取得された依存系ファクター情報及び前記取得された独立系ファクター情報には、ファクターの同値が処理フローを終了させるための同値である無効系同値であるか否かを示す情報が含まれており、前記依存系ファクターの同値の組合せを生成する手順及び前記独立系ファクターの同値の組合せを生成する手順は、前記コンピュータに、無効系同値を含む同値の組合せを生成させ、前記テストケースを生成する手順は、前記コンピュータに、無効系同値を含む同値の組合せを用いて生成されたテストケースであるか否かを示す情報を付加したテストケースを生成させる、請求項13乃至請求項17の何れかに記載のコンピュータプログラム。
技術分野
0001
本発明は、コンピュータプログラムが所望の処理を実行するか否かを判定するためのテストに用いられるテストケースを効率良く生成することができるテストケース生成方法、その方法を実施するためのテストケース生成装置、及びその方法をコンピュータに実施させるためのコンピュータプログラムに関する。
背景技術
0002
コンピュータプログラムの品質を検証するために、当該コンピュータプログラムが所望の処理を実行することができるか否かを判定するためのテストが行われる。信頼性の高いテストを行うためには、検証対象項目を漏れなくカバーした適切なテストケースを作成しなければならない。しかし、時間及び費用の都合上、実施することができるテストケースの数は限られてくる。そこで、いかにして少ないテストケースで検証対象項目を漏れなくカバーできるのかが問題となる。
0003
非特許文献1では、テストケースの数を合理的に減少させる方法として、以下の3つのものが提案されている。
0004
第一の手法は「同値分割法」である。同値分割法とは、「入力データを1つ1つ識別する代わりに同じ特性を持った部分集合としてとらえ、その部分集合に対して一つのテストを行う方法」をいう。ここで、上述したような部分集合を「同値」と呼び、コンピュータプログラムへの入力データ項目(以下、ファクターと言う)を同値に分けることを「同値分割」と呼ぶ。
0005
この同値分割法では、コンピュータプログラムの仕様に基づいて、ファクターの値の無限の組合せが、有効な同値(コンピュータプログラムの仕様により正しい入力範囲として定義された部分集合)と無効な同値(有効な同値以外の部分集合であって、コンピュータプログラムの仕様により正しくない入力範囲として定義されたもの)とに集約される。そして、この同値のうちの特定の一つの入力に対してコンピュータプログラムが正しく動作した場合、その同値内の他の入力に対しても同様に正しく動作することが確認されたものとする。これにより、すべての入力データそれぞれについてコンピュータプログラムが正しく動作するか否かを確認する場合と比べて、少ないテストケースとすることができる。
0006
また、第二の手法は「原因結果グラフ技法」である。原因結果グラフ技法とは、「テスト項目の設計において入力間の組合せを合理的に減少させ、かつテストの網羅性を維持する技法」をいう。より具体的には、同値分割を行った後に、コンピュータプログラムの各出力と論理的な関係を共有する入力同値のセットを求め、その入力同値(原因)と出力(結果)との関係をブール代数により表現して原因結果グラフを求める。そして、その原因結果グラフを表形式に表したデシジョンテーブルを作成し、そのデシジョンテーブルに基づいてテストケースを得る。このようにデシジョンテーブルにテスト項目をまとめることによりテスト項目間の重複を容易に確認することができるため、テストケースの数を抑制することができる。
0007
さらに、第三の手法は「CFD(Case Flow Diagram:原因流れ図)技法」である。このCFD技法は、前述した原因結果グラフ技法を改良したものであり、同値分割についても図式で表現することにより、同値間の関係をより正確に表現することができる方法である。このようにして表現された同値間の関係に基づいて必要なテストケースを抽出する。ここで、CFD技法の場合、原因結果グラフ技法の場合と異なり、同値間の相互依存のテストをテストケースに含めない。これにより、原因結果グラフ技法と比べて、テストケースの数をより少なくすることができる。
松本正雄,小山田正史,松尾谷徹,「ソフトウェア開発・検証技法」,電子情報通信学会,1997年,p.139-155
発明が解決しようとする課題
0008
ところで、ファクターは次の2種類のものに分けることがある。一つは単独で処理フローに影響を与える、すなわち処理フローの分岐点となるファクター(以下、独立系ファクターという)で、もう一つは複数で処理フローの分岐点となるファクター(依存系ファクターという)である。以下、独立系ファクターとその他のファクターとの間の関係を独立関係と呼び、依存系ファクター間の関係を依存関係と呼ぶことにする。
0009
前述したとおり、CFD技法の場合、同値間の相互依存のテストをテストケースに含めていない。これは、すべてのファクター間には独立関係が成立していることを前提としているためである。したがって、CFD技法の場合、ファクター間に依存関係が成立している場合については考慮していない。しかしながら、通常の場合では依存関係が成立している依存系ファクターが存在していることがほとんどであり、その依存系ファクターを独立系ファクターとして処理した場合、検証すべき同値の組合せを見落とすおそれがある。そのため、CFD技法を用いてテストケースを生成すると、テストケースの数を抑制することができる一方で、必要なテストケースが欠落するという問題があった。
0010
また、すべてのファクターが独立系ファクターである、またはすべてのファクターが依存系ファクターであるということは極めて稀であり、通常では、独立系ファクターと依存系ファクターとが混在している。しかしながら、この点を考慮したテストケース生成方法はこれまで提案されておらず、その結果必要なテストケースを効率良く生成することができないという問題があった。
0011
本発明は斯かる事情に鑑みてなされたものであり、その目的は、ファクター間の独立関係及び依存関係の双方に対応したテストケースを生成することにより、必要なテストケースを効率良く生成することができるテストケース生成方法、その方法を実施するためのテストケース生成装置、及びその方法をコンピュータに実施させるためのコンピュータプログラムを提供することにある。
課題を解決するための手段
0012
前述した課題を解決するために、本発明に係るテストケース生成方法は、コンピュータプログラムの入力データ項目である複数のファクターがとり得る入力データのうち所定の特性を有している入力データである同値の組合せに基づいて、前記コンピュータプログラムをテストするためのテストケースを生成するテストケース生成方法において、単独で処理フローの分岐点となるファクターである独立系ファクターの同値を少なくとも含む独立系ファクター情報と、複数で処理フローの分岐点となるファクターである依存系ファクターの同値を少なくとも含む依存系ファクター情報とを取得するステップと、取得された依存系ファクター情報に基づいて、依存系ファクターの同値の組合せを生成するステップと、取得された独立系ファクター情報に基づいて、独立系ファクターの同値の組合せを生成するステップと、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成するステップとを有することを特徴とする。
0013
前記発明に係るテストケース生成方法において、前記依存系ファクターの同値の組合せを生成するステップは、相互に依存関係にある依存系ファクターのグループを生成するステップと、生成されたグループ毎に依存系ファクターの同値の網羅的な組合せを生成するステップと、CFD技法を用いて、生成された依存系ファクターの同値の組合せを結合するステップとを有することが好ましい。
0014
また、前記発明に係るテストケース生成方法において、前記独立系ファクターの同値の組合せを生成するステップは、CFD技法を用いて、独立系ファクターの同値の組合せを生成することが好ましい。
0015
また、前記発明に係るテストケース生成方法において、前記テストケースを生成するステップは、CFD技法を用いて、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成することが好ましい。
0016
また、前記発明に係るテストケース生成方法において、ファクターの同値を少なくとも含むファクター情報を格納するファクター情報データベースから所定のファクター情報を検索するステップと、検索されたファクター情報と、前記取得された独立系ファクター情報及び/又は依存系ファクター情報とを比較するステップと、比較した結果に基づいて、前記検索されたファクター情報の同値と前記取得された独立系ファクター情報及び/又は依存系ファクター情報の同値とが異なるか否かを判定するステップと、異なると判定された場合、異なる同値に関する同値アンマッチ情報を出力するステップとをさらに有することが好ましい。
0017
さらに、前記発明に係るテストケース生成方法において、前記取得された依存系ファクター情報及び前記取得された独立系ファクター情報には、ファクターの同値が処理フローを終了させるための同値である無効系同値であるか否かを示す情報が含まれており、前記依存系ファクターの同値の組合せを生成するステップ及び前記独立系ファクターの同値の組合せを生成するステップは、無効系同値を含む同値の組合せを生成し、前記テストケースを生成するステップは、無効系同値を含む同値の組合せを用いて生成されたテストケースであるか否かを示す情報を付加したテストケースを生成することが好ましい。
0018
また、本発明に係るテストケース生成装置は、コンピュータプログラムの入力データ項目である複数のファクターがとり得る入力データのうち所定の特性を有している入力データである同値の組合せに基づいて、前記コンピュータプログラムをテストするためのテストケースを生成するように構成されているテストケース生成装置において、単独で処理フローの分岐点となるファクターである独立系ファクターの同値を少なくとも含む独立系ファクター情報と、複数で処理フローの分岐点となるファクターである依存系ファクターの同値を少なくとも含む依存系ファクター情報とを取得するファクター情報取得手段と、当該ファクター情報取得手段によって取得された依存系ファクター情報に基づいて、依存系ファクターの同値の組合せを生成する依存系同値組合せ生成手段と、前記ファクター情報取得手段によって取得された独立系ファクター情報に基づいて、独立系ファクターの同値の組合せを生成する独立系同値組合せ生成手段と、前記依存系同値組合せ生成手段によって生成された依存系ファクターの同値の組合せ及び前記独立系同値組合せ生成手段によって生成された独立系ファクターの同値の組合せを結合してテストケースを生成するテストケース生成手段とを備えることを特徴とする。
0019
前記発明に係るテストケース生成装置において、前記依存系ファクター同値組合せ生成手段は、相互に依存関係にある依存系ファクターのグループを生成し、生成されたグループ毎に依存系ファクターの同値の網羅的な組合せを生成し、CFD技法を用いて、生成された依存系ファクターの同値の組合せを結合するように構成されていることが好ましい。
0020
また、前記発明に係るテストケース生成装置において、前記独立系ファクター同値組合せ生成手段は、CFD技法を用いて、独立系ファクターの同値の組合せを生成するように構成されていることが好ましい。
0021
また、前記発明に係るテストケース生成装置において、前記テストケース生成手段は、CFD技法を用いて、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成するように構成されていることが好ましい。
0022
また、前記発明に係るテストケース生成装置において、ファクターの同値を少なくとも含むファクター情報を格納するファクター情報データベースから所定のファクター情報を検索するファクター情報検索手段と、当該ファクター情報検索手段によって検索されたファクター情報と、前記ファクター情報取得手段によって取得された独立系ファクター情報及び/又は依存系ファクター情報とを比較するファクター情報比較手段と、当該ファクター情報比較手段による比較の結果に基づいて、前記検索されたファクター情報の同値と前記取得された独立系ファクター情報及び/又は依存系ファクター情報の同値とが異なるか否かを判定する判定手段と、当該判定手段によって異なると判定された場合、異なる同値に関する同値アンマッチ情報を出力する出力手段とをさらに備えることが好ましい。
0023
さらに、前記発明に係るテストケース生成装置において、前記取得された依存系ファクター情報及び前記取得された独立系ファクター情報には、ファクターの同値が処理フローを終了させるための同値である無効系同値であるか否かを示す情報が含まれており、前記依存系同値組合せ生成手段及び前記独立系同値組合せ生成手段は、無効系同値を含む同値の組合せを生成するように構成され、前記テストケース生成手段は、無効系同値を含む同値の組合せを用いて生成されたテストケースであるか否かを示す情報を付加したテストケースを生成するように構成されていることが好ましい。
0024
また、本発明に係るコンピュータプログラムは、コンピュータに、テスト対象コンピュータプログラムの入力データ項目である複数のファクターがとり得る入力データのうち所定の特性を有している入力データである同値の組合せに基づいて、前記テスト対象コンピュータプログラムをテストするためのテストケースを生成させるためのコンピュータプログラムにおいて、前記コンピュータに、単独で処理フローの分岐点となるファクターである独立系ファクターの同値を少なくとも含む独立系ファクター情報と、複数で処理フローの分岐点となるファクターである依存系ファクターの同値を少なくとも含む依存系ファクター情報とを取得させる手順と、取得された依存系ファクター情報に基づいて、依存系ファクターの同値の組合せを生成させる手順と、取得された独立系ファクター情報に基づいて、独立系ファクターの同値の組合せを生成させる手順と、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成させる手順とを実行させる。
0025
前記発明に係るコンピュータプログラムにおいて、前記依存系ファクターの同値の組合せを生成させる手順は、前記コンピュータに、相互に依存関係にある依存系ファクターのグループを生成させ、生成されたグループ毎に依存系ファクターの同値の網羅的な組合せを生成させ、CFD技法を用いて、生成された依存系ファクターの同値の組合せを結合させることが好ましい。
0026
また、前記発明に係るコンピュータプログラムにおいて、前記独立系ファクターの同値の組合せを生成させる手順は、前記コンピュータに、CFD技法を用いて、独立系ファクターの同値の組合せを生成させることが好ましい。
0027
また、前記発明に係るコンピュータプログラムにおいて、前記テストケースを生成させる手順は、前記コンピュータに、CFD技法を用いて、生成された依存系ファクターの同値の組合せ及び独立系ファクターの同値の組合せを結合してテストケースを生成させることが好ましい。
0028
また、前記発明に係るコンピュータプログラムにおいて、前記コンピュータに、ファクターの同値を少なくとも含むファクター情報を格納するファクター情報データベースから所定のファクター情報を検索させる手順と、検索されたファクター情報と、前記取得された独立系ファクター情報及び/又は依存系ファクター情報とを比較させる手順と、比較の結果に基づいて、前記検索されたファクター情報の同値と前記取得された独立系ファクター情報及び/又は依存系ファクター情報の同値とが異なるか否かを判定させる手順と、異なると判定された場合、異なる同値に関する同値アンマッチ情報を出力させる手順とをさらに実行させることが好ましい。
0029
さらに、前記発明に係るコンピュータプログラムにおいて、前記取得された依存系ファクター情報及び前記取得された独立系ファクター情報には、ファクターの同値が処理フローを終了させるための同値である無効系同値であるか否かを示す情報が含まれており、前記依存系ファクターの同値の組合せを生成する手順及び前記独立系ファクターの同値の組合せを生成する手順は、前記コンピュータに、無効系同値を含む同値の組合せを生成させ、前記テストケースを生成する手順は、前記コンピュータに、無効系同値を含む同値の組合せを用いて生成されたテストケースであるか否かを示す情報を付加したテストケースを生成させることが好ましい。
発明の効果
0030
本発明のテストケース生成方法、その方法を実施するためのテストケース生成装置、及びその方法をコンピュータに実施させるためのコンピュータプログラムは、信頼性の高いコンピュータプログラムのテストを行うために必要なテストケースを生成することができ、しかもそのテストケースの数を抑制することができる。
発明を実施するための最良の形態
0031
以下、本発明の実施の形態について図面を参照しながら詳述する。
0032
(実施の形態1)
図1は、本発明の実施の形態1に係るテストケース生成装置の構成を示すブロック図である。図1に示すように、テストケース生成装置はCPU10を備えており、CPU10はバスを介して後述する各ハードウェアと接続されている。そして、CPU10は、それらのハードウェアの動作を制御するとともに、メモリ12にロードされるコンピュータプログラムを実行する。これにより、テストケース生成装置は、後述するような処理を実行することができる。
0033
メモリ12は、例えばDRAM又はSRAM等で構成され、コンピュータプログラムの実行時において発生する一時的なデータ等を記憶する。
0034
表示部14は、CRT又は液晶ディスプレイ等で構成され、後述するようにして生成されるテストケースを示したファイル等を出力する。また、入力部16は、キーボード及びマウス等で構成され、テストケース生成装置に対してユーザが各種の指示等をする場合に用いられる。
0035
外部記憶装置20は、例えばCD−ROMドライブ又はフレキシブルディスクドライブ等で構成され、本発明のコンピュータプログラム(テストケース生成プログラム30)が記録されているCD−ROM又はフレキシブルディスク等の可搬型記録媒体22からテストケース生成プログラム30を読み取る。
0036
なお、テストケース生成装置は、前述したようにして外部記憶装置20が可搬型記録媒体22から読み取る以外の方法によって本発明のテストケース生成プログラム30を取得することができる。例えば、インターネット等の通信ネットワークに接続されているデータベース(図示せず)がテストケース生成プログラム30を記憶しているような場合であれば、このデータベースからダウンロードすることによってテストケース生成装置がテストケース生成プログラム30を取得することができる。
0037
ハードディスク18は、読み書き可能な磁気ディスク等で構成され、テストケース生成装置の動作に必要なコンピュータプログラムであるテストケース生成プログラム30及びOS(オペレーティングシステム)32、並びに各種のデータ等を記憶している。
0038
なお、このハードディスク18には、ファクターDB34及びコードDB36が格納されている。ファクターDB34には、テスト対象となるコンピュータプログラムの入力データ項目であるファクターに関するファクター情報が格納されている。このファクター情報には、例えばファクターの名称、ファクターの同値、ファクターがコード型であるか(ファクターの同値がコード値であるか)又は論理型であるか(ファクターの同値が真偽の何れかの論理値であるか)を示すデータ等が含まれている。一方、コードDB36には、コード型のファクターがとりうるコード値を示すコード値情報が格納されている。
0039
次に、以上のように構成されたテストケース生成装置の動作について説明する。
0040
図2は、テスト対象となるコンピュータプログラム(以下、テスト対象プログラムという)の仕様書の例を示す図である。図2には、クレジットカードの使用により生じた売上に関するカード売上データをコンピュータシステムに登録する機能を有するコンピュータプログラムの仕様書の一部が例示されている。このテスト対象プログラムの処理概要は、図2に示されているように以下のとおりである。
0041
まず、テスト対象プログラムは、使用されたクレジットカードが解約されているか否かを判別するためのカード解約チェック、及び使用されたクレジットカードが不正なものであるか否かを判別するための不正カードチェックを行う。
0042
カード解約チェックにおいて、テスト対象プログラムは、ファクター「カード解約チェック」の同値に基づいて、使用されたクレジットカードが既に解約されていると判別された場合は処理を終了する。一方、解約されていないと判別された場合は処理を継続する。また、不正カードチェックにおいて、テスト対象プログラムは、ファクター「不正カードチェック」の同値に基づいて、使用されたクレジットカードが不正なものであると判別した場合は売上データ中のカード種別に「不正カード」を示す情報をセットする。一方、不正なものではないと判別した場合は処理を継続する。
0044
このショッピングリボ事前申請チェックにおいて、テスト対象プログラムは、ファクター「売上受入区分」の同値が「1回払い」である場合であって、ショッピングリボの事前申請があるときには売上データ中の顧客決済区分に「ショッピングリボ」をセットし、ショッピングリボの事前申請がないときには同じく顧客決済区分に「1回払い」をセットする。なお、ここでショッピングリボの事前申請があるか否かの判別はファクター「Sリボ事前申請チェック」の同値に基づいてなされる。一方、ファクター「売上受入区分」の同値が「1回払い以外」である場合は売上データ中の顧客決済区分にファクター「売上受入区分」の同値をセットする。
0045
次に、テスト対象プログラムは、ショッピングリボルビング払いが停止となっているか否かを判別するためのショッピングリボ停止チェックを行う。
0046
このショッピングリボ停止チェックにおいて、テスト対象プログラムは、ファクター「顧客決済区分」が「ショッピングリボ」である場合であって、ショッピングリボが停止となっているときには売上データ中の顧客決済区分に「1回払い」をセットし、ショッピングリボが停止となっていないときには同じく顧客決済区分に「ショッピングリボ」をセットする。なお、ここでショッピングリボが停止となっているか否かの判別はファクター「Sリボ停止チェック」の同値に基づいてなされる。一方、ファクター「顧客決済区分」の同値がショッピングリボ以外の場合は何の処理もしない。
0047
さらに、テスト対象プログラムは、キャッシングリボルビング払いが停止となっているか否かを判別するためのキャッシングリボ停止チェックを行う。
0048
このキャッシングリボ停止チェックにおいて、テスト対象プログラムは、ファクター「顧客決済区分」が「キャッシングリボ」である場合であって、キャッシングリボが停止となっているときには売上データ中の顧客決済区分に「1回払い」をセットし、キャッシングリボが停止となっていないときには同じく顧客決済区分に「キャッシングリボ」をセットする。なお、ここでキャッシングリボが停止となっているか否かの判別はファクター「Cリボ停止チェック」の同値に基づいてなされる。一方、ファクター「顧客決済区分」の値がキャッシングリボ以外の場合は何の処理もしない。
0049
以上のような処理の概要が記載されているテスト対象プログラムの仕様書に基づいて、ユーザは、ファクターの内容を示すファクター表を作成し、入力部16を用いて、そのファクター表をテストケース生成装置に対して入力する。
0050
図3は、本発明の実施の形態1に係るテストケース生成装置に入力されるファクター表の例を示す図である。図3に示すとおり、ファクター表には、ファクターの名称を格納するためのファクター名フィールド51,独立系ファクター又は依存系ファクターの何れであるのかを示す情報を格納するための独立/依存フィールド52,ファクターの値がコード値であるか否かを示す情報を格納するためのコード値フィールド53,同じく真偽の何れかの論理値であるか否かを示す情報を格納するための論理値フィールド54,同値の内容を示す同値情報を格納するための同値フィールド55,及び依存系ファクターである場合に依存関係にあるファクターの名称を格納するための依存先ファクター名フィールド56が設けられている。
0051
ここで、独立系ファクターとは他のファクターとの間で依存関係が成立していないファクターを意味し、依存系ファクターとは他のファクターとの間で依存関係が成立しているファクターを意味する。また、独立/依存フィールド52に「1」が格納されていれば独立系ファクターであることを意味し、「2」が格納されていれば依存系ファクターであることを意味する。さらに、コード値フィールド53及び論理値フィールド54に「1」が格納されていれば、ファクターの値がコード値であること及び論理値であることをそれぞれ意味し、同じく「0」が格納されていれば、ファクターの値がコード値ではないこと及び論理値ではないことをそれぞれ意味する。
0052
なお、本実施の形態では、図3に示すようなファクター表をユーザが作成することとしているが、このファクター表を生成するために必要な情報をテスト対象プログラムの仕様書に明記しておき、その仕様書をテストケース生成装置に対して入力することにより、テストケース生成装置が自動的にファクター表を生成するようにしてもよい。
0053
テストケース生成装置に対してユーザにより入力されたファクター表は、テストケース生成装置のハードディスク18に記憶される。その後、テストケース生成装置は、ユーザの指示にしたがって次の4つの処理、(1)ファクターリストの生成、(2)独立系ファクターに関する同値パターン(同値の組合せ)の生成、(3)依存系ファクターに関する同値パターンの生成、(4)テストケースの生成を実行する。
0055
まず、テストケース生成装置は、ハードディスク18に記憶されているファクター表を読み込む(S101)。そして、テストケース生成装置は、そのファクター表の独立/依存フィールド52に格納されている情報を参照して独立系ファクター及び依存系ファクターの別を確認し、その結果に基づいて、独立系ファクターに関する情報を納めるための独立系ファクターリストファイル及び依存系ファクターに関する情報を納めるための依存系ファクターリストファイルを生成する(S102)。
0056
次に、テストケース生成装置は、ハードディスク18に格納されているファクターDB34を参照し、ファクター表に格納されているファクターに関するファクター情報を取得する(S103)。また、同様にしてコードDB36を参照し、ファクター表に格納されているファクターに関するコード値情報を取得する(S104)。
0057
次に、テストケース生成装置は、ステップS103にて取得したファクター情報及びS104にて取得したコード値情報から、ファクター表に格納されているファクターの同値を示す同値情報を抽出し、その同値情報とファクター表の同値フィールド55に格納されている同値情報とが同じであるか否かを判定する(S105)。ここで同じであると判定した場合(S105でYES)は後述するステップS108へ進む。一方、同じではないと判定した場合(S105でNO)、テストケース生成装置は、異なっている同値を示す同値アンマッチリストファイルを生成し(S106)、その生成した同値アンマッチリストファイルを表示部14上に表示する(S107)。
0058
図25は、前述したようにして生成された同値アンマッチリストファイルの例を示す図である。ここでは、ファクター「売上受入区分」の同値として、ファクター表にはない「回数指定払い(均等)」、「回数指定払い(ボーナス併用)」がファクターDB34に格納されているものとする。そのため、図25に示す同値アンマッチリストファイルでは、ファクター「売上受入区分」の同値が、ファクター表とファクターDBとに分けられて対応して表示されている。
0060
ところで、ファクター表には必要な情報が欠落している場合があり得る。図3を参照すると、ファクター「不正カードチェック」についてのコード値フィールド53の値、論理値フィールド54の値、及び同値フィールド55の値が欠落している。そこで、テストケース生成装置は、ステップS103においてファクター「不正カードチェック」に関するファクター情報をファクターDB34から取得し、これらの不足している値を得る。なお、ファクター情報を取得した結果、例えばファクター「不正カードチェック」が論理型であることが判明した場合、このファクターの同値を自動的に「あり、なし」に設定するようにしてもよい。
0061
また、図3を参照すると、ファクター「売上受入区分」の同値フィールド55の値が欠落している。そこで、テストケース生成装置は、ステップS104においてファクター「売上受入区分」に関するコード値情報をコードDB36から取得し、このファクターの同値(例えば「1回払い、1回払い以外」)を取得する。
0062
このようにファクターDB34及びコードDB36それぞれからファクター情報及びコード値情報を得ることにより、ファクター表で不足している情報を補うことができるため、ファクター表を完全に作成しなくても済む場合があり、ユーザの負担を軽減すること等が可能となる。
0063
次に、テストケース生成装置は、ファクター表に格納されている各種の情報、ステップS103にて取得したファクター情報、及びステップS104にて取得したコード値情報を独立系ファクターリストファイル及び依存系ファクターリストファイルに出力することにより、これらの独立系ファクターリストファイル及び依存系ファクターリストファイルを更新し(S108)、ハードディスク18に記憶する(S109)。
0064
図5は、前述したようにして生成された独立系ファクターリストファイルの例を示す図である。図5に示すように、独立系ファクターリストファイルには、図3に示すファクター表の独立系/依存系フィールド52,ファクター名フィールド51及び同値フィールド55と同様の独立/依存フィールド101,ファクター名フィールド102及び同値フィールド103が設けられている。また、一つのファクターに対して、そのファクターの同値の数と同じ行数のレコードが設けられており、同値フィールド103には各レコードにつき一つの同値のみが格納されている。
0065
また、図6は、前述したようにして生成された依存系ファクターリストファイルの例を示す図である。図6に示すように、依存系ファクターリストファイルには、図3に示すファクター表の独立系/依存系フィールド52,依存先ファクター名フィールド56,ファクター名フィールド51及び同値フィールド55と同様の独立/依存フィールド111,依存先ファクター名フィールド112,ファクター名フィールド113及び同値フィールド114が設けられている。また、独立系ファクターリストファイルの場合と同様に、一つのファクターに対して、そのファクターの同値の数と同じ行数のレコードが設けられており、同値フィールド114には各レコードにつき一つの同値のみが格納されている。
0066
なお、このようにして生成された独立系ファクターリストファイル及び依存系ファクターリストファイルに基づいてファクターDB34を更新することにより、ファクターDB34に新たなファクター情報を格納させて次回のテストケース生成に備えるようにしてもよい。
0067
[独立系ファクターに関する同値パターンの生成]
図7は、独立系ファクターに関する同値パターンを生成する場合における本発明の実施の形態1に係るテストケース生成装置の動作の流れを示すフローチャートである。
0068
まず、テストケース生成装置は、ハードディスク18に記憶されている独立系ファクターリストファイルを読み込む(S201)。そして、テストケース生成装置は、その独立系ファクターリストファイルに後述する同値パターンを格納するための同値パターンフィールドを追加した独立系同値パターンファイルを生成する(S202)。なお、同値パターンフィールドには、生成する同値パターンの数と同じ数の列が設けられる。
0069
次に、テストケース生成装置は、生成した独立系同値パターンファイルに基づいて、独立系ファクターの同値の数の最大値nを取得する(S203)。その後、テストケース生成装置は、変数mに1をセット(S204)した後、各独立系ファクターについて、同値のm番目の行であって同値パターンフィールドのm番目の列に‘○’をセットする(S205)。そして、テストケース生成装置は、nとmとの値を比較し、nとmとが同一の値であるか否かを判定する(S206)。ここで、同一ではないと判定した場合(S206でNO)、テストケース生成装置は、mにm+1をセット(S207)した後、再度ステップS205及びS206を実行する。そして、ステップS206においてnとmとの値が同一であると判定した場合(S206でYES)、テストケース生成装置は、独立系同値パターンを記憶する(S208)。
0070
なお、独立系ファクターが複数ある場合であって、ある独立系ファクターの同値の数が他の独立系ファクターの同値の数よりも少ないとき、ステップS205において、その独立系ファクターについて同値のm番目の行が存在しない事態が生じ得る。そのような場合は、任意の行の同値パターンフィールドのm番目の列に‘○’をセットすればよい。したがって、ステップS205において、例えば当該独立系ファクターの最新に‘○’がセットされた行の同値パターンフィールドのm番目の列に‘○’をセットすればよい。このように処理しても問題ないのは、既にすべての同値について‘○’がセットされているファクターの場合、それ以降のテストケースではどの同値でテストしても問題がないためである。
0071
図8は、前述したようにして生成された独立系同値パターンファイルの例を示す図である。図8に示すように、独立系同値パターンファイルには、図5に示す独立系ファクターリストファイルと同様の独立/依存フィールド121,ファクター名フィールド122,及び同値フィールド123、並びに前述した同値パターンフィールド124が設けられている。
0073
なお、図7のフローチャートを参照して説明した処理は、各ファクターが独立関係であることを前提にしたCFD技法に則したものである。したがって、以下では、このような処理を行うことを「CFD技法を用いて処理を行う」と表現する。
0074
[依存系ファクターに関する同値パターンの生成]
図9は、依存系ファクターに関する同値パターンを生成する場合における本発明の実施の形態1に係るテストケース生成装置の動作の流れを示すフローチャートである。
0075
まず、テストケース生成装置は、ハードディスク18に記憶されている依存系ファクターリストファイルを読み込む(S301)。そして、テストケース生成装置は、その依存系ファクターリストファイルを参照して依存関係にあるファクターをグルーピングする(S302)。図6に示す依存系ファクターリストファイルの例の場合、ファクター「Sリボ事前申請チェック」及び「売上受入区分」が一つのグループとなり、ファクター「Sリボ停止チェック」、「Cリボ停止チェック」及び「顧客決済区分」が一つのグループとなる。以下、このようにして生成されたグループを依存系ファクターグループと呼ぶ。
0076
次に、テストケース生成装置は、依存系ファクターグループ毎に、依存系ファクターリストファイルに同値パターンを格納するための同値パターンフィールドを追加した依存系同値パターンファイルを生成する(S303)。なお、独立系同値パターンファイルの生成の場合と同様に、この同値パターンフィールドには生成する同値パターンの数と同じ数の列が設けられる。
0077
次に、テストケース生成装置は、複数の依存系ファクターグループのうち特定の一つの依存系ファクターグループを選択し(S304)、その依存系ファクターグループ内のファクターの同値の組合せが網羅的になるように、当該依存系ファクターグループに係る依存系同値パターンファイルの同値パターンフィールドの列に‘○’をセットする(S305)。そして、テストケース生成装置は、このようにして‘○’がセットされた依存系同値パターンファイルをハードディスク18に記憶する(S306)。
0078
その後、テストケース生成装置は、すべての依存系ファクターグループを選択したか否かを判定する(S307)。ここで、まだ選択されていない依存系ファクターグループがあると判定した場合(S307でNO)、テストケース生成装置はステップS304に戻る。一方、すべての依存系ファクターグループを選択したと判定した場合(S307でYES)、テストケース生成装置は後述するステップS308へ進む。
0079
図10及び図11は、前述したようにして生成された依存系同値パターンファイルの例を示す図である。図10及び図11に示すように、依存系同値パターンファイルには、図6に示す依存系ファクターリストファイルの独立/依存フィールド111,依存先ファクター名フィールド112,ファクター名フィールド113及び同値フィールド114と同様の独立/依存フィールド131,依存先ファクター名フィールド132,ファクター名フィールド133及び同値フィールド134、並びに前述した同値パターンフィールド134が設けられている。
0080
図10には、ファクター「Sリボ事前申請チェック」及び「売上受入区分」から構成される依存系ファクターグループに係る依存系同値パターンファイルが示されている。この依存系ファクターグループの場合、2つのファクターの同値が2個あるため、前述したような処理が実行された結果、図10に示すとおりに同値パターンフィールド135に‘○’がセットされ、4(=2×2)個の同値パターンが生成される。
0081
また、図11には、ファクター「Sリボ停止チェック」、「Cリボ停止チェック」及び「顧客決済区分」から構成される依存系ファクターグループに係る依存系同値パターンファイルが示されている。この依存系ファクターグループの場合、ファクター「顧客決済区分」の同値が7個あり、その他の2つのファクターの同値が2個ずつあるため、前述したようにして処理が実行された結果、図11に示すとおりに同値パターンフィールド135に‘○’がセットされ、28(=7×2×2)個の同値パターンが生成される。
0082
なお、ファクター間の依存関係を考慮した場合、不要となる同値パターンが存在することがある。例えば、図10に示す同値パターンの場合、ファクター「売上受入区分」の同値が「1回払い以外」のときはファクター「Sリボ事前申請チェック」の同値が「あり」又は「ない」の何れかでも良い。したがって、図10に示す3番目の同値パターンは不要となる。その結果、この依存系グループの場合、図10に示す1番目、2番目、及び4番目の3個の同値パターンで足りる。
0083
また、図11に示す同値パターンの場合、ファクター「Sリボ停止チェック」の同値が「あり」の同値パターンはファクター「顧客決済区分」の同値が「ショッピングリボ」のときだけでよい。同様に、ファクター「Cリボ停止チェック」の同値が「あり」の同値パターンはファクター「顧客決済区分」の同値が「キャッシングリボ」のときだけでよい。その結果、28個の同値パターンのうち21個は不要となり、同値パターンは7個あれば足りることになる。
0084
このように不要な同値パターンが存在していることを確認したユーザは、それらの不要な同値パターンを削除するようにテストケース生成装置に指示することができる。以下ではこの削除指示がなされ、テストケース生成装置において不要な同値パターンを削除するように依存系同値パターンファイルを更新したものとして説明する。なお、このように不要な同値パターンを削除する処理は任意のものであり、必要に応じて実行すればよい。
0085
テストケース生成装置は、以上のようにしてハードディスク18に記憶された各依存系ファクターグループに係る依存系同値パターンファイルを読み込み、読み込んだ複数の依存系同値パターンファイルを結合する(S308)。ここで、各依存系ファクターグループ間には独立関係が成立している。したがって、ステップS308における結合処理は、CFD技法を用いて行われる。その結果、図12に示す結合処理後の依存系同値パターンファイルのとおりに同値パターンフィールド135に‘○’がセットされた7個の同値パターンが生成される。
0086
最後に、テストケース生成装置は、結合処理の結果得られた依存系同値パターンファイルをハードディスク18に記憶する(S309)。
0087
[テストケースの生成]
図13は、テストケースを生成する場合における本発明の実施の形態1に係るテストケース生成装置の動作の流れを示すフローチャートである。
0088
まず、テストケース生成装置は、ハードディスク18に記憶されている独立系同値パターンファイル及び依存系同値パターンファイルを読み込む(S401)。また、テストケース生成装置は、独立系同値パターンファイル及び依存系同値パターンファイルの同値パターンフィールドの代わりに後述するテストケースを格納するためのテストケースフィールドを設けたテストケースファイルを生成する(S402)。なお、テストケースフィールドには、生成するテストケースの数と同じ数の列が設けられる。
0089
次に、テストケース生成装置は、ステップS401にて読み込んだ独立系同値パターンファイル及び依存系同値パターンファイルを結合し(S403)、その結果をテストケースファイルに出力する(S404)。ここで、独立系同値パターンと依存系同値パターンとの間には独立関係が成立している。したがって、ステップS402における結合処理は、CFD技法を用いて行われる。
0090
図14は、前述したようにして得られたテストケースファイルの例を示す図である。図14に示すように、テストケースファイルには、図11及び図12に示す依存系同値パターンファイルと同様の独立/依存フィールド141,依存先ファクター名フィールド142,ファクター名フィールド143,及び同値フィールド143、並びに前述したテストケースフィールド145が設けられている。
0091
前述したように処理が実行された結果、図14に示すとおりにテストケースフィールド145には‘○’がセットされている。ここで、図14に示す例では、1番目から7番目までのテストケースが主に依存系ファクターのテストを考慮したものとなり、8,9番目のテストケースが主に独立系ファクターのテストを考慮したものとなっている。
0092
最後に、テストケース生成装置は、ステップS404にて結合処理の結果が出力されたテストケースファイルをハードディスク18に記憶する(S404)。
0093
このようにして生成されたテストケースは、ファクター間の依存関係が考慮された上で生成されたものであるから、単にCFD技法のみを用いて生成する従来の場合と異なり、必要なテストケースが欠落する事態を回避することができる。
0094
また、独立関係にあるファクターの同値パターンについては、CFD技法を用いることにより、その数を抑制することができる。
0095
なお、テスト対象プログラムのテストを行う際、ユーザは、テストケース生成装置に対して、ハードディスク18に記憶されているテストケースファイルを表示部14に表示させるように指示する。その結果、表示部14にテストケースファイルの内容が表示され、ユーザはその内容を確認しながらテストシナリオを作成することにより、信頼性の高いテストを効率良く実行することができる。
0096
(実施の形態2)
本発明の実施の形態2に係るテストケース生成装置は、あるファクターが特定の値をとった場合にその時点で処理が終了するテストケースである無効系テストケースと、無効系テストケース以外の有効系テストケースとを分けて生成することができるものである。なお、実施の形態2のテストケース生成装置の構成は、実施の形態1の場合と同様であるので説明を省略する。以下、実施の形態2のテストケース生成装置の動作について説明する。
0097
図2に示すような処理の概要が記載されている対象プログラムの仕様書に基づいて、ユーザは、ファクターの内容を示すファクター表を作成し、入力部16を用いて、そのファクター表をテストケース生成装置に対して入力する。
0098
図15は、実施の形態2におけるファクター表の例を示す図である。図15に示すように、このファクター表のファクター「カード解約チェック」の同値フィールド55には「あり*」、「なし」がセットされている。ここで「あり*」は、ファクター「カード解約チェック」の同値が「あり」である場合のテストケースは無効系テストケースになることを表している。
0099
なお、テストケース生成装置が自動的にファクター表を生成するようにしてもよいことは実施の形態1の場合と同様である。
0100
テストケース生成装置に対してユーザにより入力されたファクター表は、テストケース生成装置のハードディスク18に記憶される。その後、実施の形態1の場合と同様に、ユーザの指示にしたがって、テストケース生成装置は次の4つの処理、(1)ファクターリストの生成、(2)独立系ファクターに関する同値パターンの生成、(3)依存系ファクターに関する同値パターンの生成、(4)テストケースの生成を実行する。
0101
[ファクターリストの生成]
実施の形態2のテストケース生成装置は、実施の形態1の場合と同様にして独立系ファクターリストファイル及び依存系ファクターリストファイルを生成する。ただし、前述したとおり実施の形態2の場合では、実施の形態1の場合と異なり、テストケース生成装置が読み込むファクター表に「*」が付されているファクターの同値が存在することがある。このように「*」が付されていることを示す情報を格納するために、実施の形態2のテストケース生成装置が生成する独立系ファクターリストファイル及び依存系ファクターリストファイルには、無効系フィールドが設けられている。
0102
図16は、実施の形態2に係るテストケース生成装置が生成する独立系ファクターリストファイルの例を示す図である。図16に示すように、この独立系ファクターリストファイルには、実施の形態1の場合の独立/依存フィールド101,ファクター名フィールド102及び同値フィールド103と、前述した無効系フィールド201とが設けられている。そして、この例では、ファクター「カード解約チェック」の同値「あり」の場合について、無効系フィールド201の列に‘○’がセットされている。
0103
また、図17は、実施の形態2に係るテストケース生成装置が生成する依存系ファクターリストファイルの例を示す図である。図17に示すように、この依存系ファクターリストファイルには、実施の形態1の場合の独立/依存フィールド111,依存先ファクター名フィールド112,ファクター名フィールド113及び同値フィールド114と、前述した無効系フィールド211とが設けられている。そして、この例では、ファクター表の依存系ファクターの同値には「*」がないため、何れの行の無効系フィールド201の列にも‘○’がセットされていない。
0104
以上のように無効系フィールドが設けられた独立系ファクターリストファイル及び依存系ファクターリストファイルが生成され、ハードディスク18に記憶される。
0105
[独立系ファクターに関する同値パターンの生成]
図18は、独立系ファクターに関する同値パターンを生成する場合における本発明の実施の形態2に係るテストケース生成装置の動作の流れを示すフローチャートである。なお、ステップS201乃至S208については実施の形態1の場合と同様なので同一符号を付して説明を省略する。ただし、ステップS202で生成される独立系同値パターンファイルの最下行には、後述するように、生成された同値パターンが有効系であるのか又は無効系であるのかを示すための行である有効系レコード及び無効系レコードが設けられている。
0106
テストケース生成装置は、ステップS206においてnとmとの値が同一であると判定した場合(S206でYES)、無効系フィールドに‘○’がセットされている列があるか否かを判定する(S501)。ここで、当該列があると判定した場合(S501でYES)、テストケース生成装置は、独立系同値パターンファイルの無効系レコードの当該列に‘○’をセットし(S502)、有効系レコードのその他の列に‘○’をセットする(S503)。一方、無効系フィールドに‘○’がセットされている列はないと判定した場合(S501でNO)、テストケース生成装置は、有効系レコードのすべての列に‘○’をセットする(S503)。
0107
図19は、実施の形態2に係るテストケース生成装置が生成する独立系同値パターンファイルの例を示す図である。図19に示すように、最下行には前述した有効系レコード125及び無効系レコード126が設けられている。そして、前述した処理の結果、1番目の同値パターン(ファクター「カード解約チェック」の同値が「あり」の場合の同値パターン)の列の無効系レコードに‘○’がセットされている。また、この1番目の同値パターンのようにファクター「カード解約チェック」の同値が「あり」の場合は処理が終了することになるため、ファクター「不正カードチェック」の行には‘○’がセットされていない。
0108
[依存系ファクターに関する同値パターンの生成]
図20は、依存系ファクターに関する同値パターンを生成する場合における本発明の実施の形態2に係るテストケース生成装置の動作の流れを示すフローチャートである。なお、ステップS301乃至S309については実施の形態1の場合と同様なので同一符号を付して説明を省略する。ただし、ステップS302で生成される依存系同値パターンファイルの最下行には、独立系同値パターンファイルと同様に有効系レコード及び無効系レコードが設けられている。
0109
テストケース生成装置は、すべての依存系ファクターグループを選択したと判定した場合(S307でYES)、無効系フィールドに‘○’がセットされている列があるか否かを判定する(S601)。ここで、当該列があると判定した場合(S601でYES)、テストケース生成装置は、依存系同値パターンファイルの無効系レコードの当該列に‘○’をセットし(S602)、有効系レコードのその他の列に‘○’をセットする(S603)。一方、無効系フィールドに‘○’がセットされている列はないと判定した場合(S601でNO)、テストケース生成装置は、有効系レコードのすべての列に‘○’をセットする(S603)。
0110
図21及び図22は、実施の形態2に係るテストケース生成装置が生成する依存系同値パターンファイルの例を示す図である。また、図23は、実施の形態2に係るテストケース生成装置が生成する結合処理後の依存系同値パターンファイルの例を示す図である。
0111
図21から図23に示すように、最下行には前述した有効系レコード136及び無効系レコード137が設けられている。そして、図17に示すとおり依存系ファクターリストファイルの無効系フィールド211には1つも‘○’がセットされていないため、依存系同値パターンファイルの同値パターンフィールド135のすべての列において有効系レコードに‘○’がセットされている。
0112
[テストケースの生成]
実施の形態2のテストケース生成装置は、実施の形態1の場合と同様にしてテストケースファイルを生成する。ただし、実施の形態2の場合、テストケースファイルの最下行には有効系レコード及び無効系レコードが設けられている。また、無効系レコードに‘○’がセットされているテストケースフィールドの列には、無効系のファクターの同値の行以外のすべての行について‘○’が削除される。
0113
図24は、実施の形態2のテストケース生成装置が生成するテストケースファイルの例を示す図である。図24に示すように、テストケースファイルの最下行には有効系レコード146及び無効系レコード147が設けられている。ここで、図24に示す例では、2番目から9番目までのテストケースが主に依存系ファクターのテストを考慮したものとなり、1,9番目のテストケースが主に独立系ファクターのテストを考慮したものとなっている。そして、1番目のテストケースは無効系のテストケースであり、無効系のファクター「カード解約チェック」の同値「あり」の行には‘○’がセットされ、それ以外のすべての行には‘○’がセットされていない。
0114
このようにして無効系であるか否かが考慮されたテストケースを生成することにより、より効率的にテスト対象プログラムのテストを行うことが可能になる。
0115
本発明に係るテストケース生成方法、テストケース生成装置及びコンピュータプログラムは、信頼性の高いテストを行うために必要となるテストケースを生成するテストケース生成装置等に有用である。
図面の簡単な説明
0116
本発明の実施の形態1に係るテストケース生成装置の構成を示すブロック図である。
テスト対象となるコンピュータプログラムの仕様書の例を示す図である。
本発明の実施の形態1に係るテストケース生成装置に入力されるファクター表の例を示す図である。
ファクターリストを生成する場合における本発明の実施の形態1に係るテストケース生成装置の動作の流れを示すフローチャートである。
実施の形態1に係るテストケース生成装置が生成する独立系ファクターリストファイルの例を示す図である。
実施の形態1に係るテストケース生成装置が生成する依存系ファクターリストファイルの例を示す図である。
独立系ファクターに関する同値パターンを生成する場合における本発明の実施の形態1に係るテストケース生成装置の動作の流れを示すフローチャートである。
実施の形態1に係るテストケース生成装置が生成する独立系同値パターンファイルの例を示す図である。
依存系ファクターに関する同値パターンを生成する場合における本発明の実施の形態1に係るテストケース生成装置の動作の流れを示すフローチャートである。
実施の形態1に係るテストケース生成装置が生成する依存系同値パターンファイルの例を示す図である。
実施の形態1に係るテストケース生成装置が生成する依存系同値パターンファイルの例を示す図である。
実施の形態1に係るテストケース生成装置が生成する結合処理後の依存系同値パターンファイルの例を示す図である。
テストケースを生成する場合における本発明の実施の形態1に係るテストケース生成装置の動作の流れを示すフローチャートである。
実施の形態1に係るテストケース生成装置が生成するテストケースファイルの例を示す図である。
実施の形態2に係るテストケース生成装置が用いるファクター表の例を示す図である。
実施の形態2に係るテストケース生成装置が生成する独立系ファクターリストファイルの例を示す図である。
実施の形態2に係るテストケース生成装置が生成する依存系ファクターリストファイルの例を示す図である。
独立系ファクターに関する同値パターンを生成する場合における本発明の実施の形態2に係るテストケース生成装置の動作の流れを示すフローチャートである。
実施の形態2に係るテストケース生成装置が生成する独立系同値パターンファイルの例を示す図である。
依存系ファクターに関する同値パターンを生成する場合における本発明の実施の形態2に係るテストケース生成装置の動作の流れを示すフローチャートである。
実施の形態2に係るテストケース生成装置が生成する依存系同値パターンファイルの例を示す図である。
実施の形態2に係るテストケース生成装置が生成する依存系同値パターンファイルの例を示す図である。
実施の形態2に係るテストケース生成装置が生成する結合処理後の依存系同値パターンファイルの例を示す図である。
実施の形態2のテストケース生成装置が生成するテストケースファイルの例を示す図である。
同値アンマッチリストファイルの例を示す図である。
符号の説明
0117
10 CPU
12メモリ
14 表示部
16 入力部
18ハードディスク
20外部記憶装置
22可搬型記録媒体
30テストケース生成プログラム
32オペレーティングシステム
34ファクターDB
36 コードDB