(57)【要約】【課題】仕様情報の制御の分岐条件からテスト項目し、抽出したテスト項目の組合せを最適化したテスト項目組合せ情報を生成するテスト項目生成装置を得ること。【解決手段】ガード条件情報解釈部５１は仕様情報６０からガード条件が２つ以上の構成モデル要素を抽出し、抽出した構成モデル要素およびガード条件数を登録したガード条件情報５２を生成する。因子数算出部５３１はガード条件情報５２の構成モデル要素毎の水準値および因子数と、因子数合計値とを算出し、直交表検索部５３２は直交表データ記憶部５５に記憶されている因子数合計値を含む直交表に対応付けられた線点図の因子の水準値と各構成モデル要素の水準値とに基づいてガード条件情報５２に登録された各構成モデル要素のガード条件の組合せを最適化する。組合せ情報出力部５７は、最適化されたガード条件の組合せをテスト項目組合せ情報として出力する。【選択図】        図１
2007249826.tif 000002
【特許請求の範囲】
【請求項１】
異なる構成モデル要素種別からなる構成モデル要素と、該構成モデル要素から他の構成モデル要素に遷移する条件であるガード条件を含む図形を用いて記載された仕様情報からテスト項目組合せ情報を生成するテスト項目生成装置において、
複数の直交表と各直交表に対応付けられた少なくとも１つの線点図を記憶する直交表データ記憶手段と、
前記仕様情報からテスト項目であるガード条件を２つ以上有する構成モデル要素を抽出し、抽出した構成モデル要素に対応付けて当該構成モデル要素が有するガード条件数、およびガード条件の文字列を登録したガード条件情報を生成するガード条件情報解釈手段と、
前記ガード条件情報解釈手段が生成したガード条件情報と、前記直交表データ記憶手段に記憶されている直交表および線点図とに基づいて、前記直交表データ記憶手段に記憶されている直交表の１つを選択して、前記ガード条件情報に登録された各構成モデル要素が有するガード条件の組合せを最適化する組合せ最適化手段と、
前記組合せ最適化手段によって最適化されたガード条件の組合せをテスト項目組合せ情報として出力する組合せ情報出力手段と、
を備えることを特徴とするテスト項目生成装置。
【請求項２】
前記組合せ最適化手段は、
前記ガード条件情報に登録されている構成モデル要素毎の水準値およびガード条件の割付に必要な因子数と、各構成モデル要素の因子数の合計値とを算出する因子数算出手段と、
前記直交表データ記憶手段に記憶されている直交表の中から前記因子数算出手段によって算出された因子数の合計値を含む直交表に対応付けられた線点図の因子の水準値と前記因子数算出手段が算出した各構成モデル要素の水準値とに基づいて直交表および線点図を選択して前記ガード条件情報に登録された各構成モデル要素が有するガード条件の組合せを最適化する直交表検索手段と、
を備えることを特徴とする請求項１に記載のテスト項目生成装置。
【請求項３】
前記仕様情報は、ＵＭＬによるアクティビティ図とすることを特徴とする請求項１または２に記載のテスト項目生成装置。
【請求項４】
前記ガード条件情報解釈手段は、
前記構成モデル要素種別がアクション状態、または条件判断であって、かつガード条件を２つ以上有する構成モデル要素を抽出すること、
を特徴とする請求項３に記載のテスト項目生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仕様情報からテスト項目を生成するテスト項目生成装置に関するものであり、特に、仕様情報の制御の分岐条件を組み合わせてテスト項目を生成するテスト項目生成装置に関するものである。
【背景技術】
【０００２】
近年では、制御システムや組込みソフトウェアなどを含む家電製品や通信機器、ＦＡ（Factory Automation）機器などの製品開発において、ＵＭＬ（Unified Modeling Language）を用いた表現方法で仕様書を作成することが一般的になっている。ＵＭＬは、機器が実現すべき所望の機能（製品仕様）を、機器が提供するサービス・機能を表現するユーズケース図や、処理状態の遷移に着目して処理手順を表現するアクティビティ図などの図によって表現する。そのため、文章による仕様書よりもＵＭＬで記載された仕様書のほうが理解しやすい。
【０００３】
しかしながら、アクティビティ図などの図によって記載された仕様書からテスト項目を作成する場合は、設計者が図中から制御の分岐条件を抽出しなければならない。近年の製品は機能が多様化しており、その制御も複雑になっている。したがって、制御の分岐条件の数も膨大なものであり、設計者が図中から制御の分岐条件を抽出するには時間と手間がかかるという問題があった。また、制御の分岐条件の抽出漏れが発生する可能性も高いという問題があった。
【０００４】
このような問題を改善するために、従来から種々の技術が考えられている。たとえば、特許文献１には、ソフトウェアの異常動作関連の記述力を高めた拡張アクティビティ図に対する逸脱の原因を分析し、分析の結果に基づいて異常動作に対するチェックアイテム（テスト項目）を生成する技術が開示されている。
【０００５】
具体的には、デビエーション分析部は、拡張アクティビティ図に示されたソフトウェアの振る舞いからの逸脱を体系的に分析してソフトウェアの異常動作を明確にする。ソフトウェア故障木分析部は、デビエーション分析部の分析の結果とソフトウェアに起こりうる致命的な信頼性故障の関係を因果関係で整理する。チェックアイテム生成部は、ソフトウェア故障木分析部によって整理された因果関係に基づいて信頼性観点からソフトウェアのテスト項目を生成する。テストケース評価部は、チェックアイテム生成部によって生成されたテスト項目を利用して、既存のテストケースを信頼性観点から評価する。
【０００６】
【特許文献１】特開２００１−１８４２３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
製品のテストにおいては、異常動作だけではなく正常動作についてもテスト項目も必要である。しかしながら、上記特許文献１に記載の従来技術では、ソフトウェアの異常動作に着目したものであり、製品に必要なすべてのテスト項目を抽出するものではない。したがって、上記特許文献１に記載の従来技術によって生成したテスト項目だけでは製品に必要なすべてのテストを行うことはできないという問題があった。
【０００８】
仮に、上記特許文献１に記載の従来技術において、ソフトウェアの正常動作を含むテスト項目、すなわち製品に必要なすべてのテスト項目を抽出したとする。この場合、製品に必要なすべてのテスト項目が、既存のテストケースに含まれているか否かを判定し、テスト項目漏れを見つけ出すことはできる。また、抽出したテスト項目を用いてテストすることも可能となる。
【０００９】
しかしながら、上記特許文献１に記載の従来技術では、図によって記載された仕様書（仕様情報）からテスト項目を抽出することはできるが、抽出したテスト項目の組合せを最適化することはできない。近年の制御システムや組込みソフトウェアなどを含む家電製品や通信機器、ＦＡ機器は、機能が複雑であり仕様情報から抽出するテスト項目も膨大なものとなる。そのため、上記特許文献１に記載の従来技術において、仕様情報からすべてのテスト項目を抽出したとしても、設計者が抽出したテスト項目の組合せを最適化しなければならないという問題が生じてしまう。
【００１０】
本発明は、上記に鑑みてなされたものであって、仕様情報の制御の分岐条件からテスト項目を抽出するとともに、抽出したテスト項目の中で同時にテスト可能なテスト項目の組合せを最適化したテスト項目組合せ情報を生成するテスト項目生成装置を得ることを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明は、異なる構成モデル要素種別からなる構成モデル要素と、該構成モデル要素から他の構成モデル要素に遷移する条件であるガード条件を含む図形を用いて記載された仕様情報からテスト項目組合せ情報を生成するテスト項目生成装置において、複数の直交表と各直交表に対応付けられた少なくとも１つの線点図を記憶する直交表データ記憶手段と、前記仕様情報からテスト項目であるガード条件を２つ以上有する構成モデル要素を抽出し、抽出した構成モデル要素に対応付けて当該構成モデル要素が有するガード条件数、およびガード条件の文字列を登録したガード条件情報を生成するガード条件情報解釈手段と、前記ガード条件情報解釈手段が生成したガード条件情報と、前記直交表データ記憶手段に記憶されている直交表および線点図とに基づいて、前記直交表データ記憶手段に記憶されている直交表の１つを選択して、前記ガード条件情報に登録された各構成モデル要素が有するガード条件の組合せを最適化する組合せ最適化手段と、前記組合せ最適化手段によって最適化されたガード条件の組合せをテスト項目組合せ情報として出力する組合せ情報出力手段と、を備えることを特徴とする。
【発明の効果】
【００１２】
この発明によれば、ガード条件情報解釈手段が、異なる構成モデル要素種別からなる構成モデル要素と、該構成モデル要素から他の構成モデル要素に遷移する条件であるガード条件を含む図形を用いて記載された仕様情報からテスト項目であるガード条件を２つ以上有する構成モデル要素を抽出し、抽出した構成モデル要素に対応付けて当該構成モデル要素が有するガード条件数、およびガード条件の文字列を登録したガード条件情報を生成し、組合せ最適化手段が、ガード条件情報と直交表データ記憶手段に記憶されている直交表および線点図とに基づいて、直交表データ記憶手段に記憶されている直交表の１つを選択して、ガード条件情報に登録された各構成モデル要素が有するガード条件の組合せを最適化し、組合せ情報出力手段が組合せ最適化手段によって最適化されたガード条件の組合せをテスト項目組合せ情報として出力するようにしている。これにより、仕様情報の制御の分岐条件からテスト項目を抽出するとともに、抽出したテスト項目の中で同時にテスト可能なテスト項目の組合せを最適化したテスト項目組合せ情報を生成するテスト項目生成装置を得ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１３】
以下に、本発明におけるテスト項目生成装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１４】
実施の形態．
図１〜図１５を参照してこの発明におけるテスト項目生成装置の実施の形態を説明する。図１は、この発明におけるテスト項目生成装置５０の構成を示すブロック図である。図１において、テスト項目生成装置５０は、ガード条件情報解釈部５１と、因子数算出部５３１および直交表検索部５３２を有する組合せ最適化部５３と、直交表データ記憶部５５と、組合せ情報出力部５７とを備え、図によって記載されている仕様情報６０からテスト項目を抽出し、抽出したテスト項目の中で同時にテスト可能なテスト項目を組合せたテスト項目組合せ情報７０を出力する。
【００１５】
ガード条件情報解釈部５１は、仕様情報６０からデータ形式仕様情報を生成し、生成したデータ形式仕様情報からテスト項目となるガード条件を抽出したガード条件情報５２を生成する。
【００１６】
図２は、ＵＭＬ（Unified Modeling Language）のアクティビティ図によって記載された仕様情報６０の一例を示す図である。仕様情報６０は、図２に示すように、開始状態１、終了状態２、アクション状態３〜８、条件判断９，１０、レーン１１、遷移１２〜２５、および同期バー２６の構成モデル要素によって制御システムや組込みソフトウェアなどを含む家電製品や通信機器、ＦＡ（Factory Automation）機器などの製品の仕様が図によって記載されている。
【００１７】
図３は、ガード条件情報解釈部５１が生成するデータ形式仕様情報の一例を示す図である。図３においては、データ形式仕様情報の登録項目として、構成モデル要素ＩＤ５１１、構成モデル要素種別５１２、構成モデル要素文字列５１３、ガード条件数５１４、ガード条件要素ＩＤ５１５、およびガード条件要素文字列５１６を挙げている。
【００１８】
構成モデル要素ＩＤ５１１には、ガード条件情報解釈部５１が仕様情報６０の構成モデル要素を抽出した際に付与する構成モデル要素を識別するための識別子（ＩＤ）である構成モデル要素ＩＤが登録される。
【００１９】
構成モデル要素種別５１２には、構成モデル要素ＩＤ５１１に登録された構成モデル要素ＩＤが示す構成モデル要素の種類が登録される。構成モデル要素文字列５１３には、構成モデル要素ＩＤ５１１に登録された構成モデル要素ＩＤが示す構成モデル要素に記載されている文字列が登録される。
【００２０】
ガード条件数５１４には、構成モデル要素ＩＤ５１１に登録された構成モデル要素ＩＤが示す構成モデル要素から他の構成モデル要素に遷移する条件であるガード条件の数、すなわち、構成モデル要素ＩＤ５１１に登録された構成モデル要素ＩＤが示す構成モデル要素に属するカード条件の数が登録される。
【００２１】
ガード条件要素ＩＤ５１５には、ガード条件情報解釈部５１が構成モデル要素ＩＤ５１１に登録された構成モデル要素ＩＤが示す構成モデル要素に属するガード条件を抽出した際に付与するガード条件を識別するための識別子（ＩＤ）であるガード条件要素ＩＤが登録される。ガード条件要素文字列５１６には、ガード条件要素ＩＤ５１５に登録されたガード条件要素ＩＤに記載されている文字列が登録される。
【００２２】
図４は、ガード条件情報解釈部５１によって生成されるガード条件情報５２を示す図である。ガード条件情報５２は、データ形式仕様情報から構成モデル要素種別５２２が「アクション状態」または「条件判断」であって、かつガード条件数５１４の数が「２」以上である構成モデル要素ＩＤ５１１に対応付けられている各種情報（構成モデル要素種別５１２、構成モデル要素文字列５１３、ガード条件数５１４、ガード条件要素ＩＤ５１５、ガード条件要素文字列５１６）を抽出したものである。よって、ガード条件情報５２の登録項目は、データ形式仕様情報と同様に、構成モデル要素ＩＤ５２１、構成モデル要素種別５２２、構成モデル要素文字列５２３、ガード条件数５２４、ガード条件要素ＩＤ５２５、およびガード条件要素文字列５２６となる。
【００２３】
図１に戻って、直交表データ記憶部５５は、複数種類の直交表と、各直交表に対応付けて当該直交表に対する少なくとも１つの線点図を記憶する。図５は、直交表データ記憶部５５が記憶する直交表の一例を示す図である。図５は、Ｌ４の直交表を示しており、列方向が因子を示し、行方向が組合せを示している。
【００２４】
図６は、図５に示したＬ４の直交表に対応付けられた線点図の一例を示している。また、図７は、Ｌ８の直交表に対応付けられた線点図の一例を示している。図６および図７に示した線点図において、列方向は因子を示し、行方向は当該因子に関する情報を示している。具体的には、１行目は１つの因子を識別するための識別子を示す因子ＩＤを表し、２行目は割り付け可能な水準数を表し、３行目は交互作用列であるか否か（「０」が交互作用列ではないことを示し、「１」が交互作用列であることを示す）を表している。
【００２５】
２水準系直交表では、水準値が４以上の場合には複数の因子に水準を割当てるため複数の因子が必要となり複数の因子に同一の因子ＩＤが付与される。よって、水準値がすべて「２」である図６に示した線点図においては、各因子に対して異なる因子ＩＤ「０」，「１」，「２」が付与され、水準値に「４」を含む図７に示した線点図においては、水準値が「４」の因子には同一の因子ＩＤ「０」が付与され、水準値が「２」の因子には因子ＩＤ「１」，「２」，「３」，「４」が付与されている。
【００２６】
図１に戻って、組合せ最適化部５３は、ガード条件情報解釈部５１によって生成されたガード条件情報５２の構成モデル要素に属する各ガード条件を２水準系直交表に割当てるために、構成モデル要素毎の水準値および必要な因子数と、各構成モデル要素の必要な因子数の合計値（因子数合計値）とを算出する因子数算出部５３１と、因子数算出部５３１によって算出された因子数合計値に基づいて直交表データ記憶部５５に記憶されている直交表データ（直交表および線点図）を選択する直交表検索部５３２とを備え、ガード条件の組合せを最適化する。組合せ情報出力部５７は、組合せ最適化部５３によって最適化されたガード条件の組合せをテスト項目組合せ情報７０として出力する。
【００２７】
つぎに、この発明のテスト項目生成装置５０の動作を説明する。なお、ここでは、直交表データ記憶部５５には、Ｌ２，Ｌ４，Ｌ１６，Ｌ３２，Ｌ６４，Ｌ１２８，Ｌ２５６の７種類の直交表と、各直交表に対応付けて当該直交表に対する少なくとも１つの線点図を記憶しているものとする。
【００２８】
ガード条件情報解釈部５１は、仕様情報６０からデータ形式仕様情報を生成し、生成したデータ形式仕様情報からテスト項目となるガード条件を抽出したガード条件情報５２を生成する。
【００２９】
図８のフローチャートを参照して、ガード条件情報解釈部５１の動作を詳細に説明する。図形による仕様情報６０が入力されると、ガード条件情報解釈部５１は、入力された仕様情報６０からデータ形式仕様情報を生成する（ステップＳ１００）。
【００３０】
たとえば、先の図２に示したアクティビティ図が仕様情報６０として入力されたとする。ガード条件情報解釈部５１は、図示しない辞書登録部に登録されている図形情報と当該図形情報の構成モデル要素種別に基づいて、仕様情報６０の図形から構成モデル要素および構成モデル要素種別を認識する。ガード条件情報解釈部５１は、認識した構成モデル要素に構成モデル要素を識別するための識別子である構成モデル要素ＩＤを付与し、付与した構成モデル要素ＩＤをデータ形式仕様情報の構成モデル要素ＩＤ５１１に登録し、当該構成モデル要素ＩＤに対応付けて認識した構成モデル要素種別を構成モデル要素種別５１２に登録する。また、認識した構成モデル要素に文字列が存在する場合、ガード条件情報解釈部５１は、当該構成モデル要素ＩＤに対応付けて構成モデル要素の文字列をデータ形式仕様情報の構成モデル要素文字列５１３に登録する。
【００３１】
ガード条件情報解釈部５１は、認識した構成モデル要素種別が「アクション状態」または「条件判断」であるか否かを判定する。認識した構成モデル要素種別が「アクション状態」または「条件判断」である場合、当該構成モデル要素から他の構成モデル要素に遷移するガード条件が記載されている場合がある。認識した構成モデル要素種別が「アクション状態」または「条件判断」である場合、ガード条件情報解釈部５１は、「アクション状態」または「条件判断」に属するガード条件が記載されているガード条件要素が存在するか否かを判定し、ガード条件要素が存在する場合には、ガード条件要素の文字列を抽出する。ガード条件情報解釈部５１は、抽出したガード条件要素の文字列にガード条件要素を識別するための識別子であるガード条件要素ＩＤを付与する。ガード条件情報解釈部５１は、抽出したガード条件要素が属する構成モデル要素を示す構成モデル要素ＩＤに対応付けてデータ形式仕様情報のガード条件数５１４に抽出したガード条件要素の数を登録し、ガード条件要素ＩＤ５１５にガード条件要素ＩＤを登録し、ガード条件要素文字列５１６に抽出したガード条件要素の文字列を登録する。
【００３２】
認識した構成モデル要素種別が「アクション状態」または「条件判断」ではない場合、または「アクション状態」または「条件判断」に属するガード条件が記載されているガード条件要素が存在しない場合、ガード条件情報解釈部５１は、データ形式仕様情報のガード条件数５１４には「０」を登録する。
【００３３】
先の図２に示したアクティビティ図は、開始状態１、終了状態２、アクション状態３〜８、条件判断９，１０、レーン１１、遷移１２〜２５、および同期バー２６からなる構成モデル要素によって記載されている。この図２に示したアクティビティ図が入力された場合、ガード条件情報解釈部５１は、先の図３に示したデータ形式仕様情報を生成する。図２においては、アクション状態３，４，６〜８には当該構成モデル要素に属するガード条件が存在していない。そのため、アクション状態３，４，７，８の構成モデル要素ＩＤ「３」，「４」，「７」〜「８」に対応付けられたガード条件数５１４には「０」が登録され、ガード条件が存在するアクション状態５および条件判断９，１０の構成モデル要素ＩＤ「５」，「９」，「１０」に対応付けられたガード条件数５１４にはガード条件の数としてそれぞれ「２」が登録されている。また、構成モデル要素ＩＤ「５」に対応付けられたガード条件要素ＩＤ５１５およびガード条件要素文字列５１６には、ガード条件要素ＩＤ「５−１」，「５−２」およびガード条件要素の文字列「ガード条件＃３」，「ガード条件＃４」が登録され、構成モデル要素ＩＤ「９」に対応付けられたガード条件要素ＩＤ５１５およびガード条件要素文字列５１６には、ガード条件要素ＩＤ「９−１」，「９−２」およびガード条件要素の文字列「ガード条件＃１」，「ガード条件＃２」が登録され、構成モデル要素ＩＤ「１０」に対応付けられたガード条件要素ＩＤ５１５およびガード条件要素文字列５１６には、ガード条件要素ＩＤ「１０−１」，「１０−２」およびガード条件要素の文字列「ガード条件＃５」，「ガード条件＃６」が登録されている。
【００３４】
図８に戻って、図形による仕様情報６０からデータ形式仕様情報を生成すると、ガード条件情報解釈部５１は、生成したデータ形式仕様情報からガード条件情報５２を生成する。ガード条件情報解釈部５１は、データ形式仕様情報から処理対象とする構成モデル要素の構成モデル要素ＩＤ（処理対象構成モデル要素ＩＤ）を選択する（ステップＳ１０１）。
【００３５】
ガード条件情報解釈部５１は、処理対象構成モデル要素ＩＤに対応付けてデータ形式仕様情報の構成モデル要素種別５１２に登録されている構成モデル要素種別に基づいて、処理対象構成モデル要素ＩＤが示す構成モデル要素の構成モデル要素種別が「アクション状態」または「条件判断」であるか否かを判定する（ステップＳ１０２）。
【００３６】
処理対象構成モデル要素ＩＤが示す構成モデル要素の構成モデル要素種別が「アクション状態」または「条件判断」である場合、ガード条件情報解釈部５１は、処理対象構成モデル要素ＩＤに対応付けてデータ形式仕様情報のガード条件数５１４に登録されているガード条件数に基づいて、処理対象構成モデル要素ＩＤが示す構成モデル要素に属するガード条件の数が「２」以上であるか否かを判定する（ステップＳ１０３）。
【００３７】
処理対象構成モデル要素ＩＤが示す構成モデル要素に属するガード条件の数が「２」以上である場合、ガード条件情報解釈部５１は、処理対象構成モデル要素ＩＤに対応付けられてデータ形式仕様情報に登録されている各種情報（構成モデル要素種別、構成モデル要素文字列、ガード条件数、ガード条件要素ＩＤ、およびガード条件要素文字列）を抽出し、抽出した各種情報を処理対象構成モデル要素ＩＤに対応付けてガード条件情報５２に登録する（ステップＳ１０４）。
【００３８】
処理対象構成モデル要素ＩＤが示す構成モデル要素の構成モデル要素種別が「アクション状態」または「条件判断」ではない場合、処理対象構成モデル要素ＩＤが示す構成モデル要素の構成モデル要素種別が「アクション状態」または「条件判断」であって、かつ処理対象構成モデル要素ＩＤが示す構成モデル要素に属するガード条件の数が「２」より小さい場合、または抽出した各種情報を処理対象構成モデル要素ＩＤに対応付けてガード条件情報５２に登録した後に、ガード条件情報解釈部５１は、データ形式仕様情報の構成モデル要素ＩＤ５１１に登録されている構成モデル要素ＩＤの中に未処理の構成モデル要素ＩＤが存在するか否かを判定する（ステップＳ１０５）。
【００３９】
データ形式仕様情報の構成モデル要素ＩＤ５１１に登録されている構成モデル要素ＩＤの中に未処理の構成モデル要素ＩＤが存在する場合、ガード条件情報解釈部５１は、未処理の構成モデル要素ＩＤを新たな処理対象構成モデル要素ＩＤとして選択し、選択した処理対象構成モデル要素ＩＤが示す構成モデル要素が「アクション状態」または「条件判断」であって、かつ当該構成モデル要素に属するガード条件の数が「２」以上であるか否かを判定し、処理対象構成モデル要素ＩＤが示す構成モデル要素が「アクション状態」または「条件判断」であって、かつ当該構成モデル要素に属するガード条件の数が「２」以上である場合には、処理対象構成モデル要素ＩＤに対応付けられてデータ形式仕様情報に登録されている各種情報を抽出し、抽出した各種情報を処理対象構成モデル要素ＩＤに対応付けてガード条件情報５２に登録する動作を、未処理の構成モデル要素ＩＤが存在しなくなるまで繰り返す（ステップＳ１０１〜Ｓ１０５）。
【００４０】
先の図３に示したデータ形式仕様情報においては、構成モデル要素ＩＤ「５」が示す構成モデル要素の構成モデル要素種別が「アクション状態」であって、かつガード条件数が「２」であり、構成モデル要素ＩＤ「９」，「１０」が示す構成モデル要素の構成モデル要素種別が「条件判断」であって、かつガード条件数がそれぞれ「２」となっている。したがって、ガード条件情報解釈部５１は、先の図４に示すように、構成モデル要素ＩＤ「５」，「９」，「１０」に対応付けられてデータ形式仕様情報に登録されている構成モデル要素種別、構成モデル要素文字列、ガード条件数、ガード条件要素ＩＤ、およびガード条件要素文字列を抽出してガード条件情報５２に登録する。
【００４１】
ガード条件情報５２を生成した後、ガード条件情報解釈部５１は、因子数算出指示を因子数算出部５３１に出力する。因子数算出指示を受けると、因子数算出部５３１は、ガード条件情報５２に基づいて構成モデル要素毎の水準値および必要な因子数と、各構成モデル要素の必要な因子数の合計値（因子数合計値）とを算出する。
【００４２】
図９のフローチャートを参照して、因子数算出部５３１がガード条件情報５２に基づいて構成モデル要素毎の因子数を算出する動作を詳細に説明する。因子数算出部５３１は、因子数合計値をクリア（因子数合計値＝０に）する（ステップＳ２００）。
【００４３】
因子数算出部５３１は、ガード条件情報５２から処理対象とする構成モデル要素の構成モデル要素ＩＤ（処理対象構成モデル要素ＩＤ）を選択する（ステップＳ２０１）。因子数算出部５３１は、処理対象構成モデル要素ＩＤが示す構成モデル要素（処理対象構成モデル要素）に属するガード条件の数から処理対象構成モデル要素の水準値を求める（ステップＳ２０２）。
【００４４】
具体的には、因子数算出部５３１は、処理対象構成モデル要素ＩＤに対応付けてガード条件情報５２のガード条件数５２４に登録されているガード条件の数を抽出する。因子数算出部５３１は、抽出したガード条件の数以上となる最小の２のべき乗を求め、この値を処理対象構成モデル要素の水準値とする。
【００４５】
因子数算出部５３１は、水準値から必要な因子数を求める（ステップＳ２０３）。具体的には、因子数算出部５３１は、水準値から「１」を減算した値を必要な因子数とする。因子数算出部５３１は、必要な因子数を因子数合計値に加算する（ステップＳ２０４）。
【００４６】
因子数算出部５３１は、ガード条件情報５２の構成モデル要素ＩＤ５２１に登録されている構成モデル要素ＩＤの中に未処理の構成モデル要素ＩＤが存在するか否かを判定する（ステップＳ２０５）。ガード条件情報５２の構成モデル要素ＩＤ５２１に登録されている構成モデル要素ＩＤの中に未処理の構成モデル要素ＩＤが存在する場合、因子数算出部５３１は、未処理の構成モデル要素ＩＤを新たな処理対象構成モデル要素ＩＤとして選択し、選択した処理対象構成モデル要素ＩＤが示す構成モデル要素の水準値を求め、求めた水準値から当該構成モデル要素に必要な因子数を求めて因子数合計値に加算する動作を、未処理の構成モデル要素ＩＤが存在しなくなるまで繰り返す（ステップＳ２０１〜Ｓ２０５）。
【００４７】
先の図４に示したガード条件情報５２には、構成モデル要素ＩＤ「５」，「９」，「１０」の３つの構成モデル要素が登録されており、それぞれの構成モデル要素に属するガード条件数は「２」である。「２」以上となる最小の２のべき乗は「２」であるので、図１０に示すように、各構成モデル要素ＩＤが示す構成モデル要素の水準値は「２」となり、必要な因子数は「１」となり、因子数合計値は「３」となる。
【００４８】
ここで、図１１に、ガード条件数が３〜８の場合の水準値および必要な因子数を示す。ガード条件数が「３」または「４」の場合には、ガード条件数以上となる最小の２のべき乗は「４」であるので、水準値は「４」となり、必要な因子数は「３」となる。また、ガード条件数が「５」〜「８」の場合には、ガード条件数以上となる最小の２のべき乗は「８」であるので、水準値は「８」となり、必要な因子数は「７」となる。このように、水準値が４以上の場合、２水準系直交表では複数の因子に水準を割当てるため複数の因子が必要となる。
【００４９】
因子数算出部５３１は、ガード条件情報５２に基づいて構成モデル要素毎の水準値と因子数、および因子数合計値の算出が終了すると、算出結果（各構成モデル要素ＩＤに対応付けて当該構成モデル要素ＩＤが示す構成モデル要素の水準値と因子数、および因子数合計値）を含む直交表データ検索指示を直交表検索部５３２に出力する。
【００５０】
先の図４に示したガード条件情報５２に基づいて求めた構成モデル要素ＩＤ毎の水準値と因子数、および因子数合計数は、先の図１０に示したようになっている。したがって、ここでは、因子数算出部５３１は、構成モデル要素ＩＤ「５」に対応付けた水準値「２」と因子数「１」、構成モデル要素ＩＤ「９」に対応付けた水準値「２」と因子数「１」、構成モデル要素ＩＤ「１０」に対応付けて水準値「２」と因子数「１」、および因子数合計値「３」を含む直交表データ検索指示を直交表検索部５３２に出力する。
【００５１】
直交表データ検索指示を受けると、直交表検索部５３２は、直交表データ検索指示に含まれる算出結果に基づいて、直交表データ記憶部５５に記憶されている直交表データの中から割り付け可能な直交表データを選択する。
【００５２】
図１２のフローチャートを参照して、直交表検索部５３２の動作を説明する。直交表検索部５３２は、直交表データ検索指示に含まれる因子数合計値を抽出し、直交表データ記憶部５５に記憶されている未処理の直交表の中から、抽出した因子数合計値を含む最小サイズの直交表を処理対象直交表として選択する（ステップＳ３００）。
【００５３】
直交表検索部５３２は、処理対象直交表に対応付けられて直交表データ記憶部５５に記憶されている線点図の中から未処理の線点図を処理対象線点図として選択する（ステップＳ３０１）。
【００５４】
直交表検索部５３２は、処理対象線点図の各因子に対応付けた使用済みフラグを未使用にする（ステップＳ３０２）。具体的には、処理対象線点図の因子数をｐとすると、直交表検索部５３２は、使用済みフラグ（１）〜（ｐ）に未使用であることを示すコード（たとえば、「ＮＵＬＬ」）を登録する。
【００５５】
直交表検索部５３２は、直交表データ検索指示に含まれる構成モデル要素ＩＤの中から処理対象線点図に対して未処理の構成モデル要素ＩＤを処理対象構成モデル要素ＩＤとして選択する（ステップＳ３０３）。
【００５６】
直交表検索部５３２は、処理対象線点図のｉ（１≦ｉ≦ｐ，ｉは自然数）列目の因子（ｉ）（初期値はｉ＝１とする）が未使用であって、かつ処理対象線点図の因子（ｉ）の水準値と処理対象構成モデル要素ＩＤの水準値とが等しいか否かを判定する（ステップＳ３０４，Ｓ３０５）。具体的には、直交表検索部５３２は、因子（ｉ）に対応付けた使用済みフラグ（ｉ）が「ＮＵＬＬ」であるか否かを判定し、使用済みフラグ（ｉ）が「ＮＵＬＬ」の場合には因子（ｉ）は未使用であると判定し、使用済みフラグ（ｉ）が「ＮＵＬＬ」ではない場合には因子（ｉ）は使用済みであると判定する。また、上述したように線点図の２行目が水準値を意味しているので、直交表検索部５３２は、処理対象線点図の２行ｉ列の値と、処理対象構成モデル要素ＩＤの水準値との値を比較する。
【００５７】
処理対象線点図の因子（ｉ）が未使用であって、かつ処理対象線点図の因子（ｉ）の水準値と処理対象構成モデル要素ＩＤの水準値とが等しい場合、直交表検索部５３２は、因子（ｉ）に対応付けた使用済みフラグ（ｉ）に処理対象構成モデル要素ＩＤを登録して使用済みにする（ステップＳ３０６）。これにより、使用済みフラグ（ｉ）は使用済みとなり、処理対象線点図の因子（ｉ）に処理対象構成モデル要素ＩＤのガード条件が割り付けられたことになる。
【００５８】
なお、２水準系直交表では、水準値が４以上の場合には複数の因子に水準を割当てるため複数の因子が必要となり線点図の複数の因子に同一の因子ＩＤが付与されている。直交表検索部５３２は、線点図の因子ＤＩに因子（ｉ）と同一の因子ＩＤを有する因子が存在する場合には、因子（ｉ）と同一の因子ＩＤを有する因子に対応付けた使用済みフラグにも因子（ｉ）に対応付けた使用済みフラグ（ｉ）と同様に処理対象構成モデル要素ＩＤを登録して使用済みにする。
【００５９】
たとえば、図７に示したＬ８の直交表の線点図の因子（１）に処理対象構成モデル要素ＩＤのガード条件を割り付けた場合には、因子（１）と同一の因子ＩＤ「０」の因子（２），（３）に対応付けた使用済みフラグ（２），（３）にも因子（１）に対応する使用済みフラグ（１）と同様に処理対象構成モデル要素ＩＤを登録して因子（１）〜（３）を使用済みにする。
【００６０】
因子（ｉ）に対応付けた使用済みフラグ（ｉ）に処理対象構成モデル要素ＩＤを登録した後、直交表検索部５３２は、直交表データ検索指示に含まれる構成モデル要素ＩＤの中に未処理の構成モデル要素ＩＤが存在するか否かを判定する（ステップＳ３０７）。未処理の構成モデル要素ＩＤが存在しない場合、直交表検索部５３２は、直交上データ検索指示に含まれるすべての構成モデル要素ＩＤのガード条件を処理対象線点図の因子に割り付けたと認識し、処理対象直交表を識別するための識別子である直交表ＩＤ、処理対象線点図を識別するための識別子である線点図ＩＤ、および使用済みフラグを含む直交表情報を組合せ情報出力部５７に出力する（ステップＳ３０８）。
【００６１】
未処理の構成モデル要素ＩＤが存在する場合、直交表検索部５３２は、ステップＳ３０３に戻って直交表データ検索指示に含まれる構成モデル要素ＩＤの中から未処理の構成モデル要素ＩＤを処理対象構成モデル要素ＩＤとして選択し、処理対象線点図の因子（ｉ）が未使用であって、かつ処理対象線点図の因子（ｉ）の水準値と処理対象構成モデル要素ＩＤの水準値とが等しい処理対象線点図の因子（ｉ）を検索する処理を繰り返す。
【００６２】
一方、処理対象線点図の因子（ｉ）が未使用ではない場合（使用済みの場合）、または処理対象線点図の因子（ｉ）の水準値と処理対象構成モデル要素ＩＤの水準値とが等しくない場合（不一致の場合）（ステップＳ３０５，Ｎｏ）、直交表検索部５３２は、つぎの因子を選択（ｉ＝ｉ＋１）し、処理対象線点図の因子（ｉ）が未使用であって、かつ処理対象線点図の因子（ｉ）の水準値と処理対象構成モデル要素ＩＤの水準値とが等しく、因子（ｉ）に対応付けた使用済みフラグ（ｉ）に処理対象構成モデル要素ＩＤを登録するか、または処理対象線点図のすべての因子に対する判定を終了するまで（ｉ＞処理対象線点図の因子数になるまで）、選択した因子（ｉ）が未使用であって、かつ処理対象線点図の因子（ｉ）の水準値と処理対象構成モデル要素ＩＤの水準値とが等しいか否かを判定する動作を繰り返す（ステップＳ３０５〜Ｓ３１０）。
【００６３】
処理対象線点図の因子の中に未使用であって、かつ処理対象線点図の因子の水準値と処理対象構成モデル要素ＩＤの水準値とが等しい因子が存在しなかった場合、すなわち処理対象構成モデル要素ＩＤのガード条件を割当てられなかった場合、直交表検索部５３２は、処理対象直交表に対応付けられた未処理の線点図が存在するか否かを判定する（ステップＳ３１１）。
【００６４】
処理対象直交表に対応付けられた未処理の線点図が存在する場合、直交表検索部５３２は、ステップＳ３０１に戻って、処理対象直交表に対応付けられて直交表データ記憶部５５に記憶されている線点図の中から未処理の線点図を新たな処理対象線点図として選択し、直交表データ検索指示に含まれるすべての構成モデル要素ＩＤのガード条件を割り付け可能な線点図が見つかるか、処理対象直交表に対応付けられた線点図の中に未処理の線点図がなくなるまで、選択した処理対象線点図に構成モデル要素ＩＤのガード条件を割り付け可能であるか否かを判定する動作を繰り返す（ステップＳ３０１〜Ｓ３１１）。
【００６５】
処理対象直交表に対応付けられた未処理の線点図が存在しない場合、直交表検索部５３２は、未処理の直交表が存在するか否かを判定する（ステップＳ３１２）。未処理の直交表が存在する場合、直交表検索部５３２は、ステップＳ３００に戻って、未処理の直交表の中で最小サイズの直交表を新たな処理対象直交表に選択し、選択した処理対象直交表に対応付けられた観処理の線点図を処理対象線点図として選択し、直交表データ検索指示に含まれるすべての構成モデル要素ＩＤのガード条件を割り付け可能な線点図が見つかるか、未処理の直交表がなくなるまで、処理対象直交表に対応付けられた線点図に構成モデル要素ＩＤのガード条件を割り付け可能であるか否かを判定する動作を繰り返す（ステップＳ３０１〜Ｓ３１２）。
【００６６】
未処理の直交表が存在しない場合、すなわち、直交表データ記憶部５５に記憶されている直交表に対応付けられた線点図に直交表データ検索指示に含まれるすべての構成モデル要素ＩＤのガード条件を割り付けることができない場合、直交表検索部５３２は、エラーを示すコードを含む直交表情報を組合せ情報出力部５７に出力する（ステップＳ３１３）。
【００６７】
上述したように、直交表検索部５３２は、構成モデル要素ＩＤ「５」に対応付けた水準値「２」と因子数「１」、構成モデル要素ＩＤ「９」に対応付けた水準値「２」と因子数「１」、構成モデル要素ＩＤ「１０」に対応付けて水準値「２」と因子数「１」、および因子数合計値「３」を含む直交表データ検索指示を受けている。直交表データ記憶部５５にはＬ２，Ｌ４，Ｌ１６，Ｌ３２，Ｌ６４，Ｌ１２８，Ｌ２５６の７種類の直交表が記憶されているので、直交表検索部５３２は、因子数合計値「３」を含む最小サイズの直交表であるＬ４の直交表（図５参照）を処理対象直交表として選択し、Ｌ４の直交表に対応付けられた線点図（図６参照）を処理対処線点図として選択する。
【００６８】
処理対象線点図の因子（１）の水準値は「２」であるので構成モデル要素ＩＤ「５」の水準値と等しい。よって直交表検索部５３２は、処理対象線点図の因子（１）に構成モデル要素ＩＤ「５」を割り付けて、使用済みフラグ（１）に「５」を登録する。また、処理対象線点図の因子（２）の水準値は「２」であるので構成モデル要素ＩＤ「９」の水準値と等しい。よって直交表検索部５３２は、処理対象線点図の因子（２）に構成モデル要素ＩＤ「９」を割り付けて、使用済みフラグ（２）に「９」を登録する。さらに、処理対象線点図の因子（３）の水準値は「２」であるので構成モデル要素ＩＤ「１０」の水準値と等しい。よって直交表検索部５３２は、処理対象線点図の因子（３）に構成モデル要素ＩＤ「１０」を割り付けて、使用済みフラグ（３）に「１０」を登録する。したがって、直交表検索部５３２は、先の図５に示したＬ４の直交表を識別するための直交表ＩＤ、先の図６に示した線点図を識別するための線点図ＩＤ、および構成モデル要素ＩＤ「５」，「９」，「１０」が登録された使用済みフラグ（１）〜（３）を含む直交表情報を組合せ情報出力部５７に出力する。
【００６９】
直交表検索部５３２から直交表情報が入力されると、組合せ情報出力部５７は、入力された直交表情報が直交表ＩＤ、線点図ＩＤ、および使用済みフラグを含む直交表情報であるか否かを判定する。入力された直交表情報が直交表ＩＤ、線点図ＩＤ、および使用済みフラグを含む直交表情報ではない場合（エラーを示すコードを含む直交表情報の場合）、組合せ情報出力部５７は、直交表情報に含まれるエラーを示すコードを出力する。
【００７０】
入力された直交表情報が直交表ＩＤ、線点図ＩＤ、および使用済みフラグを含む直交表情報である場合、組合せ情報出力部５７は、直交表情報およびガード条件情報解釈部５１によって生成されたガード条件情報５２に基づいてテスト項目組合せ情報７０を生成し、生成したテスト項目組合せ情報７０を出力する。
【００７１】
テスト項目組合せ情報７０は、ガード条件を直交表検索部５３２によって選択された直交表および線点図が示す情報に対応付けたものであり、図１３に示すようなＣＳＶ（Comma Separated Value）形式や、図１４に示すような表形式のファイルとして出力される。
【００７２】
図１５のフローチャートを参照して、ＣＳＶ形式のテスト項目組合せ情報７０を生成する場合の組合せ情報出力部５７の動作を詳細に説明する。なお、組合せ情報出力部５７は、図示しないメモリのメモリ領域ｄａｔ[ｉ]［ｋ］（１≦ｉ≦ｐ，ｐはガード条件情報５２の構成モデル要素ＩＤ５１２に登録された構成モデル要素ＩＤの総数、１≦ｋ≦ｒ，ｒは直交表情報に含まれる直交表ＩＤが示す直交表の行数の総数）にデータを一時保持し、保持したデータをファイルに出力するが、ここでは、すでにメモリｄａｔ[ｉ]［ｋ］は初期化されているものとする。
【００７３】
組合せ情報出力部５７は、ガード条件情報５２の構成モデル要素ＩＤ５２１に登録されているｉ番目（初期値はｉ＝１）の構成モデル要素ＩＤを選択する（ステップＳ４００）。組合せ情報出力部５７は、直交表情報に含まれる直交表ＩＤが示す直交表のｊ番目（初期値はｊ＝１）の因子を選択する（ステップＳ４０１）。組合せ情報出力部５７は、ファイル生成に必要な変数ｘを初期化（ｘ＝０）する（ステップＳ４０２）。
【００７４】
組合せ情報出力部５７は、因子（ｊ）（ｊ番目の因子を示す）がｉ番目の構成モデル要素ＩＤに対応しており、かつ交互作用列か否かを判定する（ステップＳ４０３）。具体的には、組合せ情報出力部５７は、直交表情報に含まれる使用済みフラグ（ｊ）の登録内容と、ガード条件情報５２の構成モデル要素ＩＤ５２１に登録されているｉ番目の構成モデル要素ＩＤとを比較し、比較の結果、直交表情報に含まれる使用済みフラグ（ｊ）の登録内容と、ガード条件情報５２の構成モデル要素ＩＤ５２１に登録されているｉ番目の構成モデル要素ＩＤとが一致した場合には因子（ｊ）がｉ番目の構成モデル要素ＩＤに対応していると判定し、直交表情報に含まれる使用済みフラグ（ｊ）の登録内容と、ガード条件情報５２の構成モデル要素ＩＤ５２１に登録されているｉ番目の構成モデル要素ＩＤとが不一致の場合には因子（ｊ）がｉ番目の構成モデル要素ＩＤに対応していないと判定する。また、組合せ情報出力部５７は、直交表情報に含まれる線点図ＩＤが示す線点図の因子（ｊ）の交互作用列が「１」の場合には因子（ｊ）は交互作用列であると判定し、因子（ｊ）の交互作用列が「０」の場合には因子（ｊ）は交互作用列ではないと判定する。
【００７５】
因子（ｊ）がｉ番目の構成モデル要素ＩＤに対応しており、かつ交互作用列ではない場合、組合せ情報出力部５７は、直交表情報に含まれる直交表ＩＤが示す直交表のｉ行ｋ行目（初期値はｋ＝１）を選択する（ステップＳ４０４）。組合せ情報出力部５７は、下記の式（１）の演算を実行する（ステップＳ４０５）。
ｄａｔ[ｉ][ｋ]＝ｄａｔ[ｉ][ｋ]＋（ｔａｂｌｅ[ｊ][ｋ]×２）x      …  式（１）
なお、上記式（１）において、ｔａｂｌｅ[ｉ][ｋ]は、直交情報に含まれる直交表ＩＤが示す直交表のｊ行ｋ列に登録されている値である。
【００７６】
組合せ情報出力部５７は、上記式（１）の演算を直交表ＩＤが示す直交表の因子（ｊ）の最終行まで（ｋ＝ｒまで）繰り返す（ステップＳ４０５〜Ｓ４０７）。これにより、ガード条件情報５２の構成モデル要素ＩＤ５２１のｉ番目に登録されている構成モデル要素ＩＤに対応付けられたガード条件要素ＩＤのうち２つが直交表情報に含まれる直交表ＩＤの因子（ｊ）の組合せに割り付けられる。組合せ情報出力部５７は、因子（ｊ）の最終行まで上記式（１）の演算を実行した後、変数ｘをインクリメントする（ステップＳ４０８）。
【００７７】
因子（ｊ）がｉ番目の構成モデル要素ＩＤに対応していない場合、因子（ｊ）が相互作用列の場合、または変数ｘをインクリメントした後、組合せ情報出力部５７は、つぎの因子を選択（ｊ＝ｊ＋１）して、因子（ｊ）がｉ番目の構成モデル要素ＩＤに対応しており、かつ交互作用列か否かを判定し、判定の結果、因子（ｊ）がｉ番目の構成モデル要素ＩＤに対応しており、かつ交互作用列ではない場合には上記式（１）の演算を実行してガード条件情報５２の構成モデル要素ＩＤ５２１のｉ番目に登録されている構成モデル要素ＩＤが示す構成モデル要素に属するガード条件のうち２つを直交表情報に含まれる直交表ＩＤの因子（ｊ）の組合せに割り付ける動作を、直交表情報に含まれる直交表ＩＤが示す直交表のすべての因子（１）〜（ｑ）まで繰り返す（ステップＳ４０２〜Ｓ４１０）。
【００７８】
組合せ情報出力部５７は、ガード条件情報５２の構成モデル要素ＩＤ５２１に登録されているｉ番目の構成モデル要素ＩＤが示す構成モデルに属するガード条件の割り付けであるメモリ領域ｄａｔの内容をテスト項目組合せ情報７０のファイルに出力する（ステップＳ４１１）。具体的には、メモリ領域ｄａｔ[ｉ]［１］〜ｄａｔ［ｉ］［ｑ］の内容をテスト項目組合せ情報７０のファイルに出力する。
【００７９】
ガード条件情報５２の構成モデル要素ＩＤ５２１に登録されているｉ番目の構成モデル要素ＩＤが示す構成モデルに属するガード条件の割り付けをテスト項目組合せ情報７０のファイルに出力した後、組合せ情報出力部５７は、つぎの構成モデル要素ＩＤを選択（ｉ＝ｉ＋１）して、因子（ｊ）がｉ番目の構成モデル要素ＩＤに対応しており、かつ交互作用列か否かを判定し、判定の結果、因子（ｊ）がｉ番目の構成モデル要素ＩＤに対応しており、かつ交互作用列ではない場合には上記式（１）の演算を実行してガード条件情報５２の構成モデル要素ＩＤ５２１のｉ番目に登録されている構成モデル要素ＩＤが示す構成モデル要素に属するガード条件のうち２つを直交表情報に含まれる直交表ＩＤの因子（ｊ）の組合せに割り付ける動作を、直交表情報に含まれる直交表ＩＤが示す直交表のすべての因子（１）〜（ｑ）まで繰り返してｉ番目の構成モデル要素ＩＤが示す構成モデルに属するガード条件の割り付けをテスト項目組合せ情報７０のファイルに出力する動作を、ガード条件情報５２の構成モデル要素ＩＤ５２１に登録されている全ての構成モデル要素ＩＤに対して繰り返す（ステップＳ４０１〜Ｓ４１３）。
【００８０】
なお、先の図１４に示した表形式によるファイルとしてテスト項目組合せ情報７０を出力する場合は、テスト項目組合せ情報７０にメモリ領域ｄａｔ［ｉ］［ｋ］の内容を出力するのではなく、メモリ領域ｄａｔ［ｉ］［ｋ］の内容、たとえば、「０」、「１」、…、にガード条件情報５２の構成モデル要素ＩＤ５１１のｉ番目に登録されている構成モデル要素ＩＤに対応付けられているガード条件要素ＩＤを対応付け、当該ガード条件要素ＩＤのガード条件要素文字列を出力するようにすればよい。
【００８１】
以上説明したように、この実施の形態においては、ガード条件情報解釈部５１が、アクティビティ図による仕様情報６０からテスト項目であるガード条件を２つ以上有する構成モデル要素を抽出し、抽出した構成モデル要素に対応付けて当該構成モデル要素が有するガード条件数、およびガード条件の文字列を登録したガード条件情報５２を生成し、因子数算出部５３１が、ガード条件情報５２に登録されている構成モデル要素毎の水準値およびガード条件の割付に必要な因子数と、各構成モデル要素の因子数の合計値とを算出し、直交表検索部５３２が、直交表データ記憶部５５に登録されている直交表の中から因子数算出部５３１によって算出された因子数の合計値を含む直交表に対応付けられた線点図の因子の水準値と因子数算出部５３１が算出した各構成モデル要素の水準値とに基づいて直交表および線点図を選択してガード条件情報５２に登録された各構成モデル要素が有するガード条件の組合せを最適化し、組合せ情報出力部５７が、直交表検索部５３２によって最適化されたガード条件の組合せをテスト項目組合せ情報として出力するようにしている。これにより、仕様情報６０の制御の分岐条件からテスト項目を抽出するとともに、抽出したテスト項目の中で同時にテスト可能なテスト項目の組合せを最適化したテスト項目組合せ情報７０を生成することができる。すなわち、仕様情報から抽出したすべてのテスト項目であるガード条件を、直交表を用いて最適化して出力するようにしているため、テスト項目の組合せの数を最低限にすることができる。
【００８２】
なお、この実施の形態においては、因子数算出部５３１が各構成モデル要素ＩＤに対応付けて当該構成モデル要素ＩＤが示す構成モデル要素の水準値と因子数、および因子数合計値）を含む直交表データ検索指示を直交表検索部５３２に出力するようにしたが、これらの情報を直交表データ検索指示に含めるのではなく、先の図１０に示したようなテーブルを生成し、直交表検索部５３２が、テーブルから情報を抽出するようにしてもよい。
【００８３】
また、この発明における実施の形態のガード条件情報解釈部５１、因子数算出部５３１、直交表検索部５３２、および組合せ情報出力部５７によって実現される前述した機能を汎用のコンピュータに実行させるためのテスト項目生成プログラムとして提供してもよい。この場合、テスト項目生成プログラムは、コンピュータにインストール可能な形式、またはコンピュータが実行可能な形式のファイルでＣＤ−ＲＯＭ、フロッピー（登録商標）ディスク、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録して提供する。記録媒体に記録されたテスト項目生成プログラムは、記録媒体から読み出されてコンピュータ上で実現される。
【００８４】
テスト項目生成プログラムを時刻するコンピュータは、少なくとも制御装置と、記憶装置とを備えている。制御装置は、コンピュータ全体を制御するＣＰＵなどの演算処理装置と、ＲＯＭとを備えている。記憶装置は、一般的なＲＡＭで構成され、データ形式仕様情報やガード条件情報５２などを記憶する。制御装置は、テスト項目生成プログラムが記録されている記録媒体からテスト項目生成プログラムを読み出して実行することで、ガード条件情報解釈部５１、因子数算出部５３１、直交表検索部５３２、および組合せ情報出力部５７によって実現される前述した各機能としてコンピュータを動作させる。
【産業上の利用可能性】
【００８５】
以上のように、本発明にかかるテスト項目生成装置は、図によって記載された仕様情報からテスト項目を生成する場合に有用であり、特に、ＵＭＬのアクティビティ図によって記載された仕様情報からテスト項目を生成する場合に適している。
【図面の簡単な説明】
【００８６】
【図１】この発明におけるテスト項目生成装置の構成を示すブロック図である。
【図２】ＵＭＬのアクティビティ図によって記載された仕様情報の一例を示す図である。
【図３】ガード条件情報解釈部が生成するデータ形式仕様情報の一例を示す図である。
【図４】ガード条件情報解釈部によって生成されるガード条件情報を示す図である。
【図５】直交表データ記憶部が記憶する直交表の一例を示す図である。
【図６】直交表データ記憶部が記憶するＬ４の直交表に対応付けられた線点図の一例を示す図である。
【図７】直交表データ記憶部が記憶するＬ８の直交表に対応付けられた線点図の一例を示す図である。
【図８】ガード条件情報解釈部の動作を説明するためのフローチャートである。
【図９】因子数算出部の動作を説明するためのフローチャートである。
【図１０】因子数算出部が算出する水準値、因子数、および因子数合計値を説明するための図である。
【図１１】因子数算出部が算出する水準値、因子数、および因子数合計値を説明するための図である。
【図１２】直交表検索部の動作を説明するためのフローチャートである。
【図１３】組合せ情報出力部が出力するテスト項目組合せ情報の一例を示す図である。
【図１４】組合せ情報出力部が出力するテスト項目組合せ情報の一例を示す図である。
【図１５】組合せ情報出力部の動作を説明するためのフローチャートである。
【符号の説明】
【００８７】
１  開始状態
２  終了状態
３，４，５，６，７，８  アクション状態
９，１０  条件判断
１１  レーン
１２，１３，１４，１５，１６，１７，１８，１９，２０，２１，２２，２３，２４，２５  遷移
２６  同期バー
５０  テスト項目生成装置
５１  ガード条件情報解釈部
５２  ガード条件情報
５３  組合せ最適化部
５５  直交表データ記憶部
５７  組合せ情報出力部
５１１，５２１  構成モデル要素ＩＤ
５１２，５２２  構成モデル要素種別
５１３，５２３  構成モデル要素文字列
５１４，５２４  ガード条件数
５１５，５２５  ガード条件要素ＩＤ
５１６，５２６  ガード条件要素文字列
５３１  因子数算出部
５３２  直交表検索部
【図１】
2007249826.tif 000003
【図２】
2007249826.tif 000004
【図３】
2007249826.tif 000005
【図４】
2007249826.tif 000006
【図５】
2007249826.tif 000007
【図６】
2007249826.tif 000008
【図７】
2007249826.tif 000009
【図８】
2007249826.tif 000010
【図９】
2007249826.tif 000011
【図１０】
2007249826.tif 000012
【図１１】
2007249826.tif 000013
【図１２】
2007249826.tif 000014
【図１３】
2007249826.tif 000015
【図１４】
2007249826.tif 000016
【図１５】
2007249826.tif 000017