JP5437493B2 - ウェブ・アプリケーションを自動的にテストする方法およびシステム - Google Patents

ウェブ・アプリケーションを自動的にテストする方法およびシステム Download PDF

Info

Publication number
JP5437493B2
JP5437493B2 JP2012528291A JP2012528291A JP5437493B2 JP 5437493 B2 JP5437493 B2 JP 5437493B2 JP 2012528291 A JP2012528291 A JP 2012528291A JP 2012528291 A JP2012528291 A JP 2012528291A JP 5437493 B2 JP5437493 B2 JP 5437493B2
Authority
JP
Japan
Prior art keywords
web
web application
application
test
system event
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012528291A
Other languages
English (en)
Other versions
JP2013504139A (ja
Inventor
スコティ、アレサンドロ
カルテリ、フランチェスコ
ピンザウティ、フラビオ
ラザロ、ルカ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2013504139A publication Critical patent/JP2013504139A/ja
Application granted granted Critical
Publication of JP5437493B2 publication Critical patent/JP5437493B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、全般的に、ソフトウェア・アプリケーションの開発に関し、特に、ウェブ・アプリケーションをテストする方法に関する。
ウェブ・アプリケーションの大きな課題は、ウェブ・インターフェイスのテスト自動化の効果的な手法を発見することである。この問題は、web2.0(例えばDojoなど、AJAXまたはJavaScriptフレームワークなど)の新技術を用いて構築されたウェブ・インターフェイスとより大きな関連がある。web2.0アプリケーションのウェブ・ページは、単に動的であるだけではなく、多数のオブジェクト指向言語のDOM要素が複合した結果の、非常に複雑なアプリケーションである(DOMは、ドキュメント・オブジェクト・モデル(Document Object Model)であり、HTMLページの表現およびHTMLでのオブジェクト管理のための、ハードウェアおよび言語独立モデルである)。クライアント・サイド・ウェブ・アプリケーションを作成するためにバックエンドと対話してAJAX(asynchronous JavaScript and XML:非同期JavaScriptおよびXML)技術を実装し、さらにクライアント・サイドからの外観の変更を可能にするためにCSSスタイル・シートを適用するJavaScript(JavaScriptは、SUN Microsystems,Inc.、またはその子会社の米国および他の国々における商標または登録商標)コードによって、各DOM要素を動的に構築可能である。さらに、DOM要素を作成するためのコードは、多数のポイントに散在し、さらに、単一の機能性を実装するために別個に書かれるウィジェット(widget)(AJAXフレームワークを用いて作成される)によって生成されることもあり得る。
単一の機能性、単一のウィジェット・クラスをテストする単体テスト・スイートのシステムを実装することのみではなく、ウィジェットによって生成されるDOM要素、およびDOM要素を生じさせる他のパーティによって生成されるDOM要素間の実際の対話をテストすることも主な問題である。
ウェブ・アプリケーションをテストする従来技術のツールは、ウェブ・ページもしくはアプリケーションの「外部の」外観のみに基づくか、またはたとえDOM要素を認識しても、アプリケーションの内部は完全に見落とす。逆に、そうしたソフトウェアはホスティング環境に強く依存し(例えば、これらアプリケーションはブラウザで動作する)、それ自体の「外の」挙動にアクセスして駆動する手段がないことが理由で、アプリケーションにはこの重要な領域のテストを強制することができない。そのようなウェブ・アプリケーションを自動的にテストすることは、今日の課題である。
米国特許出願公開第2004/0025083(A1)号は、プログラムがその機能性をテストできるようテスト・コードをプログラムに埋め込む概略の考えを記載している。しかし、この発明の広い範囲にもかかわらず、当該方法を使用して、ブラウザおよびそれをホストするオペレーティング・システムのコンテキストにおいてアプリケーションの内部を完全にテストすることの問題を解決することはできない。環境の違いに依存するアプリケーションの一部コード部分は、テストすることができない。さらに、そうした違いのみではなく、そうした違いが実行をもたらし得る異なるコード・パスにも依存するアプリケーションの一部コード部分もテストされない。例えば、ウェブ・アプリケーションは、サポートされるブラウザそれぞれ、例えばInternet Explorer(Internet Explorerは、Microsoft Corporationの米国、他の国々、またはその両方における商標)、Firefox(Firefoxは、Mozilla Foundationの登録商標)、Opera(Operaは、Opera Software ASAの商標または登録商標のいずれか)などにおいて別々にテストされなければならない。しかし、テストのために、各ブラウザがもたらし得る違いを無視してソフトウェア関数に対する直接の呼び出しのみを考慮に入れるテスト・コードを用いるのでは信頼性がない。
ブラウザおよびそれをホストするオペレーティング・システムのコンテキストにおいてアプリケーションの内部をテストするために、ウェブ・インターフェイスのページにおけるユーザ入力をシミュレートするコードを、ウェブ・インターフェイス・コードに組み込む方法が必要である。
したがって、ウェブ・インターフェイスのページにおけるユーザ入力をシミュレートして、ブラウザおよびそれをホストするオペレーティング・システムのコンテキストにおいてウェブ・アプリケーションのウェブ・インターフェイスの内部データ構造(internal data structure)を検証する、自動テスト方法を得ることが、本発明の目的である。
この目的は、請求項1によれば、テスティング・コンピュータ(tensting computer)のウェブ・ブラウザ内で動作しているウェブ・アプリケーションを自動的にテストする方法を用いて達成され、ウェブ・アプリケーションは、テスト・コードを組み込まれており(400)、前記方法は、
−ユーザ入力をシミュレートするようHTTPサーバに求める、HTTPサーバへのメッセージを、ウェブ・アプリケーション内で実行されているテスト・コードから、ウェブ・アプリケーション内で定義されているAPIを介して送信するステップ(410)であって、前記ユーザ入力は、ウェブ・アプリケーション内で動作しているテスト・コードに関係する、ステップ(410)と、
−HTTPサーバがメッセージを受信するステップ(420)、メッセージに従い少なくとも1つのシステム・イベントによってユーザ入力をシミュレートするステップ、およびそれをウェブ・ブラウザに提供するステップと、
−シミュレートされた該少なくとも1つのシステム・イベントを、ウェブ・ブラウザが処理するステップ(430)であって、該少なくとも1つのシステム・イベント自体がウェブ・アプリケーション内の或るコードの実行をトリガする、ステップ(430)と、
−該少なくとも1つのシステム・イベントによるウェブ・アプリケーション内の或るコードのトリガの結果の妥当性を、JavaScriptおよびDOMオブジェクトを含むウェブ・アプリケーションの内部データ構造を検査することによって、ウェブ・アプリケーション内のテスト・コードが確認するステップ(440)と、
を含む。ウェブ・アプリケーションの内部データ構造は、ウェブ・ページから可視であるHTML要素、ならびに内部カウンタまたはその他の可能な変数およびオブジェクトを含む。
本方法は、シミュレートされたユーザ入力の後にデータ構造を検査することによってアプリケーションのデータ構造をテストすることも可能にする。本方法は、シミュレートされたユーザ入力が発生した後のオブジェクト・ステータスと、保存されているモデル・オブジェクト・ステータスとを比較することによって、アプリケーションの内部データ構造を確認することも可能にする。
オブジェクトは、HTML、DOM、またはJavaScriptオブジェクトであってもよい。自動テスト・システムは、HTTPサーバと、テストされるシステム入力に対応するシミュレートされたシステム・イベントを生成するコードとを含む。
ウェブ・アプリケーションを完全にテストするために、本発明の本方法は、何らかのテスト・コードを書いてそれをアプリケーションに埋め込むことを含むだけではなく、ウェブ・アプリケーションに、ユーザとウェブ・インターフェイスとの実際の対話を再現する能力を含む「外の」環境へのアクセスも与える。この方法は、人間のユーザまたは或る外部イベント・ソースにより入力がもたらされているかのように、入力を受信することができるよう、外部入力をシミュレートできるようにする。このようにして、ホスティング環境も、イベントを処理して、同じくアプリケーション挙動に直接作用するホスティング環境自体のデータ構造を更新することができるようになる。このシステムが整備されなければ、ソフトウェア機能性全体をカバーできるテストはない。
このウェブ・アプリケーションは、外部サービスを用いて「外」からそれ自体と対話する能力を有する。サービスは、ブラウザおよび外部システム(ディスクなど)を制御し、特別にエンコードされたURLを用いたHTTP接続によってサービスをウェブ・アプリケーションに提供する。その結果として、ウェブ・アプリケーションは、提供されるサービスを使用して、その内部状態を「外」から操作および制御するが、これは、現在のテスト自動化システムでは、通常は不可能である。
以下の方法およびシステムは、人間のユーザ入力を再現およびシミュレートして現在のテスト方法論の制限を打開し、このシミュレーションを使用してその内部データ構造およびアルゴリズムを検証する。本方法は、ウェブ・ページ自体の中のJavaScriptコードからユーザ入力によって生成されるシステム・イベントを呼び出し、ウェブ・インターフェイスに対する(したがって例えばオブジェクト・モデル要素、DOM要素に対する)変更を生じさせる。変更がDOM要素に反映されると(ユーザ・イベント・リクエストによって)、JavaScriptコードは、期待される値と比較して内部データ構造のステータスを確認できる。
本発明の方法は、以下の利点を提供する:
−アプリケーション・ウェブ・ページ内のすべてのDOM要素をテストすることによって、顧客シナリオを再現するDOM要素のあらゆることをテストできる。このソリューションは、他のタイプの製品ではカバーできない、上記の高度な例のセクションに関する興味深いテスト・ケースをカバーできるようにする。
−ウェブ・ページを、ページ自体の中および外でテスト可能である。
−DOM確認に基づき、もしくはJSON(JavaScript Object Notation(JavaScriptオブジェクト表記法)のことであり、文字列を用いてオブジェクトを表現する簡素な形式である)オブジェクト比較により、またはその両方で、検証ポイントを確認する方法。
−このソリューションは、DOJOフレームワークに適用されるだけではなく、ウェブ・ページのDOM要素を生成するために使用されるすべての技術に関して活用できる。
−本発明の方法は、テスト・スイートおよびアプリケーションに使用される言語がJavaScriptと異なっても実装可能である。言語は、ブラウザにより理解可能であればよい。
従来技術の自動テスト製品および方法論に関して、特にウェブ・アプリケーション用のものについては、現在最先端のものは多数の機能を提供しているが、結局のところ、テスト結果は、アプリケーションの「出力」と、正確であることが分かっている何らかのテンプレートとを比較することによって取得される。ウェブ・アプリケーションに関して出力とは、基本的に、ウェブ・アプリケーションが生じさせる、または変更するHTMLページであり、すなわち言い換えると、そのDOM表現である。本発明の方法を用いると、ウェブ・アプリケーションは、「外の」環境にアクセスでき、単純なコード・インストルメンテーションではできないと考えられる実際の挙動(人間の入力を含む)をシミュレートできる。プログラムの「外観」のみを検査できるツールは、内部構造を検査する能力を欠く。
本発明のソリューションを実装できるウェブ・アプリケーションの通常のコンテキストを示す。 ウェブ・アプリケーションの通常のコンテキストにおける好適な実施形態の方法の実装を示す。 好適な実施形態によるシミュレートされたイベントが横断するウェブ・アプリケーション環境の図である。 好適な実施形態による本発明の方法の概略のフローチャートである。
図1は、本発明のソリューションを実装できるウェブ・アプリケーションの通常のコンテキストを示す。ウェブ・アプリケーションの通常のコンテキストは、ユーザ・ワークステーション(105)のブラウザ(110)で動作しているウェブ・クライアント・アプリケーション(115)を含む。ブラウザは、ユーザのワークステーションのオペレーティング・システムのファイル・システム(120)を使用する。ウェブ・クライアント・アプリケーションは、ウェブ・アプリケーション・サーバ(100)から、ウェブ・アプリケーション・サーバがリモートであればネットワークを介してダウンロードされたものである。ウェブ・アプリケーションは、JavaScriptで書かれていてもよい。ユーザは、ブラウザによって生成されるウェブ・ページを介してアプリケーションと相互作用する。ユーザ入力は、システム・イベントを生成する、ウェブ・ページ・フィールドに記入されるデータであってもよい(例えばキーボードまたはマウスから)。
図2は、ウェブ・アプリケーションの通常のコンテキストにおける好適な実施形態の方法の実装を示す。テスティング・ホスト(240)上で動作するウェブ・アプリケーション(115)としての、ブラウザにより理解可能な言語、例えばJavaScriptで書かれたテスト・スイート。ウェブ・テスト自動化システム(200)は、テスティング・ホストで動作しているウェブ・アプリケーション(115)にテスト・サービスを提供する。テスト・サービスは、コマンドを受信するHTTPサーバ(210)、指定されたシステム・イベントを生成するシステム・イベント・ジェネレータ(215)、およびテスト・コンピュータがリモートである場合にテスト・スイートが動作するホストにイベントを送信するリモート・イベント・ディスパッチャ(225)の3つのサブシステムを含む。こうしたサブシステムは、ソフトウェア・プログラムとして実装されてもよい。リポジトリ(220)は、アプリケーションのステータスを表現するシリアル化されたオブジェクトまたは他のデータを読み込み/保存するためにテスト・サービスのサブシステムによって使用される(JSONを、リポジトリに記憶される線形化オブジェクト・エンコーディングの例とすることができるであろう)。
テスティング・ホストで動作しているウェブ・アプリケーションでは、JavaScript APIが、JavaScriptテスト・コードのセルフ・パイロット(Self−Piloting)を可能にする。JavaScript APIのセルフ・パイロット・コマンド(235)は、ブラウザ(ウェブ・アプリケーション)からのJavaScriptコードと、テスト・サービスとの通信を可能にする。ブラウザ・スタータ(230)はオプションであり、テスティング・ホストのURLでブラウザを立ち上げるためのものである。使用される場合、これは、リモート・イベント・ディスパッチャ(225)からイベントを受信する。リモート・イベント・ディスパッチャ(225)自体はシステム・イベント・ジェネレータ(215)からイベントを受信しており、それをブラウザに送る。ブラウザ・ランチャがない場合、ブラウザは、ウェブ・アプリケーション内のテスト・コード実行より前に起動されるため、ブラウザはシミュレートされたシステム・イベントを直接受信できる。ブラウザ(110)は、テスティング・ホスト上で同イベントを受信して処理する。ウェブ・アプリケーション内では、テスト・スイート・コード(html/JavaScript/Dojoコードを含むウェブ・ページ)が、オブジェクトをテストするコードを含み、JavaScript APIのセルフ・パイロット・コマンド(235)を使用して検証ポイントを確認し、テスト・サービスを提供するHTTPサーバ(210)へ向けたアクションをトリガする。
なお、テスト自動化システムおよびテスティング・サーバのコンポーネントを含むテスト・システム全体が、単一のコンピュータ上に存在することが可能であろう。テスト自動化システムおよびテスティング・サーバが単一のコンピュータ上に存在するこうした場合には、リモート・イベント・ディスパッチャ(225)を備える必要はなく、リポジトリはウェブ・アプリケーションのローカルにある。
JavaScript APIは、HTTPサーバとの通信を確立して、ウェブ・アプリケーションがイベント・コマンドを送信できるようにする。サービスは、コマンドを得て、ブラウザ(常に一番上のウィンドウとして動作する)がキャッチするキーボードまたはマウス・イベントを、システム・イベント・ジェネレータを介して生成し、イベントおよびウェブ・ページの変更が、ユーザ自身により引き起こされたかのように発生する。この時点で、テスト自動化コードは、それ自体の実行をウェブ・アプリケーション内で続ける。
例えばDOM確認などのウェブ・ページ・オブジェクト確認に基づく検証ポイントの例は、以下のとおりである。
ウェブ・インターフェイスがボタンを提供すると仮定する。ユーザがボタンをクリックすると、新しいパネルが表示される。この例では、テスト自動化のJavaScriptコードは次のとおりであるべきである:JavaScriptが、上記のボタンの要素上でのマウスのクリックをリクエストする。続いて、サービスが、JavaScript APIを介してコマンドを受信し、関係するシステム・イベントを生じさせる。イベントが受信されると、新たなパネルを含むよう新たなコンテナ構造(<DIV>)がDOM内に生成される(サブDOM)。続いてJavaScriptは、DOM要素が期待どおりに挿入されたかどうかを確認できる。
オブジェクト・ステータス確認に基づく例示としての検証ポイントは、以下のとおりである。
検証ポイントを実装するもう1つの方法は、オブジェクト(例えばJSON文字列(JSON string)として線形化)を保存してから、シミュレートされたシステム・イベントをリクエストすることであり、その結果、シミュレートされたシステム・イベントが受信されてDOMに対して変更が適用されると、先に保存されたJSONオブジェクトが読み込まれて、変更されたオブジェクトと比較されることができる。ウェブ・アプリケーションが、マウスが上にあるときに背景色を変更するウィジェットをウェブ・ページ内に含むと仮定する。マスタ値(master value)としてシリアル化されたウィジェット・オブジェクトをマスタ・リポジトリに有すると想定する(マウスがウィジェット上にあるときの色に関して期待される背景色を備える)。この場合、JavaScriptテストは、JavaScriptコマンド・イベント、ウィジェットの「マウス・オーバ」をリクエストすることにあり、続いてイベントがブラウザに到着し、マウスが自動的にウィジェットの上に移動されると、JavaScriptテストは、実際のウィジェット・ステータスと、リポジトリ内に残ったものとを比較するようサービスにリクエストする。これらテスト・スイートそれぞれが、次のアクションを生成する:動的ウェブ・ページに関するHTTPリクエストを行い、JSONオブジェクトを現在のステータスとして保存し、イベント・コマンドを生成し、(ブラウザが)イベントをキャッチしてウェブ・ページが変化し、結果とマスタ値(テンプレート)とを比較してDOMの変更を検証し、JSONオブジェクトとマスタ値とを比較する。各テスト・スイートは、ブラウザとシステムとの、任意の種類の通常の対話を生成する。
以下の例示的なテストが実装可能である:
・「予測」(検索する文字列の第1の文字をタイプするイベントを生成)。
・「フィールド検証」(すべてのキーボード文字を生成)。
・「ページ保存」(ブラウザ・メニューにアクセスしてページを保存するイベントを生成)。
・「ファイル・アップロード」(ファイルをタイプしてブラウザ・ポップアップで開くイベントを生成)。
・「ローカライズ」(ブラウザ・メニューにアクセスしてブラウザ言語を変更するイベントを生成)。
・同じキーボードおよびマウス・イベントを生成して種々のブラウザ上でのイベントの異なる挙動をテストする「ブラウザ依存」。
・(tab,enter)キーボード・イベントのシーケンスを使用する「アクセシビリティ・テスト・ケース」。
JavaScript APIのセルフ・パイロット・コマンドは、HTTPサーバにポート上で非同期的に送信される。例えば:
http://Servicehostname:port/?receiverhost=hostname&command=<name>&arg1=value1&……&argN=valueN
基本的なAPIコマンドの一部は、次のとおりであってもよい:
click(x,y)
doubleclick(x,y)
key(k)’特別なキーは(tab,enter,left,right,up,down)
pause(delay)
fileload(filename)
filesave(filename)
JSON比較に基づく検証ポイントの一部のAPIコマンドは、次のとおりであってもよい:
saveAsJSON(object,name)、オブジェクトをJSON文字列として保存する。
object loadJSON(name)、JSON文字列をオブジェクトに変換する。
checkJSON(object,object)、2つのJSONオブジェクトを比較する。
図3は、好適な実施形態によるシミュレートされたイベントが横断するweb2.0アプリケーション環境の図である。イベント処理の観察によって、コードをプログラムに埋め込むことのみを提案する従来技術のテスト方法との違いを理解できるようになる。web2.0アプリケーションは、重要なコンポーネント(例えばHTMLレンダリング、ドキュメントのDOM表現、JavaScript言語インタプリタおよび関数ライブラリ、HTTPおよびHTTPSネットワーク通信など)のサポート、ならびにシステムからのイベントを(例えばユーザ・アクションまたは入力に応答して)受信するメカニズムを提供するコンテナ(例えばウェブ・ブラウザ)内にある。そのようなコンテナおよび関係するコンポーネントすべての実装および挙動が、web2.0アプリケーションには重大である。この複雑な環境がテスト中に考慮されなければ、web2.0アプリケーションを完全にテストすることはできない。
図3において、ステップ番号2にて開始する場合(システムへのイベント生成リクエスト)。これは基本的に、ユーザ・アクションに関しても同じ開始点である。図面に示されているように、イベントは、かなり移動をし、いくつかのコンポーネントおよびコードのレイヤによって処理されてから、web2.0アプリケーションに送信される。その際に、通常、そのようなコードのレイヤおよびコンポーネントに、例えばそのデータ構造を変更することなどによって「跡を残す」。イベントが最終的に送信され、ウェブ・アプリケーションによって処理されると、アプリケーションは、イベントが実際の世界の状況で「実際に」トリガされたかのようにイベントに応答できる。すなわち、ウェブ・アプリケーションは、その環境もイベントを処理したこと、およびそれに反応するチャンスがあったことを発見する。これは、アプリケーションがこの長い処理をすべて無視してイベントの受信をすべてアプリケーションのみでシミュレートする場合は、不可能である。
ウェブ・アプリケーションが、或る種の「抽象的な」イベント、つまり未知であり環境およびウェブ・アプリケーション・コンテナに影響を及ぼさないイベントへのウェブ・アプリケーションの応答しかテストできない場合、この場合は完全にコードをカバーすることは不可能である。それどころか、ウェブ・アプリケーションの場合は特にこれが当てはまるが、あらゆるコンテナ(例えばウェブ・ブラウザ)は他のどのコンテナとも違い、多くの場合はそれ自体の他のバージョンとも違う。これが理由で、サポートされているあらゆる環境でウェブ・アプリケーションをテストすることが必要であり、これは、環境がテスト・シナリオに完全に統合されていると、この場合もやはり確実に不可能である。
図3は、イベントがどのようにして生成されソフトウェア・アプリケーションに送信されることが可能であると考えられるかの例である。イベントが処理されている間、埋め込まれたコードのみでは再現できない、ホスティング環境に影響を及ぼすステップがある(図面のステップ番号3.イベントを処理してイベントをシミュレートおよび5.イベント処理がブラウザによるイベントを再現)。
図4は、好適な実施形態による本発明の方法の概略のフローチャートである。本方法は、1つのホストまたは2つのホスト上、ただし2つのサーバ上で実装される。1つのサーバが、その環境(ウェブ・ブラウザ)内でウェブ・アプリケーションを実行し、ウェブ・アプリケーションとインターフェイスで接続する1つのテスト・サーバが、テストを運用する。ウェブ・アプリケーションを自動的にテストする方法は、ウェブ・アプリケーションをテストするためにテスト・コードをウェブ・アプリケーション・コード内に実装する第1のステップ(400)を含む。第2のステップ(410)は、コマンドを含むメッセージをテスト・サーバにAPIを介して送信する1つのテスト・コードによって実行される。第3のステップ(420)において、テスト・サーバはメッセージを受信し、コマンドを解釈して、ウェブ・アプリケーションのページにおけるユーザ入力をシミュレートするか、またはウェブ・アプリケーションの環境およびウェブ・アプリケーションによっても理解可能なシステム・イベントを生成する。ユーザ入力またはシステム・イベントは、ウェブ・アプリケーションにおいて動作しているテスト・コードと関係する。テスト・サーバは、シミュレートされたユーザ入力またはシステム・イベントを、前記ウェブ・アプリケーションを含むウェブ・ブラウザに送信する。ウェブ・ブラウザ(430)は、ユーザ入力またはシステム・イベントを処理し、これが、テストされる通常のウェブ・アプリケーションの実行をトリガする。ウェブ・アプリケーション内のテスト・コードは、ウェブ・アプリケーションの内部データ構造をプログラムで検査すること、またはウェブ・アプリケーションの内部データ構造の表現と既知のテンプレートとを比較することによって検査することにより、ウェブ・アプリケーション・コード実行の結果の妥当性を確認する(440)。
本方法の一部の特定のステップは、HTMLオブジェクト確認に基づく検証ポイントの例に関係する。例えば、ウェブ・ページの一部であるウェブ・パネルにおけるユーザのマウス・クリックが、アプリケーションによって表示される新たなウェブ・パネルを生成すると仮定すると、ステップ410は、マウス・クリックのシミュレーションを要求することにあり、ステップ430はさらに、ウェブ・アプリケーションが、その通常のコード実行(テスト・コード実行を含まない)において、表示される新たなウェブ・ページに対応する1つのHTMLオブジェクト(DOMオブジェクト)インスタンス化に対応する新たなコンテナ構造を生成することを含む。ステップ440は、この新たなウェブ・ページに対応するオブジェクトがウェブ・アプリケーション内で適切にインスタンス化されたことをテスト・コードが確認することを含むことになる。
本方法の他の特定のステップは、オブジェクト・ステータス確認に基づく検証ポイントの例に関係する。例えば、ユーザによるウィジェットの使用がHTMLページの背景の色を適切に変更したことを確認することである。ウェブ・アプリケーションのテスト・コードからのリクエスト(410)は、ウィジェット・オブジェクトの初期のステータスが保存される(例えばウィジェットがリポジトリ内にJSON文字列として保存される)よう求めること、およびユーザに表示されウィジェットを含むウェブ・ページにおける、このウィジェット上でのマウス移動などのシステム・イベントをシミュレートするよう、JavaScriptコマンドを介して求めることにあり得るであろう。その結果、シミュレートされたシステム・イベントの受信時、シミュレートされたマウス移動をブラウザが実行すると、ウェブ・アプリケーションは、対応する関数を実行して、テスト・コード(440)は、ウェブ・ページ変更を捕捉して、保存されているオブジェクト(JSON文字列)をリポジトリから読み出す新たなリクエストをテスト・サービスに送信して(410)、保存されているオブジェクトをウェブ・アプリケーションAPIを介して受信して、さらにテスト・コードは、現在のウィジェット・ステータスを読み取り、JSONオブジェクトとリポジトリ内の保存されたオブジェクトとを比較してDOM変更を検証する。各テスト・スイートは、ブラウザとシステムとの、任意の種類の通常の対話を生成する。
要約すれば、本方法は、ウェブ・アプリケーションの内部構造(440)およびウェブ・アプリケーションの外のコンテキスト(430)の両方をテストするため、ウェブ・アプリケーションを自動的にテストする本方法は完全である。
内部構造のテストを示す一例は、エラー状態のウィジェットの数がゼロより大きければパネル全体が無効であり処理できないように、この数の記録を付ける内部カウンタをウェブ・アプリケーションが保持すると仮定する場合である。ユーザからの無効入力に対するウェブ・アプリケーションの正しい応答を確認するテストは、3つのテストを含むことができるであろう。
1)エラーを示すために、対応するウィジェットが背景色を変更すること
2)ユーザに知らせるためのメッセージが表示されること
3)内部カウンタが1単位インクリメントされること。
ポイント3)は、アプリケーションの内部データ構造を参照する。内部カウンタは、ウェブ・アプリケーション内のみに存在し、HTML要素または外部表現でこのカウンタに対応するものはないため、外部入力をテストすることによってはテストできない。コードは、それ自体を分析できる。HTML、DOM、またはJavaScriptオブジェクトは、ウェブ・アプリケーションのウェブ・インターフェイスを介して可視であるものとして外部であるデータ構造、および上記のカウンタのようにウェブ・アプリケーションの内部のデータを含む場合は内部であるデータ構造を有する。
ウェブ・アプリケーションの外のコンテキストのテストを示す一例は、ウェブ・アプリケーションをホストしているコンピュータのオペレーティング・システムにおいて、ウェブ・アプリケーション外で何かが発生すると仮定することである。このテスト方法は、システム・イベントに応答してどのようにアプリケーションが反応するかをテストできる。ブラウザを変更するか、またはウェブ・アプリケーションが実行されるホストのオペレーティング・システムを変更するときの、異なる挙動である。結果として、従来技術の方法の埋め込まれたテスト・コードのように外部イベントに応答して内部構造をテスト可能であり、アプリケーションの内部構造を、システム・コンテキストによってではなくテスト・コード自体によってシミュレートされる内部入力のみに応答してテスト可能である。

