(57)【要約】【課題】電子機器に対して、テストシナリオの実行順序がテスト結果に与える影響を容易に検証することを実現する。【解決手段】ホストコンピュータは、ｎ（ｎ≧２）種類のテストシナリオを順次ターゲットデバイスに実行させることを複数回行うことによってターゲットデバイスの動作検証を行う。ホストコンピュータは、ｋ（ｋ≧２）回目のテストのｍ番目に実行するテストシナリオを選択する際に、記憶装置に格納された（ｋ−１）回目以前のテストのテストシナリオの実行順序を記録したテストシナリオ選択履歴を参照して、（ｋ−１）回目以前のテストで実行されたテストシナリオの実行順序と異なるように、ｋ回目のテストの１番目から（ｍ−１）番目までにまだ実行していない（ｎ−（ｍ−１））種類のテストシナリオの中からｋ回目のテストのｍ番目として実行するテストシナリオを選択する。【選択図】図３
2009075704.tif 000002
【特許請求の範囲】
【請求項１】
ターゲットデバイスに所定の動作を実行させるためのｎ（ｎ≧２）種類のテストシナリオを順次実行するテストをｊ（ｊ≧２）回行うことによって、前記ターゲットデバイスの動作検証を行うテスト方法であって、
ｋ（ｊ≧ｋ≧２）回目のテストの１番目から（ｍ−１）（ｎ≧ｍ≧１）番目までにまだ実行していない（ｎ−（ｍ−１））種類のテストシナリオを検索し、
（ｋ−１）回目以前のテストのテストシナリオの実行順序を記録したテストシナリオ選択履歴を読み出し、
前記テストシナリオ選択履歴を参照して、（ｋ−１）回目以前のテストで実行されたテストシナリオの実行順序と異なるように、前記検索した（ｎ−（ｍ−１））種類のテストシナリオの中からｋ回目のテストのｍ番目として実行するテストシナリオを選択し、
前記ターゲットデバイス上で、前記選択したテストシナリオを実行し、
前記実行する処理後、ｋ回目のテストにおけるｍ番目のテストシナリオの実行履歴に関する前記テストシナリオ選択履歴を更新することを特徴するテスト方法。
【請求項２】
ｍ＝１の場合には、
前記検索する処理を実行せず、
前記選択する処理において、（ｋ−１）回目以前のテストで１番目に選択したことがないテストシナリオを、前記ｎ種類の全てのテストシナリオの中からｋ回目のテストの１番目に実行するテストシナリオとして選択することを特徴とする請求項１に記載のテスト方法。
【請求項３】
ｍ≧２の場合には、
前記選択する処理において、ｋ回目における（ｍ−１）番目からｍ番目までの実行順序が、（ｋ−１）回目以前のテストにおける（ｍ−１）番からｍ番目までの実行順序と異なるように、前記検索した（ｎ−（ｍ−１））種類のテストシナリオからｋ回目のテストのｍ番目に実行するテストシナリオを選択することを特徴とする請求項１または２に記載のテスト方法。
【請求項４】
ｍ≧３の場合には、
前記選択する処理において、ｋ回目における１番目からｍ番目までの実行順序が、（ｋ−１）回目以前のテストにおける１番目からｍ番目までの実行順序と異なるように、前記検索した（ｎ−（ｍ−１））種類のテストシナリオからｋ回目のテストのｍ番目に実行するテストシナリオを選択することを特徴とする請求項１から３のいずれか１項に記載のテスト方法。
【請求項５】
前記選択する処理において、前記検索した（ｎ−（ｍ−１））種類のテストシナリオの中に、ｋ回目のテストのｍ番目のテストシナリオとして選択される条件を満たすテストシナリオがない場合に、（ｋ−１）回目以前のテストにおける１番目からｍ番目までの実行順序のうちの、実行回数が最も少ない前記実行順序におけるｍ番目のテストシナリオを、ｋ回目のテストのｍ番目に実行するテストシナリオとして選択することを特徴とする請求項２から４のいずれか１項に記載のテスト方法。
【請求項６】
前記ターゲットデバイスの現在の状態を取得する処理をさらに行い、
各テストシナリオは、該テストシナリオを実行するための開始条件である前記ターゲットデバイスの所定の状態を示す開始条件状態と、テスト内容と、該テストシナリオの実行後における前記ターゲットデバイスの所定の状態を示す終了状態とを含み、
前記選択する処理において、テストシナリオを複数選択した際に、該複数のテストシナリオのうちの、当該テストシナリオの前記開始条件状態が、前記ターゲットデバイスの現在の状態と一致するテストシナリオをｋ回目のテストのｍ番目に実行するテストシナリオに決定することを特徴とする請求項１から５のいずれか１項に記載のテスト方法。
【請求項７】
前記選択する処理において、前記複数のテストシナリオの中に、前記ターゲットデバイスの現在の状態と一致する開始条件状態を有するテストシナリオがないときに、該複数のテストシナリオから任意のテストシナリオをｋ回目のテストのｍ番目に実行するテストシナリオに決定し、
前記実行する処理において、前記ターゲットデバイスの現在の状態から、決定された前記テストシナリオの開始条件状態に前記ターゲットデバイスの状態を遷移させてから、該テストシナリオを実行することを特徴とする請求項６に記載のテスト方法。
【請求項８】
前記ターゲットデバイスの状態を遷移させる際に、前記ターゲットデバイスの現在の状態から所定の中間状態に、そして該中間状態から前記テストシナリオの開始条件状態に前記ターゲットデバイスの状態を遷移させることを特徴とする請求項７に記載のテスト方法。
【請求項９】
ターゲットデバイスに所定の動作を実行させるためのｎ（ｎ≧２）種類のテストシナリオを順次実行するテストをｊ（ｊ≧２）回行うことによって、前記ターゲットデバイスの動作検証を行うためのプログラムであって、
記憶部に対して、ｋ（ｊ≧ｋ≧２）回目のテストの１番目から（ｍ−１）（ｎ≧ｍ≧１）番目までにまだ実行していない（ｎ−（ｍ−１））種類のテストシナリオを検索するステップと、
前記記憶部から、（ｋ−１）回目以前のテストのテストシナリオの実行順序を記録したテストシナリオ選択履歴を読み出す処理と、
前記テストシナリオ選択履歴を参照して、（ｋ−１）回目以前のテストで実行されたテストシナリオの実行順序と異なるように、前記検索した（ｎ−（ｍ−１））種類のテストシナリオの中からｋ回目のテストのｍ番目として実行するテストシナリオを選択する処理と、
前記ターゲットデバイスに、前記選択したテストシナリオを実行させる処理と、
前記実行する処理後、ｋ回目のテストにおけるｍ番目のテストシナリオの実行履歴に関する前記テストシナリオ選択履歴を更新する処理とをコンピュータに実行させることを特徴するプログラム。
【請求項１０】
ｍ＝１の場合には、
前記検索する処理を実行せず、
前記選択する処理において、（ｋ−１）回目以前のテストで１番目に選択したことがないテストシナリオを、前記ｎ種類の全てのテストシナリオの中からｋ回目のテストの１番目に実行するテストシナリオとして選択するようにコンピュータを実行させることを特徴とする請求項９に記載のプログラム。
【請求項１１】
ｍ≧２の場合には、
前記選択する処理において、ｋ回目における（ｍ−１）番目からｍ番目までの実行順序が、（ｋ−１）回目以前のテストにおける（ｍ−１）番からｍ番目までの実行順序と異なるように、前記検索した（ｎ−（ｍ−１））種類のテストシナリオからｋ回目のテストのｍ番目に実行するテストシナリオを選択するようにコンピュータを実行させることを特徴とする請求項９または１０に記載のプログラム。
【請求項１２】
ｍ≧３の場合には、
前記選択する処理において、ｋ回目における１番目からｍ番目までの実行順序が、（ｋ−１）回目以前のテストにおける１番目からｍ番目までの実行順序と異なるように、前記検索した（ｎ−（ｍ−１））種類のテストシナリオからｋ回目のテストのｍ番目に実行するテストシナリオを選択するようにコンピュータを実行させることを特徴とする請求項９から１１のいずれか１項に記載のプログラム。
【請求項１３】
前記選択する処理において、前記検索した（ｎ−（ｍ−１））種類のテストシナリオの中に、ｋ回目のテストのｍ番目のテストシナリオとして選択される条件を満たすテストシナリオがない場合に、（ｋ−１）回目以前のテストにおける１番目からｍ番目までの実行順序のうちの、実行回数が最も少ない前記実行順序におけるｍ番目のテストシナリオを、ｋ回目のテストのｍ番目に実行するテストシナリオとして選択するようにコンピュータを実行させることを特徴とする請求項１０から１２のいずれか１項に記載のプログラム。
【請求項１４】
前記ターゲットデバイスの現在の状態を取得する処理をさらに行い、
各テストシナリオは、該テストシナリオを実行するための開始条件である前記ターゲットデバイスの所定の状態を示す開始条件状態と、テスト内容と、該テストシナリオの実行後における前記ターゲットデバイスの所定の状態を示す終了状態とを含み、
前記選択する処理において、テストシナリオを複数選択した際に、該複数のテストシナリオのうちの、当該テストシナリオの前記開始条件状態が、前記ターゲットデバイスの現在の状態と一致するテストシナリオをｋ回目のテストのｍ番目に実行するテストシナリオに決定するようにコンピュータを実行させることを特徴とする請求項９から１３のいずれか１項に記載のプログラム。
【請求項１５】
前記選択する処理において、前記複数のテストシナリオの中に、前記ターゲットデバイスの現在の状態と一致する開始条件状態を有するテストシナリオがないときに、該複数のテストシナリオから任意のテストシナリオをｋ回目のテストのｍ番目に実行するテストシナリオに決定し、
前記実行する処理において、前記ターゲットデバイスの現在の状態から、決定された前記テストシナリオの開始条件状態に前記ターゲットデバイスの状態を遷移させてから、該テストシナリオを実行するようにコンピュータを実行させることを特徴とする請求項１４に記載のプログラム。
【請求項１６】
前記ターゲットデバイスの状態を遷移させる際に、前記ターゲットデバイスの現在の状態から所定の中間状態に、そして該中間状態から前記テストシナリオの開始条件状態に前記ターゲットデバイスの状態を遷移させるようにコンピュータを実行させることを特徴とする請求項１５に記載のプログラム。
【請求項１７】
ターゲットデバイスに所定の動作を実行させるためのｎ（ｎ≧２）種類のテストシナリオを順次実行するテストをｊ（ｊ≧２）回行うことによって、前記ターゲットデバイスの動作検証を行うテスト装置であって、
前記ターゲットデバイスと接続可能な通信部と、
前記ｎ種類のテストシナリオと、（ｋ−１）（ｊ≧ｋ≧２）回目以前のテストのテストシナリオの実行順序を記録したテストシナリオ選択履歴とを格納する記憶部と、
ｋ（ｊ≧ｋ≧２）回目のテストの１番目から（ｍ−１）（ｎ≧ｍ≧１）番目までにまだ実行していない（ｎ−（ｍ−１））種類のテストシナリオを検索し、前記テストシナリオ選択履歴を参照して、（ｋ−１）回目以前のテストで実行されたテストシナリオの実行順序と異なるように、前記検索した（ｎ−（ｍ−１））種類のテストシナリオの中からｋ回目のテストのｍ番目として実行するテストシナリオを選択し、該選択したテストシナリオを前記通信部を経由して前記ターゲットデバイスに実行させ、前記実行する処理後、ｋ回目のテストにおけるｍ番目のテストシナリオの実行履歴に関する記憶部内の前記テストシナリオ選択履歴を更新するデータ処理部とを備えることを特徴とするテスト装置。
【請求項１８】
前記データ処理部は、ｍ＝１の場合には、前記検索する処理を実行せず、前記選択する処理において、（ｋ−１）回目以前のテストで１番目に選択したことがないテストシナリオを、前記ｎ種類の全てのテストシナリオの中からｋ回目のテストの１番目に実行するテストシナリオとして選択することを特徴とする請求項１７に記載のテスト装置。
【請求項１９】
各テストシナリオは、該テストシナリオを実行するための開始条件である前記ターゲットデバイスの所定の状態を示す開始条件状態と、テスト内容と、該テストシナリオの実行後における前記ターゲットデバイスの所定の状態を示す終了状態とを含み、
前記データ処理部は、前記ターゲットデバイスの現在の状態を取得する処理をさらに行い、前記選択する処理において、テストシナリオを複数選択した際に、該複数のテストシナリオのうちの、当該テストシナリオの前記開始条件状態が、前記ターゲットデバイスの現在の状態と一致するテストシナリオをｋ回目のテストのｍ番目に実行するテストシナリオに決定することを特徴とする請求項１７または１８に記載のテスト装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器特に複数の制御対象装置を含む電子機器をテストする技術に関する。
【背景技術】
【０００２】
カーオーディオ装置などの電子機器には、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）プレイヤーやＭＤ（ＭｉｎｉＤｉｓｃ）プレイヤー等、複数の制御対象装置を搭載したものがある。このように、複数の制御対象装置を含む電子機器が製造された場合、各制御対象装置における各種の動作が正常に行われるか否かを当該電子機器を出荷する前にテストする必要がある。以下では、テストの対象となる電子機器をターゲットまたはターゲットデバイスと呼ぶ。
【０００３】
複数の制御対象装置を含むターゲットデバイスをテストする場合、ユーザが操作する可能性のある全ての操作についてテストしなければならない。このため、ターゲットに含まれる制御対象装置の数が多くなるにしたがって、テストすべき検査項目は膨大になってしまい、実際には、検査に一ヶ月もかかる場合すら見受けられる。
【０００４】
例えば、ターゲットの電源をオフの状態にする場合をテストする場合、その前提として、当該ターゲットの電源はオン状態であることが前提となる。同様に、ユーザは制御対象装置を構成するＣＤプレイヤーのＣＤを再生状態から巻き戻し状態にしたり、早送り状態にしたりする場合もある。一方、ユーザはＣＤの聴取を止めてＭＤ等に切り替える場合等も有り得る。ユーザがＣＤプレイヤーからＭＤプレイヤー等に制御対象装置を切り替えた場合、切り替えられた制御対象装置毎に再生、一時停止、停止、早送り、巻き戻し等の機能を選択する可能性を考慮しておかなければならない。
【０００５】
このように、制御対象装置が複数の機能を有している場合、切り替え前後の制御対象装置の数及び各制御対象装置の機能に応じた数だけの機能をテストする必要がある。したがって、ターゲットに含まれる制御対象装置の数並びに各制御対象装置の機能の数が多くなればなるほど、テストの対象となる機能は急激に増大する。
【０００６】
通常、複数の制御対象装置を含むターゲットのテストは、各制御対象装置の選択前後における機能に対応したテストシナリオを記述したプログラムをコンピュータによって実行することによって行われている。この場合、各テストシナリオには、実行前の制御対象装置の機能における所定の状態を開始条件として、実行後の状態を終了状態としており、各テストシナリオ毎に異なるテスト手順が記述されている。
【０００７】
電子機器に含まれる制御対象装置の数の増大並びに機能の増大に伴って、実行するべきテストシナリオの数が膨大になってきているため、ターゲットのテストはコンピュータを使って自動的に行われるようになってきている。また、不具合の修正が他の不具合の原因となる場合があるため、発見された不具合をすべて修正する前に、不具合修正と平行して自動化されたテストを繰り返し実施し、早期に新たな不具合を発見することで修正にかかる時間を削減することも行われている。
【０００８】
テストを繰り返し実行する際に、１つの先行テストシナリオから後続する次のテストシナリオに自動的に移行する制御がなされるが、先行テストシナリオによるターゲットの終了状態と次のテストシナリオによるターゲットの開始条件状態とが相違している場合、先行テストシナリオの終了状態から次のテストシナリオの開始条件状態にターゲットを遷移させる状態遷移手続きを行う必要がある。
【０００９】
制御対象装置の数が多く、かつ各制御対象装置が多機能である場合において効率的にテストする手法が種々提案されている。例えば、特許文献１には、遷移元の状態から遷移先の状態へ遷移する際に、予め決められた中間状態を規定しておき、遷移元の状態を一旦中間状態に遷移させた後、中間状態から遷移先の状態に遷移する技術が開示されている。この技術は、中間状態を経て状態遷移を行うことにより、状態遷移手続きの定義数を減少させ、電子機器のテストを容易に行うことができる。図９および図１０を参照してこの技術の要旨を説明する。
【００１０】
図９は、特許文献１の図２に対応し、特許文献１の技術に基づくテストシステムを示す。図１０は、特許文献１の図３に対応し、図９に示すテストシステムにてテストを行うプログラムを示す。図９に示すテストシステムにおいて、ホスト２０は、ターゲット２１に対してテストを行うのに際し、ホスト２０の状態比較部３０１は、現在状態と実行するテストシナリオの開始条件状態を読み込み（Ｓｔ１、Ｓｔ２）、読み込んだ２つの状態を比較する（Ｓｔ３）。２つの状態が一致している場合には、ホスト２０のテスト実行部３０２はテストシナリオのテスト手順を実行し、終了時にはターゲットをそのテストシナリオの終了状態におく（Ｓｔ３：一致、Ｓｔ４）。一方、ステップＳｔ３において、２つの状態が異なる場合には、状態比較部３０１は、現在状態を中間状態に遷移させる中間状態遷移手続きを実行し、中間状態にする第１の遷移を行った後、中間状態から実行するテストシナリオの開始条件状態に遷移させる自状態遷移手続きを実行する（Ｓｔ３：異なる、Ｓｔ６、Ｓｔ７）。その後、テスト実行部３０２は、テストシナリオのテスト手順を実行し、終了時にターゲットをそのテストシナリオの終了状態におく（Ｓｔ４）。そして、次のテストシナリオがあれば（Ｓｔ５：あり）、ホスト２０は、次のテストシナリオに対してステップＳｔ１およびステップＳｔ２からの処理を行い、次のテストシナリオがなくなると（Ｓｔ５：なし）、テストを終了する。
【００１１】
特許文献１の技術は、中間状態を設け、ターゲットの状態を遷移元の状態から遷移先の状態に遷移する際に、遷移元の状態から中間状態に遷移し、その後中間状態から遷移先の状態に遷移するようにし、遷移元の状態から遷移先の状態に直接遷移する手法より、定義する状態遷移手続きの数を減らすことができる。
【特許文献１】特開２００５−３８２５３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
ところで、例えば第１のテストシナリオがＣＤプレイヤーに対して種々のテストを行うものであり、第２のテストシナリオがＭＤプレイヤーに対して種々のテストを行うものである場合、第１のテストシナリオ、第２のテストシナリオの順でテストを行った結果が正常であっても、第２のテストシナリオ、第１のテストシナリオの順でテストを行った結果が正常であるとは限らない。すなわち、テストシナリオの実行順序がテストの結果に影響を与えるものであると考えられる。
【００１３】
特許文献１に記載の技術は、テストシナリオを選択する方法に関するものではないため、特許文献１に記載の内容からは、テストシナリオの実行順序は、常に同一になると考えるのが普通である。これでは、テストシナリオの実行順序がテストの結果に与える影響を検証することができない。第２のテストシナリオ、第１のテストシナリオの順での実行もカバーできるように、第１のテストシナリオと同一のテストシナリオを第３のテストシナリオとして作成し、第１のテストシナリオ、第２のテストシナリオ、第３のテストシナリオの実行順を規定してテストする手法も考えられるが、電子機器に含まれる制御対象装置の数および各制御対象装置の機能が夥しく存在する背景においては、テストシナリオの数が膨大になり、テストシナリオの実行順序も複雑になる問題があり、困難である。
【課題を解決するための手段】
【００１４】
本発明の一つの態様は、ターゲットデバイスに所定の動作を実行させるためのｎ（ｎ≧２）種類のテストシナリオを順次実行するテストをｊ（ｊ≧２）回行うことによって、前記ターゲットデバイスの動作検証を行うテスト方法である。このテスト方法は、ｋ（ｊ≧ｋ≧２）回目のテストの１番目から（ｍ−１）（ｎ≧ｍ≧１）番目までにまだ実行していない（ｎ−（ｍ−１））種類のテストシナリオを検索し、（ｋ−１）回目以前のテストのテストシナリオの実行順序を記録したテストシナリオ選択履歴を読み出し、該テストシナリオ選択履歴を参照して、（ｋ−１）回目以前のテストで実行されたテストシナリオの実行順序と異なるように、検索した（ｎ−（ｍ−１））種類のテストシナリオの中からｋ回目のテストのｍ番目として実行するテストシナリオを選択し、ターゲットデバイス上で、選択したテストシナリオを実行し、実行する処理後、ｋ回目のテストにおけるｍ番目のテストシナリオの実行履歴に関するテストシナリオ選択履歴を更新する。
【００１５】
なお、上記態様のテストを装置やシステム、プログラムとして表現したものも、本発明の態様として有効である。
【発明の効果】
【００１６】
本発明にかかる技術によれば、電子機器に対して、テストシナリオの実行順序がテスト結果に与える影響を容易に検証することができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して本発明の実施の形態について説明する。
図１は、本発明の実施の形態にかかるテストシステム１００を示す。テストシステム１００は、テスト対象となるターゲットデバイス１８０と、ターゲットデバイス１８０を自動テストするホストコンピュータ１１０を有する。
【００１８】
ターゲットデバイス１８０は、例えばカーオーディオ装置であり、ＣＤプレイヤーやＭＤプレイヤーなどの複数の（図１では１つのみを示す）制御対象装置１８３と、ホストコンピュータ１１０と通信しデータの送受信を行う通信部１８２と、通信部１８２および各制御対象装置１８３の制御、および通信部１８２が受信したデータに基づいた処理の実行などを行うＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｓｅｓｓｉｎｇ  Ｕｎｉｔ）１８１とを備え、通信部１８２および制御対象装置１８３は、バス１８４を介してＣＰＵ１８１と接続されている。
【００１９】
ホストコンピュータ１１０は、テストシナリオ（以下単にシナリオともいう）やテストの結果などを格納する記憶装置１１３と、記憶装置１１３に格納されたテストシナリオなどを読み出してテストを実行するＣＰＵ１１１と、ディスプレイなどテストの実行結果を表示する実行結果表示部１１５と、キーボードなどの入力装置１１４と、ターゲットデバイス１８０と通信しデータの送受信を行う通信部１１６とを備え、ＣＰＵ１１１は、バス１１２を介して記憶装置１１３、実行結果表示部１１５、入力装置１１４、通信部１１６と接続されており、これらの制御も行う。なお、ＣＰＵ１１１は、請求項でいうデータ処理部の機能を担う。
【００２０】
なお、ホストコンピュータ１１０の通信部１１６と、ターゲットデバイス１８０の通信部１８２は、通信路１７０により接続されている。各通信部と通信路１７０は、ＲＳ−２３２Ｃのようなシリアルインターフェイスによる接続であってもよいし、エミュレータによる接続であってもよい。
【００２１】
以下において、本発明の主旨と直接関連する部分についてのみ図示および説明し、ホストコンピュータやターゲットデバイスには通常備えられているが、本発明の主旨と直接関連しない部分については図示および説明を省略する。
【００２２】
図２は、図１に示すテストシステム１００を機能的に表現したものである。図２に示す様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００２３】
図２に示すように、ターゲットデバイス１８０は、テスト実行部１９０と通信部１８２を有する。テスト実行部１９０は、通信部１８２によりホストコンピュータ１１０から受信したデータが示す動作を実行し、その実行結果を示すデータは通信部１８２によりホストコンピュータ１１０に送信される。
【００２４】
ホストコンピュータ１１０において記憶装置１１３により、状態遷移データ１２１、テストシナリオ１２４、シナリオ選択履歴１２５、実行結果１２６、期待値１２７が記憶されている。また、ホストコンピュータ１１０は、状態比較部１３０と、テスト実行部１４０と、実行結果比較部１５０と、実行結果表示部１１５と、通信部１１６を備えている。
【００２５】
テストシナリオ１２４はｎ（ｎ≧２）種類あり、予めホストコンピュータ１１０に入力され記憶装置１１３に記憶されたものである。なお、各テストシナリオは、開始条件状態と、終了状態と、テスト手順とから構成され、開始条件状態は、該テストシナリオの実行開始の条件である、ターゲットデバイス１８０における制御対象装置１８３の所定の状態を示すものであり、終了状態は、当該テストシナリオが実行された後の制御対象装置１８３の状態を示すものである。
【００２６】
状態遷移データ１２１は、予めホストコンピュータ１１０に入力され記憶装置１１３に記憶されたものであり、中間状態遷手続き１２２と自状態遷移手続き１２３が含まれている。中間状態遷移手続き１２２は、ターゲットデバイス１８０の種々の終了状態について、該終了状態から、この終了状態に対して予め定められた中間状態に遷移する手続きを定義したものである。自状態遷移手続き１２３は、種々の中間状態について、該中間状態から、該中間状態と異なる開始条件状態に遷移する手続きを定義したものである。
【００２７】
実行結果１２６は、ターゲットデバイス１８０におけるテスト実行部１９０がテストシナリオを実行した結果を示すデータであり、通信部１８２を介してホストコンピュータ１１０に送信され、記憶装置１１３に記憶されるものである。
【００２８】
期待値１２７は、テストシナリオ１２４に含まれるテスト手順が正常に実行された場合に対して想定された実行結果を示すものであり、予め記憶装置１１３に記憶されている。
【００２９】
本実施の形態のテストシステム１００において、ｎ種類のテストシナリオ１２４がｊ（ｊ≧２）回繰り返し実行され、各回の実行の順序は状態比較部１３０により決められる。シナリオ選択履歴１２５は、過去のテストにおいて状態比較部１３０により決められた実行順序を示すものであり、状態比較部１３０により記憶装置１１３に格納される。例えば、テストシナリオ１２４としてテストシナリオＡ、Ｂがあり、前々回と前回の実行順序がそれぞれ「Ａ−Ｂ−Ｃ」と「Ｂ−Ａ−Ｃ」である場合、シナリオ選択履歴１２５は、「Ａ−Ｂ−Ｃ」と「Ｂ−Ａ−Ｃ」を示すデータになる。
【００３０】
図３を参照して、ホストコンピュータ１１０における各機能ブロックが行う処理を説明する。
図３は、ターゲットデバイス１８０に対してｋ（ｊ≧ｋ≧２）回目のテストを行うときにホストコンピュータ１１０における処理を示すフローチャートである。ホストコンピュータ１１０は、テストに際し、まず、ターゲットデバイス１８０の現在状態を読み込む（Ｓ１０）。具体的には、状態比較部１３０は、ターゲットデバイス１８０の現在の状態を取得するための手続きを示すデータを作成してテスト実行部１４０に出力し、テスト実行部１４０は、通信部１１６を介してこのデータをターゲットデバイス１８０に送信する。ターゲットデバイス１８０側において、テスト実行部１９０は、通信部１８２を介して受信したデータが示す手続きを実行してターゲットデバイス１８０の現在の状態を取得し、それをホストコンピュータ１１０に返送する。テスト実行部１４０は通信部１１６を介してターゲットデバイス１８０から送信されてきたターゲットデバイス１８０の現在の状態を状態比較部１３０に出力し、これをもって、状態比較部１３０は、ターゲットデバイス１８０の現在の状態を取得できたことになる。なお、ホストコンピュータ１１０とターゲットデバイス１８０間のデータのやり取りは通信部１１６と通信部１８２を介して行われるものであり、以下の説明においてこの点を省略する。
【００３１】
ステップＳ１０の後、状態比較部１３０が今回実行するテストシナリオを選択するが、ここで、まず今回のテストで最初に実行されるテストシナリオの選択について説明する。
【００３２】
状態比較部１３０は、今回のテストにおけるテストシナリオの実行順序を決めるために、過去のテストすなわち（ｋ−１）回目以前のテストで実行されたことのない実行順序（未実行シナリオ選択順序）があるか否かを検索する（Ｓ２０）。本実施の形態において、状態比較部１３０は、過去に行ったテストにおけるテストシナリオの実行順序と異なる実行順序になるようにテストシナリオの実行順序を決めるものであり、今回のテストの開始直後におけるこのステップでは、複数のテストシナリオ１２４のうち、過去のテストにおいて最初に実行されたことがないテストシナリオがあるか否かを検索する。
【００３３】
複数のテストシナリオのうち、過去のテストにおいて最初に実行されたことがないテストシナリオがあれば（Ｓ２０：Ｙｅｓ）、状態比較部１３０は、当該テストシナリオを、今回のテストにて最初に実行されるテストシナリオの候補として選択する。前述したように、過去のテストにおけるテストシナリオの実行順序を示すシナリオ選択履歴１２５が記憶装置１１３に記憶されているため、状態比較部１３０は、シナリオ選択履歴１２５を参照して、過去の各回のテストにおいて最初に実行されたことがないテストシナリオを候補として選択する（Ｓ２０：Ｙｅｓ、Ｓ２４）。
【００３４】
一方、テストシナリオ１２４に含まれる各シナリオのいずれも、過去各回のテストにおいて最初に実行されたことがある場合には（Ｓ２０：Ｎｏ）、状態比較部１３０は、過去各回のテストにおいて最初に実行された回数が最も少ないテストシナリオを候補として選択する（Ｓ２６）。たとえば、前述した３つのシナリオＡ、Ｂ、Ｃの例では、シナリオ選択履歴１２５が「Ａ−Ｂ−Ｃ」と「Ｂ−Ａ−Ｃ」を示すデータであり、過去に「Ａ−Ｂ−Ｃ」と、「Ａ−Ｃ−Ｂ」と、「Ｂ−Ａ−Ｃ」の実行順序によるテストがあったことを示す場合に、状態比較部１３０は、最初に実行されたことがないシナリオＣを候補として選択する。一方、シナリオ選択履歴１２５が「Ａ−Ｂ−Ｃ」、「Ａ−Ｃ−Ｂ」、「Ｂ−Ａ−Ｃ」、「Ｃ−Ａ−Ｂ」を示すデータである場合には、シナリオＢとシナリオＣが最初に実行された回数が共に最も少ない「１回」であるため、状態比較部１３０は、シナリオＢとシナリオＣを候補として選択する。
【００３５】
次いで、状態比較部１３０は、ステップＳ２４またはステップＳ２６において選択した候補であるテストシナリオに定義された開始条件状態と、ステップＳ１０にて取得したターゲットデバイス１８０の現在の状態と比較する（Ｓ３０）。比較の結果、候補となるテストシナリオのうち、開始条件状態がターゲットデバイス１８０の現在の状態と一致するテストシナリオがある場合（Ｓ３０：Ｙｅｓ）、状態比較部１３０は、実行するテストシナリオとして該テストシナリオを選択してテスト実行部１４０に出力する。テスト実行部１４０は、状態比較部１３０が選択したテストシナリオにより定義されたテスト手順をターゲットデバイス１８０に実行させるためのデータを作成してターゲットデバイス１８０に送信する（Ｓ４０）。
【００３６】
一方、ステップＳ３０における比較の結果、候補となるテストシナリオのうち、開始条件状態がターゲットデバイス１８０の現在の状態と一致するテストシナリオがない場合には（Ｓ３０：Ｎｏ）、状態比較部１３０は、候補のテストシナリオから任意の１つのシナリオを選択する（Ｓ３２）。そして、状態比較部１３０は、ターゲットデバイス１８０の現在の状態から中間状態に遷移する手続きを定義した中間状態手続き１２２、およびステップステップ中間状態からステップＳ３２にて選択したテストシナリオの開始条件状態に遷移する手続きを定義した自状態遷移手続き１２３を記憶装置１１３から読み出して、ステップ３２にて選択したテストシナリオと共にテスト実行部１４０に出力する（Ｓ３４、Ｓ３６）。テスト実行部１４０は、状態比較部１３０からの中間状態遷移手続き、自状態遷移手続き、およびテストシナリオをターゲットデバイス１８０に実行させるためのデータを作成してターゲットデバイス１８０に送信する（Ｓ４０）。
【００３７】
ターゲットデバイス１８０において、テスト実行部１９０は、ホストコンピュータ１１０のテスト実行部１４０が送信してきたデータに応じた動作をする。具体的には、ホストコンピュータ１１０からテストシナリオが送信されてきた場合にはそのテストシナリオを実行する一方、ホストコンピュータ１１０から中間状態遷移手続き、自状態遷移手続き、およびテストシナリオが送信されてきた場合には、中間状態遷移手続き、自状態遷移手続き、テストシナリオの順で実行する。なお、ターゲットデバイス１８０は、実行の結果をホストコンピュータ１１０に返送する。
【００３８】
ホストコンピュータ１１０において、テスト実行部１４０は、ターゲットデバイス１８０からの実行結果を記憶装置１１３に出力し実行結果１２６に追加させる共に、状態比較部１３０にも出力する。状態比較部１３０は、テスト実行部１４０から受信した実行結果を受信すると、ステップＳ３０またはステップＳ３２で選択したテストシナリオを記憶装置１１３に出力し、今回のテストのシナリオ選択履歴に追加させる（Ｓ５０）。
【００３９】
そして、状態比較部１３０は、ｎ種類のテストシナリオ１２４のうち、今回のテストでまだ実行していないテストシナリオがあるか否かを検索し、今回のテストで未実行のシナリオがある場合には、ステップＳ２０に戻る一方（Ｓ６０：Ｙｅｓ、Ｓ２０〜）、未実行のシナリオがなければ今回のテストを終了する（Ｓ６０：Ｎｏ）。
【００４０】
今までの説明は、今回のテストにおいて最初に実行されるテストシナリオの選択およびその実行に関するものであり、以下最初のテストシナリオの実行後に、次のテストシナリオの選択からの処理（Ｓ６０：Ｙｅｓ、Ｓ２０〜）を説明する。
【００４１】
ステップＳ２０に戻り、状態比較部１３０は過去のテストで実行されたことのない実行順序すなわち未実行順序があるか否かを検索する。説明の便宜のため、各回のテストにおいて、最初に実行されるテストシナリオを１番目のテストシナリオといい、後に実行されるテストシナリオをその実行の順番に応じてｍ（ｎ≧ｍ≧２）個目のテストシナリオという。この場合、未実行順序は、今回のテストにおける１個目のテストシナリオから次に実行されるｍ番目のテストシナリオまでの可能な順序のうち、シナリオ選択履歴１２５に含まれていない、１個目のテストシナリオからｍ番目のテストシナリオまでの順序である。
【００４２】
たとえば、今回のテストにおいて、テストシナリオＡ、Ｂ、ＣのうちのシナリオＣが最初に選択され実行された場合、２個目のテストシナリオの選択に際して、「１個目のテストシナリオから次に実行される２個目のテストシナリオまでの可能な順序」は、「Ｃ−Ａ」または「Ｃ−Ｂ」となる。このときのシナリオ選択履歴１２５が、「Ａ−Ｂ−Ｃ」、「Ａ−Ｃ−Ｂ」、「Ｂ−Ａ−Ｃ」、「Ｃ−Ａ−Ｂ」である場合には、シナリオ選択履歴１２５には、１個目のテストシナリオから２個目のテストシナリオまでの順序として「Ａ−Ｂ」、「Ａ−Ｃ」、「Ｂ−Ａ」、「Ｃ−Ａ」が含まれることとなる。そのため、未実行順序は、シナリオ選択履歴１２５に含まれていない「Ｃ−Ｂ」となる。一方、このときのシナリオ選択履歴１２５が、「Ａ−Ｂ−Ｃ」、「Ｃ−Ｂ−Ａ」、「Ｂ−Ａ−Ｃ」、「Ｃ−Ａ−Ｂ」である場合には、シナリオ選択履歴１２５には、１個目のテストシナリオから２個目のテストシナリオまでの順序として「Ａ−Ｂ」、「Ｃ−Ｂ」、「Ｂ−Ａ」、「Ｃ−Ａ」が含まれることとなる。そのため、「未実行順序」がないことになる。
【００４３】
状態比較部１３０は、このようにして未実行順序があるか否かを検索し、未実行順序がある場合には該未実行順序通りに、次に実行すべきテストシナリオを候補として選択する（Ｓ２０：Ｙｅｓ、Ｓ２４）。一方、未実行順序が無い場合には、状態比較部１３０は、今回のテストにおける１個目のテストシナリオから次に実行されるｎ個目のテストシナリオまでの可能な順序のうち、過去のテストで実行された回数が最も少ない順序において次に実行されたテストシナリオを候補として選択する（Ｓ２０：Ｎｏ、Ｓ２６）。
【００４４】
次に実行されるテストシナリオの候補が選択された後の処理（Ｓ３０〜）は、ターゲットデバイス１８０の現在の状態が、直前のテストシナリオの実行後の状態である点を除き、今回のテストで最初に実行されるテストシナリオの候補が選択された後の処理と同じであるため、これ以降の処理について説明を省略する。
【００４５】
なお、図３のフローチャートに示していないが、ホストコンピュータ１１０の実行結果比較部１５０は、各テストシナリオが実行される度に、記憶装置１１３に追加された実行結果と、当該テストシナリオの期待値１２７とを比較し、その比較結果を実行結果表示部１１５に表示させる。
【００４６】
以下、具体例を用いて本発明に実施の形態のテストシステム１００によるテストをさらに詳しく説明する。
図４は、ターゲットデバイス１８０の可能な状態およびターゲットデバイス１８０に対して行うテストの内容の例を示す。図示の例では、ターゲットデバイス１８０は、「ＣＤ状態」と「ＭＤ状態」の２つの状態を有し、テスト内容は、このターゲットデバイス１８０に対して「ＣＤ」ボタンの押下と、「ＭＤ」ボタンの押下のテストである。以下の説明および図示において、単に「ＣＤ」と表記したときには「ＣＤ」ボタンの押下を示し、単に「ＭＤ」で表記したときには「ＭＤ」ボタンの押下を表す。
【００４７】
図５は、図４に示すテスト内容に対して設計されたテストシナリオを示す。本実施の形態では例としてｎ＝４種類のテストシナリオがある。テストシナリオ１は、「ＣＤ状態」において「ＣＤ」ボタンの押下を実行するためのシナリオであり、図示のように、開始条件状態、テスト手順、終了状態について、それぞれ「ＣＤ状態」、「ＣＤ」ボタンの押下、「ＣＤ」状態を定義している。
【００４８】
同様に、テストシナリオ２は、「ＣＤ状態」において「ＭＤ」ボタンを実行するためのシナリオであり、テストシナリオ３は、「ＭＤ状態」において「ＣＤ」ボタンを押下するためのシナリオであり、テストシナリオ４は、「ＭＤ状態」において「ＭＤ」ボタンを押下ためのシナリオである。
【００４９】
図６は、状態遷移データ１２１の例を示す。この具体例では、中間状態が「ＣＤ状態」であり、状態遷移データ１２１は、２つの中間状態遷移手続きと２つの自状態遷移手続きを含む。
【００５０】
中間状態手続き１は、「ＣＤ状態」に対する中間状態遷移手続きであり、「ＣＤ状態」から「ＣＤ状態」への遷移となるため、遷移に関する実行内容は「なし」である
【００５１】
中間状態手続き２は、「ＭＤ状態」に対する中間状態遷移手続きであり、「ＭＤ状態」となる開始条件状態に対して、遷移に関する実行内容は「ＣＤ」（［ＣＤ］ボタンの押下）である。
【００５２】
自状態遷移手続き１は、中間状態から「ＣＤ状態」に遷移する手続きであり、「ＣＤ状態」から「ＣＤ状態」への遷移となるため、遷移に関する実行内容は「なし」であり、終了状態は「ＣＤ状態」である。
【００５３】
自状態遷移手続き２は、中間状態から「ＭＤ状態」に遷移する手続きであり、「ＣＤ状態」から「ＭＤ状態」への遷移となるため、遷移に関する実行内容は「ＭＤ」（「ＭＤ」ボタンの押下）であり、終了状態は「ＭＤ状態」である。
【００５４】
図７と図８は、図４〜６に示す例について本実施の形態のテストシステム１００が行うテストの詳細の一例を示す。図７と図８において、「→」、「＞＞」、「＞」は、シナリオの実行、中間状態遷移による状態遷移の実行、自状態遷移による状態遷移の実行をそれぞれ示し、括弧（）により囲まれたものは、「ＣＤ」ボタンや「ＭＤ」ボタンの押下などの実行内容を示し、括弧（）外のものはターゲットデバイス１８０の状態を示す。また、図中数字１〜２４は、計２４回のテストに対して、先に実行されたテストからの順番を示す。
【００５５】
まず、１回目のテストについて説明する。なお、各回のテストにおいて、ターゲットデバイス１８０の初期状態をオフ状態とする。
【００５６】
ｋ＝１すなわち１回目のテストの際に、４つのテストシナリオのいかなる実行順序も未実行の実行順序である。ここで例として、図１０のフローチャートが示す特許文献１の手法を用いて１回目のテストの実行順序を決めることとする。図７に示すように、１回目のテストでは下記の各処理が順次行われる。
Ａ．「ＣＤ状態」が開始条件状態であるテストシナリオ１が選択され実行される（図中ＣＤ（「ＣＤ」）により表わされる）。その結果、「ＣＤ」ボタンが押下されることにより、終了状態すなわちターゲットデバイス１８０の現在の状態は「ＣＤ状態」になる。
Ｂ．次に「ＣＤ状態」が開始条件状態であるテストシナリオ２が選択され実行される（図中ＣＤ（「ＭＤ」）により表わされる）。その結果、「ＭＤ」ボタンが押下されることにより、ターゲットデバイス１８０の現在の状態は「ＭＤ状態」になる。
Ｃ．「ＭＤ状態」が開始状態であるテストシナリオ３が選択され実行される（図中ＭＤ（「ＣＤ」）により表わされる）。その結果、「ＣＤ」ボタンが押下されることにより、ターゲットデバイス１８０の現在の状態は「ＣＤ状態」になる。
Ｄ．次にテストシナリオ４が選択されるが、ターゲットデバイス１８０の現在の状態が「ＣＤ状態」であるため、現在の状態をテストシナリオ４の開始条件状態である「ＭＤ状態」にするために、中間状態遷移手続き１と自状態遷移手続き１が順次実行され、ターゲットデバイス１８０の現在の状態は「ＭＤ状態」に遷移する（図中ＣＤ＞＞ＣＤ、ＣＤ＞ＭＤにより表される）。
Ｅ．そして、テストシナリオ４が実行される（図中ＭＤ（「ＭＤ」）により表わされる）。その結果、ターゲットデバイス１８０の現在の状態は「ＭＤ状態」になる。
Ｆ．すべてのテストシナリオが実行されたため、１回目のテストは完了する。このとき、シナリオ選択履歴１２５は、「シナリオ１−シナリオ２−シナリオ３−シナリオ４」になっている。
【００５７】
その後、４つのテストシナリオが複数回繰り返し実行されるが、特許文献１の手法の場合では、過去に実行したテストにおけるシナリオの実行順序を考慮していないため、テストを何回繰り返しても上記順序が繰り返され、テストシナリオの実行順序による影響をテストできない。
【００５８】
それに対して、本実施の形態では、２回目以降（ｋ≧２）のテストでは、（ｋ−１）回目以前に実行したテストにおけるシナリオの実行順序と異なる実行順序でテストシナリオを実行する。ここでｋ＝２すなわち２回目のテストについて説明する。
【００５９】
２回目のテストでは、下記の各処理が順次行われる。
Ａ．１回目のテストでは、テストシナリオ１が最初に実行されたため、２回目のテストに対して、ｍ＝１すなわち最初に実行されるテストシナリオの候補として、テストシナリオ２〜４が選択される。
Ｂ．テストシナリオ２〜４のうち、開始条件状態が「ＣＤ状態」であるテストシナリオ２が選択され実行される（ＣＤ（「ＭＤ」））。その結果、ターゲットデバイス１８０の現在の状態は「ＭＤ状態」になる。
Ｃ．次に実行するテストシナリオすなわちｍ＝２番目のテストシナリオを選択するために、シナリオ選択履歴１２５が参照される。現時点のシナリオ選択履歴１２５は、１回目の「シナリオ１（１個目）−シナリオ２（２個目）−シナリオ３（３個目）−シナリオ４（４個目）」と、今回の「シナリオ２（１個目）」となっているため、未実行順序は「シナリオ２−シナリオ１」と、「シナリオ２−シナリオ３」、「シナリオ２−シナリオ４」となる。したがって、次に実行するテストシナリオの候補として、テストシナリオ１、テストシナリオ３、テストシナリオ４が選択される。
Ｄ．ターゲットデバイス１８０の現在の状態が「ＭＤ状態」であり、上記において選択された各候補のうち、開始条件状態が「ＭＤ状態」であるテストシナリオがテストシナリオ３とテストシナリオ４である。この場合、テストシナリオ３とテストシナリオ４のいずれを選択してもよい。ここで例えばテストシナリオ３が選択される。テストシナリオ３（ＭＤ（「ＣＤ」）が選択され実行された結果、ターゲットデバイス１８０の現在の状態は「ＣＤ状態」になる。
Ｅ．１番目と２番目にそれぞれシナリオ２とシナリオ３が実行されたテストがなかったため、「シナリオ２−シナリオ３−シナリオ４」と、「シナリオ２−シナリオ３−シナリオ１」が未実行順序になり、次に実行するｍ＝３番目のテストシナリオの候補として、シナリオ４とシナリオ１が選択される。
Ｆ．ターゲットデバイス１８０の現在の状態が「ＣＤ状態」であるため、上記において選択された２つの候補から、開始条件状態が［ＣＤ状態］であるシナリオ１が選択され実行される（ＣＤ（「ＣＤ」）。その結果、ターゲットデバイス１８０の現在の状態は「ＣＤ状態」のままである。
Ｇ．未実行順序が「シナリオ２−シナリオ３−シナリオ１−シナリオ４」のみであるため、次に実行するｍ＝４番目のテストシナリオとして、開始条件状態が「ＭＤ状態」であるテストシナリオ４が選択されるが、ターゲットデバイス１８０の現在の状態が「ＣＤ状態」であるため、中間状態遷移手続き１（ＣＤ＞＞ＣＤ）、自状態遷移手続き２（ＣＤ＞ＭＤ）の後、テストシナリオ４が実行される（ＭＤ（「ＭＤ」）。その結果、ターゲットデバイス１８０の現在の状態は「ＭＤ状態」になる。
【００６０】
３回目から２４回目まで（ｍ＝３〜２４）のテストにおいても同様な手法で、前に実行したテストにおけるテストシナリオの実行順序と異なる実行順序になるようにテストシナリオが選択され実行される。この２４回のテストにおいて、下記のテストが実行されたことになる：
テスト１：シナリオ１−シナリオ２−シナリオ３−シナリオ４。
テスト２：シナリオ２−シナリオ３−シナリオ１−シナリオ４。
テスト３：シナリオ３−シナリオ１−シナリオ２−シナリオ４。
テスト４：シナリオ４−シナリオ３−シナリオ１−シナリオ２。
テスト５：シナリオ１−シナリオ３−シナリオ２−シナリオ４。
テスト６：シナリオ２−シナリオ４−シナリオ３−シナリオ１。
テスト７：シナリオ３−シナリオ２−シナリオ４−シナリオ１。
テスト８：シナリオ４−シナリオ１−シナリオ２−シナリオ３。
テスト９：シナリオ１−シナリオ４−シナリオ３−シナリオ２。
テスト１０：シナリオ２−シナリオ１−シナリオ３−シナリオ４。
テスト１１：シナリオ３−シナリオ４−シナリオ１−シナリオ２。
テスト１２：シナリオ４−シナリオ２−シナリオ３−シナリオ１。
テスト１３：シナリオ１−シナリオ２−シナリオ４−シナリオ３。
テスト１４：シナリオ２−シナリオ３−シナリオ４−シナリオ１。
テスト１５：シナリオ３−シナリオ１−シナリオ４−シナリオ２。
テスト１６：シナリオ４−シナリオ３−シナリオ２−シナリオ１。
テスト１７：シナリオ１−シナリオ３−シナリオ４−シナリオ２。
テスト１８：シナリオ２−シナリオ４−シナリオ１−シナリオ３。
テスト１９：シナリオ３−シナリオ２−シナリオ１−シナリオ４。
テスト２０：シナリオ４−シナリオ１−シナリオ３−シナリオ２。
テスト２１：シナリオ１−シナリオ４−シナリオ２−シナリオ３。
テスト２２：シナリオ２−シナリオ１−シナリオ４−シナリオ３。
テスト２３：シナリオ３−シナリオ４−シナリオ２−シナリオ１。
テスト２４：シナリオ４−シナリオ２−シナリオ１−シナリオ３。
【００６１】
このように、本実施の形態のテストシステムにおいて、今回のテストにおいて、過去のテストにおけるテストシナリオの実行順序と異なる実行順序になるように次に実行するテストシナリオを選択して実行する。こうすることによって、テストシナリオの実行順序の変更が実行結果に与える影響を検証することができる。また、テストシナリオを設計する際にテストシナリオの実行順序を考慮する必要が無いため、テストシナリオの設計時間を削減することができ、効率良く検証を行うことができる。
【００６２】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、さまざまな変更、増減を加えてもよい。これらの変更、増減が加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。
【００６３】
例えば、本実施の形態のテストシステム１００は、今回のテストにおいて最初に実行されるテストシナリオを選択する際に、過去のテストで最初に実行されたことがないテストシナリオを選択しているが、今回のテストにおけるテストシナリオの実行順序が過去のテストにおける実行順序と異なるようにテストシナリオの選択ができれば、テストシナリオの選択方法は、本実施の形態による手法に限られることがない。また、２番目以降（ｍ≧２）のテストシナリオを選択する際にも、本実施の形態のテストシステム１００に用いられる手法に限らず、例えば、（ｍ−１）番目からｍ番目までの実行順序が、（ｋ−１）回目以前のテストにおける（ｍ−１）番からｍ番目までの実行順序と異なるように、ｋ回目にテストにおいてまだ実行していない（ｎ−（ｍ−１））種類のテストシナリオからｋ回目のテストのｍ番目に実行するテストシナリオを選択するようにしてもよい。もちろん、これらの選択方法を組み合わせてもよい。
【００６４】
また、本実施の形態のテストシステム１００は、ターゲットデバイスの現在の状態と、次に実行するテストシナリオの開始条件状態とが一致しない場合に、中間状態遷移手続きと自状態遷移手続きを実行するようにしているが、特にターゲットデバイスの取り得る状態数が少ない場合にはターゲットデバイスの現在の状態から開始条件状態に直接遷移させるようにしてもよい。
【図面の簡単な説明】
【００６５】
【図１】本発明の実施の形態にかかるテストシステムを示す図である。
【図２】図１に示すテストシステムを機能的に表現した図である。
【図３】図１および図２に示すテストシステムにおけるホストコンピュータの処理を示すフローチャートである。
【図４】テスト内容の例を示す図である。
【図５】図４に示すテスト内容を実行するためのテストシナリオの例を示す図である。
【図６】図４に示すテスト内容を実行するための状態遷移データの例を示す図である。
【図７】図５に示すテストシナリオおよび図６に示す状態遷移データを用いたテストの具体例を示す図である（その１）。
【図８】図５に示すテストシナリオおよび図６に示す状態遷移データを用いたテストの具体例を示す図である（その２）。
【図９】従来のテストシステムを示す図である。
【図１０】図９に示すテストシステムにおける処理を示すフローチャートである。
【符号の説明】
【００６６】
１００  テストシステム
１１０  ホストコンピュータ
１１１  ＣＰＵ
１１２  バス
１１３  記憶装置
１１４  入力装置
１１５  実行結果表示部
１１６  通信部
１２１  状態遷移データ
１２２  中間状態遷移手続き
１２３  自状態遷移手続き
１２４  テストシナリオ
１２５  シナリオ選択履歴
１２６  実行結果
１２７  期待値
１３０  状態比較部
１４０  テスト実行部
１５０  実行結果比較部
１７０  通信路
１８０  ターゲットデバイス
１８１  ＣＰＵ
１８２  通信部
１８３  制御対象装置
１８４  バス
１９０  テスト実行部
【図１】
2009075704.tif 000003
【図２】
2009075704.tif 000004
【図３】
2009075704.tif 000005
【図４】
2009075704.tif 000006
【図５】
2009075704.tif 000007
【図６】
2009075704.tif 000008
【図７】
2009075704.tif 000009
【図８】
2009075704.tif 000010
【図９】
2009075704.tif 000011
【図１０】
2009075704.tif 000012