(57)【特許請求の範囲】
【請求項１】
テスト対象に供給すべきテストシーケンスを生成する生成装置であって、
テストベクタに含まれるべき複数のパラメータのそれぞれについて、各パラメータが取りうる値の中から一の値を選択していくことにより、互いに前記複数のパラメータが取る値の組み合わせが異なる複数のテストベクタを生成するテストベクタ生成部と、
前記テストベクタ生成部が出力する前記複数のテストベクタを含む系列の複数の部分を、それぞれが１以上のテストベクタを含む複数の部分シーケンスとして抽出する抽出部と、
抽出した前記複数の部分シーケンスに基づいて、テストシーケンスを生成するテストシーケンス生成部と、
２以上のテストベクタについて、テストベクタの順序が入れ換え可能となる前記複数のパラメータの値の条件を示す可換性情報を受け取る第２受取部と、
を備え、
前記抽出部は、前記可換性情報に基づいて、前記複数のテストベクタを含む系列から、互いに順序を入れ換え可能な前記複数の部分シーケンスを抽出する、
生成装置。
【請求項２】
前記テストベクタ生成部は、前記複数のパラメータのうち予め定められた数のパラメータについて、値の組み合わせが取りうる全てのパターンを網羅する前記複数のテストベクタを生成する請求項１に記載の生成装置。
【請求項３】
前記テストベクタ生成部は、前記複数のテストベクタを含むリストを出力し、
前記抽出部は、前記複数のテストベクタを、前記リストの記載順に応じて並べた系列から前記複数の部分シーケンスを抽出する
請求項１または２に記載の生成装置。
【請求項４】
前記複数のパラメータについて、使用が禁止される値の組み合わせを定義する禁則情報を受け取る第１受取部を更に備え、
前記テストベクタ生成部は、前記禁則情報に基づいて、使用が許可される値の組み合わせをとる前記複数のテストベクタを生成する
請求項１から３のいずれか一項に記載の生成装置。
【請求項５】
前記テスト対象のテストを継続できないエラーを生じさせる、１以上のテストベクタを含む系列の条件を示すエラー条件情報を受け取る第３受取部を更に備え、
前記抽出部は、前記エラー条件情報に基づいて、前記複数の部分シーケンスから、エラーを生じさせない複数の部分シーケンスを抽出し、
前記テストシーケンス生成部は、前記エラーを生じさせない複数の部分シーケンスに基づいて、テストシーケンスを生成する、
請求項１から４のいずれか一項に記載の生成装置。
【請求項６】
前記抽出部は、前記エラー条件情報に基づいて、前記複数の部分シーケンスからエラーを生じさせる部分を除外して、エラーを生じさせない複数の部分シーケンスを抽出し、
前記抽出部は、前記複数のテストベクタを含む系列から除外されたエラーを生じさせる部分に基づき、エラーを発生させるテストに用いるエラーシーケンスを更に生成する
請求項５に記載の生成装置。
【請求項７】
前記テストシーケンス生成部は、抽出した前記複数の部分シーケンスの巡回群を含む前記テストシーケンスを生成する請求項１から６のいずれか一項に記載の生成装置。
【請求項８】
前記テストシーケンス生成部は、抽出した前記複数の部分シーケンスに基づいて、予め指定された指定シーケンス長以上の長さを有する前記テストシーケンスを生成する請求項１から７のいずれか一項に記載の生成装置。
【請求項９】
コンピュータによりテスト対象に供給すべきテストシーケンスを生成する生成方法であって、
テストベクタに含まれるべき複数のパラメータのそれぞれについて、各パラメータが取りうる値の中から一の値を選択していくことにより、互いに前記複数のパラメータが取る値の組み合わせが異なる複数のテストベクタを生成するテストベクタ生成段階と、
２以上のテストベクタについて、テストベクタの順序が入れ換え可能となる前記複数のパラメータの値の条件を示す可換性情報を受け取る受取段階と、
前記可換性情報に基づいて、前記テストベクタ生成段階において出力する前記複数のテストベクタを含む系列の複数の部分を、それぞれが１以上のテストベクタを含む互いに順序を入れ換え可能な複数の部分シーケンスとして抽出する抽出段階と、
抽出した前記複数の部分シーケンスに基づいて、テストシーケンスを生成するテストシーケンス生成段階と、
を備える生成方法。
【請求項１０】
コンピュータを、テスト対象に供給すべきテストシーケンスを生成する生成装置として機能させるプログラムであって、
実行されるとコンピュータを、
テストベクタに含まれるべき複数のパラメータのそれぞれについて、各パラメータが取りうる値の中から一の値を選択していくことにより、互いに前記複数のパラメータが取る値の組み合わせが異なる複数のテストベクタを生成するテストベクタ生成部と、
２以上のテストベクタについて、テストベクタの順序が入れ換え可能となる前記複数のパラメータの値の条件を示す可換性情報を受け取る第２受取部と、
前記可換性情報に基づいて、前記テストベクタ生成部が出力する前記複数のテストベクタを含む系列の複数の部分を、それぞれが１以上のテストベクタを含む互いに順序を入れ換え可能な複数の部分シーケンスとして抽出する抽出部と、
抽出した前記複数の部分シーケンスに基づいて、テストシーケンスを生成するテストシーケンス生成部と、
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テストシーケンスを生成する生成装置、生成方法、及び、プログラムに関する。
【背景技術】
【０００２】
従来、組み合わせテストを利用して多数の入力条件を網羅したテストを行う技法が知られている（例えば、特許文献１及び非特許文献１及び２）。しかし、組み合わせテストを順序列を受理するシステムに適用すると、テスト数及びテスト長がブローアップしてしまう問題が生じる。
【０００３】
そこで、順序列を受理するシステムをテストするためにステートマシン又は時制論理等を記述することでテストケースを検証する方法が知られている（例えば、特許文献２及び３）。しかし、一般的に、この方法によると、入力空間が複雑で網羅性の検証が困難となり、テスト対象のシステムが受理する操作列について詳細な仕様が必要となる。また、特許文献２にはテスト対象がオートマトンに還元可能であることを必要とし、特許文献３にはテストケースを生成するための具体的なアルゴリズムが開示されていないという問題がある。
［特許文献１］特開２０１２−１８５６４２号公報
［特許文献２］特開２０１１−０６５５７６号公報
［特許文献３］特開２０１０−１９１８９９号公報
［非特許文献１］"Software fault interactions and implications for software testing." Software Engineering, IEEE Transactions on 30.6 (2004): 418-421.
［非特許文献２］"MUSTC-Testing: Multi-Stage-Combinational Test scheduling at the Register-Transfer Level." VLSI Design, 1995., Proceedings of the 8th International Conference on. IEEE, 1995.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、上記従来の課題を解決するために、順序列を受理するシステムに対して、操作列について詳細な定義をすることなく、テストケースの網羅性を担保する手法を提供する。
【課題を解決するための手段】
【０００５】
本発明の第１の態様においては、テスト対象に供給すべきテストシーケンスを生成する生成装置であって、テストベクタに含まれるべき複数のパラメータのそれぞれについて、各パラメータが取りうる値の中から一の値を選択していくことにより、互いに複数のパラメータが取る値の組み合わせが異なる複数のテストベクタを生成するテストベクタ生成部と、テストベクタ生成部が出力する複数のテストベクタを含む系列の複数の部分を、それぞれが１以上のテストベクタを含む複数の部分シーケンスとして抽出する抽出部と、抽出した複数の部分シーケンスに基づいて、テストシーケンスを生成するテストシーケンス生成部と、を備える生成装置、当該生成装置を用いた生成方法、及び、当該生成装置に用いるプログラムを提供する。
【０００６】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００７】
【図１】本実施形態の処理の概要を示す。
【図２】本実施形態の生成装置１０の構成を示す。
【図３】本実施形態の生成装置１０の処理フローを示す。
【図４】本実施形態に係るテストベクタのパラメータの一例を示す。
【図５】本実施形態に係るテストベクタの系列の一例を示す。
【図６】本実施形態のＳ１３０における抽出部１５０の処理の一例を示す。
【図７】本実施形態に係る部分シーケンスの一例を示す。
【図８】本実施形態に係る抽出部１５０の処理の一例を示す。
【図９】本実施形態に係る抽出部１５０の処理の一例を示す。
【図１０】本実施形態に係る抽出部１５０の処理の一例を示す。
【図１１】本実施形態に係るテストシーケンス生成部１６０の処理の一例を示す。
【図１２】本実施形態に係るテストシーケンスの一例を示す。
【図１３】本実施形態に係るテストシーケンスの一例を示す。
【図１４】本実施形態に係るテストシーケンスの一例を示す。
【図１５】本実施形態に係るテストシーケンスの一例を示す。
【図１６】本実施形態に係るテストシーケンスの一例を示す。
【図１７】本実施形態に係るテストシーケンスの一例を示す。
【図１８】生成装置１０のテスト対象における状態遷移の網羅性の証明を示す。
【図１９】コンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【０００８】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００９】
図１は、本実施形態の処理の概要を示す。
【００１０】
本実施形態において、生成装置１０は、テスト対象（ＳＵＴ）の操作の仕様とテストシーケンスの長さが設定された設定ファイルをユーザから受け取り、設定ファイルに応じて操作を定義することにより、ペアワイズ法等で複数のテストベクタを生成する。生成装置１０は、複数のテストベクタを元に操作の集合からなるテストシーケンスを生成する。
【００１１】
その後、テストドライバが、テスト対象にテストシーケンスに基づく操作を実行させ、その結果を取得することでテストシーケンスによるテスト結果を得る。本実施形態に係る生成装置１０によると、設定ファイルに基づき、操作及び状態の網羅性を担保し、長さを現実的に実行可能な範囲に抑えたテストシーケンスを生成することができる。
【００１２】
図２は、本実施形態の生成装置１０の構成を示す。生成装置１０は、順序列を受理するテスト対象のシステムに供給すべき連続した操作列であるテストシーケンスを生成する。例えば、生成装置１０は、テスト対象に入力される操作であるテストベクタを結合したテストシーケンスを生成する。生成装置１０は、第１受取部１００、テストベクタ生成部１２０、第２受取部１３０、第３受取部１４０、抽出部１５０、及び、テストシーケンス生成部１６０を備える。
【００１３】
第１受取部１００は、ユーザ端末２０等からテストベクタに含まれる因子となる複数のパラメータについて、使用が禁止される値の組み合わせを定義する禁則情報を受け取る。第１受取部１００は、受け取った禁則情報をテストベクタ生成部１２０に供給する。
【００１４】
テストベクタ生成部１２０は、テストベクタの各パラメータの値（すなわち、各因子の水準）を選択していくことにより、互いに複数のパラメータが取る値の組み合わせが異なる複数のテストベクタを生成する。例えば、テストベクタ生成部１２０は、ペアワイズ法により、複数のパラメータについて、値の組み合わせが取りうる全てのパターンを網羅する複数のテストベクタを生成する。
【００１５】
ここで、テストベクタ生成部１２０は、禁則情報に基づいて、使用が許可される値の組み合わせをとる複数のテストベクタを生成してよい。テストベクタ生成部１２０は、生成したテストベクタの系列を抽出部１５０に出力する。
【００１６】
第２受取部１３０は、ユーザ端末２０等から２以上のテストベクタについて、テストベクタの順序が入れ換え可能となる複数のパラメータの値の条件を示す可換性情報を受け取る。第２受取部１３０は、可換性情報を抽出部１５０に供給する。
【００１７】
第３受取部１４０は、ユーザ端末２０等からテスト対象のテストを継続できないエラーを生じさせる、１以上のテストベクタを含む系列の条件を示すエラー条件情報を受け取る。第３受取部１４０は、エラー条件情報を抽出部１５０に供給する。
【００１８】
抽出部１５０は、テストベクタ生成部１２０が出力する複数のテストベクタを含む系列の複数の部分を、それぞれが１以上のテストベクタを含む複数の部分シーケンスとして抽出する。例えば、抽出部１５０は、可換性情報に基づいて、複数のテストベクタを含む系列から、互いに順序を入れ換え可能な複数の部分シーケンスを抽出する。
【００１９】
更に、抽出部１５０は、抽出した複数の部分シーケンスから、エラー条件情報に基づいてエラーを生じさせる部分を除外して、エラーを生じさせない複数の部分シーケンスを更に抽出してよい。ここで、抽出部１５０は、複数のテストベクタを含む系列から除外されたエラーを生じさせる部分に基づき、エラーを発生させるテストに用いるエラーシーケンスを更に生成してよい。抽出部１５０は、エラーを生じさせない複数の部分シーケンス及びエラーシーケンスをテストシーケンス生成部１６０に供給する。
【００２０】
テストシーケンス生成部１６０は、抽出したエラーを生じさせない複数の部分シーケンスに基づいて、テストシーケンスを生成する。例えば、テストシーケンス生成部１６０は、抽出したエラーを生じさせない複数の部分シーケンスに基づいて、複数の部分シーケンスの巡回群を含むテストシーケンスを生成する。テストシーケンス生成部１６０は、エラーシーケンスをテストシーケンスに含めてよい。
【００２１】
このように、生成装置１０は、テストベクタ生成部１２０によりテストベクタにおける水準のペアの網羅性が担保されたテストベクタの系列を生成し、抽出部１５０がテストベクタの系列から互いに可換性のある複数の部分シーケンスを抽出し、テストシーケンス生成部１６０が部分シーケンスの巡回群を含むテストシーケンスを生成する。これにより、生成装置１０は、テスト対象のステートマシン定義をすることなく、現実的なテストシーケンス長で操作列による入力を網羅することができる。
【００２２】
図３は、本実施形態の生成装置１０の処理フローを示す。本実施形態において、生成装置１０は、Ｓ１１０〜Ｓ１６０の処理を実行することにより、テスト対象に対するテストシーケンスを生成する。
【００２３】
まず、Ｓ１１０において、第１受取部１００は、ユーザ端末２０等から、テスト対象に入力される単位操作であるテストベクタに含まれる複数のパラメータについて、使用が禁止される値の組み合わせを定義する禁則情報を受け取る。
【００２４】
例えば、図４に示すように、テスト対象に対するテストベクタとして、ＩＤ（レコードの識別番号）、ＯＰ（操作内容）、Ｓｅｒｉａｌ（社員番号等の個人識別番号）、及び、Ｎａｍｅ（名前）の４個のパラメータを指定するデータベースに対する操作を想定する。ＩＤには、１〜３のいずれかの値が入力され得、ＯＰにはＩＮＳＥＲＴ、ＵＰＤＡＴＥ、及び、ＤＥＬＥＴＥのいずれかの値が入力され得、Ｓｅｒｉａｌには１００、１０１、１０２、及び，Ｎｕｌｌのいずかの値が入力され得、Ｎａｍｅには、Ｊｏｈｎ、Ｍｉｋｅ、Ａｌｉｃｅ、及び、Ｎｕｌｌのいずれかの値が入力され得る。
【００２５】
例えば、第１受取部１００は、「ＯＰがＤｅｌｅｔｅ（レコードの削除）である場合、ＩＤ以外のフィールドにはＮｕｌｌとする」禁則情報を受け取る。すなわち、第１受取部１００は、禁則情報として「（ＯＰ＝Ｄｅｌｅｔｅ）ａｎｄ｛（Ｓｅｒｉａｌ＝Ｎｕｌｌ）ｏｒ（Ｎａｍｅ＝Ｎｕｌｌ）｝」を受け取る。第１受取部１００は、受け取った禁則情報をテストベクタ生成部１２０に供給する。
【００２６】
次にＳ１２０において、テストベクタ生成部１２０は、テストベクタに含まれるべき複数のパラメータのそれぞれについて、各パラメータが取りうる値の中から一の値を選択していくことにより、互いに複数のパラメータが取る値の組み合わせが異なる複数のテストベクタを生成する。例えば、テストベクタ生成部１２０は、ペアワイズ法、直交表、又はパラメータ値の組み合わせの全パターンを網羅するナイーブな方法等により、複数のパラメータについて、値の組み合わせが取りうる全てのパターンを網羅する複数のテストベクタを含むリストを生成する。
【００２７】
なお、テストベクタ生成部１２０は、テストベクタに含まれる全パラメータについて取りうる値を選択してよい。これに代えて、パラメータのうち予め定められた数のパラメータのみ取りうる値を選択し、残りのパラメータは予め定められた値としてよい。
【００２８】
また、テストベクタ生成部１２０は、第１受取部１００から取得した禁則情報に基づいて、使用が許可される値の組み合わせをとる複数のテストベクタを生成する。例えば、テストベクタ生成部１２０は、禁則情報によりエラーとなることが示されるパラメータの条件をｎｅｇａｔｉｖｅとしてペアワイズ法により複数のテストベクタを生成してよい。
【００２９】
一例として、テストベクタ生成部１２０は、「ＯＰがＤｅｌｅｔｅ（レコードの削除）である場合、ＩＤ以外のフィールドにはＮｕｌｌとする」禁則情報に基づいて、ＩＤ＝ＤｅｌｅｔｅとなりＮａｍｅ又はＳｅｒｉａｌがＮｕｌｌとなるテストベクタを生成し、ＩＤ＝ＤｅｌｅｔｅとなりＮａｍｅ又はＳｅｒｉａｌがＮｕｌｌ以外となるテストベクタを生成しないようにする。
【００３０】
具体的には、テストベクタ生成部１２０は、図５に示すように、図４に示すパラメータの値に基づいて、ペアワイズ法により１８個のテストベクタを生成する。図５に示す１８個のテストベクタは、「ＩＮＳＥＲＴ＆１０２」及び「ＵＰＤＡＴＥ＆Ｍｉｋｅ」等の全ての値のペアを含んでいる。テストベクタ生成部１２０は、生成した複数のテストベクタを含む系列を抽出部１５０に出力する。
【００３１】
次に、Ｓ１３０において、抽出部１５０は、複数のテストベクタを含む系列から、１以上のテストベクタが順序付けられて並べられた部分シーケンスを複数個抽出する。
【００３２】
例えば、まず、第２受取部１３０は、ユーザ端末２０等から２以上のテストベクタについて、テストベクタの順序が入れ換え可能となる複数のパラメータの値の条件を示す可換性情報を受け取り、抽出部１５０に供給する。すなわち、第２受取部１３０は、ｎ個のテストベクタの系列ａ（ａ∈｛ａ１，ａ２，...ａｎ｝）に含まれる２つのテストベクタａｉ及びａｊについて、ａｉ→ａｊの順序で実行した結果と、ａｊ→ａｉの順序で実行した結果が等しくなるテストベクタａｉ及びａｊのパラメータの条件を可換性情報として抽出部１５０に供給する。
【００３３】
一例として、図５に示すようなレコードに対するテストベクタの場合、ＩＤが同一の２つのテストベクタ（例えば、２番目の［１，ＵＰＤＡＴＥ，１０１，Ｍｉｋｅ］のテストベクタと、１０番目の［１，ＵＰＤＡＴＥ，ＮＵＬＬ，Ｊｏｈｎ］のテストベクタ）は順序を逆にすると最後に実行されたＵＰＤＡＴＥ（更新処理）により結果が変わる。ＩＤが異なる２つのテストベクタ（例えば、１番目の［２，ＩＮＳＥＲＴ，１０２，Ｍｉｋｅ］のテストベクタと、２番目の［１，ＵＰＤＡＴＥ，１０１，Ｍｉｋｅ］のテストベクタ）は異なるレコードに対する処理であるから、順序を逆にして実行しても結果は変わらない。このような場合、第２受取部１３０は、「ＩＤが異なる操作は可換である」旨の可換性情報を外部から受け取り抽出部１５０に供給する。可換性情報はテスト対象の仕様に従い、予め作成されたものであってよい。
【００３４】
次に、抽出部１５０は、可換性情報に基づいて、複数のテストベクタをリストの記載順に応じて並べた系列から、それぞれが１以上のテストベクタを含み、互いに順序を入れ換え可能な複数の部分シーケンスを抽出する。例えば、抽出部１５０は、図５に示すテストベクタの系列から、図７に示す３個の部分シーケンス（Ｇ１、Ｇ２、及びＧ３）を抽出する。ここで、各々の部分シーケンス（例えば、Ｇ１）に含まれるテストベクタは、他の部分シーケンス（例えば、Ｇ２）に含まれるテストベクタとＩＤが異なるので互いに入れ換え可能となる。
【００３５】
ここで、図６にＳ１３０における抽出部１５０の処理の一例を示す。抽出部１５０は、例えば、Ｓ１３１〜Ｓ１３６に係る処理を実行する。
【００３６】
まず、Ｓ１３１において、抽出部１５０は、ｎ個のテストベクタの系列ａ（ａ∈｛ａ１，ａ２，...ａｎ｝）に含まれるテストベクタの全ての処理が完了したか判断する。抽出部１５０は、現在処理中のテストベクタａｍ（１≦ｍ≦ｎ）で全てのテストベクタの全ての処理が完了したと判断する場合（即ちｎ＝ｍの場合）はＳ１３０の処理を終了し、そうでない場合（ｍ＜ｎの場合）は、ｍに１を追加して処理をＳ１３２に進める。
【００３７】
Ｓ１３２において、抽出部１５０は、部分シーケンスの番号ｉを１とすることにより部分シーケンスＧｉの番号ｉを初期化する。その後、抽出部１５０は処理をＳ１３３に進める。
【００３８】
次に、Ｓ１３３において、抽出部１５０は、ｉ番目の部分シーケンスである部分シーケンスＧｉが空集合か否か判断する。抽出部１５０は、部分シーケンスＧｉが空である場合はＳ１３６の処理を実行し、空でない場合は処理をＳ１３４の処理を実行する。
【００３９】
Ｓ１３４において、抽出部１５０は、可換性情報に基づき、部分シーケンスＧｉに含まれる少なくとも一のテストベクタとテストベクタａｍとの可換性を判断する。抽出部１５０は、両者が可換であると判断する場合には処理をＳ１３５に進め、そうでない場合は処理をＳ１３６に進める。
【００４０】
Ｓ１３５において、抽出部１５０はｉに１を加える処理を実行する。その後、抽出部１５０は処理をＳ１３３に戻す。
【００４１】
Ｓ１３６において、抽出部１５０は部分シーケンスＧｉにａｍを加える処理を実行する。その後、抽出部１５０は処理をＳ１３１に戻す。
【００４２】
このように、抽出部１５０は、部分シーケンスａｍの各々を部分シーケンスＧｉのいずれかに割り当てる。なお、テスト対象のステートマシンが定義されている場合、抽出部１５０は、Ｓ１３５で追加される部分シーケンスの数の上限をテスト対象の状態数程度とし、ｉの値が状態数を超えた場合、Ｓ１３５を実行せずに処理をＳ１３６に移行してもよい。
【００４３】
Ｓ１３０の次に、Ｓ１４０において、抽出部１５０は、複数の部分シーケンスから、エラーを生じさせる部分を除外してエラーを生じさせない複数の部分シーケンスを抽出する。
【００４４】
例えば、まず、第３受取部１４０は、ユーザ端末２０等からテスト対象のテストを継続できないエラーを生じさせる、１以上のテストベクタを含む系列の条件を示すエラー条件情報を受け取り、エラー条件情報を抽出部１５０に供給する。一例として、第３受取部１４０は、データベースに対する主キーが重複したレコードの挿入若しくは更新、又は、ＮＵＬＬ値を含む不正なレコードの挿入若しくは更新等の不正な操作であって、テスト対象に対して操作を供給すると結果がエラーとなり、その後の操作によっても出力が変化しない操作となるテストベクタ（すなわち、任意の部分シーケンスＧｘに対してＧｘ・ａ＝０となるテストベクタａ）のパラメータの条件を抽出部１５０に供給する。
【００４５】
抽出部１５０は、エラー条件情報に基づいて、複数の部分シーケンスの各々から、エラーを生じさせるテストベクタを除外して、エラーを生じさせない１以上のテストベクタから構成される複数の部分シーケンス（本明細書において、非エラーシーケンスとも言う）を生成する。
【００４６】
次に、Ｓ１５０において、抽出部１５０は、複数のテストベクタを含む系列から除外されたエラーを生じさせる部分に基づき、エラーを発生させるテストに用いるエラーシーケンスを更に生成する。例えば、抽出部１５０は、各部分シーケンスについて、エラーを発生されるテストベクタごとに、最初のテストベクタから当該エラーを生じさせるテストベクタに至るまでの１以上のエラーを生じさせないテストベクタを抽出し、この１以上のエラーを生じさせないテストベクタに当該エラーを発生させるテストベクタを追加することにより、エラーシーケンスを生成する。抽出部１５０は、エラーを発生させるテストベクタごとに複数のエラーシーケンスを生成してよい。
【００４７】
図８は、抽出部１５０が、部分シーケンスＧ１から生成する非エラーシーケンスＧ１−Ｎ、エラーシーケンスＧ１−１、エラーシーケンスＧ１−２、及び、エラーシーケンスＧ１−３を示す。部分シーケンスＧ１は、６個のテストベクタ（１）〜（６）を含むが、このうちテストベクタ（２）〜（４）は、Ｓｅｒｉａｌ又はＮａｍｅにＮｕｌｌを含むＩＮＳＥＲＴ又はＵＰＤＡＴＥ操作であるので、エラーを発生させるテストベクタである。
【００４８】
抽出部１５０は、部分シーケンスＧ１を構成するテストベクタ（１）〜（６）から、エラーを生じさせるテストベクタ（２）〜（４）を除くことにより、テストベクタ（１）、テストベクタ（５）、及び、テストベクタ（６）を含む非エラーシーケンスＧ１−Ｎを生成する。
【００４９】
また、抽出部１５０は、最初のテストベクタ（１）からエラーを生じさせるテストベクタ（２）に至るまでの１以上のエラーを生じさせないテストベクタ、すなわちテストベクタ（１）と、エラーを生じさせるテストベクタ（２）〜（４）のそれぞれとを結合させる。これにより、抽出部１５０は、テストベクタ（１）及び（２）から構成されるエラーシーケンスＧ１−１、テストベクタ（１）及び（３）から構成されるエラーシーケンスＧ１−２、並びに、テストベクタ（１）及び（４）から構成されるエラーシーケンスＧ１−３を生成する。
【００５０】
図９は、抽出部１５０が、部分シーケンスＧ２から生成する非エラーシーケンスＧ２−Ｎ、エラーシーケンスＧ２−１、エラーシーケンスＧ２−２、及び、エラーシーケンスＧ２−３を示す。
【００５１】
図７の処理と同様に、抽出部１５０は、部分シーケンスＧ２を構成するテストベクタ（１）〜（５）から、エラーを生じさせるテストベクタ（３）〜（４）を除くことにより、テストベクタ（１）、テストベクタ（２）、及び、テストベクタ（５）を含む非エラーシーケンスＧ１−Ｎを生成する。また、抽出部１５０は、テストベクタ（１）〜（３）から構成されるエラーシーケンスＧ２−１、並びに、テストベクタ（１）、（２）及び（４）から構成されるエラーシーケンスＧ２−２を生成する。
【００５２】
図１０は、抽出部１５０が、部分シーケンスＧ３から生成する非エラーシーケンスＧ３−Ｎ、エラーシーケンスＧ３−１、エラーシーケンスＧ３−２、及び、エラーシーケンスＧ３−３を示す。
【００５３】
図７の処理と同様に、抽出部１５０は、部分シーケンスＧ３を構成するテストベクタ（１）〜（７）から、エラーを生じさせるテストベクタ（２）及び（６）を除くことにより、テストベクタ（１）、テストベクタ（３）〜（５）、及び、テストベクタ（７）を含む非エラーシーケンスＧ３−Ｎを生成する。また、抽出部１５０は、テストベクタ（１）及び（２）から構成されるエラーシーケンスＧ３−１、並びに、テストベクタ（１）及び（３）〜（６）から構成されるエラーシーケンスＧ３−２を生成する。
【００５４】
抽出部１５０は、抽出した非エラーシーケンス及びエラーシーケンスをテストシーケンス生成部１６０に供給する。
【００５５】
次に、Ｓ１６０において、テストシーケンス生成部１６０は、抽出した複数の非エラーシーケンスに基づいて、予め指定された指定シーケンス長以上の長さのテストシーケンスを生成する。また、テストシーケンス生成部１６０は、エラーシーケンスに基づいて、テストシーケンスを生成する。
【００５６】
例えば、テストシーケンス生成部１６０は、（１）複数の非エラーシーケンスの各々の繰り返し、（２）（１）複数の非エラーシーケンスの各々の繰り返しを結合したもの、（３）複数の非エラーシーケンスの巡回群、及び／又は、（４）複数の非エラーシーケンスの巡回群を結合したものをテストシーケンスとして生成する。
【００５７】
図１１は、Ｓ１６０におけるテストシーケンス生成部１６０の処理の一例を示す。ここで、Ｓ１４０で抽出部１５０が生成した複数の非エラーシーケンスＧ１−Ｎ、Ｇ２−Ｎ、及び、Ｇ３−Ｎのテストベクタを順序通り結合した操作をそれぞれＯ１、Ｏ２、Ｏ３とし、図中の「．」を前後の操作を結合する演算とする。
【００５８】
テストシーケンス生成部１６０は、テストシーケンスとして、（１）Ｏ１が予め定められた回数繰り返される操作、Ｏ２が予め定められた回数繰り返される操作、及びＯ３が予め定められた回数繰り返される操作、（２）Ｏ１が予め定められた回数繰り返され、その後、Ｏ２が予め定められた回数繰り返され、その後、更にＯ３が予め定められた回数繰り返される操作、（３）Ｏ１、Ｏ２、Ｏ３の順序で実行される操作、Ｏ２、Ｏ３、Ｏ１の順序で実行される操作、及びＯ３、Ｏ１、Ｏ２の順序で実行される操作、並びに、（４）Ｏ１、Ｏ２、Ｏ３、Ｏ２、Ｏ３、Ｏ１、Ｏ３、Ｏ１、Ｏ２の順序で実行される操作を生成する。
【００５９】
図１２〜１４は、本実施形態に係るテストシーケンス生成部１６０が生成するテストシーケンスの一例を示す。例えば、テストシーケンス生成部１６０は、（１）Ｏ１〜Ｏ３が予め定められた回数繰り返される操作として、部分シーケンスＧ１−Ｎ〜Ｇ３−Ｎに対応する操作Ｏ１〜Ｏ３がそれぞれ繰り返されたテストシーケンスを生成する。
【００６０】
例えば、図１２に示すように、テストシーケンス生成部１６０は、Ｏ１に含まれる［１，ＵＰＤＡＴＥ，１０１，Ｍｉｋｅ］、［１，ＵＰＤＡＴＥ，１０２，Ｊｏｈｎ］及び［１，ＤＥＬＥＴＥ，ＮＵＬＬ，ＮＵＬＬ］の３つのテストベクトルを複数回繰り返したテストシーケンスを生成する。
【００６１】
例えば、図１３に示すように、テストシーケンス生成部１６０は、Ｏ２に含まれる［２，ＩＮＳＥＲＴ，１０２，Ｍｉｋｅ］、［２，ＵＰＤＡＴＥ，１００，Ａｌｉｃｅ］及び［２，ＤＥＬＥＴＥ，ＮＵＬＬ，ＮＵＬＬ］の３つのテストベクトルを複数回繰り返したテストシーケンスを生成する。
【００６２】
例えば、図１４に示すように、テストシーケンス生成部１６０は、Ｏ３に含まれる［３，ＩＮＳＥＲＴ，１０１，Ａｌｉｃｅ］、［３，ＵＰＤＡＴＥ，１００，Ｊｏｈｎ］、［３，ＵＰＤＡＴＥ，１０２，Ａｌｉｃｅ］、［３，ＤＥＬＥＴＥ，ＮＵＬＬ，ＮＵＬＬ］及び［３，ＩＮＳＥＲＴ，１００，Ｍｉｋｅ］の５つのテストベクトルを複数回繰り返したテストシーケンスを生成する。
【００６３】
図１５〜１７は、本実施形態に係るテストシーケンス生成部１６０が生成するテストシーケンスの別の一例を示す。例えば、テストシーケンス生成部１６０は、（３）Ｏ１〜Ｏ３が巡回して順番に実行される操作として、部分シーケンスＧ１−Ｎ〜Ｇ３−Ｎに対応するＯ１、Ｏ２、及び、Ｏ３が順番に結合されたテストシーケンスを生成する。
【００６４】
例えば、図１５に示すように、テストシーケンス生成部１６０は、Ｏ１に含まれる［１，ＵＰＤＡＴＥ，１０１，Ｍｉｋｅ］、［１，ＵＰＤＡＴＥ，１０２，Ｊｏｈｎ］及び［１，ＤＥＬＥＴＥ，ＮＵＬＬ，ＮＵＬＬ］と、Ｏ２に含まれる［２，ＩＮＳＥＲＴ，１０２，Ｍｉｋｅ］、［２，ＵＰＤＡＴＥ，１００，Ａｌｉｃｅ］及び［２，ＤＥＬＥＴＥ，ＮＵＬＬ，ＮＵＬＬ］と、Ｏ３に含まれる［３，ＩＮＳＥＲＴ，１０１，Ａｌｉｃｅ］、［３，ＵＰＤＡＴＥ，１００，Ｊｏｈｎ］、［３，ＵＰＤＡＴＥ，１０２，Ａｌｉｃｅ］、［３，ＤＥＬＥＴＥ，ＮＵＬＬ，ＮＵＬＬ］及び［３，ＩＮＳＥＲＴ，１００，Ｍｉｋｅ］とがこの順番で結合されたテストシーケンスＯ１．Ｏ２．Ｏ３を生成する。
【００６５】
また例えば、図１６に示すように、テストシーケンス生成部１６０は、Ｏ２に含まれる［２，ＩＮＳＥＲＴ，１０２，Ｍｉｋｅ］、［２，ＵＰＤＡＴＥ，１００，Ａｌｉｃｅ］及び［２，ＤＥＬＥＴＥ，ＮＵＬＬ，ＮＵＬＬ］と、Ｏ３に含まれる［３，ＩＮＳＥＲＴ，１０１，Ａｌｉｃｅ］、［３，ＵＰＤＡＴＥ，１００，Ｊｏｈｎ］、［３，ＵＰＤＡＴＥ，１０２，Ａｌｉｃｅ］、［３，ＤＥＬＥＴＥ，ＮＵＬＬ，ＮＵＬＬ］及び［３，ＩＮＳＥＲＴ，１００，Ｍｉｋｅ］と、Ｏ１に含まれる［１，ＵＰＤＡＴＥ，１０１，Ｍｉｋｅ］、［１，ＵＰＤＡＴＥ，１０２，Ｊｏｈｎ］及び［１，ＤＥＬＥＴＥ，ＮＵＬＬ，ＮＵＬＬ］とがこの順番で結合されたテストシーケンスＯ２．Ｏ３．Ｏ１を生成する。
【００６６】
また例えば、図１７に示すように、テストシーケンス生成部１６０は、Ｏ３に含まれる［３，ＩＮＳＥＲＴ，１０１，Ａｌｉｃｅ］、［３，ＵＰＤＡＴＥ，１００，Ｊｏｈｎ］、［３，ＵＰＤＡＴＥ，１０２，Ａｌｉｃｅ］、［３，ＤＥＬＥＴＥ，ＮＵＬＬ，ＮＵＬＬ］及び［３，ＩＮＳＥＲＴ，１００，Ｍｉｋｅ］と、Ｏ１に含まれる［１，ＵＰＤＡＴＥ，１０１，Ｍｉｋｅ］、［１，ＵＰＤＡＴＥ，１０２，Ｊｏｈｎ］及び［１，ＤＥＬＥＴＥ，ＮＵＬＬ，ＮＵＬＬ］と、Ｏ２に含まれる［２，ＩＮＳＥＲＴ，１０２，Ｍｉｋｅ］、［２，ＵＰＤＡＴＥ，１００，Ａｌｉｃｅ］及び［２，ＤＥＬＥＴＥ，ＮＵＬＬ，ＮＵＬＬ］とがこの順番で結合されたテストシーケンスＯ３．Ｏ１．Ｏ２を生成する。
【００６７】
ここで、テストシーケンス生成部１６０は、抽出部１５０から受け取ったエラーシーケンスをテストシーケンスに含めてよい。
【００６８】
このように、生成装置１０は、禁則情報を考慮した上でペアワイズ法等により、複数の因子から水準の組み合わせを選択したテストベクタを生成し、これをテスト対象への入力として扱う。これにより、生成装置１０は、単位操作となるテストベクタに含まれる因子の網羅性を確保することができる。
【００６９】
また、生成装置１０は、生成したテストベクタに結合測を適用し、更に操作順序の可換性に基づいてテストベクタが順序づけられた部分シーケンスを生成する。これにより、生成装置１０は、ステートマシン定義をすることなく、ペアワイズ法等の組み合わせテスト手法の出力を、巡回群を適用することにより順序列を受理するテスト対象への適用に用いることができる。
【００７０】
また、生成装置１０は、エラーを生じさせる操作に係るテストベクタを除去した部分シーケンスに基づいたテストシーケンスを生成し、エラー部分については別のテストシーケンスを生成する。これにより、生成装置１０は、テストシーケンスから無駄な操作を省きつつ、エラー処理のテストを別途実行することができる。
【００７１】
更に、生成装置１０は、エラーが除去された部分シーケンスに巡回群を適用してテストシーケンスを生成する。これにより、生成装置１０は、現実的にテスト可能な長さのテストシーケンスによりテスト対象における状態遷移の網羅性を保証することができる。例えば、ナイーブな方法によりテストシーケンスを生成するとｋｋの長さのテストシーケンスとなるが、本実施形態の生成装置１０によるとｋ２程度の長さのテストシーケンスとすることができる。
【００７２】
なお、生成装置１０は、禁則情報、可換性情報、及び／又は、エラー条件情報をユーザ端末等から取得する代わりに、これらの情報を予め記憶装置に記憶しておき、記憶装置から必要に応じて読み出してよい。
【００７３】
図１８は、生成装置１０によるテスト対象における状態遷移の網羅性の証明を示す。ここでは、テスト対象がｋ個の状態を持つと仮定し、｛Ｏ１，Ｏ２，...Ｏｋ｝が、試験対象がエラー（Ｆａｉｌｕｒｅ）を誘発する操作の場合分けの可能性を網羅していると仮定した場合、生成装置１０が（４）複数の非エラーシーケンスの巡回群を結合したもの（Ｏ１．Ｏ２．Ｏ３．Ｏ２．Ｏ３．Ｏ１．Ｏ３．Ｏ１．Ｏ２）によるテストベクタは、全てのエラー（Ｆａｉｌｕｒｅ）を誘発する可能性を網羅すること、すなわち、生成装置１０がテスト対象における状態遷移の網羅性を保証することを証明する。
【００７４】
なお、｛Ｏ１，Ｏ２，...Ｏｋ｝が、試験対象が受理する操作の場合分けの可能性を網羅するということは、ペアワイズ法及び直交表によるテストから得られる経験的な仮説であるが、多くの事例により有効性が確認されている。
【００７５】
（１）定義
ステートマシンとなるテスト対象をＳｋ，ｌ＝｛Ｑ，Σ，Δ｝で定義する。ここで、Ｑは有限個の状態の集合で｜Ｑ｜＝ｋとする。Σはテスト対象が受理するｌ種類の操作の剰余類でΣ〜＝｛Ｏｌ｝（準同型）を満たす。Δ⊆Ｑ×Σ×Σによって遷移が定義されるものとする。
【００７６】
（２）定理
Ｔｋ（ｋ≧ｌ）（テストベクタの集合）のときに、ＴｋはＳｋ，ｌの全ての状態を網羅する。これをＴｋ↑Ｓｋ，ｌと定義する。
【００７７】
（３）証明
ｋについての帰納法により証明する。
・Ｔ１↑Ｓ１，ｌの時には自明。
・−Ｔｋ↑Ｓｋ，ｌで成立するとき、Ｔｋ＋１↑Ｓｋ＋１，ｌが成立することを示せばよい。
【００７８】
ここで、Ｓｋ＋１，ｌで新しく付け加えられた状態をｑｋ＋１と表す。また、Ｓｋ，ｌからｑｋ＋１まで辿れる経路をｏｘ１，...，Ｏｘｍと表す。（４）複数の非エラーシーケンスの巡回群を結合したものが∀ｊ；Ｔｋ＋１⊇Ｔｋ．Ｏｋｊであるように構成されていることを利用し、ｍ≦ｋであることに注意すると、Ｓｋ，ｌからｑｋ＋１までの経路はＴｋ＋１によってすべて網羅することができる。従って、Ｔｋ↑Ｓｋ，ｌならば、Ｔｋ＋１↑Ｓｋ＋１，ｌが成立し、テスト対象の遷移状態の網羅性が保証される。
【００７９】
図１９は、生成装置１０として機能するコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＣＤ−ＲＯＭドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部を備える。
【００８０】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００８１】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０を接続する。通信インターフェイス２０３０は、有線又は無線によりネットワークを介して他の装置と通信する。また、通信インターフェイスは、通信を行うハードウェアとして機能する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ２０６０は、ＣＤ−ＲＯＭ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【００８２】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続するとともに、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【００８３】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００８４】
コンピュータ１９００にインストールされ、コンピュータ１９００を生成装置１０として機能させるプログラムは、第１受取モジュールと、テストベクタ生成モジュールと、第２受取モジュールと、第３受取モジュールと、抽出モジュールと、テストシーケンス生成モジュールとを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、第１受取部１００と、テストベクタ生成部１２０と、第２受取部１３０と、第３受取部１４０と、抽出部１５０と、テストシーケンス生成部１６０としてそれぞれ機能させてよい。
【００８５】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である第１受取部１００と、テストベクタ生成部１２０と、第２受取部１３０と、第３受取部１４０と、抽出部１５０と、テストシーケンス生成部１６０として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の生成装置１０が構築される。
【００８６】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、又はＣＤ−ＲＯＭ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【００８７】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０（ＣＤ−ＲＯＭ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０及び外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。
【００８８】
本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれるものとする。
【００８９】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすか否かを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【００９０】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【００９１】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５の他に、ＤＶＤ又はＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【００９２】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００９３】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００９４】
１０  生成装置、２０  ユーザ端末、１００  第１受取部、１２０  テストベクタ生成部、１３０  第２受取部、１４０  第３受取部、１５０  抽出部、１６０  テストシーケンス生成部、１９００  コンピュータ、２０００  ＣＰＵ、２０１０  ＲＯＭ、２０２０  ＲＡＭ、２０３０  通信インターフェイス、２０４０  ハードディスクドライブ、２０５０  フレキシブルディスク・ドライブ、２０６０  ＣＤ−ＲＯＭドライブ、２０７０  入出力チップ、２０７５  グラフィック・コントローラ、２０８０  表示装置、２０８２  ホスト・コントローラ、２０８４  入出力コントローラ、２０９０  フレキシブルディスク、２０９５  ＣＤ−ＲＯＭ
【図１】
0005963316.tif 000002
【図２】
0005963316.tif 000003
【図３】
0005963316.tif 000004
【図４】
0005963316.tif 000005
【図５】
0005963316.tif 000006
【図６】
0005963316.tif 000007
【図７】
0005963316.tif 000008
【図８】
0005963316.tif 000009
【図９】
0005963316.tif 000010
【図１０】
0005963316.tif 000011
【図１１】
0005963316.tif 000012
【図１２】
0005963316.tif 000013
【図１３】
0005963316.tif 000014
【図１４】
0005963316.tif 000015
【図１５】
0005963316.tif 000016
【図１６】
0005963316.tif 000017
【図１７】
0005963316.tif 000018
【図１８】
0005963316.tif 000019
【図１９】
0005963316.tif 000020