Claims (13)

  1. テスティング・コンピュータのウェブ・ブラウザ内で動作しているウェブ・アプリケーションを自動的にテストする方法であって、前記ウェブ・アプリケーションは、テスト・コードを組み込まれており前記方法は、
    前記テスティング・コンピュータが、ユーザ入力をシミュレートするようウェブ・サーバに求める、前記ウェブ・サーバへのメッセージを、前記ウェブ・アプリケーション内で実行されている前記テスト・コードから、前記ウェブ・アプリケーション内で定義されているAPIを介して送信するステップであって、前記ユーザ入力は、前記ウェブ・アプリケーション内で動作している前記テスト・コードに関係している、前記送信するステップを実行すること
    前記ウェブ・サーバが前記メッセージを受信するステップ前記ユーザ入力に対応する少なくとも1つのシステム・イベントをシミュレートするようにシステム・イベント・ジェネレータをトリガするステップ、および前記少なくともシステム・イベントを前記ウェブ・ブラウザに提供するステップを実行すること
    前記テスティング・コンピュータが、前記シミュレートされた少なくとも1つのシステム・イベントを、前記ウェブ・ブラウザ処理するステップであって、前記少なくとも1つのシステム・イベント自体が前記ウェブ・アプリケーション内のコードの実行をトリガする、前記処理するステップを実行すること
    前記テスティング・コンピュータが、前記ウェブ・アプリケーション内の前記テスト・コードを使用して、前記少なくとも1つのシステム・イベントによる前記ウェブ・アプリケーション内のコードの実行の前記トリガの結果の妥当性を、前記ウェブ・アプリケーションのウェブ・インターフェイスの内部データ構造を検査することによって確認するステップであって、前記内部データ構造は、前記ウェブ・アプリケーションによって表示されるウェブ・ページから可視であるHTML要素及び内部カウンタを含む、前記確認するステップを実行すること
    を含む、前記方法。
  2. 前記確認するステップが
    前記ウェブ・アプリケーションによって表示されるウェブ・ページの変化に対応する内部データ構造を、前記ウェブ・アプリケーションが正しく生成することを確認するステップを含む、
    請求項1に記載の方法。
  3. 前記シミュレートされた少なくとも1つのシステム・イベントは、前記ウェブ・ページの変化を要求するマウス・クリックである、請求項2に記載の方法。
  4. 前記送信するステップが、
    前記テスト・コードが、ウェブ・ページ内の内部または外部のオブジェクト・データ構造の初期のステータスを保存するステップと、
    それを前記ウェブ・サーバがリポジトリ内に記憶して前記ウェブ・ページ内の前記オブジェクトに関係する少なくとも1つのシステム・イベントをシミュレートすることを、前記メッセージ内で要求するステップと
    を含み、
    前記確認するステップが、
    前記ウェブ・ページ内の前記外部または内部のオブジェクト・データ構造を前記ウェブ・アプリケーションが変更したことを確認するステップと、
    前記ウェブ・ページの変更の後の前記オブジェクト・データ構造を捕捉するステップと、
    前記ウェブ・アプリケーション内で定義されている同じ前記APIを介して、新たなメッセージ内で、テスト・サーバが前記リポジトリから前記オブジェクトの前記初期のステータスを読み出すことを要求するステップと、
    この読み出された初期のオブジェクト・ステータスを受信するステップと、
    前記初期および前記変更された内部データ構造を比較することによって、前記変更が正しいことを検証するステップと
    を含む、
    請求項1に記載の方法。
  5. 前記シミュレートされた少なくとも1つのシステム・イベントは、ウェブ・ページにおける、ウィジェットであるオブジェクト上のマウス移動である、請求項4に記載の方法。
  6. 前記ステップは、HTML、DOM、またはJavaScriptオブジェクトに対して実行される、請求項1〜5のいずれか1項に記載の方法。
  7. 前記オブジェクトがJavaScriptオブジェクトであれば、前記送信するステップおよび前記確認するステップにおいて、前記オブジェクトは、前記ウェブ・サーバによってリポジトリ内にJSON文字列として記憶され、読み出される、請求項6に記載の方法。
  8. 前記ウェブ・サーバがリモートである場合は、前記送信するステップ
    前記少なくとも1つのシステム・イベントを、前記ウェブ・アプリケーションが実行されている前記サーバへ、前記ウェブ・サーバから送信するステップ
    をさらに含む、請求項1〜7のいずれか1項に記載の方法。
  9. 前記テストおよび前記ウェブ・アプリケーションを前記ブラウザによって理解可能な言語でコーディングするステップをさらに含む、請求項1〜8のいずれか1項に記載の方法。
  10. 前記テストおよび前記ウェブ・アプリケーションをJavaScriptでコーディングするステップをさらに含む、請求項1〜9のいずれか1項に記載の方法。
  11. 前記送信するステップおよび前記確認するステップが
    パイロット・アプリケーションを介して、前記アプリケーション内の前記テスト・コードを手動でトリガするテップ
    をさらに含む、請求項1〜10のいずれか1項に記載の方法。
  12. 前記送信するステップおよび前記確認するステップが、一度起動された前記ウェブ・アプリケーションの実行によって自動的に実行される、請求項1〜10のいずれか1項に記載の方法。
  13. テスティング・コンピュータとウェブ・サーバとを備えているシステムであって、前記テスティング・コンピュータのウェブ・ブラウザ内で動作しているウェブ・アプリケーションを自動的にテストする前記システムにおいて、前記ウェブ・アプリケーションは、テスト・コードを組み込まれており、
    前記テスティング・コンピュータが、ユーザ入力をシミュレートするようウェブ・サーバに求める、前記ウェブ・サーバへのメッセージを、前記ウェブ・アプリケーション内で実行されている前記テスト・コードから、前記ウェブ・アプリケーション内で定義されているAPIを介して送信することであって、前記ユーザ入力は、前記ウェブ・アプリケーション内で動作している前記テスト・コードに関係している、前記送信することを実行し、
    前記ウェブ・サーバが、前記メッセージを受信すること、前記ユーザ入力に対応する少なくとも1つのシステム・イベントをシミュレートするようにシステム・イベント・ジェネレータをトリガすること、および前記少なくともシステム・イベントを前記ウェブ・ブラウザに提供することを実行し、
    前記テスティング・コンピュータが、前記シミュレートされた少なくとも1つのシステム・イベントを、前記ウェブ・ブラウザで処理することであって、前記少なくとも1つのシステム・イベント自体が前記ウェブ・アプリケーション内のコードの実行をトリガする、前記処理することを実行し、
    前記テスティング・コンピュータが、前記ウェブ・アプリケーション内の前記テスト・コードを使用して、前記少なくとも1つのシステム・イベントによる前記ウェブ・アプリケーション内のコードの実行の前記トリガの結果の妥当性を、前記ウェブ・アプリケーションのウェブ・インターフェイスの内部データ構造を検査することによって確認することであって、前記内部データ構造は、前記ウェブ・アプリケーションによって表示されるウェブ・ページから可視であるHTML要素及び内部カウンタを含む、前記確認することを実行する、
    前記システム。
