(57)【要約】【課題】試験対象システムの動作を試験する試験仕様の生成を容易にするとともに、試験漏れを少なくして、試験の信頼性を向上する。【解決手段】状態遷移記憶部１１１が記憶した状態遷移情報に基づいて、正常イベント列生成部１１２が正常イベント列を生成する。撹乱パターン記憶部１２２が記憶した撹乱パターンに基づいて、イベント列撹乱部１３０が正常イベント列を撹乱して、撹乱イベント列を生成する。イベント列撹乱部１３０が撹乱した撹乱イベント列を含む試験仕様を、試験仕様出力部１９０が出力する。【選択図】図３
2008210275.tif 000002
【特許請求の範囲】
【請求項１】
入力したイベントにしたがって動作する試験対象システムが所期の動作をするか否かを試験するため、上記試験対象システムに入力する一連のイベントを表わすイベント列を含む試験仕様を生成する試験仕様生成装置において、
情報を処理する処理装置と、イベント列撹乱部と、試験仕様出力部とを有し、
上記イベント列撹乱部は、上記処理装置を用いて、イベント列を入力し、入力したイベント列を撹乱して、撹乱イベント列とし、
上記試験仕様出力部は、上記処理装置を用いて、上記イベント列撹乱部が撹乱した撹乱イベント列をイベント列として含む試験仕様を出力する
ことを特徴とする試験仕様生成装置。
【請求項２】
上記イベント列撹乱部は、イベント順序変更部を有し、
上記イベント順序変更部は、上記処理装置を用いて、入力したイベント列が表わす一連のイベントの順序を変更して、撹乱イベント列を生成する
ことを特徴とする請求項１に記載の試験仕様生成装置。
【請求項３】
上記イベント列撹乱部は、イベント重複部を有し、
上記イベント重複部は、上記処理装置を用いて、入力したイベント列が表わす一連のイベントのうちから選択したイベントを重複させて、撹乱イベント列を生成する
ことを特徴とする請求項１に記載の試験仕様生成装置。
【請求項４】
上記イベント列撹乱部は、イベント欠落部を有し、
上記イベント欠落部は、上記処理装置を用いて、入力したイベント列が表わす一連のイベントのうちから選択したイベントを削除して、撹乱イベント列を生成する
ことを特徴とする請求項１に記載の試験仕様生成装置。
【請求項５】
上記試験仕様生成装置は、更に、正常イベント列生成部を有し、
上記正常イベント列生成部は、上記処理装置を用いて、上記試験対象システムが正常に動作することを予定している順序を、一連のイベントの順序とするイベント列を生成して、正常イベント列とし、
上記イベント列撹乱部は、上記処理装置を用いて、上記正常イベント列生成部が生成した正常イベント列を入力する
ことを特徴とする請求項１に記載の試験仕様生成装置。
【請求項６】
上記試験仕様生成装置は、更に、情報を記憶する記憶装置と、状態遷移記憶部とを有し、
上記状態遷移記憶部は、上記記憶装置を用いて、上記試験対象システムの状態と、上記状態において上記試験対象システムが入力するイベントと、上記状態において上記試験対象システムが上記イベントを入力したときに遷移すべき遷移先の状態とを表わす状態遷移情報を記憶し、
上記正常イベント列生成部は、上記処理装置を用いて、上記状態遷移記憶部が記憶した状態遷移情報に基づいて、正常イベント列を生成する
ことを特徴とする請求項５に記載の試験仕様生成装置。
【請求項７】
上記試験仕様生成装置は、更に、予定動作算出部を有し、
上記状態遷移記憶部は、上記記憶装置を用いて、上記試験対象システムの状態と、上記状態において上記試験対象システムが入力するイベントと、上記状態において上記試験対象システムが上記イベントを入力したときにすべき動作と、上記状態において上記試験対象システムが上記イベントを入力したときに遷移すべき遷移先の状態とを表わす状態遷移情報を記憶し、
上記予定動作算出部は、上記処理装置を用いて、上記イベント列撹乱部が生成した撹乱イベント列が表わす一連のイベントを上記試験対象システムに入力したとき上記試験対象システムがすべき動作を算出して、予定動作とし、
上記試験仕様出力部は、上記処理装置を用いて、上記予定動作算出部が算出した予定動作を更に含む試験仕様を出力する
ことを特徴とする請求項６に記載の試験仕様生成装置。
【請求項８】
入力したイベントにしたがって動作する試験対象システムが所期の動作をするか否かを試験するため、上記試験対象システムに入力する一連のイベントを表わすイベント列を含む試験仕様を生成する試験仕様生成装置において、
情報を処理する処理装置と、タイミング設定部と、試験仕様出力部とを有し、
上記タイミング設定部は、上記処理装置を用いて、イベント列を入力し、入力したイベント列が表わす一連のイベントの各イベントについて入力タイミングを設定し、
上記試験仕様出力部は、上記処理装置を用いて、上記イベント列と、上記タイミング設定部が設定した入力タイミングとを含む試験仕様を出力する
ことを特徴とする試験仕様生成装置。
【請求項９】
上記タイミング設定部は、上記処理装置を用いて、入力したイベント列が表わす一連のイベントの各イベントについて、上記各イベントの前に入力したイベントの入力から所定の時間が経過したタイミングを、入力タイミングとして設定する
ことを特徴とする請求項８に記載の試験仕様生成装置。
【請求項１０】
上記タイミング設定部は、上記処理装置を用いて、入力したイベント列が表わす一連のイベントの各イベントについて、上記各イベントの前に入力したイベントの入力から所定の時間が経過したタイミングに対して、所定のゆらぎを含むタイミングを、入力タイミングとして設定する
ことを特徴とする請求項８に記載の試験仕様生成装置。
【請求項１１】
上記タイミング設定部は、上記処理装置を用いて、入力したイベント列が表わす一連のイベントの各イベントについて、上記各イベントの前に入力したイベントの入力から、所定の最小間隔以上所定の最大間隔以下の時間が経過したタイミングを、入力タイミングとして設定する
ことを特徴とする請求項８に記載の試験仕様生成装置。
【請求項１２】
上記タイミング設定部は、上記処理装置を用いて、入力したイベント列が表わす一連のイベントの各イベントについて、所定の時間内に所定の数のイベントを入力するよう、入力タイミングを設定する
ことを特徴とする請求項８に記載の試験仕様生成装置。
【請求項１３】
上記タイミング設定部は、上記処理装置を用いて、入力したイベント列が表わす一連のイベントのうち、所定の数のイベントを入力した後のイベントについて、上記所定の数のイベントの入力から、所定の時間が経過したタイミングを、入力タイミングとして設定する
ことを特徴とする請求項８に記載の試験仕様生成装置。
【請求項１４】
上記試験仕様生成装置は、更に、イベント列反復部を有し、
上記イベント列反復部は、上記処理装置を用いて、イベント列を入力し、入力したイベント列が表わす一連のイベントを所定の回数繰り返すイベント列を生成して、反復イベント列とし、
上記タイミング設定部は、上記イベント列反復部が生成した反復イベント列において、上記イベント列が表わす一連のイベントの最初のイベントについて、上記イベント列が表わす一連のイベントの最後のイベントの入力から、所定の時間が経過したタイミングを、入力タイミングとして設定する
ことを特徴とする請求項８に記載の試験仕様生成装置。
【請求項１５】
上記試験仕様生成装置は、更に、情報を記憶する記憶装置と、状態遷移記憶部と、予定動作算出部とを有し、
上記状態遷移記憶部は、上記記憶装置を用いて、上記試験対象システムの状態と、上記状態において上記試験対象システムが入力するイベントと、上記状態において上記試験対象システムが上記イベントを入力するタイミングに関する制約条件と、上記状態において上記試験対象システムが上記制約条件を満たすタイミングで上記イベントを入力したときにすべき動作と、上記状態において上記試験対象システムが上記イベントを入力したときに遷移すべき遷移先の状態とを表わす状態遷移情報を記憶し、
上記予定動作算出部は、上記処理装置を用いて、上記タイミング設定部が設定した入力タイミングで上記試験対象システムにイベントを入力したとき上記試験対象システムがすべき動作を算出して、予定動作とし、
上記試験仕様出力部は、上記処理装置を用いて、上記予定動作算出部が算出した予定動作を更に含む試験仕様を出力する
ことを特徴とする請求項８に記載の試験仕様生成装置。
【請求項１６】
請求項１に記載の試験仕様生成装置と、試験装置とを備え、
上記試験装置は、情報を処理する処理装置と、イベント発生部と、動作検証部とを有し、
上記イベント発生部は、上記処理装置を用いて、上記試験仕様生成装置が出力した試験仕様が表わす一連のイベントにしたがって、上記試験対象システムにイベントを入力し、
上記動作検証部は、上記処理装置を用いて、上記イベント発生部がイベントを入力した試験対象システムの動作結果を入力し、入力した動作結果が予定通りか否かを判定する
ことを特徴とする試験システム。
【請求項１７】
請求項８に記載の試験仕様生成装置と、試験装置とを備え、
上記試験装置は、情報を処理する処理装置と、イベント発生部と、動作検証部とを有し、
上記イベント発生部は、上記処理装置を用いて、上記試験仕様生成装置が出力した試験仕様が表わす一連のイベント及び入力タイミングにしたがって、上記試験対象システムにイベントを入力し、
上記動作検証部は、上記処理装置を用いて、上記イベント発生部がイベントを入力した試験対象システムの動作結果を入力し、入力した動作結果が予定通りか否かを判定する
ことを特徴とする試験システム。
【請求項１８】
情報を処理する処理装置を有する試験仕様生成装置が、入力したイベントにしたがって動作する試験対象システムが所期の動作をするか否かを試験するため、上記試験対象システムに入力する一連のイベントを表わすイベント列を含む試験仕様を生成する試験仕様生成方法において、
上記処理装置が、イベント列を入力し、
上記処理装置が、入力したイベント列を撹乱して、撹乱イベント列とし、
上記処理装置が、撹乱した撹乱イベント列をイベント列として含む試験仕様を出力する
ことを特徴とする試験仕様生成方法。
【請求項１９】
情報を処理する処理装置を有する試験仕様生成装置が、入力したイベントにしたがって動作する試験対象システムが所期の動作をするか否かを試験するため、上記試験対象システムに入力する一連のイベントを表わすイベント列を含む試験仕様を生成する試験仕様生成方法において、
上記処理装置が、イベント列を入力し、
上記処理装置が、入力したイベント列が表わす一連のイベントの各イベントについて入力タイミングを設定し、
上記処理装置が、上記イベント列と、設定した入力タイミングとを含む試験仕様を出力する
ことを特徴とする試験仕様生成方法。
【請求項２０】
情報を処理する処理装置を有するコンピュータを、請求項１または請求項８に記載の試験仕様生成装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、入力したイベントにしたがって動作する試験対象システムが所期の動作をするか否かを試験するため、試験対象システムに入力する一連のイベントを表わすイベント列を含む試験仕様を生成する試験仕様生成装置に関する。
【背景技術】
【０００２】
試験対象システムの所期の動作は、状態遷移図を用いて形式的に記述することができる。状態遷移図には、試験対象システムの状態と、その状態において試験対象システムが入力するイベントと、そのイベントをその状態で試験対象システムが入力したときに試験対象システムがすべき動作（遷移アクション）と、その動作ののち試験対象システムが遷移すべき遷移先の状態とが記述される。
試験対象システムの試験において、それぞれの状態でそれぞれのイベントを入力したとき、状態遷移図に記述した通りの動作をするかを試験するやり方（単発試験）がある。単発試験には、予定されているイベントを入力したときに所期の動作をするか否かを調べる試験のほか、予定されていないイベントを入力したときに誤動作せず、正しいエラー処理などを実行できるかを調べる試験（異常対応試験）も含まれる。予定されていないイベントには、イベントの種類が予定されていない種類である場合や、パラメータの値が予定の範囲外である場合などがある。
【０００３】
また、単発試験では一連のイベントを入力した場合に全体として所期の動作をするかわからないので、予定されている順序にしたがってイベントを試験対象システムに入力し、試験対象システムが所期の動作をするか否かを調べる試験（機能試験）も行われる。複合的な要因で、試験対象システムが誤動作する可能性があるからである。
このような試験において試験対象システムに入力する一連のイベント（イベント列）を、状態遷移図に基づいて生成する試験装置がある（例えば、特許文献１や特許文献２）。
このような試験装置は、試験対象システムの動作仕様を所定の記述方法を用いて形式的に記述した状態遷移図などの情報をあらかじめ記憶し、状態遷移図を解析して、試験対象システムの動作を検証するための試験仕様を出力する。こうして出力した試験仕様に基づいて、試験対象システムが状態遷移図で記述されている仕様を満たしているかどうかを確認する試験をする。
【特許文献１】特開２００１−１６６９２９号公報
【特許文献２】特開２００４−１５１８８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述の試験装置によれば、機能試験はできるが異常対応試験はできない。このため、異常対応試験は単発試験で行うことになる。したがって、複合的な要因で誤動作しないかを調べる試験が不十分になる。
異常な順序でイベントを入力したときに誤動作しないかを試験するための試験仕様を、手作業などで作成してもよいが、多くの工数がかかるため試験コストが増大し、また、検証漏れが起こる可能性があるため試験の信頼性が低下する。
【０００５】
この発明は、例えば、上記のような課題を解決するためになされたものであり、異常な順序でイベントを入力した場合などにおける試験対象システムの動作を試験するための試験仕様を、効率的かつ漏れなく生成することを目的とする。
【課題を解決するための手段】
【０００６】
この発明にかかる試験仕様生成装置は、
入力したイベントにしたがって動作する試験対象システムが所期の動作をするか否かを試験するため、上記試験対象システムに入力する一連のイベントを表わすイベント列を含む試験仕様を生成する試験仕様生成装置において、
情報を処理する処理装置と、イベント列撹乱部と、試験仕様出力部とを有し、
上記イベント列撹乱部は、上記処理装置を用いて、イベント列を入力し、入力したイベント列を撹乱して、撹乱イベント列とし、
上記試験仕様出力部は、上記処理装置を用いて、上記イベント列撹乱部が撹乱した撹乱イベント列をイベント列として含む試験仕様を出力することを特徴とする。
【発明の効果】
【０００７】
この発明にかかる試験仕様生成装置によれば、イベント列撹乱部がイベント列を撹乱して撹乱イベント列を生成し、生成した撹乱イベント列を含む試験仕様を、試験仕様出力部が出力するので、異常な順序でイベントを入力した場合における試験対象システムの動作を試験することができる試験仕様を、効率的かつ漏れなく生成できるという効果を奏する。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
実施の形態１を、図１〜図１８を用いて説明する。
【０００９】
図１は、この実施の形態における試験仕様生成装置１００の外観の一例を示す図である。
試験仕様生成装置１００は、システムユニット９１０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置９０１、キーボード９０２（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット９１０は、コンピュータであり、ファクシミリ機９３２、電話器９３１とケーブルで接続され、また、ローカルエリアネットワーク９４２（ＬＡＮ）、ゲートウェイ９４１を介してインターネット９４０に接続されている。
【００１０】
図２は、この実施の形態における試験仕様生成装置１００のハードウェア資源の一例を示す図である。
図２において、試験仕様生成装置１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信装置９１５、表示装置９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ装置９０６、スキャナ装置９０７、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信装置９１５、キーボード９０２、スキャナ装置９０７、ＦＤＤ９０４などは、入力部、入力装置の一例である。
また、通信装置９１５、表示装置９０１、プリンタ装置９０６などは、出力部、出力装置の一例である。
【００１１】
通信装置９１５は、ファクシミリ機９３２、電話器９３１、ＬＡＮ９４２等に接続されている。通信装置９１５は、ＬＡＮ９４２に限らず、インターネット９４０、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。インターネット９４０或いはＩＳＤＮ等のＷＡＮに接続されている場合、ゲートウェイ９４１は不用となる。
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００１２】
上記プログラム群９２３には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００１３】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００１４】
図３は、この実施の形態における試験システム８００の全体構成の一例を示すシステム構成図である。
試験システム８００は、試験仕様生成装置１００と、試験装置２００とを有し、試験対象システム３００を試験する。
【００１５】
試験対象システム３００は、イベントを入力し、入力したイベントにしたがって動作する。試験対象システム３００は、外部で発生したイベントを入力する場合もあるし、内部で発生したイベントを入力する場合もある。例えば、試験対象システム３００がもっと大きなシステムの一部である場合、試験対象システム３００は、大きなシステム内の他のシステムの動作により発生したイベントを入力して動作し、その結果として発生したイベントを他のシステムが入力するなどして、全体として協調して動作する。
【００１６】
試験対象システム３００は、予定した順序で発生したイベントを入力することにより、所期の一連の動作をするよう、設計されている。
【００１７】
試験システム８００は、試験対象システム３００が設計通りの動作をするかを試験するシステムである。
試験仕様生成装置１００は、試験仕様５１０を生成する。試験仕様５１０は、試験対象システム３００を試験するため、試験対象システム３００に入力するイベント、イベントの入力順序、そのイベントを入力したときに期待される試験対象システム３００の動作などを表わすデータである。
試験装置２００は、試験仕様生成装置１００が生成した試験仕様５１０を入力し、試験仕様５１０が表わすイベントを、入力順序にしたがって発生させ、試験対象システム３００に入力する。試験装置２００は、イベント５２０を入力した試験対象システム３００の動作結果５３０を入力し、試験対象システム３００が予定通り動作したか否かを検証する。試験装置２００は、検証の結果を含む試験結果５４０を出力する。
【００１８】
次に、試験仕様生成装置１００の内部ブロックについて説明する。
【００１９】
試験仕様生成装置１００は、状態遷移記憶部１１１と、正常イベント列生成部１１２と、撹乱パターン入力部１２１と、撹乱パターン記憶部１２２と、イベント列撹乱部１３０と、パラメータ入力部１４１と、パラメータ記憶部１４２と、パラメータ設定部１５０と、予定動作算出部１８０と、試験仕様出力部１９０とを有する。
【００２０】
状態遷移記憶部１１１は、磁気ディスク装置９２０などの記憶装置を用いて、状態遷移情報を記憶する。状態遷移情報とは、試験対象システム３００の動作を、試験対象システム３００の状態遷移として捉えたものである。
【００２１】
図４は、この実施の形態における状態遷移記憶部１１１が記憶した状態遷移情報６１０の一例を示す図である。
状態遷移情報６１０は、状態６１１、イベント６１２、動作６１３、遷移先状態６１４、滞留時間６１５を含む。
【００２２】
状態６１１は、試験対象システム３００の状態を表わす。この例では、試験対象システム３００は、３つの状態「Ｓ１」「Ｓ２」「Ｓ３」を持つ。
イベント６１２は、試験対象システム３００が入力するイベントを表わす。この例では、試験対象システム３００は、４種類のイベント「ｅｖｔ１」「ｅｖｔ２」「ｅｖｔ３」「ｅｖｔ４」を入力する。
動作６１３は、試験対象システム３００がある状態であるときに、あるイベントを入力したときの動作を表わす。また、遷移先状態６１４は、試験対象システム３００がある状態であるときに、あるイベントを入力したあと、遷移する次の状態を表わす。
この例では、例えば、試験対象システム３００が状態「Ｓ２」のときにイベント「ｅｖｔ２」を入力すると、試験対象システム３００は、動作「ａｃｔ２」を実行し、その後、状態「Ｓ３」に遷移する。
なお、「／」は、試験対象システム３００がそのイベントを入力しても、無視し、動作も遷移もしないことを表わす。例えば、試験対象システム３００が状態「Ｓ３」のときにイベント「ｅｖｔ１」を入力しても、試験対象システム３００は無視し、状態「Ｓ３」のまま、次のイベントの入力を待つ。
また、「×」は、試験対象システム３００がその状態のときにそのイベントを入力することが設計上起こり得ないことを表わす。例えば、試験対象システム３００が状態「Ｓ１」のときにイベント「ｅｖｔ４」を入力することはあり得ない。したがって、もし、状態「Ｓ１］のときにイベント「ｅｖｔ４」を入力したのであれば、なんらかの異常が発生しているので、試験対象システム３００は、エラー処理を実行する。
【００２３】
滞留時間６１５は、試験対象システム３００がその状態に留まることができる最大時間を表わす。例えば、なんらかの異常で試験対象システム３００が次に入力すべきイベントを入力できない場合、試験対象システム３００は、滞留時間６１５まで待ち、その後、初期状態に戻る。滞留時間６１５は、試験対象システム３００がイベントを入力するタイミングに関する制約条件（時間制約）の一例である。時間制約とは、試験対象システムの動作仕様に対して規定する、タイミングに関して満たすべき条件を定義したものである。このほか制約条件には、ある状態に遷移してから次のイベントを入力する準備が整い、イベントを入力できるようになるまでの最小時間などがある。試験対象システム３００は、例えば、最小時間が経過する前に入力したイベントは無視してよい。
【００２４】
図４に示した状態遷移図は、この例における状態遷移情報６１０が表わす試験対象システム３００の動作を表わすものである。ここで、「ｐｒｍ１」は、試験対象システム３００が、イベント「ｅｖｔ１」とともに入力するイベントのパラメータを表わす。「ｐｒｍ２」「ｐｒｍ３−１」「ｐｒｍ３−２」「ｐｒｍ４」も同様である。
【００２５】
なお、状態遷移情報６１０は、試験対象システム３００の動作を設計段階で定義するものである。試験対象システム３００は、外部から見て、状態遷移情報６１０で定義された動作と同じ動作をすればよく、必ずしも、試験対象システム３００の内部で状態「Ｓ１」「Ｓ２」「Ｓ３」を管理している必要はない。
【００２６】
図３に戻り、試験仕様生成装置１００の内部ブロックの説明を続ける。
【００２７】
正常イベント列生成部１１２（状態遷移解析部）は、状態遷移記憶部１１１が記憶した状態遷移情報６１０に基づいて、正常イベント列を生成する。正常イベント列とは、試験対象システム３００が正常に動作することを予定している順序をイベントの入力順序とするイベント列のことである。イベント列とは、試験対象システム３００に入力する一連のイベントを表わす情報である。
【００２８】
図５は、この実施の形態における正常イベント列生成部１１２が生成する正常イベント列の一例を表わす図である。
図４に示した状態遷移情報６１０によれば、試験対象システム３００は、まず、状態「Ｓ１」になる。状態「Ｓ１」において試験対象システム３００が入力を予定しているイベントは「ｅｖｔ１」だけである。試験対象システム３００がイベント「ｅｖｔ１」を入力すると、動作「ａｃｔ１」を実行して、状態「Ｓ２」になる。状態「Ｓ２」において試験対象システム３００が入力を予定しているイベントは「ｅｖｔ２」「ｅｖｔ３」の２種類がある。イベント「ｅｖｔ３」を入力した場合は、動作「ａｃｔ３」を実行後、再び状態「Ｓ２」になる。イベント「ｅｖｔ２」を入力した場合は、動作「ａｃｔ２」を実行後、状態「Ｓ３」になる。状態「Ｓ３」において試験対象システム３００が入力を予定しているイベントは「ｅｖｔ４」である。試験対象システム３００は、イベント「ｅｖｔ４」を入力すると、動作「ａｃｔ４」を実行して、終了状態になる。
【００２９】
したがって、試験対象システム３００は、「ｅｖｔ１」「ｅｖｔ２」「ｅｖｔ４」の順で３つのイベントを入力した場合、正常に動作するはずである。また、「ｅｖｔ１」「ｅｖｔ３」「ｅｖｔ２」「ｅｖｔ４」の順で４つのイベントを入力しても、正常に動作することを予定している。同様に、「ｅｖｔ１」「ｅｖｔ３」「ｅｖｔ３」「ｅｖｔ２」「ｅｖｔ４」の順で５つのイベントを入力してもよい。
このように、試験対象システム３００が正常に動作することを予定しているイベントの入力順序は限られている。
【００３０】
試験対象システム３００の試験には、大きく分けて２種類の試験がある。一つは、正常に動作することを予定している順序でイベントを入力した際に、予定通りの動作をするかを調べる試験（機能試験）である。もう一つは、なんらかの異常により異なる順序でイベントを入力した際に、間違った動作をしないかを調べる試験（異常対応試験）である。
【００３１】
正常イベント列生成部１１２が生成する正常イベント列は、機能試験に用いるものである。すなわち、正常イベント列が表わす一連のイベントを、その順序にしたがって試験対象システム３００に入力すれば、試験対象システム３００が正常に動作することが予定されている。
【００３２】
正常イベント列生成部１１２は、ＣＰＵ９１１などの処理装置を用いて、状態遷移記憶部１１１が記憶した状態遷移情報６１０を入力する。
正常イベント列生成部１１２は、ＣＰＵ９１１などの処理装置を用いて、入力した状態遷移情報６１０に基づいて、正常イベント列を生成する。
正常イベント列生成部１１２は、ＣＰＵ９１１などの処理装置を用いて、生成した正常イベント列を出力する。
【００３３】
正常イベント列生成部１１２は、例えば、状態遷移情報６１０が表わす状態の遷移を、初期状態から終了状態まで辿ることにより、試験対象システム３００が予定しているイベントの入力順序を求め、正常イベント列を生成する。
この例において、状態「Ｓ２」は、複数種のイベントを入力する可能性がある状態である。このような場合、分岐が発生するので正常イベント列は１つとは限らない。その場合、正常イベント列生成部１１２は、複数の正常イベント列を生成する。
また、この例にはループがあるので、正常イベント列は無限に存在する。正常イベント列生成部１１２が生成する正常イベント列の数の上限をあらかじめ設定しておくか、１つの正常イベント列に含まれるイベントの数の上限をあらかじめ設定しておくなどして、正常イベント列生成部１１２が生成する正常イベント列の数を制限してもよい。
【００３４】
図３に戻り、試験仕様生成装置１００の内部ブロックの説明を続ける。
【００３５】
撹乱パターン入力部１２１（イベント順序パターン管理部）は、キーボード９０２などの入力装置を用いて、撹乱パターン（イベント順序パターン）を入力する。
撹乱パターン記憶部１２２は、磁気ディスク装置９２０などの記憶装置を用いて、撹乱パターン入力部１２１が入力した撹乱パターンを記憶する。
イベント列撹乱部１３０（制約に関する試験仕様生成部）は、撹乱パターン記憶部１２２が記憶した撹乱パターンに基づいて、正常イベント列生成部１１２が生成した正常イベント列を撹乱して、撹乱イベント列を生成する。
【００３６】
ここで、撹乱とは、イベント列が表わすイベントの入力順序を変更したり、一部のイベントを重複させたり、一部のイベントを欠落させたりすることである。
撹乱パターンとは、イベント列をどのように撹乱するかを表わす情報である。
【００３７】
イベント列撹乱部１３０が生成する撹乱イベント列は、異常対応試験に用いるものである。すなわち、撹乱イベント列が表わす一連のイベントを、その順序にしたがって試験対象システム３００に入力したとき、試験対象システム３００が間違った動作をしないかを試験するために用いる。
【００３８】
イベント列撹乱部１３０は、ＣＰＵ９１１などの処理装置を用いて、正常イベント列生成部１１２が生成した正常イベント列を入力する。
イベント列撹乱部１３０は、ＣＰＵ９１１などの処理装置を用いて、撹乱パターン記憶部１２２が記憶した撹乱パターンを入力する。
イベント列撹乱部１３０は、ＣＰＵ９１１などの処理装置を用いて、入力した撹乱パターンにしたがって、入力した正常イベント列を撹乱して、撹乱イベント列を生成する。
イベント列撹乱部１３０は、ＣＰＵ９１１などの処理装置を用いて、生成した撹乱イベント列を出力する。
【００３９】
図６は、この実施の形態におけるイベント列撹乱部１３０が撹乱した撹乱イベント列の一例を示す図である。
例えば、イベント列撹乱部１３０が正常イベント列として、「ｅｖｔ１」「ｅｖｔ３」「ｅｖｔ２」「ｅｖｔ４」という順序の４つのイベントからなるイベント列を入力したとする。
イベント列撹乱部１３０は、例えば、イベント列の順序を変更して（逆転処理）、「ｅｖｔ３」「ｅｖｔ１」「ｅｖｔ２」「ｅｖｔ４」という順序の４つのイベントからなる撹乱イベント列を生成する。あるいは、イベント列撹乱部１３０は、イベントを重複させて（重複処理）、「ｅｖｔ１」「ｅｖｔ１」「ｅｖｔ３」「ｅｖｔ２」「ｅｖｔ４」という順序の５つのイベントからなる撹乱イベント列を生成する。あるいは、イベント列撹乱部１３０は、イベントを削除して（欠落処理）、「ｅｖｔ３」「ｅｖｔ２」「ｅｖｔ４」という順序の３つのイベントからなる撹乱イベント列を生成する。また、イベント列撹乱部１３０は、逆転処理・重複処理・欠落処理を組み合わせて、イベント列を撹乱し、撹乱イベント列を生成してもよい。
イベント列撹乱部１３０は、このように様々な方法でイベント列を撹乱し、撹乱イベント列を生成する。イベント列撹乱部１３０は、１つの正常イベント列から、様々な撹乱イベント列を生成する。
【００４０】
図３に戻り、試験仕様生成装置１００の内部ブロックの説明を続ける。
【００４１】
パラメータ入力部１４１は、キーボード９０２などの入力装置を用いて、イベントのパラメータの設定パターンを入力する。
パラメータ記憶部１４２は、磁気ディスク装置９２０などの記憶装置を用いて、パラメータ入力部１４１が入力したパラメータの設定パターンを記憶する。
パラメータ設定部１５０は、ＣＰＵ９１１などの処理装置を用いて、パラメータ記憶部１４２が記憶したパラメータの設定パターンに基づいて、イベント列撹乱部１３０が生成した撹乱イベント列が表わす一連のイベントの各イベントについて、パラメータを設定する。
【００４２】
パラメータの設定パターンには、例えば、各イベントの各パラメータが取り得る値の範囲に上限と下限があるものとして、「すべてのパラメータを上限値に設定する」「すべてのパラメータを下限値に設定する」「１つのパラメータを上限値より大きい値に設定し、他のパラメータを上限値に設定する」などがある。
【００４３】
図７は、この実施の形態におけるパラメータ設定部１５０が生成する試験手順の一例を表わす図である。
試験手順とは、イベント列が表わす一連のイベントの各イベントに、パラメータ設定部１５０が設定したパラメータを付けたものである。
この例では、パラメータ記憶部１４２が「すべてのパラメータを上限値に設定する」「すべてのパラメータを下限値に設定する」の２つの設定パターンを記憶している。パラメータ設定部１５０は、パラメータ記憶部１４２が記憶した設定パターンに基づいて、１つの撹乱イベント列から、設定パターンの数と同じ２つの試験手順を生成する。すなわち、パラメータ設定部１５０が生成する試験手順の数は、（撹乱イベント列の数）×（パラメータ設定パターンの数）となる。
【００４４】
パラメータ設定部１５０は、ＣＰＵ９１１などの処理装置を用いて、イベント列撹乱部１３０が出力した撹乱イベント列を入力する。
パラメータ設定部１５０は、ＣＰＵ９１１などの処理装置を用いて、パラメータ記憶部１４２が記憶したパラメータの設定パターンを入力する。
パラメータ設定部１５０は、ＣＰＵ９１１などの処理装置を用いて、入力した設定パターンに基づいて、入力した撹乱イベント列が表わす各イベントのパラメータを設定する。
パラメータ設定部１５０は、ＣＰＵ９１１などの処理装置を用いて、入力した撹乱イベント列と設定したパラメータとを含む試験手順を出力する。
【００４５】
図３に戻り、試験仕様生成装置１００の内部ブロックの説明を続ける。
【００４６】
予定動作算出部１８０は、ＣＰＵ９１１などの処理装置を用いて、状態遷移記憶部１１１が記憶した状態遷移情報に基づいて、パラメータ設定部１５０が出力した試験手順にしたがって試験対象システム３００にイベントを入力した場合に予定される試験対象システム３００の動作（試験規格）を算出する。試験対象システム３００が設計通りであれば、試験対象システム３００は試験規格と一致する動作をするはずである。
【００４７】
予定動作算出部１８０は、ＣＰＵ９１１などの処理装置を用いて、状態遷移記憶部１１１が記憶した状態遷移情報を入力する。
予定動作算出部１８０は、ＣＰＵ９１１などの処理装置を用いて、パラメータ設定部１５０が出力した試験手順（撹乱イベント列及びパラメータ）を入力する。
予定動作算出部１８０は、ＣＰＵ９１１などの処理装置を用いて、入力した状態遷移情報に基づいて、入力した試験手順に対する試験規格（予定動作）を算出する。
予定動作算出部１８０は、ＣＰＵ９１１などの処理装置を用いて、算出した試験規格（予定動作）を出力する。
【００４８】
試験仕様出力部１９０は、ＣＰＵ９１１などの処理装置を用いて、試験仕様を生成する。試験仕様は、パラメータ設定部１５０が生成した試験手順（撹乱イベント列及びパラメータ）と、予定動作算出部１８０が算出した試験規格（予定動作）とを含む。
【００４９】
図８は、この実施の形態における試験仕様出力部１９０が出力する試験仕様の一例を示す図である。
このうち、「試験規格」の部分が、予定動作算出部１８０が算出した試験規格である。
【００５０】
図４に示した状態遷移情報６１０のとおりに試験対象システム３００が動作すると仮定し、試験手順名「手順２逆転１上限」が示す試験手順にしたがって、試験対象システムにイベントを入力したとする。まず、イベント「ｅｖｔ３（ｐｒｍ３−１＝ｍａｘ，ｐｒｍ３−２＝ｍａｘ）」を入力した試験対象システム３００は、初期状態において状態「Ｓ１」であるから、イベント「ｅｖｔ３」を無視する。すなわち、試験対象システム３００はなんの動作もしない。ここでは、試験対象システム３００がなんの動作もしないことを「ｎｏｐ」と表わしている。
次に、イベント「ｅｖｔ１（ｐｒｍ１＝ｍａｘ）」を入力すると、試験対象システム３００は、動作「ａｃｔ１」を実行し、状態「Ｓ２」へ遷移する。
次に、イベント「ｅｖｔ２（ｐｒｍ２＝ｍａｘ）」を入力すると、試験対象システム３００は、動作「ａｃｔ２」を実行し、状態「Ｓ３」へ遷移する。
次に、イベント「ｅｖｔ４（ｐｒｍ４＝ｍａｘ）」を入力すると、試験対象システム３００は、動作「ａｃｔ４」を実行し、終了状態へ遷移する。
【００５１】
このように、予定動作算出部１８０は、入力した状態遷移情報に基づいて、試験手順（撹乱イベント列）が表わす一連のイベントを試験対象システム３００に入力した場合における試験対象システム３００の状態を辿ることにより、試験規格を算出する。
【００５２】
試験仕様出力部１９０は、ＣＰＵ９１１などの処理装置を用いて、パラメータ設定部１５０が出力した試験手順（撹乱イベント列及びパラメータ）を入力する。
試験仕様出力部１９０は、ＣＰＵ９１１などの処理装置を用いて、予定動作算出部１８０が出力した試験規格（予定動作）を入力する。
試験仕様出力部１９０は、ＣＰＵ９１１などの処理装置を用いて、入力した試験手順と、入力した試験規格とを含む試験仕様を生成する。
試験仕様出力部１９０は、ＣＰＵ９１１などの処理装置を用いて、生成した試験仕様を出力する。
【００５３】
図３に戻り、試験装置２００の内部ブロックについて説明する。
【００５４】
試験装置２００は、イベント発生部２１０と、動作検証部２２０とを有する。
【００５５】
イベント発生部２１０は、ＣＰＵ９１１などの処理装置を用いて、試験仕様生成装置１００が生成した試験仕様に基づいてイベント５２０を発生し、発生したイベント５２０を試験対象システム３００に入力する。
【００５６】
動作検証部２２０は、ＣＰＵ９１１などの処理装置を用いて、イベント発生部２１０がイベント５２０を入力した試験対象システム３００の動作結果５３０と、試験仕様５１０に含まれる試験規格（予定動作）とを比較して、試験対象システム３００が予定通りに動作したか否かを判定する。
動作検証部２２０は、ＣＰＵ９１１などの処理装置を用いて、判定結果を含む試験結果５４０を出力する。動作検証部２２０が出力した試験結果５４０は、例えば、ＣＲＴなどの表示装置９０１に表示され、利用者が試験結果を確認する。
【００５７】
次に、イベント列撹乱部１３０の詳細について説明する。
【００５８】
図９は、この実施の形態におけるイベント列撹乱部１３０の詳細ブロックの一例を示す詳細ブロック図である。
イベント列撹乱部１３０は、イベント列記憶部１３１と、イベント順序変更部１３２と、イベント重複部１３３と、イベント欠落部１３４とを有する。
【００５９】
イベント列記憶部１３１は、磁気ディスク装置９２０などの記憶装置を用いて、イベント列を記憶する。イベント列記憶部１３１が記憶するイベント列には、正常イベント列生成部１１２が生成した正常イベント列５５１と、イベント順序変更部１３２・イベント重複部１３３・イベント欠落部１３４が生成した撹乱イベント列とがある。
【００６０】
イベント順序変更部１３２は、ＣＰＵ９１１などの処理装置を用いて、撹乱パターン記憶部１２２が記憶した撹乱パターンを入力する。
イベント順序変更部１３２は、入力した撹乱パターンが表わす処理が逆転処理である場合、ＣＰＵ９１１などの処理装置を用いて、イベント列記憶部１３１が記憶したイベント列を入力する。
イベント順序変更部１３２は、ＣＰＵ９１１などの処理装置を用いて、入力したイベント列が表わす一連のイベントの順序を変更する。
イベント順序変更部１３２は、ＣＰＵ９１１などの処理装置を用いて、一連のイベントの順序を変更したイベント列を撹乱イベント列として出力する。
このように、イベント順序変更部１３２は、逆転処理をする。逆転とは、試験手順を構成する入力イベントのいくつかの順序を入れ替えるパターンである。
【００６１】
イベント重複部１３３は、ＣＰＵ９１１などの処理装置を用いて、撹乱パターン記憶部１２２が記憶した撹乱パターンを入力する。
イベント重複部１３３は、入力した撹乱パターンが表わす処理が重複処理である場合、ＣＰＵ９１１などの処理装置を用いて、イベント列記憶部１３１が記憶したイベント列を入力する。
イベント重複部１３３は、ＣＰＵ９１１などの処理装置を用いて、入力したイベント列が表わす一連のイベントからイベントを選択し、選択したイベントを複数回入力するように変更する。
イベント重複部１３３は、ＣＰＵ９１１などの処理装置を用いて、選択したイベントを重複させたイベント列を撹乱イベント列として出力する。
このように、イベント重複部１３３は、重複処理をする。重複とは、試験手順を構成する入力イベントのいくつかを重複させるパターンである。
【００６２】
イベント欠落部１３４は、ＣＰＵ９１１などの処理装置を用いて、撹乱パターン記憶部１２２が記憶した撹乱パターンを入力する。
イベント欠落部１３４は、入力した撹乱パターンが表わす処理が欠落処理である場合、ＣＰＵ９１１などの処理装置を用いて、イベント列記憶部１３１が記憶したイベント列を入力する。
イベント欠落部１３４は、ＣＰＵ９１１などの処理装置を用いて、入力したイベント列が表わす一連のイベントからイベントを選択し、選択したイベントを入力しないように変更する。
イベント欠落部１３４は、ＣＰＵ９１１などの処理装置を用いて、イベントを削除したイベント列を撹乱イベント列として出力する。
このように、イベント欠落部１３４は、欠落処理をする。欠落とは、試験手順を構成する入力イベントのいくつかを欠落させるパターンである。
【００６３】
イベント順序変更部１３２・イベント重複部１３３・イベント欠落部１３４が出力した撹乱イベント列は、イベント列記憶部１３１が記憶する。撹乱パターン記憶部１２２が記憶した撹乱パターンが複数の撹乱処理の組み合わせを表わす場合、イベント順序変更部１３２・イベント重複部１３３・イベント欠落部１３４は、イベント列記憶部１３１が記憶した撹乱イベント列を入力し、入力した撹乱イベント列を更に撹乱した撹乱イベント列を生成する。
例えば、重複処理と逆転処理との組み合わせであれば、イベント列記憶部１３１が記憶した正常イベント列５５１を、イベント重複部１３３が撹乱して、撹乱イベント列を生成する。イベント重複部１３３が生成した撹乱イベント列は、正常イベント列５５１のイベントを重複させたものであり、イベント列記憶部１３１が記憶する。イベント列記憶部１３１が記憶した撹乱イベント列を、更に、イベント順序変更部１３２が撹乱して、撹乱イベント列を生成する。イベント順序変更部１３２が生成した撹乱イベント列は、正常イベント列５５１のイベントを重複させ、更に、順序を変更したものである。イベント順序変更部１３２が生成した撹乱イベント列をイベント列記憶部１３１が記憶し、撹乱イベント列５５２として出力する。
【００６４】
図１０は、この実施の形態における撹乱パターン記憶部１２２が記憶する撹乱パターン（イベント順序パターン）の一例を示す図である。
イベント順序パターンとは、イベント入力の順序をパターン化したイベント入力パターンである。イベント順序パターンは、値が可変な部分を定義したイベント順序パラメータを含む。イベント順序パラメータには、「対象イベント数」「重複イベント数」などがある。
【００６５】
図１０に示した撹乱パターンのうち、パターン名「逆転」は、イベント列が表わす一連のイベントのうち、３つのイベントの順序を変更する撹乱パターンを表わす。処理内容「逆転（対象イベント数＝３）」のうち、「逆転」は逆転処理をすることを表わし、「対象イベント数＝３」は順序を変更するイベントの数を表わす。
パターン名「重複」は、イベント列が表わす一連のイベントのうち、２つのイベントを２回ずつ重複させる撹乱パターンを表わす。処理内容「重複（対象イベント数＝２，重複イベント数＝２）」のうち、「重複」は重複処理をすることを表わし、「対象イベント数＝２」は重複させるイベントの数を表わし、「重複イベント数＝２」は重複させるイベントの重複回数を表わす。
パターン名「欠落」は、イベント列が表わす一連のイベントのうち、１つのイベントを欠落させる撹乱パターンを表わす。処理内容「欠落（対象イベント数＝１）」のうち、「欠落」は欠落処理をすることを表わし、「対象イベント数＝１」は欠落させるイベントの数を表わす。
パターン名「欠落＆逆転」は、２種類の撹乱処理（欠落処理と逆転処理）を組み合わせる撹乱パターンを表わす。処理内容のうち１行目の「欠落（対象イベント数＝１）」は、最初に欠落処理により撹乱した撹乱イベント列を生成することを表わし、２行目の「逆転（対象イベント数＝２）」は、欠落処理により撹乱された撹乱イベント列を、更に、逆転処理により撹乱することを表わしている。
【００６６】
撹乱パターン入力部１２１は、キーボード９０２などの入力装置を用いて、パターン名や処理内容を入力する。撹乱パターン入力部１２１は、ＣＲＴなどの表示装置９０１を用いて、入力したパターン名や処理内容を表示する。利用者は、表示を見て、必要に応じてパターン名や処理内容を編集する。利用者がキーボード９０２などの入力装置を操作し、撹乱パターン入力部１２１が操作内容を入力する。撹乱パターン入力部１２１は、入力した利用者の操作にしたがって、撹乱パターンを追加したり変更したり削除したりする。こうして入力された撹乱パターンを、撹乱パターン記憶部１２２が磁気ディスク装置９２０などの記憶装置を用いて記憶する。
【００６７】
また、撹乱パターン入力部１２１は、その撹乱パターンに基づいて、撹乱イベント列を生成するか否かを表わすフラグを入力し、撹乱パターン記憶部１２２が記憶してもよい。イベント列撹乱部１３０は、そのフラグを見て、オンになっている撹乱パターンに基づいて撹乱イベント列を生成する。
これにより、既に入力した撹乱パターンに基づく試験をしたくないときは、その撹乱パターンを削除せず、フラグをオフにすればよい。その後、再び、その撹乱パターンに基づく試験をしたくなった場合、撹乱パターンを再び入力する必要はなく、フラグをオンにすればよい。
多数の撹乱パターンをあらかじめ入力しておけば、利用者は、そのなかから必要なものを選ぶだけでよいので、試験仕様の設計・作成工数を削減できる。また、試験仕様生成のノウハウを蓄積することができるので、試験仕様をより良いものにすることができる。
【００６８】
次に、試験仕様生成装置１００の動作について説明する。
【００６９】
図１１は、この実施の形態におけるイベント列撹乱部１３０がイベント列を撹乱する撹乱処理（順序試験仕様生成処理）の流れの一例を示すフローチャート図である。
【００７０】
正常イベント列入力工程Ｓ０１において、イベント列記憶部１３１は、ＣＰＵ９１１などの処理装置を用いて、正常イベント列生成部１１２が出力した正常イベント列を入力する。
イベント列記憶部１３１は、磁気ディスク装置９２０などの記憶装置を用いて、入力した正常イベント列を記憶する。
【００７１】
撹乱パターン取得工程Ｓ０２において、イベント列撹乱部１３０は、ＣＰＵ９１１などの処理装置を用いて、撹乱パターン記憶部１２２が記憶した撹乱パターンから、撹乱パターンを１つ取得する。
【００７２】
撹乱処理判定工程Ｓ０３において、イベント列撹乱部１３０は、ＣＰＵ９１１などの処理装置を用いて、撹乱パターン取得工程Ｓ０２で取得した撹乱パターンが表わす撹乱処理の内容を判定する。なお、撹乱パターンが表わす撹乱処理の内容が組み合わせ処理である場合には、そのうち最初の処理について判定する。
撹乱パターンが表わす撹乱処理の内容が逆転処理であると判定した場合、逆転処理Ｓ０４へ進む。
撹乱パターンが表わす撹乱処理の内容が重複処理であると判定した場合、重複処理Ｓ０５へ進む。
撹乱パターンが表わす撹乱処理の内容が欠落処理であると判定した場合、欠落処理Ｓ０６へ進む。
【００７３】
逆転処理Ｓ０４において、イベント順序変更部１３２は、ＣＰＵ９１１などの処理装置を用いて、逆転処理をする。なお、逆転処理の詳細については後述する。その後、撹乱終了判定工程Ｓ０７へ進む。
【００７４】
重複処理Ｓ０５において、イベント重複部１３３は、ＣＰＵ９１１などの処理装置を用いて、重複処理をする。なお、重複処理の詳細については後述する。その後、撹乱終了判定工程Ｓ０７へ進む。
【００７５】
欠落処理Ｓ０６において、イベント欠落部１３４は、ＣＰＵ９１１などの処理装置を用いて、欠落処理をする。なお、欠落処理の詳細については後述する。
【００７６】
撹乱終了判定工程Ｓ０７において、イベント列撹乱部１３０は、ＣＰＵ９１１などの処理装置を用いて、撹乱パターン取得工程Ｓ０２で取得した撹乱パターンが表わす撹乱処理をすべて終了したか判定する。
撹乱パターンが表わす撹乱処理をすべて終了したと判定した場合、パターン完了判定工程Ｓ０８へ進む。撹乱パターンが表わす撹乱処理をすべて終了した場合とは、例えば、撹乱パターンが表わす撹乱処理が、組み合わせ処理でない場合や、組み合わせ処理の最後の撹乱処理をした場合である。
撹乱パターンが表わす撹乱処理の途中であると判定した場合、撹乱処理判定工程Ｓ０３に戻り、次の撹乱処理をする。撹乱パターンが表わす撹乱処理の途中である場合とは、例えば、撹乱パターンが表わす撹乱処理が、組み合わせ処理であって、最後の撹乱処理まで達していない場合である。
【００７７】
パターン完了判定工程Ｓ０８において、イベント列撹乱部１３０が、ＣＰＵ９１１などの処理装置を用いて、撹乱パターン記憶部１２２が記憶したすべての撹乱パターンについて撹乱イベント列を生成したか否かを判定する。
すべての撹乱パターンについての処理が完了したと判定した場合、撹乱イベント列整理工程Ｓ０９へ進む。
まだ処理していない撹乱パターンがあると判定した場合、撹乱パターン取得工程Ｓ０２に戻り、次の撹乱パターンについて処理をする。
【００７８】
撹乱イベント列整理工程Ｓ０９において、イベント列記憶部１３１は、ＣＰＵ９１１などの処理装置を用いて、記憶した撹乱イベント列のなかに同じものがないか判定し、あれば削除して１つにする。また、イベント列記憶部１３１は、記憶した撹乱イベント列が正常イベント列と同じ場合は、撹乱イベント列を削除して、正常イベント列だけにする。
これにより、同じ手順が除外される。
【００７９】
撹乱イベント列出力工程Ｓ１０において、イベント列記憶部１３１は、ＣＰＵ９１１などの処理装置を用いて、記憶した撹乱イベント列を出力する。
【００８０】
図１２は、この実施の形態におけるイベント順序変更部１３２がイベント列を撹乱する逆転処理の流れの一例を示すフローチャート図である。
【００８１】
対象数取得工程Ｓ１１において、イベント順序変更部１３２は、ＣＰＵ９１１などの処理装置を用いて、撹乱パターン取得工程Ｓ０２で取得した撹乱パターンから、対象イベント数を取得する。
ここでは、一例として、イベント順序変更部１３２が対象イベント数として「３」を取得した場合について説明する。
【００８２】
イベント列入力工程Ｓ１２において、イベント順序変更部１３２は、ＣＰＵ９１１などの処理装置を用いて、イベント列記憶部１３１が記憶したイベント列から撹乱処理の対象となるイベント列を１つ入力する。撹乱処理の対象となるイベント列とは、例えば、組み合わせ処理でない撹乱処理や、組み合わせ処理の最初の撹乱処理の場合、正常イベント列である。また、組み合わせ処理のうち最初でない撹乱処理の場合は、前の撹乱処理の結果である撹乱イベント列である。
ここでは、一例として、イベント順序変更部１３２がイベント列として「ｅｖｔ１」「ｅｖｔ３」「ｅｖｔ２」「ｅｖｔ４」という順序の４つのイベントからなるイベント列を入力した場合について説明する。
【００８３】
組み合わせ算出工程Ｓ１３において、イベント順序変更部１３２は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ１２で入力したイベント列が表わす一連のイベントのなかから、対象数取得工程Ｓ１１で取得した対象イベント数のイベントを選択する組み合わせを算出する。
この例において、イベント順序変更部１３２が「ｅｖｔ１」「ｅｖｔ３」「ｅｖｔ２」「ｅｖｔ４」の４つのイベントから３つを選択する組み合わせは、全部で４通り（４Ｃ３）ある。イベント順序変更部１３２は、例えば、４通りの組み合わせ｛ｅｖｔ１，ｅｖｔ３，ｅｖｔ２｝、｛ｅｖｔ１，ｅｖｔ３，ｅｖｔ４｝、｛ｅｖｔ１，ｅｖｔ２，ｅｖｔ４｝、｛ｅｖｔ３，ｅｖｔ２，ｅｖｔ４｝のうちの１つである｛ｅｖｔ１，ｅｖｔ３，ｅｖｔ２｝を算出する。
【００８４】
イベント選択工程Ｓ１４において、イベント順序変更部１３２は、ＣＰＵ９１１などの処理装置を用いて、組み合わせ算出工程Ｓ１３で算出した組み合わせに含まれるイベントを選択する。
この例において、イベント順序変更部１３２は、算出した組み合わせ｛ｅｖｔ１，ｅｖｔ３，ｅｖｔ２｝に含まれるイベント「ｅｖｔ１」「ｅｖｔ３」「ｅｖｔ２」を選択する。
【００８５】
順序変更工程Ｓ１５において、イベント順序変更部１３２は、ＣＰＵ９１１などの処理装置を用いて、イベント選択工程Ｓ１４で選択したイベントの順序を入れ替えたイベント列を生成する。
この例において、イベント順序変更部１３２は、選択した３つのイベント「ｅｖｔ１」「ｅｖｔ３」「ｅｖｔ２」の順序を入れ替えたイベント列を生成する。３つのイベントの順序を入れ替えたイベント列は、全部で５通り（３Ｐ３−１）ある。イベント順序変更部１３２は、５通りのイベント列「ｅｖｔ１」「ｅｖｔ２」「ｅｖｔ３」「ｅｖｔ４」、「ｅｖｔ２」「ｅｖｔ１」「ｅｖｔ３」「ｅｖｔ４」、「ｅｖｔ２」「ｅｖｔ３」「ｅｖｔ１」「ｅｖｔ４」、「ｅｖｔ３」「ｅｖｔ１」「ｅｖｔ２」「ｅｖｔ４」、「ｅｖｔ３」「ｅｖｔ２」「ｅｖｔ１」「ｅｖｔ４」のうちの１つである「ｅｖｔ２」「ｅｖｔ１」「ｅｖｔ３」「ｅｖｔ４」を生成する。なお、５通りのイベント列のうち、３通りのイベント列「ｅｖｔ１」「ｅｖｔ２」「ｅｖｔ３」「ｅｖｔ４」、「ｅｖｔ２」「ｅｖｔ３」「ｅｖｔ１」「ｅｖｔ４」、「ｅｖｔ３」「ｅｖｔ１」「ｅｖｔ２」「ｅｖｔ４」は、実質的に２つのイベントの順序を入れ替えたイベント列であるから、これを除外し、残る２通りのイベント列「ｅｖｔ２」「ｅｖｔ１」「ｅｖｔ３」「ｅｖｔ４」、「ｅｖｔ３」「ｅｖｔ２」「ｅｖｔ１」「ｅｖｔ４」のなかから、イベント列を生成することとしてもよい。
【００８６】
イベント列記憶工程Ｓ１６において、イベント列記憶部１３１は、磁気ディスク装置９２０などの記憶装置を用いて、順序変更工程Ｓ１５でイベント順序変更部１３２が生成したイベント列を記憶する。
【００８７】
第一繰り返し判定工程Ｓ１７において、イベント順序変更部１３２は、ＣＰＵ９１１などの処理装置を用いて、順序変更工程Ｓ１５で生成できるイベント列がまだあるか判定する。
順序変更工程Ｓ１５で生成できるイベント列がまだあると判定した場合、順序変更工程Ｓ１５に戻り、次のイベント列を生成する。
順序変更工程Ｓ１５で生成できるイベント列をすべて生成したと判定した場合、第二繰り返し判定工程Ｓ１８へ進む。
この例において、順序変更工程Ｓ１５で生成できるイベント列は、５通り（あるいは２通り）あるので、順序変更工程Ｓ１５〜生成完了判定工程Ｓ１７の処理を５回（あるいは２回）繰り返して、すべての順序についてのイベント列を生成する。
【００８８】
第二繰り返し判定工程Ｓ１８において、イベント順序変更部１３２は、ＣＰＵ９１１などの処理装置を用いて、組み合わせ算出工程Ｓ１３で算出できるイベントの組み合わせがまだあるか判定する。
組み合わせ算出工程Ｓ１３で算出できるイベントの組み合わせがまだあると判定した場合、組み合わせ算出工程Ｓ１３に戻り、次の組み合わせを算出する。
組み合わせ算出工程Ｓ１３で算出できるすべての組み合わせについての処理が完了したと判定した場合、第三繰り返し判定工程Ｓ１９へ進む。
この例において、組み合わせ算出工程Ｓ１３で算出できる組み合わせは４通りあるので、組み合わせ算出工程Ｓ１３〜第二繰り返し判定工程Ｓ１８の処理を４回繰り返す。
【００８９】
第三繰り返し判定工程Ｓ１９において、イベント順序変更部１３２は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ１２で入力できるイベント列がまだあるかを判定する。
イベント列入力工程Ｓ１２で入力できるイベント列がまだあると判定した場合、イベント列入力工程Ｓ１２に戻り、次のイベント列を入力する。
イベント列入力工程Ｓ１２で入力できるすべてのイベント列についての処理が完了したと判定した場合、逆転処理を終了する。
【００９０】
図１３は、この実施の形態におけるイベント重複部１３３がイベント列を撹乱する重複処理の流れの一例を示すフローチャート図である。
【００９１】
対象数取得工程Ｓ２１において、イベント重複部１３３は、ＣＰＵ９１１などの処理装置を用いて、撹乱パターン取得工程Ｓ０２で取得した撹乱パターンから、対象イベント数を取得する。
ここでは、一例として、イベント重複部１３３が対象イベント数として「２」を取得した場合について説明する。
【００９２】
重複数取得工程Ｓ２２において、イベント重複部１３３は、ＣＰＵ９１１などの処理装置を用いて、撹乱パターン取得工程Ｓ０２で取得した撹乱パターンから、重複イベント数を取得する。
ここでは、一例として、イベント重複部１３３が重複イベント数として「２」を取得した場合について説明する。
【００９３】
イベント列入力工程Ｓ２３において、イベント重複部１３３は、ＣＰＵ９１１などの処理装置を用いて、イベント列記憶部１３１が記憶したイベント列から撹乱処理の対象となるイベント列を１つ入力する。
ここでは、一例として、イベント重複部１３３がイベント列として「ｅｖｔ１」「ｅｖｔ３」「ｅｖｔ２」「ｅｖｔ４」という順序の４つのイベントからなるイベント列を入力した場合について説明する。
【００９４】
組み合わせ算出工程Ｓ２４において、イベント重複部１３３は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ２３で入力したイベント列が表わす一連のイベントのなかから、対象数取得工程Ｓ２１で取得した対象イベント数のイベントを選択する組み合わせを算出する。
この例において、イベント重複部１３３が「ｅｖｔ１」「ｅｖｔ３」「ｅｖｔ２」「ｅｖｔ４」の４つのイベントから２つを選択する組み合わせは、全部で６通り（４Ｃ２）ある。イベント重複部１３３は、例えば、６通りの組み合わせ｛ｅｖｔ１，ｅｖｔ３｝、｛ｅｖｔ１，ｅｖｔ２｝、｛ｅｖｔ１，ｅｖｔ４｝、｛ｅｖｔ３，ｅｖｔ２｝、｛ｅｖｔ３，ｅｖｔ４｝、｛ｅｖｔ２，ｅｖｔ４｝のうちの１つである｛ｅｖｔ１，ｅｖｔ３｝を算出する。
【００９５】
イベント選択工程Ｓ２５において、イベント重複部１３３は、ＣＰＵ９１１などの処理装置を用いて、組み合わせ算出工程Ｓ２４で算出した組み合わせに含まれるイベントを選択する。
この例において、イベント重複部１３３は、算出した組み合わせ｛ｅｖｔ１，ｅｖｔ３｝に含まれるイベント「ｅｖｔ１」「ｅｖｔ３」を選択する。
【００９６】
重複工程Ｓ２６において、イベント重複部１３３は、ＣＰＵ９１１などの処理装置を用いて、イベント選択工程Ｓ２５で選択したイベントを、重複数取得工程Ｓ２２で取得した重複イベント数の回数繰り返し入力するよう重複させたイベント列を生成する。
この例において、イベント重複部１３３は、選択した２つのイベント「ｅｖｔ１」「ｅｖｔ３」を２回ずつ重複させたイベント列「ｅｖｔ１」「ｅｖｔ１」「ｅｖｔ３」「ｅｖｔ３」「ｅｖｔ２」［ｅｖｔ４」を生成する。
【００９７】
イベント列記憶工程Ｓ２７において、イベント列記憶部１３１は、磁気ディスク装置９２０などの記憶装置を用いて、重複工程Ｓ２６でイベント重複部１３３が生成したイベント列を記憶する。
【００９８】
第二繰り返し判定工程Ｓ２８において、イベント重複部１３３は、ＣＰＵ９１１などの処理装置を用いて、組み合わせ算出工程Ｓ２４で算出できるイベントの組み合わせがまだあるか判定する。
組み合わせ算出工程Ｓ２４で算出できるイベントの組み合わせがまだあると判定した場合、組み合わせ算出工程Ｓ２４に戻り、次の組み合わせを算出する。
組み合わせ算出工程Ｓ２４で算出できるすべての組み合わせについての処理が完了したと判定した場合、第三繰り返し判定工程Ｓ２９へ進む。
この例において、組み合わせ算出工程Ｓ２４で算出できる組み合わせは６通りあるので、組み合わせ算出工程Ｓ２４〜第二繰り返し判定工程Ｓ２８の処理を６回繰り返す。
【００９９】
第三繰り返し判定工程Ｓ２９において、イベント重複部１３３は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ２３で入力できるイベント列がまだあるかを判定する。
イベント列入力工程Ｓ２３で入力できるイベント列がまだあると判定した場合、イベント列入力工程Ｓ２３に戻り、次のイベント列を入力する。
イベント列入力工程Ｓ２３で入力できるすべてのイベント列についての処理が完了したと判定した場合、重複処理を終了する。
【０１００】
図１４は、この実施の形態におけるイベント欠落部１３４がイベント列を撹乱する欠落処理の流れの一例を示すフローチャート図である。
【０１０１】
対象数取得工程Ｓ３１において、イベント欠落部１３４は、ＣＰＵ９１１などの処理装置を用いて、撹乱パターン取得工程Ｓ０２で取得した撹乱パターンから、対象イベント数を取得する。
ここでは、一例として、イベント欠落部１３４が対象イベント数として「１」を取得した場合について説明する。
【０１０２】
イベント列入力工程Ｓ３２において、イベント欠落部１３４は、ＣＰＵ９１１などの処理装置を用いて、イベント列記憶部１３１が記憶したイベント列から撹乱処理の対象となるイベント列を１つ入力する。
ここでは、一例として、イベント欠落部１３４がイベント列として「ｅｖｔ１」「ｅｖｔ３」「ｅｖｔ２」「ｅｖｔ４」という順序の４つのイベントからなるイベント列を入力した場合について説明する。
【０１０３】
組み合わせ算出工程Ｓ３３において、イベント欠落部１３４は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ３２で入力したイベント列が表わす一連のイベントのなかから、対象数取得工程Ｓ３１で取得した対象イベント数のイベントを選択する組み合わせを算出する。
この例において、イベント欠落部１３４が「ｅｖｔ１」「ｅｖｔ３」「ｅｖｔ２」「ｅｖｔ４」の４つのイベントから１つを選択する組み合わせは、全部で４通り（４Ｃ１）ある。イベント欠落部１３４は、例えば、４通りの組み合わせ｛ｅｖｔ１｝、｛ｅｖｔ３｝、｛ｅｖｔ４｝、｛ｅｖｔ２｝のうちの１つである｛ｅｖｔ１｝を算出する。
【０１０４】
イベント選択工程Ｓ３４において、イベント欠落部１３４は、ＣＰＵ９１１などの処理装置を用いて、組み合わせ算出工程Ｓ３３で算出した組み合わせに含まれるイベントを選択する。
この例において、イベント欠落部１３４は、算出した組み合わせ｛ｅｖｔ１｝に含まれるイベント「ｅｖｔ１」を選択する。
【０１０５】
欠落工程Ｓ３５において、イベント欠落部１３４は、ＣＰＵ９１１などの処理装置を用いて、イベント選択工程Ｓ３４で選択したイベントを入力しないよう、欠落させたイベント列を生成する。
この例において、イベント欠落部１３４は、選択した１つのイベント「ｅｖｔ１」を削除したイベント列「ｅｖｔ３」「ｅｖｔ２」［ｅｖｔ４」を生成する。
【０１０６】
イベント列記憶工程Ｓ３６において、イベント列記憶部１３１は、磁気ディスク装置９２０などの記憶装置を用いて、欠落工程Ｓ３５でイベント欠落部１３４が生成したイベント列を記憶する。
【０１０７】
第二繰り返し判定工程Ｓ３７において、イベント欠落部１３４は、ＣＰＵ９１１などの処理装置を用いて、組み合わせ算出工程Ｓ３３で算出できるイベントの組み合わせがまだあるか判定する。
組み合わせ算出工程Ｓ３３で算出できるイベントの組み合わせがまだあると判定した場合、組み合わせ算出工程Ｓ３３に戻り、次の組み合わせを算出する。
組み合わせ算出工程Ｓ３３で算出できるすべての組み合わせについての処理が完了したと判定した場合、第三繰り返し判定工程Ｓ３８へ進む。
この例において、組み合わせ算出工程Ｓ３３で算出できる組み合わせは４通りあるので、組み合わせ算出工程Ｓ３３〜第二繰り返し判定工程Ｓ３７の処理を４回繰り返す。
【０１０８】
第三繰り返し判定工程Ｓ３８において、イベント欠落部１３４は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ３２で入力できるイベント列がまだあるかを判定する。
イベント列入力工程Ｓ３２で入力できるイベント列がまだあると判定した場合、イベント列入力工程Ｓ３２に戻り、次のイベント列を入力する。
イベント列入力工程Ｓ３２で入力できるすべてのイベント列についての処理が完了したと判定した場合、欠落処理を終了する。
【０１０９】
以上のようにして、イベント列撹乱部１３０は、撹乱イベント列を生成する。
【０１１０】
図１５〜図１８は、この実施の形態における試験仕様生成装置１００が出力する試験仕様の一例を示す図である。
この例に示した試験仕様は、図１０に示した３つの撹乱パターンに基づいて、イベント列撹乱部１３０が正常イベント列の一つである「ｅｖｔ１」「ｅｖｔ３」「ｅｖｔ２」「ｅｖｔ４」を撹乱し、パラメータ設定部１５０がパラメータの設定パターンの一つである「上限」に基づいてパラメータを設定したものである。
なお、この例では、もとの正常イベント列から生成した試験仕様（試験分類「機能試験」）も一緒に出力している。異常対応試験と同時に、機能試験も行うためである。しかし、試験仕様生成装置１００は、正常イベント列に基づく試験仕様は出力しないこととしてもよい。
【０１１１】
この例において、試験仕様生成装置１００は、一つの正常イベント列・一つの設定パターンから、３２個の試験仕様を生成する。このうち、撹乱パターン「逆転」に基づいて生成したものが１４個、撹乱パターン「重複」に基づいて生成したものが６個、撹乱パターン「欠落＆逆転」に基づいて生成したものが１２個である。
また、パラメータの設定パターンが複数あれば、その分、試験仕様の数が増える。例えば、パラメータの設定パターンが５個あれば、試験仕様の数は５倍の１６０個になる。更に、正常イベント列も一つではないので、試験仕様生成装置１００は多くの数の試験仕様を生成する。
【０１１２】
このように、あらかじめ撹乱パターン入力部１２１が入力した撹乱パターンに基づいて撹乱したすべての撹乱イベント列を、イベント列撹乱部１３０が生成し、生成した撹乱イベント列を含む試験手順を、試験仕様出力部１９０が出力するので、漏れのない網羅的な試験を実施することができる。これにより、試験手順を作成する手間が軽減されるだけでなく、試験漏れがないので、試験結果の信頼性を高めることができる。
【０１１３】
この実施の形態における試験仕様生成装置１００は、
入力したイベントにしたがって動作する試験対象システム３００が所期の動作をするか否かを試験するため、試験対象システム３００に入力する一連のイベントを表わすイベント列を含む試験仕様５１０を生成する試験仕様生成装置１００において、
情報を処理するＣＰＵ９１１などの処理装置と、イベント列撹乱部１３０と、試験仕様出力部１９０とを有することを特徴とする。
イベント列撹乱部１３０は、ＣＰＵ９１１などの処理装置を用いて、イベント列（正常イベント列５５１）を入力し、入力したイベント列を撹乱して、撹乱イベント列５５２とすることを特徴とする。
試験仕様出力部１９０は、ＣＰＵ９１１などの処理装置を用いて、イベント列撹乱部１３０が撹乱した撹乱イベント列５５２をイベント列として含む試験仕様５１０を出力することを特徴とする。
【０１１４】
この実施の形態における試験仕様生成装置１００によれば、イベント列撹乱部１３０がイベント列を撹乱して撹乱イベント列を生成し、生成した撹乱イベント列を含む試験仕様を、試験仕様出力部１９０が出力するので、異常な順序でイベントを入力した場合における試験対象システム３００の動作を試験することができるという効果を奏する。
【０１１５】
この実施の形態におけるイベント列撹乱部１３０は、イベント順序変更部１３２を有することを特徴とする。
イベント順序変更部１３２は、ＣＰＵ９１１などの処理装置を用いて、入力したイベント列が表わす一連のイベントの順序を変更して、撹乱イベント列を生成することを特徴とする。
【０１１６】
この実施の形態における試験仕様生成装置１００によれば、イベント順序変更部１３２が一連のイベントの順序を変更して撹乱イベント列を生成するので、微妙なタイミングの違いなどによりイベントの入力順序が違った場合における試験対象システム３００の動作を試験することができるという効果を奏する。
【０１１７】
この実施の形態におけるイベント列撹乱部１３０は、イベント重複部１３３を有することを特徴とする。
イベント重複部１３３は、ＣＰＵ９１１などの処理装置を用いて、入力したイベント列が表わす一連のイベントのうちから選択したイベントを重複させて、撹乱イベント列を生成することを特徴とする。
【０１１８】
この実施の形態における試験仕様生成装置１００によれば、イベント重複部１３３が一連のイベントから選択したイベントを重複させて、撹乱イベント列を生成するので、なんらかの不具合で同じイベントを重複して入力した場合における試験対象システム３００の動作を試験することができるという効果を奏する。
【０１１９】
この実施の形態におけるイベント列撹乱部１３０は、イベント欠落部１３４を有することを特徴とする。
イベント欠落部１３４は、ＣＰＵ９１１などの処理装置を用いて、入力したイベント列が表わす一連のイベントのうちから選択したイベントを削除して、撹乱イベント列を生成することを特徴とする。
【０１２０】
この実施の形態における試験仕様生成装置１００によれば、イベント欠落部１３４が一連のイベントのうちから選択したイベントを削除して、撹乱イベント列を生成するので、なんらかの不具合で入力すべきイベントを入力できなかった場合における試験対象システム３００の動作を試験することができるという効果を奏する。
【０１２１】
この実施の形態における試験仕様生成装置１００は、更に、正常イベント列生成部１１２を有することを特徴とする。
正常イベント列生成部１１２は、ＣＰＵ９１１などの処理装置を用いて、試験対象システム３００が正常に動作することを予定している順序を、一連のイベントの順序とするイベント列を生成して、正常イベント列５５１とすることを特徴とする。
イベント列撹乱部１３０は、ＣＰＵ９１１などの処理装置を用いて、正常イベント列生成部１１２が生成した正常イベント列５５１を入力することを特徴とする。
【０１２２】
この実施の形態における試験仕様生成装置１００によれば、正常イベント列生成部１１２が生成した正常イベント列を、イベント列撹乱部１３０が撹乱して撹乱イベント列を生成するので、試験対象システム３００が実際に運用されている場合に発生し得る異常な順序のイベントを入力した場合における試験対象システム３００の動作を試験することができるという効果を奏する。
【０１２３】
この実施の形態における試験仕様生成装置１００は、更に、情報を記憶する磁気ディスク装置９２０などの記憶装置と、状態遷移記憶部１１１とを有することを特徴とする。
状態遷移記憶部１１１は、磁気ディスク装置９２０などの記憶装置を用いて、試験対象システム３００の状態６１１と、上記状態において試験対象システム３００が入力するイベント６１２と、上記状態において試験対象システム３００が上記イベントを入力したときに遷移すべき遷移先の状態（遷移先状態６１４）とを表わす状態遷移情報６１０を記憶することを特徴とする。
正常イベント列生成部１１２は、ＣＰＵ９１１などの処理装置を用いて、状態遷移記憶部１１１が記憶した状態遷移情報６１０に基づいて、正常イベント列５５１を生成することを特徴とする。
【０１２４】
この実施の形態における試験仕様生成装置１００によれば、状態遷移記憶部１１１が記憶した状態遷移情報６１０に基づいて、正常イベント列生成部１１２が正常イベント列を生成するので、試験対象システム３００が正常に動作することを予定している順序のイベント列を生成できるという効果を奏する。
【０１２５】
この実施の形態における試験仕様生成装置１００は、更に、予定動作算出部１８０を有することを特徴とする。
状態遷移記憶部１１１は、磁気ディスク装置９２０などの記憶装置を用いて、試験対象システム３００の状態６１１と、上記状態において試験対象システム３００が入力するイベント６１２と、上記状態において試験対象システム３００が上記イベントを入力したときにすべき動作６１３と、上記状態において試験対象システム３００が上記イベントを入力したときに遷移すべき遷移先の状態（遷移先状態６１４）とを表わす状態遷移情報６１０を記憶することを特徴とする。
予定動作算出部１８０は、ＣＰＵ９１１などの処理装置を用いて、イベント列撹乱部１３０が生成した撹乱イベント列５５２が表わす一連のイベントを試験対象システム３００に入力したとき試験対象システム３００がすべき動作を算出して、予定動作（試験規格）とすることを特徴とする。
試験仕様出力部１９０は、ＣＰＵ９１１などの処理装置を用いて、予定動作算出部１８０が算出した予定動作（試験規格）を更に含む試験仕様５１０を出力することを特徴とする。
【０１２６】
この実施の形態における試験仕様生成装置１００によれば、状態遷移記憶部１１１が記憶した状態遷移情報６１０に基づいて、予定動作算出部１８０が予定動作（試験規格）を算出するので、試験対象システム３００の動作結果５３０が予定通りか否かを容易に検証できるという効果を奏する。
【０１２７】
この実施の形態における試験システム８００は、
試験仕様生成装置１００と、試験装置２００とを備えることを特徴とする。
試験装置２００は、情報を処理するＣＰＵ９１１などの処理装置と、イベント発生部２１０と、動作検証部２２０とを有することを特徴とする。
イベント発生部２１０は、ＣＰＵ９１１などの処理装置を用いて、試験仕様生成装置１００が出力した試験仕様５１０が表わす一連のイベントにしたがって、試験対象システム３００にイベント５２０を入力することを特徴とする。
動作検証部２２０は、ＣＰＵ９１１などの処理装置を用いて、イベント発生部２１０がイベントを入力した試験対象システム３００の動作結果５３０を入力し、入力した動作結果が予定通りか否かを判定することを特徴とする。
【０１２８】
この実施の形態における試験システム８００によれば、試験仕様生成装置１００が生成した試験仕様５１０に基づいて、イベント発生部２１０がイベント５２０を試験対象システム３００に入力し、その結果を動作検証部２２０が検証するので、試験対象システム３００が正しく動作するか否かを容易に試験できるという効果を奏する。
【０１２９】
この実施の形態における試験仕様生成装置１００が試験仕様を生成する試験仕様生成方法は、
情報を処理するＣＰＵ９１１などの処理装置を有する試験仕様生成装置１００が、入力したイベントにしたがって動作する試験対象システム３００が所期の動作をするか否かを試験するため、試験対象システム３００に入力する一連のイベントを表わすイベント列を含む試験仕様５１０を生成する試験仕様生成方法において、
ＣＰＵ９１１などの処理装置が、イベント列（正常イベント列５５１）を入力することを特徴とする。
ＣＰＵ９１１などの処理装置が、入力したイベント列を撹乱して、撹乱イベント列５５２とすることを特徴とする。
ＣＰＵ９１１などの処理装置が、撹乱した撹乱イベント列をイベント列として含む試験仕様５１０を出力することを特徴とする。
【０１３０】
この実施の形態における試験仕様生成方法によれば、ＣＰＵ９１１などの処理装置が、イベント列を撹乱して撹乱イベント列を生成し、生成した撹乱イベント列を含む試験仕様を出力するので、異常な順序でイベントを入力した場合における試験対象システム３００の動作を試験することができるという効果を奏する。
【０１３１】
この実施の形態における試験仕様生成装置１００は、情報を処理するＣＰＵ９１１などの処理装置を有するコンピュータをこの実施の形態における試験仕様生成装置１００として機能させるプログラムをコンピュータが実行することにより、実現することができる。
【０１３２】
この実施の形態におけるプログラムによれば、異常な順序でイベントを入力した場合における試験対象システム３００の動作を試験できる試験仕様を生成する試験仕様生成装置１００を実現することができるという効果を奏する。
【０１３３】
以上説明した試験仕様の自動生成方式は、
試験対象システム３００の動作仕様を検証するための試験仕様を生成する試験仕様生成装置１００において、
試験対象システム３００へのイベント入力の順序に関する制約をパターン化したイベント順序パターン（撹乱パターン）を用い、
イベント順序パターンの中で値が可変な部分をイベント順序パラメータとして定義し、
試験対象システムの動作仕様を記述した状態遷移図を解析する解析部（正常イベント列生成部１１２・予定動作算出部１８０）と、
状態遷移図に定義した制約を解析する解析部（予定動作算出部１８０）と、
状態遷移図を元に試験手順（正常イベント列）を抽出する抽出部（正常イベント列生成部１１２）と、
試験手順を構成するイベントに対する試験規格を指定する指定部（予定動作算出部１８０）と、
試験手順、制約、イベント順序パターン、イベント順序パラメータを組み合わせて制約に関する試験手順（撹乱イベント列）を生成する生成部（イベント列撹乱部１３０）と、
生成した試験手順を集約して試験仕様を出力する出力部（試験仕様出力部１９０）と、
を備えることを特徴とする。
【０１３４】
以上説明した試験仕様の自動生成方式は、また、
イベント順序パターン（撹乱パターン）を用い、試験手順を構成するイベントの順序を逆転させた試験仕様を生成することを特徴とする。
【０１３５】
以上説明した試験仕様の自動生成方式は、また、
イベント順序パターン（撹乱パターン）を用い、試験手順を構成するイベントを重複させた試験仕様を生成することを特徴とする。
【０１３６】
以上説明した試験仕様の自動生成方式は、また、
イベント順序パターン（撹乱パターン）を用い、試験手順を構成するイベントを欠落させた試験仕様を生成することを特徴とする。
【０１３７】
これにより、試験対象システムの状態遷移図とシステムへのイベント入力の順序のパターンから、順序に関する試験仕様を自動生成するため、試験仕様の設計・作成工数を削減できる。
また、試験対象システムへのイベント入力の順序として考えられる、さまざまな組合せに関する試験仕様を生成するので、順序とタイミングに関するシステム動作の検証もれを防ぎ、残存不具合を減らすことができる。
特に、異常なイベント列の入力により発生する不具合を検証できるので、試験仕様の有効性を確保できる。
【０１３８】
以上説明した試験仕様の自動生成方式は、また、
試験対象システム３００の動作仕様を検証するための試験仕様を生成する試験仕様生成装置において、
イベント順序パターンを管理する管理部（撹乱パターン入力部１２１・撹乱パターン記憶部１２２）と、
イベント順序パラメータを管理する管理部（撹乱パターン入力部１２１・撹乱パターン記憶部１２２）と、
試験仕様生成処理（撹乱処理）を管理する管理部（撹乱パターン入力部１２１・撹乱パターン記憶部１２２）と、
を備えることを特徴とする。
【０１３９】
以上説明した試験仕様の自動生成方式は、また、
定義済みのイベント入力パターンの組み合わせを追加する追加部（撹乱パターン入力部１２１・撹乱パターン記憶部１２２）と、
定義済みのイベント入力パラメータの組み合わせを追加する追加部（撹乱パターン入力部１２１・撹乱パターン記憶部１２２）と、
定義済みの試験仕様生成処理（撹乱処理）の組み合わせを追加する追加部（撹乱パターン入力部１２１・撹乱パターン記憶部１２２）と、
を備えることを特徴とする。
【０１４０】
これにより、試験対象システム３００の試験仕様を生成するためのイベント入力のパターンおよびパラメータ、これに関する試験仕様生成処理を、試験仕様生成のノウハウとして蓄積できるので、試験仕様の設計・作成工数を削減できる。
また、試験対象システムの試験仕様を生成するためのイベント入力のパターンおよびパラメータ、これに関する試験仕様生成処理をより良いものへと保守できるので、制約に関するシステム動作の検証もれを防ぎ、残存不具合を減らすことができる。
【０１４１】
実施の形態２．
実施の形態２について、図１９〜図３１を用いて説明する。
【０１４２】
図１９は、この実施の形態における試験システム８００の全体構成の一例を示すシステム構成図である。
なお、実施の形態１で説明した試験システム８００の機能ブロックと共通する部分については、同一の符号を付し、ここでは説明を省略する。
【０１４３】
試験仕様生成装置１００は、状態遷移記憶部１１１と、正常イベント列生成部１１２と、パラメータ入力部１４１と、パラメータ記憶部１４２と、パラメータ設定部１５０と、タイミングパターン入力部１６１と、タイミングパターン記憶部１６２と、タイミング設定部１７０と、予定動作算出部１８０と、試験仕様出力部１９０とを有する。
【０１４４】
パラメータ設定部１５０は、ＣＰＵ９１１などの処理装置を用いて、正常イベント列生成部１１２が出力した正常イベント列を入力し、パラメータ記憶部１４２が記憶したパラメータの設定パターンに基づいてパラメータを設定し、入力した正常イベント列と設定したパラメータとを含む試験手順を出力する。
【０１４５】
タイミングパターン入力部１６１（イベント到着パターン管理部）は、キーボード９０２などの入力装置を用いて、タイミングパターン（イベント到着パターン）を入力する。
タイミングパターン記憶部１６２は、磁気ディスク装置９２０などの記憶装置を用いて、タイミングパターン入力部１６１が入力したタイミングパターンを記憶する。
タイミング設定部１７０（制約に関する試験仕様生成部）は、ＣＰＵ９１１などの処理装置を用いて、タイミングパターン記憶部１６２が記憶したタイミングパターンに基づいて、パラメータ設定部１５０が生成した試験手順に含まれる正常イベント列が表わす一連のイベントの各イベントについて、入力タイミングを設定する。入力タイミングとは、試験対象システム３００にイベントを入力するタイミングである。
【０１４６】
試験対象システム３００に同じ順序でイベントを入力しても、微妙なタイミングの違いにより、異なる動作をする可能性がある。この実施の形態における試験仕様生成装置１００は、イベントを入力するタイミングを考慮した試験仕様を生成することにより、試験対象システム３００の動作をより綿密に試験できるようにする。
【０１４７】
タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、タイミングパターン記憶部１６２が記憶したタイミングパターンを入力する。
タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、パラメータ設定部１５０が出力した試験手順を入力する。パラメータ設定部１５０が出力した試験手順には、正常イベント列生成部１１２が出力した正常イベント列と、パラメータ設定部１５０が設定したパラメータとが含まれている。
タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、入力したタイミングパターンに基づいて、入力した試験手順に含まれる正常イベント列が表わす一連のイベントの各イベントについて、入力タイミングを設定する。
タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、入力した試験手順と、設定した入力タイミングとを出力する。
【０１４８】
予定動作算出部１８０は、ＣＰＵ９１１などの処理装置を用いて、状態遷移記憶部１１１が記憶した状態遷移情報に基づいて、タイミング設定部１７０が出力した試験手順と入力タイミングとにしたがって試験対象システム３００にイベントを入力した場合に予定される試験対象システム３００の動作（試験規格）を算出する。
ここで、試験手順は、正常イベント列をもとに生成したものなので、イベントの順序は、試験対象システム３００が正常に動作することを予定している順序である。しかし、イベントを入力するタイミングは、滞留時間（制約条件）内であるとは限らないので、予定動作が異なる場合がある。
【０１４９】
予定動作算出部１８０は、ＣＰＵ９１１などの処理装置を用いて、状態遷移記憶部１１１が記憶した状態遷移情報を入力する。
予定動作算出部１８０は、ＣＰＵ９１１などの処理装置を用いて、タイミング設定部１７０が出力した試験手順（正常イベント列及びパラメータ）と入力タイミングとを入力する。
予定動作算出部１８０は、ＣＰＵ９１１などの処理装置を用いて、入力した状態遷移情報に基づいて、入力した試験手順に対する試験規格（予定動作）を算出する。このとき、予定動作算出部１８０は、状態遷移情報に含まれる滞留時間（制約条件）についての情報に基づいて、入力タイミングにしたがって試験対象システム３００にイベントを入力した場合の試験規格（予定動作）を算出する。
予定動作算出部１８０は、ＣＰＵ９１１などの処理装置を用いて、算出した試験規格（予定動作）を出力する。
【０１５０】
試験仕様出力部１９０は、ＣＰＵ９１１などの処理装置を用いて、タイミング設定部１７０が出力した試験手順と入力タイミングと、予定動作算出部１８０が出力した試験規格（予定動作）とを入力する。
試験仕様出力部１９０は、ＣＰＵ９１１などの処理装置を用いて、入力した試験手順と入力タイミングと試験規格とを含む試験仕様を生成する。
試験仕様出力部１９０は、ＣＰＵ９１１などの処理装置を用いて、生成した試験仕様５１０を出力する。
【０１５１】
図２０は、この実施の形態における試験仕様出力部１９０が出力する試験仕様５１０の一例を示す図である。
実施の形態１で説明した試験仕様と比較すると、入力タイミングの欄が増えている。
この例において、入力タイミングは、前のイベントを入力してからの経過時間を用いて表わされている。例えば、試験手順名「手順２上限周期１」において、２番目のイベント「ｅｖｔ３」は、１番目のイベント「ｅｖｔ１」を入力してから、時間「ｔ１」が経過した後に入力することを示している。
【０１５２】
また、この例において、時間「ｔ１」は、状態「Ｓ２」の滞留時間「Ｔ２」より長いものとする。イベント「ｅｖｔ３」は、状態「Ｓ２」の滞留時間「Ｔ２」より長い間隔「ｔ１」が経過した後に入力するので、イベント「ｅｖｔ３」の入力前に状態「Ｓ２」の滞留時間「Ｔ２」が経過する。滞留時間が経過した場合、初期状態に戻るとすると、イベント「ｅｖｔ３」は、試験対象システム３００が状態「Ｓ１」に戻ったあとで入力されるので、このイベントに対する試験対象システム３００の試験規格は「ｎｏｐ」（無視）となる。その後、試験対象システム３００の状態は状態「Ｓ１」のままなので、イベント「ｅｖｔ２」に対しても「ｎｏｐ」、イベント「ｅｖｔ４」に対しては「ｉｌｌ」（異常入力に対するエラー処理）となる。
【０１５３】
このように、予定動作算出部１８０は、入力した状態遷移情報に基づいて、試験手順（撹乱イベント列）が表わす一連のイベントを入力タイミングにしたがって試験対象システム３００に入力した場合における試験対象システム３００の状態を辿ることにより、試験規格を算出する。
【０１５４】
図２１は、この実施の形態におけるタイミングパターン記憶部１６２が記憶するタイミングパターン（イベント到着パターン）の一例を示す図である。
イベント到着パターンとは、イベント入力のタイミングをパターン化したものである。イベント到着パターンは、値が可変な部分を定義したイベント到着パラメータを含む。イベント到着パラメータには、「周期」「ジッタ」「最小間隔」「最大間隔」「密度」「対象イベント数」などがある。イベント到着パラメータのなかには、複数の値を指定できるものもある。
【０１５５】
パターン名「周期的Ａ」は、イベントを一定の間隔で入力する入力タイミングを設定することを表わしている。タイミングパターン「周期的（周期＝｛５，１０，１５｝）」のうち、「周期的」の部分は、入力間隔が一定であることを表わす。周期的とは、試験手順を構成する入力イベントをある周期で入力するパターンである。「周期＝｛５，１０，１５｝」は、その間隔が「５秒」の場合と、「１０秒」の場合と、「１５秒」の場合との３種類の入力タイミングを設定することを表わしている。したがって、タイミング設定部１７０は、この１つのタイミングパターンにより、１つの正常イベント列に対して、３通りの入力タイミングを設定することになる。
なお、この例では、間隔の指定単位が「秒」であるが、異なる単位（例えば「ミリ秒」）であってもよいし、単位を指定する記号をつけて複数の単位を使い分けられるようにしてもよい。
【０１５６】
パターン名「周期的Ｂ」も、イベントを一定の間隔で入力する入力タイミングを設定することを表わしている。「周期的Ａ」と異なり、入力間隔を固定値で指定するのではなく、「滞留時間」を参照することにより指定している。「滞留時間」とは、状態遷移記憶部１１１が記憶した状態遷移情報における滞留時間のことであり、例えば、図４に示した例の場合、３つの状態「Ｓ１」「Ｓ２」「Ｓ３」について、それぞれ滞留時間「Ｔ１」「Ｔ２」「Ｔ３」がある。したがって、入力間隔が「Ｔ１」の場合と、「Ｔ２」の場合と、「Ｔ３」の場合との３種類の入力タイミングを設定することを表わしている。
タイミング設定部１７０は、状態遷移記憶部１１１が記憶した状態遷移情報を解析して、滞留時間を取得し、入力タイミングを設定する。
【０１５７】
パターン名「不規則Ａ」は、イベントの入力間隔が一定ではなく、所定のゆらぎのある入力タイミングを設定することを表わしている。タイミングパターン「不規則（周期＝｛１０，１５｝，ジッタ＝（−２，０，＋２））」のうち、「不規則」の部分は、入力間隔にゆらぎがあることを表わしている。不規則とは、試験手順を構成する入力イベントをある周期とジッタ（時間的ゆらぎ）で入力するパターンである。「周期＝｛１０，１５｝」は、基本となる入力間隔が「１０秒」の場合と、「１５秒」の場合との２種類の入力タイミングを設定することを表わしている。また、設定する入力タイミングの間隔は、「ジッタ＝（−２，０，２）」が表わす「−２秒」「０秒」「＋２秒」のゆらぎを、基本となる入力間隔に足したものになる。例えば、基本となる入力間隔が「１０秒」の場合、「８秒」（＝１０−２）、「１０秒」（１０＋０）、「１２秒」の３通りの入力間隔があり、これを順番に用いて、入力タイミングを設定する。したがって、タイミング設定部１７０は、最初のイベントは８秒後、次のイベントはその１０秒後、その次のイベントはその１２秒後に入力するよう、入力タイミングを設定する。基本となる入力間隔が「１５秒」の場合も同様に、「１３秒」「１５秒」「１７秒」の３通りの入力間隔を用いて、入力タイミングを設定する。その結果、タイミング設定部１７０は、この１つのタイミングパターンにより、１つの正常イベント列に対して、２通りの入力タイミングを設定することになる。
なお、ゆらぎを足した入力間隔を順番に用いるのではなく、ランダムな順序に入れ替えて用いてもよいし、順序を入れ替えたすべての場合について入力タイミングを設定してもよい。その場合、タイミング設定部１７０は、この１つのタイミングパターンにより、１つの正常イベント列に対して、１２通り（＝３Ｐ３×２）の入力タイミングを設定することになる。
【０１５８】
パターン名「不規則Ｂ」は、周期及びジッタを固定値以外の方法で指定する例である。
パターン名「周期的Ｂ」の場合と同様、周期は、状態遷移記憶部１１１が記憶した状態遷移情報における滞留時間を参照している。ただし、この例では、状態「Ｓ１」の滞留時間を参照するので、基本となる入力間隔は、「Ｔ１」である。
また、ジッタは、基本となる入力間隔に対するパーセンテージで指定している。したがって、この例では、（Ｔ１×（−１％））、（Ｔ１×（＋１％））の２通りのゆらぎがあり、したがって、入力間隔は、（Ｔ１×０．９９）と、（Ｔ１×１．０１）との２通りとなる。
【０１５９】
パターン名「制限Ａ」は、イベントの入力間隔を、最小間隔以上、最大間隔以下の間隔から選択することを表わしている。制限とは、試験手順を構成する入力イベントの周期、ジッタを規定せず、イベント間の最小間隔と最大間隔を規定して入力するパターンである。すなわち、タイミング設定部１７０は、「最小間隔＝５」が表わす最小間隔「５秒」と、「最大間隔＝１５」が表わす最大間隔「１５秒」との間から入力間隔を選択し、選択した入力間隔に基づいて入力タイミングを設定する。また、「対象イベント数＝２」は、最小間隔を入力間隔とする入力タイミングを、２つのイベントに対して設定することを表わしている。
【０１６０】
パターン名「制限Ｂ」は、最小間隔及び最大間隔を固定値以外の方法で指定する例である。この例は、状態遷移記憶部１１１が記憶した状態遷移情報における滞留時間を参照し、滞留時間の最小値を最小間隔とし、滞留時間の最大値を最大間隔とすることを表わしている。このように、式を用いて参照値を算出する指定の仕方をしてもよい。
【０１６１】
パターン名「バースト」は、イベントの入力タイミングを、１つ１つの入力間隔で指定するのではなく、一定の期間内に、指定した数のイベントを入力するよう指定することを表わしている。バーストとは、試験手順を構成する入力イベントの周期、ジッタ、最小・最大間隔を規定せず、単位時間当たりの入力イベント数の密度を規定して入力するパターンである。「密度＝｛１０，５０｝」は、例えば、１秒間に１０個のイベントを入力する場合と、１秒間に５０個のイベントを入力する場合との２通りの入力タイミングを設定することを表わしている。
【０１６２】
パターン名「散発Ａ」は、ある時期に集中的にイベントを入力し、その後ある程度の間を置いて、また集中的にイベントを入力するよう、入力タイミングを設定することを表わしている。散発とは、試験手順を構成する入力イベントを、ある内部周期を持った入力イベントを一群として、このイベント群の間をある外部周期で入力するパターンである。「内部パターン＝不規則（周期＝｛５，１０｝，ジッタ＝（−２，１））」は、集中してイベントを入力するときの入力タイミングの設定方法（この例では不規則）を表わしている。「対象イベント数＝２」は、集中して入力するイベントの数（この例では２個）を表わしている。「外部周期＝｛１５，２０｝」は、集中してイベントを入力してから、次に集中してイベントを入力するまでの間隔を表わしている。内部パターンが２通り、外部周期が２通りあるので、タイミング設定部１７０は、一つの正常イベント列に対して、全部で４通り（＝２×２）の入力タイミングを設定することになる。
【０１６３】
パターン名「散発Ｂ」は、内部パターンとして複数のパターンを指定する例である。また、外部周期の代わりに外部パターンを指定して、一定値以外の間隔を設定する例である。なお、パターン名「散発Ａ」における「外部周期＝｛１５，２０｝」は、「外部パターン＝周期的（周期＝｛１５，２０｝）」の省略形である。同様に、内部パターンが「周期的」だけである場合は、「内部周期＝｛・・・｝」と省略してもよい。
【０１６４】
次に、タイミング設定部１７０の動作について説明する。
【０１６５】
図２２は、この実施の形態におけるタイミング設定部１７０がイベントの入力タイミングを設定するタイミング設定処理（タイミング試験仕様生成処理）の流れの一例を示すフローチャート図である。
この例では、タイミングパターンとして、上述した「周期的」を指定した場合の処理について説明する。
【０１６６】
引数取得工程Ｓ４１において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、タイミングパターン記憶部１６２が記憶したタイミングパターンから、周期を取得する。
【０１６７】
イベント列入力工程Ｓ４２において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、パラメータ設定部１５０が出力した試験手順（正常イベント列及びパラメータ）から、試験手順（正常イベント列及びパラメータ）を一つ入力する。
【０１６８】
周期選択工程Ｓ４３において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、引数取得工程Ｓ４１で取得した周期から、周期を一つ選択する。
なお、試験結果の可読性を高めるため、引数取得工程Ｓ４１で取得した周期が複数ある場合、タイミング設定部１７０は、取得した周期を昇順または降順に並べ替え、周期が短い順あるいは長い順に選択することとしてもよい。
【０１６９】
イベント選択工程Ｓ４４において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ４２で入力した（試験手順に含まれる）イベント列が表わす一連のイベントから、イベントを一つずつ選択する。
【０１７０】
タイミング設定工程Ｓ４５において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント選択工程Ｓ４４で選択したイベントについて、周期選択工程Ｓ４３で選択した周期を、入力タイミングとして設定する。
【０１７１】
設定完了判定工程Ｓ４６において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ４２で入力したイベント列が表わす一連のイベントすべてについて、入力タイミングを設定したか否かを判定する。
まだ入力タイミングを設定していないイベントがあると判定した場合、イベント選択工程Ｓ４４に戻り、まだ選択していないイベントを選択する。
すべてのイベントに入力タイミングを設定したと判定した場合、タイミング出力工程Ｓ４７へ進む。
【０１７２】
タイミング出力工程Ｓ４７において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ４２で入力したイベント列（試験手順）について、タイミング設定工程Ｓ４５で各イベントに設定した入力タイミングを出力する。
【０１７３】
第一繰り返し判定工程Ｓ４８において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、引数取得工程Ｓ４１で取得した周期をすべて処理したか否かを判定する。
まだ処理していない周期があると判定した場合、周期選択工程Ｓ４３に戻り、まだ選択していない周期を選択する。
すべての周期について、入力タイミングの設定処理が終わったと判定した場合、第二繰り返し判定工程Ｓ４９へ進む。
【０１７４】
第二繰り返し判定工程Ｓ４９において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、パラメータ設定部１５０が出力したイベント列（試験手順）を、イベント列入力工程Ｓ４２ですべて入力したか否かを判定する。
まだ入力すべきイベント列があると判定した場合、イベント列入力工程Ｓ４２に戻り、次のイベント列（試験手順）を入力する。
入力すべきイベント列をすべて入力し、処理が完了したと判定した場合、タイミング設定処理を終了する。
【０１７５】
図２３は、この実施の形態における試験仕様出力部１９０が出力する試験仕様の一例と、それに基づいて試験装置２００が試験対象システム３００にイベントを入力するタイミングとを示す図である。
この例に示した試験仕様は、正常イベント列「手順２」（「ｅｖｔ１」「ｅｖｔ３」「ｅｖｔ２」［ｅｖｔ４」）と、パラメータの設定パターン「上限」とに基づいてパラメータ設定部１５０が出力した試験手順に、タイミングパターン「周期的（周期＝｛５，１０，１５｝）」に基づいて、タイミング設定部１７０が入力タイミングを設定し、予定動作算出部１８０が試験規格を算出したものである。
【０１７６】
このように、試験手順（イベント列及びパラメータ）が同じでも、入力タイミングの違いにより、試験対象システム３００に予定される動作が異なる。状態遷移記憶部１１１が記憶した状態遷移情報に、タイミングに対する制約条件を表わす情報（滞留時間）が含まれているので、予定動作算出部１８０が予定される動作を正しく予測でき、微妙なタイミングの違いによる試験対象システム３００の動作を詳しく試験することができる。
【０１７７】
図２４は、この実施の形態におけるタイミング設定部１７０がイベントの入力タイミングを設定するタイミング設定処理の流れの別の例を示すフローチャート図である。
この例では、タイミングパターンとして、上述の「不規則」を指定した場合の処理について説明する。
【０１７８】
引数取得工程Ｓ５１において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、タイミングパターン記憶部１６２が記憶したタイミングパターンから、周期とジッタとを取得する。
【０１７９】
イベント列入力工程Ｓ５２において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、パラメータ設定部１５０が出力した試験手順（正常イベント列及びパラメータ）から、試験手順（正常イベント列及びパラメータ）を一つ入力する。
【０１８０】
周期選択工程Ｓ５３において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、引数取得工程Ｓ５１で取得した周期から、周期を一つ選択する。選択の順序は、タイミングパターンに記載された順序であってもよいし、昇順あるいは降順であってもよい。
【０１８１】
イベント選択工程Ｓ５４において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ５２で入力した（試験手順に含まれる）イベント列が表わす一連のイベントから、イベントを順に一つずつ選択する。
【０１８２】
タイミング算出工程Ｓ５５において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、周期選択工程Ｓ５３で選択した周期と、引数取得工程Ｓ５１で取得したジッタとから、イベントの入力タイミングを算出する。
タイミング設定部１７０は、例えば、引数取得工程Ｓ５１で取得したジッタから、ジッタを順に選択し、周期選択工程Ｓ５３で選択した周期と選択したジッタとを合計することにより、次のイベントの入力までの間隔を算出し、イベントの入力タイミングとする。
【０１８３】
タイミング設定工程Ｓ５６において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント選択工程Ｓ５４で選択したイベントについて、タイミング算出工程Ｓ５５で算出した入力タイミングを設定する。
【０１８４】
設定完了判定工程Ｓ５７において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ５２で入力したイベント列が表わす一連のイベントすべてについて、入力タイミングを設定したか否かを判定する。
まだ入力タイミングを設定していないイベントがあると判定した場合、イベント選択工程Ｓ５４に戻り、次のイベントを選択する。
すべてのイベントに入力タイミングを設定したと判定した場合、タイミング出力工程Ｓ５８へ進む。
【０１８５】
タイミング出力工程Ｓ５８において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ５２で入力したイベント列（試験手順）について、タイミング設定工程Ｓ５６で各イベントに設定した入力タイミングを出力する。
【０１８６】
第一繰り返し判定工程Ｓ５９において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、引数取得工程Ｓ５１で取得した周期をすべて処理したか否かを判定する。
また処理していない周期があると判定した場合、周期選択工程Ｓ５３に戻り、まだ選択していない周期を選択する。
すべての周期について、入力タイミングの設定処理が終わったと判定した場合、第二繰り返し判定工程Ｓ６０へ進む。
【０１８７】
第二繰り返し判定工程Ｓ６０において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、パラメータ設定部１５０が出力したイベント列（試験手順）を、イベント列入力工程Ｓ５２ですべて入力したか否かを判定する。
まだ入力すべきイベント列があると判定した場合、イベント列入力工程Ｓ５２に戻り、次のイベント列（試験手順）を入力する。
入力すべきイベント列をすべて入力し、処理が完了したと判定した場合、タイミング設定処理を終了する。
【０１８８】
図２５は、この実施の形態における試験仕様出力部１９０が出力する試験仕様の一例と、それに基づいて試験装置２００が試験対象システム３００にイベントを入力するタイミングとを示す図である。
この例に示した試験仕様は、正常イベント列「手順２」と、パラメータの設定パターン「上限」とに基づいてパラメータ設定部１５０が出力した試験手順に、タイミングパターン「不規則（周期＝｛１０，１５｝，ジッタ＝（−２，０，２））」に基づいて、タイミング設定部１７０が入力タイミングを設定し、予定動作算出部１８０が試験規格を算出したものである。
【０１８９】
このように、ジッタを複数指定することにより、一回の試験のなかでイベントを入力するタイミングを変えることができる。また、一つのタイミングパターンから、指定した周期の数と同じ回数の試験を実施する試験仕様を生成できる。
【０１９０】
図２６は、この実施の形態におけるタイミング設定部１７０がイベントの入力タイミングを設定するタイミング設定処理の流れの更に別の例を示すフローチャート図である。
この例では、タイミングパターンとして、上述の「制限」を指定した場合の処理について説明する。
【０１９１】
引数取得工程Ｓ６１において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、タイミングパターン記憶部１６２が記憶したタイミングパターンから、最小間隔と最大間隔と対象イベント数とを取得する。
【０１９２】
イベント列入力工程Ｓ６２において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、パラメータ設定部１５０が出力した試験手順（正常イベント列及びパラメータ）から、試験手順（正常イベント列及びパラメータ）を一つ入力する。
【０１９３】
組み合わせ算出工程Ｓ６３において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ６２で入力した（試験手順に含まれる）イベント列が表わす一連のイベントのなかから、引数取得工程Ｓ６１で取得した対象イベント数のイベントを選択する組み合わせを算出する。
【０１９４】
第一イベント選択工程Ｓ６４において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、組み合わせ算出工程Ｓ６３で算出した組み合わせに含まれる各イベントを選択する。
【０１９５】
第一タイミング設定工程Ｓ６５において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、第一イベント選択工程Ｓ６４で選択した各イベントについて、引数取得工程Ｓ６１で取得した最小間隔を、入力タイミングとして設定する。
【０１９６】
第二イベント選択工程Ｓ６６において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、組み合わせ算出工程Ｓ６３で算出した組み合わせに含まれない各イベントを選択する。
【０１９７】
第二タイミング設定工程Ｓ６７において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、第二イベント選択工程Ｓ６６で選択した各イベントについて、引数取得工程Ｓ６１で取得した最大間隔を、入力タイミングとして設定する。
【０１９８】
タイミング出力工程Ｓ６８において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ６２で入力したイベント列（試験手順）について、第一タイミング設定工程Ｓ６５および第二タイミング設定工程Ｓ６７で各イベントに設定した入力タイミングを出力する。
【０１９９】
第一繰り返し判定工程Ｓ６９において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、組み合わせ算出工程Ｓ６３で算出できるイベントの組み合わせがまだあるか判定する。
組み合わせ算出工程Ｓ６３で算出できるイベントの組み合わせがまだあると判定した場合、組み合わせ算出工程Ｓ６３に戻り、次の組み合わせを算出する。
組み合わせ算出工程Ｓ６３で算出できるすべての組み合わせについての処理が完了したと判定した場合、第二繰り返し判定工程Ｓ７０へ進む。
【０２００】
第二繰り返し判定工程Ｓ７０において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、パラメータ設定部１５０が出力した試験手順（イベント列）を、イベント列入力工程Ｓ４２ですべて入力したか否かを判定する。
まだ入力すべきイベント列があると判定した場合、イベント列入力工程Ｓ６２に戻り、次のイベント列（試験手順）を入力する。
入力すべきイベント列をすべて入力し、処理が完了したと判定した場合、タイミング設定処理を終了する。
【０２０１】
図２７は、この実施の形態における試験仕様出力部１９０が出力する試験仕様の一例を示す図である。
この例に示した試験仕様は、正常イベント列「手順２」と、パラメータの設定パターン「上限」とに基づいてパラメータ設定部１５０が出力した試験手順に、タイミングパターン「制限Ａ（最小間隔＝５，最大間隔＝１５，対象イベント数＝２）」に基づいて、タイミング設定部１７０が入力タイミングを設定し、予定動作算出部１８０が試験規格を算出したものである。
この例では、正常イベント列のイベント数が「４」、対象イベント数が「２」なので、４つのイベントから２つのイベントを選択する組み合わせの数（４Ｃ２）と同じ数である６通りの試験を実施する試験仕様を生成する。
【０２０２】
図２８は、この実施の形態におけるタイミング設定部１７０がイベントの入力タイミングを設定するタイミング設定処理の流れのまた別の例を示すフローチャート図である。
この例では、タイミングパターンとして、上述した「バースト」を指定した場合の処理について説明する。
【０２０３】
引数取得工程Ｓ７１において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、タイミングパターン記憶部１６２が記憶したタイミングパターンから、密度を取得する。
【０２０４】
イベント列入力工程Ｓ７２において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、パラメータ設定部１５０が出力した試験手順（正常イベント列及びパラメータ）から、試験手順（正常イベント列及びパラメータ）を一つ入力する。
【０２０５】
密度選択工程Ｓ７３において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、引数取得工程Ｓ７１で取得した密度から、密度を一つ選択する。選択の順序は、タイミングパターンに記載された順序であってもよいし、昇順あるいは降順であってもよい。
【０２０６】
イベント選択工程Ｓ７４において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ７２で入力した（試験手順に含まれる）イベント列が表わす一連のイベントから、イベントを一つずつ選択する。
【０２０７】
タイミング算出工程Ｓ７５において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、密度選択工程Ｓ７３で選択した密度に基づいて、イベントの入力タイミングを算出する。
タイミング設定部１７０は、例えば、所定時間（例えば「１秒」）を、密度選択工程Ｓ７３で選択した密度で割ることにより、イベントの入力間隔を算出し、イベントの入力タイミングとする。
【０２０８】
タイミング設定工程Ｓ７６において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント選択工程Ｓ７４で選択したイベントについて、タイミング算出工程Ｓ７５で算出した入力タイミングを設定する。
【０２０９】
設定完了判定工程Ｓ７７において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ７２で入力したイベント列が表わす一連のイベントすべてについて、入力タイミングを設定したか否かを判定する。
まだ入力タイミングを設定していないイベントがあると判定した場合、イベント選択工程Ｓ７４に戻り、まだ選択していないイベントを選択する。
すべてのイベントに入力タイミングを設定したと判定した場合、タイミング出力工程Ｓ７８へ進む。
【０２１０】
タイミング出力工程Ｓ７８において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ７２で入力したイベント列（試験手順）について、タイミング設定工程Ｓ７６で各イベントに設定した入力タイミングを出力する。
【０２１１】
第一繰り返し判定工程Ｓ７９において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、引数取得工程Ｓ７１で取得した密度をすべて処理したか否かを判定する。
まだ処理していない密度があると判定した場合、密度選択工程Ｓ７３に戻り、まだ選択していない密度を選択する。
すべての密度について、入力タイミングの設定処理が終わったと判定した場合、第二繰り返し工程Ｓ８０へ進む。
【０２１２】
第二繰り返し判定工程Ｓ８０において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、パラメータ設定部１５０が出力したイベント列（試験手順）を、イベント列入力工程Ｓ７２ですべて入力したか否かを判定する。
まだ入力すべきイベント列があると判定した場合、イベント列入力工程Ｓ７２に戻り、次のイベント列を入力する。
入力すべきイベント列をすべて入力し、処理が完了したと判定した場合、タイミング設定処理を終了する。
【０２１３】
図２９は、この実施の形態における試験仕様出力部１９０が出力する試験仕様の一例と、それに基づいて試験装置２００が試験対象システム３００にイベントを入力するタイミングとを示す図である。
この例に示した試験仕様は、正常イベント列「手順２」と、パラメータの設定パターン「上限」とに基づいてパラメータ設定部１５０が出力した試験手順に、タイミングパターン「バースト（密度＝｛１０，５０｝）」に基づいて、タイミング設定部１７０が入力タイミングを設定し、予定動作算出部１８０が試験規格を算出したものである。
【０２１４】
図３０は、この実施の形態におけるタイミング設定部１７０がイベントのタイミングを設定するタイミング設定処理の流れのまた更に別の例を示すフローチャート図である。
この例では、タイミングパターンとして、「散発」を指定した場合の処理について説明する。
【０２１５】
引数取得工程Ｓ８１において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、内部パターンと対象イベント数と外部パターンとを取得する。
【０２１６】
イベント列入力工程Ｓ８２において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、パラメータ設定部１５０が出力した試験手順（正常イベント列及びパラメータ）から、試験手順（正常イベント列及びパラメータ）を一つ入力する。
【０２１７】
パターン選択工程Ｓ８３において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、引数取得工程Ｓ８１で取得した内部パターンと外部パターンとの組み合わせを一つ選択する。
ここで、内部パターンとして指定したタイミングパターンは一つであっても、そのタイミングパターンにより設定される入力タイミングが複数ある場合、それぞれを独立した内部パターンとして扱う。
【０２１８】
イベント選択工程Ｓ８４において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ８２で入力した（試験手順に含まれる）イベント列が表わす一連のイベントから、イベントを順に一つずつ選択する。
【０２１９】
イベント数判定工程Ｓ８５において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、入力タイミングを設定したイベントの数を判定する。
入力タイミングを設定したイベントの数が、引数取得工程Ｓ８１で取得した対象イベント数より少ないと判定した場合、内部タイミング算出工程Ｓ８６へ進む。
入力タイミングを設定したイベントの数が、引数取得工程Ｓ８１で取得した対象イベント数と等しいと判定した場合、外部タイミング算出工程Ｓ８８へ進む。
なお、タイミング設定部１７０は、パターン選択工程Ｓ７３で新たなパターンの組み合わせを選択したときに、入力タイミングを設定したイベントの数を０にリセットする。また、入力タイミングを設定したイベントの数が対象イベント数と等しいと判定した場合にも、タイミング設定部１７０は、入力タイミングを設定したイベントの数を０にリセットする。
【０２２０】
内部タイミング算出工程Ｓ８６において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、パターン選択工程Ｓ８３で選択した内部パターンに基づいて、イベントの入力タイミングを算出する。
【０２２１】
内部タイミング設定工程Ｓ８７において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント選択工程Ｓ８４で選択したイベントについて、内部タイミング算出工程Ｓ８６で算出した入力タイミングを設定する。
また、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、入力タイミングを設定したイベントの数に１を加える。
その後、設定完了判定工程Ｓ９０へ進む。
【０２２２】
外部タイミング算出工程Ｓ８８において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、パターン選択工程Ｓ７３で選択した外部パターンに基づいて、イベントの入力タイミングを算出する。
【０２２３】
外部タイミング設定工程Ｓ８９において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント選択工程Ｓ８４で選択したイベントについて、外部タイミング算出工程Ｓ８８で算出した入力タイミングを設定する。
また、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、入力タイミングを設定したイベントの数に１を加える。
【０２２４】
設定完了判定工程Ｓ９０において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ８２で入力したイベント列が表わす一連のイベントすべてについて、入力タイミングを設定したか否かを判定する。
まだ入力タイミングを設定していないイベントがあると判定した場合、イベント選択工程Ｓ８４に戻り、次のイベントを選択する。
すべてのイベントに入力タイミングを設定したと判定した場合、タイミング出力工程Ｓ９１へ進む。
【０２２５】
タイミング出力工程Ｓ９１において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント列入力工程Ｓ８２で入力したイベント列（試験手順）について、内部タイミング設定工程Ｓ８７あるいは外部タイミング設定工程Ｓ８９で各イベントに設定した入力タイミングを出力する。
【０２２６】
第一繰り返し判定工程Ｓ９２において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、パターン選択工程Ｓ８３で選択できる内部パターンと外部パターンとの組み合わせすべてについて処理をしたか否かを判定する。
まだ処理していない組み合わせがあると判定した場合、パターン選択工程Ｓ８３に戻り、まだ選択していない組み合わせを選択する。
すべての組み合わせについて、入力タイミングの設定処理が終わったと判定した場合、第二繰り返し判定工程Ｓ９３へ進む。
【０２２７】
第二繰り返し判定工程Ｓ９３において、タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、パラメータ設定部１５０が出力したイベント列（試験手順）を、イベント列入力工程Ｓ８２ですべて入力したか否かを判定する。
まだ入力すべきイベント列があると判定した場合、イベント列入力工程Ｓ８２に戻り、次のイベント列を入力する。
入力すべきイベント列すべてを入力し、処理が完了したと判定した場合、タイミング設定処理を終了する。
【０２２８】
図３１は、この実施の形態における試験仕様出力部１９０が出力する試験仕様の一例を示す図である。
この例に示した試験仕様は、正常イベント列「手順２」と、パラメータの設定パターン「上限」とに基づいてパラメータ設定部１５０が出力した試験手順に、タイミングパターン「散発（内部周期＝｛５，７｝，対象イベント数＝２，外部周期＝｛１０，１５｝）」に基づいて、タイミング設定部１７０が入力タイミングを設定し、予定動作算出部１８０が試験規格を算出したものである。
この例において、内部周期が２通り、外部周期が２通りなので、全部で４通り（＝２×２）の試験を実施する試験仕様を生成する。
【０２２９】
このように、様々なタイミングパターンを用いて、イベントの入力タイミングの設定方法を指定する。タイミング設定部１７０は、タイミングパターン記憶部１６２が記憶したタイミングパターンにしたがって、イベントの入力タイミングを設定する。
【０２３０】
試験仕様出力部１９０は、タイミング設定部１７０が設定した入力タイミングを含む試験仕様を出力する。これを試験装置２００が入力し、入力タイミングにしたがって、試験対象システム３００にイベントを入力することにより、試験対象システム３００の動作が微妙なタイミングによって異なる場合でも、漏れのない試験を実行することができる。
【０２３１】
この実施の形態における試験仕様生成装置１００は、
入力したイベントにしたがって動作する試験対象システム３００が所期の動作をするか否かを試験するため、試験対象システム３００に入力する一連のイベントを表わすイベント列を含む試験仕様５１０を生成する試験仕様生成装置１００において、
情報を処理するＣＰＵ９１１などの処理装置と、タイミング設定部１７０と、試験仕様出力部１９０とを有することを特徴とする。
タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント列（正常イベント列）を入力し、入力したイベント列が表わす一連のイベントの各イベントについて入力タイミングを設定することを特徴とする。
試験仕様出力部１９０は、ＣＰＵ９１１などの処理装置を用いて、上記イベント列（正常イベント列）と、タイミング設定部１７０が設定した入力タイミングとを含む試験仕様５１０を出力することを特徴とする。
【０２３２】
この実施の形態における試験仕様生成装置１００によれば、試験対象システム３００にイベントを入力するタイミングの違いによる動作の違いについて、詳細な試験を実施できるので、試験結果の信頼性を高めることができるという効果を奏する。
【０２３３】
この実施の形態におけるタイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、入力したイベント列が表わす一連のイベントの各イベントについて、上記各イベントの前に入力したイベントの入力から所定の時間が経過したタイミングを、入力タイミングとして設定することを特徴とする。
【０２３４】
この実施の形態における試験仕様生成装置１００によれば、周期的にイベントを入力する場合における試験対象システム３００の動作を試験できる試験仕様を生成することができるという効果を奏する。
【０２３５】
この実施の形態におけるタイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、入力したイベント列が表わす一連のイベントの各イベントについて、上記各イベントの前に入力したイベントの入力から所定の時間が経過したタイミングに対して、所定のゆらぎを含むタイミングを、入力タイミングとして設定することを特徴とする。
【０２３６】
この実施の形態における試験仕様生成装置１００によれば、イベントの入力間隔がほぼ周期的であるが、ゆらぎを含む場合における試験対象システム３００の動作を試験できる試験仕様を生成することができるという効果を奏する。
【０２３７】
この実施の形態におけるタイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、入力したイベント列が表わす一連のイベントの各イベントについて、上記各イベントの前に入力したイベントの入力から、所定の最小間隔以上所定の最大間隔以下の時間が経過したタイミングを、入力タイミングとして設定することを特徴とする。
【０２３８】
この実施の形態における試験仕様生成装置１００によれば、イベントの入力間隔が所定の範囲内である場合における試験対象システム３００の動作を試験できる試験仕様を生成することができるという効果を奏する。
【０２３９】
この実施の形態におけるタイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、入力したイベント列が表わす一連のイベントの各イベントについて、所定の時間内に所定の数のイベントを入力するよう、入力タイミングを設定することを特徴とする。
【０２４０】
この実施の形態における試験仕様生成装置１００によれば、イベントを所定の密度で入力した場合における試験対象システム３００の動作を試験できる試験仕様を生成することができるという効果を奏する。
【０２４１】
この実施の形態におけるタイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、入力したイベント列が表わす一連のイベントのうち、所定の数のイベントを入力した後のイベントについて、上記所定の数のイベントの入力から、所定の時間が経過したタイミングを、入力タイミングとして設定することを特徴とする。
【０２４２】
この実施の形態における試験仕様生成装置１００によれば、散発的にイベントを入力した場合における試験対象システム３００の動作を試験できる試験仕様を生成することができるという効果を奏する。
【０２４３】
この実施の形態における試験仕様生成装置１００は、更に、情報を記憶する磁気ディスク装置９２０などの記憶装置と、状態遷移記憶部１１１と、予定動作算出部１８０とを有することを特徴とする。
状態遷移記憶部１１１は、磁気ディスク装置９２０などの記憶装置を用いて、試験対象システム３００の状態と、上記状態において試験対象システム３００が入力するイベントと、上記状態において試験対象システム３００が上記イベントを入力するタイミングに関する制約条件と、上記状態において試験対象システム３００が上記制約条件を満たすタイミングで上記イベントを入力したときにすべき動作と、上記状態において試験対象システム３００が上記イベントを入力したときに遷移すべき遷移先の状態とを表わす状態遷移情報６１０を記憶することを特徴とする。
予定動作算出部１８０は、ＣＰＵ９１１などの処理装置を用いて、タイミング設定部１７０が設定した入力タイミングで試験対象システム３００にイベントを入力したとき試験対象システム３００がすべき動作を算出して、予定動作とすることを特徴とする。
試験仕様出力部１９０は、ＣＰＵ９１１などの処理装置を用いて、予定動作算出部１８０が算出した予定動作を更に含む試験仕様を出力することを特徴とする。
【０２４４】
この実施の形態における試験仕様生成装置１００によれば、状態遷移記憶部１１１が記憶した状態遷移情報６１０に基づいて、予定動作算出部１８０が予定動作（試験規格）を算出するので、試験対象システム３００の動作結果５３０が予定通りか否かを容易に検証できるという効果を奏する。
【０２４５】
この実施の形態における試験システム８００は、
試験仕様生成装置１００と、試験装置２００とを備えることを特徴とする。
試験装置２００は、情報を処理するＣＰＵ９１１などの処理装置と、イベント発生部２１０と、動作検証部２２０とを有することを特徴とする。
イベント発生部２１０は、ＣＰＵ９１１などの処理装置を用いて、試験仕様生成装置１００が出力した試験仕様５１０が表わす一連のイベント及び入力タイミングにしたがって、試験対象システム３００にイベント５２０を入力することを特徴とする。
動作検証部２２０は、ＣＰＵ９１１などの処理装置を用いて、イベント発生部２１０がイベントを入力した試験対象システム３００の動作結果５３０を入力し、入力した動作結果が予定通りか否かを判定することを特徴とする。
【０２４６】
この実施の形態における試験システム８００によれば、試験仕様生成装置１００が生成した試験仕様５１０に基づいて、イベント発生部２１０がイベント５２０を試験対象システム３００に入力し、その結果を動作検証部２２０が検証するので、微妙なタイミングの違いによる試験対象システム３００の動作の違いを含めて、試験対象システム３００が正しく動作するか否かを容易に試験することができるという効果を奏する。
【０２４７】
この実施の形態における試験仕様生成装置１００が試験仕様を生成する試験仕様生成方法は、
情報を処理するＣＰＵ９１１などの処理装置を有する試験仕様生成装置１００が、入力したイベントにしたがって動作する試験対象システム３００が所期の動作をするか否かを試験するため、試験対象システム３００に入力する一連のイベントを表わすイベント列を含む試験仕様を生成する試験仕様生成方法において、
ＣＰＵ９１１などの処理装置が、イベント列（正常イベント列）を入力することを特徴とする。
ＣＰＵ９１１などの処理装置が、入力したイベント列が表わす一連のイベントの各イベントについて入力タイミングを設定することを特徴とする。
ＣＰＵ９１１などの処理装置が、上記イベント列と、設定した入力タイミングとを含む試験仕様を出力することを特徴とする。
【０２４８】
この実施の形態における試験仕様生成方法によれば、ＣＰＵ９１１などの処理装置が、タイミングパターンに基づいて、イベント列が表わす一連のイベントの各イベントについて入力タイミングを設定するので、イベントを入力するタイミングの違いによる試験対象システム３００の動作の違いを試験することができるという効果を奏する。
【０２４９】
この実施の形態における試験仕様生成装置１００は、情報を処理するＣＰＵ９１１などの処理装置を有するコンピュータをこの実施の形態における試験仕様生成装置１００として機能させるプログラムをコンピュータが実行することにより、実現することができる。
【０２５０】
この実施の形態におけるプログラムによれば、様々なタイミングでイベントを入力した場合における試験対象システム３００の動作を試験できる試験仕様を生成する試験仕様生成装置１００を実現することができるという効果を奏する。
【０２５１】
なお、パラメータの設定後に入力タイミングを設定するのではなく、正常イベント列生成部１１２が出力した正常イベント列をタイミング設定部１７０が入力して入力タイミングを設定し、その後、パラメータ設定部１５０がパラメータを設定することとしてもよい。
【０２５２】
以上説明した試験仕様の自動生成方式は、
イベント到着パターン（タイミングパターン）を用い、試験手順を構成するイベントを周期的に入力する試験仕様を生成することを特徴とする。
【０２５３】
以上説明した試験仕様の自動生成方式は、
イベント到着パターン（タイミングパターン）を用い、試験手順を構成するイベントをジッタ（時間的ゆらぎ）のある周期で入力する試験仕様を生成することを特徴とする。
【０２５４】
以上説明した試験仕様の自動生成方式は、
イベント到着パターン（タイミングパターン）を用い、試験手順を構成するイベントを最小間隔と最大間隔を規定して入力する試験仕様を生成することを特徴とする。
【０２５５】
以上説明した試験仕様の自動生成方式は、
イベント到着パターン（タイミングパターン）を用い、試験手順を構成するイベントを単位時間当たりの入力密度を規定して入力する試験仕様を生成することを特徴とする。
【０２５６】
以上説明した試験仕様の自動生成方式は、
イベント到着パターン（タイミングパターン）を用い、試験手順を構成するイベントを内部周期と外部周期を規定して入力する試験仕様を生成することを特徴とする。
【０２５７】
これにより、試験対象システムの状態遷移図とシステムへのイベント入力のタイミングのパターンから、タイミングに関する試験仕様を自動生成するため、試験仕様の設計・作成工数を削減できる。
また、試験対象システムへのイベント入力のタイミングとして考えられる、さまざまな組合せに関する試験仕様を生成するので、タイミングに関するシステム動作の検証もれを防ぎ、残存不具合を減らすことができる。
特に、イベント入力の微妙なタイミングにより発生する不具合を検証できるので、試験仕様の有効性を確保できる。
【０２５８】
実施の形態３．
実施の形態３について、図３２を用いて説明する。
【０２５９】
図３２は、この実施の形態における試験システム８００の全体構成の一例を示すシステム構成図である。
なお、実施の形態１または実施の形態２で説明した試験システム８００の機能ブロックと共通する部分については、同一の符号を付し、ここでは説明を省略する。
【０２６０】
試験仕様生成装置１００は、状態遷移記憶部１１１と、正常イベント列生成部１１２と、撹乱パターン入力部１２１と、撹乱パターン記憶部１２２と、イベント列撹乱部１３０と、パラメータ入力部１４１と、パラメータ記憶部１４２と、パラメータ設定部１５０と、タイミングパターン入力部１６１と、タイミングパターン記憶部１６２と、タイミング設定部１７０と、予定動作算出部１８０と、試験仕様出力部１９０とを有する。
【０２６１】
タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、タイミングパターン記憶部１６２が記憶したタイミングパターンを入力する。
タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、パラメータ設定部１５０が出力した試験手順を入力する。パラメータ設定部１５０が出力した試験手順には、イベント列撹乱部１３０が撹乱した撹乱イベント列と、パラメータ設定部１５０が設定したパラメータとが含まれている。なお、撹乱イベント列には、もととなった正常イベント列が含まれていてもよいし、含まれていなくてもよい。
タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、入力したタイミングパターンに基づいて、入力した試験手順に含まれる撹乱イベント列が表わす一連のイベントの各イベントについて、入力タイミングを設定する。
タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、入力した試験手順と、設定した入力タイミングとを出力する。
【０２６２】
実施の形態１における試験仕様生成装置１００は、試験対象システム３００に異常な順序でイベントを入力することにより、試験対象システム３００の動作を試験する（順序試験の）試験仕様を生成する。実施の形態２における試験仕様生成装置１００は、試験対象システム３００に様々なタイミングでイベントを入力することにより、試験対象システム３００の動作を試験する（タイミング試験の）試験仕様を生成する。
この実施の形態における試験仕様生成装置１００は、試験対象システム３００に異常な順序かつ様々なタイミングでイベントを入力することにより、試験対象システム３００の動作を試験する試験仕様を生成する。
【０２６３】
これにより、イベントの入力順序と入力タイミングとの特殊な組み合わせにより、試験対象システム３００が誤動作を起こす場合がないか、漏れのない試験をすることができる。
また、イベントの入力順序の撹乱パターンや、入力タイミングの設定パターンを、あらかじめ入力しておくことにより、試験仕様生成装置１００が試験仕様を生成するので、試験仕様を生成する手間を削減できる。
【０２６４】
以上説明した試験仕様の自動生成方式は、
試験対象システム３００へのイベント入力の順序に関する制約をパターン化したイベント順序パターン（撹乱パターン）を用い、
試験対象システムへのイベント入力のタイミングに関する制約をパターン化したイベント到着パターン（タイミングパターン）を用い、
状態遷移図に定義した時間制約を解析する解析部（タイミング設定部１７０）と、
試験手順とイベント順序パターンを組み合わせて順序に関する試験仕様を生成する生成部（イベント列撹乱部１３０）と、
試験手順、時間制約、イベント到着パターンを組み合わせてタイミングに関する試験仕様を生成する生成部（タイミング設定部１７０）と、
を備えることを特徴とする。
【０２６５】
これにより、試験対象システムの状態遷移図とシステムへのイベント入力の順序とタイミングのパターンから、順序とタイミングに関する試験仕様を自動生成するため、試験仕様の設計・作成工数を削減できる。
また、試験対象システムへのイベント入力の順序とタイミングとして考えられる、さまざまな組合せに関する試験仕様を生成するので、順序とタイミングに関するシステム動作の検証もれを防ぎ、残存不具合を減らすことができる。
【０２６６】
実施の形態４．
実施の形態４について、図３３〜図３６を用いて説明する。
【０２６７】
図３３は、この実施の形態における試験システム８００の全体構成の一例を示すシステム構成図である。
なお、実施の形態１〜実施の形態３で説明した機能ブロックと共通するブロックについては、同一の符号を付し、ここでは説明を省略する。
【０２６８】
試験仕様生成装置１００は、状態遷移記憶部１１１と、正常イベント列生成部１１２と、撹乱パターン入力部１２１と、撹乱パターン記憶部１２２と、イベント列撹乱部１３０と、パラメータ入力部１４１と、パラメータ記憶部１４２と、パラメータ設定部１５０と、タイミングパターン入力部１６１と、タイミングパターン記憶部１６２と、イベント列反復部１７５と、タイミング設定部１７０と、予定動作算出部１８０と、試験仕様出力部１９０とを有する。
【０２６９】
イベント列反復部１７５は、ＣＰＵ９１１などの処理装置を用いて、タイミングパターン記憶部１６２が記憶したタイミングパターンを入力する。
イベント列反復部１７５は、ＣＰＵ９１１などの処理装置を用いて、パラメータ設定部１５０が出力した試験手順を入力する。パラメータ設定部１５０が出力した試験手順には、イベント列撹乱部１３０が撹乱した撹乱イベント列と、パラメータ設定部１５０が設定したパラメータとが含まれている。
イベント列反復部１７５は、ＣＰＵ９１１などの処理装置を用いて、入力したタイミングパターンが、イベントの反復試験を指定するパターンであるか否かを判定する。
タイミングパターンが反復試験を指定する場合、イベント列反復部１７５は、ＣＰＵ９１１などの処理装置を用いて、入力した撹乱イベント列が表わす一連のイベントを、タイミングパターンが表わす反復回数に基づいて、複数回繰り返すイベント列（反復イベント列）を生成する。
イベント列反復部１７５は、ＣＰＵ９１１などの処理装置を用いて、生成した反復イベント列を含む試験手順を出力する。
なお、タイミングパターンが反復試験を指定しない場合、イベント列反復部１７５は、入力した試験手順をそのまま出力する。
【０２７０】
タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、タイミングパターン記憶部１６２が記憶したタイミングパターンを入力する。
タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、イベント列反復部１７５が出力した試験手順を入力する。
タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、入力したタイミングパターンに基づいて、入力した試験手順に含まれる撹乱イベント列が表わす一連のイベントの各イベントについて、入力タイミングを設定する。
タイミング設定部１７０は、ＣＰＵ９１１などの処理装置を用いて、入力した試験手順と、設定した入力タイミングとを出力する。
【０２７１】
試験対象システム３００は、一連の動作が正常に終了し、終了状態まで遷移すると、再び開始状態に戻り、次のイベント入力を待つよう設計されている場合が多い。
このような場合、１回１回の動作を独立に試験すると正常に動作するが、繰り返し試験をすると、誤動作をする可能性があるので、最初に戻って繰り返しイベントを入力する試験をする必要がある。その場合、一連の動作が終わってから、次のサイクルが始まるまでのタイミングが重要である場合がある。
【０２７２】
この実施の形態における試験仕様生成装置１００は、このような繰り返し試験をするための試験仕様を生成する。
【０２７３】
図３４は、この実施の形態におけるタイミングパターン記憶部１６２が記憶するタイミングパターンの一例を示す図である。
【０２７４】
パターン名「反復Ａ」は、イベント列が表わす一連のイベントを、試験対象システム３００に３回繰り返し入力することを表わす。また、そのときの入力タイミングとして、「散発」により算出した３通りのタイミングを設定することを表わす。なお、「単位イベント数」は、イベント列反復部１７５が入力した撹乱イベント列が表わす一連のイベントに含まれるイベントの数を表わす。
【０２７５】
パターン名「反復Ｂ」は、繰り返しの回数を別の方法で指定する例である。「総イベント数＝２０」は、イベント列反復部１７５が生成する反復イベント列が表わす一連のイベントに含まれるイベントの総数が２０になるよう、繰り返しの回数を指定するものであり、例えば、撹乱イベント列が表わす一連のイベントのイベント数が「４」なら５回繰り返し、撹乱イベント列のイベント数が「５」なら４回繰り返すことを表わす。
また、この例のように、入力タイミングは、繰り返しと無関係に指定してもよい。
【０２７６】
次に、動作について説明する。
【０２７７】
図３５は、この実施の形態におけるイベント列反復部１７５が反復イベント列を生成する反復処理の流れの一例を示すフローチャート図である。
【０２７８】
引数取得工程Ｔ１１において、イベント列反復部１７５は、ＣＰＵ９１１などの処理装置を用いて、タイミングパターン記憶部１６２が記憶したタイミングパターンから、繰り返しの指定（反復回数または総イベント数）を取得する。
【０２７９】
イベント列入力工程Ｔ１２において、イベント列反復部１７５は、ＣＰＵ９１１などの処理装置を用いて、パラメータ設定部１５０が出力した試験手順（撹乱イベント列及びパラメータ）から、試験手順（撹乱イベント列及びパラメータ）を一つ入力する。
【０２８０】
反復指定判定工程Ｔ１３において、イベント列反復部１７５は、ＣＰＵ９１１などの処理装置を用いて、引数取得工程Ｔ１１で取得した繰り返しの指定が、反復回数か総イベント数かを判定する。
繰り返しの指定が反復回数であると判定した場合、反復イベント列生成工程Ｔ１６へ進む。
繰り返しの指定が総イベント数であると判定した場合、イベント数算出工程Ｔ１４へ進む。
【０２８１】
イベント数算出工程Ｔ１４において、イベント列反復部１７５は、イベント列入力工程Ｔ１２で入力したイベント列が表わす一連のイベントに含まれるイベントの数を数える。
【０２８２】
反復回数算出工程Ｔ１５において、イベント列反復部１７５は、引数取得工程Ｔ１１で取得した総イベント数を、イベント数算出工程Ｔ１４で算出したイベントの数で割り、その商を反復回数とする。なお、余りは切り上げてもよいし、切り捨ててもよい。
【０２８３】
反復イベント列生成工程Ｔ１６において、イベント列反復部１７５は、引数取得工程Ｔ１１で取得した（もしくは、反復回数算出工程Ｔ１５で算出した）反復回数に基づいて、イベント列入力工程Ｔ１２で入力したイベント列が表わす一連のイベントを繰り返し入力する反復イベント列を生成する。
【０２８４】
反復イベント列出力工程Ｔ１７において、イベント列反復部１７５は、反復イベント列生成工程Ｔ１６で生成した反復イベント列を出力する。
【０２８５】
繰り返し判定工程Ｔ１８において、イベント列反復部１７５は、ＣＰＵ９１１などの処理装置を用いて、パラメータ設定部１５０が出力したイベント列（試験手順）を、イベント列入力工程Ｔ１２ですべて入力したか否かを判定する。
まだ入力すべきイベント列があると判定した場合、イベント列入力工程Ｔ１２に戻り、次のイベント列（試験手順）を入力する。
入力すべきイベント列をすべて入力し、処理が完了したと判定した場合、反復処理を終了する。
【０２８６】
図３６は、この実施の形態におけるイベント列反復部１７５が出力する反復イベント列を含む試験手順の一例を示す図である。
この例において、イベント列反復部１７５は、イベント列が表わす一連のイベント「ｅｖｔ１」「ｅｖｔ３」「ｅｖｔ２」「ｅｖｔ４」を３回繰り返す反復イベント列を生成し、生成した反復イベント列を含む試験手順を出力する。
【０２８７】
イベント列反復部１７５が出力した試験手順は、タイミング設定部１７０が入力し、実施の形態２で説明した処理と同様にして、イベントの入力タイミングを設定する。
【０２８８】
図３７は、この実施の形態における試験仕様出力部１９０が出力する試験仕様の一例を示す図である。
タイミング設定部１７０がイベントの入力タイミングを設定し、予定動作算出部１８０が試験規格（予定動作）を算出して、試験仕様出力部１９０が試験仕様を出力する。
【０２８９】
この例は、図３４に示したパターン名「反復Ａ」のように、タイミングパターン「散発」のパラメータ「対象イベント数」に「単位イベント数」を指定した場合の例である。これにより、外部周期を繰り返し試験の入力間隔とする試験仕様を生成することができる。
また、タイミングパターンとして、「周期的」や「制限」など、他のパターンを指定したり、「散発」の「対象イベント数」として「単位イベント数」以外を指定したりすることにより、更に様々なパターンで、繰り返し試験をすることができる。
【０２９０】
この実施の形態における試験仕様生成装置１００は、更に、イベント列反復部１７５を有することを特徴とする。
イベント列反復部１７５は、ＣＰＵ９１１などの処理装置を用いて、イベント列を入力し、入力したイベント列が表わす一連のイベントを所定の回数繰り返すイベント列を生成して、反復イベント列とすることを特徴とする。
タイミング設定部１７０は、イベント列反復部１７５が生成した反復イベント列において、上記イベント列が表わす一連のイベントの最初のイベントについて、上記イベント列が表わす一連のイベントの最後のイベントの入力から、所定の時間が経過したタイミングを、入力タイミングとして設定することを特徴とする。
【０２９１】
この実施の形態における試験仕様生成装置１００によれば、一連の動作終了後、開始状態に戻る試験対象システム３００において、繰り返しイベントを入力するタイミングの違いによる試験対象システム３００の動作を試験できる試験仕様を生成することができるという効果を奏する。
【図面の簡単な説明】
【０２９２】
【図１】実施の形態１における試験仕様生成装置１００の外観の一例を示す図。
【図２】実施の形態１における試験仕様生成装置１００のハードウェア資源の一例を示す図。
【図３】実施の形態１における試験システム８００の全体構成の一例を示すシステム構成図。
【図４】実施の形態１における状態遷移記憶部１１１が記憶した状態遷移情報６１０の一例を示す図。
【図５】実施の形態１における正常イベント列生成部１１２が生成する正常イベント列の一例を表わす図。
【図６】実施の形態１におけるイベント列撹乱部１３０が撹乱した撹乱イベント列の一例を示す図。
【図７】実施の形態１におけるパラメータ設定部１５０が生成する試験手順の一例を表わす図。
【図８】実施の形態１における試験仕様出力部１９０が出力する試験仕様の一例を示す図。
【図９】実施の形態１におけるイベント列撹乱部１３０の詳細ブロックの一例を示す詳細ブロック図。
【図１０】実施の形態１における撹乱パターン記憶部１２２が記憶する撹乱パターンの一例を示す図。
【図１１】実施の形態１におけるイベント列撹乱部１３０がイベント列を撹乱する撹乱処理の流れの一例を示すフローチャート図。
【図１２】実施の形態１におけるイベント順序変更部１３２がイベント列を撹乱する逆転処理の流れの一例を示すフローチャート図。
【図１３】実施の形態１におけるイベント重複部１３３がイベント列を撹乱する重複処理の流れの一例を示すフローチャート図。
【図１４】実施の形態１におけるイベント欠落部１３４がイベント列を撹乱する欠落処理の流れの一例を示すフローチャート図。
【図１５】実施の形態１における試験仕様生成装置１００が出力する試験仕様の一例を示す図。
【図１６】実施の形態１における試験仕様生成装置１００が出力する試験仕様の一例を示す図。
【図１７】実施の形態１における試験仕様生成装置１００が出力する試験仕様の一例を示す図。
【図１８】実施の形態１における試験仕様生成装置１００が出力する試験仕様の一例を示す図。
【図１９】実施の形態２における試験システム８００の全体構成の一例を示すシステム構成図。
【図２０】実施の形態２における試験仕様出力部１９０が出力する試験仕様の一例を示す図。
【図２１】実施の形態２におけるタイミングパターン記憶部１６２が記憶するタイミングパターンの一例を示す図。
【図２２】実施の形態２におけるタイミング設定部１７０がイベントの入力タイミングを設定するタイミング設定処理の流れの一例を示すフローチャート図。
【図２３】実施の形態２における試験仕様出力部１９０が出力する試験仕様の一例と、それに基づいて試験装置２００が試験対象システム３００にイベントを入力するタイミングとを示す図。
【図２４】実施の形態２におけるタイミング設定部１７０がイベントの入力タイミングを設定するタイミング設定処理の流れの別の例を示すフローチャート図。
【図２５】実施の形態２における試験仕様出力部１９０が出力する試験仕様の一例と、それに基づいて試験装置２００が試験対象システム３００にイベントを入力するタイミングとを示す図。
【図２６】実施の形態２におけるタイミング設定部１７０がイベントの入力タイミングを設定するタイミング設定処理の流れの更に別の例を示すフローチャート図。
【図２７】実施の形態２における試験仕様出力部１９０が出力する試験仕様の一例を示す図。
【図２８】実施の形態２におけるタイミング設定部１７０がイベントの入力タイミングを設定するタイミング設定処理の流れのまた別の例を示すフローチャート図。
【図２９】実施の形態２における試験仕様出力部１９０が出力する試験仕様の一例と、それに基づいて試験装置２００が試験対象システム３００にイベントを入力するタイミングとを示す図。
【図３０】実施の形態２におけるタイミング設定部１７０がイベントのタイミングを設定するタイミング設定処理の流れのまた更に別の例を示すフローチャート図。
【図３１】実施の形態２における試験仕様出力部１９０が出力する試験仕様の一例を示す図。
【図３２】実施の形態３における試験システム８００の全体構成の一例を示すシステム構成図。
【図３３】実施の形態４における試験システム８００の全体構成の一例を示すシステム構成図。
【図３４】実施の形態４におけるタイミングパターン記憶部１６２が記憶するタイミングパターンの一例を示す図。
【図３５】実施の形態４におけるイベント列反復部１７５が反復イベント列を生成する反復処理の流れの一例を示すフローチャート図。
【図３６】実施の形態４におけるイベント列反復部１７５が出力する反復イベント列を含む試験手順の一例を示す図。
【図３７】実施の形態４における試験仕様出力部１９０が出力する試験仕様の一例を示す図。
【符号の説明】
【０２９３】
１００  試験仕様生成装置、１１１  状態遷移記憶部、１１２  正常イベント列生成部、１２１  撹乱パターン入力部、１２２  撹乱パターン記憶部、１３０  イベント列撹乱部、１３１  イベント列記憶部、１３２  イベント順序変更部、１３３  イベント重複部、１３４  イベント欠落部、１４１  パラメータ入力部、１４２  パラメータ記憶部、１５０  パラメータ設定部、１６１  タイミングパターン入力部、１６２  タイミングパターン記憶部、１７０  タイミング設定部、１７５  イベント列反復部、１８０  予定動作算出部、１９０  試験仕様出力部、２００  試験装置、２１０  イベント発生部、２２０  動作検証部、３００  試験対象システム、５１０  試験仕様、５２０  イベント、５３０  動作結果、５４０  試験結果、６１０  状態遷移情報、６１１  状態、６１２  イベント、６１３  動作、６１４  遷移先状態、６１５  滞留時間、８００  試験システム、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ装置、９０７  スキャナ装置、９１０  システムユニット、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信装置、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群、９３１  電話器、９３２  ファクシミリ機、９４０  インターネット、９４１  ゲートウェイ、９４２  ＬＡＮ。
【図１】
2008210275.tif 000003
【図２】
2008210275.tif 000004
【図３】
2008210275.tif 000005
【図４】
2008210275.tif 000006
【図５】
2008210275.tif 000007
【図６】
2008210275.tif 000008
【図７】
2008210275.tif 000009
【図８】
2008210275.tif 000010
【図９】
2008210275.tif 000011
【図１０】
2008210275.tif 000012
【図１１】
2008210275.tif 000013
【図１２】
2008210275.tif 000014
【図１３】
2008210275.tif 000015
【図１４】
2008210275.tif 000016
【図１５】
2008210275.tif 000017
【図１６】
2008210275.tif 000018
【図１７】
2008210275.tif 000019
【図１８】
2008210275.tif 000020
【図１９】
2008210275.tif 000021
【図２０】
2008210275.tif 000022
【図２１】
2008210275.tif 000023
【図２２】
2008210275.tif 000024
【図２３】
2008210275.tif 000025
【図２４】
2008210275.tif 000026
【図２５】
2008210275.tif 000027
【図２６】
2008210275.tif 000028
【図２７】
2008210275.tif 000029
【図２８】
2008210275.tif 000030
【図２９】
2008210275.tif 000031
【図３０】
2008210275.tif 000032
【図３１】
2008210275.tif 000033
【図３２】
2008210275.tif 000034
【図３３】
2008210275.tif 000035
【図３４】
2008210275.tif 000036
【図３５】
2008210275.tif 000037
【図３６】
2008210275.tif 000038
【図３７】
2008210275.tif 000039