(57)【要約】【課題】生成された組み合わせのテストケースをさらに効率化のために削減し、テストケースの質の向上を図ることのできるテストケース生成支援装置を提供する。【解決手段】テスト対象となる機器あるいはシステムの機能に関する因子および各因子の取り得る水準を入力する入力部と、入力部で入力した因子および水準に基づいて、２因子間の組み合わせを網羅するように縦横に因子を配置した格子構造の２因子間網羅度マトリクスを生成するマトリクス作成部と、因子および水準から任意に選択した２変数の組み合わせをテストケースとして入力するテストケース入力部と、マトリクスに基づいて、２因子間の網羅度を算出する網羅度算出部と、因子および水準から任意に選択した２変数を互いに組み合わせて成る組み合わせテストを生成する組み合わせ生成部と、２因子間の網羅度が１００%を満たすのに不要なテストケースを検出する検出部と、を備え、組み合わせ生成部で生成された組み合わせテストから、不要なテストケースを削除する。【選択図】図１
2014026458.tif 000002
【特許請求の範囲】
【請求項１】
テスト対象となる機器あるいはシステムの機能に関する因子および各因子の取り得る水準を入力する入力部と、
前記入力部で入力した因子および水準に基づいて、２因子間の組み合わせを網羅するように縦横に因子を配置した格子構造の２因子間網羅度マトリクスを生成するマトリクス作成部と、
前記因子および水準から任意に選択した２変数の組み合わせをテストケースとして入力するテストケース入力部と、
前記マトリクスに基づいて、２因子間の網羅度を算出する網羅度算出部と、
前記因子および水準から任意に選択した２変数を互いに組み合わせて成る組み合わせテストを生成する組み合わせ生成部と、
前記２因子間の網羅度が１００%を満たすのに不要なテストケースを検出する検出部と、を備え、
前記組み合わせ生成部で生成された組み合わせテストから、前記不要なテストケースを削除するテストケース生成支援装置。
【請求項２】
前記マトリクスは、ＣＳＶ形式の表形式又はＸＭＬのタグ形式で生成する請求項１記載のテストケース生成支援装置。
【請求項３】
前記テストケース入力部は、既に生成された既存のテストケースのデータを入力する請求項１又は請求項２記載のテストケース生成支援装置。
【請求項４】
前記不要なテストケースの検出は、Nt件のテストケースごとに、
１）N個の因子に対して、i番目とj番目の因子の水準を取り出し、２因子間網羅マトリクス上の出現回数を確認（iは1からN-1、jはiからN）し、
２）上記すべてにおいて、禁則の組み合わせを除いて出現回数が２以上であった場合は、不要なテストケースとして検出する、
の一連の処理をNt回繰り返す請求項１乃至請求項３のいずれか１項に記載のテストケース生成支援装置。
【請求項５】
前記検出部は、テストケースをＧＵＩ情報として表示する表示部を備え、検出した不要なテストケースの削除をユーザの操作によって決定可能な請求項１乃至請求項４のいずれか１項に記載のテストケース生成支援装置。
【請求項６】
前記不要なテストケースを削除した組み合わせテストの結果を表示する表示部を備える請求項１乃至請求項４のいずれか１項に記載のテストケース生成支援装置。
【請求項７】
前記不要なテストケースを削除した組み合わせテストの結果を印字する印刷装置を備える請求項１乃至請求項４のいずれか１項に記載のテストケース生成支援装置。
【請求項８】
組み合わせ不可能な２変数の組み合わせを禁則情報として入力する禁則情報入力部と、
別の水準に変更しても２因子間網羅度が下がることのない変更可能な水準を検出する変更可能水準検出部と、を備え、
前記組み合わせ生成部は、前記禁則情報にもとづいて禁則の組み合わせが出現しないように、２因子間網羅度１００％を満たす組み合わせのテストケースを生成する請求項１記載のテストケース生成支援装置。
【請求項９】
前記組み合わせ生成部は、前記変更可能水準検出部で検出した水準で２因子間網羅度１００％を満たす組み合わせのテストケースを生成する請求項８に記載のテストケース生成支援装置。
【請求項１０】
前記変更可能な水準の検出は、Nt件のテストケースごとに、
１）N個の因子に対して、i番目の因子の水準を取り出し、以下の処理をN回繰り返す、
i以外のj番目の因子の水準を取り出し、i番目の因子の水準とのテストマトリクス上の出現回数を判定する（jは1からN）、
上記すべてにおいて、禁則の組み合わせを除いて出現回数が２以上であった場合は、変更可能水準として検出する、
２）N番目の因子までの変更可能水準の検出が終わった後、再度i番目の因子の水準を取り出し、以下の処理をN回繰り返す、
i番目の因子の水準が変更可能水準ならば、i以外のj番目の因子の水準を取り出し、i番目の因子の水準とのテストマトリクス上の出現回数を１減らす（jは1からN）、
の処理をNt回繰り返す請求項８又は請求項９記載のテストケース生成支援装置。
【請求項１１】
ユーザによって設定される禁則の矛盾あるいは禁則の漏れを検出する禁則矛盾検出部を備え、
前記検出した禁則の矛盾あるいは禁則の漏れに応じて、再入力した禁則情報に基づいて組み合わせテストを再生成する請求項１記載のテストケース生成支援装置。
【請求項１２】
前記禁則の漏れの検出は、
因子Bの水準B1、因子Cの水準C1において、因子A（水準A1,A2,A3）との禁則関係が、
１）水準A1と水準B1,C1の何れか（または、両方）が禁則
２）水準A2と水準B1,C1の何れか（または、両方）が禁則
３）水準A3と水準B1,C1の何れか（または、両方）が禁則
であるならば、水準B1と水準C1は禁則に成り得ることを利用し、
因子Xのすべての水準に対して組み合わせをチェックしている２つの水準の何れか又は両方が禁則になっていることを判定して行う請求項１１記載のテストケース生成支援装置。
【請求項１３】
前記禁則情報の再入力後、２因子間網羅度の算出を行い、前記禁則情報の再入力の影響を判定する請求項１１記載のテストケース生成支援装置。
【請求項１４】
組み合わせを考慮しない除外因子および除外水準の設定を行う除外因子・水準設定部を備え、
ユーザが指定する因子・水準を２因子間網羅の対象からはずすことを可能とする請求項１記載のテストケース生成支援装置。
【請求項１５】
前記除外因子および除外水準以外の因子・水準の２因子網羅、および前記除外因子の水準、除外水準の単機能網羅をそれぞれ１００％満たすようにテストケースを生成する請求項１４記載のテストケース生成支援装置。
【請求項１６】
前記入力部は、前記除外因子・水準設定部を兼用する請求項１４記載のテストケース生成支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、テストケース生成支援装置に関する。
【背景技術】
【０００２】
近年、多くの機器がコンピュータ・ソフトウェアによって制御されている。機器の高機能化等が進み、機器の動作を制御するためのパラメータも数多くなっている。
【０００３】
ソフトウェアは、さまざまなパラメータの組み合わせにより、その挙動が異なってくる。これらパラメータの組み合わせを総当たりで行うことはテスト件数の爆発を招き、実際に行うのは多くの場合、不可能である。そこで、大規模、複雑化するソフトウェアの効率的な組み合わせテスト技法として、All-pair法のアルゴリズムや直交表が利用されている。
【０００４】
多くの機器における欠陥が、２つまでのパラメータが要因となって発生する事例はよく見られることである。そこで、２因子に着目して、パラメータの組み合わせを効率化することが行われる。
【０００５】
しかしながら、２因子間網羅度に着目して組み合わせのテストケースを作成する手法でも、生成されるテストケースの数が多くなり、さらに削減の要請がある。機械的に組み合わせを作成する場合には、出現頻度の高い組み合わせテストケースが出現しない可能性がある。また、機械的に組み合わせを作成する場合には、出現頻度の高い組み合わせテストケースが出現しない可能性があり、最もよく使用される組み合わせ条件でのテストが抜ける可能性がある等テストケースに人間の意図を埋め込むのが難しいだけでなく、人手でテストケースを新たに追加した場合に２因子間網羅度の視点では不要なテストケースが増えてしまうことがある。さらに、ありえない組み合わせである禁則が多々存在する場合に、禁則間に矛盾を生じることがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２５２３１６号公報
【特許文献２】特開２００６−２２７９５８号公報
【特許文献３】特開２００４−２８８０３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明が解決しようとする課題は、生成された組み合わせのテストケースをさらに効率化のために削減し、テストケースの質の向上を図ることのできるテストケース生成支援装置を提供することである。
【課題を解決するための手段】
【０００８】
実施形態のテストケース生成支援装置は、テスト対象となる機器あるいはシステムの機能に関する因子および各因子の取り得る水準を入力する入力部と、前記入力部で入力した因子および水準に基づいて、２因子間の組み合わせを網羅するように縦横に因子を配置した格子構造の２因子間網羅度マトリクスを生成するマトリクス作成部と、前記因子および水準から任意に選択した２変数の組み合わせをテストケースとして入力するテストケース入力部と、前記マトリクスに基づいて、２因子間の網羅度を算出する網羅度算出部と、前記因子および水準から任意に選択した２変数を互いに組み合わせて成る組み合わせテストを生成する組み合わせ生成部と、
前記２因子間の網羅度が１００%を満たすのに不要なテストケースを検出する検出部と、を備え、前記組み合わせ生成部で生成された組み合わせテストから、前記不要なテストケースを削除する。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係るテストケース生成支援装置の構成例を示す図である。
【図２】印刷設定の一例を示す図である。
【図３】第１の実施形態に係るテストケース生成支援装置による生成支援の処理の流れを示すフローチャートである。
【図４】因子および水準情報の一例を示す図である。
【図５】２因子間網羅度マトリクスの一例を示す図である。
【図６】入力した既存テストケースの一例を示す図である。
【図７】２因子間網羅度の算出を説明する図である。
【図８】不要なテストケースの検出を説明する図である。
【図９】第２の実施形態に係るテストケース生成支援装置の構成例を示す図である。
【図１０】第２の実施形態に係るテストケース生成支援装置による生成支援の処理の流れを示すフローチャートである。
【図１１】禁則情報の一例を示す図である。
【図１２】生成したテストケースの一例を示す図である。
【図１３】変更可能水準の検出の一例を示す図である。
【図１４】第３の実施形態に係るテストケース生成支援装置の構成例を示す図である。
【図１５】第３の実施形態に係るテストケース生成支援装置による生成支援の処理の流れを示すフローチャートである。
【図１６】禁則情報入力部から入力した禁則情報の一例を示す図である。
【図１７】禁則の矛盾、漏れの検出および禁則の再入力を説明する図である。
【図１８】第４の実施形態に係るテストケース生成支援装置による生成支援の処理の流れを示すフローチャートである。
【図１９】除外因子および除外水準の設定の一例を示す図である。
【図２０】除外因子および除外水準を考慮した２因子間網羅度マトリクスの一例を示す図である。
【図２１】除外因子および除外水準を考慮したテストケースの生成例を示す図である。
【図２２】単機能網羅テストの一例を示す図である。
【図２３】算出した２因子間網羅度の一例を対比して示すものである。
【発明を実施するための形態】
【００１０】
以下、本発明の一実施の形態について、図面を参照して説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【００１１】
まず、本実施形態で用いる主要な用語について説明する。
【００１２】
「テストケース」とは、検査対象である機器やシステムをソフトウェアで実行するテストの実施の単位である。一般に、1つのテストケースには、チェックポイントや操作手順（イベントのシーケンス）と、その操作手順で検査対象である機器やシステムをテストした結果の期待値（状態遷移のシーケンス）等を記録する。本実施形態においては、期待値等は考慮せず、組み合わせの入力をテストケースという。
【００１３】
「既存テストケース」とは、他のテストケース生成装置あるいは生成手法によって、生成済みのテストケースである。本実施形態では、既存テストケースをさらに効率的にかつ品質を向上させつつ削減する。
【００１４】
「組み合わせテスト」とは、２つ以上の変数を互いに組み合わせて実施するテスト技法である。
【００１５】
「ペア構成テスト」とは、任意の２変数のすべての組み合わせをテストするテスト技法である。２変数のすべての組み合わせを作成するため「All-pair法のアルゴリズム」や「直交表」が利用できる。直交表は、任意の２因子間の組み合わせが同数回ずつ出現するような割付のための表である。All-pair法は、任意の２因子間の組み合わせが最低1回出現する。本実施形態で取り扱う組み合わせテストは、ペア構成テストである。
【００１６】
「因子」とは、組み合わせテストの元になる条件項目、変数、パラメータなどの要因である。
【００１７】
「水準」とは、選択肢、パラメータの値などの因子の要素である。
【００１８】
「２因子間網羅度」とは、可能な２因子間の組み合わせのうち、どの程度カバーされるかを表す網羅率である。２因子間網羅度は、禁則を除くすべての任意の２因子間の水準どうしの組み合わせを分母とし、用意したテストケースに含まれる２因子間の水準どうしの組み合わせを分子として算出する。
【００１９】
「禁則」とは、組み合わせることのできないパラメータの入力である。
【００２０】
本実施形態に係るテストケース生成支援装置は、演算処理装置（ＣＰＵ）、主メモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、入力装置（例えば、キーボード、操作パネルなど）、ハードディスク装置や半導体メモリであるフラッシュメモリを使用したソリッドステートドライブ（ＳＳＤ）装置等の記憶装置を具備したパーソナル・コンピュータやワークステーション等の汎用計算機を用いることができ、テストケース生成支援用の処理プログラムをインストールすることにより実現できる。
【００２１】
（第１の実施形態）
第１の実施形態では、２因子間網羅度を確認し、２因子間網羅度が１００%を満たすのに不要なテストケースを抽出して当該テストケースの削除を行うものである。
【００２２】
図１は、第１の実施形態に係るテストケース生成支援装置の構成例を示す図である。第１の実施形態に係るテストケース生成支援装置１００は、主として因子・水準情報入力部１０と、網羅度マトリクス作成部１１と、テストケース入力部１２と、網羅度算出部１３と、組み合わせ生成部１４と、不要テストケース検出部１５から構成されている。
【００２３】
因子・水準情報入力部１０は、因子情報および水準情報を入力するものである。因子・水準情報入力部１０は、ユーザが操作することにより因子や水準に関する情報を送信する装置で、例えば、キーボードやマウス等で構成することができる。
【００２４】
網羅度マトリクス作成部１１は、因子・水準情報入力部１０で入力した因子・水準情報に基づいて、２因子間の網羅２次元マトリクスを生成するものである。マトリクスは、要素を縦横に格子状に並べたもので、横の並びである行の事象と縦の並びである列の事象の交点の要素でその両者の事象の関連の有無を示す。マトリクスは、例えば、ＣＳＶ形式等の表形式や、ＸＭＬ等のタグ形式で生成する。生成したマトリクスは、例えば図示しない表示部に表示させてもよいし、図示しないメモリ等の記憶部に記憶させてもよい。
【００２５】
テストケース入力部１２は、既存のテストケースを入力するものである。テストケース入力部１２は、ユーザが操作することによりテストケースに関する情報を送信する装置で、例えば、キーボードやマウス等で構成することができる。テストケースの形式は、例えば、ＣＳＶ形式等の表形式や、ＸＭＬ等のタグ形式を使用することができる。
【００２６】
網羅度算出部１３は、網羅度マトリクス作成部１１で生成されたマトリクスに基づいて、２因子間の網羅度を算出するものである。
【００２７】
組み合わせ生成部１４は、因子および水準から任意に選択した２変数を互いに組み合わせて成る組み合わせテストを生成するものである。
【００２８】
不要テストケース検出部１５は、網羅度算出部１３で算出された２因子間網羅度が１００%を満たすのに不要なテストケースを検出して削除するためのものである。例えば、不要テストケース検出部１５自体に表示部（図示しない）を備え、ＧＵＩ情報として表示されるテストケースから、ユーザが操作することによって不要なテストケースを削除する。
【００２９】
次に、以上のように構成されたテストケース生成支援装置１００による生成支援について説明する。
【００３０】
図２は、印刷設定の一例を示す図であり、印刷設定における各種組み合わせをテストする場合を例にして説明する。図２に示す印刷設定では、因子として「原稿サイズ」、「用紙サイズ」、「分割」、「カラー」がある。また、「原稿サイズ」の水準として「Ａ４」、「Ａ３」、「Ｂ５」があり、「用紙サイズ」の水準として「Ａ４」、「Ａ３」、「Ｂ５」があり、「分割」の水準として「なし」、「２分割」、「４分割」があり、「カラー」の水準として「白黒」、「グレー」、「カラー」がある。
【００３１】
図３は、第１の実施形態に係るテストケース生成支援装置による生成支援の処理の流れを示すフローチャートである。
【００３２】
まず、因子・水準情報入力部１０から、図４に示すような因子および水準情報を入力する（ステップＳ３１）。入力した因子および水準情報は、２因子間の網羅度マトリクスを作成する網羅度マトリクス作成部１１に送られる。
【００３３】
次いで、網羅度マトリクス作成部１１において、入力した因子および水準情報に基づき、２因子間網羅度マトリクスを作成する（ステップＳ３２）。図６は、２因子間網羅度マトリクスの一例を示す図である。単純な２次元マトリクスを利用することですべての組み合わせは交叉するマス目に出現する。同じ因子同士の組み合せは、対角線上に出現している。２因子の順序を入れ替えた組み合わせは、対角線を対称軸として上下に出現している。作成した２因子間網羅度マトリクスの情報は、組み合わせ生成部１４および網羅度算出部１３に送られる。
【００３４】
次に、テストケース入力部１２から、既存のテストケースを入力する（ステップＳ３３）。図６は、入力した既存テストケースの一例を示す図である。この例では、テストケースの総数は１０である。入力した既存テストケースの情報は、組み合わせ生成部１４に送られる。
【００３５】
次いで、網羅度算出部１３において、２因子間網羅度マトリクスの情報に基づいて２因子間網羅度を算出する（ステップＳ３４）。図７は、２因子間網羅度の算出を説明する図である。図７において、２因子間網羅度マトリクスの中の数字は、用意したテストケースにおける２因子間の組み合わせの出現回数を表している。２回出現している組み合わせを除くことができるから、２因子間の全組み合わせは５４通りであり、出現している組み合わせも５４通りである。したがって、２因子間網羅度は１００％となる。算出した２因子間網羅度の情報は、組み合わせ生成部１４および不要テストケース検出部１５に送られる。
【００３６】
そして、不要テストケース検出部１５によって、２因子間網羅度が１００％を満たすのに不要なテストケースの検出を実行する（ステップＳ３５）。すなわち、当該テストケースを削除しても、２因子間網羅度が下がらないテストケースを検出する。
【００３７】
図８は、不要なテストケースの検出を説明する図である。入力済みの既存テストケースの１０番目は、因子「原稿サイズ」の水準が「Ａ４」、因子「用紙サイズ」の水準が「Ａ４」、因子「分割」の水準が「４分割」、因子「カラー」の水準が「白黒」となっている。
【００３８】
図８に示すように、１０番目の既存テストケースにおいて、それぞれの水準の組み合わせの出現回数が２以上になっている。そこで、出現回数が２以上のテストケースを削除して組み合わせの出現回数が１減っても、すべて組み合わせが１回以上出現していることになり、２因子間網羅度は下がらない。
【００３９】
不要なテストケースの検出は、Nt件のテストケースごとに以下の処理をNt回繰り返すことにより行う。
【００４０】
１）N個の因子に対して、i番目とj番目の因子の水準を取り出し、２因子間網羅マトリクス上の出現回数を確認（iは1からN-1、jはiからN）する。  
２）上記すべてにおいて、禁則の組み合わせを除いて出現回数が２以上であった場合は、不要なテストケースとして検出する。  
３）このテストケースを削除する否かの確認を行い、ユーザによる削除可の確認がとれたら、このテストケースを不要と決定する。  
以上のようにして検出した不要なテストケースの情報は、組み合わせ生成部１４に送られる。
【００４１】
組み合わせ生成部１４では、以上のルーチンを経て、削除可能なテストケースを減らした組み合わせテストの結果を例えば、ＣＳＶ形式等の表形式や、ＸＭＬ等のタグ形式で出力する。出力先は、例えば表示部や外部に接続する印刷装置（図示しない）が好適である。
【００４２】
第１の実施形態によれば、２因子間網羅度を減少させることなく、効率的にテストケースを削減することができる。
【００４３】
（第２の実施形態）
次に、第２の実施形態について説明する。第２の実施形態は、図２に示す印刷設定を例にとり、２因子間網羅度１００％を満たす組み合わせのテストケースにおいて、変更可能な水準の検出や２因子間網羅度の状況を可視化するものである。
【００４４】
図９は、第２の実施形態に係るテストケース生成支援装置２００の構成例を示す図である。第２の実施形態では、第１の実施形態の構成に加えて、禁則情報入力部１６と変更可能水準検出部１７を備えている。また、２因子間網羅度を表示させる表示部（図示しない）を備えることも好適である。
【００４５】
禁則情報入力部１６は、組み合わせることのできない２変数の組み合わせを禁則情報として入力するものである。禁則情報入力部１６は、ユーザが操作することにより禁則に関する情報を送信する装置で、例えば、キーボードやマウス等で構成することができる。入力した禁則情報は、組み合わせ生成部１４に送られる。
【００４６】
変更可能水準検出部１７は、別の水準に変更しても２因子間網羅度が下がらないような変更可能な水準を検出するものである。
【００４７】
図１０は、第２の実施形態に係るテストケース生成支援装置２００による生成支援の処理の流れを示すフローチャートである。
【００４８】
まず、因子・水準情報入力部１０から、図４に示すような因子および水準情報を入力する（ステップＳ１０１）。入力した因子および水準情報は、網羅度マトリクス作成部１１に送られる。
【００４９】
次いで、網羅度マトリクス作成部１１において、入力した因子および水準情報に基づき、図５に示すような２因子間網羅度マトリクスを作成する（ステップＳ１０２）。
【００５０】
次に、禁則情報入力部１６から、禁則情報を入力する（ステップＳ１０３）。図１１は、禁則情報の一例を示す図である。この例では、因子「分割」の水準「４分割」に対する組み合わせとして、因子「カラー」の水準「カラー」を禁則として設定している。
【００５１】
次に、組み合わせ生成部１４において、禁則の組み合わせが出現しないように、２因子間網羅度１００％を満たす組み合わせのテストケースを生成する（ステップＳ１０４）。図１２は、生成したテストケースの一例を示す図である。尚、ステップＳ１０４では、テストケース入力部１２から既存のテストケースを入力してもよく、その場合、入力した既存テストケースの情報は、組み合わせ生成部１４に送られる。
【００５２】
次いで、網羅度算出部１３において、２因子間網羅度マトリクスの情報に基づいて２因子間網羅度を算出する（ステップＳ１０５）。ここでは、第１の実施形態と同様に、１００％になる。
【００５３】
次に、変更可能水準検出部１７において、別の水準に変更しても２因子間網羅度が下がることのない変更可能な水準を検出する（ステップＳ１０６）。図１３は、変更可能水準の検出の一例を示す図である。
【００５４】
図１２および図１３によれば、因子「原稿」の水準が「Ａ４」，因子「用紙」の水準が「Ｂ５」、因子「分割」の水準が「４分割」、因子「カラー」の水準が「白黒」である９番目のテストケースにおいて、因子「カラー」の水準「白黒」と他の因子の水準の出現回数が２以上になっている。すなわち、因子「カラー」の水準を別の水準に変更しても、出現回数がすべて１回以上出現していることになり、２因子間網羅度は下がらない。よって、図１２に示すテストケースにおいて、因子「カラー」の水準は、変更可能であることを示している。
【００５５】
同様に、図１２に示す１０番目のテストケース、因子「分割」の水準が「なし」についても、別の水準に変更しても２因子間網羅度は下がらない。
【００５６】
以上を整理すると、Nt件のテストケースごとに、以下の処理をNt回繰り返すことにより、変更可能水準の検出を行うことができる。
【００５７】
１）まず、N個の因子に対して、i番目の因子の水準を取り出し、以下の処理をN回繰り返す。  
i以外のj番目の因子の水準を取り出し、i番目の因子の水準とのテストマトリクス上の出現回数を判定する（jは1からN）。  
上記すべてにおいて、禁則の組み合わせを除いて出現回数が２以上であった場合は、変更可能水準として検出する。  
２）N番目の因子までの変更可能水準の検出が終わった後、再度i番目の因子の水準を取り出し、以下の処理をN回繰り返す。  
i番目の因子の水準が変更可能水準ならば、i以外のj番目の因子の水準を取り出し、i番目の因子の水準とのテストマトリクス上の出現回数を１減らす（jは1からN）。
【００５８】
上記では、ステップＳ１０６の処理が完了後、テストケース生成支援処理を終了させている。しかしこれに限定されることはない。すなわち、ユーザの意図をより反映させるため、ステップＳ１０６で変更可能な水準を検出したら、ステップＳ１０４に戻って処理を続け、さらに変更可能な水準を検出することも好適である。
【００５９】
以上説明したように、第２の実施形態によれば、２因子間網羅度を減少させることなく変更可能な水準を抽出することができるので、ユーザの意図を反映させたテストケースを取得することができる。
【００６０】
（第３の実施形態）
次に、第３の実施形態について説明する。第３の実施形態は、図２に示す印刷設定を例にとり、２因子間網羅度１００％を満たす組み合わせのテストケースにおいて、禁則関係の矛盾、禁則の漏れを確認するものである。
【００６１】
図１４は、第３の実施形態に係るテストケース生成支援装置３００の構成例を示す図である。第３の実施形態では、第２の実施形態の構成に加えて、禁則矛盾検出部１８を備えている。
【００６２】
禁則矛盾検出部１８は、ユーザによって設定される禁則の矛盾あるいは禁則の漏れを検出するものである。
【００６３】
図１５は、第３の実施形態に係るテストケース生成支援装置３００による生成支援の処理の流れを示すフローチャートである。
【００６４】
まず、因子・水準情報入力部１０から、図４に示すような因子および水準情報を入力する（ステップＳ１５１）。入力した因子および水準情報は、網羅度マトリクス作成部１１に送られる。
【００６５】
次いで、網羅度マトリクス作成部１１において、入力した因子および水準情報に基づき、２因子間網羅マトリクスを作成する（ステップＳ１５２）。
【００６６】
次に、禁則情報入力部１６から、禁則情報を入力する（ステップＳ１５３）。図１６は、禁則情報入力部１６から入力した禁則情報の一例を示す図である。図１６に示す例では、因子「原稿」の水準「Ａ４」と因子「分割」の水準「４分割」の組み合わせ、因子「原稿」の水準「Ｂ５」と因子「分割」の水準「４分割」の組み合わせ、因子「原稿」の水準「Ａ３」と因子「カラー」の水準「カラー」の組み合わせを禁則して入力している。
【００６７】
ところが、ここで入力した禁則情報は複雑なものであり、実は、因子「分割」の水準「４分割」、因子「カラー」の水準「カラー」の組み合わせの含まれるテストケースを作成しようとすると、原稿の水準が選べないという問題がある。これが矛盾関係であり、かような禁則は取り除かなければならない。
【００６８】
次に、既存のテストケースを入力（ステップＳ１５４）し、組み合わせ生成部１４に送る。もちろん、既存のテストケースがない場合には、第２の実施形態のように、組み合わせ生成部１４において生成する。
【００６９】
次いで、禁則の矛盾、漏れの検出を行う（ステップＳ１５５）。次に、禁則情報入力部１６から、禁則情報を再入力する（ステップＳ１５６）。図１７は、禁則の矛盾、漏れの検出および禁則の再入力を説明する図である。図１７に示す例では、因子「分割」の水準「４分割」、因子「カラー」の水準「カラー」を禁則として入力し直す。尚、再入力は、ソフトウェア処理で行っても、ユーザがマニュアルで行うようしてもよい。
【００７０】
ここで、禁則の矛盾、禁則の漏れの検出について詳述する。
【００７１】
因子Bの水準B1、因子Cの水準C1において、例えば、因子A（水準A1,A2,A3）との禁則関係で、
１）水準A1と水準B1,C1の何れか（または、両方）が禁則
２）水準A2と水準B1,C1の何れか（または、両方）が禁則
３）水準A3と水準B1,C1の何れか（または、両方）が禁則
であるならば、水準B1と水準C1は禁則に成り得る。逆に言うならば、因子Aのどれかの水準と両方とも禁則でなければ禁則でなくてよい。
【００７２】
アルゴリズム的には、任意の２つの因子の水準の２因子間の組み合わせ（水準B1とC1、水準B1とC2等…）毎に、この２因子以外のすべての因子Xに対して上記関係が成立つものがないかをチェックする。すなわち、因子Xのすべての水準に対してチェックしている２つの水準の何れか（または、両方）が禁則になっていることを確認すればよい。禁則になっていなければ、禁則設定の漏れ、もしくは設定のミスということになる。
【００７３】
次に、禁則の矛盾の検出について詳述する。
【００７４】
N個の因子に対して、テストマトリクス上からi番目とj番目の因子を取り出し、以下の処理を繰り返す（iは1からN-1、jは、iからN）。
【００７５】
i番目の因子のFi番目の水準とj番目の因子のFj番目の水準が禁則でなければ、以下の処理を繰り返す（Fiは1からi番目の因子の水準数、Fjは、1からj番目の因子の水準数）。
【００７６】
i番目、j番目以外の因子k番目の因子を取り出して、以下の処理を繰り返す（kは、1からN）。
【００７７】
K番目の因子のFk番目の水準に対して、以下の処理を繰り返す（Fkは、k番目の因子の水準数）。
【００７８】
K番目の因子のFk番目の水準とi番目の因子のFi番目の水準、もしくは、j番目の因子のFj番目の水準が禁則となっていることを確認する。
【００７９】
上記すべてにおいて、禁則が存在すれば、禁則の矛盾として検出することになる。
【００８０】
さて、ここで、フローに戻ると、再入力した禁則情報を反映させ、組み合わせ生成部１４において、組み合わせのテストケースを再生成する（ステップＳ１５７）。
【００８１】
上記したテストケース生成支援の処理では、網羅度の算出を行う処理は行っていない。しかし、例えばステップＳ１５６の処理後、２因子間網羅度の算出を行い、禁則情報の再入力の影響を確認することも好適である。
【００８２】
以上説明したように、第３の実施形態によれば、禁則関係の矛盾、禁則の漏れを確認することができるので、組み合わせテストケースの品質を向上させることができる。
【００８３】
（第４の実施形態）
次に、第４の実施形態について説明する。第４の実施形態は、図２に示す印刷設定を例にとり、２因子間網羅度１００％を満たす組み合わせテストケースから、さらにテストケースの数を減らすために因子および水準の絞り込みを行うものである。図２に示す印刷設定において、そのまま２因子間網羅度１００％を満たす組み合わせのテストケースを生成すると、その総数は１６件になる。そこで、さらなる効率化によって総数を減じる。
【００８４】
第４の実施形態に係るテストケース生成支援装置の構成は、第１の実施形態に係る構成と同様とすることができる。図１８は、第４の実施形態に係るテストケース生成支援装置による生成支援の処理の流れを示すフローチャートである。
【００８５】
まず、因子・水準情報入力部１０から図４に示すような因子および水準情報を入力する（ステップＳ１８１）。入力した因子および水準情報は、網羅度マトリクス作成部１１に送られる。
【００８６】
次いで、網羅度マトリクス作成部１１において、入力した因子および水準情報に基づき、２因子間網羅マトリクスを作成する（ステップＳ１８２）。
【００８７】
次に、テストケース入力部１２から既存のテストケースを入力（ステップＳ１８３）し、組み合わせ生成部１４に送る。
【００８８】
次に、因子・水準情報入力部１０において、組み合わせを考慮しない除外因子および除外水準の設定を行う（ステップＳ１８４）。尚、除外因子および除外水準の設定のため、因子・水準情報入力部１０の他に、別途、除外因子・水準設定部（図示しない）を独立して設けてよい。
【００８９】
図１９は、除外因子および除外水準の設定の一例を示す図である。図１９に示す例では、組み合わせを考慮しない除外因子として、「アプリ」を設定している。また、組み合わせを考慮しない除外水準として、因子「原稿」における水準「Ｂ４」、因子「用紙」における水準「Ｂ４」、因子「分割」における水準「８分割」、因子「カラー」における水準「フルカラー」をそれぞれ設定する。
【００９０】
設定した除外因子および除外水準の情報は、網羅度マトリクス作成部１１に送られる。
【００９１】
次に、網羅度マトリクス作成部１１において、除外因子および除外水準を考慮した２因子間網羅マトリクスを作成する（ステップＳ１８５）。図２０は、除外因子および除外水準を考慮した２因子間網羅マトリクスの一例を示す図である。除外因子は、因子の並びの最後、除外水準は、その因子の水準の並びの最後にしてマトリクスを作成するところに特徴がある。図２０に示す例では、並びはそのままとなっている。
【００９２】
作成した２因子間網羅マトリクスの情報は、網羅度算出部１３および組み合わせ生成部１４に送られる。
【００９３】
次に、組み合わせ生成部１４では、除外因子および除外水準を考慮したテストケースを生成する（ステップＳ１８６）。除外因子および除外水準以外の因子・水準の２因子網羅、および除外因子の水準、除外水準の単機能網羅をそれぞれ１００％カバーする形でテストケースを生成する。図２１は、除外因子および除外水準を考慮したテストケースの生成例を示す図である。図２１に示す例では、１０件のテストケースで除外水準を除いた「原稿」「用紙」「分割」「カラー」の２因子間網羅と除外水準として指定した原稿サイズ「Ｂ４」、用紙サイズ「Ｂ４」、分割「８分割」、カラー「フルカラー」の単機能網羅および「アプリ」の水準の単機能網羅をカバーしている。
【００９４】
第４の実施形態におけるテストケースの生成について整理すると以下のようになる。
【００９５】
まず、除外因子および除外水準に設定されていない因子・水準に関しては、既存のテストケース生成のアルゴリズムを用いて組み合わせを作成する。
【００９６】
次に、除外因子に設定されている因子に関しては、水準が最低１回出現するように上記作成した組み合わせに追加する。
【００９７】
次に、除外水準に設定されている水準に関しては、最低１回出現するように別途組み合わせを作成する。ただし、除外水準も含めて２因子網羅するようにテストケースを作成してもテストケースの総数が変わらない場合は、含めて作成する。
【００９８】
上記した単機能網羅テストとは、条件の値や機能の有無など抽出した水準が最低一度は含まれるテストを実施することを意味する。図２２は、単機能網羅テストの一例を示す図である。抽出したすべての水準が１度は含まれるテストを実施することは、機器の動作を確認する上で最低限必要なことである。
【００９９】
次に、網羅度算出部１３において、除外因子および除外水準を除いた２因子間網羅度の算出、および除外因子および除外水準も含めた２因子間網羅度の算出を切り換えて計算する（ステップＳ１８７）。２因子間網羅度の算出を切り換えることで、テストケースの追加の必要性や除外因子、除外水準の設定の見直しを行うことができる。
【０１００】
除外因子および除外水準を除いた２因子間網羅度の算出においては、すべての水準の組み合わせ数から除外因子のすべての水準および除外水準とその他の因子の水準の組み合わせ回数を引いたものを網羅度計算の分母とし、テストケースに含まれる水準の組み合わせで分子の数をカウントする際も、除外因子のすべての水準および除外水準とその他の因子の水準との組み合わせをカウントせずに2因子間網羅度を算出する。
【０１０１】
一方、除外因子および除外水準も含めた２因子間網羅度の算出においては、すべての水準の組み合わせ数を網羅度計算の分母とし、テストケースに含まれる水準の組み合わせで分子の数をカウントし２因子間網羅度を算出する。
【０１０２】
図２３は、算出した２因子間網羅度の一例を対比して示すものである。図２３に示すように、除外因子および除外水準を除いた２因子間網羅度は１００％であるが、除外因子および除外水準も含めた２因子間網羅度は、６５．２８％となっている。
【０１０３】
尚、除外因子および除外水準を考慮した場合、網羅度が１００％よりも相当程度下回り、例えば６０％を切るような場合には、ステップＳ１９４の除外因子および除外水準の設定からやり直すのが好適である。
【０１０４】
以上説明したように、第４の実施形態によれば、指定の因子・水準を２因子間網羅の対象からはずし、単機能網羅のテストを実現し、テストの効率化を実現することができる。また、網羅度の算出方法を切り換えることにより、指定の因子、水準を２因子間網羅の対象からはずすことによる影響や是非の把握、テストケースの追加の必要性や除外因子、水準の設定の見直しを行うことができる。そして、さらなる効率化によってテストケース総数を減じることができる。
【０１０５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０６】
１００、２００、３００・・・テストケース生成支援装置
１０・・・因子・水準情報入力部
１１・・・網羅度マトリクス作成部
１２・・・テストケース入力部
１３・・・網羅度算出部
１４・・・組み合わせ生成部
１５・・・不要テストケース検出部
１６・・・禁則情報入力部
１７・・・変更可能水準検出部
１８・・・禁則矛盾検出部
【図１】
2014026458.tif 000003
【図３】
2014026458.tif 000004
【図４】
2014026458.tif 000005
【図５】
2014026458.tif 000006
【図６】
2014026458.tif 000007
【図７】
2014026458.tif 000008
【図８】
2014026458.tif 000009
【図９】
2014026458.tif 000010
【図１０】
2014026458.tif 000011
【図１１】
2014026458.tif 000012
【図１２】
2014026458.tif 000013
【図１３】
2014026458.tif 000014
【図１４】
2014026458.tif 000015
【図１５】
2014026458.tif 000016
【図１６】
2014026458.tif 000017
【図１７】
2014026458.tif 000018
【図１８】
2014026458.tif 000019
【図１９】
2014026458.tif 000020
【図２０】
2014026458.tif 000021
【図２１】
2014026458.tif 000022
【図２２】
2014026458.tif 000023
【図２３】
2014026458.tif 000024
【図２】
2014026458.tif 000025