JP2012528291A 2010-08-10 2010-08-10 ウェブ・アプリケーションを自動的にテストする方法およびシステム Expired - Fee Related JP5437493B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2010/061577 WO2012019639A1 (en) 2010-08-10 2010-08-10 A method and system to automatically testing a web application

Publications (2)

Publication Number Publication Date
JP2013504139A JP2013504139A (ja) 2013-02-04
JP5437493B2 true JP5437493B2 (ja) 2014-03-12

Family

ID=43402193

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012528291A Expired - Fee Related JP5437493B2 (ja) 2010-08-10 2010-08-10 ウェブ・アプリケーションを自動的にテストする方法およびシステム

Country Status (6)

Country Link
US (2) US20120174075A1 (ja)
JP (1) JP5437493B2 (ja)
CN (1) CN102511037A (ja)
DE (1) DE112010002916T5 (ja)
GB (1) GB2497018A (ja)
WO (1) WO2012019639A1 (ja)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2327022B1 (en) * 2008-07-22 2015-09-16 Webtrends Method and system for web-site testing
US10169221B2 (en) * 2008-07-22 2019-01-01 Accelerate Group Limited Method and system for web-site testing
US9575878B2 (en) * 2009-03-16 2017-02-21 International Business Machines Corporation Data-driven testing without data configuration
WO2011160139A1 (en) 2010-06-18 2011-12-22 Sweetlabs, Inc. Systems and methods for integration of an application runtime environment into a user computing environment
WO2012014284A1 (ja) * 2010-07-27 2012-02-02 株式会社日立製作所 テストシナリオ生成方法、テストシナリオ生成システム、及び、テストシナリオ生成プログラム
US8806647B1 (en) * 2011-04-25 2014-08-12 Twitter, Inc. Behavioral scanning of mobile applications
KR101691245B1 (ko) * 2012-05-11 2017-01-09 삼성에스디에스 주식회사 웹 서비스 모니터링 시스템 및 방법
US8881108B2 (en) * 2012-06-28 2014-11-04 Sap Ag Test program for HTTP-communicating service
US8775917B2 (en) 2012-08-09 2014-07-08 Sweetlabs, Inc. Systems and methods for alert management
US9081757B2 (en) 2012-08-28 2015-07-14 Sweetlabs, Inc Systems and methods for tracking and updating hosted applications
US8775925B2 (en) * 2012-08-28 2014-07-08 Sweetlabs, Inc. Systems and methods for hosted applications
US10332005B1 (en) * 2012-09-25 2019-06-25 Narus, Inc. System and method for extracting signatures from controlled execution of applications and using them on traffic traces
US9069735B2 (en) 2012-10-15 2015-06-30 Sweetlabs, Inc. Systems and methods for integrated application platforms
CN103810084B (zh) * 2012-11-07 2017-12-01 腾讯科技(深圳)有限公司 一种js代码的测试方法、装置和系统
CN103810089B (zh) * 2012-11-12 2021-12-03 Sap欧洲公司 自动测试基于姿态的应用
WO2014120128A1 (en) * 2013-01-29 2014-08-07 Hewlett-Packard Development Company, L.P. Analyzing structure of web application
GB2511047A (en) 2013-02-20 2014-08-27 Ibm Providing context in functional testing of web services
EP2959401A4 (en) * 2013-02-25 2016-09-28 Hewlett Packard Development Co PRESENTATION OF USER INTERFACE ELEMENTS BASED ON RULES
US20140310590A1 (en) * 2013-03-13 2014-10-16 Bby Solutions, Inc. Presentation layer software development kit for creation of dynamic webpages
US9047404B1 (en) * 2013-03-13 2015-06-02 Amazon Technologies, Inc. Bridge to connect an extended development capability device to a target device
US9424172B1 (en) * 2013-03-15 2016-08-23 Twitter, Inc. Web services comparison tool
CN104077213B (zh) * 2013-03-26 2018-07-06 腾讯科技(深圳)有限公司 一种webkit单元测试方法及装置
US9104814B1 (en) * 2013-05-03 2015-08-11 Kabam, Inc. System and method for integrated testing of a virtual space
US10025674B2 (en) * 2013-06-07 2018-07-17 Microsoft Technology Licensing, Llc Framework for running untrusted code
US9372787B2 (en) * 2013-07-15 2016-06-21 Sap Se System and method for automating testing
KR20150029184A (ko) * 2013-09-09 2015-03-18 삼성에스디에스 주식회사 애플리케이션을 테스트하는 기법
US9323649B2 (en) * 2013-09-30 2016-04-26 International Business Machines Corporation Detecting error states when interacting with web applications
US9262311B1 (en) * 2013-12-03 2016-02-16 Amazon Technologies, Inc. Network page test system and methods
JP5991695B2 (ja) * 2013-12-06 2016-09-14 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 文書オブジェクトモデルツリーとカスケーディング・スタイル・シートとが取り出されることが可能なアプリケーションのソースコードを変更することによって生じる影響を検知するための方法、並びに、当該影響を検知するためのコンピュータ及びそのコンピュータ・プログラム
JP6215033B2 (ja) * 2013-12-17 2017-10-18 エヌ・ティ・ティ・コミュニケーションズ株式会社 テスト制御装置、通信システム、テスト制御方法、及びテスト制御プログラム
US9749440B2 (en) 2013-12-31 2017-08-29 Sweetlabs, Inc. Systems and methods for hosted application marketplaces
CN104881355A (zh) * 2014-02-27 2015-09-02 国际商业机器公司 一种用于检测测试覆盖的方法和系统
US10019247B2 (en) 2014-05-15 2018-07-10 Sweetlabs, Inc. Systems and methods for application installation platforms
US10089098B2 (en) 2014-05-15 2018-10-02 Sweetlabs, Inc. Systems and methods for application installation platforms
CN104391786B (zh) * 2014-10-31 2018-04-27 任子行网络技术股份有限公司 网页自动化测试系统及其方法
US9753843B2 (en) * 2014-11-20 2017-09-05 Accenture Global Services Limited Automated testing of web-based applications
US10182068B2 (en) * 2014-11-26 2019-01-15 Entit Software Llc Determine vulnerability using runtime agent and network sniffer
IN2015DE00812A (ja) * 2015-03-24 2015-04-03 Hcl Technologies Ltd
US9921945B2 (en) * 2015-04-06 2018-03-20 Adp, Llc Automatic verification of JSON data
EP3308277A4 (en) * 2015-06-15 2019-03-13 Lens10 Pty Ltd SYSTEM AND METHOD FOR USE IN HYPERLINK REGRESSION TESTS OF ELECTRONIC DOCUMENTS
US9720800B2 (en) 2015-08-28 2017-08-01 International Business Machines Corporation Auto-generating representational state transfer (REST) services for quality assurance
CN105607993B (zh) * 2015-09-30 2018-04-20 北京奇虎科技有限公司 一种对应用的用户界面ui进行测试的方法和装置
US11132287B2 (en) * 2016-05-18 2021-09-28 Dynatrace Llc Synthetic test recorder installed inline with a web portal
WO2018002869A1 (en) * 2016-06-29 2018-01-04 Synopsys, Inc. Automated http user flows simulator
CN106326115A (zh) * 2016-08-17 2017-01-11 北京奇虎科技有限公司 一种测试api的方法、装置和系统
CN107808097A (zh) 2016-09-09 2018-03-16 安提特软件有限责任公司 JavaScript 路径枚举
WO2018097344A1 (ko) * 2016-11-23 2018-05-31 라인 가부시키가이샤 탐지 결과의 유효성을 검증하는 방법 및 시스템
US10961321B1 (en) 2017-01-06 2021-03-30 Siwa Corporation Methods and compositions for treating pain associated with inflammation
KR101796009B1 (ko) * 2017-03-07 2017-12-01 주식회사 한글과컴퓨터 프로그램 자동 분석 시스템 및 이를 이용한 자동분석 방법
CN106991048A (zh) * 2017-03-31 2017-07-28 杭州迪普科技股份有限公司 网页测试方法和装置
EP3486772A1 (en) 2017-11-16 2019-05-22 Siemens Aktiengesellschaft Method for reciprocally integrating applications in an industrial program-control system
US10599426B2 (en) * 2018-03-05 2020-03-24 Bank Of America Corporation Automated validation tool
US10467127B2 (en) * 2018-03-23 2019-11-05 Lendingclub Corporation Unified UI/UX and API testing of web applications
CN109684192B (zh) * 2018-08-21 2024-03-01 天航长鹰(江苏)科技有限公司 基于数据处理的本地测试方法、设备、存储介质及装置
CN111414301B (zh) * 2019-01-07 2023-06-20 阿里巴巴集团控股有限公司 调试应用程序的方法及装置
US10929276B2 (en) * 2019-06-14 2021-02-23 Paypal, Inc. Simulation computing services for testing application functionalities
CN110245086B (zh) * 2019-06-19 2023-05-16 北京字节跳动网络技术有限公司 应用程序稳定性测试方法、装置及设备
CN110727596A (zh) * 2019-10-15 2020-01-24 北京弘远博学科技有限公司 一种app接口自动化测试方法
US11341317B2 (en) * 2019-10-16 2022-05-24 Oracle International Corporation Supporting piecewise update of JSON document efficiently
CN110990283A (zh) * 2019-12-04 2020-04-10 中国直升机设计研究所 一种机载显控软件健壮性自动测试方法
CN111078207B (zh) * 2019-12-09 2023-08-29 浪潮云信息技术股份公司 基于cypress框架跨操作系统实现自动化网页模拟操作的方法
US11176022B2 (en) 2019-12-27 2021-11-16 Bank Of America Corporation Health diagnostics and analytics for object repositories
CN111209204B (zh) * 2020-01-06 2023-09-22 杭州涂鸦信息技术有限公司 一种基于JSON的web自动化测试方法及其系统和装置
US11307911B2 (en) 2020-05-29 2022-04-19 Microsoft Technology Licensing, Llc File upload modifications for client side applications
CN112181802A (zh) * 2020-08-21 2021-01-05 长沙市到家悠享网络科技有限公司 测试方法及装置
CN112231213A (zh) * 2020-10-16 2021-01-15 广州助蜂网络科技有限公司 Web自动化测试方法、系统、存储介质及终端设备
CN112394977A (zh) * 2020-11-16 2021-02-23 京东数字科技控股股份有限公司 数据处理方法、装置、设备及计算机可读存储介质
CN112579442B (zh) * 2020-12-04 2024-04-09 的卢技术有限公司 Ar hud测试方法、系统、计算机设备和存储介质
US20240004624A1 (en) * 2022-05-25 2024-01-04 Bionic Stork Ltd. Techniques for recording operations in an application utilizing external initialization engines

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904389B2 (en) * 2001-03-06 2005-06-07 Hewlett-Packard Development Company, L.P. Remote computer testing
JP2003044318A (ja) * 2001-08-02 2003-02-14 Fujitsu Ltd テスト支援プログラムおよびテスト支援方法
US20040025083A1 (en) 2002-07-31 2004-02-05 Murthi Nanja Generating test code for software
US20060064399A1 (en) * 2004-09-21 2006-03-23 Giuseppe De Sio Method and system for testing distributed software applications
US20060150111A1 (en) * 2004-12-30 2006-07-06 Microsoft Corporation Methods and apparatus for evaluating aspects of a web page
WO2008126796A1 (ja) * 2007-04-06 2008-10-23 International Business Machines Corporation サービス・プログラムを生成する技術
US8205120B2 (en) * 2007-12-21 2012-06-19 Sap Ag Intelligent test framework
CN101217425A (zh) * 2008-01-04 2008-07-09 中兴通讯股份有限公司 Web测试的方法及装置

