(57)【要約】【課題】ＧＵＩを含むソフトウェアの自動テストを容易に且つ確実に行うことが可能なテスト実行装置、方法およびプログラムを提供する。【解決手段】状態ＤＢはＧＵＩ部の状態を保存し、操作ＤＢはテストを実行する際にユーザが指定するユーザシーケンスと、ユーザシーケンスが手順通りに実行するために補完される補完シーケンスとを保存し、ユーザシーケンスの実行手順をユーザシーケンス実行手順部に保存する。そして、シーケンス実行部はユーザシーケンスの実行手順に従ってユーザシーケンスを実行する際に、状態確認部でＧＵＩ部の状態を確認し、確認したＧＵＩ部の状態の元でユーザシーケンスが実行できる場合は、ユーザシーケンスを実行し、確認したＧＵＩ部の状態の元でユーザシーケンスが実行できない場合、補完部で補完した補完シーケンスを実行した後に、ユーザシーケンスを実行する。【選択図】　図１
2004110267.tif 000002
【特許請求の範囲】
【請求項１】
ＧＵＩを基にするソフトウェアのテストを行うテスト実行方法において、
前記ソフトウェアのＧＵＩ部に関する状態の属性を定義し、
前記テストを行う際の具体的な操作の要素であるユーザシーケンスおよびユーザシーケンスの実行を補完する補完シーケンスを定義するとともに、該ユーザシーケンスおよび該補完シーケンスに、実行前後の状態属性変化を示す状態属性変化情報を設定し、
前記ソフトウェアのテストを行う際に、該ソフトウェアのＧＵＩ部の状態属性を確認し、該確認したＧＵＩ部の状態属性の元において前記ユーザシーケンスが実行可能か否か前記状態属性変化情報に基づいて確認し、
前記ユーザシーケンスが実行不可能な場合、前記ＧＵＩ部の状態属性を該ユーザシーケンスが実行可能な状態属性に変化させることが可能な補完シーケンスを前記状態属性変化情報に基づいて検索し、該検索した補完シーケンスを実行した後に該ユーザシーケンスを実行する
ことを特徴とするテスト実行方法。
【請求項２】
前記状態属性変化情報として、前記ユーザシーケンスおよび前記補完シーケンスの実行において、該実行に必須な状態属性を示す前状態属性と、該実行により変化した状態属性を示す後状態属性とを設定する
ことを特徴とする請求項１記載のテスト実行方法。
【請求項３】
前記ソフトウェアのＧＵＩ部の状態属性がユーザシーケンスに設定された前状態属性と一致しない場合、該前状態属性と一致する後状態属性が設定された補完シーケンスを検索し、
該検索した補完シーケンスに設定された前状態属性が前記ソフトウェアのＧＵＩ部の状態属性と一致しない際は、該ソフトウェアのＧＵＩ部の状態属性と一致する前状態属性が設定された補完シーケンスを検索するまで、検索を繰り返す
ことを特徴とする請求項２記載のテスト実行方法。
【請求項４】
第１のユーザシーケンス群を実行した後に第２のユーザシーケンス群を実行する手順のテストを行う際に、該第１のユーザシーケンス群内のユーザシーケンス若しくは補完シーケンスが実行不可能な場合、該第１のユーザシーケンス群の実行を回避し、前記ＧＵＩ部の状態属性を該第２のユーザシーケンス群の最初のユーザシーケンスが実行可能な状態属性に変化させることが可能な一連の補完シーケンスを前記状態属性変化情報に基づいて検索し、該検索した補完シーケンスを実行した後に該第２のユーザシーケンス群を実行する
ことを特徴とする請求項１記載のテスト実行方法。
【請求項５】
ＧＵＩを基にするソフトウェアのテストを行うテスト実行装置において、
前記ソフトウェアのＧＵＩ部に関する状態の状態属性を記憶する状態属性記憶手段と、
前記テストを行う際の具体的な操作の要素であるユーザシーケンスおよびユーザシーケンスの実行を補完する補完シーケンスを記憶するシーケンス記憶手段と、
前記ユーザシーケンスおよび前記補完シーケンスに、実行前後の状態属性変化を示す状態属性変化情報を設定する状態属性変化情報設定手段と、
前記ソフトウェアのテストとして、複数のユーザシーケンスの実行手順を設定する実行手順設定手段と、
前記実行手順設定手段で設定した複数のユーザシーケンスの実行手順に従ってユーザシーケンスを実行するシーケンス実行手段と、
前記ユーザシーケンス実行手段がユーザシーケンスを実行する際に、前記ソフトウェアのＧＵＩ部の状態属性を確認する状態属性確認手段と、
前記状態属性確認手段で確認したＧＵＩ部の状態属性の元において前記ユーザシーケンスが実行不可能である場合、前記ＧＵＩ部の状態属性を該ユーザシーケンスが実行可能な状態属性に変化させることが可能な補完シーケンスを前記状態属性変化情報に基づいて補完する補完手段と
を具備し、
前記シーケンス実行手段は、
補完手段で補完された補完シーケンスを実行した後に前記ユーザシーケンスを実行する
ことを特徴とするテスト実行装置。
【請求項６】
前記状態属性変化情報設定手段は、
前記ユーザシーケンスおよび前記補完シーケンスの実行において、該実行に必須な状態属性を示す前状態属性と、該実行により変化した状態属性を示す後状態属性とを設定する
ことを特徴とする請求項５記載のテスト実行装置。
【請求項７】
前記補完手段は、
前記ソフトウェアのＧＵＩ部の状態属性がユーザシーケンスに設定された前状態属性と一致しない場合、該前状態属性と一致する後状態属性が設定された補完シーケンスを検索し、
該検索した補完シーケンスに設定された前状態属性が前記ソフトウェアのＧＵＩ部の状態属性と一致しない際は、該ソフトウェアのＧＵＩ部の状態属性と一致する前状態属性が設定された補完シーケンスを検索するまで、検索を繰り返す
ことを特徴とする請求項６記載のテスト実行装置。
【請求項８】
第１のユーザシーケンス群を実行した後に第２のユーザシーケンス群を実行するテストの際に、第１のユーザシーケンス群内のユーザシーケンス若しくは補完シーケンスが実行不可能な場合、
前記補完手段は、
前記ＧＵＩ部の状態属性を該第２のユーザシーケンス群の最初のユーザシーケンスが実行可能な状態属性に変化させることが可能な一連の補完シーケンスを前記状態属性変化情報に基づいて検索し、
前記シーケンス実行手段は、
第１のユーザシーケンス群の実行を回避し、前記補完手段で検索した補完シーケンスを実行した後に該第２のユーザシーケンスを実行する
ことを特徴とする請求項５記載のテスト実行装置。
【請求項９】
ＧＵＩを基にするソフトウェアのテストを行うテスト実行プログラムにおいて、
前記ソフトウェアのＧＵＩ部に関する状態の状態属性を定義する処理と、
前記テストを行う際の具体的な操作の要素であるユーザシーケンスおよびユーザシーケンスの実行を補完する補完シーケンスを定義するとともに、該ユーザシーケンスおよび該補完シーケンスに、実行前後の状態属性変化を示す状態属性変化情報を設定する処理と、
前記ソフトウェアのテストを行う際に、該ソフトウェアのＧＵＩ部の状態属性を確認する処理と、
該確認したＧＵＩ部の状態属性の元において前記ユーザシーケンスが実行可能か否か前記状態属性変化情報に基づいて確認する処理と、
前記ユーザシーケンスが実行不可能な場合、前記ＧＵＩ部の状態属性を該ユーザシーケンスが実行可能な状態属性に変化させることが可能な補完シーケンスを前記状態属性変化情報に基づいて検索する処理と、
該検索した補完シーケンスを実行した後に該ユーザシーケンスを実行する処理と
をコンピュータに動作させることを特徴とするテスト実行プログラム。
【請求項１０】
前記状態属性変化情報として、前記ユーザシーケンスおよび前記補完シーケンスの実行において、該実行に必須な状態属性を示す前状態属性と、該実行により変化した状態属性を示す後状態属性とを設定する
ことを特徴とする請求項９記載のテスト実行プログラム。
【請求項１１】
前記ソフトウェアのＧＵＩ部の状態属性がユーザシーケンスに設定された前状態属性と一致しない場合、該前状態属性と一致する後状態属性が設定された補完シーケンスを検索する処理と、
該検索した補完シーケンスに設定された前状態属性が前記ソフトウェアのＧＵＩ部の状態属性と一致しない際は、該ソフトウェアのＧＵＩ部の状態属性と一致する前状態属性が設定された補完シーケンスを検索するまで、検索を繰り返す処理と
をコンピュータに動作させることを特徴とする請求項１０記載のテスト実行プログラム。
【請求項１２】
第１のユーザシーケンス群を実行した後に第２のユーザシーケンス群を実行する手順のテストを行う際に、該第１のユーザシーケンス群内のユーザシーケンスもしくは補完シーケンスが実行不可能な場合、
前記ＧＵＩ部の状態属性を該第２のユーザシーケンス群の最初のユーザシーケンスが実行可能な状態属性に変化させることが可能な一連の補完シーケンスを前記状態属性変化情報に基づいて検索する処理と、
前記第１のユーザシーケンス群の実行を回避し、該第２のユーザシーケンス群の最初のユーザシーケンスを実行する処理と
をコンピュータに動作させることを特徴とする請求項９記載のテスト実行プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、テスト実行装置、方法およびプログラムに関し、特に、ＧＵＩを含むソフトウェアのテストの自動化を実現するテスト実行装置、方法およびプログラムに関する。
【０００２】
【従来の技術】
近年、ユーザに対する情報の表示にグラフィックを多用し、大半の基礎的な操作をマウス等のポインティングデバイスによって行うことができるＧＵＩ（Ｇｒａｐｈｉｃａｌ　Ｕｓｅｒ　Ｉｎｔｅｒｆａｃｅ）をベースとしたソフトウェアが主流となり、最近ではＧＵＩを利用するための基本的なプログラムをＯＳ（Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ）が提供することにより、アプリケーションソフトの操作感の統一および開発負担の軽減等が図れている。
【０００３】
そして、ソフトウェアの開発段階においては、作成したソフトウェアが仕様通りに動作するかを確認するためのテストが行われ、従来、人手によりマウス若しくはキーボード等の操作を行うことで、テストを実行していた。更に、人手によるテストの実行の手間を省くために、最近では、テストの自動化を実現するために、自動テストが提案されている。
【０００４】
ここで、従来利用されてきた自動テストは、テスト実行時の人手によるマウス若しくはキーボード等の操作手順を一旦記録し、記録した操作手順を再現することで、テストを実行するという記録再現型がほとんどであった。
【０００５】
【発明が解決しようとする課題】
しかし、記録再生型では、記録した操作手順でしか再現できないため、全てのテストについて予め操作手順を入力しなければならなかった。更に、ＧＵＩの機能が複雑になるに連れ、操作によって動的に変化するウィンドウの配置および種類との組み合わせが莫大になるため、入力する操作の組み合わせも莫大になり、全ての操作の組み合わせを漏れなく入力することは困難であるという問題がある。
【０００６】
また、記録再生型では、記録した操作手順の通りに実行することしかできないため、テスト実行時に何らかの不具合が発生してしまうと、テストの実行を中止してしまうので、結局テスト実行時には誰かがテストを監視しなければならないという問題がある。
【０００７】
そこで、本発明は、ＧＵＩを含むソフトウェアの自動テストを容易に且つ確実に行うことが可能なテスト実行装置、方法およびプログラムを提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成するために、請求項１の発明は、ＧＵＩを基にするソフトウェアのテストを行うテスト実行方法において、前記ソフトウェアのＧＵＩ部に関する状態の状態属性を定義し、前記テストを行う際の具体的な操作の要素であるユーザシーケンスおよびユーザシーケンスの実行を補完する補完シーケンスを定義するとともに、該ユーザシーケンスおよび該補完シーケンスに、実行前後の状態属性変化を示す状態属性変化情報を設定し、前記ソフトウェアのテストを行う際に、該ソフトウェアのＧＵＩ部の状態属性を確認し、該確認したＧＵＩ部の状態属性の元において前記ユーザシーケンスが実行可能か否か前記状態属性変化情報に基づいて確認し、前記ユーザシーケンスが実行不可能な場合、前記ＧＵＩ部の状態属性を該ユーザシーケンスが実行可能な状態属性に変化させることが可能な補完シーケンスを前記状態属性変化情報に基づいて検索し、該検索した補完シーケンスを実行した後に該ユーザシーケンスを実行することを特徴とする。
【０００９】
また、請求項２の発明は、請求項１の発明において、前記状態属性変化情報として、前記ユーザシーケンスおよび前記補完シーケンスの実行において、該実行に必須な状態属性を示す前状態属性と、該実行により変化した状態属性を示す後状態属性とを設定することを特徴とする。
【００１０】
また、請求項３の発明は、請求項２の発明において、前記ソフトウェアのＧＵＩ部の状態属性がユーザシーケンスに設定された前状態属性と一致しない場合、該前状態属性と一致する後状態属性が設定された補完シーケンスを検索し、該検索した補完シーケンスに設定された前状態属性が前記ソフトウェアのＧＵＩ部の状態属性と一致しない際は、該ソフトウェアのＧＵＩ部の状態属性と一致する前状態属性が設定された補完シーケンスを検索するまで、検索を繰り返すことを特徴とする。
【００１１】
また、請求項４の発明は、請求項１の発明において、第１のユーザシーケンス群を実行した後に第２のユーザシーケンス群を実行する手順のテストを行う際に、該第１のユーザシーケンス群内のユーザシーケンス若しくは補完シーケンスが実行不可能な場合、該第１のユーザシーケンス群の実行を回避し、前記ＧＵＩ部の状態属性を該第２のユーザシーケンス群の最初のユーザシーケンスが実行可能な状態属性に変化させることが可能な一連の補完シーケンスを前記状態属性変化情報に基づいて検索し、該検索した補完シーケンスを実行した後に該第２のユーザシーケンス群を実行することを特徴とする。
【００１２】
また、請求項５の発明は、ＧＵＩを基にするソフトウェアのテストを行うテスト実行装置において、前記ソフトウェアのＧＵＩ部に関する状態の状態属性を記憶する状態属性記憶手段と、前記テストを行う際の具体的な操作の要素であるユーザシーケンスおよびユーザシーケンスの実行を補完する補完シーケンスを記憶するシーケンス記憶手段と、前記ユーザシーケンスおよび前記補完シーケンスに、実行前後の状態属性変化を示す状態属性変化情報を設定する状態属性変化情報設定手段と、前記ソフトウェアのテストとして、複数のユーザシーケンスの実行手順を設定する実行手順設定手段と、前記実行手順設定手段で設定した複数のユーザシーケンスの実行手順に従ってユーザシーケンスを実行するシーケンス実行手段と、前記ユーザシーケンス実行手段がユーザシーケンスを実行する際に、前記ソフトウェアのＧＵＩ部の状態属性を確認する状態属性確認手段と、前記状態属性確認手段で確認したＧＵＩ部の状態属性の元において前記ユーザシーケンスが実行不可能である場合、前記ＧＵＩ部の状態属性を該ユーザシーケンスが実行可能な状態属性に変化させることが可能な補完シーケンスを前記状態属性変化情報に基づいて補完する補完手段とを具備し、前記シーケンス実行手段は、補完手段で補完された補完シーケンスを実行した後に前記ユーザシーケンスを実行することを特徴とする。
【００１３】
また、請求項６の発明は、請求項５の発明において、前記状態属性変化情報設定手段は、前記ユーザシーケンスおよび前記補完シーケンスの実行において、該実行に必須な状態属性を示す前状態属性と、該実行により変化した状態属性を示す後状態属性とを設定することを特徴とする。
【００１４】
また、請求項７の発明は、請求項６の発明において、前記補完手段は、
前記ソフトウェアのＧＵＩ部の状態属性がユーザシーケンスに設定された前状態属性と一致しない場合、該前状態属性と一致する後状態属性が設定された補完シーケンスを検索し、該検索した補完シーケンスに設定された前状態属性が前記ソフトウェアのＧＵＩ部の状態属性と一致しない際は、該ソフトウェアのＧＵＩ部の状態属性と一致する前状態属性が設定された補完シーケンスを検索するまで、検索を繰り返すことを特徴とする。
【００１５】
また、請求項８の発明は、請求項５の発明において、第１のユーザシーケンス群を実行した後に第２のユーザシーケンス群を実行するテストの際に、第１のユーザシーケンス群内のユーザシーケンス若しくは補完シーケンスが実行不可能な場合、前記補完手段は、前記ＧＵＩ部の状態属性を該第２のユーザシーケンス群の最初のユーザシーケンスが実行可能な状態属性に変化させることが可能な一連の補完シーケンスを前記状態属性変化情報に基づいて検索し、前記シーケンス実行手段は、第１のユーザシーケンス群の実行を回避し、前記補完手段で検索した補完シーケンスを実行した後に該第２のユーザシーケンスを実行することを特徴とする。
【００１６】
また、請求項９の発明は、ＧＵＩを基にするソフトウェアのテストを行うテスト実行プログラムにおいて、前記ソフトウェアのＧＵＩ部に関する状態の状態属性を定義する処理と、前記テストを行う際の具体的な操作の要素であるユーザシーケンスおよびユーザシーケンスの実行を補完する補完シーケンスを定義するとともに、該ユーザシーケンスおよび該補完シーケンスに、実行前後の状態属性変化を示す状態属性変化情報を設定する処理と、前記ソフトウェアのテストを行う際に、該ソフトウェアのＧＵＩ部の状態属性を確認する処理と、該確認したＧＵＩ部の状態属性の元において前記ユーザシーケンスが実行可能か否か前記状態属性変化情報に基づいて確認する処理と、前記ユーザシーケンスが実行不可能な場合、前記ＧＵＩ部の状態属性を該ユーザシーケンスが実行可能な状態属性に変化させることが可能な補完シーケンスを前記状態属性変化情報に基づいて検索する処理と、該検索した補完シーケンスを実行した後に該ユーザシーケンスを実行する処理とをコンピュータに動作させることを特徴とする。
【００１７】
また、請求項１０の発明は、請求項９の発明において、前記状態属性変化情報として、前記ユーザシーケンスおよび前記補完シーケンスの実行において、該実行に必須な状態属性を示す前状態属性と、該実行により変化した状態属性を示す後状態属性とを設定することを特徴とする。
【００１８】
また、請求項１１の発明は、請求項１０の発明において、前記ソフトウェアのＧＵＩ部の状態属性がユーザシーケンスに設定された前状態属性と一致しない場合、該前状態属性と一致する後状態属性が設定された補完シーケンスを検索する処理と、該検索した補完シーケンスに設定された前状態属性が前記ソフトウェアのＧＵＩ部の状態属性と一致しない際は、該ソフトウェアのＧＵＩ部の状態属性と一致する前状態属性が設定された補完シーケンスを検索するまで、検索を繰り返す処理とをコンピュータに動作させることを特徴とする。
【００１９】
また、請求項１２の発明は、請求項９の発明において、第１のユーザシーケンス群を実行した後に第２のユーザシーケンス群を実行する手順のテストを行う際に、該第１のユーザシーケンス群内のユーザシーケンスもしくは補完シーケンスが実行不可能な場合、前記ＧＵＩ部の状態属性を該第２のユーザシーケンス群の最初のユーザシーケンスが実行可能な状態属性に変化させることが可能な一連の補完シーケンスを前記状態属性変化情報に基づいて検索する処理と、前記第１のユーザシーケンス群の実行を回避し、該第２のユーザシーケンス群の最初のユーザシーケンスを実行する処理とをコンピュータに動作させることを特徴とする。
【００２０】
【発明の実施の形態】
以下、本発明に係わるテスト実行装置、方法およびプログラムの実施の形態について添付図面を参照して詳細に説明する。
【００２１】
図１は、本発明に係わるテスト実行装置１の概略構成の一例を示すブロック図である。
【００２２】
図１に示すように、テスト実行装置１は、入力部２、状態ＤＢ３、操作ＤＢ４、ユーザシーケンス実行手順部５、シーケンス実行部６、状態確認部７、補完部８から構成されている。
【００２３】
ここで、状態ＤＢ３はソフトウェアのＧＵＩ部に関する状態を保存し、操作ＤＢ４はテストを実行する際にユーザが指定するユーザシーケンスと、ユーザシーケンスが手順通りに実行するために補完される補完シーケンスとを保存する。なお、ユーザは入力部２でＧＵＩ部の状態、ユーザシーケンスおよび補完シーケンスを作成して状態ＤＢ３または操作ＤＢ４に保存する。
【００２４】
ユーザは、実行するテストに基づいてユーザシーケンスの実行手順を入力部２からユーザシーケンス実行手順部５に入力する。
【００２５】
そして、シーケンス実行部６はユーザシーケンス実行手順部５から指示されるユーザシーケンスの実行手順に従ってユーザシーケンスを実行する。なお、ユーザシーケンスを実行する際に、状態確認部７でＧＵＩ部の状態を確認し、確認したＧＵＩ部の状態の元でユーザシーケンスが実行できる場合は、ユーザシーケンスを実行し、また、確認したＧＵＩ部の状態の元でユーザシーケンスが実行できない場合、補完部８で補完した補完シーケンスを実行した後に、ユーザシーケンスを実行する。
【００２６】
図２は、本実施例におけるＧＵＩ部の状態、シーケンスおよびシーケンス要素について詳細に説明する図である。
【００２７】
本実施例において、図２に示すように、「Ｓ１」、「Ｓ２」、「Ｓ３」、「Ｓ４」および「Ｓ５」をシーケンス要素とし、順番のある一連のシーケンス要素の集合をシーケンスとしている。
【００２８】
そして、シーケンス要素を実行する度に、実行の対象となるソフトウェアのＧＵＩ部に関する状態は変化していく。例えば、図２のように、初めＧＵＩ部の状態が「状態Ａ」だとすると、「状態Ａ」の元でシーケンス要素「Ｓ１」を実行することで「状態Ｂ」に変化し、「状態Ｂ」の元でシーケンス要素「Ｓ２」を実行することで「状態Ｃ」に変化し、「状態Ｃ」の元でシーケンス要素「Ｓ３」を実行することで「状態Ｄ」に変化し、「状態Ｄ」の元でシーケンス要素「Ｓ４」を実行することで「状態Ｅ」に変化し、「状態Ｅ」の元でシーケンス要素「Ｓ５」を実行することで「状態Ｆ」に変化している。
【００２９】
ここで、シーケンス要素を実行するための前提とする状態を「ＰＲＥ状態」とし、シーケンス要素を実行した後の状態を「ＰＯＳＴ状態」とし、各シーケンス要素に状態変化の情報として「ＰＲＥ状態」と「ＰＯＳＴ状態」とを付加する。これは、図２のように、シーケンス要素「Ｓ１」には、「ＰＲＥ状態＝状態Ａ」、「ＰＯＳＴ状態＝状態Ｂ」、「ＳＥＱ１」という操作を実行するという情報が付加され、また、シーケンス要素「Ｓ２」には、「ＰＲＥ状態＝状態Ｂ」、「ＰＯＳＴ状態＝状態Ｃ」、「ＳＥＱ２」という操作を実行するという情報が付加され、また、シーケンス要素「Ｓ３」には、「ＰＲＥ状態＝状態Ｃ」、「ＰＯＳＴ状態＝状態Ｄ」、「ＳＥＱ３」という操作を実行するという情報が付加され、また、シーケンス要素「Ｓ４」には、「ＰＲＥ状態＝状態Ｄ」、「ＰＯＳＴ状態＝状態Ｅ」、「ＳＥＱ４」という操作を実行するという情報が付加され、また、シーケンス要素「Ｓ５」には、「ＰＲＥ状態＝状態Ｅ」、「ＰＯＳＴ状態＝状態Ｆ」、「ＳＥＱ５」という操作を実行するという情報が付加されている。なお、「ＰＲＥ状態」がＧＵＩ部の状態と一致しなければ、シーケンス要素を実行することはできない。
【００３０】
次に、ユーザシーケンスを実行する際に補完シーケンスを補完する処理について詳細に説明する。
【００３１】
図３は、状態ＤＢ３に保存されたＧＵＩ部の状態の一例、および操作ＤＢ４に保存されたユーザシーケンスおよび補完シーケンスの一例を示す図である。
【００３２】
図３に示すように、状態ＤＢ３には「状態Ａ」、「状態Ｂ」、「状態Ｃ」、「状態Ｄ」、「状態Ｅ」および「状態Ｆ」が保存され、操作ＤＢ４にはユーザシーケンスである「ＵＳＥＲ　ＳＥＱ１」および「ＵＳＥＲ　ＳＥＱ２」、補完シーケンスである「補完ＳＥＱ１」、「補完ＳＥＱ２」および「補完ＳＥＱ３」が保存されている。
【００３３】
ここで、「ＵＳＥＲ　ＳＥＱ１」は「ＰＲＥ状態＝状態Ｃ」なので、ＧＵＩ部の状態が「状態Ｃ」でなければ、「ＵＳＥＲ　ＳＥＱ１」を実行することはできず、また、「ＵＳＥＲ　ＳＥＱ２」は「ＰＲＥ状態＝状態Ｅ」なので、ＧＵＩ部の状態が「状態Ｅ」でなければ、「ＵＳＥＲ　ＳＥＱ２」を実行することはできない。
【００３４】
また、「補完ＳＥＱ１」は「ＰＲＥ状態＝状態Ａ」、「ＰＯＳＴ状態＝状態Ｂ」であり、「補完ＳＥＱ２」は「ＰＲＥ状態＝状態Ｂ」、「ＰＯＳＴ状態＝状態Ｃ」であり、「補完ＳＥＱ３」は「ＰＲＥ状態＝状態Ｄ」、「ＰＯＳＴ状態＝状態Ｅ」である。
【００３５】
図４は、ユーザシーケンスを手順通りに実行するために、補完シーケンスを補完する処理を示す図である。
【００３６】
ＧＵＩ部の状態が「状態Ａ」である際に、「ＵＳＥＲ　ＳＥＱ１」から「ＵＳＥＲ　ＳＥＱ２」の手順でテストを実行する（図４（ａ）参照）。しかし、「ＵＳＥＲ　ＳＥＱ１」は「ＰＲＥ状態＝状態Ｃ」なので、「状態Ａ」の元では「ＵＳＥＲ　ＳＥＱ１」を実行することはできない。
【００３７】
そこで、「ＰＯＳＴ状態＝状態Ｃ」である補完シーケンスを操作ＤＢから検索し、「ＵＳＥＲ　ＳＥＱ１」の実行の前に、「ＰＯＳＴ状態＝状態Ｃ」である「補完ＳＥＱ２」の実行を仮決定する。しかし、「補完ＳＥＱ２」は「ＰＲＥ状態＝状態Ｂ」なので、「状態Ａ」の元では「補完ＳＥＱ２」を実行することはできないため、「ＰＯＳＴ状態＝状態Ｂ」である補完シーケンスを操作ＤＢから検索し、「補完ＳＥＱ２」の実行の前に、「ＰＯＳＴ状態＝状態Ｂ」である「補完ＳＥＱ１」の実行を仮決定する。ここで、「補完ＳＥＱ１」は「ＰＲＥ状態＝状態Ａ」なので、「状態Ａ」の元で「補完ＳＥＱ１」を実行することができる（図４（ｂ）参照）。
【００３８】
そして、「状態Ａ」の元で「補完ＳＥＱ１」を実行すると、ＧＵＩ部の状態が「状態Ｂ」に変化する。
【００３９】
同様に、「ＰＯＳＴ状態＝状態Ｃ」である補完シーケンスを操作ＤＢから検索し、「ＵＳＥＲ　ＳＥＱ１」の実行の前に、「ＰＯＳＴ状態＝状態Ｃ」である「補完ＳＥＱ２」の実行を仮決定し、「補完ＳＥＱ２」は「ＰＲＥ状態＝状態Ｂ」なので、「状態Ｂ」の元で「補完ＳＥＱ２」を実行する。
【００４０】
そして、ＧＵＩ部の状態が「状態Ｃ」に変化し、次に「状態Ｃ」の元で「ＵＳＥＲ　ＳＥＱ１」を実行すると、ＧＵＩ部の状態が「状態Ｄ」に変化する（図４（ｃ）参照）。
【００４１】
ここで、ＧＵＩ部の状態が「状態Ｄ」である際に、「ＵＳＥＲ　ＳＥＱ２」の実行を試みるも、「ＵＳＥＲ　ＳＥＱ２」は「ＰＲＥ状態＝状態Ｅ」なので、「状態Ｄ」の元では「ＵＳＥＲ　ＳＥＱ２」を実行することはできない。
【００４２】
そこで、「ＰＯＳＴ状態＝状態Ｅ」である補完シーケンスを操作ＤＢから検索し、「ＵＳＥＲ　ＳＥＱ２」の実行の前に、「ＰＯＳＴ状態＝状態Ｅ」である「補完ＳＥＱ３」の実行を仮決定する。ここで、「補完ＳＥＱ３」は「ＰＲＥ状態＝状態Ｄ」なので、「状態Ｄ」の元で「補完ＳＥＱ３」を実行することができる（図４（ｄ）参照）。
【００４３】
そして、「状態Ｄ」の元で「補完ＳＥＱ３」を実行すると、ＧＵＩ部の状態が「状態Ｅ」に変化し、次に「状態Ｅ」の元で「ＵＳＥＲ　ＳＥＱ２」を実行すると、ＧＵＩ部の状態が「状態Ｆ」に変化する（図４（ｅ）参照）。
【００４４】
以上のように、「ＵＳＥＲ　ＳＥＱ１」の実行の前に「補完ＳＥＱ１」および「補完ＳＥＱ２」を補完し、「ＵＳＥＲ　ＳＥＱ２」の実行の前に「補完ＳＥＱ３」を補完することで、ユーザシーケンスを手順通りに実行することできる。
【００４５】
次に、ユーザシーケンスを実行する際に行う処理手順について図５のフローチャートを参照して説明する。
【００４６】
ユーザシーケンスの実行手順（一連のユーザシーケンス群）を入力し（ステップＳ５０１）、テストが開始すると、次に実行するユーザシーケンスを取り出す（ステップＳ５０２）。現在のＧＵＩ部の状態を確認し（ステップＳ５０３）、確認したＧＵＩ部の状態がユーザシーケンスの「ＰＲＥ状態」と一致するか否か確認する（ステップＳ５０４）。
【００４７】
ここで、現在のＧＵＩ部の状態がユーザシーケンスの「ＰＲＥ状態」と一致しない場合（ステップＳ５０４でＮＯ）、操作ＤＢから「ＰＯＳＴ状態」がユーザシーケンスの「ＰＲＥ状態」と一致する補完シーケンスを検索し（ステップＳ５０５）、検索した補完シーケンスの「ＰＲＥ状態」が現在のＧＵＩ部の状態と一致するか否か確認する（ステップＳ５０６）。
【００４８】
ここで、現在のＧＵＩ部の状態が補完シーケンスの「ＰＲＥ状態」と一致しない場合（ステップＳ５０６でＮＯ）、操作ＤＢから「ＰＯＳＴ状態」が補完シーケンスの「ＰＲＥ状態」と一致する補完シーケンスを検索し（ステップＳ５０７）、ステップ５０７に戻り、検索した補完シーケンスの「ＰＲＥ状態」が現在のＧＵＩ部の状態と一致するか否か確認する。
【００４９】
また、現在のＧＵＩ部の状態が補完シーケンスの「ＰＲＥ状態」と一致する場合（ステップＳ５０６でＹＥＳ）、検索した補完シーケンスを実行し（ステップＳ５０８）、ステップＳ５０３に戻る。
【００５０】
また、ステップＳ５０４において、現在のＧＵＩ部の状態がユーザシーケンスの「ＰＲＥ状態」と一致する場合（ステップＳ５０４でＹＥＳ）、ユーザシーケンスを実行し（ステップＳ５０９）、未実行のユーザシーケンスが存在すれば（ステップＳ５１０でＮＯ）、ステップＳ５０２に戻る。
【００５１】
また、ステップＳ５１０において、未実行のユーザシーケンスが存在しなければ（ステップＳ５１０でＹＥＳ）、処理手順を終了する。
【００５２】
次に、何らかの理由でユーザシーケンスが実行不可能になってしまった場合、実行不可能なユーザシーケンスをスキップする際に行う処理について詳細に説明する。
【００５３】
図６は、実行不可能なユーザシーケンスをスキップするために、補完シーケンスを補完する処理を示す図である。
【００５４】
ＧＵＩ部の状態が「状態Ａ」である際に、ユーザシーケンス群▲１▼の「ＵＳＥＲＳＥＱ１」、「ＵＳＥＲ　ＳＥＱ２」、および、ユーザシーケンス群▲２▼の「ＵＳＥＲ　ＳＥＱ３」の手順でテストを実行しようと試みる（図６（ａ）参照）。
【００５５】
そして、「状態Ａ」の元で「ＵＳＥＲ　ＳＥＱ１」を実行すると、ＧＵＩ部の状態が「状態Ｂ」に変化する（図６（ｂ）参照）。
【００５６】
ここで、「ＵＳＥＲ　ＳＥＱ２」が何らかの理由で実行不可能な場合、「ＵＳＥＲ　ＳＥＱ２」をスキップしてユーザシーケンス群▲２▼の最初のユーザシーケンスである「ＵＳＥＲ　ＳＥＱ３」を実行しようと試みるものの、「ＵＳＥＲ　ＳＥＱ３」は「ＰＲＥ状態＝状態Ｄ」なので、「状態Ｂ」の元では「ＵＳＥＲ　ＳＥＱ３」を実行することはできない。そこで、「ＰＯＳＴ状態＝状態Ｄ」である補完シーケンスを操作ＤＢから検索し、「ＵＳＥＲ　ＳＥＱ３」の実行の前に、「ＰＯＳＴ状態＝状態Ｄ」である「補完ＳＥＱ２」の実行を仮決定する。しかし、「補完ＳＥＱ２」は「ＰＲＥ状態＝状態Ｃ」なので、「状態Ｂ」の元では「補完ＳＥＱ２」を実行することはできないため、「ＰＯＳＴ状態＝状態Ｃ」である補完シーケンスを操作ＤＢから検索し、「補完ＳＥＱ２」の実行の前に、「ＰＯＳＴ状態＝状態Ｃ」である「補完ＳＥＱ１」の実行を仮決定する。ここで、「補完ＳＥＱ１」は「ＰＲＥ状態＝状態Ｂ」なので、「状態Ｂ」の元で「補完ＳＥＱ１」を実行することができる（図６（ｃ）参照）。
【００５７】
そして、「状態Ｂ」の元で「補完ＳＥＱ１」を実行すると、ＧＵＩ部の状態が「状態Ｃ」に変化し、同様に補完処理を実施した後に「状態Ｃ」の元で「補完ＳＥＱ２」を実行すると、ＧＵＩ部の状態が「状態Ｄ」に変化し、次に「状態Ｄ」の元で「ＵＳＥＲ　ＳＥＱ３」を実行すると、ＧＵＩ部の状態が「状態Ｅ」に変化する（図６（ｄ）参照）。
【００５８】
以上のように、ユーザシーケンス群▲１▼の途中の「ＵＳＥＲ　ＳＥＱ２」が実行不可能になっても、「ＵＳＥＲ　ＳＥＱ３」の実行の前に「補完ＳＥＱ１」および「補完ＳＥＱ２」を補完し、「ＵＳＥＲ　ＳＥＱ２」をスキップして「ＵＳＥＲ　ＳＥＱ３」の実行に移れることができ、後のユーザシーケンス群の実行を停止することなく一連のテストにおけるユーザシーケンスを手順通りに実行することできる。また、実行できたユーザシーケンスとスキップしたユーザシーケンスをログ等に記憶しておくことで、テスト実行者はそのログを見て、テストの解析を容易に行うことが可能になる。
【００５９】
次に、実行不可能なユーザシーケンスをスキップする際に行う処理手順について図７のフローチャートを参照して説明する。なお、図５のフローチャートにおけるステップＳ５０９の処理が開始すると、図７のフローチャートが開始する。
【００６０】
ユーザシーケンスが実行可能か否か確認し（ステップＳ７０１）、ユーザシーケンスが実行不可能な場合（ステップＳ７０１でＮＯ）、次のユーザシーケンス群が存在するか否か確認する（ステップＳ７０２）。
【００６１】
ここで、次のユーザシーケンス群が存在する場合（ステップＳ７０２でＹＥＳ）、次のユーザシーケンスの「ＰＲＥ状態」を確認し（ステップＳ７０３）、操作ＤＢから「ＰＯＳＴ状態」が次のユーザシーケンスの「ＰＲＥ状態」と一致する補完シーケンスを検索し（ステップＳ７０４）、検索した補完シーケンスの「ＰＲＥ状態」が現在のＧＵＩ部の状態と一致するか否か確認する（ステップＳ７０５）。
【００６２】
ここで、現在のＧＵＩ部の状態が補完シーケンスの「ＰＲＥ状態」と一致しない場合（ステップＳ７０５でＮＯ）、操作ＤＢから「ＰＯＳＴ状態」が補完シーケンスの「ＰＲＥ状態」と一致する補完シーケンスを検索し（ステップＳ７０６）、ステップ７０５に戻り、検索した補完シーケンスの「ＰＲＥ状態」が現在のＧＵＩ部の状態と一致するか否か確認する。
【００６３】
また、現在のＧＵＩ部の状態が補完シーケンスの「ＰＲＥ状態」と一致する場合（ステップＳ７０５でＹＥＳ）、検索した補完シーケンスを実行し（ステップＳ７０７）、次のユーザシーケンスを実行し（ステップＳ７０８）、処理手順を終了する。
【００６４】
また、ステップＳ７０１において、ユーザシーケンスが実行可能な場合（ステップＳ７０１でＹＥＳ）、ユーザシーケンスを実行し（ステップＳ７０９）、処理手順を終了する。
【００６５】
また、ステップＳ７０２において、次のユーザシーケンス群が存在しない場合（ステップＳ７０２でＮＯ）、実行不可能なユーザシーケンスをスキップし、処理手順を終了する。
【００６６】
次に、ユーザシーケンスを実行する際に、補完シーケンスを補完する処理について具体的な実施例を参照して詳細に説明する。ここで、ある文書作成ソフトウェア（以後、Ａｐｐｌｉｃａｔｉｏｎと呼ぶ）で作成した文書を印刷するというテストを具体的な実施例とする。
【００６７】
図８は、状態ＤＢ３に保存されたＧＵＩ部の状態の具体例、および操作ＤＢ４に保存されたユーザシーケンスおよび補完シーケンスの具体例を示す図である。
【００６８】
図８に示すように、状態ＤＢ３には「Ａｐｐｌｉｃａｔｉｏｎ画面がＣＬＯＳＥ」、「Ａｐｐｌｉｃａｔｉｏｎ画面がＯＰＥＮ」、「ファイル選択画面がＯＰＥＮ」、「印刷画面がＯＰＥＮ」および「プリンタドライバがＯＰＥＮ」が保存され、操作ＤＢ４にはユーザシーケンスである「文書”ｘｘ”を開く」、「印刷実施」および「用紙サイズ”Ａ４”に設定」、補完シーケンスである「Ａｐｐｌｉｃａｔｉｏｎを起動する」、「印刷画面を開く」、「プリンタドライバを閉じる」、「ファイル選択画面を開く」および「プリンタドライバを開く」が保存されている。
【００６９】
図９は、ユーザシーケンスの実行手順を示す図である。
【００７０】
図９に示すように、ＧＵＩ部の状態が「Ａｐｐｌｉｃａｔｉｏｎ画面がＣＬＯＳＥ」である際に、「文書”ｘｘ”を開く」、「用紙サイズ”Ａ４”に設定」、「印刷実施」の手順で実行する。
【００７１】
図１０は、ユーザシーケンスを手順通りに実行するために、補完シーケンスを補完する処理の具体例を示す図である。
【００７２】
ＧＵＩ部の状態が「Ａｐｐｌｉｃａｔｉｏｎ画面がＣＬＯＳＥ」である際に、ユーザシーケンスである「文書”ｘｘ”を開く」の実行を試みるも、「文書”ｘｘ”を開く」は「ＰＲＥ状態＝ファイル選択画面がＯＰＥＮ」なので、「Ａｐｐｌｉｃａｔｉｏｎ画面がＣＬＯＳＥ」の元では「文書”ｘｘ”を開く」を実行することはできない。
【００７３】
そこで、「ＰＯＳＴ状態＝ファイル選択画面がＯＰＥＮ」である補完シーケンスを操作ＤＢから検索し、「文書”ｘｘ”を開く」の実行の前に、「ＰＯＳＴ状態＝ファイル選択画面がＯＰＥＮ」である「ファイル選択画面を開く」の実行を仮決定する。しかし、「ファイル選択画面を開く」は「ＰＲＥ状態＝Ａｐｐｌｉｃａｔｉｏｎ画面がＯＰＥＮ」なので、「Ａｐｐｌｉｃａｔｉｏｎ画面がＣＬＯＳＥ」の元では「ファイル選択画面を開く」を実行することはできない。
【００７４】
そこで、「ＰＯＳＴ状態＝Ａｐｐｌｉｃａｔｉｏｎ画面がＯＰＥＮ」である補完シーケンスを操作ＤＢから検索し、「ファイル選択画面を開く」の実行の前に、「ＰＯＳＴ状態＝Ａｐｐｌｉｃａｔｉｏｎ画面がＯＰＥＮ」である「Ａｐｐｌｉｃａｔｉｏｎを起動する」の実行を仮決定する。ここで、「Ａｐｐｌｉｃａｔｉｏｎを起動する」は「ＰＲＥ状態＝Ａｐｐｌｉｃａｔｉｏｎ画面がＣＬＯＳＥ」なので、「Ａｐｐｌｉｃａｔｉｏｎ画面がＣＬＯＳＥ」の元で「Ａｐｐｌｉｃａｔｉｏｎを起動する」を実行することができる。
【００７５】
同様に補完操作により「Ａｐｐｌｉｃａｔｉｏｎ画面がＣＬＯＳＥ」の実行を仮決定し、「Ａｐｐｌｉｃａｔｉｏｎ画面がＣＬＯＳＥ」の元で「Ａｐｐｌｉｃａｔｉｏｎを起動する」を実行すると、ＧＵＩ部の状態が「Ａｐｐｌｉｃａｔｉｏｎ画面がＯＰＥＮ」に変化し、次に「Ａｐｐｌｉｃａｔｉｏｎ画面がＯＰＥＮ」の元で「ファイル選択画面を開く」を実行すると、ＧＵＩ部の状態が「ファイル選択画面がＯＰＥＮ」に変化する。そして、「ファイル選択画面がＯＰＥＮ」の元でユーザシーケンスである「文書”ｘｘ”を開く」を実行することができ、「文書”ｘｘ”を開く」を実行すると、ＧＵＩ部の状態が「Ａｐｐｌｉｃａｔｉｏｎ画面がＯＰＥＮ」に変化する。
【００７６】
ここで、ＧＵＩ部の状態が「Ａｐｐｌｉｃａｔｉｏｎ画面がＯＰＥＮ」である際に、「用紙サイズ”Ａ４”に設定」の実行を試みるも、「用紙サイズ”Ａ４”に設定」は「ＰＲＥ状態＝プリンタドライバがＯＰＥＮ」なので、「Ａｐｐｌｉｃａｔｉｏｎ画面がＯＰＥＮ」の元では「用紙サイズ”Ａ４”に設定」を実行することはできない。
【００７７】
そこで、「ＰＯＳＴ状態＝プリンタドライバがＯＰＥＮ」である補完シーケンスを操作ＤＢから検索し、「用紙サイズ”Ａ４”に設定」の実行の前に、「ＰＯＳＴ状態＝プリンタドライバがＯＰＥＮ」である「プリンタドライバを開く」の実行を仮決定する。しかし、「プリンタドライバを開く」は「ＰＲＥ状態＝印刷画面がＯＰＥＮ」なので、「Ａｐｐｌｉｃａｔｉｏｎ画面がＯＰＥＮ」の元では「プリンタドライバを開く」を実行することはできない。
【００７８】
そこで、「ＰＯＳＴ状態＝印刷画面がＯＰＥＮ」である補完シーケンスを操作ＤＢから検索し、「プリンタドライバを開く」の実行の前に、「ＰＯＳＴ状態＝印刷画面がＯＰＥＮ」である「印刷画面を開く」の実行を仮決定する。ここで、「印刷画面を開く」は「ＰＲＥ状態＝Ａｐｐｌｉｃａｔｉｏｎ画面がＯＰＥＮ」なので、「Ａｐｐｌｉｃａｔｉｏｎ画面がＯＰＥＮ」の元で「印刷画面を開く」を実行することができる。
【００７９】
同様に補完操作により「印刷画面を開く」の実行を仮決定し、「Ａｐｐｌｉｃａｔｉｏｎ画面がＯＰＥＮ」の元で「印刷画面を開く」を実行すると、ＧＵＩ部の状態が「印刷画面がＯＰＥＮ」に変化し、次に「印刷画面がＯＰＥＮ」の元で「プリンタドライバを開く」を実行すると、ＧＵＩ部の状態が「プリンタドライバがＯＰＥＮ」に変化する。そして、「プリンタドライバがＯＰＥＮ」の元でユーザシーケンスである「用紙サイズ”Ａ４”に設定」を実行することができ、「用紙サイズ”Ａ４”に設定」を実行し、ＧＵＩ部の状態は「プリンタドライバがＯＰＥＮ」のままである。
【００８０】
ここで、ＧＵＩ部の状態が「プリンタドライバがＯＰＥＮ」である際に、「印刷実施」の実行を試みるも、「印刷実施」は「ＰＲＥ状態＝印刷画面がＯＰＥＮ」なので、「プリンタドライバがＯＰＥＮ」の元では「印刷実施」を実行することはできない。
【００８１】
そこで、「ＰＯＳＴ状態＝印刷画面がＯＰＥＮ」である補完シーケンスを操作ＤＢから検索し、「印刷実施」の実行の前に、「ＰＯＳＴ状態＝印刷画面がＯＰＥＮ（＝プリンタドライバがＣＬＯＳＥ）」である「プリンタドライバを閉じる」の実行を仮決定する。ここで、「プリンタドライバを閉じる」は「ＰＲＥ状態＝プリンタドライバがＯＰＥＮ」なので、「プリンタドライバがＯＰＥＮ」の元で「プリンタドライバを閉じる」を実行することができる。
【００８２】
そして、「プリンタドライバがＯＰＥＮ」の元で「プリンタドライバを閉じる」を実行すると、ＧＵＩ部の状態が「印刷画面がＯＰＥＮ」に変化する。そして、「印刷画面がＯＰＥＮ」の元でユーザシーケンスである「印刷実施」を実行することができ、「印刷実施」を実行し、テストは終了する。
【００８３】
次に、図１０で記述したユーザシーケンスを手順通りに実行するための補完シーケンスを補完する処理においての実際のＧＵＩ部の操作について説明する。
【００８４】
図１１は、ユーザシーケンスの実行手順の入力の一例を示す図である。
【００８５】
図１１に示すように、１番目の実行手順の操作の項目９に、「文書を開く」の操作が入力され、１番目の実行手順の値の項目１０には、開く文書として「ｘｘ」が入力され、１番目のユーザシーケンスとして「文書”ｘｘ”を開く」が決定し、２番目の実行手順の操作の項目１１に、「用紙サイズを設定」の操作が入力され、２番目の実行手順の値の項目１２には、用紙サイズとして「Ａ４」が入力され、２番目のユーザシーケンスとして「用紙サイズ”Ａ４”を設定」が決定し、３番目の実行手順の操作の項目１３に、「印刷実施」の操作が入力され、３番目のユーザシーケンスとして「印刷実施」が決定する。
【００８６】
以上のように、ユーザシーケンスの実行手順を容易に入力することができる。
【００８７】
図１２は、図１０におけるＧＵＩ部の状態が「Ａｐｐｌｉｃａｔｉｏｎ画面がＣＬＯＳＥ」の元で補完シーケンスである「Ａｐｐｌｉｃａｔｉｏｎを起動する」を実行している際の操作を示す図である。
【００８８】
図１２に示すように、マウス等のポインティングデバイス１４（以後、マウスと呼ぶ）により、「スタート」１５をクリックし、「プログラム」１６をクリックし、「Ａｐｐｌｉｃａｔｉｏｎ」１７をクリックすることで、Ａｐｐｌｉｃａｔｉｏｎが起動してＡｐｐｌｉｃａｔｉｏｎ画面が開く。
【００８９】
そして、Ａｐｐｌｉｃａｔｉｏｎ画面が開くと、「ファイル選択画面を開く」の補完シーケンスが実行され、ファイル選択画面が開く。
【００９０】
図１３は、図１０におけるＧＵＩ部の状態が「ファイル選択画面がＯＰＥＮ」の元でユーザシーケンスである「文書”ｘｘ”を開く」を実行している際の操作を示す図である。
【００９１】
図１３に示すように、マウス１４により、Ａｐｐｌｉｃａｔｉｏｎ画面１８に表示されたファイル選択画面１９上の「ｘｘ」の文書名２０を選択し、「開く」ボタン２１をクリックすることで、文書”ｘｘ”が開くとともに、ファイル選択画面１９が閉じる。
【００９２】
図１４は、図１０におけるＧＵＩ部の状態が「Ａｐｐｌｉｃａｔｉｏｎ画面がＯＰＥＮ」の元で補完シーケンスである「印刷画面を開く」を実行している際の操作を示す図である。
【００９３】
図１４に示すように、文書”ｘｘ”２２が表示され、マウス１４により、「ファイル」２３をクリックし、「印刷」２４をクリックすることで、印刷画面が開く。
【００９４】
図１５は、図１０におけるＧＵＩ部の状態が「印刷画面がＯＰＥＮ」の元で補完シーケンスである「プリンタドライバを開く」を実行している際の操作を示す図である。
【００９５】
図１５に示すように、マウス１４により、印刷画面２５上の「プロパティ」のボタン２６をクリックすることで、プリンタドライバが開く。
【００９６】
図１６は、図１０におけるＧＵＩ部の状態が「プリンタドライバがＯＰＥＮ」の元でユーザシーケンスである「用紙サイズ”Ａ４”に設定」を実行した後、補完シーケンスである「プリンタドライバを閉じる」を実行している際の操作を示す図である。
【００９７】
図１６に示すように、マウス１４により、プリンタドライバ２７上の「用紙サイズ」のコンボボックス２８を「Ａ４　２１０×２９７　ｍｍ」に設定し、「ＯＫ」のボタン２９をクリックすることで、プリンタドライバ２７が閉じる。
【００９８】
図１７は、図１０におけるＧＵＩ部の状態が「印刷画面がＯＰＥＮ」の元でユーザシーケンスである「印刷実施」を実行している際の操作を示す図である。
【００９９】
図１７に示すように、マウス１４により、印刷画面２５上の「ＯＫ」のボタン３０をクリックすることで、印刷が開始され、テストが終了する。
【０１００】
なお、上記実施例で説明したテスト実行装置と同様の動作を行うことが可能なテスト実行プログラムを、一般的なＰＣ（Ｐｅｒｓｏｎａｌ　Ｃｏｍｐｕｔｅｒ）にインストールする構成でも適用可能である。
【０１０１】
【発明の効果】
以上説明したように本発明によれば、ＧＵＩを含むソフトウェアの自動テストを容易に且つ確実に行うことを可能にするという効果を奏する。
【図面の簡単な説明】
【図１】本発明に係わるテスト実行装置１の概略構成の一例を示すブロック図である。
【図２】本実施例におけるＧＵＩ部の状態、シーケンスおよびシーケンス要素について詳細に説明する図である。
【図３】状態ＤＢ３に保存されたＧＵＩ部の状態の一例、および操作ＤＢ４に保存されたユーザシーケンスおよび補完シーケンスの一例を示す図である。
【図４】ユーザシーケンスを手順通りに実行するために、補完シーケンスを補完する処理を示す図である。
【図５】ユーザシーケンスを実行する際に行う処理手順を示すフローチャートである。
【図６】実行不可能なユーザシーケンスをスキップするために、補完シーケンスを補完する処理を示す図である。
【図７】実行不可能なユーザシーケンスをスキップする際に行う処理手順を示すである。
【図８】状態ＤＢ３に保存されたＧＵＩ部の状態の具体例、および操作ＤＢ４に保存されたユーザシーケンスおよび補完シーケンスの具体例を示す図である。
【図９】ユーザシーケンスの実行手順を示す図である。
【図１０】ユーザシーケンスを手順通りに実行するために、補完シーケンスを補完する処理の具体例を示す図である。
【図１１】ユーザシーケンスの実行手順の入力の一例を示す図である。
【図１２】図１０におけるＧＵＩ部の状態が「Ａｐｐｌｉｃａｔｉｏｎ画面がＣＬＯＳＥ」の元で補完シーケンスである「Ａｐｐｌｉｃａｔｉｏｎを起動する」を実行している際の操作を示す図である。
【図１３】図１０におけるＧＵＩ部の状態が「ファイル選択画面がＯＰＥＮ」の元でユーザシーケンスである「文書”ｘｘ”を開く」を実行している際の操作を示す図である。
【図１４】図１０におけるＧＵＩ部の状態が「Ａｐｐｌｉｃａｔｉｏｎ画面がＯＰＥＮ」の元で補完シーケンスである「印刷画面を開く」を実行している際の操作を示す図である。
【図１５】図１０におけるＧＵＩ部の状態が「印刷画面がＯＰＥＮ」の元で補完シーケンスである「プリンタドライバを開く」を実行している際の操作を示す図である。
【図１６】図１０におけるＧＵＩ部の状態が「プリンタドライバがＯＰＥＮ」の元でユーザシーケンスである「用紙サイズ”Ａ４”に設定」を実行した後、補完シーケンスである「プリンタドライバを閉じる」を実行している際の操作を示す図である。
【図１７】図１０におけるＧＵＩ部の状態が「印刷画面がＯＰＥＮ」の元でユーザシーケンスである「印刷実施」を実行している際の操作を示す図である。
【符号の説明】
１　　テスト実行装置
２　　入力部
３　　状態ＤＢ
４　　操作ＤＢ
５　　ユーザシーケンス実行手順部
６　　シーケンス実行部
７　　補完部
８　　状態確認部
９　　１番目の実行手順の操作の項目
１０　　１番目の実行手順の値の項目
１１　　２番目の実行手順の操作の項目
１２　　２番目の実行手順の値の項目
１３　　３番目の実行手順の操作の項目
１４　　マウス
１５　　「スタート」
１６　　「プログラム」
１７　　「Ａｐｐｌｉｃａｔｉｏｎ」
１８　　Ａｐｐｌｉｃａｔｉｏｎ画面
１９　　ファイル選択画面
２０　　「ｘｘ」の文書名
２１　　「開く」ボタン
２２　　文書”ｘｘ”
２３　　「ファイル」
２４　　「印刷」
２５　　印刷画面
２６　　「プロパティ」のボタン
２７　　プリンタドライバ
２８　　「用紙サイズ」のコンボボックス
２９、３０　　「ＯＫ」のボタン
【図１】
2004110267.tif 000003
【図２】
2004110267.tif 000004
【図３】
2004110267.tif 000005
【図４】
2004110267.tif 000006
【図５】
2004110267.tif 000007
【図６】
2004110267.tif 000008
【図７】
2004110267.tif 000009
【図８】
2004110267.tif 000010
【図９】
2004110267.tif 000011
【図１０】
2004110267.tif 000012
【図１１】
2004110267.tif 000013
【図１２】
2004110267.tif 000014
【図１３】
2004110267.tif 000015
【図１４】
2004110267.tif 000016
【図１５】
2004110267.tif 000017
【図１６】
2004110267.tif 000018
【図１７】
2004110267.tif 000019