(57)【特許請求の範囲】
【請求項１】
情報を処理する処理ユニットを有するコンピュータにより構成され、
対象のシステムにおいてある状態でのイベント発生により状態遷移が発生するという当該システムの状態遷移モデルを表す状態遷移情報から、前記状態遷移モデルでの状態遷移の正当性を確認するためのテストの対象とすべき状態遷移経路を表すテスト経路情報をテストケースの情報として抽出するテストケース抽出装置であって、
前記状態遷移情報は、前記状態遷移モデルの一部を構成する第１部分状態遷移モデルを表す第１部分状態遷移情報と、前記状態遷移モデルの一部を構成し、前記第１部分状態遷移モデルと階層関係にあって相互間で移行可能な第２部分状態遷移モデルを表す第２部分状態遷移情報とを含み、
前記第１部分状態遷移情報及び前記第２部分状態遷移情報を処理する前記処理ユニットは、
前記第１部分状態遷移モデルにおいて、初期状態から開始して、変数への書き込み処理を伴う状態遷移の後に、当該変数に対する書き込みが行われることなく前記第２部分状態遷移モデルに移行し、該第２部分状態遷移モデルにおける前記変数を参照する処理を伴う状態遷移までの経路を表すテスト経路情報を前記テストケースの情報として抽出するテスト経路抽出手段を有するテストケース抽出装置。
【請求項２】
前記テスト経路抽出手段は、最短経路を表す前記テスト経路情報を抽出する請求項１記載のテストケース抽出装置。
【請求項３】
前記状態遷移情報は、前記状態遷移モデルを記述した状態遷移表を表す情報であって、
前記第１部分状態遷移情報は、前記第１部分状態遷移モデルを記述した第１部分状態遷移表を表す情報であり、
前記第２部分状態遷移情報は、前記第２部分状態遷移モデルを記述した第２部分状態遷移表を表す情報である請求項１または２に記載のテストケース抽出装置。
【請求項４】
対象のシステムにおいてある状態でのイベント発生により状態遷移が発生するという当該システムの状態遷移モデルを表す状態遷移情報から、前記状態遷移モデルでの状態遷移の正当性を確認するためのテストの対象とすべき状態遷移経路を表すテスト経路情報をテストケースの情報として抽出するテストケース抽出方法であって、
前記状態遷移モデルの一部を構成する第１部分状態遷移モデルを表す第１部分状態遷移情報と、前記状態遷移モデルの一部を構成し、前記第１部分状態遷移モデルと階層関係にあって相互間で移行可能な第２部分状態遷移モデルを表す第２部分状態遷移情報とを含む前記状態遷移情報を処理する処理ステップを有し、
該処理ステップは、
前記第１部分状態遷移モデルにおいて、初期状態から開始して、変数への書き込み処理を伴う状態遷移の後に、当該変数に対する書き込みが行われることなく前記第２部分状態遷移モデルに移行し、該第２部分状態遷移モデルにおける前記変数を参照する処理を伴う状態遷移までの経路を表すテスト経路情報を前記テストケースの情報として抽出するテスト経路抽出ステップを有するテストケース抽出方法。
【請求項５】
前記テスト経路抽出ステップは、最短経路を表す前記テスト経路情報を抽出する請求項４記載のテストケース抽出方法。
【請求項６】
前記状態遷移情報は、前記状態遷移モデルを記述した状態遷移表を表す情報であって、
前記第１部分状態遷移情報は、前記第１部分状態遷移モデルを記述した第１部分状態遷移表を表す情報であり、
前記第２部分状態遷移情報は、前記第２部分状態遷移モデルを記述した第２部分状態遷移表を表す情報である請求項４または５に記載のテストケース抽出方法。
【請求項７】
対象のシステムにおいてある状態でのイベント発生により状態遷移が発生するという当該システムの状態遷移モデルを表す状態遷移情報から、前記状態遷移モデルでの状態遷移の正当性を確認するためのテストの対象とすべき状態遷移経路を表すテスト経路情報をテストケースの情報として抽出するテストケース抽出装置での処理をコンピュータに行わせるプログラムであって、
前記状態遷移モデルの一部を構成する第１部分状態遷移モデルを表す第１部分状態遷移情報と、前記状態遷移モデルの一部を構成し、前記第１部分状態遷移モデルと階層関係にあって相互間で移行可能な第２部分状態遷移モデルを表す第２部分状態遷移情報とを含む前記状態遷移情報を処理する処理ステップを前記コンピュータに行わせ、
該処理ステップは、
前記第１部分状態遷移モデルにおいて、初期状態から開始して、変数への書き込み処理を伴う状態遷移の後に、当該変数に対する書き込みが行われることなく前記第２部分状態遷移モデルに移行し、該第２部分状態遷移モデルにおける前記変数を参照する処理を伴う状態遷移までの経路を表すテスト経路情報を前記テストケースの情報として抽出するテスト経路抽出ステップを有するプログラム。
【請求項８】
前記テスト経路抽出ステップは、最短経路を表す前記テスト経路情報を抽出する請求項７記載のプログラム。
【請求項９】
前記状態遷移情報は、前記状態遷移モデルを記述した状態遷移表を表す情報であって、
前記第１部分状態遷移情報は、前記第１部分状態遷移モデルを記述した第１部分状態遷移表を表す情報であり、
前記第２部分状態遷移情報は、前記第２部分状態遷移モデルを記述した第２部分状態遷移表を表す情報である請求項７または８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムの状態遷移モデルを表す状態遷移情報から、前記状態遷移モデルでの状態遷移の正当性を確認するためのテストの対象とすべき状態遷移経路を表すテスト経路情報をテストケースの情報として抽出するテストケース抽出装置、テストケース抽出方法、及び前記テストケース抽出装置での処理をコンピュータに行わせるためのプログラムに関する。
【背景技術】
【０００２】
従来、例えば、特許文献１に記載されるテストケース作成装置が知られている。このテストケース作成装置は、あるシステム（対象物：例えば、自動空調システム）の動作仕様を表す階層関係にある複数の状態遷移図（特許文献１の図１参照）からそのシステムの動作検証を行うためのテストケースを作成する。テストケースは、動作検証すべきシステムの動作の流れ、即ち、状態遷移、の正当性を確認するためのテストの対象とすべき状態遷移図における遷移系列（状態遷移経路群）として表される。このテストケース作成装置では、複数の状態遷移図のそれぞれにおいて、それら複数の状態遷移図における階層間の状態の組合せを考慮したうえで、全ての状態遷移が網羅されるように（遷移の十分性が１００％）、状態遷移系列（状態遷移経路群）がテストケースとして作成される。そして、コンピュータの処理により、各状態遷移図において、上記のように作成されたテストケース、即ち、状態遷移系列（状態遷移経路群）に沿って動作（イベント、アクション等）が確認され、例えば、仕様と異なる状況が発生するか否か、即ち、状態遷移の正当性、が確認される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−２５３９０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、システムの動作の複雑化に伴って、前述した階層関係にある複数の状態遷移図（状態遷移情報）も複雑になる傾向にある。このような傾向において、１つの状態遷移モデル（状態遷移図等の状態遷移情報にて表される）での状態遷移の正当性が、その状態遷移モデルと階層関係にある他の状態遷移モデルでの動作に影響を受ける場合が発生し得る（状態遷移モデル同士の干渉）。例えば、一方の状態遷移モデルにおいて変数の書き込みがあり、他方の状態遷移モデルにおいてその変数を参照して状態遷移が決められるという場合、前記他方の状態遷移モデルでは、状態遷移がその変数の書き込み結果に影響される。しかしながら、前述した従来のテストケース作成装置では、そのような状態遷移の正当性を確認するためのテストケースについて、何ら考慮されていない。このため、階層関係にある２つの部分的な状態遷移モデルを含む状態遷移モデルでの状態遷移の正当性を精度良く確認することが難しい場合があった。
【０００５】
本発明は、このような事情に鑑みてなされたもので、階層関係にある２つの部分的な状態遷移モデルを含む状態遷移モデルでの状態遷移の正当性を精度良く確認可能なテストケースを得ることのできるテストケース抽出装置、テストケース抽出方法及び該テストケース抽出装置での処理をコンピュータに行わせるためのプログラムを提供するものである。
【課題を解決するための手段】
【０００６】
本発明に係るテストケース抽出装置は、情報を処理する処理ユニットを有するコンピュータにより構成され、対象のシステムにおいてある状態でのイベント発生により状態遷移が発生するという当該システムの状態遷移モデルを表す状態遷移情報から、前記状態遷移モデルでの状態遷移の正当性を確認するためのテストの対象とすべき状態遷移経路を表すテスト経路情報をテストケースの情報として抽出するテストケース抽出装置であって、前記状態遷移情報は、前記状態遷移モデルの一部を構成する第１部分状態遷移モデルを表す第１部分状態遷移情報と、前記状態遷移モデルの一部を構成し、前記第１部分状態遷移モデルと階層関係にあって相互間で移行可能な第２部分状態遷移モデルを表す第２部分状態遷移情報とを含み、前記第１部分状態遷移情報及び前記第２部分状態遷移情報を処理する前記処理ユニットは、前記第１部分状態遷移モデルにおいて、初期状態から開始して、変数への書き込み処理を伴う状態遷移の後に、当該変数に対する書き込みが行われることなく前記第２部分状態遷移モデルに移行し、該第２部分状態遷移モデルにおける前記変数を参照する処理を伴う状態遷移までの経路を表すテスト経路情報を前記テストケースの情報として抽出するテスト経路抽出手段を有する構成となる。
【０００７】
また、本発明に係るテストケース抽出方法は、対象のシステムにおいてある状態でのイベント発生により状態遷移が発生するという当該システムの状態遷移モデルを表す状態遷移情報から、前記状態遷移モデルでの状態遷移の正当性を確認するためのテストの対象とすべき状態遷移経路を表すテスト経路情報をテストケースの情報として抽出するテストケース抽出方法であって、前記状態遷移モデルの一部を構成する第１部分状態遷移モデルを表す第１部分状態遷移情報と、前記状態遷移モデルの一部を構成し、前記第１部分状態遷移モデルと階層関係にあって相互間で移行可能な第２部分状態遷移モデルを表す第２部分状態遷移情報とを含む前記状態遷移情報を処理する処理ステップを有し、該処理ステップは、前記第１部分状態遷移モデルにおいて、初期状態から開始して、変数への書き込み処理を伴う状態遷移の後に、当該変数に対する書き込みが行われることなく前記第２部分状態遷移モデルに移行し、該第２部分状態遷移モデルにおける前記変数を参照する処理を伴う状態遷移までの経路を表すテスト経路情報を前記テストケースの情報として抽出するテスト経路抽出ステップを有する構成となる。
【０００８】
更に、本発明に係るプログラムは、対象のシステムにおいてある状態でのイベント発生により状態遷移が発生するという当該システムの状態遷移モデルを表す状態遷移情報から、前記状態遷移モデルでの状態遷移の正当性を確認するためのテストの対象とすべき状態遷移経路を表すテスト経路情報をテストケースの情報として抽出するテストケース抽出装置での処理をコンピュータに行わせるプログラムであって、前記状態遷移モデルの一部を構成する第１部分状態遷移モデルを表す第１部分状態遷移情報と、前記状態遷移モデルの一部を構成し、前記第１部分状態遷移モデルと階層関係にあって相互間で移行可能な第２部分状態遷移モデルを表す第２部分状態遷移情報とを含む前記状態遷移情報を処理する処理ステップを前記コンピュータに行わせ、該処理ステップは、前記第１部分状態遷移モデルにおいて、初期状態から開始して、変数への書き込み処理を伴う状態遷移の後に、当該変数に対する書き込みが行われることなく前記第２部分状態遷移モデルに移行し、該第２部分状態遷移モデルにおける前記変数を参照する処理を伴う状態遷移までの経路を表すテスト経路情報を前記テストケースの情報として抽出するテスト経路抽出ステップを有する構成となる。
【０００９】
これらの構成により、階層関係にある第１部分状態遷移モデルと第２部分状態遷移モデルとを含む状態遷移モデルのテストケースの抽出に際して、前記第１部分状態遷移モデルにおいて、初期状態から開始して、変数への書き込みを伴う状態遷移の後に、当該変数に対する書き込みが行われることなく前記第２部分状態遷移モデルに移行し、該第２部分状態遷移モデルにおける前記変数を参照する処理を伴う状態遷移までの経路を表すテスト経路が抽出される。このようなテスト経路を前記状態遷移モデルでの状態遷移の正当性を確認するためのテストの対象とすることにより、第１部分状態遷移モデルで影響を受けた変数を第２部分状態遷移モデルで参照して状態遷移することの正当性を確認することができる。
【発明の効果】
【００１０】
本発明に係るテストケース抽出装置、テストケース抽出方法及びプログラムによれば、階層関係にある２つの部分的な状態遷移モデルを含む状態遷移モデルでの状態遷移の正当性を精度良く確認可能なテストケースを得ることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態に係るテストケース抽出装置が構成されるコンピュータ（ＰＣ）のハードウエア構成を示すブロック図である。
【図２】階層関係にある親状態遷移モデル（親状態遷移表）と子状態遷移モデル（子状態遷移表）を含む状態遷移モデルから抽出されるテストケース（テスト経路Ｐtest）の一例を示す図である。
【図３】親状態遷移表（Parent）の一例を示す図である。
【図４】図３に示す親状態遷移表（Parent）に対応する親状態遷移図を示す図である。
【図５】子状態遷移表（Child）の一例を示す図である。
【図６】図５に示す子状態遷移表（Child）に対応する子状態遷移図を示す図である。
【図７】テストケース（テスト経路）を抽出する処理の手順を示すフローチャートである。
【図８】図７に示すフローチャートにおける干渉テストケース抽出処理の具体的な処理手順（その１）を示すフローチャートである。
【図９】図７に示すフローチャートにおける干渉テストケース抽出処理の具体的な処理手順（その２）を示すフローチャートである。
【図１０】干渉テストケース抽出処理により抽出されるテストケース（テスト経路）の一例、及びそのテストケースにおける変数の状況の一例を示す図である。
【図１１】干渉テストケール抽出処理により抽出されるテストケース（テスト経路）の他の一例、及びそのテストケースにおける変数の状況の他の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を用いて説明する。
【００１３】
本発明の実施の形態に係るテストケース抽出装置が構成されるコンピュータ（ＰＣ）は、例えば、図１に示すハードウエア構成となる。
【００１４】
図１において、このコンピュータ（テストケース抽出装置）は、例えば、パーソナルコンピュータ（ＰＣ）であって、プログラムに従って種々の処理を実行する処理ユニット（ＣＰＵ）１１を有している。処理ユニット１０１には、バス１０７を介してメモリ１０２、ハードディスク装置等の外部記憶装置１０３、マウス、キーボード等の操作部１０５及び表示部１０６が接続されている。外部記憶装置１０３には、テストケース抽出の処理に供される状態遷移モデルを記述した状態遷移表の情報（状態遷移情報）が格納され、また、そのテストケース抽出の処理に係るプログラムが格納されている。処理ユニット１０１は、外部記憶装置１０３から前記状態遷移表（状態遷移モデル）の情報を読み出してメモリ１０２の所定領域に展開するとともに、前記プログラムをメモリ１０２に読み出し、そのプログラムに従って、メモリ１０２に展開された状態遷移表の情報を対象としたテストケース抽出に係る処理を実行する。処理ユニット１０１での処理の実行により生成される各種情報が表示器１０６に表示される。
【００１５】
テストケース抽出に係る処理の対象となる状態遷移モデルは、階層関係にある２つの部分状態遷移モデル、例えば、図２に示すように、上位層の親状態遷移モデルＳＴＴ１（Parent）と下位層の子状態遷移モデルＳＴＴ２（Child）とを含む。外部記憶装置１０３には、親状態遷移モデルＳＴＴ１（Parent）を記述する親状態遷移表（Parent）の情報と、子状態遷移モデルＳＴＴ２（Child）を記述する子状態遷移表（Child）の情報とを含む状態遷移情報が格納されている。そして、処理ユニット１０１は、前記親状態遷移表（Parent）の情報及び前記子状態遷移表（Child）の情報を含む状態遷移情報から、前記状態遷移モデルの状態遷移の正当性を確認するためのテストの対象とすべき状態遷移経路（テスト経路という）Ｐtest（図２参照）を表すテスト経路情報を抽出するテストケース抽出に係る処理を実行する。
【００１６】
テストケース抽出に係る処理の対象となる状態遷移モデルを表す状態遷移情報は、例えば、図２に示すように階層関係にある、図３に示す親状態遷移表（Parent）の情報と図５に示す子状態遷移表（Child）の情報とを含む。
【００１７】
図３に示す親状態遷移表（Parent）は、図４に示す状態遷移図に示す状態遷移群を表している。この親状態遷移表（Parent）は、具体的には、
状態Ｓ00でイベントＥ00が発生すると、状態Ｓ01に遷移し、
状態Ｓ01でイベントＥ00が発生すると、変数Ａ＝１にして（アクション）、状態Ｓ01に維持（遷移）し、
状態Ｓ00でイベントＥ01が発生すると、変数Ａが１の場合、プロセス00を実行して、状態Ｓ00に維持（遷移）し、変数Ａがそれ以外の場合、プロセス01を実行して状態Ｓ01に遷移し、
状態Ｓ00でイベントＥ02が発生すると、子状態遷移モデル（子状態遷移表（Child））に移行して、状態Ｓ02に遷移し、
状態Ｓ02でイベントＥ02が発生すると、子状態遷移モデル（子状態遷移表（Child））に移行して、状態Ｓ00に遷移する、等
のような状態遷移群を表している。
【００１８】
図５に示す子状態遷移表（Child）は、図６に示す状態遷移図に示す状態遷移群を表している。この子状態遷移表（Child）は、具体的には、
状態Ｓ10でイベントＥ02の下位概念であるイベントＥ10が発生すると、状態Ｓ11に遷移し、
状態Ｓ11でイベントＥ02の下位概念であるイベントＥ11が発生すると、変数Ａ＝０にして状態Ｓ12に遷移し、
状態Ｓ12でイベントＥ12が発生すると、変数Ａが０の場合、プロセス10を実行して、状態Ｓ12に維持（遷移）し、変数Ａがそれ以外の場合、プロセス11を実行して、状態Ｓ10に遷移する、等
のような状態遷移群を表している。
【００１９】
上述したように階層関係にある図３に示す親状態遷移表（Parent）と図５に示す子状態遷移表とを含む状態遷移表の情報を対象として、処理ユニット１０１は、図７に示す手順に従って、テストケース抽出に係る処理を実行する。
【００２０】
図７において、処理ユニット１０１は、親状態遷移表（Parent）（図３参照）の情報を読み出してメモリ１０２に展開し（Ｓ１０）、この親状態遷移表（Parent）の情報（状態遷移情報）から、公知の手法（例えば、Ｎ−スイッチ網羅基準）に従って、親状態遷移モデルについてのテストケース抽出処理を実行する（Ｓ２０）。このテストケース抽出処理では、親状態遷移表（親状態遷移モデル）での状態遷移の正当性を確認するためのテストの対象とすべき状態遷移経路（テスト経路）を表すテスト経路情報が抽出される。
【００２１】
次いで、処理ユニット１０１は、子状態遷移表（Child）（図５参照）の情報を読み出してメモリ１０２に展開し（Ｓ３０）、この子状態遷移表（Child）の情報（状態遷移情報）から、子状態遷移モデルについてのテストケース抽出処理を実行する（Ｓ４０）。このテストケース抽出処理では、子状態遷移表（Child）の情報から、公知の手法（例えば、Ｎ−スイッチ網羅基準）に従って、子状態遷移モデルでの状態遷移の正当性を確認するためのテストの対象とすべき状態遷移経路（テイスト経路）を表すテスト経路情報が抽出される。
【００２２】
上述したように、親状態遷移表（Parent）の情報及び子状態遷移表（Child）の情報のそれぞれからテスト経路情報が抽出されると、処理ユニット１０１は、一方の状態遷移モデルで変数への書き込みを伴う状態遷移と、他方の状態遷移モデルでその変数を参照する処理を伴う状態遷移とを含む状態遷移経路を、干渉テストケースを表す状態遷移経路として抽出する干渉テストケース抽出処理を実行する（５０：テスト経路抽出手段）。この干渉テストケース抽出処理は、図８及び図９に示す手順に従って行われる。
【００２３】
図８において、処理ユニット１０１は、親状態遷移表（Parent）の情報及び子状態遷移表（Child）の情報から変数を抽出する（Ｓ５０１）。処理ユニット１０１は、抽出された変数から１つの変数を選択し（Ｓ５０２）、その変数への書き込みが親状態遷移表（Parent：第１部分状態遷移表）において行なわれるか否かを判定する（Ｓ５０３）。例えば、図３に示す親状態遷移表（Parent）及び図５に示す子状態遷移表（Child）から抽出される変数Ａは、親状態遷移表（Parent）において書き込みが行われると判定される。前記変数への書き込みが親状態遷移表（Parent）で行われると判定されると（Ｓ５０３でＹＥＳ）、処理ユニット１０１は、この親状態遷移表（Parent）において書き込みが行われると判定された変数が子状態遷移表（Child：第２部分状態遷移表）において参照されるか否かを判定する（Ｓ５０４）。例えば、図５に示す子状態遷移表（Child）において前記変数Ａが参照されると判定される。
【００２４】
なお、前記変数への書き込みが親状態遷移表（Parent）において行なわれないと判定された場合（Ｓ５０３でＮＯ）、後述する図９に示す処理が実行される。また、親状態遷移表（Parent）において書き込みが行われると判定された変数（Ｓ５０３でＹＥＳ）が子状態遷移表（Child）において参照されないと判定されると（Ｓ５０４でＮＯ）、抽出された変数から次の変数が選択され（Ｓ５０２）、その選択された変数について、親状態遷移表（Parent）で書き込みが行われるか否か（Ｓ５０３）、子状態遷移表（Child）で参照されるか否か（Ｓ５０４）の各判定が行われる。
【００２５】
親状態遷移表（Parent）で書き込みが行われ（Ｓ５０３でＹＥＳ）、子状態遷移表（Child）で参照される（Ｓ５０４でＹＥＳ）変数について、次のような処理が実行される。
【００２６】
処理ユニット１０１は、その変数への書き込みが親状態遷移表（Parent）において行なわれる箇所を特定する（Ｓ５０５）。例えば、図３に示す親状態遷移表（Parent）では、「状態Ｓ01でイベントＥ00が発生して状態Ｓ01に遷移（維持）する」箇所が、変数Ａへの書き込み（Ａ＝１）が行われる箇所として特定される。処理ユニット１０１は、前記変数について特定された書き込み箇所から１つの書き込み箇所を選択し（Ｓ５０６）、その変数が子状態遷移表（Child）で参照される箇所を特定する（Ｓ５０７）。例えば、図５に示す子状態遷移表（Child）では、変数Ａは、「状態Ｓ12でイベントＥ12が発生して状態Ｓ12または状態Ｓ10に遷移」する箇所で、参照（Ａ＝＝０又はelseの判定）される。
【００２７】
このように参照箇所が特定されると、処理ユニット１０１は、特定された参照箇所から１つの参照箇所を選択し（Ｓ５０８）、その参照箇所と、前記書き込み箇所とに基づいて干渉テストケースを表す干渉テスト経路情報を抽出する（Ｓ５０９）。具体的には、親状態遷移表（Parent）の所定の初期状態から、遷移を開始して、その変数への書き込みを伴う状態遷移が行われた後に、その変数の書き込みが行われることなく、子状態遷移表（Child）に移行し、その変数を参照する処理を伴う状態遷移までの最短の経路を表す情報が干渉テスト経路（干渉テストケース）情報として抽出される。例えば、図３に示す親状態遷移表（Parent）で書き込みが行われる変数Ａが、図５に示す子状態遷移表（Child）で参照される場合、図１０に示すように、親状態遷移表（Parent）において初期状態Ｓ00から、順次状態遷移を開始し、状態Ｓ01でイベントＥ00が発生したときに変数Ａへの書き込み（Ａ＝１）を伴って状態Ｓ01に遷移した後、変数Ａへの書き込みが行われることなく、子状態遷移表（Child）に移行し、状態Ｓ12でイベントＥ12が発生したときに変数Ａを参照する処理を伴って状態Ｓ10に遷移するまでの最短の経路を表す情報が干渉テスト経路（干渉テストケース）情報として抽出される。
【００２８】
選択された１つの変数について、親状態遷移表（Parent）における全ての書き込み箇所及び子状態遷移表（Child）における全ての参照箇所について同様の処理が行われ（Ｓ５１０、Ｓ５１１）、対応する全ての干渉テストケースを表す干渉テストケース情報が抽出される（Ｓ５０９）。そして、その処理が終了すると（Ｓ５１０でＹＥＳ、Ｓ５１１でＹＥＳ）、処理ユニット１０１は、図９に示す処理を実行する。この図９に示す処理は、前記選択された１つの変数について、子状態遷移表（Child）において書き込みを伴う状態遷移と、親状態遷移（Parent）において参照する処理を伴う状態遷移を含む状態遷移経路が干渉テスト経路（干渉テストケース）として抽出される。
【００２９】
図９において、処理ユニット１０１は、選択された前記変数への書き込みが子状態遷移表（Child：第１部分状態遷移表）において行なわれるか否かを判定する（Ｓ５２０）。例えば、前記変数Ａは、図５に示す子状態遷移表（Child）において書き込みが行われると判定される。前記変数への書き込みが子状態遷移表（Child）で行われると判定されると（Ｓ５２０でＹＥＳ）、処理ユニット１０１は、この子状態遷移表（child）において書き込みが行われると判定された変数が親状態遷移表（Parent：第２部分状態遷移表）において参照されるか否かを判定する（Ｓ５２１）。例えば、図３に示す親状態遷移表（Parent）において前記変数Ａが参照されると判定される。
【００３０】
なお、前記変数への書き込みが子状態遷移表（Child）において行なわれないと判定された場合（Ｓ５２０でＮＯ）、後述する全ての変数についての処理がまだ終了していないことを確認して（Ｓ５２９でＮＯ）、次の変数についての処理に移行する（図８におけるＳ５０２）。また、子状態遷移表（Child）において書き込みが行われると判定された変数（Ｓ５２０でＹＥＳ）が親状態遷移表（Parent）において参照されないと判定された場合も（Ｓ５２１でＮＯ）、次の変数についての処理に移行する（図８におけるＳ５０２）。
【００３１】
子状態遷移表（Child）で書き込みが行われ（Ｓ５２０でＹＥＳ）、親状態遷移表（Parent）で参照される（Ｓ５２１でＹＥＳ）変数について、次のような処理が実行される。
【００３２】
処理ユニット１０１は、その変数への書き込みが子状態遷移表（Child）において行なわれる箇所を特定する（Ｓ５２２）。例えば、図５に示す子状態遷移表（Child）では、「状態Ｓ11でイベントＥ11が発生して状態Ｓ12に遷移する」箇所が、変数Ａへの書き込み（Ａ＝０）が行われる箇所として特定される。処理ユニット１０１は、前記変数について特定された書き込み箇所から１つの書き込み箇所を選択し（Ｓ５２３）、その変数が親状態遷移表（Parent）で参照される箇所を特定する（Ｓ５２４）。例えば、図３に示す親状態遷移表（Parent）では、変数Ａは、「状態Ｓ00でイベントＥ01が発生して状態Ｓ00または状態Ｓ01に遷移」する箇所で、参照（Ａ＝＝１又はelseの判定）される。
【００３３】
このように参照箇所が特定されると、処理ユニット１０１は、特定された参照箇所から１つの参照箇所を選択し（Ｓ５２５）、その参照箇所と、前記書き込み箇所とに基づいて干渉テストケースを表す干渉テスト経路情報を抽出する（Ｓ５２６）。具体的には、子状態遷移表（Child）の所定の初期状態から、遷移を開始して、その変数への書き込みを伴う状態遷移が行われた後に、その変数の書き込みが行われることなく、親状態遷移表（Parent）に移行し、その変数を参照する処理を伴う状態遷移までの最短の経路を表す情報が干渉テスト経路（干渉テストケース）情報として抽出される。例えば、図５に示す子状態遷移表（Child）で書き込みが行われる変数Ａが、図３に示す親状態遷移表（Parent）で参照される場合、図１１に示すように、子状態遷移表（Child）において初期状態Ｓ10から、順次状態遷移を開始し、状態Ｓ11でイベントＥ11が発生したときに変数Ａへの書き込み（Ａ＝０）を伴って状態Ｓ12に遷移した後、変数Ａへの書き込みが行われることなく、親状態遷移表（Parent）に移行し、状態Ｓ00でイベントＥ01が発生したときに変数Ａを参照する処理を伴って状態Ｓ01に遷移するまでの最短の経路を表す情報が干渉テスト経路（干渉テストケース）情報として抽出される。
【００３４】
選択された１つの変数について、子状態遷移表（Child）における全ての書き込み箇所及び親状態遷移表（Parent）における全ての参照箇所について同様の処理が行われ（Ｓ５２７、Ｓ５２８）、対応する全ての干渉テストケースを表す干渉テストケース情報が抽出される（Ｓ５２６）。そして、その処理が終了すると（Ｓ５２７でＹＥＳ、Ｓ５２８でＹＥＳ）、処理ユニット１０１は、全ての変数についての処理が終了したか否かを判定し（Ｓ５２９）、全ての変数についての処理が終了していなければ（Ｓ５２９でＮＯ）、処理ユニット１０１は、図８に示す処理に移行して、次の変数を選択し（Ｓ５０２）、上述したのと同様の処理を実行する。一方、親状態遷移表（Parent）及び子状態遷移表（Child）から抽出された全ての変数についての処理が終了していると（Ｓ５２９でＹＥＳ）、処理ユニット１０１は、干渉テストケース抽出処理を終了する。
【００３５】
上述したようにして（図７、図８、図９参照）、親状態遷移表（Parent）（図３参照）の情報から抽出された（図７に示すＳ２０参照）、親状態遷移モデルでの状態遷移の正当性を確認するためのテストの対象とすべき状態遷移経路（テスト経路）を表すテスト経路情報と、子状態遷移情報（Child）（図５参照）から抽出された（図７に示すＳ４０参照）、子状態遷移モデルでの状態遷移の正当性を確認するためのテストの対象とすべき状態遷移経路（テイスト経路）を表すテスト経路情報と、親状態遷移表（Parent）及び子状態遷移モデルから抽出された（図７に示すＳ５０及び図８、図９参照）、親状態遷移モデル及び子状態遷移モデルのうちの一方の状態遷移モデルで変数への書き込みを伴う状態遷移と、他方の状態遷移モデルでその変数を参照する処理を伴う状態遷移とを含む干渉テスト経路を表す干渉テスト経路情報とが、対象のシステムに対応する状態遷移モデルでの状態遷移の正当性を確認すべきテストの対象とすべきテスト経路を表すテスト経路情報として抽出される。
【００３６】
上述したような本発明の実施の形態に係るテストケース抽出装置では、階層関係にある親状態遷移モデル（親状態遷移表（Parent））と、子状態遷移モデル（子状態遷移表（Child））とを含む状態遷移モデルのテストケース（テスト経路）の抽出に際して、親状態遷移モデル（第１部分状態遷移モデル）において、初期状態から開始して、変数への書き込みを伴う状態遷移の後に、当該変数への書き込みが行われることなく、子状態遷移モデル（第２部分状態遷移モデル）に移行し、該子状態遷移モデルにおける前記変数を参照する処理を伴う状態遷移までの経路、及び子状態遷移モデル（第１部分状態遷移モデル）において、初期状態から開始して、変数への書き込みを伴う状態遷移の後に、当該変数への書き込みが行われることなく、親状態遷移モデル（第２部分状態遷移モデル）に移行し、該親状態遷移モデルにおける前記変数を参照する処理を伴う状態遷移までの経路のそれぞれがテスト経路として抽出される。このようなテスト経路を前記状態遷移モデルでの状態遷移の正当性を確認するためのテストの対象とすることにより、第１部分状態遷移モデル（親状態遷移モデル又はお子状態遷移モデル）で影響を受けた変数を第２部分状態遷移モデル（子状態遷移モデル又は親状態遷移モデル）で参照して状態遷移することの正当性を確認することができる。従って階層関係にある親状態遷移モデル及び子状態遷移モデルを含む状態遷移モデルでの状態遷移の正当性を精度良く確認可能なテストケースを得ることができる。
【００３７】
なお、上述した実施の形態では、親状態遷移表（Parent）の所定の初期状態から、遷移を開始して、その変数への書き込みを伴う状態遷移が行われた後に、その変数の書き込みが行われることなく、子状態遷移表（Child）に移行し、その変数を参照する処理を伴う状態遷移までの最短の経路を表す情報が干渉テスト経路（干渉テストケース）情報として抽出された。また、子状態遷移表（Child）の所定の初期状態から、遷移を開始して、その変数への書き込みを伴う状態遷移が行われた後に、その変数の書き込みが行われることなく、親状態遷移表（Parent）に移行し、その変数を参照する処理を伴う状態遷移までの最短の経路を表す情報が干渉テスト経路（干渉テストケース）情報として抽出された。しかし、干渉テスト経路として抽出される経路は、最短の経路でなくてもよい。
【００３８】
以上、本発明の実施の形態について説明したが、この実施は、一例として提示したものであり、発明の範囲を限定することは意図していない。上述したこれら新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施の形態は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明に含まれる。
【産業上の利用可能性】
【００３９】
本発明に係るテストケース抽出装置、テストケース抽出方法及びプログラムは、階層関係にある２つの部分的な状態遷移モデルを含む状態遷移モデルでの状態遷移の正当性を精度良く確認可能なテストケースを得ることができるという効果を有し、テストケース抽出装置、テストケース抽出方法、及び前記テストケース抽出装置での処理をコンピュータに行わせるためのプログラムとして有用である。
【符号の説明】
【００４０】
１０１  処理ユニット
１０２  メモリ
１０３  外部記憶装置
１０５  操作部
１０６  表示部
１０７  バス
【図１】
0006647729.tif 000002
【図２】
0006647729.tif 000003
【図３】
0006647729.tif 000004
【図４】
0006647729.tif 000005
【図５】
0006647729.tif 000006
【図６】
0006647729.tif 000007
【図７】
0006647729.tif 000008
【図８】
0006647729.tif 000009
【図９】
0006647729.tif 000010
【図１０】
0006647729.tif 000011
【図１１】
0006647729.tif 000012