Also Published As

Publication number Publication date
WO2012019639A1 (en) 2012-02-16
US20120174075A1 (en) 2012-07-05
GB2497018A (en) 2013-05-29
GB201302793D0 (en) 2013-04-03
DE112010002916T5 (de) 2012-07-05
US20130219368A1 (en) 2013-08-22
CN102511037A (zh) 2012-06-20
JP2013504139A (ja) 2013-02-04

Similar Documents

Publication Publication Date Title
JP5437493B2 (ja) ウェブ・アプリケーションを自動的にテストする方法およびシステム
JP5500259B2 (ja) 動的なWebアプリケーションのクライアント層の検証
US9342237B2 (en) Automated testing of gesture-based applications
Mesbah et al. Invariant-based automatic testing of modern web applications
US8601434B2 (en) Method and system for information processing and test case generation
CN105940654B (zh) 特权静态被托管的web应用
US7343625B1 (en) System, method and computer program product for automated interaction with and data extraction from Java applets
US8924943B2 (en) Browser emulator system
US8826240B1 (en) Application validation through object level hierarchy analysis
KR20080053293A (ko) 클라이언트 스크립트 웹 페이지에 대한 서버측 초기 콘텐츠렌더링
Amalfitano et al. Reverse engineering finite state machines from rich internet applications
US20220107882A1 (en) Rendering engine component abstraction system
US11714625B2 (en) Generating applications for versatile platform deployment
US9454463B2 (en) Rapid automation front-end framework library and executable graphic user interface testing system and method
CN113296653B (zh) 一种仿真交互模型构建方法、交互方法及相关设备
Nichols et al. Highlight: a system for creating and deploying mobile web applications
RU2611961C2 (ru) Способ и система регрессионного тестирования функциональности веб-страницы, машиночитаемый носитель информации
Ricca et al. Web testware evolution
KR101739854B1 (ko) 배포용 계산과학 플랫폼, 그 플랫폼의 검사 시스템 및 방법
CN116212398B (zh) 一种基于数据中台的游戏管理方法、装置、设备及介质
KR20240052585A (ko) 미디어 사물인터넷 표준에 의한 함수를 시뮬레이션하기 위한 장치 및 이를 위한 방법
CN114661600A (zh) 接口调试方法及装置、计算机可读存储介质以及电子设备
Yu A UI-driven approach to facilitating effective development of rich and composite web applications
Kearney HUBcheck: Check the hub
Halling MODEL-BASED TESTING OF WEB APPLICATIONS

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130611

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130813

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130813

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20130813

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20131025

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131025

TRDD Decision of grant or rejection written
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20131122

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20131122

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131211

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees