(57)【特許請求の範囲】
【請求項１】
システムに発生し得る複数のイベント発生パターンを生成するパターン生成部と、
生成された前記複数のイベント発生パターンの各々の希少度を所定の式を用いて計算する希少度計算部と、
計算された前記希少度に基づいて、希少度の低いイベント発生パターンよりも希少度の高いイベント発生パターンに高い優先度が多く割り当てられるように、前記複数のイベント発生パターンに優先度を割り当てる優先度割当部と、
割り当てられた前記優先度に応じて前記複数のイベント発生パターンの中からテストケース作成用のイベント発生パターンを選択し、選択されたイベント発生パターンに基づいてテストケースを作成するテストケース作成処理部と、
を備えたことを特徴とするテストケース作成装置。
【請求項２】
前記イベント発生パターンには、互いに独立して発生し得る第１イベント系列および第２イベント系列が少なくとも一部の期間で重なった重畳部分が含まれ、
前記希少度計算部は、前記第１イベント系列における前記重畳部分の標準経過時間と、前記第２イベント系列における前記重畳部分の標準経過時間との差に基づいて、前記希少度を計算することを特徴とする請求項１記載のテストケース作成装置。
【請求項３】
前記イベント発生パターンには、所定のイベント系列の一部のイベントが欠落したパターンが含まれ、
前記希少度計算部は、前記一部のイベントが欠落する発生確率に基づいて前記希少度を計算することを特徴とする請求項１又は請求項２記載のテストケース作成装置。
【請求項４】
複数のイベント系列の発生頻度が表わされた統計データを記憶する統計データ記憶部を更に備え、
前記希少度計算部は、前記統計データに基づいて前記イベント発生パターンの発生確率を計算し、前記発生確率に基づいて前記希少度を計算することを特徴とする請求項１〜請求項３の何れか一項に記載のテストケース作成装置。
【請求項５】
前記パターン生成部は、前記システムを構成する要素および前記システムに作用する要素のうち何れか複数の要素の各状態遷移パターンを複合して前記複数のイベント発生パターンを生成し、
前記希少度計算部は、
前記複数のイベント発生パターンの各々を、前記複数の要素のうち１つの要素の状態の遷移を示す遷移イベントと、前記遷移イベントが生じたときの他の要素の状態とを組み合わせを表わす複数の状態イベントセットに分解するパターン分解部と、
前記複数の状態イベントセットの各々の発生割合を計算する発生割合計算部と、
を有し、前記イベント発生パターンに含まれる前記状態イベントセットの前記発生割合を総計して前記イベント発生パターンの前記希少度を計算することを特徴とする請求項１記載のテストケース作成装置。
【請求項６】
前記優先度割当部は、計算された前記希少度と、より上位の優先度が割り当てられているイベント発生パターンとのパターン重複度とに基づき、希少度が高く且つ前記パターン重複度が低いイベント発生パターンに高い優先度が多く割り当てられるように、前記複数のイベント発生パターンの各々に優先度を割り当てることを特徴とする請求項１〜請求項５の何れか一項に記載のテストケース作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テストケースを作成するテストケース作成装置に関する。
【背景技術】
【０００２】
以前より、システム検証を行うために、テストケースと呼ばれる動作試験のパターンをシステムに適用して、システムの振る舞いを検証することが行われている。システム検証では、システムを構成するソフトウェア、ハードウェア、或いはこれらの両方が試験の対象となる。テストケースはテストシナリオと呼ばれることもある。
特許文献１には、システム検証を効率的に行うため、動作の重要性に応じて重みづけされたテストケースを作成するテストケース作成装置が提案されている。また、特許文献２には、テスト目的に即した試験したい部分について重点的に試験することが可能なテストシナリオを作成するテストシナリオ作成装置が提案されている。
【０００３】
また、特許文献３には、ソフトウェアの不具合を検証するために、過去に起きた障害の状態遷移を参照して、設計者が検討していない状態遷移を指摘する状態遷移検証装置が提案されている。また、特許文献４には、あるシーケンスで障害が検出されたときに、このシーケンスと同一または類似するシーケンスを含むシナリオを作成してこの障害の関連動作の検証を行う検証支援装置が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１６３１１６号公報
【特許文献２】特開２００６−１１２８５３号公報
【特許文献３】特許第５１５３４７０号公報
【特許文献４】特許第４８９３８１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば鉄道保安システムの分野では、非常に稀な状況が重なった場合でも異常が生じないように徹底した検証が求められることがある。また、このような分野のシステム開発の際には、非常に稀な状況が重なった場合でも正常に機能するよう、システムに要求される仕様を漏れなく分析することが求められることがある。
しかしながら、従来のテストケースの作成方法では、徹底したシステム検証或いは徹底したシステムの要求分析に適したテストケースを得ることは難しかった。例えば、一般的なテストケースの作成方法では、テストケースの網羅性に主眼が置かれている。様々な状況を網羅したテストケースには、一般的な状況を想定したテストケースが多く含まれるため、非常に稀な状況が重なった場合の検証を効率良く行うことは出来ない。
【０００６】
また、特許文献１、２のテストケースの作成方法では、重点的に検証したい状況を予め設定しておく必要がある。よって、容易に想定できない状況をテストケースとして作成することは難しい。また、特許文献３、４のテストケースの作成方法では、過去の障害情報に沿ってテスト状況が設定される。よって、作成されるテストケースは従前の障害状況に似通ったものになってしまう。
本発明は、徹底したシステム検証または徹底したシステムの要求分析を行うのに適したテストケースを提供することのできるテストケース作成装置を提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明のテストケース作成装置は、システムに発生し得る複数のイベント発生パターンを生成するパターン生成部と、
生成された前記複数のイベント発生パターンの各々の希少度を所定の式を用いて計算する希少度計算部と、
計算された前記希少度に基づいて、希少度の低いイベント発生パターンよりも希少度の高いイベント発生パターンに高い優先度が多く割り当てられるように、前記複数のイベント発生パターンに優先度を割り当てる優先度割当部と、
割り当てられた前記優先度に応じて前記複数のイベント発生パターンの中からテストケース作成用のイベント発生パターンを選択し、選択されたイベント発生パターンに基づいてテストケースを作成するテストケース作成処理部と、
を備えたことを特徴としている。
この構成によれば、希少度の高いイベント発生パターンに基づくテストケースを優先して作成することができる。よって、稀な状況におけるシステム検証を効率的に行うことができる。
【０００８】
ここで、前記イベント発生パターンには、互いに独立して発生し得る第１イベント系列および第２イベント系列が少なくとも一部の期間で重なった重畳部分が含まれ、
前記希少度計算部は、前記第１イベント系列における前記重畳部分の標準経過時間と、前記第２イベント系列における前記重畳部分の標準経過時間との差に基づいて、前記希少度を計算するように構成しても良い。
この構成によれば、時間的な観点から稀な状況となるイベント発生パターンのテストケースを優先して作成することができる。
【０００９】
また、前記イベント発生パターンには、所定のイベント系列の一部のイベントが欠落したパターンが含まれ、
前記希少度計算部は、前記一部のイベントが欠落する発生確率に基づいて前記希少度を計算するように構成しても良い。
この構成によれば、イベントの欠落という観点から稀な状況となるイベント発生パターンのテストケースを優先して作成できる。
【００１０】
また、複数のイベント系列の発生頻度が表わされた統計データを記憶する統計データ記憶部を更に備え、
前記希少度計算部は、前記統計データに基づいて前記イベント発生パターンの発生確率を計算し、前記発生確率に基づいて前記希少度を計算するように構成しても良い。
この構成によれば、統計データに従って稀な状況と判断できるイベント発生パターンのテストケースを優先して作成できる。
【００１１】
さらに、前記パターン生成部は、前記システムを構成する要素および前記システムに作用する要素のうち何れか複数の要素の各状態遷移パターンを複合して前記複数のイベント発生パターンを生成し、
前記希少度計算部は、
前記複数のイベント発生パターンの各々を、前記複数の要素のうち１つの要素の状態の遷移を示す遷移イベントと、前記遷移イベントが生じたときの他の要素の状態とを組み合わせを表わす複数の状態イベントセットに分解するパターン分解部と、
前記複数の状態イベントセットの各々の発生割合を計算する発生割合計算部と、
を有し、前記イベント発生パターンに含まれる前記状態イベントセットの前記発生割合を総計して前記イベント発生パターンの前記希少度を計算するように構成しても良い。
この構成によれば、システムを構成する複数の要素の各状態遷移の関わり合いが稀な状況となるイベント発生パターンのテストケースを優先して作成できる。
【００１２】
また、前記優先度割当部は、計算された前記希少度と、より上位の優先度が割り当てられているイベント発生パターンとのパターン重複度とに基づき、希少度が高く且つ前記パターン重複度が低いイベント発生パターンに高い優先度が多く割り当てられるように、前記複数のイベント発生パターンの各々に優先度を割り当てるように構成しもてよい。
この構成によれば、稀な状況を示すものであっても同じようなイベント発生パターンのテストケースが多く作成されてしまうことを回避できる。よって、稀な状況におけるシステムの検証を効率的に行うことができる。
【発明の効果】
【００１３】
本発明によれば、徹底したシステム検証または徹底したシステムの要求分析を行うのに適したテストケースを提供することのできるテストケース作成装置を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態に係るテストケース作成装置を含んだシステムの構成例を示すシステム構成図である。
【図２】本発明の実施の形態に係るテストケース作成装置の機能構成を示す機能ブロック図である。
【図３】第１テストケース作成部により実行されるテストケース作成処理の手順を示すフローチャートである。
【図４】図３のステップＳ１のイベント発生パターンの生成処理を説明する図である。
【図５】図３のステップＳ２の希少度の計算処理の第１例を説明する図である。
【図６】第１テストケース作成部の機能構成の第２例を示す機能ブロック図である。
【図７】希少度の計算処理の第２例を説明する図である。
【図８】第１テストケース作成部の機能構成の第３例を示す機能ブロック図である。
【図９】希少度の計算処理の第３例を説明する図である。
【図１０】第１テストケース作成部の機能構成の第４例を示す機能ブロック図である。
【図１１】第４例のテストケース作成処理の手順を示すフローチャートである。
【図１２】図１１のステップＳ１１のイベント発生パターン生成処理を説明する図である。
【図１３】図１１のステップＳ１２の「状態×イベント」セットに分解する処理を説明する図である。
【図１４】図１１のステップＳ１３、Ｓ１４の情報量ｄｊと希少度Ｄｉとの計算処理を説明する図である。
【図１５】図１１のステップＳ１８の除外処理を説明する図である。
【図１６】図１１のステップＳ１７で割当完了と判別された結果を説明する図である。
【図１７】第２テストケース作成部により実行されるテストケース作成処理の手順を示すフローチャートである。
【図１８】差異量計算処理および優先度設定処理の第１例を説明する図である。
【図１９】差異量計算処理および優先度設定処理の第２例を説明する図である。
【図２０】差異量計算処理および優先度設定処理の第３例を説明する図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
図１は、本発明の実施の形態に係るテストケース作成装置を含んだシステムの構成例を示すシステム構成図である。図２は、本発明の実施の形態に係るテストケース作成装置の機能構成を示す機能ブロック図である。
本発明の実施の形態に係るテストケース作成装置１は、例えば通信ネットワークＷを介して複数のクラインアントコンピュータ１００と接続されるサーバコンピュータから構成される。複数のクライアントコンピュータ１００は、通信ネットワークＷを介してテストケース作成装置１に接続して、テストケースの作成指示および作成条件の指定を行うことができる。また、複数のクライアントコンピュータ１００は、テストケース作成装置１が作成したテストケースを、通信ネットワークＷを介してテストケースデータベース３０から読み出すことができる。
【００１６】
テストケース作成装置１は、複数の利用者が協働してテストケースの作成処理を進められるように構成される。また、テストケース作成装置１は、作成したテストケースを複数の利用者の間で共有できるように構成される。協働および共有に係る複数の利用者としては、例えば、システム開発を行うユーザ開発部門、システムの保守を行うユーザ保守部門、システムの仕様の管理を行うユーザ仕様管理部門、および、ユーザ開発部門の依頼でシステムを具現化するメーカ等を適用することができる。これらの者が協働してテストケースを作成し、作成されたテストケースを共有することで、システムの要求分析、設計、製造、および仕様更新の段階など、様々な段階でシステムの検証を行って、各段階の作業に役立てることができる。
【００１７】
図２に示すように、テストケース作成装置１は、テストケース作成部１０、入力部２１、出力部２２、アクセス管理部２３、およびテストケースデータベース３０を備えている。これらの各機能ブロックは、ＣＰＵ（中央演算処理装置）、メモリ、記憶装置、通信デバイスなどのハードウェアと、ＣＰＵが実行するソフトウェアとの協働によって構成される。
入力部２１および出力部２２は、通信ネットワークＷを介してクライアントコンピュータ１００との間でデータを入出力する。
アクセス管理部２３は、認証情報に基づいて各クライアントコンピュータ１００のアクセス管理を行う。テストケースの作成処理はプロジェクト毎に管理され、アクセス管理部２３にはプロジェクト毎に協働および共有に係る複数の利用者の認証情報が設定される。アクセス管理部２３は、この認証情報に基づいて利用者のアクセス権限を判断し、アクセス種別ごとに利用者がプロジェクトのデータにアクセスすることを許可又は禁止する。さらに、アクセス管理部２３は、複数の利用者の同時アクセスによるデータの破壊又は不整合を防止する。
【００１８】
テストケース作成部１０は、テストケースの作成条件と作成指示とを外部から受けて、これらに基づいてテストケースを作成する。テストケースの作成条件には、例えばイベント発生パターンを生成するための前提条件、優先度の割当数又はテストケースの作成数などが含まれる。テストケース作成部１０は、イベント発生パターンの希少度に基づいてテストケースを作成する第１テストケース作成部１０Ａと、イベント発生パターンの差異量に基づいてテストケースを作成する第２テストケース作成部１０Ｂとを有する。
第１テストケース作成部１０Ａは、外部から与えられた前提条件に従って複数のイベント発生パターンを生成するイベント発生パターン生成部１１と、各イベント発生パターンの希少度を計算する希少度計算部１２Ａと、計算された希少度に応じてイベント発生パターンに優先度を割り当てる優先度割当部１３Ａと、優先度に応じて選択されたイベント発生パターンからテストケースを作成するテストケース作成処理部１４とを有する。
第２テストケース作成部１０Ｂは、外部から与えられた前提条件に従って複数のイベント発生パターンを生成するイベント発生パターン生成部１１と、各イベント発生の差異量を計算する差異量計算部１２Ｂと、計算された差異量に応じてイベント発生パターンに優先度を割り当てる優先度割当部１３Ｂと、優先度に応じて選択されたイベント発生パターンからテストケースを作成するテストケース作成処理部１４とを有する。
ここで、イベント発生パターンとは、システムの構成要素或いはシステムに作用する要素に発生する複数のイベントが、時系列に並べられたパターンを意味する。イベント発生パターンには、２つ以上のイベントが同時に発生するパターンが含まれていてもよい。また、テストケースとはシステム検証の際にシステムを試験動作する手順を示すものである。
テストケースデータベース３０は、テストケース作成部１０により作成されたテストケース、および、テストケースの作成条件等が格納される。
【００１９】
＜希少度に基づくテストケース作成処理−第１例−＞
続いて、踏切保安システムを検証対象とした場合を例にとってテストケース作成処理の詳細を説明する。
図３は、第１テストケース作成部により実行されるテストケース作成処理の手順を示すフローチャートである。図４は、図３のステップＳ１のイベント発生パターンの生成処理を説明する図である。図４（ａ）は検証対象のシステム構成の一例を示し、図４（ｂ）〜（ｄ）は生成されたイベント発生パターンの例を示す。
【００２０】
第１テストケース作成部１０Ａは、図３のフローチャートに示すように、イベント発生パターン生成部１１、希少度計算部１２Ａ、優先度割当部１３Ａ、およびテストケース作成処理部１４が、それぞれステップＳ１〜Ｓ４の処理を順次実行してテストケースを作成する。
ステップＳ１のイベント発生パターン生成処理では、先ず、利用者が、イベント発生パターンの前提条件をイベント発生パターン生成部１１に与える。前提条件としては、システムの構成要素、システムに作用する要素、各要素に発生し得る個々のイベント、個々のイベントの発生順序又は同時発生の有無などイベント発生パターン上の制約条件などが含まれる。
【００２１】
例えば、図４（ａ）のような踏切保安システムが検証対象であれば、システムの構成要素として、２つの警報開始点（通過列車用のＡ点、停車列車用のＥ点）、および警報終了点（Ｂ点）の検知子ｈ１〜ｈ３が与えられる。また、システムに作用する要素として、２つの列車ｋ１，ｋ２（「列車１」、「列車２」と記す）が与えられる。また、個々のイベントとしては、２つの列車の各々がＡ点、Ｅ点、Ｂ点へ進入するイベントと、Ａ点、Ｅ点、Ｂ点から進出するイベント等が与えられる。さらに、制約条件として、イベントの発生順序の制約（「列車１」と「列車２」の各々は、Ａ進入、Ａ進出、Ｅ進入、Ｅ進出、Ｂ進入、Ｂ進出と並ぶなど）と、イベントの同時発生の可能性の有無などが設定される。これらの前提条件は、利用者が任意に指定することができる。
【００２２】
なお、イベント発生パターン生成部１１は、個々のイベントと、発生パターン上の制約条件とが既知であれば処理を実行できる。よって、イベント発生パターン生成部１１に与える前提条件からは、システムの構成要素、および、システムに作用する要素を省いてもよい。
イベント発生パターン生成部１１は、図４（ｂ）〜図４（ｄ）に示すように、与えられた前提条件を満たす範囲で、個々のイベントの順番を変えていくことで、前提条件を満たす全てのイベント発生パターンを生成する。
【００２３】
図５は、図３のステップＳ２の希少度の計算処理の第１例を説明する図である。図５（ａ）はイベント間の標準時間の一例を、図５（ｂ）と図５（ｃ）とは２つのイベント発生パターンにおける希少度の計算例の図を示している。
希少度の計算処理（図３のステップＳ２）では、希少度計算部１２Ａが、イベント発生パターン生成部１１が作成した複数のイベント発生パターンの各々の希少度を算出する。第１例の希少度の計算処理では、希少度計算部１２Ａは、複数のイベント系列が少なくとも一部の期間で重なっている重畳部分を検出し、１つのイベント系列の重畳部分の標準時間と、他のイベント系列の重畳部分の標準時間との差に基づいて、希少度が計算される。
ここで、イベント系列とは複数のイベントが所定の順番で並んだ列を意味し、図５（ａ）の例では、「列車１」がＡ点、Ｅ点、Ｂ点を順に通過する際のイベントの列と「列車２」がＡ点、Ｅ点、Ｂ点を順に通過する際のイベントの列との２つのイベント系列が該当する。
第１例の希少度の計算処理を行う場合には、図５（ａ）に示すように、イベント間の標準時間が、予め利用者から希少度計算部１２Ａに与えられる。
【００２４】
希少度の計算対象が、図５（ｂ）のイベント発生パターンである場合、希少度計算部１２Ａは、「列車１」のＢ進入−Ｂ進出の部分と、「列車２」のＡ進入−Ｅ進出の部分とが重畳部分であると検出する。
この重畳部分では、「列車１」の連続する２つのイベント間に挟まれて、「列車２」の連続する複数のイベントが生起している。ここでは、標準時間”５秒”で生起する２つのイベント間に、標準時間”２０秒”で生起する複数のイベントが挟まれていており、この時間差によって標準から外れた希少な状況であることを認識できる。
このような場合、希少度計算部１２Ａは、挟まれた複数のイベントが生起する標準時間”２０秒”よりも、挟んでいる２つのイベントが生起する標準時間”５秒”が短いか判別し、短い場合に、前者と後者との差”１５秒”を希少度として計算する。なお、挟まれた複数のイベントが生起する標準時間よりも、挟んでいる２つのイベントが生起する標準時間が長い場合には、希少な状況でないので希少度はゼロとすればよい。
【００２５】
希少度の計算対象が、図５（ｃ）のイベント発生パターンである場合、希少度計算部１２Ａは、「列車２」のＡ進入−Ａ進出の部分と、「列車１」のＥ進入−Ｂ進出の部分とが重畳部分であると検出する。
この重畳部分では、「列車２」の連続する２つのイベント間に挟まれて、「列車１」の連続する複数のイベントが生起している。この場合、標準時間”５秒”で生起する２つのイベント間に、標準時間”４０秒”で生起する複数のイベントが挟まれていており、この時間差によって標準から外れた希少な状況であることを認識できる。
【００２６】
このような場合、希少度計算部１２Ａは、挟まれた複数のイベントが生起する標準時間”４０秒”よりも、挟んでいる２つのイベントが生起する標準時間”５秒”が短いか判別し、短い場合に、前者と後者との差”３５秒”を希少度として計算する。
１つのイベント発生パターンに上記のような重畳部分が複数箇所ある場合、希少度計算部１２Ａは、複数の重畳部分について同様に希少度を計算し、これらの総和を、イベント発生パターンの全体の希少度として計算してもよいし、重み付けを付加した総和を行って、全体の希少度を計算してもよい。或いは、複数の重畳部分の希少度の中から最大値を採って、イベント発生パターンの全体の希少度としてもよい。
【００２７】
優先度割当処理（図３のステップＳ３）では、優先度割当部１３Ａが、計算された希少度に基づいて、各イベント発生パターンに優先度を割り当てていく。優先度割当部１３Ａは、希少度の値が大きい順に各イベント発生パターンに上位の優先度から割り当てていけばよい。なお、上位の優先度から順に割り当てていく過程において、優先度の割り当てられていないイベント発生パターンと、既に優先度が割り当てられているイベント発生パターンとの重複度を判定し、重複している割合が大きなものは低い優先度を割り当てるか、優先度を割り当てないような補正処理を行ってもよい。また、重複度を判定する場合に、希少な状況を表わす部分に絞って重複度の判定を行うようにしてもよい。このような補正処理により、希少な状況であっても同じ状況のテストケースが重複して作成されてしまうのを回避することができる。これにより、互いに重複しない多くの希少な状況を効率的に検証するのに適したテストケースを作成することが可能となる。
【００２８】
テストケース作成処理（図３のステップＳ４）では、テストケース作成処理部１４が、優先度の高い順にイベント発生パターンをテストケース作成用として選択し、選択されたイベント発生パターンで各要素が動作する試験動作の手順をテストケースとして作成する。テストケース作成処理部１４は、優先度が割り当てられたイベント発生パターンの全部についてテストケースを作成する必要はなく、優先度の高い方から所定数或いは利用者による設定数のテストケースを作成するようにしてもよい。
【００２９】
＜希少度に基づくテストケース作成処理−第２例−＞
図６は、第１テストケース作成部の機能構成の第２例を示す機能ブロック図である。図７は、希少度の計算処理の第２例を説明する図である。図７（ａ）はシステム構成のデバイス故障率を示しており、図７（ｂ）は、一部のイベントが欠落したイベント発生パターンの希少度の計算方法の説明図を示している。
希少度に基づく第２例のテストケース作成処理においては、先ず、第１例と同様のイベント発生パターン生成処理（図３のステップＳ１）が実行される。ただし、第２例では、生成されるイベント発生パターンとして、イベントの一部が欠落したイベント発生パターンが含まれても良いように、前提条件が設定される。例えば、前提条件として、欠落が生じえるイベント個数、或いは、欠落が生じえるイベント内容などが利用者から与えられる。
【００３０】
また、希少度に基づく第２例のテストケース作成処理においては、図７（ａ）に示すように、デバイスの故障率など、予め利用者が個々のイベントが欠落する確率が定義される。欠落の確率の定義は、例えば、個々イベントが欠落する確率と、複数のイベントがセットで欠落する確率とが、別々に定義されていてもよい。図６に示すように、第２例において、第１テストケース作成部１０Ａには、希少度計算部１２Ａが参照できる欠落確率データベース１５が設けられ、ここに利用者が定義した欠落確率の情報が格納される。
第２例の希少度の計算処理（図３のステップＳ２）では、希少度計算部１２Ａは、イベントの一部が欠落するイベント発生パターンがあった場合に、定義された欠落の確率からイベント発生パターンの希少度を計算する。
【００３１】
例えば、図７（ｂ）に示すように、或るイベント発生パターンに、欠落確率”１％”のイベントと、欠落確率”２％”のイベントが欠落している場合、希少度計算部１２Ａは、先ず、総合した欠落確率を計算する。また、希少度、すなわち或る事象Ｅがどれほど生起しにくいかの尺度は、事象Ｅの発生確率がＰ（Ｅ）であれば、−ｌｏｇＰ（Ｅ）と表わすことができる。よって、希少度計算部１２Ａは、図７（ｂ）のイベント発生パターンの希少度を、総合した欠落確率”１％×２％”から−ｌｏｇ２（０．０１×０．０２）≒１２．３と計算する。希少度計算部１２Ａは、このようにして各イベント発生パターンの希少度を計算していく。
なお、第２例の希少度の計算処理は、例えば、第１例の希少度の計算処理など、他の希少度の計算処理と併用してもよい。併用する場合、計算処理ごとに得られた希少度を重み付けして総和をとることで全体の希少度を計算すればよい。
【００３２】
第２例の優先度割当処理（図３のステップＳ３）とテストケース作成処理（図３のステップＳ４）とは、第１例の場合と同様である。
第２例の希少度に基づくテストケース作成処理によれば、機器の故障等によりイベントの欠落が生じる場合を含んだ稀な状況なテストケースを作成することができる。
【００３３】
＜希少度に基づくテストケース作成処理−第３例−＞
図８は、第１テストケース作成部の機能構成の第３例を示す機能ブロック図である。図９は、希少度の計算処理の第３例を説明する図である。図９（ａ）はパターンＡの希少度の計算方法を説明する図、図９（ｂ）はパターンＢの希少度の計算方法を説明する図を示している。
【００３４】
希少度に基づく第３例のテストケース作成処理においても、第１例と同様にイベント発生パターン生成処理（図３のステップＳ１）が実行される。
第３例においては、第１テストケース作成部１０Ａに、図８に示すように、希少度計算部１２Ａが参照できる統計データベース１６が設けられ、ここにイベント発生パターンの発生頻度を参照できる統計データが格納される。統計データは、過去の実績データが膨大にある場合には、過去の実績データから作成してもよいし、過去の実績データが少ない場合には、過去の実績を模擬するシミュレーションにより膨大な回数でイベントを発生させることで作成してもよい。統計データベースには、例えば膨大な回数のイベント発生パターンが含まれる母集団が格納されていればよい。希少度の計算対象のイベント発生パターンが、母集団の中にどの頻度で含まれているかを参照することで、イベント発生パターンの発生頻度を得ることができる。
【００３５】
第３例の希少度の計算処理（図３のステップＳ２）では、希少度計算部１２Ａが、このような統計データを利用して、イベント発生パターンの発生頻度から希少度を計算する。例えば図９（ａ）、（ｂ）のパターンＡ、Ｂのイベント発生パターンが計算対象である場合、希少度計算部１２Ａは、先ず、統計データベース１６の中から、パターンＡ、Ｂの発生頻度を得る。例えば、統計データの母数が１０，０００回であり、パターンＡが２００回現れ、パターンＢが５回現れているとする。この場合、パターンＡの発生確率は２００／１０，０００＝２％、パターンＢの発生確率は５／１０，０００＝０．０５％と得られる。希少度、すなわち或る事象Ｅがどれほど生起しにくいかの尺度は、事象Ｅの発生確率がＰ（Ｅ）であれば、−ｌｏｇＰ（Ｅ）と表わすことができる。希少度計算部１２Ａは、上述のように得られた発生確率から、パターンＡの希少度を−ｌｏｇ２（０．０２）≒５．６、パターンＢの希少度を−ｌｏｇ２（０．０００５）≒１１．０と計算する。希少度計算部１２Ａは、このようにして各イベント発生パターンの希少度を計算していく。
【００３６】
なお、統計データは、イベント発生パターンの全体が現れるような統計データとせずに、イベント発生パターンを構成する部分的なパターンがどのような確率で発生するのかが示される統計データとしてもよい。そして、部分的なパターンから１つのイベント発生パターンの発生確率を計算し、これから上述のように希少度が計算されてもよい。また、イベント発生パターンの母集団は、実績データまたはシミュレーションデータとせずに、ガウス分布データなど特定の分布データから利用者が作成して与えてもよい。
また、第３例の希少度の計算処理は、例えば、第１例および第２例の希少度の計算処理など、他の希少度の計算処理と併用してもよい。併用する場合、イベント発生パターンを統計データに含まれる部分と、含まれない部分とに分け、含まれる部分を第３例の計算処理を用いて希少度を計算し、含まれない部分を第１例および第２例の何れか又は両方の計算処理を用いて希少度を計算し、各計算処理ごとに得られた希少度を重み付けして総和をとることで全体の希少度とすればよい。
【００３７】
第３例の優先度割当処理（図３のステップＳ３）とテストケース作成処理（図３のステップＳ４）とは、第１例の場合と同様である。
第３例の希少度計算処理によれば、実績に即した統計データから希少度を計算することで、実績に即して稀と判断できる状況を優先したテストケースを作成することができる。
【００３８】
＜希少度に基づくテストケース作成処理−第４例−＞
図１０は、第１テストケース作成部の機能構成の第４例を示す機能ブロック図である。図１１は、第４例の第１テストケース作成部により実行されるテストケース作成処理の手順を示すフローチャートである。図１２は、ステップＳ１１のイベント発生パターン生成処理を説明する図である。図１３は、ステップＳ１２の「状態×イベント」セットに分解する処理を説明する図である。図１４は、ステップＳ１３、Ｓ１４の情報量ｄｊと希少度Ｄｉの計算処理とを説明する図である。図１５は、ステップＳ１８の除外処理を説明する図である。図１６は、ステップＳ１７で割当完了となった結果を説明する図である。
【００３９】
第４例においては、図１０に示すように、希少度計算部１２Ａが、パターン分解部１２１と、発生割合計算部１２２とを含んでいる。パターン分解部１２１と発生割合計算部１２２の機能については後に説明する。
第４例のテストケース作成処理では、図１１に示すように、先ず、イベント発生パターン生成部１１が複数のイベント発生パターンを生成する（ステップＳ１１）。イベント発生パターン生成部１１には、図１２（ａ）および図１２（ｂ）に示すように、システムの構成要素或いはシステムに作用する要素である複数の要素の状態遷移モデルが、利用者により与えられる。例えば、図１２の例では、踏切警報器の押しボタンの状態遷移モデル（ａ）と、復帰ボタンの状態遷移モデル（ｂ）とが与えられている。押しボタンには非押下の状態と押下中の状態とが定義され、復帰ボタンには非押下の状態、長押し前の状態、および長押し後の状態が定義されている。また、状態遷移モデルには、各要素が１つの状態から別の状態へ遷移する遷移イベントが定義されている。具体的には、「押し開始」とは操作者が押しボタンを押す遷移イベントを示し、「押し解除」とは押しボタンを押した操作者が押ボタンを放す遷移イベントを示す。また、「復帰開始」とは操作者が復帰ボタンを押す遷移イベントを示し、「復帰解除１、２」とは復帰ボタンを押した操作者が復帰ボタンを放す遷移イベントを示す。「復帰３秒」とは復帰ボタンを押して長押し前から長押し後となった遷移イベントを示す。「復帰解除１」と「復帰解除２」の遷移イベントは、復帰ボタンが長押し後に非押下となるか、復帰ボタンが長押し前に非押下となるかを区別している。
【００４０】
さらに、イベント発生パターン生成部１１には、利用者から、イベント発生パターンに含めない遷移イベントの順番を制約条件として与えることができる。この制約条件は、順番として生じえない遷移イベントの順番、或いは、テストケースに含めなくてよいと判断した遷移イベントの順番など、利用者が任意に設定可能である。図１２の例では、テストケースに含めなくてよいと判断した制約条件として、押しボタンが「押し解除」から「押し開始」となる遷移イベントの順番、復帰ボタンが「復帰解除」から「復帰開始」となる遷移イベントの順番、および復帰ボタンが「復帰３秒」から「復帰開始」となる遷移イベントの順番が、設定されている。
【００４１】
このような情報が与えられると、イベント発生パターン生成部１１は、定義された複数の遷移イベント（図１２（ｃ））を、制約条件に合致するものを除外した全てのパターンで並べることで、複数のイベント発生パターン（図１２（ｄ））を生成する。
なお、図１２（ｄ）のイベント発生パターンでは、「復帰解除１」と「復帰解除２」とは同じイベントとして作成し、次のような削除処理を後から行うことで、イベント発生パターンの整合を図っている。すなわち、イベント発生パターン生成部１１は、複数のイベント発生パターンを生成した後、発生し得ない遷移イベントが含まれる場合に、各イベント発生パターンからこの遷移イベントを削除する。図１２（ｄ）の例では、「復帰解除」後に「復帰３秒」の遷移イベントが発生し得ないので、この場合の「復帰３秒」の遷移イベントを削除している。
【００４２】
イベント発生パターンが生成されたら、次に、希少度計算部１２Ａのパターン分解部１２１が、複数のイベント発生パターンを「状態×イベント」セットに分解する（図１１のステップＳ１２）。
ここで、「状態×イベント」セットとは、複数の要素の状態遷移モデルのうち、１つの要素の遷移イベントと、この遷移イベントが発生したときの他の要素の状態とを組み合わせたものを意味する。例えば、図１３（ｂ）に示すように、復帰ボタンの遷移イベント（「復帰開始」、「復帰３秒」・・・）と、この遷移イベントが発生したときの押しボタンの状態（「押下中」）とを組み合わせたものが、複数の「状態×イベント」セットとなる。また、図１３（ｃ）に示すように、押しボタンの遷移イベント（「押し開始」、「押し解除」）と、この遷移イベントが発生したときの復帰ボタンの状態（「長押し前」、「長押し後」）と組み合わせたものが、複数の「状態×イベント」セットとなる。
図１３（ｂ）と図１３（ｃ）の例では、押しボタンの「非押下」の状態と、復帰ボタンの「非押下」の状態とは、利用者によって、稀な状況でなく計数しないで良い状態として省くように設定されている。このように、計数の対象とするか否かは任意に設定できる。
【００４３】
パターン分解部１２１は、各イベント発生パターンに、上記のように定義された「状態×イベント」セットが含まれているか逐次判定する。この判定結果の一例を示したのが、図１３（ｂ）および図１３（ｃ）の表である。図１３（ｂ）、図１３（ｃ）の各行は、図１３（ａ）に示されるイベント発生パターンの行に対応している。図１３（ｂ）および図１３（ｃ）の「●」の欄が、対応する行に示されたイベント発生パターンに、対応する列に示された「状態×イベント」セットが含まれることを示している。
例えば、１０行目のパターンＮｏ．１０のイベント発生パターンには、図１３（ｂ）の１０行目の１つの「●」の欄により、押しボタンの「押下中」の状態と復帰ボタンの「復帰開始」の遷移イベントとの組み合わせが含まれていることが示されている。加えて、このイベント発生パターンには、図１３（ｃ）の１０行目の１つの「●」の欄により、復帰ボタンの「長押し前」の状態と押しボタンの「押し解除」の遷移イベントとの組み合わせが含まれていることが示されている。
【００４４】
また、例えば３行目のパターンＮｏ．３のイベント発生パターンには、図１３（ｂ）の３つの「●」の欄により、押しボタンの状態と、復帰ボタンの遷移イベントとの組み合わせが含まれていることが示されている。具体的には、このイベント発生パターンには、押しボタンの「押下中」の状態と、復帰ボタンの「復帰開始」、「復帰３秒」、「復帰解除１」の遷移イベントとの組み合わせが含まれている。
また、例えば４行目、５行目のパターンＮｏ．４、Ｎｏ．５のイベント発生パターンには、図１３（ｃ）の各行の２つの「●」の欄により、復帰ボタンの状態と、押しボタンの遷移イベントとの組み合わせが含まれていることが示されている。具体的には、パターンＮｏ４のイベント発生パターンには、復帰ボタンの「長押前」の状態と、押しボタンの「押し開始」、「押し解除」の遷移イベントとの組み合わせが含まれている。また、パターンＮｏ５のイベント発生パターンには、復帰ボタンの「長押後」の状態と、押しボタンの「押し開始」、「押し解除」の遷移イベントとの組み合わせが含まれている。
【００４５】
「状態×イベント」セットへの分解がなされたら、次に、希少度計算部１２Ａの発生割合計算部１２２は、各「状態×イベント」セットの情報量ｄｊを計算する（図１１のステップＳ１３）。情報量ｄｊとは、その事象の発生しにくさの尺度を示すものであり、その事象の発生割合がＰ（Ｅ）であれば、−ｌｏｇＰ（Ｅ）と表わすことができる。発生割合計算部１２２は、図１４（ｂ）および図１４（ｃ）の下から２行目に示すように、先ず、この表の各列に含まれている「●」の個数を計数する。次に、発生割合計算部１２２は、次式（１）に従って、全てのイベント発生パターンのうち各「状態×イベント」セットが含まれているパターンの割合をＰ（Ｅ）として、各「状態×イベント」セットの情報量ｄｊを計算する。ここで、添え字「ｊ」により、複数の「状態×イベント」セットのうちの一つを表わしている。この計算結果は、図１４（ｂ）および図１４（ｃ）の最下行に示されている。
【数１】
0006618808.tif 000002
【００４６】
次に、第１テストケース作成部１０Ａは、ステップＳ１４〜ステップＳ１８のループ処理に移行する。ループ処理では、１回のループごとに１つのイベント発生パターンを選択し、上位から１つずつ優先度を割り当てていく。以下、具体的に説明する。
先ず、希少度計算部１２Ａは、図１４（ｄ）に示すように、複数の「状態×イベント」セットの情報量ｄｊに基づいて、各イベント発生パターンの希少度Ｄｉを計算する（図１１のステップＳ１４）。ここで、添え字「ｉ」により、複数のイベント発生パターンのうちの一つを表わしている。情報量ｄｊは、その事象の発生しにくさの尺度を、加算可能に表わした値であるので、次式（２）のように、希少度Ｄｉは各イベント発生パターンに含まれる１つ又は複数の「状態×イベント」セットの情報量ｄｊを加算して求めることができる。
【数２】
0006618808.tif 000003
なお、図１４（ｂ）〜（ｄ）の例は、１回目のループ処理において第１位の優先度を割り当てる際の処理を示している。詳細は図１１のステップＳ１８のところで説明するが、２回目以降のループ処理では、図１５（ｂ）〜（ｄ）に示すように、情報量ｄｊの加算の対象となる「状態×イベント」セットの一部が除外される（除外された「状態×イベント」セットを図１５において「○」により示している）。よって、２回目以降のループ処理のステップＳ１４では、図１５（ｂ）〜（ｄ）に示すように、「○」の示された「状態×イベント」セットを除いて、「●」の示された「状態×イベント」セットを対象に、式（２）の計算が行われる。
【００４７】
次に、希少度計算部１２Ａは、図１４（ｄ）の２列目に示されるように、イベント発生パターンの希少度が同値となった場合に備えて、各イベント発生パターンの基準パターンからの距離を計算する（図１１のステップＳ１５）。基準パターンからの距離は、任意の１つのイベント発生パターンを基準パターンとして、各遷移イベントを何回並べ替えれば基準パターンと同一になるかを示す値である。ここでは、１行目（パターンＮｏ．１）のイベント発生パターンを基準パターンとしている。
【００４８】
希少度と距離とが計算されたら、次に、優先度割当部１３Ａは、希少度Ｄｉと距離Ｌｉとに基づいて、希少度の高い１つのイベント発生パターンを選択して、選択されたイベント発生パターンに優先度を割り当てる（図１１のステップＳ１６）。ここで選択するイベント発生パターンは、希少度Ｄｉが最大のイベント発生パターンである。また、希少度Ｄｉが最大で同値となる複数のイベント発生パターンがある場合には、距離Ｌｉが最も小さいイベント発生パターンを選択する。
なお、希少度Ｄｉが同値となる複数のイベント発生パターンがあった場合に、その中の１つを選ぶ方法は、どのような方法でもよく、上記の距離Ｌｉに大きな意味はない。例えば、距離が最も大きいイベント発生パターンを選択しても、距離が任意の値に一番近いイベント発生パターンを選択してもよい。ここで、希少度Ｄｉが最大のイベント発生パターンが選択から外れても、次のループ処理で、再度、イベント発生パターンの希少度Ｄｉが再計算されることで、選択価値が高ければ選択されることになるし、選択価値が低ければ選択されないことになる。
【００４９】
続いて、希少度Ｄｉが最大のイベント発生パターンを選択したら、優先度割当部１３Ａは、現状で残っている中で最上位の優先度を割り合てる。すなわち、１回目のループ処理の割り当てであれば第１位の優先度を割り当て、２回目のループ処理の割り当てであれば第２位の優先度を割り当てる。図１４の具体例では、パターンＮｏ．１６のイベント発生パターンが、希少度Ｄｉが最大で距離Ｌｉが最小なため、第１位の優先度が割り当てられる（図１５の「優先度１位」の行を参照）。
次に、優先度割当部１３Ａは、優先度を割り当てる個数が上限または規定数に達して割当完了となるか判別する（図１１のステップＳ１７）。
【００５０】
その結果、割当完了でなければ、希少度計算部１２Ａは、各イベント発生パターンに含まれる「状態×イベント」セットの判定結果の表から、直前に優先度を割り当てたイベント発生パターンに含まれる「状態×イベント」セットについての判定結果を除外する（図１１のステップＳ１８）。
具体的には、図１４（ｂ）、（ｃ）と図１５（ｂ）、（ｃ）とに示すように、パターンＮｏ．１６に含まれている３つの「状態×イベント」セットについて、「●」の判定結果を除外している。図１５（ｂ）、図１５（ｃ）の「○」が除外された欄を示している。
この処理は、上位のイベント発生パターンと重複するイベント発生パターンに高い優先度が割り当てられないようにするためのものである。この処理により、次に希少度Ｄｉを計算する際に、既に優先度が割り当てられているイベント発生パターンに含まれている「状態×イベント」セットがあっても、この「状態×イベント」セットが、次に計算するイベント発生パターンの希少度Ｄｉに寄与しなくなる。
【００５１】
図１１のステップＳ１８の除外処理を行ったら、ステップＳ１４〜ステップＳ１８の処理が、ステップＳ１７で割当完了と判別されるまで繰り返される。ステップＳ１４において、２回目以降の希少度Ｄｉを計算する際には、ステップＳ１８で除外された「状態×イベント」セットについての情報量ｄｊの加算は行わない。具体的には、図１５（ｄ）に示すように、残りのイベント発生パターンの希少度Ｄｉを計算するのに、除外された「状態×イベント」セットの情報量ｄｊの加算が行われない。
そして、計算された希少度Ｄｉに基づいて、イベント発生パターンに次の優先度が割り当てられる。
【００５２】
このような繰り返し処理によって、図１６に示すように、希少度Ｄｉが高く重複度の低い複数のイベント発生パターンが選択されて優先度が割り当てられることになる。
そして、繰り返し処理の途中、ステップＳ１７で割当完了と判別されたら、テストケース作成処理部１４が優先度の高い順にイベント発生パターンに応じたテストケースを作成し、一連のテストケース作成処理を終了する。
第４例のテストケース作成処理によれば、システムに関わる複数の要素の状態遷移の情報を利用者から与えられることで、複数の要素の状態遷移が期間をクロスして発生する複数のイベント発生パターンの中から、希少度の高いテストケースを作成することができる。
【００５３】
＜差異量に基づくテストケース作成処理−第１例−＞
続いて、第２テストケース作成部１０Ｂ（図２を参照）によるテストケース作成処理の説明を行う。このテストケース作成処理は、第１テストケース作成部１０Ａによる希少度に基づくテストケース作成処理と独立して行われるものである。検証対象の同一のシステムに対して、第１テストケース作成部１０Ａと、第２テストケース作成部１０Ｂとの両方でテストケースを作成し、両方のテストケースを合せてシステム検証を行ってもよいし、両方のテストケースを別々に用いて、異なる観点から２種類のシステム検証を行うようにしてもよい。
【００５４】
図１７は、第２テストケース作成部により実行されるテストケース作成処理の手順を示すフローチャートである。図１８は、差異量計算処理および優先度設定処理の第１例を説明する図である。
テストケース作成処理が開始されると、先ず、イベント発生パターン生成部１１（図２を参照）は、前述した第１テストケース作成部１０Ａによる処理と同様に、複数のイベント発生パターンを生成する（ステップＳ２１）。
イベント発生パターンが生成されたら、次に、差異量計算部１２Ｂ（図２を参照）が各イベント発生パターンの差異量Ｆｉを計算する（ステップＳ２２）。この計算処理においては、差異量計算部１２Ｂは、図１８に示すように、先ず、複数のイベント発生パターンの中から任意の一つを基準パターンとして設定し、次に、各イベント発生パターンにおける各一対のイベントの並び順と、基準パターンにおける各一対のイベントの並び順とを比較する。そして、差異量計算部１２Ｂは、各一対のイベントの並び順が一致するか否かを判別し、異なる一対のイベントの組数を差異量として計算する（図１８を参照）。
【００５５】
差異量が計算されたら、優先度割当部１３Ｂ（図２を参照）は、先ず、基準パターンのイベント発生パターンを第１位に、次に、差異量Ｆｉが最も大きいものを第２位として、２つのイベント発生パターンの優先度を設定する（ステップＳ２３）。
次に、差異量計算部１２Ｂは、優先度の割り当てられていない１つまたは複数のイベント発生パターンの各々について、優先度の割り当てられているイベント発生パターンとの平均差異量ＭＦｉを計算する（ステップＳ２４）。平均差異量ＭＦｉとは、優先度の割り当てられているイベント発生パターンとの個々の差異量を平均化した値である。つまり、優先度の割り当てられているイベント発生パターンがＮ個あり、第ｎ位のイベント発生パターンとの差異量をＦｎｉとすれば、平均差異量ＭＦｉは次式（３）のように計算する。
【数３】
0006618808.tif 000004
【００５６】
続いて、優先度割当部１３Ｂは、平均差異量ＭＦｉが最も大きいイベント発生パターンに次の順位の優先度を割り当てる（ステップＳ２５）。
優先度を割り当てたら、優先度割当部１３Ｂは、優先度を割り当てる個数が上限または規定数に達して割当完了となるか判別する（ステップＳ２６）。そして、割当完了でなければ、ステップＳ２４とステップＳ２５の処理を繰り返す。これにより、互いにかけ離れたイベント発生パターンに対して優先度が割り当てられていく。
一方、ステップＳ２６で割当完了と判別されたら、テストケース作成処理部１４が優先度の高い順にイベント発生パターンを採用し、採用したイベント発生パターンで各要素が動作する試験動作の手順をテストケースとして作成する。
【００５７】
差異量に基づく第１例のテストケース作成処理によれば、イベント発生パターンに含まれる一対複数組のイベントの各並び順が同一か否かという観点から、互いにかけ離れたイベント発生パターンを優先して抽出し、これらから互いにかけ離れたテストケースを作成することができる。よって、イベント発生パターンが重複したり似通ったりするテストケースが多く作成されることが回避され、様々なパターンでイベントを発生させたシステムの検証を効率的に行うことが可能となる。
【００５８】
＜差異量に基づくテストケース作成処理−第２例−＞
図１９は、第２例の差異量計算処理および優先度設定処理を説明する図である。
差異量に基づく第２例のテストケース作成処理は、差異量計算処理の手法が、第１例のテストケース作成処理と異なり、他の処理は第１例の場合と同様である。同様の部分の詳細な説明は省略する。
第２例の差異量計算処理（図１７のステップＳ２２）においては、図１９に示すように、差異量計算部１２Ｂが、先ず、複数のイベント発生パターンの中から任意の一つを基準パターンとして設定する。次に、差異量計算部１２Ｂは、基準パターンと各イベント発生パターンとのイベントの並びを比較して、最少で何組のイベントペアの順番を入れ変えることで、両者が同じとなるかを計数する。そして、この回数を両者の差異量として計算する。
【００５９】
平均差異量計算処理（図１７のステップＳ２４）では、差異量計算部１２Ｂが第２例の手法を用いて、優先度の割り当てられている複数のイベント発生パターンとの個々の差異量Ｆｎｉを計算し、これらを第１例の場合と同様に平均化して平均差異量ＭＦｉを計算する。
差異量に基づく第２例のテストケース作成処理によれば、イベント発生パターンの並び替えが多いか少ないかという観点から、互いにかけ離れたイベント発生パターンを優先して抽出し、これらから互いにかけ離れたテストケースを作成することができる。
【００６０】
＜差異量に基づくテストケース作成処理−第３例−＞
図２０は、第３例の差異量計算処理および優先度設定処理を説明する図である。
差異量に基づく第３例のテストケース作成処理は、差異量計算処理の手法が、第１例および第２例のテストケース作成処理と異なり、他の処理は第１例および第２例の場合と同様である。同様の部分の詳細な説明は省略する。
第３例の差異量計算処理（図１７のステップＳ２２）においては、図２０に示すように、差異量計算部１２Ｂが、先ず、複数のイベント発生パターンの中から任意の一つを基準パターンとして設定する。次に、差異量計算部１２Ｂは、基準パターンと各イベント発生パターンとのイベントの並びを比較して、イベントの内容とイベントが発生する順番とが異なっているものを計数する。例えば、図２０の基準パターンとパターン１とでは、１番目のイベントは、両者とも「Ａ」イベントで同じであるが、２番目と３番目のイベントが、両者で異なる。第３例では、このように発生する順番が異なるイベントの個数を、２つのイベント発生パターンの差異量として計数する。
【００６１】
平均差異量計算処理（図１７のステップＳ２４）では、差異量計算部１２Ｂが第３例の手法を用いて、優先度の割り当てられている複数のイベント発生パターンとの個々の差異量Ｆｎｉを計算し、これらを第１例の場合と同様に平均化して平均差異量ＭＦｉを計算する。
差異量に基づく第３例のテストケース作成処理によれば、個々のイベントの発生の順番が同じか否かという観点から、互いにかけ離れたイベント発生パターンを優先して抽出し、これらから互いにかけ離れたテストケースを作成することができる。
【００６２】
以上、本発明の実施の形態について説明したが、本発明は上記の実施の形態に限られるものではなく、実施の形態で示した細部は、発明の趣旨を逸脱しない範囲で適宜変更可能である。
【符号の説明】
【００６３】
１  テストケース作成装置
１０  テストケース作成部
１１  イベント発生パターン生成部（パターン生成部）
１２Ａ  希少度計数部
１２Ｂ  差異量計数部
１３Ａ，１３Ｂ  優先度割当部
１４  テストケース作成処理部
１５  欠落確率データベース
１６  統計データベース
１２１  パターン分解部
１２２  発生割合計算部
３０  テストケースデータベース
１００  クライアントコンピュータ
【図１】
0006618808.tif 000005
【図２】
0006618808.tif 000006
【図３】
0006618808.tif 000007
【図４】
0006618808.tif 000008
【図５】
0006618808.tif 000009
【図６】
0006618808.tif 000010
【図７】
0006618808.tif 000011
【図８】
0006618808.tif 000012
【図９】
0006618808.tif 000013
【図１０】
0006618808.tif 000014
【図１１】
0006618808.tif 000015
【図１２】
0006618808.tif 000016
【図１３】
0006618808.tif 000017
【図１４】
0006618808.tif 000018
【図１５】
0006618808.tif 000019
【図１６】
0006618808.tif 000020
【図１７】
0006618808.tif 000021
【図１８】
0006618808.tif 000022
【図１９】
0006618808.tif 000023
【図２０】
0006618808.tif 000024