(57)【要約】      （修正有）【課題】イベント駆動型ソフトウェアを試験する。【解決手段】イベント駆動型ソフトウェアアプリケーションから複数の対話式要素を得て５０２、各対話式要素について、１又は複数の座標を得て５０６、前記座標のうちの任意の１つにおいて、当該対話式要素が最上位層対話式要素であるかどうかを決定することにより、ユーザ対話式要素を特定し５０４、当該ユーザ対話式要素に基づきユーザ対話式要素に基づき、イベント駆動型ソフトウェアアプリケーションを試験する５１０。【選択図】図５
2017111798.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実施されるソフトウェア試験の方法であって、前記方法は、
イベント駆動型ソフトウェアアプリケーションから複数の対話式要素を得るステップであって、前記対話式要素は、ユーザにより選択されるよう、及び選択されると結果として前記イベント駆動型ソフトウェアアプリケーションの中でイベントを生じるよう構成される、ステップと、
前記イベント駆動型ソフトウェアアプリケーションの第１の状態において、前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップであって、前記決定するステップは、
第１の対話式要素の１又は複数の座標を得るステップ、及び
前記第１の対話式要素が、前記１又は複数の座標のうちの任意の１つにおいて最上位層対話式要素であるかどうかを決定するステップ、
を含む、ステップと、
前記のユーザ対話式要素に基づき、前記イベント駆動型ソフトウェアアプリケーションを試験するステップと、
を有する方法。
【請求項２】
前記第１の対話式要素が前記１又は複数の座標のうちの１つにおいて前記最上位層対話式要素であるとき、前記第１の対話式要素は、前記第１の状態においてユーザ対話式であると決定される、請求項１に記載のコンピュータにより実施される方法。
【請求項３】
前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップは、前記第１の対話式要素がユーザインタフェースに表示可能でるか否かを決定するステップを更に有し、前記第１の対話式要素が表示可能であることに応答して、１又は複数の座標を得るステップと、前記第１の対話式要素が最上位層対話式要素であるかどうかを決定するステップと、を実行する、請求項１に記載のコンピュータにより実施される方法。
【請求項４】
前記第１の対話式要素の角の座標及び中央座標を含む複数の座標が得られる、請求項１に記載のコンピュータにより実施される方法。
【請求項５】
前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップは、
前記イベント駆動型ソフトウェアアプリケーションの前記第１の状態について、前記対話式要素を得るステップと、
前記対話式要素のうちの１つを選択するステップであって、前記の選択された対話式要素は前記第１の対話式要素である、ステップと、
前記イベント駆動型ソフトウェアアプリケーションの前記第１の状態について前記対話式要素のうちのどれがユーザ対話式であるかを決定するために、前記第１の状態の前記対話式要素の各々について、前記対話式要素のうちの１つを選択するステップ、１又は複数の座標を得るステップ、及び前記の選択された対話式要素が最上位層対話式要素であるかどうかを決定するステップ、を繰り返すステップと、
を更に有する、請求項１に記載のコンピュータにより実施される方法。
【請求項６】
前記イベント駆動型ソフトウェアアプリケーションの第２の状態において、前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップであって、前記第２の状態は、前記第１の状態の対話式要素の選択を通じて、前記イベント駆動型ソフトウェアアプリケーションの中で得られる、ステップと、
ユーザ対話式である前記対話式要素を用いて前記第２の状態のイベントシーケンスを構築するステップであって、前記イベント駆動型ソフトウェアアプリケーションは、前記イベントシーケンスに基づき試験される、ステップと、
を更に有する請求項１に記載のコンピュータにより実施される方法。
【請求項７】
前記第１の対話式要素は、前記イベント駆動型ソフトウェアアプリケーションの前記第１の状態及び前記第２の状態において、ユーザ対話式であるか否かが決定される、請求項６に記載のコンピュータにより実施される方法。
【請求項８】
ソフトウェアを試験するためにシステムに工程を実行させるよう構成されるコンピュータ実行可能命令を含む非一時的コンピュータ可読記憶媒体であって、前記工程は、
イベント駆動型ソフトウェアアプリケーションから複数の対話式要素を得るステップであって、前記対話式要素は、ユーザにより選択されるよう、及び選択されると結果として前記イベント駆動型ソフトウェアアプリケーションの中でイベントを生じるよう構成される、ステップと、
前記イベント駆動型ソフトウェアアプリケーションの第１の状態において、前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップであって、前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップは、
第１の対話式要素の１又は複数の座標を得るステップ、及び
前記第１の対話式要素が、前記１又は複数の座標のうちの任意の１つにおいて最上位層対話式要素であるかどうかを決定するステップ、
を含む、ステップと、
前記のユーザ対話式要素に基づき、前記イベント駆動型ソフトウェアアプリケーションを試験するステップと、
を有する、非一時的コンピュータ可読記憶媒体。
【請求項９】
前記第１の対話式要素が前記１又は複数の座標のうちの１つにおいて前記最上位層対話式要素であるとき、前記第１の対話式要素は、前記第１の状態においてユーザ対話式であると決定される、請求項８に記載の非一時的コンピュータ可読記憶媒体。
【請求項１０】
前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップは、前記第１の対話式要素がユーザインタフェースに表示可能であるか否かを決定するステップであって、前記第１の対話式要素が表示可能でることに応答して、前記の得るステップ及び前記決定するステップを実行する、ステップを含む工程を有する、請求項８に記載の非一時的コンピュータ可読記憶媒体。
【請求項１１】
前記第１の対話式要素の角の座標及び中央座標を含む複数の座標が得られる、請求項８に記載の非一時的コンピュータ可読記憶媒体。
【請求項１２】
前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップは、
前記イベント駆動型ソフトウェアアプリケーションの前記第１の状態について、前記対話式要素を得るステップと、
前記対話式要素のうちの１つを選択するステップであって、前記の選択された対話式要素は前記第１の対話式要素である、ステップと、
前記イベント駆動型ソフトウェアアプリケーションの前記第１の状態について前記対話式要素のうちのどれがユーザ対話式であるかを決定するために、前記第１の状態の前記対話式要素の各々について、前記対話式要素のうちの１つを選択するステップ、１又は複数の座標を得るステップ、及び前記第１の対話式要素が最上位層対話式要素であるかどうかを決定するステップ、を繰り返すステップと、
を更に有する、請求項８に記載の非一時的コンピュータ可読記憶媒体。
【請求項１３】
前記工程は、
前記イベント駆動型ソフトウェアアプリケーションの第２の状態において、前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップであって、前記第２の状態は、前記第１の状態の対話式要素の選択を通じて、前記イベント駆動型ソフトウェアアプリケーションの中で得られる、ステップと、
ユーザ対話式である前記対話式要素を用いて前記第２の状態のイベントシーケンスを構築するステップであって、前記イベント駆動型ソフトウェアアプリケーションは、前記イベントシーケンスに基づき試験される、ステップと、
を更に有する、請求項８に記載の非一時的コンピュータ可読記憶媒体。
【請求項１４】
前記第１の対話式要素は、前記イベント駆動型ソフトウェアアプリケーションの前記第１の状態及び前記第２の状態において、ユーザ対話式であるか否かが決定される、請求項１３に記載の非一時的コンピュータ可読記憶媒体。
【請求項１５】
コンピュータにより実施されるソフトウェア試験の方法であって、前記方法は、
イベント駆動型ソフトウェアアプリケーションから複数の対話式要素を得るステップであって、前記対話式要素は、ユーザにより選択されるよう、及び選択されると結果として前記イベント駆動型ソフトウェアアプリケーションにイベントを生じるよう構成される、ステップと、
前記イベント駆動型ソフトウェアアプリケーションの実際の実行を通じて、前記対話式要素のうちのどれが前記イベント駆動型ソフトウェアアプリケーションの第１の状態においてユーザ対話式であるかを決定するステップであって、前記決定するステップは、
前記イベント駆動型ソフトウェアアプリケーションの前記第１の状態の前記対話式要素を得るステップ、
前記第１の状態の前記対話式要素のうちの第１の対話式要素を選択するステップ、
前記第１の対話式要素がユーザインタフェースで表示可能か否かを決定するステップ、
前記第１の対話式要素が表示可能であることに応答して、前記第１の対話式要素の１又は複数の座標を得るステップ、及び
前記第１の対話式要素が前記１又は複数の座標のうちの任意の１つにおいて最上位層対話式要素であるかどうかを決定するステップ、
を含む、ステップと、
式を生成するために、前記のユーザ対話式要素に基づき、前記イベント駆動型ソフトウェアアプリケーションをシンボル実行するステップと、
前記イベント駆動型ソフトウェアアプリケーションを試験するためのテストケースを生成するために、前記式を解くステップと、
を有する方法。
【請求項１６】
前記第１の対話式要素の角の座標及び中央座標を含む複数の座標が得られる、請求項１５に記載のコンピュータにより実施される方法。
【請求項１７】
前記第１の対話式要素が前記１又は複数の座標のうちの１つにおいて前記最上位層対話式要素であるとき、前記第１の対話式要素は、前記第１の状態においてユーザ対話式であると決定される、請求項１５に記載のコンピュータにより実施される方法。
【請求項１８】
前記対話式要素のうちのどれが第１の状態においてユーザ対話式であるかを決定するステップは、
前記第１の状態の前記対話式要素のうちの第２の対話式要素を選択するステップと、
前記第２の対話式要素がユーザインタフェースで表示可能であるか否かを決定するステップと、
前記第２の対話式要素が表示可能であることに応答して、前記第２の対話式要素の１又は複数の座標を得るステップと、
前記第２の対話式要素が前記第２の対話式要素の前記１又は複数の座標のうちの任意１つにおいて最上位層対話式要素であるかどうかを決定するステップと、
を更に有する、請求項１５に記載のコンピュータにより実施される方法。
【請求項１９】
前記イベント駆動型ソフトウェアアプリケーションの第２の状態において、前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップであって、前記第２の状態は、前記第１の状態の対話式要素の選択を通じて、前記イベント駆動型ソフトウェアアプリケーションの中で得られる、ステップと、
ユーザ対話式である前記対話式要素を用いて前記第２の状態のイベントシーケンスを構築するステップであって、前記イベント駆動型ソフトウェアアプリケーションは、前記式を生成するために、前記イベントシーケンスに基づきシンボル実行される、ステップと、
を更に有する請求項１５に記載のコンピュータにより実施される方法。
【請求項２０】
前記第１の対話式要素は、前記イベント駆動型ソフトウェアアプリケーションの前記第１の状態及び前記第２の状態において、ユーザ対話式であるか否かが決定される、請求項１９に記載のコンピュータにより実施される方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願明細書で議論される実施形態は、イベント駆動型ソフトウェアの試験に関する。
【背景技術】
【０００２】
ソフトウェアを確認し又は検証するような、ソフトウェアの試験は、情報技術（ＩＴ）組織の中で共通の活動である。例えば、ソフトウェアが、１又は複数のクライアントコンピュータシステムにおいて実行するデスクトップアプリケーション、モバイル装置で実行するモバイル装置アプリケーション、又は１又は複数のサーバコンピュータシステムで実行するウェブアプリケーションであるかに拘わらず、ソフトウェアの品質を検証することは重要である場合が多い。ソフトウェアの中の幾つかの種類のエラーはユーザに不快感又は不便を引き起こすだけだが、他の種類のエラーは、データ及び経済的損失のような他の問題を引き起こす可能性がある。
【０００３】
よりユビキタスになっているある種のソフトウェアは、グラフィカルユーザインタフェース（ＧＵＩ）に基づくアプリケーション及びウェブに基づくアプリケーションのような、イベント駆動型ソフトウェアである。イベント駆動型ソフトウェアでは、ソフトウェアプログラムのフローは、ユーザ動作（マウスクリック、キー押下）、センサ出力、又は他のプログラム／スレッドからのメッセージのようなイベントにより決定されても良い。イベント駆動型ソフトウェアは、多数の異なるイベント、及び試験中に探索され得る対応するイベントシーケンスを有しても良い。多くの場合、多数のイベント及びイベントシーケンスは、イベントシーケンスの急増を生み出し得る。イベントシーケンスの急増は、結果として、時間のかかる及び／又はリソース集中型のイベント駆動型ソフトウェアの試験をもたらす。幾つかの例では、イベントシーケンスの急増から要求される処理の量は、試験を行うことができないほどになる場合がある。
【０００４】
本願明細書で請求される主題は、上述のような欠点を解決する実施形態や上述のような環境でのみ機能する実施形態に限定されない。むしろ、この背景技術は、単に、本願明細書に記載される複数の実施形態が実施される技術分野の一例を説明するために提供される。
【発明の概要】
【０００５】
一実施形態の一態様によると、コンピュータにより実施されるソフトウェア試験の方法は、イベント駆動型ソフトウェアアプリケーションから複数の対話式要素を得るステップを有しても良い。対話式要素は、ユーザにより選択されるよう及び選択されるとイベント駆動型ソフトウェアアプリケーションにおいてイベントを生じるよう構成されても良い。方法は、イベント駆動型ソフトウェアアプリケーションの第１の状態において、対話式要素のうちのどれがユーザ対話式であるかを決定するステップを更に有しても良い。幾つかの実施形態では、対話式要素のうちのどれがユーザ対話式であるかを決定するステップは、第１の対話式要素の１又は複数の座標を得るステップと、第１の対話式要素が１又は複数の座標のうちの任意の１つにおいて最上位層対話式要素であるかどうかを決定するステップと、有しても良い。方法は、ユーザ対話式要素に基づきイベント駆動型ソフトウェアアプリケーションを試験するステップを更に有しても良い。
【０００６】
実施形態の目的及び利点が理解され、少なくとも特に特許請求の範囲で指摘された要素、特徴及び組合せを用いて達成されるだろう。
【０００７】
上述の全体的説明及び以下の詳細な説明の両方は、例示及び説明のためであり、本発明の範囲を限定しないことが理解される。
【図面の簡単な説明】
【０００８】
例示的な実施形態は、添付の図面を用いて、更なる特異性及び詳細事項と共に記載され説明される。
【図１】ソフトウェアを試験するよう構成される例示的なシステムを表す図である。
【図２】イベント駆動型ソフトウェアの試験に関して使用され得る例示的なフローの図である。
【図３Ａ】例示的な対話式要素を示す。
【図３Ｂ】例示的な対話式要素のオーバレイを示す。
【図４】イベント駆動型ソフトウェアアプリケーションを試験し得る例示的な装置を示す。
【図５】ソフトウェア試験の例示的な方法のフローチャートである。
【図６Ａ】ソフトウェア試験の別の例示的な方法のフローチャートを示す。
【図６Ｂ】ソフトウェア試験の別の例示的な方法のフローチャートを示す。
【発明を実施するための形態】
【０００９】
本願明細書に記載される幾つかの実施形態は、電子装置のグラフィカルユーザインタフェース（ＧＵＩ）に基づくアプリケーション及びウェブに基づくアプリケーションのような、イベント駆動型ソフトウェアアプリケーションを試験する方法及びシステムに関する。イベント駆動型ソフトウェアアプリケーションのフローは、ソフトウェアにおいて「イベント」を生じる、ユーザに提示される異なる対話式要素との異なる人間の相互作用により決定され得る。イベント駆動型ソフトウェアアプリケーションは、試験中に調査され得る多数の異なるイベント及び対応するイベントシーケンスを有し得る。これは、イベント駆動型ソフトウェアアプリケーションを分析するとき、イベントシーケンスの急増問題に繋がり得る。
【００１０】
以下に詳述するように、イベント駆動型ソフトウェアアプリケーションの所与の状態は、機械可視対話式要素のセットを有しても良い。機械可視対話式要素の一部は、ユーザ対話式要素を有しても良い。本開示に記載される方法及びシステムは、ユーザ対話式であるイベント駆動型ソフトウェアアプリケーションの所与の状態における対話式要素を決定するよう構成されても良い。ユーザ対話式要素を識別することにより、イベントシーケンスは、イベント駆動型ソフトウェアアプリケーションを試験するために、ユーザ対話式要素のみを用いて構成され得る。ユーザ対話式要素のみを含むイベントシーケンスを構成することにより、生成されるイベントシーケンスの数は削減される。これにより、処理時間、リソース、複雑性、及び／又はイベント駆動型ソフトウェアアプリケーションを試験する他の特長を削減する。
【００１１】
幾つかの実施形態では、イベント駆動型ソフトウェアアプリケーションの所与の状態における対話式要素は、対話式要素の構造的属性、例えば符号化用語（coding  nomenclature）、及びトポロジ属性、例えば対話式要素のユーザへの提示位置、に基づき、ユーザ対話式であると決定されても良い。例えば、それらが表示され及びユーザ入力を受信し得ることを示し並びにディスプレイの中に提示される対話式要素の中の最上位位置を有する構造的属性を含む対話式要素は、所与の状態のユーザ対話式要素であると決定されても良い。
【００１２】
本開示の実施形態を、添付の図面を参照して以下に説明する。
【００１３】
図１は、本願明細書に記載の少なくとも１つの実施形態に従い構成される、ソフトウェアを試験するよう構成される例示的なシステム１００を示す図である。システム１００は、イベント駆動型ソフトウェアアプリケーションの試験結果１７０を生成するために、イベント駆動型ソフトウェアアプリケーションの被試験ソフトウェア１０２に関して試験を実行するよう構成される試験システム１１０を有しても良い。被試験ソフトウェア１０２は、例えばイベント駆動型ソフトウェアアプリケーション、イベント駆動型ソフトウェアアプリケーションのコード、ライブラリ、アプリケーション、スクリプト、又は処理装置による実行のための他のロジック若しくは命令のような、電子データを有しても良い。幾つかの実施形態では、被試験ソフトウェア１０２は、イベント駆動型ソフトウェアアプリケーションの完全なインスタンスを有しても良い。追加又は代替で、被試験ソフトウェア１０２は、イベント駆動型ソフトウェアアプリケーションの一部を有しても良い。被試験ソフトウェア１０２は、イベント駆動型ソフトウェアアプリケーションのために使用され得る任意の適切な種類のコンピュータ言語で書かれても良い。
【００１４】
以下に詳述するように、試験システム１１０は、被試験ソフトウェア１０２を検査するのに役立ち得る、被試験ソフトウェア１０２に関する一連の工程を実行するよう構成されても良い。図示のように、試験システム１１０は、処理モジュール１２０と、シーケンスモジュール１３０と、対話モジュール１４０と、状態管理モジュール１５０と、シンボル実行モジュール１６０と、を有しても良い。
【００１５】
処理モジュール１２０は、被試験ソフトウェア１０２を得るよう構成されても良い。例えば、被試験ソフトウェア１０２は、ウェブサイトのＨＴＭＬコードであっても良い。上述の及び他の実施形態では、処理モジュール１２０は、ウェブサイトのウェブアドレスを用いる、ウェブサイトのｈｔｍｌコードを要求しても良い。
【００１６】
被試験ソフトウェア１０２を得た後に、処理モジュール１２０は、被試験ソフトウェア１０２をパースし、パースした被試験ソフトウェア１０２を試験システム１１０の助けとなるフォーマットで格納しても良い。上述の及び他の実施形態では、処理モジュール１２０は、被試験ソフトウェア１０２の中の対話式要素を識別しても良い。上述の及び他の実施形態では、処理モジュール１２０は、対話式要素の特性に基づき、対話式要素を識別しても良い。例えば、対話式要素は、要素が対話式であることを示す符号化用語に基づき、被試験ソフトウェア１０２の中で定められても良い。代替で又は追加で、処理モジュール１２０は、被試験ソフトウェア１０２に関する他の情報へのアクセスに基づき、要素が対話式かどうかを決定しても良い。例えば、被試験ソフトウェア１０２がウェブページからのＨＴＭＬである場合、処理モジュール１２０は、要素の文書オブジェクトモデル（document  object  model：ＤＯＭ）属性に基づき、要素が対話式であると決定しても良い。幾つかの実施形態では、処理モジュール１２０は、ヘッドレスウェブブラウザ及びＪａｖａＳｃｒｉｐｔ(登録商標)インタプリタであっても良い。代替で又は追加で、処理モジュール１２０は、何らかの他のソフトウェアであっても良い。
【００１７】
概して、対話式要素は、ユーザに提示される及びユーザにより相互作用されるよう構成される任意の要素であっても良い。例えば、対話式要素は、ボタン、ラベル、リンク、フィールド、又はグラフィックス、特にユーザが被試験ソフトウェア１０２と相互作用することを可能にする他のグラフィックユーザインタフェース要素、であっても良い。幾つかの実施形態では、対話式要素とのユーザの相互作用は、被試験ソフトウェア１０２の中でイベントを生じ得る。被試験ソフトウェア１０２の中のイベントは、被試験ソフトウェア１０２の中の任意の変化であっても良い。例えば、対話式要素とのユーザの相互作用は、被試験ソフトウェア１０２の中の変数の変化を生じ得る。代替で又は追加で、イベントは、被試験ソフトウェア１０２によりユーザに提示されるものを変化しても良い。例えば、イベントは、結果として、前の表示と異なる及び前の表示の特長を含まない新しい表示をユーザに提示させても良い。代替で又は追加で、イベントは、結果として、ユーザに提示されている現在の表示に変化を生じても良い。例えば、ボックスのチェックは、前にユーザ対話式でなかった対話式要素を活性化しても良い。
【００１８】
幾つかの実施形態では、被試験ソフトウェア１０２の中のイベントの発生は、結果として、被試験ソフトウェア１０２の新しい状態を生じても良い。被試験ソフトウェア１０２の各々の状態は、相互作用されると結果として被試験ソフトウェア１０２が異なる状態に変化するイベントを生じ得る１又は複数の対話式要素を有しても良い。同じ対話式要素は、被試験ソフトウェア１０２の複数の状態においてユーザによる相互作用のために利用可能であっても良い。幾つかの実施形態では、被試験ソフトウェア１０２の状態は、前の状態の対話式要素とのユーザ相互作用に基づきアクセスされても良い。したがって、状態は、イベントのシーケンスに基づき、被試験ソフトウェア１０２の中でアクセスされても良い。
【００１９】
状態、イベント、及び対話式要素の一例は、オンライン購入のためのソフトウェアについて以下に提供される。ソフトウェアの第１の状態は、異なる商品に関連付けられるカートを空にするボタン及び複数のカートに追加するボタンのような複数の対話式要素を有しても良い。これらの対話式要素の各々は、ユーザにより相互作用されても良い。例えば、ユーザは、表示された商品について、カートに追加するボタンを選択しても良い。その結果、価格フィールドは、カートの中の商品の価格を示すよう変化しても良く、例示的なソフトウェアは第２の状態に入っても良い。第２の状態では、購入ボタンが、カートを空にするボタン及び複数のカートに追加するボタンと一緒に、ソフトウェアにより提示されても良い。第２の状態では、ユーザは、購入ボタンを選択しても良い。購入ボタンの選択は、ソフトウェアを第３の状態に入らせても良い。第３の状態では、支払いフィールドを有する購入ディスプレイが提供されても良い。購入ディスプレイは、カートに追加するボタンがもはやユーザ対話式ではないように、カートに追加するボタンを覆っても良い。
【００２０】
試験システム１１０による被試験ソフトウェア１０２の試験は、可能なイベントシーケンスを決定するステップと、被試験ソフトウェア１０２の中のエラー又は他の問題について各々のイベントシーケンスを試験するステップと、を有しても良い。シーケンスモジュール１３０は、所与の状態の中で生じ得るイベントを決定し、及び相応して異なるイベントシーケンスを生成するよう構成されても良い。例えば、所与の状態は、該状態に到達するために、イベントシーケンスＡ、Ｂ、Ｃを有しても良い。状態の中で、処理モジュール１２０は、対話式要素Ｄ＊、Ｅ＊、Ｆ＊に基づき生じ得る３つの異なるイベントＤ、Ｅ、Ｆが存在することを示しても良い。
【００２１】
所与の状態及び該状態に関連する異なるイベントに基づき、イベントシーケンスを決定する前に、シーケンスモジュール１３０は、処理モジュール１２０が所与の状態の中で対話式であると示す全ての要素を得ても良い。所与の状態の中で処理モジュール１２０により対話式であると決定された要素は、機械対話式要素として参照されても良い。シーケンスモジュール１３０は、対話モジュール１４０に機械対話式要素を提供しても良い。
【００２２】
処理モジュール１２０は所与の状態の中で要素を対話式要素であると決定するが、これは、対話式要素がユーザ対話式であることを意味しないことに留意する。例えば、処理モジュール１２０は、所与の状態の中で要素が対話式であると示すが、被試験ソフトウェア１０２が実施されるとき、要素は所与の状態の中でユーザ対話式ではない場合がある。例えば、オンライン購入のためのソフトウェアに関して前述した例では、処理モジュール１２０は、購入ディスプレイを有する第３の状態の中で、カートに追加するボタンが対話式であることを示しても良い。しかしながら、オンライン購入のための例示的なソフトウェアの実際の実装では、購入ディスプレイは、第３の状態の間にユーザがカートに追加するボタンと相互作用できないように、カートに追加するボタンを覆っても良い。要するに、要素の符号化用語又は要素の列挙される属性に完全に依存することは、所与の状態の中で要素がユーザ対話式であることを正しく示さない場合がある。要素の符号化用語又は対話式要素の列挙される属性は、被試験ソフトウェア１０２の所与の状態の中で要素が対話式であり得ることを示すが、所与の状態で、該所与の状態の中の対話式要素がユーザ対話式要素であることを示さない場合がある。上述の及び他の実施形態では、符号化用語又は対話式要素の列挙される属性に基づき決定されるような対話式要素が対話式である状態では、対話式要素は、機械対話式要素として参照されても良い。対話モジュール１４０は、所与の状態で対話式要素がユーザ対話式要素に適するように、所与の状態について、対話式要素がユーザと相互作用されるかどうかを決定するよう構成されても良い。
【００２３】
対話モジュール１４０は、所与の状態の機械対話式要素を受信しても良く、機械対話式要素のうちのどれが所与の状態についてユーザ対話式要素であるかを決定しても良い。幾つかの実施形態では、対話モジュール１４０は、被試験ソフトウェア１０２の実際の実行を用いて、機械対話式要素のうちのどれがユ―ザ対話式要素であるかを決定しても良い。上述の及び他の実施形態では、対話モジュール１４０は、被試験ソフトウェア１０２にコードを注入し、被試験ソフトウェア１０２に関する情報を得るために、被試験ソフトウェア１０２を正しく走らせても良い。得られた情報を用いて、対話モジュール１４０は、ユーザ対話式要素を決定しても良い。
【００２４】
上述の及び他の実施形態では、対話モジュール１４０は、ユーザ対話式要素が所与の状態において最上位の提示位置にあることに基づき、該所与の状態についてユーザ対話式要素を決定しても良い。所与の状態において最上位の提示位置は、対話式要素の少なくとも一部が所与の状態においてユーザに提示され、別の要素、ディスプレイ、ページ、又は他の提示により完全に覆われ又は見えなくされないことを示しても良い。対話モジュール１４０の機能の一例は、図２を参照して提供され、対話式要素が見えなくなることは、図３Ｂに更に示される。対話モジュール１４０は、所与の状態について機械対話式要素のうちのどれがユーザ対話式要素であるかを示しても良い。
【００２５】
所与の状態についてユーザ対話式要素の指示を与えた後に、シーケンスモジュール１３０は、ユーザ対話式要素のイベントシーケンスを構築しても良く、ユーザ対話式要素ではない機械対話式要素を無視しても良い。シーケンスモジュール１３０は、状態管理モジュール１５０にユーザ対話式イベントシーケンスを提供しても良い。例えば、所与の状態に到達するためにイベントＡ、Ｂ、Ｃ、及び所与の状態における対話式要素Ｄ＊、Ｅ＊、Ｆ＊に基づき生じ得る３つの異なるイベントＤ、Ｅ、Ｆを有する前出の例を続ける。シーケンスモジュール１３０が、要素Ｄ＊及びＦ＊がユーザ対話式であるが、要素Ｅ＊がユーザ対話式ではないことの指示を受信する場合、要素Ｅ＊は所与の状態においてユーザ対話式要素ではないので、シーケンスモジュール１３０は、ユーザ対話式要素Ｄ＊及びＦ＊からのイベントＤ及びＦに基づくがイベントＥには基づかないイベントシーケンスを生成しても良い。したがって、シーケンスモジュール１３０は、Ａ，Ｂ，Ｃ及びＤ、並びにＡ，Ｂ，Ｃ，及びＦのユーザ対話式イベントシーケンスを構築しても良い。対話モジュール１４０を有しないで、シーケンスモジュール１３０は、３つのイベントシーケンス、つまりＡ，Ｂ，Ｃ及びＤ；Ａ，Ｂ，Ｃ及びＥ；Ａ，Ｂ，Ｃ，及びＦ、を生成しても良い。別の状態では、要素Ｅ＊は、ユーザ対話式要素であると決定されても良い。したがって、イベントＥは、他の状態においてシーケンスモジュール１３０により生成されるユーザ対話式イベントシーケンスの部分であり得る。
【００２６】
状態管理モジュール１５０は、シンボル実行モジュール１６０による試験の現在の状態を管理するよう構成されても良い。上述の及び他の実施形態では、状態管理モジュール１５０は、シーケンスモジュール１４０からユーザ対話式イベントシーケンスを受信しても良く、試験のためのユーザ対話式イベントシーケンスをシンボル実行モジュール１６０に提供しても良い。状態管理モジュール１５０は、シンボル実行モジュール１６０から、新しい状態の指示も受信しても良い。新しい状態に基づき、状態管理モジュール１５０は、各々の状態のユーザ対話式イベントシーケンスについて、シーケンスモジュール１３０に要求しても良い。
【００２７】
シンボル実行モジュール１６０は、状態管理モジュール１５０により提供されるイベントシーケンスを用いて、被試験ソフトウェア１０２をシンボル実行するよう構成されても良い。上述の及び他の実施形態では、シンボル実行モジュール１６０は、被試験ソフトウェア１０２の中の変数をシンボル変数で置き換え、シンボル変数を用いて被試験ソフトウェア１０２を実行しても良い。シンボル変数を用いるコードの実行は、結果としてシンボル式を生じても良い。シンボル実行モジュール１６０は、シンボル式を解くよう構成されても良い。シンボル式を解くことができるとき、イベントシーケンスは所与の具体的入力があれば実行できるように符号化されることを示し得る。さらに、シンボル式を解くことは、被試験ソフトウェア１０２の更なる試験のために所与のイベントシーケンスを実際に実行できる入力と共にテストケースが生成できるようにする。シンボル式を解くことができないとき、イベントシーケンスは所与の具体的入力と共に実行されないように符号化されることを示し得る。上述の及び他の実施形態では、イベントシーケンスは、被試験ソフトウェア１０２における論理フロー又は被試験ソフトウェア１０２における何らかの他のエラーに基づき実行されなくても良い。幾つかの実施形態では、シンボル実行モジュール１６０は、状態管理モジュール１５０に新しい状態情報を提供するよう更に構成されても良い。
【００２８】
幾つかの実施形態では、シンボル実行モジュール１６０は、被試験ソフトウェア１０２のシンボル実行に関する更なる情報を提供しても良い。例えば、情報は、他の情報の中でも特に、解かれるべきイベントシーケンスの数、解決不可能イベントシーケンスの数、に関連しても良い。幾つかの実施形態では、被試験ソフトウェア１０２の試験に関する情報は、テストケースと共に、テスト結果１７０として試験システム１１０により出力されても良い。幾つかの実施形態では、シンボル実行モジュール１６０及び／又は試験システム１１０は、被試験ソフトウェア１０２の他の試験を実行するよう構成されても良い。上述の及び他の実施形態では、試験システム１１０により試験されるイベントシーケンスは、ユーザ対話式要素から生じるイベントを有し構築されても良い。例えば、イベントシーケンスは、被試験ソフトウェア１０２の中で識別された全ての対話式要素ではないが、ユーザ対話式要素から生じるイベントのみを用いて構築されても良い。イベントシーケンスの中のイベントの数、又はイベントシーケンスの数を削減することにより、試験システム１１０は、被試験ソフトウェア１０２を試験するための処理時間及び／又は処理リソースを削減できる。
【００２９】
本開示の範囲から逸脱することなくシステム１００に対し変更、追加又は省略が行われても良い。例えば、試験システム１１０は、複数の異なる構成で構成されても良い。例えば、試験システム１１０の中のモジュールのうちの１又は複数は、モジュールのうちの他のものと結合され又は追加モジュールに分割されても良い。幾つかの実施形態では、モジュールは、プロセッサにより実行されるよう構成される命令群であっても良い。上述及び他の実施形態では、命令は異なるグループ又は構成にグループ化されても良い。代替又は追加で、追加命令は、試験システム１１０に追加され又はそれから除去されても良い。さらに、試験システム１１０は、被試験ソフトウェア１０２のシンボル試験に加えて、他の種類の試験を実行するよう構成されても良い。上述の及び他の実施形態では、ユーザ対話式要素は、被試験ソフトウェア１０２を試験するための処理時間及び／又は処理リソースを削減するために、全ての対話式要素から区別されても良い。
【００３０】
図２は、本願明細書に記載の少なくとも一実施形態に従う、イベント駆動型ソフトウェアの試験に関して使用され得る例示的なフロー２００の図である。幾つかの実施形態では、フロー２００は、被試験ソフトウェア２０２において対話式要素がユーザ対話式要素であるか否かを決定するための一実施形態を説明するために構成されても良い。特に、フロー２００は、被試験ソフトウェア２０２の第１の状態において対話式要素がユーザ対話式要素であるか否かを決定するよう構成されても良い。上述及び他の実施形態では、フロー２００の一部は、図１の試験システム１１０の中の対話モジュール１４０の動作の一例であっても良い。
【００３１】
フロー２００は、ブロック２１０で開始しても良い。ブロック２１０で、被試験ソフトウェア２０２の中の対話式要素が決定されても良い。被試験ソフトウェア２０２の中の対話式要素は、被試験ソフトウェア２０２の静的又は活動分析に基づき決定されても良い。幾つかの実施形態では、対話式要素は、対話式要素の符号化用語に基づき決定されても良い。例えば、対話式要素は、関数であっても良く、又はディスプレイに要素を提示することに関する、選択された符号化言語の中のコマンドのような、命令を含む関数を呼び出しても良い。例えば、被試験ソフトウェア２０２が文書マークアップ言語であるとき、用語が対話式要素であることを決定するために、要素が「ｄｉｓｐｌａｙ」又は「ｂｉｓｉｂｉｌｉｔｙ」のカスケード型シート要素を含むかどうかが決定されても良い。
【００３２】
代替又は追加で、対話式要素は、タッチスクリーン、マウス、キーボード、又は何らかの他の入力／出力装置のような入力／出力装置からユーザ入力を受信することに関して、選択された符号化言語の中のコマンドのような命令を有しても良い。幾つかの実施形態では、符号化コマンド、関数、又は他の符号セグメントのような他の符号化用語は、要素が対話式要素であることを示しても良い。決定された対話式要素は、機械対話式要素２１２であっても良い。
【００３３】
ブロック２２０で、機械対話式要素２１２のうちの１つは、選択対話式要素２２２として選択されても良い。ブロック２３０で、選択対話式要素２２２がディスプレイの中でユーザに提示可能であるかどうかが決定されても良い。選択対話式要素２２２が提示可能であるかどうかを決定するために、被試験ソフトウェア２０２は、実行機械を用いて実際に実行されても良い。例えば、被試験ソフトウェア２０２が、ＨＴＭＬ及び／又はＪａｖａＳｃｒｉｐｔのような文書マークアップ言語である場合、ウェブブラウザ、ウェブブラウザドライバ、又は同様のソフトウェアは、選択対話式要素２２２がウェブブラウザによりディスプレイの中でユーザに提示可能であるかどうかを決定するために、被試験ソフトウェア２０２を実際に実行するために使用されても良い。例えば、幾つかの実施形態では、選択対話式要素２２２がユーザに提示可能かどうかを決定するために、Ｓｅｌｅｎｉｕｍのようなソフトウェアを用いて試験コードが実行されても良い。別の例として、選択対話式要素２２２がユーザに提示可能かどうかを決定するために、Ｓｅｌｅｎｄｒｏｉｄのようなソフトウェアを用いて試験コードが実行されても良い。
【００３４】
選択対話式要素２２２がディスプレイの中でユーザに提示可能ではないように、被試験ソフトウェア２０２が構成される場合、フロー２００はブロック２２０に進んでも良い。ブロック２２０に戻ると、機械対話式要素２１２のうちの別の１つが、選択対話式要素２２２として選択されても良い。選択対話式要素２２２として選択されていない機械対話式要素２１２がもはや存在しない場合、フロー２００は終了しても良い。選択対話式要素２２２がディスプレイの中でユーザに提示可能であるように、被試験ソフトウェア２０２が構成される場合、フロー２００はブロック２４０に進んでも良い。
【００３５】
ブロック２４０で、選択対話式要素２２２の座標及び寸法２４２が得られても良い。上述の及び他の実施形態では、選択対話式要素２２２の座標及び寸法２４２は、選択対話式要素２２２がディスプレイ上でユーザに提示可能であるとき、選択対話式要素２２２の座標及び寸法を表しても良い。上述の及び他の実施形態では、座標は、選択対話式要素２２２の角であっても良く、寸法は、選択対話式要素２２２の周囲のサイズ及び構成であっても良い。例えば、選択対話式要素２２２は、ユーザに提示されるとき、長方形形状を有しても良い。上述の及び他の実施形態では、選択対話式要素２２２の座標は、選択対話式要素２２２の右上角のディスプレイ上のピクセル位置、又は選択対話式要素２２２の何らかの他の位置であっても良い。選択対話式要素２２２の寸法は、選択対話式要素２２２の４辺のピクセル単位の長さを有しても良い。幾つかの実施形態では、座標及び寸法２４２は、被試験ソフトウェア２０２に注入されたコードセグメントにより得られても良い。上述の及び他の実施形態では、コードセグメントは、被試験ソフトウェア２０２が実際に実行されるとき、座標及び寸法２４２を提供するためにコードを実行する命令を有しても良い。代替又は追加で、座標及び寸法２４２は、選択対話式要素２２２の座標及び寸法２４２を含み得るコード定義を得るために、選択対話式要素２２２を静的分析することにより得られても良い。
【００３６】
図３Ａは、本願明細書に記載の少なくとも一実施形態による例示的な対話式要素３００ａを示す。対話式要素３００ａは、集合的に座標３０２として参照される、第１の座標３０２ａ、第２の座標３０２ｂ、第３の座標３０２ｃ、第４の座標３０２ｄ、第５の座標３０２ｅ、を有しても良い。図示のように、第１の座標３０２ａは座標であっても良く、寸法は、対話式要素３００ａの４辺の長さであっても良い。
【００３７】
図２に戻ると、ブロック２５０で、選択対話式要素２２２の複数の座標２５２は、座標及び寸法２４２を用いて計算されても良い。幾つかの実施形態では、座標２５２は、選択対話式要素２２２の頂点であっても良い。例えば、選択対話式要素２２２が長方形形状を有するとき、長方形の４つの角のピクセル位置が座標であっても良い。代替又は追加で、座標２５２は、ユーザに提示されるとき、選択対話式要素２２２により覆われる追加座標を有しても良い。例えば、座標２５２は、選択対話式要素２２２の頂点、及び選択対話式要素２２２の内部にある１又は複数の座標を有しても良い。選択対話式要素２２２の内部にある１又は複数の座標は、選択対話式要素２２２の中央、又は選択対話式要素２２２の何らかの他の内部座標を有しても良い。
【００３８】
例えば、図３Ａに示すように、対話式要素３００ａの頂点は、第１の座標３０２ａ、第２の座標３０２ｂ、第３の座標３０２ｃ、第４の座標３０２ｄであっても良い。上述の及び他の実施形態では、図２のブロック２５０で計算される座標２５２は、座標３０２のうちの１又は複数であっても良い。幾つかの実施形態では、図２のブロック２５０で計算される座標２５２は、対話式要素３００ａの内部にある第５の座標３０２ｅを有しても良い。
【００３９】
図２に戻ると、ブロック２６０で、座標２５２に対応する最上位層対話式要素２６２が得られても良い。上述の及び他の実施形態では、最上位層対話式要素２６２は、被試験ソフトウェア２０２の所与の状態の層対話式要素であっても良い。最上位層がユーザに提示可能である、対話式要素のスタックを想定すると、最上位層対話式要素２６２は、ユーザに提示されている及び最上位層にあって別の対話式要素により隠されていない又は覆われていない要素であっても良い。座標２５２に対応する最上位層対話式要素２６２は、座標２５２を含む、所与の状態の最上位層対話式要素であっても良い。
【００４０】
幾つかの実施形態では、対話式要素は、各々の座標２５２について得られても良い。したがって、座標２５２と同数の最上位層対話式要素２６２が存在する。しかしながら、上述の及び他の実施形態では、１又は複数の、及び幾つかの実施形態では全部の最上位層対話式要素２６２は、同じ対話式要素であっても良い。例えば、第１の最上位層対話式要素が座標２５２の全部を覆う場合、最上位層対話式要素２６２は、座標２５２の各々に対応する第１の最上位層対話式要素のみを含んでも良い。代替で、異なる最上位層対話式要素が座標２５２の各々に対応しても良い。したがって、最上位層対話式要素２６２は、座標２５２の数と等しい数の異なる対話式要素を含んでも良い。
【００４１】
幾つかの実施形態では、最上位層対話式要素２６２は、被試験ソフトウェア２０２に注入されたコードセグメントにより得られても良い。上述の及び他の実施形態では、コードセグメントは、被試験ソフトウェア２０２が実際に実行されるとき、座標２５２の各々について最上位層対話式要素２６２を提供するためにコードを実行するソフトウェアの命令を有しても良い。例えば、被試験ソフトウェア２０２がＨＴＭＬ又はＪａｖａＳｃｒｉｐｔである場合、座標２５２について最上位層対話式要素２６２を得るために、ＪａｖａＳｃｒｉｐｔのｄｏｃｕｍｅｎｔ．ｅｌｅｍｅｎｔＦｒｏｍＰｏｉｎｔ（）のような関数がコードに注入されても良い。
【００４２】
代替又は追加で、最上位層対話式要素２６２は、選択対話式要素２２２の座標及び寸法２４２を含み得るコード定義を得るために、座標２５２を静的分析することにより得られても良い。
【００４３】
例えば、図３Ｂは、本願明細書に記載の少なくとも一実施形態による例示的な対話式要素のオーバレイを示す。例えば、図３Ｂは、対話式要素３００ａにオーバレイしているオーバレイ要素３１０を示す。図３Ｂに示すように、オーバレイ要素３１０と対話式要素３００ａの両者は、ユーザに提示されている。しかしながら、オーバレイ要素３１０は、対話式要素３００ａの一部にオーバレイしている。したがって、オーバレイ要素３１０に含まれる座標では、他の対話式要素がオーバレイ要素３１０の一部を覆っていないので、オーバレイ要素３１０は、最上位対話式要素と考えられる。したがって、第２の座標３０２ｂ、第４の座標３０２ｄ、第５の座標３０２ｅでは、オーバレイ要素３１０は、最上位層対話式要素であると考えられる。これに対し、第１の座標３０２ａ及び第２の座標３０２ｂでは、対話式要素３００ａは、最上位層対話式要素と考えられる。
【００４４】
図３Ｂに示す例では、図２のフロー２００において、座標３０２は座標２５２に対応すると仮定すると、第５の座標３０２に対応する最上位層対話式要素２６２は、対話式要素３００ａ及びオーバレイ要素３１０であり得る。上述の及び他の実施形態では、対話式要素３００ａは、第１の座標３０２ａ及び第３の座標３０２ｃに対応し、オーバレイ要素３１０は、第２の座標３０２ｂ、第４の座標３０２ｄ、及び第５の座標３０２ｅに対応し得る。
【００４５】
図２に戻ると、ブロック２７０で、選択対話式要素２２２は、最上位層対話式要素２６２と比較される。選択対話式要素２２２が最上位層対話式要素２６２のうちの１つに合致するとき、選択対話式要素２２２は、ユーザ対話式要素であり得る最上位層対話式要素である。上述及び他の実施形態では、フロー２００は、ブロック２８０へと継続しても良い。選択対話式要素２２２が最上位層対話式要素２６２のうちの１つに合致しないとき、選択対話式要素２２２は、最上位層対話式要素ではない。結果として、選択対話式要素２２２は、座標２５２のうちのいずれにおいてもユーザにより相互作用されず、ユーザ対話式要素ではないと決定できる。上述及び他の実施形態では、フロー２００は、ブロック２２０へと継続しても良い。ブロック２８０で、選択対話式要素２２２は、ユーザ対話式要素としてラベル付けされても良い。フロー２００はブロック２２０に進んでも良い。
【００４６】
ブロック２２０に戻ると、機械対話式要素２１２のうちの別の１つが、選択対話式要素２２２として選択されても良い。選択対話式要素２２２として選択されるべき機械対話式要素２１２がもはや存在しない場合、フロー２００は終了しても良い。フロー２００の終わりに、機械対話式要素２１２の部分集合は、ユーザ対話式要素としてラベル付けされても良い。幾つかの実施形態では、ユーザ対話式要素としてラベル付けされた対話式要素は、図１に関して記載したような被試験ソフトウェア２０２の試験のために使用されても良い。代替又は追加で、ユーザ対話式要素としてラベル付けされた対話式要素は、任意の他の目的のために使用されても良い。
【００４７】
本開示の範囲から逸脱することなくフロー２００に対し変更、追加又は省略が行われても良い。例えば、当業者は、この処理及び本願明細書に開始した他の処理及び方法において、その処理及び方法で実行される機能が異なる順序で実施されても良いことを理解するだろう。さらに、概略のステップ及び動作は、単に例として提供され、幾つかのステップ及び動作は、開示の実施形態の本質から逸脱することなく、任意であり、より少ないステップ及び動作に組み合わされ、又は追加ステップ及び動作に拡張されても良い。例えば、ブロック２３０は、フロー２００から省略されても良い。代替又は追加で、ブロック２４０乃至２７０は、フロー２００から省略されても良い。
【００４８】
図４は、本願明細書に記載の少なくとも一実施形態による例示的なシステム４００を示す。システム４００は、ソフトウェアを試験するよう構成される任意の適切なシステム、機器、又は装置を有しても良い。システム４００は、プロセッサ４１０、メモリ４２０、データ記憶装置４３０を有しても良く、これらは全て通信可能に結合されても良い。データ記憶装置４３０は、試験モジュール４３２、被試験ソフトウェア４３４、試験結果４３６、及びテストケース４３８のような種々のデータを有しても良い。
【００４９】
概して、プロセッサ４１０は、任意の適切な特定用途向け又は汎用コンピュータ、コンピューティングエンティティ、又は種々のコンピュータハードウェア若しくはソフトウェアモジュールを有しても良く、任意の適切なコンピュータ可読媒体に格納された命令を実行するよう構成され得る処理装置を用いて実施されても良い。例えば、プロセッサ４１０は、マイクロプロセッサ、マイクロコントローラ、デジタシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）又はプログラム命令を解釈し及び／若しくは実行し並びに／又はデータを処理するよう構成された任意の他のデジタル若しくはアナログ回路を有しても良い。
【００５０】
図４には単一のプロセッサを示したが、プロセッサ４１０は、本願明細書に記載の任意の数の演算を個々に又は共同で実行するよう構成される任意の数のネットワーク又は物理的位置に渡り分散される任意の数のプロセッサを有しても良いことが理解される。幾つかの実施形態では、プロセッサ４１０は、プログラム命令を解釈し及び／又は実行し、及び／又はメモリ４２０、データ記憶装置４３０又はメモリ４２０及びデータ記憶装置４３０に格納されたデータを処理してもよい。幾つかの実施形態では、プロセッサ４１０は、データ記憶装置４３０からプログラム命令をフェッチし、該プログラム命令をメモリ４２０にロードしても良い。
【００５１】
プログラム命令がメモリ４２０にロードされた後、プロセッサ４１０は、それぞれ図２、５、６Ａ、６Ｂのフロー２００及び／又は方法５００及び６００を実行するための命令のようなプログラム命令を実行しても良い。例えば、プロセッサ４１０は、試験モジュール４３２をメモリ４２０にロードし、被試験ソフトウェア４３４を試験するために試験モジュール４３２の中で命令を実行しても良い。命令の実行は、結果として、それぞれ図１、２、５、６Ａ、６Ｂの試験システム１１０、フロー２００及び／又は方法５００及び６００を実行するための命令のようなプログラム命令を実行しても良い。上述の及び他の実施形態では、被試験ソフトウェア４３４を試験するために試験モジュール４３２を実行することは、結果として、試験結果４３６及びテストケース４３８を生成する。
【００５２】
メモリ４２０及びデータ記憶装置４３０は、コンピュータ実行可能命令又はデータ構造を伝える又は格納しているコンピュータ可読記憶媒体又は１又は複数のコンピュータ可読記憶媒体を含み得る。このようなコンピュータ可読媒体は、プロセッサ４１０のような汎用又は特定目的コンピュータによりアクセスできる任意の利用可能な媒体であり得る。
【００５３】
例として且つ限定ではなく、このようなコンピュータ可読媒体は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read−Only  Memory）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＣＤ−ＲＯＭ（Compact  Disc  Read−Only  Memory）又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶装置、フラッシュメモリ装置（例えば、固体メモリ素子）を含む非一時的コンピュータ可読記憶媒体、又はコンピュータにより実行可能な命令若しくはデータ構造の形式で所望のプログラムコード手段を伝える若しくは格納するために用いられ汎用若しくは特定目的コンピュータによりアクセス可能な他の記憶媒体を有し得る。上述の組合せも、コンピュータ可読記憶媒体の範囲に包含され得る。コンピュータ実行可能命令は、例えば、プロセッサ４１０に特定の工程又は工程のグループを実行させるよう構成される命令及びデータを含み得る。
【００５４】
本開示の範囲から逸脱することなくシステム４００に対し変更、追加又は省略が行われても良い。例えば、データ記憶装置４３０は、複数の場所に置かれ且つネットワークを通じてプロセッサ４１０によりアクセスされる複数の異なる記憶媒体であっても良い。
【００５５】
図５は、本願明細書に説明される少なくとも一実施形態による、ソフトウェア試験の例示的な方法５００のフローチャートである。幾つかの実施形態では、方法５００に関連する工程のうちの１又は複数は、試験システム１１０により実行されても良い。代替又は追加で、方法５００は、任意の適切なシステム、機器、又は装置により実行されても良い。例えば、図４のシステム４００のプロセッサ４１０は、方法５００に関連する工程のうちの１又は複数を実行しても良い。別個のブロックとして示したが、所望の実装に依存して、方法５００のブロックのうちの１又は複数に関連するステップ及び工程は、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
【００５６】
方法５００は、ブロック５０２で開始し、イベント駆動型ソフトウェアアプリケーションからの複数の対話式要素が得られても良い。対話式要素は、ユーザにより選択されるよう及び選択されるとイベント駆動型ソフトウェアアプリケーションにおいてイベントを生じるよう構成されても良い。ブロック５０４で、イベント駆動型ソフトウェアアプリケーションの第１の状態において、対話式要素のうちのどれがユーザ対話式であるかが決定されても良い。
【００５７】
ブロック５０６で、第１の対話式要素の１又は複数の座標が得られても良い。幾つかの実施形態では、第１の対話式要素の角の座標及び中央座標を含む複数の座標が得られても良い。
【００５８】
ブロック５０８で、１又は複数の座標のうちの任意の１つにおいて、第１の対話式要素が最上位層対話式要素であるかどうかが決定されても良い。幾つかの実施形態では、第１の対話式要素が１又は複数の座標のうちの１つにおいて最上位層対話式要素であるとき、第１の対話式要素は、ユーザ対話式であると決定されても良い。
【００５９】
幾つかの実施形態では、対話式要素のうちのどれがユーザ対話式であるかを決定するステップは、第１の対話式要素がユーザインタフェースの中で表示可能であるか否かを決定するステップを更に有しても良い。上述の及び他の実施形態では、第１の対話式要素が表示可能であることに応答して、１又は複数の座標が得られても良く、第１の対話式要素が最上位層対話式要素であるかどうかが決定されても良い。
【００６０】
幾つかの実施形態では、対話式要素のうちのどれがユーザ対話式要素であるかを決定するステップは、イベント駆動型ソフトウェアアプリケーションの第１の状態について対話式要素を得るステップと、対話式要素のうちの１つを選択するステップと、を更に有しても良い。上述の及び他の実施形態では、対話式要素のうちの１つを選択するステップ、１又は複数の座標を得るステップ、及び選択対話式要素が最上位層対話式要素でるかどうかを決定するステップは、イベント駆動型ソフトウェアアプリケーションの第１の状態について対話式要素のうちのどれがユーザ対話式であるかを決定するために、第１の状態の対話式要素の各々について繰り返されても良い。
【００６１】
ブロック５１０で、イベント駆動型ソフトウェアアプリケーションは、ユーザ対話式要素に基づき試験されても良い。
【００６２】
当業者は、この処理及び本願明細書に開始した他の処理及び方法において、その処理及び方法で実行される機能が異なる順序で実施されても良いことを理解するだろう。さらに、概略のステップ及び動作は、単に例として提供され、幾つかのステップ及び動作は、開示の実施形態の本質から逸脱することなく、任意であり、より少ないステップ及び動作に組み合わされ、又は追加ステップ及び動作に拡張されても良い。
【００６３】
例えば、方法５００は、イベント駆動型ソフトウェアアプリケーションの第２の状態において、対話式要素のうちのどれがユーザ対話式であるかを決定するステップを更に有しても良い。第２の状態は、第１の状態の中の対話式要素の選択を通じて、イベント駆動型ソフトウェアアプリケーションの中で得られても良い。方法５００は、ユーザ対話式である対話式要素を用いて第３の状態についてイベントシーケンスを構築するステップを更に有しても良い。上述の及び他の実施形態において、イベント駆動型ソフトウェアアプリケーションは、イベントシーケンスに基づき試験されても良い。
【００６４】
上述の及び他の実施形態では、第１の対話式要素が、イベント駆動型ソフトウェアアプリケーションの第１の状態及び第２の状態において、ユーザ対話式であるか否かが決定されても良い。
【００６５】
図６Ａ及び６Ｂは、本願明細書に説明される少なくとも一実施形態による、ソフトウェア試験の別の例示的な方法６００のフローチャートである。幾つかの実施形態では、方法６００に関連する工程のうちの１又は複数は、試験システム１１０により実行されても良い。代替又は追加で、方法６００は、任意の適切なシステム、機器、又は装置により実行されても良い。例えば、図４のシステム４００のプロセッサ４１０は、方法６００に関連する工程のうちの１又は複数を実行しても良い。別個のブロックとして示したが、所望の実装に依存して、方法６００のブロックのうちの１又は複数に関連するステップ及び工程は、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
【００６６】
方法６００は、ブロック６０２で開始し、イベント駆動型ソフトウェアアプリケーションからの複数の対話式要素が得られても良い。対話式要素は、ユーザにより選択されるよう及び選択されるとイベント駆動型ソフトウェアアプリケーションにおいてイベントを生じるよう構成されても良い。
【００６７】
ブロック６０４で、イベント駆動型ソフトウェアアプリケーションの実際の実行を通じて、イベント駆動型ソフトウェアアプリケーションの第１の状態において、対話式要素のうちのどれがユーザ対話式であるかが決定されても良い。
【００６８】
ブロック６０６で、イベント駆動型ソフトウェアアプリケーションの第１の状態の対話式要素が得られても良い。ブロック６０８で、第１の状態の対話式要素のうちの１つの第１の対話式要素が選択されても良い。ブロック６１０で、第１の対話式要素がユーザインタフェースに表示可能でるか否かが決定されても良い。
【００６９】
ブロック６１２で、第１の対話式要素が表示可能であることに応答して、第１の対話式要素の１又は複数の座標が得られても良い。幾つかの実施形態では、第１の対話式要素の角の座標及び中央座標を含む複数の座標が得られても良い。
【００７０】
ブロック６１４で、１又は複数の座標のうちの任意の１つにおいて、第１の対話式要素が最上位層対話式要素であるかどうかが決定されても良い。幾つかの実施形態では、第１の対話式要素が１又は複数の座標のうちの１つにおいて最上位層対話式要素であるとき、第１の対話式要素は、ユーザ対話式であると決定されても良い。
【００７１】
幾つかの実施形態では、第１の状態において対話式要素のうちのどれがユーザ対話式であるかを決定するステップは、第１の状態の対話式要素のうちの第２の対話式要素を選択するステップと、第２の対話式要素がユーザインタフェースに表示可能か否かを決定するステップと、を更に有しても良い。幾つかの実施形態では、第２の対話式要素が表示可能であることに応答して、方法６００は、第２の対話式要素の１又は複数の座標を得るステップと、第２の対話式要素の１又は複数の座標のうちの任意の１つにおいて第２の対話式要素が最上位層対話式要素であるかどうかを決定するステップと、を有しても良い。
【００７２】
ブロック６１６で、イベント駆動型ソフトウェアアプリケーションは、ユーザ対話式要素に基づきシンボル実行されて、式を生成しても良い。ブロック６１８で、式が解かれ、イベント駆動型ソフトウェアアプリケーションのテストケースを生成しても良い。
【００７３】
当業者は、この処理及び本願明細書に開始した他の処理及び方法において、その処理及び方法で実行される機能が異なる順序で実施されても良いことを理解するだろう。さらに、概略のステップ及び動作は、単に例として提供され、幾つかのステップ及び動作は、開示の実施形態の本質から逸脱することなく、任意であり、より少ないステップ及び動作に組み合わされ、又は追加ステップ及び動作に拡張されても良い。
【００７４】
例えば、方法６００は、イベント駆動型ソフトウェアアプリケーションの第２の状態において、対話式要素のうちのどれがユーザ対話式であるかを決定するステップを更に有しても良い。第２の状態は、第１の状態の中の対話式要素の選択を通じて、イベント駆動型ソフトウェアアプリケーションの中で得られても良い。方法６００は、ユーザ対話式である対話式要素を用いて第３の状態についてイベントシーケンスを構築するステップを更に有しても良い。上述の及び他の実施形態において、イベント駆動型ソフトウェアアプリケーションは、イベントシーケンスに基づきシンボル実行されて、式を生成しても良い。上述の及び他の実施形態では、第１の対話式要素が、イベント駆動型ソフトウェアアプリケーションの第１の状態及び第２の状態において、ユーザ対話式であるか否かが決定されても良い。
【００７５】
上述のように、本願明細書に記載した実施形態は、以下に更に詳細に議論するように、種々のコンピュータハードウェア又はソフトウェアモジュールを備えた特定用途向け又は汎用コンピュータ（例えば、図４のプロセッサ４１０）の使用を含み得る。さらに、上述のように、本願明細書に記載の実施形態は、コンピュータ実行可能命令又はデータ構造を伝える又はそれを格納されたコンピュータ可読媒体（例えば、図４のメモリ４２０又はデータ記憶装置４３０）を用いて実施されても良い。
【００７６】
本願明細書で用いられるように、用語「モジュール」又は「コンポーネント」は、モジュール若しくはコンポーネントの動作を実行するよう構成される特定ハードウェア実装、及び／又はコンピューティングシステムの汎用ハードウェア（例えばコンピュータ可読媒体、処理装置、等）に格納され及び／又はそれらにより実行され得るソフトウェアオブジェクト若しくはソフトウェアルーチンを表しても良い。幾つかの実施形態では、本願明細書に記載されたのと異なるコンポーネント、モジュール、エンジン及びサービスは、（例えば、別個のスレッドとして）コンピューティングシステムで実行されるオブジェクト又は処理として実施されても良い。本願明細書に記載のシステム及び方法の幾つかは概して（汎用ハードウェアに格納される及び／又はそれにより実行される）ソフトウェアで実装されるように記載されたが、専用ハードウェアの実装又はソフトウェアと専用ハードウェアの組み合わせの実装も可能であり考えられる。この説明では、「コンピュータエンティティ」は、本願明細書で先に定められたようにコンピューティングシステム、又はコンピューティングシステムで実行されるモジュール若しくはモジュールの組合せであっても良い。
【００７７】
本開示で及び特に添付の特許請求の範囲（例えば、添付の特許請求の範囲の本体）で使用される用語は、概して、広義の（open）用語と考えられる（例えば、用語「含む（including）」は「含むが、限定されない」と解釈されるべきであり、用語「有する（having）」は「少なくとも有する」と解釈されるべきであり、用語「含む（includes）」は「含むが、限定されない」と解釈されるべきである）。
【００７８】
さらに、特定数の導入された請求項の引用が意図される場合、このような意図は、請求項の中に明示的に示され、このような引用が存在しない場合はこのような意図が存在しない。例えば、理解の助けとして、以下の添付の特許請求の範囲は、請求項の引用を導入するために、「少なくとも１つの」及び「１又は複数の」をいう前置語句の使用を含み得る。しかしながら、このような語句の使用は、同じ請求項が前置語句「１又は複数」又は「少なくとも１つの」及び「ａ又はａｎ」のような不定冠詞を含むときでも、不定冠詞「ａ、ａｎ」による請求項引用の導入がこのような導入された請求項引用を含む任意の特定の請求項をこのような引用を１つだけ含む実施形態に限定することを示すと考えられてはならない（例えば、「ａ」及び／又は「ａｎ」は「少なくとも１つの」又は「１又は複数の」を意味すると解釈されるべきである）。同様のことは、請求項引用を導入するために使用される定冠詞の使用についても該当する。
【００７９】
さらに、特定数の導入された請求項引用が明示的に引用される場合、当業者は、このような引用が少なくとも引用された番号を意味することと解釈されるべきであることを認識するだろう（例えば、「２つの引用」はそのままで、他の変更が無ければ、少なくとも２つの引用、又は２以上の引用を意味する）。さらに、「Ａ、Ｂ、Ｃ、等のうちの少なくとも１つ」又は「Ａ、Ｂ、Ｃ、等のうちの１又は複数」に類似する慣例が用いられる例では、通常、このような構成は、Ａのみ、Ｂのみ、Ｃのみ、Ａ及びＢを一緒に、Ａ及びＣを一緒に、Ｂ及びＣを一緒に、又はＡ、Ｂ、Ｃを一緒に、等を含むと意図される。
【００８０】
さらに、２以上の代替用語を表す任意の離接語又は語句は、説明、請求項、又は図面の中であるかに係わらず、用語のうちの１つ、用語のうちのいずれか、又は両方の用語を含む可能性を包含すると理解されるべきである。例えば、語句「Ａ又はＢ」は、「Ａ」又は「Ｂ」又は「Ａ及びＢ」の可能性を含むと理解されるべきである。
【００８１】
本願明細書に記載された全ての例及び条件文は、教育上の目的で、読者が本発明の原理及び発明者により考案された概念を理解するのを助け、技術を促進させるためであり、これらの特に記載された例及び条件に限定されないものと考えられるべきである。本開示の実施形態が詳細に記載されたが、種々の変更、置換及び修正が本開示の精神及び範囲から逸脱することなく行われうることが理解されるべきである。
【００８２】
以上の実施形態に加えて、更に以下の付記を開示する。
（付記１）  コンピュータにより実施されるソフトウェア試験の方法であって、前記方法は、
イベント駆動型ソフトウェアアプリケーションから複数の対話式要素を得るステップであって、前記対話式要素は、ユーザにより選択されるよう、及び選択されると結果として前記イベント駆動型ソフトウェアアプリケーションの中でイベントを生じるよう構成される、ステップと、
前記イベント駆動型ソフトウェアアプリケーションの第１の状態において、前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップであって、前記決定するステップは、
第１の対話式要素の１又は複数の座標を得るステップ、及び
前記第１の対話式要素が、前記１又は複数の座標のうちの任意の１つにおいて最上位層対話式要素であるかどうかを決定するステップ、
を含む、ステップと、
前記のユーザ対話式要素に基づき、前記イベント駆動型ソフトウェアアプリケーションを試験するステップと、
を有する方法。
（付記２）  前記第１の対話式要素が前記１又は複数の座標のうちの１つにおいて前記最上位層対話式要素であるとき、前記第１の対話式要素は、前記第１の状態においてユーザ対話式であると決定される、付記１に記載のコンピュータにより実施される方法。
（付記３）  前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップは、前記第１の対話式要素がユーザインタフェースに表示可能でるか否かを決定するステップを更に有し、前記第１の対話式要素が表示可能であることに応答して、１又は複数の座標を得るステップと、前記第１の対話式要素が最上位層対話式要素であるかどうかを決定するステップと、を実行する、付記１に記載のコンピュータにより実施される方法。
（付記４）  前記第１の対話式要素の角の座標及び中央座標を含む複数の座標が得られる、付記１に記載のコンピュータにより実施される方法。
（付記５）  前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップは、
前記イベント駆動型ソフトウェアアプリケーションの前記第１の状態について、前記対話式要素を得るステップと、
前記対話式要素のうちの１つを選択するステップであって、前記の選択された対話式要素は前記第１の対話式要素である、ステップと、
前記イベント駆動型ソフトウェアアプリケーションの前記第１の状態について前記対話式要素のうちのどれがユーザ対話式であるかを決定するために、前記第１の状態の前記対話式要素の各々について、前記対話式要素のうちの１つを選択するステップ、１又は複数の座標を得るステップ、及び前記の選択された対話式要素が最上位層対話式要素であるかどうかを決定するステップ、を繰り返すステップと、
を更に有する、付記１に記載のコンピュータにより実施される方法。
（付記６）  前記イベント駆動型ソフトウェアアプリケーションの第２の状態において、前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップであって、前記第２の状態は、前記第１の状態の対話式要素の選択を通じて、前記イベント駆動型ソフトウェアアプリケーションの中で得られる、ステップと、
ユーザ対話式である前記対話式要素を用いて前記第２の状態のイベントシーケンスを構築するステップであって、前記イベント駆動型ソフトウェアアプリケーションは、前記イベントシーケンスに基づき試験される、ステップと、
を更に有する付記１に記載のコンピュータにより実施される方法。
（付記７）  前記第１の対話式要素は、前記イベント駆動型ソフトウェアアプリケーションの前記第１の状態及び前記第２の状態において、ユーザ対話式であるか否かが決定される、付記６に記載のコンピュータにより実施される方法。
（付記８）  ソフトウェアを試験するためにシステムに工程を実行させるよう構成されるコンピュータ実行可能命令を含む非一時的コンピュータ可読記憶媒体であって、前記工程は、
イベント駆動型ソフトウェアアプリケーションから複数の対話式要素を得るステップであって、前記対話式要素は、ユーザにより選択されるよう、及び選択されると結果として前記イベント駆動型ソフトウェアアプリケーションの中でイベントを生じるよう構成される、ステップと、
前記イベント駆動型ソフトウェアアプリケーションの第１の状態において、前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップであって、前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップは、
第１の対話式要素の１又は複数の座標を得るステップ、及び
前記第１の対話式要素が、前記１又は複数の座標のうちの任意の１つにおいて最上位層対話式要素であるかどうかを決定するステップ、
を含む、ステップと、
前記のユーザ対話式要素に基づき、前記イベント駆動型ソフトウェアアプリケーションを試験するステップと、
を有する、非一時的コンピュータ可読記憶媒体。
（付記９）  前記第１の対話式要素が前記１又は複数の座標のうちの１つにおいて前記最上位層対話式要素であるとき、前記第１の対話式要素は、前記第１の状態においてユーザ対話式であると決定される、付記８に記載の非一時的コンピュータ可読記憶媒体。
（付記１０）  前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップは、前記第１の対話式要素がユーザインタフェースに表示可能であるか否かを決定するステップであって、前記第１の対話式要素が表示可能でることに応答して、前記の得るステップ及び前記決定するステップを実行する、ステップを含む工程を有する、付記８に記載の非一時的コンピュータ可読記憶媒体。
（付記１１）  前記第１の対話式要素の角の座標及び中央座標を含む複数の座標が得られる、付記８に記載の非一時的コンピュータ可読記憶媒体。
（付記１２）  前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップは、
前記イベント駆動型ソフトウェアアプリケーションの前記第１の状態について、前記対話式要素を得るステップと、
前記対話式要素のうちの１つを選択するステップであって、前記の選択された対話式要素は前記第１の対話式要素である、ステップと、
前記イベント駆動型ソフトウェアアプリケーションの前記第１の状態について前記対話式要素のうちのどれがユーザ対話式であるかを決定するために、前記第１の状態の前記対話式要素の各々について、前記対話式要素のうちの１つを選択するステップ、１又は複数の座標を得るステップ、及び前記第１の対話式要素が最上位層対話式要素であるかどうかを決定するステップ、を繰り返すステップと、
を更に有する、付記８に記載の非一時的コンピュータ可読記憶媒体。
（付記１３）  前記工程は、
前記イベント駆動型ソフトウェアアプリケーションの第２の状態において、前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップであって、前記第２の状態は、前記第１の状態の対話式要素の選択を通じて、前記イベント駆動型ソフトウェアアプリケーションの中で得られる、ステップと、
ユーザ対話式である前記対話式要素を用いて前記第２の状態のイベントシーケンスを構築するステップであって、前記イベント駆動型ソフトウェアアプリケーションは、前記イベントシーケンスに基づき試験される、ステップと、
を更に有する、付記８に記載の非一時的コンピュータ可読記憶媒体。
（付記１４）  前記第１の対話式要素は、前記イベント駆動型ソフトウェアアプリケーションの前記第１の状態及び前記第２の状態において、ユーザ対話式であるか否かが決定される、付記１３に記載の非一時的コンピュータ可読記憶媒体。
（付記１５）  コンピュータにより実施されるソフトウェア試験の方法であって、前記方法は、
イベント駆動型ソフトウェアアプリケーションから複数の対話式要素を得るステップであって、前記対話式要素は、ユーザにより選択されるよう、及び選択されると結果として前記イベント駆動型ソフトウェアアプリケーションにイベントを生じるよう構成される、ステップと、
前記イベント駆動型ソフトウェアアプリケーションの実際の実行を通じて、前記対話式要素のうちのどれが前記イベント駆動型ソフトウェアアプリケーションの第１の状態においてユーザ対話式であるかを決定するステップであって、前記決定するステップは、
前記イベント駆動型ソフトウェアアプリケーションの前記第１の状態の前記対話式要素を得るステップ、
前記第１の状態の前記対話式要素のうちの第１の対話式要素を選択するステップ、
前記第１の対話式要素がユーザインタフェースで表示可能か否かを決定するステップ、
前記第１の対話式要素が表示可能であることに応答して、前記第１の対話式要素の１又は複数の座標を得るステップ、及び
前記第１の対話式要素が前記１又は複数の座標のうちの任意の１つにおいて最上位層対話式要素であるかどうかを決定するステップ、
を含む、ステップと、
式を生成するために、前記のユーザ対話式要素に基づき、前記イベント駆動型ソフトウェアアプリケーションをシンボル実行するステップと、
前記イベント駆動型ソフトウェアアプリケーションを試験するためのテストケースを生成するために、前記式を解くステップと、
を有する方法。
（付記１６）  前記第１の対話式要素の角の座標及び中央座標を含む複数の座標が得られる、付記１５に記載のコンピュータにより実施される方法。
（付記１７）  前記第１の対話式要素が前記１又は複数の座標のうちの１つにおいて前記最上位層対話式要素であるとき、前記第１の対話式要素は、前記第１の状態においてユーザ対話式であると決定される、付記１５に記載のコンピュータにより実施される方法。
（付記１８）  前記対話式要素のうちのどれが第１の状態においてユーザ対話式であるかを決定するステップは、
前記第１の状態の前記対話式要素のうちの第２の対話式要素を選択するステップと、
前記第２の対話式要素がユーザインタフェースで表示可能であるか否かを決定するステップと、
前記第２の対話式要素が表示可能であることに応答して、前記第２の対話式要素の１又は複数の座標を得るステップと、
前記第２の対話式要素が前記第２の対話式要素の前記１又は複数の座標のうちの任意１つにおいて最上位層対話式要素であるかどうかを決定するステップと、
を更に有する、付記１５に記載のコンピュータにより実施される方法。
（付記１９）  前記イベント駆動型ソフトウェアアプリケーションの第２の状態において、前記対話式要素のうちのどれがユーザ対話式であるかを決定するステップであって、前記第２の状態は、前記第１の状態の対話式要素の選択を通じて、前記イベント駆動型ソフトウェアアプリケーションの中で得られる、ステップと、
ユーザ対話式である前記対話式要素を用いて前記第２の状態のイベントシーケンスを構築するステップであって、前記イベント駆動型ソフトウェアアプリケーションは、前記式を生成するために、前記イベントシーケンスに基づきシンボル実行される、ステップと、
を更に有する付記１５に記載のコンピュータにより実施される方法。
（付記２０）  前記第１の対話式要素は、前記イベント駆動型ソフトウェアアプリケーションの前記第１の状態及び前記第２の状態において、ユーザ対話式であるか否かが決定される、付記１９に記載のコンピュータにより実施される方法。
【符号の説明】
【００８３】
１００  システム
１０２  被試験ソフトウェア
１１０  試験システム
１２０  処理モジュール
１３０  シーケンスモジュール
１４０  対話モジュール
１５０  状態管理モジュール
１６０  シンボル実行モジュール
１７０  試験結果
４００  システム
４１０  プロセッサ
４２０  メモリ
４３０  データ記憶装置
４３２  試験モジュール
４３４  被試験ソフトウェア
４３６  試験結果
４３８  テストケース
【図１】
2017111798.tif 000003
【図２】
2017111798.tif 000004
【図３Ａ】
2017111798.tif 000005
【図３Ｂ】
2017111798.tif 000006
【図４】
2017111798.tif 000007
【図５】
2017111798.tif 000008
【図６Ａ】
2017111798.tif 000009
【図６Ｂ】
2017111798.tif 000010