(57)【要約】【課題】テストデータを画面上に表示するテストデータ表示ツールを提供する。【手段】テストデータ生成手段Ｂ０４は、パラメータデータ生成手段Ｂ０２からパラメータデータの入力を受けてテストデータを生成し、テストデータ表示手段Ｂ０６は、その結果を論理構造と同一画面上に表示する。論理構造変更手段Ｂ０８は、ユーザからのノードを展開し、または折り畳むといった操作入力を受け、論理構造データの変更を行う。パラメータデータ生成手段Ｂ０２は、ユーザからの操作入力を受けて、変更された論理構造に基づいて、再び、パラメータデータを生成し、テストデータ生成手段Ｂ０４が出力したテストデータが、テストデータ表示手段Ｂ０６によって画面上に表示される。【選択図】図１
2014197276.tif 000002
【特許請求の範囲】
【請求項１】
テストデータを参照するためのユーザインターフェースを表示するテストデータ表示装置であって、
対象の特徴を示す上位ノードと、当該上位ノードの特徴の下位の特徴を示す下位ノードとを有する複数階層に配置されたノードを備えて構成され、上位ノードに対して下位ノードが全て成立しなければならないアンド関係、上位ノードに対して下位ノードのいずれかが成立すればよいオア関係にて上位ノードと下位ノードが結合され、ノード間において一方のノードの成立・不成立が他方のノードの成立・不成立を決定する要求条件と、ノード間において双方ノードの同時の成立・不成立を決定する排他条件との少なくとも一方が定義された特徴データを、第１の表示領域に論理構造として表示する手段、
前記第１の表示領域が表示される同一画面上の第２の表示領域に、前記第１の表示領域の論理構造に対応するテストデータを表示する手段、
を備えたこと、を特徴とする
として機能させることを特徴とするテストデータ表示装置。
【請求項２】
テストデータを参照するためのユーザインターフェースを表示するために、
コンピュータを、
対象の特徴を示す上位ノードと、当該上位ノードの特徴の下位の特徴を示す下位ノードとを有する複数階層に配置されたノードを備えて構成され、上位ノードに対して下位ノードが全て成立しなければならないアンド関係、上位ノードに対して下位ノードのいずれかが成立すればよいオア関係にて上位ノードと下位ノードが結合され、ノード間において一方のノードの成立・不成立が他方のノードの成立・不成立を決定する要求条件と、ノード間において双方ノードの同時の成立・不成立を決定する排他条件との少なくとも一方が定義された特徴データを、第１の表示領域に論理構造として表示する手段、
前記第１の表示領域が表示される同一画面上の第２の表示領域に、前記第１の表示領域の論理構造に対応するテストデータを表示する手段、
として機能させることを特徴とするテストデータ表示プログラム。
【請求項３】
請求項１または請求項２の装置またはプログラムにおいて、
第１の表示領域における論理構造の変更操作に基づいて、第２の表示領域におけるテストケースを再計算させること、を特徴とする装置またはプログラム。
【請求項４】
請求項１〜３のいずれかの装置またはプログラムにおいて、
第１の表示領域における入力操作に基づいて、第１の表示領域におけるノードを展開し、または折り畳んで表示することを特徴とする装置またはプログラム。
【請求項５】
請求項１〜４のいずれかの装置またはプログラムにおいて、
ノードにカーソルを移動させた際に、各ノードの情報が表示されること、を特徴とする装置またはプログラム。
【請求項６】
請求項１〜５のいずれかの装置またはプログラムにおいて、
テストケースにカーソルを移動させた際に、当該テストケースのバリューが全て表示されること、を特徴とする装置またはプログラム。
【請求項７】
請求項１〜６のいずれかの装置またはプログラムにおいて、
前記第２の表示領域において、パラメータのバリューが列項目に表示され、セル内に各バリュー選択の有無を表すマークを示したこと、特徴とする装置またはプログラム。
【請求項８】
請求項１〜６のいずれかの装置またはプログラムにおいて、
前記第２の表示領域において、パラメータのバリューがセル内に表示されること、特徴とする装置またはプログラム。
【請求項９】
請求項１〜７のいずれかの装置またはプログラムにおいて、
各テストデータを構成するパラメータのバリューの中に、異常値が含まれていること、を特徴とする装置またはプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラムなどが正常に動作するかどうかをテストするためのテストデータを生成して、元となった論理構造と共に画面上に表示する装置に関するものである。
【背景技術】
【０００２】
ソフトウエアの動作をテストするために、入力される可能性のあるデータの組合せを作成し、これらテストデータを入力して所望の動作となるかどうかを判断することが行われている。
【０００３】
従来、オールペア法（ペアワイズ法）等によって、入力される可能性のあるデータの組合せを生成し、テストデータが作成されていた。オールペア法等を用いたテストデータ生成のためのツールとして、マイクロソフト社のＰＩＣＴ（商標）などが使用されている。
【０００４】
たとえば、ＰＩＣＴにおいては、図３１に示すように、パラメータ、バリュー、制約条件を定義することにより、バリューの組み合わせによるテストデータを生成することができる。
【０００５】
ここで、ａ、ｂ・・・ｍはパラメータであり、ａ1、ａ2・・・ａnは、パラメータａのバリューである。１行目のａ：ａ1、ａ2・・・ａnによって、パラメータａは、バリューａ1、ａ2・・・ａnのいずれかをとることが示されている。２行目以下も同様である。
【０００６】
また、If ｍ＝ｍ1 then ａ＝ａnは、パラメータｍがｍ1の場合には、ａはａnとなることを条件として示している。さらに、If ｂ＝ｂ2 then NOT ａ＝ａ2およびIf ａ＝ａ2 then NOT ｂ＝ｂ2は、パラメータｂがｂ2であることと、パラメータａがａ2であることが両立しないことを条件として示している。
【０００７】
このような形式のデータにて、ＰＩＣＴプログラムにパラメータを与えると、テストデータが生成されて出力される。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
以上のようにオールペア法などを用いたテストデータ生成ツールにおいては、図３１に示すような論理構造のデータを与えなければならない。このため、このような論理構造にて定義されていない事象については、ツールを使用することができなかった。
【０００９】
図３２に、ある事象の論理構造をツリー形式にて示す。このツリー構造では、ＰＩＣＴのようなツールに入力することはできない。
【００１０】
そこで、この発明においては、階層化された論理構造で表現されるテストモデルについて、テストデータ生成ツールを使用することが可能となるパラメータデータを生成するとともに、これに基づいてテストデータ生成ツールによって生成されたテストデータの数などを調整することが可能な表示を実現することを目的とする。
【課題を解決するための手段】
【００１１】
(1)(2)この発明のテストデータ表示装置は、
テストデータを参照するためのユーザインターフェースを表示するために、
コンピュータを、
対象の特徴を示す上位ノードと、当該上位ノードの特徴の下位の特徴を示す下位ノードとを有する複数階層に配置されたノードを備えて構成され、上位ノードに対して下位ノードが全て成立しなければならないアンド関係、上位ノードに対して下位ノードのいずれかが成立すればよいオア関係にて上位ノードと下位ノードが結合され、ノード間において一方のノードの成立・不成立が他方のノードの成立・不成立を決定する要求条件と、ノード間において双方ノードの同時の成立・不成立を決定する排他条件との少なくとも一方が定義された特徴データを、第１の表示領域に論理構造として表示する手段、
前記第１の表示領域が表示される同一画面上の第２の表示領域に、前記第１の表示領域の論理構造に対応するテストデータを表示する手段、
として機能させることを特徴とする。
【００１２】
これにより、第１の表示領域に表示される論理構造と、同一画面上の第２の表示領域に表示されるテストデータを比較参照することができる。
【００１３】
(3)この発明のテストデータ表示装置は、
第１の表示領域における論理構造の変更操作に基づいて、第２の表示領域におけるテストケースを再計算させること、を特徴とする。
【００１４】
これにより、第１の表示領域に表示される論理構造を直感的に操作し、テストケースの量などを制御することができる。
【００１５】
(4)この発明のテストデータ表示装置は、
第１の表示領域における入力操作に基づいて、第１の表示領域におけるノードを展開し、または折り畳んで表示することを特徴とする。
【００１６】
これにより、第１の表示領域に表示される論理構造と、同一画面上の第２の表示領域に表示されるテストデータを比較参照して、論理構造を変更することができる。
【００１７】
(5)この発明のテストデータ表示装置は、
ノードにカーソルを移動させた際に、各ノードの情報が表示されること、を特徴とする。
【００１８】
これにより、各ノードの情報を容易に把握することができる。
【００１９】
(6)この発明のテストデータ表示装置は、
テストケースにカーソルを移動させた際に、当該テストケースのバリューが全て表示されること、を特徴とする。
【００２０】
これにより、テストケースのバリューを容易に把握することができる。
【００２１】
(7)この発明のテストデータ表示装置は、
前記第２の表示領域において、パラメータのバリューが列項目に表示され、セル内に各バリュー選択の有無を表すマークを示したこと、特徴とする。
【００２２】
これにより、羅列されるテストケースのバリューの分布・バラツキを視覚的に把握することができる。
【００２３】
(8)この発明のテストデータ表示装置は、
前記第２の表示領域において、パラメータのバリューがセル内に表示されること、特徴とする。
【００２４】
これにより、テストケースを表示する際に、行方向の表示幅を狭くすることができる。
【００２５】
(9)この発明のテストデータ表示装置は、
各テストデータを構成するパラメータのバリューの中に、異常値が含まれていること、を特徴とする装置またはプログラム。
【００２６】
これにより、実際にテストした場合に異常値に対応した正しい動作が行われるか否かを容易に確認することができる。
【００２７】
(i)(ii)この発明に係るテストデータ生成装置は、対象の特徴を示す上位ノードと、当該上位ノードの特徴の下位の特徴を示す下位ノードとを有する複数階層に配置されたノードを備えて構成され、上位ノードに対して下位ノードが全て成立しなければならないアンド関係、上位ノードに対して下位ノードのいずれかが成立すればよいオア関係にて上位ノードと下位ノードが結合され、ノード間において一方のノードの成立・不成立が他方のノードの成立・不成立を決定する要求条件と、ノード間において双方ノードの同時の成立・不成立を決定する排他条件との少なくとも一方が定義された特徴データを入力するための入力手段と、下記(a)アンド・アンド階層平坦化手段と、(b)オア・オア階層平坦化手段と、(c)持上平坦化手段の少なくとも一つを備え、入力された特徴データの階層構造を平坦化する平坦化手段と、前記平坦化された特徴データに基づいて、特徴の組合せによるテストデータを生成するテストデータ生成手段とを備えたテストデータ生成装置であって、
(a)前記アンド・アンド階層平坦化手段は、(a1)前記特徴データにおいて、対象ノードがアンド関係を定めており、対象ノードの子ノードを対象子ノードとして、当該対象子ノードがアンド関係を定めている箇所を見いだすアンド・アンド関係抽出手段と、(a2)前記アンド・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードに要求条件または排他条件が付されていれば、当該要求条件または排他条件を、前記対象ノードに付け替える要求・排他条件付替手段と、(a3)前記アンド・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードを削除し、当該対象子ノードの子ノードである対象孫ノードを、前記対象ノードの子ノードとしてアンド関係に追加する対象子ノード削除手段とを備えており、
(b)前記オア・オア階層平坦化手段は、(b1)前記特徴データにおいて、対象ノードがオア関係を定めており、対象ノードの子ノードを対象子ノードとして、当該対象子ノードがオア関係を定めている箇所を見いだすオア・オア関係抽出手段と、(b2)前記オア・オア関係抽出手段によって見いだされた箇所において、前記対象子ノードに排他条件が付されていれば、当該排他条件を、前記対象子ノードの子ノードである対象孫ノードに付け替える排他条件付替手段と、(b3)前記オア・オア関係抽出手段によって見いだされた箇所において、前記対象子ノードに要求条件が付されていれば、当該要求条件を、前記対象ノードに付け替える要求条件付替手段と、(b4)前記オア・オア関係抽出手段によって見いだされた箇所において、前記対象子ノードに、当該対象子ノードが要求先である要求条件が付されていれば、前記対象ノードにおける前記対象子ノード以外の子ノードと、当該要求条件の要求元ノードとの間に、排他条件を設定する排他条件設定手段と、(b5)前記オア・オア関係抽出手段によって見いだされた箇所において、前記対象子ノードを削除し、当該対象子ノードの子ノードである対象孫ノードを、前記対象ノードの子ノードとしてオア関係に追加する対象子ノード削除手段とを備えており、
(c)前記持上平坦化手段は、(c1)前記特徴データにおいて、対象ノードがアンド関係を定めており、対象ノードの子ノードである対象子ノードがオア関係を定めており、対象ノードの親ノードの親ノードである対象親親ノードがアンド関係を定めている箇所を見いだすアンド・オア・アンド関係抽出手段と、(c2)前記アンド・オア・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードの子ノードである対象孫ノードから、前記対象ノードに対して要求条件を設定する要求条件設定手段と、(c3)前記アンド・オア・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードの子ノードとして、「前記対象孫ノードのいずれでもない」という特徴を示すノードを追加し、前記対象ノードと当該追加されたノードとの間に、排他条件を設定するノード追加手段と、(c4)前記アンド・オア・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードを、前記対象親親ノードの子ノードとしてアンド関係に追加する対象子ノード移動手段とを備えていることを特徴としている。
【００２８】
したがって、テストデータ生成手段に与える特徴データの構造を平坦化することができ、テストデータ生成手段における処理が容易となる。
【００２９】
(iii)(iv)この発明に係る特徴データ処理装置は、対象の特徴を示す上位ノードと、当該上位ノードの特徴の下位の特徴を示す下位ノードとを有する複数階層に配置されたノードを備えて構成され、上位ノードに対して下位ノードが全て成立しなければならないアンド関係、上位ノードに対して下位ノードのいずれかが成立すればよいオア関係にて上位ノードと下位ノードが結合され、ノード間において一方のノードの成立・不成立が他方のノードの成立・不成立を決定する要求条件と、ノード間において双方ノードの同時の成立・不成立を決定する排他条件との少なくとも一方が定義された特徴データを入力するための入力手段と、下記(a)アンド・アンド階層平坦化手段と、(b)オア・オア階層平坦化手段と、(c)持上平坦化手段の少なくとも一つを備え、入力された特徴データの階層構造を平坦化する平坦化手段とを備えた特徴データ処理装置であって、
(a)前記アンド・アンド階層平坦化手段は、(a1)前記特徴データにおいて、対象ノードがアンド関係を定めており、対象ノードの子ノードを対象子ノードとして、当該対象子ノードがアンド関係を定めている箇所を見いだすアンド・アンド関係抽出手段と、(a2)前記アンド・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードに要求条件または排他条件が付されていれば、当該要求条件または排他条件を、前記対象ノードに付け替える要求・排他条件付替手段と、(a3)前記アンド・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードを削除し、当該対象子ノードの子ノードである対象孫ノードを、前記対象ノードの子ノードとしてアンド関係に追加する対象子ノード削除手段とを備えており、
(b)前記オア・オア階層平坦化手段は、(b1)前記特徴データにおいて、対象ノードがオア関係を定めており、対象ノードの子ノードを対象子ノードとして、当該対象子ノードがオア関係を定めている箇所を見いだすオア・オア関係抽出手段と、
(b2)前記オア・オア関係抽出手段によって見いだされた箇所において、前記対象子ノードに排他条件が付されていれば、当該排他条件を、前記対象ノードに付け替える排他条件付替手段と、(b3)前記オア・オア関係抽出手段によって見いだされた箇所において、前記対象子ノードに要求条件が付されていれば、当該要求条件を、前記対象子ノードの子ノードである対象孫ノードに付け替える要求条件付替手段と、(b4)前記オア・オア関係抽出手段によって見いだされた箇所において、前記対象子ノードに、当該対象子ノードが要求先である要求条件が付されていれば、前記対象ノードにおける前記対象子ノード以外の子ノードと、当該要求条件の要求元ノードとの間に、排他条件を設定する排他条件設定手段と、(b5)前記オア・オア関係抽出手段によって見いだされた箇所において、前記対象子ノードを削除し、当該対象子ノードの子ノードである対象孫ノードを、前記対象ノードの子ノードとしてオア関係に追加する対象子ノード削除手段とを備えており、
(c)前記持上平坦化手段は、(c1)前記特徴データにおいて、対象ノードがアンド関係を定めており、対象ノードの子ノードである対象子ノードがオア関係を定めており、対象ノードの親ノードの親ノードである対象親親ノードがアンド関係を定めている箇所を見いだすアンド・オア・アンド関係抽出手段と、(c2)前記アンド・オア・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードの子ノードである対象孫ノードから、前記対象ノードに対して要求条件を設定する要求条件設定手段と、(c3)前記アンド・オア・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードの子ノードとして、「前記対象孫ノードのいずれでもない」という特徴を示すノードを追加し、前記対象ノードと当該追加されたノードとの間に、排他条件を設定するノード追加手段と、(c4)前記アンド・オア・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードを、前記対象親親ノードの子ノードとしてアンド関係に追加する対象子ノード移動手段とを備えていることを特徴としている。
【００３０】
したがって、テストデータ生成手段に与える特徴データの構造を平坦化することができ、テストデータ生成手段における処理が容易となる。
【００３１】
(v)この発明に係るテストデータ生成サーバ装置は、対象の特徴を示す上位ノードと、当該上位ノードの特徴の下位の特徴を示す下位ノードとを有する複数階層に配置されたノードを備えて構成され、上位ノードに対して下位ノードが全て成立しなければならないアンド関係、上位ノードに対して下位ノードのいずれかが成立すればよいオア関係にて上位ノードと下位ノードが結合され、ノード間において一方のノードの成立・不成立が他方のノードの成立・不成立を決定する要求条件と、ノード間において双方ノードの同時の成立・不成立を決定する排他条件との少なくとも一方が定義された特徴データを端末装置から受け取るための受信手段と、下記(a)アンド・アンド階層平坦化手段と、(b)オア・オア階層平坦化手段と、(c)持上平坦化手段の少なくとも一つを備え、受信した特徴データの階層構造を平坦化する平坦化手段と、前記平坦化された特徴データに基づいて、特徴の組合せによるテストデータを生成するテストデータ生成手段と、生成したテストデータを前記端末装置に送信する送信手段とを備えたテストデータ生成サーバ装置であって、
(a)前記アンド・アンド階層平坦化手段は、(a1)前記特徴データにおいて、対象ノードがアンド関係を定めており、対象ノードの子ノードを対象子ノードとして、当該対象子ノードがアンド関係を定めている箇所を見いだすアンド・アンド関係抽出手段と、(a2)前記アンド・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードに要求条件または排他条件が付されていれば、当該要求条件または排他条件を、前記対象ノードに付け替える要求・排他条件付替手段と、(a3)前記アンド・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードを削除し、当該対象子ノードの子ノードである対象孫ノードを、前記対象ノードの子ノードとしてアンド関係に追加する対象子ノード削除手段とを備えており、
(b)前記オア・オア階層平坦化手段は、(b1)前記特徴データにおいて、対象ノードがオア関係を定めており、対象ノードの子ノードを対象子ノードとして、当該対象子ノードがオア関係を定めている箇所を見いだすオア・オア関係抽出手段と、(b2)前記オア・オア関係抽出手段によって見いだされた箇所において、前記対象子ノードに排他条件が付されていれば、当該排他条件を、前記対象ノードに付け替える排他条件付替手段と、(b3)前記オア・オア関係抽出手段によって見いだされた箇所において、前記対象子ノードに要求条件が付されていれば、当該要求条件を、前記対象子ノードの子ノードである対象孫ノードに付け替える要求条件付替手段と、(b4)前記オア・オア関係抽出手段によって見いだされた箇所において、前記対象子ノードに、当該対象子ノードが要求先である要求条件が付されていれば、前記対象ノードにおける前記対象子ノード以外の子ノードと、当該要求条件の要求元ノードとの間に、排他条件を設定する排他条件設定手段と、(b5)前記オア・オア関係抽出手段によって見いだされた箇所において、前記対象子ノードを削除し、当該対象子ノードの子ノードである対象孫ノードを、前記対象ノードの子ノードとしてオア関係に追加する対象子ノード削除手段とを備えており、
(c)前記持上平坦化手段は、(c1)前記特徴データにおいて、対象ノードがアンド関係を定めており、対象ノードの子ノードである対象子ノードがオア関係を定めており、対象ノードの親ノードの親ノードである対象親親ノードがアンド関係を定めている箇所を見いだすアンド・オア・アンド関係抽出手段と、(c2)前記アンド・オア・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードの子ノードである対象孫ノードから、前記対象ノードに対して要求条件を設定する要求条件設定手段と、(c3)前記アンド・オア・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードの子ノードとして、「前記対象孫ノードのいずれでもない」という特徴を示すノードを追加し、前記対象ノードと当該追加されたノードとの間に、排他条件を設定するノード追加手段と、(c4)前記アンド・オア・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードを、前記対象親親ノードの子ノードとしてアンド関係に追加する対象子ノード移動手段とを備えていることを特徴としている。
【００３２】
したがって、テストデータ生成手段に与える特徴データの構造を平坦化することができ、テストデータ生成手段における処理が容易となる。
【００３３】
(vi)この発明に係る特徴データ処理サーバ装置は、対象の特徴を示す上位ノードと、当該上位ノードの特徴の下位の特徴を示す下位ノードとを有する複数階層に配置されたノードを備えて構成され、上位ノードに対して下位ノードが全て成立しなければならないアンド関係、上位ノードに対して下位ノードのいずれかが成立すればよいオア関係にて上位ノードと下位ノードが結合され、ノード間において一方のノードの成立・不成立が他方のノードの成立・不成立を決定する要求条件と、ノード間において双方ノードの同時の成立・不成立を決定する排他条件との少なくとも一方が定義された特徴データを端末装置から受け取るための受信手段と、下記(a)アンド・アンド階層平坦化手段と、(b)オア・オア階層平坦化手段と、(c)持上平坦化手段の少なくとも一つを備え、入力された特徴データの階層構造を平坦化する平坦化手段と、前記平坦化された特徴データを端末装置に送信する送信手段と、を備えた特徴データ処理サーバ装置であって、
(a)前記アンド・アンド階層平坦化手段は、(a1)前記特徴データにおいて、対象ノードがアンド関係を定めており、対象ノードの子ノードを対象子ノードとして、当該対象子ノードがアンド関係を定めている箇所を見いだすアンド・アンド関係抽出手段と、(a2)前記アンド・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードに要求条件または排他条件が付されていれば、当該要求条件または排他条件を、前記対象ノードに付け替える要求・排他条件付替手段と、(a3)前記アンド・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードを削除し、当該対象子ノードの子ノードである対象孫ノードを、前記対象ノードの子ノードとしてアンド関係に追加する対象子ノード削除手段とを備えており、
(b)前記オア・オア階層平坦化手段は、(b1)前記特徴データにおいて、対象ノードがオア関係を定めており、対象ノードの子ノードを対象子ノードとして、当該対象子ノードがオア関係を定めている箇所を見いだすオア・オア関係抽出手段と、(b2)前記オア・オア関係抽出手段によって見いだされた箇所において、前記対象子ノードに排他条件が付されていれば、当該排他条件を、前記対象ノードに付け替える排他条件付替手段と、(b3)前記オア・オア関係抽出手段によって見いだされた箇所において、前記対象子ノードに要求条件が付されていれば、当該要求条件を、前記対象子ノードの子ノードである対象孫ノードに付け替える要求条件付替手段と、(b4)前記オア・オア関係抽出手段によって見いだされた箇所において、前記対象子ノードに、当該対象子ノードが要求先である要求条件が付されていれば、前記対象ノードにおける前記対象子ノード以外の子ノードと、当該要求条件の要求元ノードとの間に、排他条件を設定する排他条件設定手段と、(b5)前記オア・オア関係抽出手段によって見いだされた箇所において、前記対象子ノードを削除し、当該対象子ノードの子ノードである対象孫ノードを、前記対象ノードの子ノードとしてオア関係に追加する対象子ノード削除手段とを備えており、
(c)前記持上平坦化手段は、(c1)前記特徴データにおいて、対象ノードがアンド関係を定めており、対象ノードの子ノードである対象子ノードがオア関係を定めており、対象ノードの親ノードの親ノードである対象親親ノードがアンド関係を定めている箇所を見いだすアンド・オア・アンド関係抽出手段と、(c2)前記アンド・オア・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードの子ノードである対象孫ノードから、前記対象ノードに対して要求条件を設定する要求条件設定手段と、(c3)前記アンド・オア・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードの子ノードとして、「前記対象孫ノードのいずれでもない」という特徴を示すノードを追加し、前記対象ノードと当該追加されたノードとの間に、排他条件を設定するノード追加手段と、(c4)前記アンド・オア・アンド関係抽出手段によって見いだされた箇所において、前記対象子ノードを、前記対象親親ノードの子ノードとしてアンド関係に追加する対象子ノード移動手段とを備えていることを特徴としている。
【００３４】
したがって、テストデータ生成手段に与える特徴データの構造を平坦化することができ、テストデータ生成手段における処理が容易となる。
【００３５】
(vii)この発明に係るテストデータ生成装置において、平坦化手段は、(a)前記アンド・アンド階層平坦化手段と、(b)前記オア・オア階層平坦化手段と、(c)前記持上平坦化手段とを備え、前記アンド・アンド階層平坦化手段および前記オア・オア階層平坦化手段によって処理された特徴データを、前記持上平坦化手段が処理するよう構成されていることを特徴としている。
【００３６】
したがって、アンド関係とオア関係によって結合された３層構造の特徴データとして平坦化することができる。
【００３７】
(viii)この発明に係るテストデータ生成装置において、要求条件は、要求元ノードが成立するときには、要求先ノードも成立することを定めるものであることを特徴としている。
【００３８】
(ix)この発明に係るテストデータ生成装置において、排他条件は、一方のノードが成立すると、他方のノードが成立しないことを定めるものであることを特徴としている。
【００３９】
(x)この発明に係るテストデータ生成装置は、アンド関係は、全てのノードが成立しなければならないことを示すものであることを特徴としている。
【００４０】
(xi)この発明に係るテストデータ生成装置は、オア関係は、いずれか一つのノードのみが成立することを示すものであることを特徴としている。
【００４１】
(xii)この発明に係る特徴データ処理方法は、コンピュータによって特徴データを処理する方法であって、前記コンピュータが、対象の特徴を示す上位ノードと、当該上位ノードの特徴の下位の特徴を示す下位ノードとを有する複数階層に配置されたノードを備えて構成され、上位ノードに対して下位ノードが全て成立しなければならないアンド関係、上位ノードに対して下位ノードのいずれかが成立すればよいオア関係にて上位ノードと下位ノードが結合され、ノード間において一方のノードの成立・不成立が他方のノードの成立・不成立を決定する要求条件と、ノード間において双方ノードの同時の成立・不成立を決定する排他条件との少なくとも一方が定義された特徴データを入力し、
前記コンピュータが、下記(a)アンド・アンド階層平坦化処理と、(b)オア・オア階層平坦化処理と、(c)持上平坦化処理の少なくとも一つの処理を実行して、入力された特徴データの階層構造を平坦化する特徴データ処理方法であって、
(a)前記アンド・アンド階層平坦化処理は、(a1)前記特徴データにおいて、対象ノードがアンド関係を定めており、対象ノードの子ノードを対象子ノードとして、当該対象子ノードがアンド関係を定めている箇所を見いだし、(a2)前記対象子ノードに要求条件または排他条件が付されていれば、当該要求条件または排他条件を、前記対象ノードに付け替え、(a3)前記対象子ノードを削除し、当該対象子ノードの子ノードである対象孫ノードを、前記対象ノードの子ノードとしてアンド関係に追加し、
(b)前記オア・オア階層平坦化処理は、(b1)前記特徴データにおいて、対象ノードがオア関係を定めており、対象ノードの子ノードを対象子ノードとして、当該対象子ノードがオア関係を定めている箇所を見いだし、(b2)前記対象子ノードに排他条件が付されていれば、当該排他条件を、前記対象ノードに付け替え、(b3)前記対象子ノードに要求条件が付されていれば、当該要求条件を、前記対象子ノードの子ノードである対象孫ノードに付け替え、(b4)前記対象子ノードに、当該対象子ノードが要求先である要求条件が付されていれば、前記対象ノードにおける前記対象子ノード以外の子ノードと、当該要求条件の要求元ノードとの間に、排他条件を設定し、(b5)前記対象子ノードを削除し、当該対象子ノードの子ノードである対象孫ノードを、前記対象ノードの子ノードとしてオア関係に追加し、
(c)前記持上平坦化処理は、(c1)前記特徴データにおいて、対象ノードがアンド関係を定めており、対象ノードの子ノードである対象子ノードがオア関係を定めており、対象ノードの親ノードの親ノードである対象親親ノードがアンド関係を定めている箇所を見いだし、(c2)前記対象子ノードの子ノードである対象孫ノードから、前記対象ノードに対して要求条件を設定し、(c3)前記対象子ノードの子ノードとして、「前記対象孫ノードのいずれでもない」という特徴を示すノードを追加し、前記対象ノードと当該追加されたノードとの間に、排他条件を設定し、(c4)前記対象子ノードを、前記対象親親ノードの子ノードとしてアンド関係に追加することを特徴としている。
【００４２】
したがって、テストデータ生成処理に与える特徴データの構造を平坦化することができ、テストデータ生成における処理が可能となる。
【００４３】
この発明において、「入力手段」は、ステップＳ１がこれに対応する。
【００４４】
「アンド・アンド階層平坦化手段」は、ステップＳ２がこれに対応する。
【００４５】
「オア・オア階層平坦化手段」は、ステップＳ３がこれに対応する。
【００４６】
「持上平坦化手段」は、ステップＳ４がこれに対応する。
【００４７】
「テストデータ生成手段」は、ステップＳ５がこれに対応する。
【００４８】
「テストデータ」には、テストデータそのものだけでなく、テストデータを生成するための特徴の組合せを示すデータも含む。
【００４９】
「プログラム」とは、ＣＰＵにより直接実行可能なプログラムだけでなく、ソース形式のプログラム、圧縮処理がされたプログラム、暗号化されたプログラム等を含む概念である。
【図面の簡単な説明】
【００５０】
【図１】この発明の一実施形態によるテストデータ表示装置１００の機能ブロック図である。
【図２】テストデータ表示装置１００のハードウエア構成である。
【図３】テストデータ表示ＤＢ４３のデータ構造を示す図である。
【図４ａ】テストデータの表示例を示す図である。
【図４ｂ】テストデータの表示例を示す図である。
【図５】テストデータの表示例を示す図である。
【図６】テストデータの表示例を示す図である。
【図７】テストデータの表示例を示す図である。
【図８】テストデータの表示例を示す図である。
【図９】テストデータの表示例を示す図である。
【図１０】テストデータの表示例を示す図である。
【図１１】この発明の一実施形態によるテストデータ生成装置５０の機能ブロック図である。
【図１２】テストデータ生成装置のハードウエア構成である。
【図１３】テストデータ生成プログラム４４のフローチャートである。
【図１４】ＡＮＤ−ＡＮＤ階層の平坦化処理のフローチャートである。
【図１５】ＡＮＤ−ＡＮＤ階層の平坦化処理のフローチャートである。
【図１６】ＸＯＲ−ＸＯＲ階層の平坦化処理のフローチャートである。
【図１７】ＸＯＲ−ＸＯＲ階層の平坦化処理のフローチャートである。
【図１８】ＸＯＲ−ＸＯＲ階層の平坦化処理のフローチャートである。
【図１９】持ち上げによる平坦化処理のフローチャートである。
【図２０】持ち上げによる平坦化処理のフローチャートである。
【図２１】入力されるパラメータデータの例である。
【図２２】入力されるパラメータデータを図示したものである。
【図２３】ＡＮＤ−ＡＮＤ階層における要求条件の付け替えを示す図である。
【図２４】ＡＮＤ−ＡＮＤ階層平坦化処理によって平坦化されたパラメータデータを示す図である。
【図２５】ＸＯＲ−ＸＯＲ階層における要求条件の付け替えを示す図である。
【図２６】ＸＯＲ−ＸＯＲ階層における要求条件の付け替えと、排他条件の不可を示す図である。
【図２７】ＸＯＲ−ＸＯＲ階層平坦化処理によって平坦化されたパラメータデータを示す図である。
【図２８】持ち上げ平坦化処理によって平坦化されたパラメータデータを示す図である。
【図２９】持ち上げ平坦化処理によって平坦化されたパラメータデータを示す図である。
【図３０】テストデータ生成サーバ装置のフローチャートである。
【図３１】従来のテストデータ生成装置における標準的なパラメータデータの構造である。
【図３２】従来のテストデータ生成装置における標準的なパラメータデータの構造を図に表したものである。
【発明を実施するための形態】
【００５１】
１−１．テストデータ生成装置の概要
図１に、本発明のテストデータ表示装置１００のブロック図を示す。なお、図１に示すテストデータ表示装置１００の中には、テストデータ生成装置５０（後述するパラメータデータ生成手段Ｂ０２およびテストデータ生成手段Ｂ０４に相当）が組み込まれている。
【００５２】
テストデータ表示装置１００は、図１に示すように、パラメータデータ生成手段Ｂ０２、テストデータ生成手段Ｂ０４、テストデータ表示手段Ｂ０６、論理構造変更手段Ｂ０８を備えている。テストデータ生成手段Ｂ０４は、オールペア法等を用いたテストデータ生成のために用いられるツール（ＰＩＣＴ（商標）、ＡＣＴＳ（商標）等）である。なお、オールペア法の簡単な応用としては、ペアワイズの他、フルカバレッジ、スリーワイズ、フォーワイズなどが該当する。
【００５３】
パラメータデータ生成手段Ｂ０２は、テストデータ生成手段Ｂ０４に与えるパラメータデータを論理構造から生成するための手段である。まず、パラメータデータ生成手段Ｂ０２について説明する。
【００５４】
図２２に、ある事象の論理構造をツリー形式にて示す。このツリー形式の構造のままでは、ＰＩＣＴのようなツールに入力することはできない。
【００５５】
一方、図３１に示すＰＩＣＴのために定められたデータを、ツリー形式の構造にて示すと、図３２のようになる。
【００５６】
図３２において、パラメータａ1,ａ2,...ａnは、エクスクルーシブＯＲ（ＸＯＲ）によって、ａのグループに結合されている。つまり、パラメータａ1,ａ2,...ａnは、いずれか一つが必ず「成立」する関係にある。同様に、パラメータｂ1,ｂ2,...ｂnは、エクスクルーシブＯＲ（ＸＯＲ）によって、ｂのグループに結合されている。さらに、パラメータｍ1,ｍ2,...ｍnは、エクスクルーシブＯＲ（ＸＯＲ）によって、ｍのグループに結合されている。
【００５７】
ａ,ｂ,ｃ...ｍは、アンド（ＡＮＤ）によって、ｒのグループに結合されている。つまり、ａ,ｂ,ｃ...ｍは、全てが「成立」する関係にある。
【００５８】
なお、図３２において、要素にドットを付すことによりＡＮＤ関係を示している。また、ラインに弧を付すことによりＸＯＲ関係を示している。
【００５９】
パラメータｍ1からパラメータａnに向かうｒｅｑラインは、パラメータｍ1が成立すると、パラメータａnも成立する関係にあることを示している。また、パラメータａ2とパラメータｂ2との間のｍｕｔｅｘラインは、パラメータａ2とパラメータｂ2が同時に成立しない関係にあることを示している。
【００６０】
パラメータデータ生成手段Ｂ０２は、図２２のようなツリー構造にて示されるデータを、ＰＩＣＴなどのツールを使用するために、図３２に示すようなツリー構造にまで変換する。
【００６１】
ユーザは、たとえば、図４ａに示す画面において、第１の表示領域Ｒ１に、マウスなどをを使用して、図２２に例示されるようなツリー構造を入力する。第１の表示領域Ｒ１において、「ＡＮＤ」「ＸＯＲ」は、上述のＡＮＤ、ＸＯＲに対応している。たとえば、「1.Execution_level」には「ＡＮＤ］が付され「2.Task」には「ＡＮＤ」が付されており、両者がラインＬ1で結合されている。これらは、「activate Task」より一つ下のレベルに描かれている。したがって、これを模式的に表すと、図４ｂのようになる。以下の階層についても同様である。
【００６２】
なお、この実施形態では、各ノードにノード符号を付して表示するようにしている。たとえば、９行目「1-1-2.No_Constraints」のノード符号「1-1-2」は、次のような意味を有している。最初の「1」は、第１階層において１番目のノードであることを示している。次の「1」は、第１階層の１番目のノードに含まれる第２階層において、１番目のノードであることを示している。次の「2」は、第２階層の１番目のノードに含まれる第３階層において、２番目のノードであることを示している。このように、ノード符号を付すことにより、各ノードを特定することができる。
【００６３】
８行目の「mutex2-4.priority」と、下から６行目の「mutex1-1-1-2.No」は、「2-4.priority」と「1-1-1-2.No」の間に、ｍｕｔｅｘ（排他）条件が設定されていることを示している。
【００６４】
以上のようにして、ユーザが、ツリー構造を入力すると、前述のパラメータデータ生成手段Ｂ０２は、これを変換して、ＰＩＣＴなどのツールに入力可能なツリー構造にする。なお、テストデータ生成手段Ｂ０４に与えるパラメータデータを生成するための具体的な方法については、後述する。
【００６５】
テストデータ生成手段Ｂ０４は、パラメータデータ生成手段Ｂ０２からパラメータデータの入力を受けてテストデータを生成し、テストデータ表示手段Ｂ０６は、その結果を論理構造と同一画面上に表示する。例えば、図４に示すように、第１の表示領域Ｒ１である左側には条件となった論理構造が表示されており、同一画面上の第２の表示領域Ｒ２である右側には、左側の論理構造に基づいて生成されたテストデータが表示されている。
【００６６】
さらに、論理構造変更手段Ｂ０８は、図４の左側に示す第１の表示領域Ｒ１において、ユーザからのノードを展開し、または折り畳むといった操作入力を受け、論理構造データの変更を行う。パラメータデータ生成手段Ｂ０２は、ユーザからの操作入力を受けて、変更された論理構造に基づいて、再び、パラメータデータを生成する。さらに、これに基づいてテストデータ生成手段Ｂ０４が生成したテストデータが、テストデータ表示手段Ｂ０６によって第２の表示領域Ｒ２に表示されることになる。
【００６７】
以上のように、テストデータが、条件となった論理構造と同一画面上に表示されるため、論理構造を調整（一部を削除、追加、変更など）して、所望のテストデータを得ることが容易になる。
【００６８】
１−２．ハードウエア構成
図２に、テストデータ表示装置のハードウエア構成を示す。ＣＰＵ３０には、メモリ３２、ディスプレイ３４、ハードディスク３６、ＤＶＤ−ＲＯＭドライブ３８、キーボード／マウス４６が接続されている。ハードディスク３６には、WINDOWS（商標）などのオペレーティングシステム４２、テストデータ表示ＤＢ４３、テストデータ生成プログラム４４、テストデータ表示プログラム４５が記録されている。テストデータ生成プログラム４４は、オペレーティングシステム４２と協働してその機能を発揮するものである。テストデータ表示プログラム４５も、オペレーティングシステム４２と協働してその機能を発揮するものである。また、オペレーティングシステム４２、テストデータ生成プログラム４４、テストデータ表示プログラム４５は、ＤＶＤ−ＲＯＭ４０に記録されたものを、ＤＶＤ−ＲＯＭドライブ３８を介して、ハードディスク３６にインストールしたものである。なお、テストデータ生成プログラム４４は、図１に示すパラメータデータ生成手段Ｂ０２およびテストデータ生成手段Ｂ０４を備えている。
【００６９】
図３に、テストデータ表示ＤＢ４３のデータ構造を示す。テストデータ表示ＤＢ４３には、論理構造にて表現されたテキストデータ（後述する元パラメータデータ）と、ＰＩＣＴから出力されたテストデータのＣＳＶファイル（図４ａの右側に表示）がひも付けして記憶されている。ユーザの入力操作を受けてテストデータが算出される毎に、テストデータがテストデータ表示ＤＢ４３に記憶され、画面上に表示される。
【００７０】
１−３．テストデータ生成プログラムの処理
図４ａは、テストデータ表示プログラム４５によって生成したテストケースを表示した画面の例を示す。図４ａに示す例では、左側の第１の表示領域Ｒ１に表示されている論理構造に基づいて、テストケースが１７個生成されている。なお、左側の第１の表示領域Ｒ１の下方に表示されている、フィーチャー数は総ノード数を表し、制約数は、mutexまたはreqの総数（１２／２＝６）を表している。
【００７１】
図４ａの表示領域Ｒ２において、１行目は、ノード符号を示している。この例では、生成された１７個のテストデータが示されている。黒丸の部分は、当該ノードを選択したデータをテストデータとして生成すべきことを示している。
【００７２】
図４ａの状態で、カーソルＣ１をノード1-1.Normal上に移動させてクリックすると、図５に示すように、ノード1-1.Normalが折り畳まれて表示される。すなわち、ノード1-1.Normalより下位の論理構造が全て削除される。
【００７３】
さらに、この状態で、図５に示すテストケース算出ボタンＢ１を押下すると、ノード1-1.Normalが折り畳まれた（すなわち、ノード1-1.Normalより下位の論理構造が削除された）論理構造に基づいて、図６に示すように、テストデータが再び生成され、右側の第２の表示領域Ｒ２に表示される。図６の例では、ノード1-1.Normalより下位の論理構造が削除されたことで、テストケース数が「１７」から「１３」に減少している。このように、テストケース数を減少させることで、テストに要する時間を削減することが可能になる。
【００７４】
図７は、特定のテストケースの上にカーソルを移動させた際の表示例を示す図である。図７に示す例では、１番目のテストケース上にカーソルＣ２を移動させたことによって、当該テストケースＴ１に含まれるバリュー（「1-2 ISR2」、「2-1-1 Valid」など）が全てカーソルＣ２の付近にまとめて表示（ポップアップ）されるように構成している。これにより、第２の表示領域Ｒ２の全体を見渡す必要が無い点でメリットがある。
【００７５】
１−４．テストデータ生成プログラムの処理（異常値を含めたもの）
上記実施例では、テストデータを構成するパラメータのバリューが全て正常値であることとしているが、テストデータを構成するパラメータのバリュー中に異常値が含まれるように構成してもよい。図４ａに示す例の一部を異常値に設定した例を図９に示す。
【００７６】
図９に示す例では、ノード2-1.TaskIDのバリュー2-1-2.Invalidと、ノード2-5Max_activationのバリュー2-5-2 reachedの２つが異常値（図９に太字で示す。）と設定されており、１７個のテストデータのうち、７個のテストデータが異常値のバリュー2-5-2 reachedを含んでいる。
【００７７】
このように、テストデータに異常値のバリューを含め、これを把握することで、異常値が含まれている場合であっても、実際にテストした場合に異常値に対応した正しい動作が行われるか否かを容易に確認することができる。
【００７８】
上記実施例では、正常値か異常値の別を太字によって示したが、これに限られるものではない。図８は、特定のノードの上にカーソルを移動させた際の表示例を示す図である。図８に示すように、ノード1-1.NormalにカーソルＣ３を移動させたことによって、正常値か異常値の別「カテゴリ：正常値」をカーソルＣ３の付近に表示（ポップアップ）するようにしてもよい。
【００７９】
１−５．その他の実施形態
なお、上記実施形態では、テストデータ表示装置１００（図１）の中に、テストデータ生成装置５０（パラメータデータ生成手段Ｂ０２およびテストデータ生成手段Ｂ０４に相当）を組み込むこととしたが、テストデータ表示装置１００の中に、テストデータ生成装置５０を組み込まないようにしてもよい。
【００８０】
なお、上記実施形態では、図４に示す第２の表示領域において、パラメータのバリューが列項目に表示され、セル内に各バリュー選択の有無を表すマークを示すように構成したが、これに限定されず、例えば、図１０に示すように、第２の表示領域Ｒ２において、パラメータのバリューがセル内に表示されるように構成してもよい。これにより、行方向の表示幅を狭くすることができる点でメリットがある。
【００８１】
なお、上記実施形態では、論理構造を変更することにより、テストケースを再生成することとしたが、これに加えて、あるいはこれに代えて、フルカバレッジ、スリーワイズ、ペアワイズ、フォーワイズなどの種別を選択することによりテストケースを再生成するようにしてもよい。
【００８２】
なお、上記実施形態では、ＰＩＣＴ（商標）にパラメータデータを入力することにより、テストケースを生成することとしたが、ＡＣＴＳ（商標）などの他のツールにパラメータデータを入力することによりテストケースを生成するようにしてもよい。さらに、使用するツールとしてＰＩＣＴ（商標）、ＡＣＴＳ（商標）などの種別を選択することによりテストケースを生成するようにしてもよい。
【００８３】
２−１．テストデータ生成装置の全体構成
図１１に、この発明の一実施形態によるテストデータ生成装置５０（図１に示すパラメータデータ生成手段Ｂ０２およびテストデータ生成手段Ｂ０４に相当）の全体構成を機能ブロック図にて示す。入力手段２は、論理構造にて表現された元パラメータデータ２０を入力する。
【００８４】
アンド・アンド階層平坦化手段４は、入力された元パラメータデータ２０の論理構造中において、対象ノードから、ＡＮＤ関係とＡＮＤ関係が階層として連続している部分を見いだす。図１１においては、対象ノードがＡＴであり、ＡＮＤ関係とＡＮＤ関係が階層として連続している部分が３０で示されている。
【００８５】
アンド・アンド階層平坦化手段４は、さらに、前記部分３０において、対象子ノードＴa（対象ノードＡＴの子にあたるノード）に要求条件または排他条件が付されていれば、当該要求条件または排他条件を、対象ノードＡＴに付け替える。図１１の例では、対象子ノードＴaに要求条件や排他条件が付されていないので、ここでは何も行われない。続いて、アンド・アンド階層平坦化手段４は、対象子ノードＴaを削除する。
【００８６】
アンド・アンド階層平坦化手段４は、見いだしたＡＮＤ関係とＡＮＤ関係が階層として連続している部分の全てについて、上記の処理を実行する。これにより、アンド・アンド階層平坦化パラメータデータ２２が得られる。
【００８７】
オア・オア階層平坦化手段６は、アンド・アンド階層平坦化パラメータデータ２２の論理構造中において、対象ノードから、ＯＲ関係とＯＲ関係が階層として連続している部分を見いだす。図１１においては、対象ノードがＥｌであり、ＯＲ関係とＯＲ関係が階層として連続している部分が３２で示されている。
【００８８】
オア・オア階層平坦化手段６は、さらに、前記部分３２において、対象子ノードＩＳＲに排他条件が付されていれば、これを対象孫ノードＩＳＲ１、ＩＳＲ２（対象子ノードの子ノード）に付け替える。図１１においては、対象子ノードＩＳＲとノードＷＡの間に設定されている排他条件が、対象孫ノードＩＳＲ１、ＩＳＲ２のそれぞれと、ノードＷＡとの間に付け替えられる。また、前記部分３２において、対象子ノードＩＳＲに要求条件が付されていれば、当該要求条件を、対象ノードＥｌに付け替える。この時、この要求条件が、対象子ノードを要求先とするものであれば、対象子ノード以外の子ノードと、当該要求条件の要求元ノードとの間に、排他条件を設定する。続いて、オア・オア階層平坦化手段６は、対象子ノードＩＳＲを削除する。  
【００８９】
オア・オア階層平坦化手段６は、見いだしたＯＲ関係とＯＲ関係が階層として連続している部分の全てについて、上記の処理を実行する。これにより、オア・オア階層平坦化パラメータデータ２４が得られる。
【００９０】
持上平坦化手段８は、対象ノードＴａからＡＮＤ関係とＯＲ関係が下位階層として連続し、さらに、対象ノードからＯＲ関係とＡＮＤ関係が上位階層として連続している部分３４をみい出す。
【００９１】
持上平坦化手段８は、前記部分３４において、対象孫ノードＹ、Ｎから、前記対象ノードＴａに対して要求条件を設定する。さらに、「対象孫ノードＹ、Ｎのいずれでもない」という対象孫ノードＹＮを追加し、対象ノードＴａと対象孫ノードＹＮとの間に、排他条件を設定する。
【００９２】
持上平坦化手段８は、さらに、対象子ノードＰｒｅを対象親親ノードＡＴ（対象ノードＴａの親ノードＥｌの親ノード）の子ノードとして、ＡＮＤ関係に追加するように移動する。この際、対象子ノードＰｒｅ以下の構造も移動される。これにより、図１１に示す持上平坦化パラメータデータ２６が得られる。
【００９３】
持上平坦化パラメータデータ２６は、ＡＮＤ関係とＸＯＲ関係の階層によって定められる論理構造を有するパラメータである。したがって、これをＰＩＣＴ等によって実現されるテストデータ生成手段１０に与えることにより、テストデータを得ることができる。
【００９４】
２−２．テストデータ生成プログラムの処理
図１３に、テストデータ生成プログラム４４のフローチャートを示す。
【００９５】
4.1入力処理
ＣＰＵ３０は、パラメータデータを入力し、ハードディスク３６に記録する（ステップＳ１）。パラメータデータは、キーボード／マウス４６から入力してもよいし、ＤＶＤ−ＲＯＭドライブ３８から入力するようにしてもよい。
【００９６】
ここでは、図２１に示すようなパラメータデータが入力されたものとする。これを模式的に示すと図２２のようになる。なお、この実施形態では、パラメータデータは、図２１のような形式にて入力している。しかし、図２２のようなツリー構造をディスプレイ３４に表示し、キーボード／マウス４６などで編集を行いながら入力するようにしてもよい。
【００９７】
このパラメータデータは、オペレーティングシステムにおけるactivateTaskのプログラムに対する入力データが取り得る状態を示したものである。たとえば、図２２において、ノードactivateTaskから、ノードExecutionlevel（実行レベル）、ノードTask（activate対象となるタスク）に、ＡＮＤ関係が結ばれている。これにより、activateTaskについては、ExecutionlevelとTaskの双方が成立しなければならないことが示されている。つまり、activateTaskは、ExecutionlevelとTaskの双方の決定が必要であることが示されている。
【００９８】
また、ノードExecutionlevelから、ノードExTask（タスク実行レベル）、ノードISR（割り込み）に、ＸＯＲ関係が結ばれている。これにより、Executionlevelについては、ExTaskとISRのいずれか一方のみが成立しなければならないことが示されている。つまり、Executionlevelは、ExTaskとISRのいずれか一方のみの決定が必要であることが示されている。
【００９９】
同様に、Taskは、TaskID（タスクの識別符号）とstatus（activate実行後のタスクの状態）とpriority（実行の優先度）の全ての決定が必要であることが示されている。TaskIDは、valid（有効なＩＤ）かinvalid（無効なＩＤ）のいずれかに決定されなければならないことが示されている。statusは、suspended（停止中）、run（動作）、ready（準備完了）、wait（待ち）のいずれかに決定されなければならないことが示されている。pariorityは、high（高）、low（低）、equiv（普通）のいずれかに決定されなければならないことが示されている。
【０１００】
4.2アンド・アンド階層の平坦化処理
次に、ＣＰＵ３０は、入力されたパラメータデータについて、アンド・アンド階層の平坦化処理を行う（ステップＳ２）。前述のように、ＡＮＤ関係が階層として連続している部分を探し出して平坦化を行う。図１４に、アンド・アンド階層の平坦化処理の詳細を示す。
【０１０１】
ＣＰＵ３０は、まず、ルートノードactivateTaskを対象ノードに設定する（ステップＳ２０１）。次に、対象ノードからＡＮＤ関係にて子ノードが定義されているかどうかを判断する（ステップＳ２０２）。ここでは、図２２に示すように、対象ノードactivateTaskから、ＡＮＤ関係にて、子ノードExecutionlevelと子ノードTaskが定義されている。したがって、ＣＰＵ３０は、ステップＳ２０３に進み、最初の子ノードExecutionlevelを対象子ノードとする。
【０１０２】
続いて、ＣＰＵ３０は、対象子ノードから、ＡＮＤ関係にて、孫ノードが定義されているかを判断する（ステップＳ２０４）。ここでは、対象子ノードExecutionlevelから、孫ノードExtask、ISRに対して、ＸＯＲ関係が定義されており満たしていないので、ステップＳ２０５に進む。ステップＳ２０５において、すべての子ノードを対象子ノードとして処理したかどうかを判断する。ここでは、子ノードTaskに対する処理がまだであるから、これを対象子ノードとする（ステップＳ２０６）。
【０１０３】
ＣＰＵ３０は、対象子ノードから、ＡＮＤ関係にて、孫ノードが定義されているかを判断する（ステップＳ２０４）。ここでは、対象子ノードTaskから、ＡＮＤ関係にて、孫ノードTaskID、status、priorityが定義されている。したがって、満足するので、ステップＳ２０９に進む。
【０１０４】
ステップＳ２０９において、ＣＰＵ３０は、対象子ノードTaskに条件が付いているかどうかを判断する。ここでは、条件は付いていないので、ステップＳ２１１を実行する。ステップＳ２１１において、ＣＰＵ３０は、対象子ノードTaskを削除し、孫ノードTaskID、status、priorityを対象ノードactivateTaskの子ノードとする。これにより、図２４に示すように、対象子ノードTaskが削除される。
【０１０５】
次に、ＣＰＵ３０は、すべての子ノードを対象子ノードとして処理したかどうかを判断する（ステップＳ２０５）。ここでは、全ての子ノードについて処理を行ったので、ステップＳ２０７に進む。
【０１０６】
ステップＳ２０７において、ＣＰＵ３０は、全てのノードを対象ノードとして処理したかどうかを判断する。ここでは、未処理のノードがあるので、ノードExecutionlevelを対象ノードに設定する（ステップＳ２０８）。
【０１０７】
ＣＰＵ３０は、対象ノードExecutionlevelから、ＡＮＤ関係にて、子ノードが定義されているかどうかを判断する（ステップＳ２０２）。ここでは、対象ノードExecutionlevelから、子ノードExtask、ISRに対して、ＸＯＲ関係が定義されており満たしていないので、ステップＳ２０７に進む。まだ、未処理のノードがあるので、ノードTaskIDを対象ノードに設定する（ステップＳ２０８）。なお、既にノードTaskは削除されており、図２４のような状態となっているので、ノードTaskIDが対象ノードとして設定されることになる。
【０１０８】
ＣＰＵ３０は、対象ノードTaskIDから、ＡＮＤ関係にて、子ノードが定義されているかどうかを判断する（ステップＳ２０２）。ここでは、対象ノードTaskIDから、ＸＯＲ関係にて、子ノードvalid、invalidが定義されており、満足しないので、ステップＳ２０８に進む（ステップＳ２０７）。ステップＳ２０８においては、ノードstatusを対象ノードとして設定する。
【０１０９】
ここでも、ステップＳ２０２は満足されないので、次に、ノードpriorityが対象ノードとして設定される（ステップＳ２０２、Ｓ２０７、Ｓ２０８）。
【０１１０】
以上のような処理を繰り返し、全てのノードを対象ノードとして処理を行えば、アンド・アンド階層の平坦化処理を終了する（ステップＳ２０７）。
【０１１１】
上記のアンド・アンド階層平坦化処理を行った後のパラメータデータを、図２４に示す。
【０１１２】
なお、ステップＳ２０９において、アンド・アンド階層の条件を満たす部分の対象子ノードに条件が付いていれば、ＣＰＵ３０は、当該条件を対象ノードに付け替える。たとえば、図２３Ａに示すように、対象子ノードＣに要求条件が付いている場合、図２３Ｂに示すように、この要求条件を対象ノードＡに付け替える。なお、図２３のように対象子ノードＣが要求元となっている場合だけでなく、対象子ノードが要求先となっている場合も同様である。また、対象子ノードＣに排他条件が付されている場合も同様に付け替えを行う。
【０１１３】
4.3ＸＯＲ・ＸＯＲ階層の平坦化処理
以上のようにして、アンド・アンド階層の平坦化処理を終了すると、ＣＰＵ３０は、次に、ＸＯＲ・ＸＯＲ階層の平坦化処理を実行する（図１３、ステップＳ３）。ＸＯＲ・ＸＯＲ階層の平坦化処理の詳細を、図１６〜図１８に示す。
【０１１４】
ＣＰＵ３０は、図２４の平坦化されたデータに対して、まず、ステップＳ３０１において、ルートノードactiavteTaskを対象ノードに設定する。次に、この対象ノードactiavteTaskから、ＸＯＲ関係にて、子ノードが定義されているかどうかを判断する（ステップＳ３０２）。ここでは、ＡＮＤ関係にて、子ノードExecutionlevel、TaskID、status、priorityが定義されており、満足しない。したがって、ステップＳ３０７に進む。
【０１１５】
ステップＳ３０７において、ＣＰＵ３０は、全てのノードを対象ノードとして処理を行ったかどうかを判断する。ここでは、未対象のノードがあるので、次のノードExecutionlevelを対象ノードとする（ステップＳ３０８）。
【０１１６】
ＣＰＵ３０は、ステップＳ３０２において、対象ノードExecutionlevelから、ＸＯＲ関係にて、子ノードが定義されているかを判断する。ここでは、ＸＯＲ関係にて、子ノードExTask、ISRが定義されているので、満足する。したがって、ＣＰＵ３０は、子ノードExTaskを対象子ノードに設定する（ステップＳ３０３）。
【０１１７】
次に、ＣＰＵ３０は、対象子ノードExTaskから、ＸＯＲ関係にて、孫ノードが定義されているかどうかを判断する（ステップＳ３０４）。ここでは、ＡＮＤ関係にて、孫ノードPreemptiveが定義されており満足しないので、ステップＳ３０５に進む。
【０１１８】
ステップＳ３０５において、ＣＰＵ３０は、全ての子ノードを対象子ノードとしたかどうかを判断する。まだ、子ノードISRを対象子ノードとしていないので、これを対象子ノードに設定する（ステップＳ３０６）。
【０１１９】
ＣＰＵ３０は、対象子ノードISRから、ＸＯＲ関係にて、孫ノードが定義されているかどうかを判断する（ステップＳ３０４）。ここでは、XOR関係にて、孫ノードISR1、ISR2が定義されているので満足する。したがって、ステップＳ３０９に進む。
【０１２０】
ステップＳ３０９において、対象子ノードISRに条件が付いているかどうかを判断する。ここでは、対象子ノードISRに条件が付いているので、ステップＳ３１０に進む。ステップＳ３１０において、ＣＰＵ３０は、当該条件が排他条件であるかどうかを判断する。ここでは、排他条件が付されているので、ステップＳ３１１を実行する。ステップＳ３１１においては、対象子ノードISRに付された排他条件を、孫ノードISR1、ISR2に付け替える。つまり、ノードpriorityと対象子ノードISRとの間の排他条件が、ノードpriorityと対象孫ノードISR１との間の排他条件、ノードpriorityと対象孫ノードISR2との間の排他条件に、付け替えられる。
【０１２１】
次に、ＣＰＵ３０は、対象子ノードISRに付されている条件が要求条件であるかどうかを判断する（ステップＳ３１２）。ここでは、要求条件は付されていないので、ステップＳ３１７に進む。ステップＳ３１７において、ＣＰＵ３０は、対象子ノードISRを削除し、孫ノードISR1、ISR2を対象ノードExecutionlevelの子ノードとする。したがって、図２７に示すように、排他条件が付け替えられ、対象子ノードISRが削除される。
【０１２２】
次に、ＣＰＵ３０は、全ての子ノードについて処理を行ったかどうかを判断する（ステップＳ３０５）。ここでは、未処理の子ノードがあるので、次に、子ノードTaskIDを対象子ノードとして、ステップＳ３０４以下の処理を実行する。同様に、他の子ノードstatus、priorityも、順次、対象子ノードとして、ステップＳ３０４以下の処理を実行する。
【０１２３】
対象ノードの全ての子ノードに対する処理を終えると、次の、ノードを対象ノードとして（ステップＳ３０８）、ステップＳ３０２以下の処理を実行する。このようにして、全てのノードを対象ノードとして処理すると、ＸＯＲ・ＸＯＲ階層平坦化処理を終了する（ステップＳ３０７）。
【０１２４】
上記のステップＳ３１０において、対象子ノードに排他条件が付されている場合には、当該排他条件を当該子ノードの孫ノード全てに付け替えるようにしている。この際、対象子ノードに要求条件が付いている場合には（ステップＳ３１２）、ＣＰＵ３０は、次のような処理を行う。
【０１２５】
ＣＰＵ３０は、当該要求条件の要求元が子ノードであるかどうかを判断する（ステップＳ３１３）。そうであれば、ＣＰＵ３０は、子ノードからの要求条件を、当該子ノードの孫ノードおのおのからの要求条件に付け替える（ステップＳ３１４）。
【０１２６】
たとえば、図２５Ａに示すように、ＸＯＲ階層の連続する部分における対象子ノードＣから、ノードＥに対して要求条件が設定されていたとする。この場合、ＣＰＵ３０は、図２５Ｂに示すように、要求元を当該対象子ノードのそれぞれの孫ノードにして、ノードＥに対する要求条件を設定する。その後、対象子ノードＣを削除し、孫ノードＦ、Ｇ、Ｈを、対象ノードＡの子ノードに加える（ステップＳ３１７）。
【０１２７】
ステップＳ３１３において、対象子ノードを要求先とする要求条件が付されていると判断すると、ＣＰＵ３０は、ステップＳ３１５に進む。ステップＳ３１５においては、ＣＰＵ３０は、対象子ノードに付された要求条件を、対象ノードに付け替える。さらに、当該要求条件の要求元ノードから、対象ノードの子ノードのそれぞれ（対象子ノードを除く）に対して、排他条件を設定する（ステップＳ３１６）。
【０１２８】
たとえば、図２６Ａに示すように、ＸＯＲ階層の連続する部分における対象子ノードＣに対し、ノードＥから要求条件が設定されていたとする。この場合、ＣＰＵ３０は、図２６Ｂに示すように、当該要求条件の要求先を対象ノードＡに付け替える。さらに、対象ノードＡの子ノードＢ、Ｃの内、対象子ノードＣを除く全ての子ノードのそれぞれ（ここでは子ノードＢだけとなる）と、前記要求条件の要求元のノードＥとの間に、排他条件を設定する。その後、対象子ノードＣを削除し、孫ノードＦ、Ｇ、Ｈを、対象ノードＡの子ノードに加える（ステップＳ３１７）。
【０１２９】
4.4持ち上げによる平坦化処理
以上のようにして、ＸＯＲ・ＸＯＲ階層の平坦化処理を終了すると、ＣＰＵ３０は、次に、持ち上げによる平坦化処理を実行する（図１３、ステップＳ４）。つまり、ＡＮＤ関係とＸＯＲ関係によって定義される３階層からなるパラメータデータに平坦化する。持ち上げによる平坦化処理の詳細を、図１９、図２０に示す。
【０１３０】
まず、ＣＰＵ３０は、平坦化された図２７のパラメータデータにおいて、第３階層以下の最初のノードを対象ノードとして設定する（ステップＳ４０１）。ここでは、ノードExTaskが対象ノードとなる。
【０１３１】
次に、ＣＰＵ３０は、対象ノードExTaskからＡＮＤ関係にて、子ノードが定義されているかどうかを判断する（ステップＳ４０２）。ここでは、子ノードpreemptiveが定義されているので満足するので、ステップＳ４０３に進む。ステップＳ４０３においては、最初の子ノードを対象子ノードとする。ここでは、子ノードpreemptiveが対象子ノードとなる。
【０１３２】
次に、ＣＰＵ３０は、対象子ノードpreemptive以下の構造を、対象ノードExTaskの親の親のノード（親親ノードまたは祖父母ノード）activateTaskの子ノードとして、アンド関係にて定義する（図２８参照）。
【０１３３】
続いて、孫ノードYes、Noのそれぞれから、対象ノードExTaskに対して、要求条件を設定する（ステップＳ４０５）（以下、子ノード、孫ノードなどの表記は、図２７の状態に基づいて表記している）。さらに、ＣＰＵ３０は、「他の孫ノードのいずれでもない」という内容の孫ノードを、ＸＯＲ関係にて追加する（ステップＳ４０６）。ここでは、図１８に示すように、YesでもNoでもないというノードYesNoが定義される。
【０１３４】
次に、ＣＰＵ３０は、追加した孫ノードYesNoと対象ノードExTaskとの間に、排他条件を設定する（ステップＳ４０７）。これにより、図２８に示すようなパラメータデータとなる。
【０１３５】
次に、ＣＰＵ３０は、全ての子ノードを対象子ノードとしたかどうかを判断する（ステップＳ４０８）。処理をしていない子ノードがあれば、次の子ノードを対象子ノードとして、ステップＳ４０２以下を実行する。ここでは、全ての子ノードについての処理を行ったので、ステップＳ４１０に進む。
【０１３６】
ステップＳ４１０においては、ＣＰＵ３０は、第３階層以下の全てのノードを対象ノードとしたかどうかを判断する。対象となっていない第３階層以下のノードがあれば、次のノードを対象ノードとする（ステップＳ４１１）。ここでは、第３階層以下のノードは存在しないので、持ち上げによる平坦化処理を終了する。
【０１３７】
以上のようにして、図２８に示すような平坦化されたパラメータデータを得ることができる。これをデータ形式にて表すと、図２９に示すようになる。
【０１３８】
4.5平坦化パラメータデータに基づくテストデータの生成
次に、ＣＰＵ３０は、このようにして生成したパラメータデータに基づいて、テストデータの生成処理を行う（図１３、ステップＳ５）。この実施形態では、オールペア法に基づいてテストデータの生成を行う。
【０１３９】
ここでは、平坦化されたパラメータデータは、ＡＮＤ関係、ＸＯＲ関係からなる３階層のデータとして標準化されている。したがって、オールペア法によるテストデータ生成処理が容易である。また、オールペア法などに基づくテストデータ生成プログラム（たとえば、マイクロソフト社のＰＩＣＴ）などを用いることができる。
【０１４０】
以上のようにして、テストデータを生成することができる。
【０１４１】
２−３．その他の実施形態
(1)上記実施形態においては、テストデータの生成までを行っている。しかし、ステップＳ２〜Ｓ４の処理によって平坦化されたパラメータデータを出力するようにしてもよい。この場合、ユーザは、出力されたパラメータデータを、ＰＩＣＴなどのツールにこれを入力し、テストデータを得ることができる。
【０１４２】
(2)上記実施形態においては、スタンドアローンのコンピュータにてテストデータを生成する場合を説明した。しかし、上記の各処理をインターネットなどに接続されたサーバ装置にて行うようにしてもよい。この場合のサーバ装置におけるサーバプログラムの処理フローチャートを、図１３に示す。
【０１４３】
まず、サーバ装置のＣＰＵは、インターネットを介して端末装置からパラメータデータを受信する（ステップＳ５０）。続いて、ＡＮＤ−ＡＮＤ階層の平坦化（ステップＳ２）、ＸＯＲ−ＸＯＲ階層の平坦化（ステップＳ３）、持ち上げによる平坦化（ステップＳ４）、テストデータの生成（ステップＳ５）を実行する。これらの処理は、図１３と同様である。続いて、生成されたテストデータを、端末装置に送信する（ステップＳ５１）。
【０１４４】
以上のようにすれば、端末装置において、プログラムを用意しなくとも、テストデータを得ることができる。
【０１４５】
また、平坦化されたパラメータデータを端末装置に送信するようにしてもよい。この場合、ユーザは、端末装置側のＰＩＣＴなどのツールにこれを入力し、テストデータを得ることができる。
【０１４６】
(3)上記実施形態では、ＡＮＤ−ＡＮＤ階層平坦化、ＸＯＲ−ＸＯＲ階層平坦化の順に処理を行っている。しかし、ＡＮＤ−ＡＮＤ階層平坦化より先に、ＸＯＲ−ＸＯＲ階層平坦化を実行するようにしてもよい。
【０１４７】
(4)上記実施形態では、ＡＮＤ−ＡＮＤ階層平坦化、ＸＯＲ−ＸＯＲ階層平坦化持ち上げによる平坦化の全ての処理を行っている。しかし、ＡＮＤ−ＡＮＤ階層平坦化だけ、ＸＯＲ−ＸＯＲ階層平坦化だけ、持ち上げによる平坦化だけを実行するようにしてもよい。また、これらのうちの２つだけを実行するようにしてもよい。
【図１】
2014197276.tif 000003
【図２】
2014197276.tif 000004
【図３】
2014197276.tif 000005
【図４ａ】
2014197276.tif 000006
【図４ｂ】
2014197276.tif 000007
【図５】
2014197276.tif 000008
【図６】
2014197276.tif 000009
【図７】
2014197276.tif 000010
【図８】
2014197276.tif 000011
【図９】
2014197276.tif 000012
【図１０】
2014197276.tif 000013
【図１１】
2014197276.tif 000014
【図１２】
2014197276.tif 000015
【図１３】
2014197276.tif 000016
【図１４】
2014197276.tif 000017
【図１５】
2014197276.tif 000018
【図１６】
2014197276.tif 000019
【図１７】
2014197276.tif 000020
【図１８】
2014197276.tif 000021
【図１９】
2014197276.tif 000022
【図２０】
2014197276.tif 000023
【図２１】
2014197276.tif 000024
【図２２】
2014197276.tif 000025
【図２３】
2014197276.tif 000026
【図２４】
2014197276.tif 000027
【図２５】
2014197276.tif 000028
【図２６】
2014197276.tif 000029
【図２７】
2014197276.tif 000030
【図２８】
2014197276.tif 000031
【図２９】
2014197276.tif 000032
【図３０】
2014197276.tif 000033
【図３１】
2014197276.tif 000034
【図３２】
2014197276.tif 000035