JP2014519671A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2014519671A5 JP2014519671A5 JP2014515932A JP2014515932A JP2014519671A5 JP 2014519671 A5 JP2014519671 A5 JP 2014519671A5 JP 2014515932 A JP2014515932 A JP 2014515932A JP 2014515932 A JP2014515932 A JP 2014515932A JP 2014519671 A5 JP2014519671 A5 JP 2014519671A5
- Authority
- JP
- Japan
- Prior art keywords
- resource
- test
- marker
- dependencies
- script
- 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.)
- Granted
Links
- 239000003550 marker Substances 0.000 claims description 30
- 238000011068 load Methods 0.000 claims description 16
- 230000003252 repetitive Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 1
Description
本開示の一態様は、スクリプト依存関係をインライン化する方法を提供し、テストウェブページを定義する言語で指定されたテストリソースを抽出することと、テストページを定義する言語内で抽出された各テストリソースの位置を識別するマーカーを配置することと、各テストリソースのパスと関連付けられた外部リソースを繰り返しロードすることと、各テストリソースを分析して1つ以上の動的に追加された依存関係を識別することと、各マーカーを、それらのそれぞれのマーカーを参照する外部リソースおよび依存関係と置き換えて、更新されたテストウェブページを定義する更新された言語を生成することと、を含む。本方法はさらに、最上位の親リソースの後または前にそれぞれ識別された依存関係を追加することと、新しい依存関係が識別されなくなるまで分析および追加を行うことと、最上位の親リソースと関連付けられた親マーカーに対する参照を、それぞれの新しい依存関係に提供することと、を含む。
実施形態は、テストページを定義する言語で指定されたテストリソースを抽出し、テストページを定義するHTML内に、抽出された各テストリソースの位置を識別するマーカーを配置する。このマーカーは、実施形態が抽出されたテストリソースの位置を追跡することを可能にする一方で、テストリソースと関連付けられた依存関係が検索される。さらに、マーカーは、実施形態が、検索された親子の依存関係がテストページを定義するHTML内の正しい階層に適切に含まれるように、検索された親子の依存関係の正しい階層を維持することも可能にする。
図1は、一実施形態によるテスティングエンジン110のアーキテクチャ図である。図1に示されるように、テスティングエンジン110は、テストリソース抽出器120、リソースローダーおよびアナライザ130、マーカーモジュール140、ならびにインライン化モジュール150を含む。図1はまた、テストページ160およびインライン化されたテストページ162を含む。一実施形態において、テストリソース抽出器120は、テストページ160を定義する言語(例えば、HTML)で指定されたテストリソース122を抽出するように構成される。マーカーモジュール140は、テストページ160を定義する言語内で、各テストリソース122の位置を識別するためにマーカー142を配置するように構成される。リソースローダーおよびアナライザ130は、各テストリソース122のパスと関連付けられたメモリ外部リソース132に繰り返しロードし、各テストリソース122を分析して動的に追加された依存関係152を識別するように構成される。一実施形態において、インライン化操作は、関数呼び出しサイトを呼び出された関数の本体(またはコード)と置き換えることを含んでよい。インライン化モジュール150は、各マーカー142を、それらのそれぞれのマーカー142を参照するリソース132および依存関係152と置き換えて、インライン化されたテストページ162を定義する更新された言語を生成する。一実施形態において、次いでテスティングエンジン110は、インライン化されたテストページ162を使用してスクリプトテストを行う。テストリソース122(例えば、スクリプト)およびそれらの依存関係152(例えば、外部ファイル)は、テストページ160をテストする前に検索され、インライン化されたテストページ162を定義するHTML内に直接含まれるため、実施形態は、テストランタイムにテストリソースおよびそれらの依存関係152をメモリにロードするために、サーバおよびブラウザリソースを消費する必要がない。このように、実施形態は、スクリプトテストのロードおよび実行時間を低減する。
一実施形態において、テストリソース抽出器120は、テストページ160を定義する言語(例えば、HTML)に含まれるか、または指定されたテストリソース122を抽出するように構成される。テストリソース122は、テストページ160がテストのためにテスティングエンジン110によって読み出されるときに実行され得る、スクリプトコード(例えば、JavaScript)を含むテスト関数であってよい。一実施形態において、テストページ160内のテストリソース122は、テストリソース122に隣接して現れる(または被包する)タグ(または識別子)によって識別されてよい。上記のように、このようなスクリプトタグは、テストページ160を定義するHTML内に組み込まれてよい。一実施形態において、テストリソース抽出器120は、テストページ160を構文解析して、スクリプトタグおよび関連付けられたスクリプトを識別し、抽出する。
一実施形態において、マーカーモジュール140は、テストページ160を定義するHTML内で抽出された各テストリソース122の位置を識別するマーカー142を配置するように構成されてよい。マーカー142は、抽出された各テストリソース132の位置を識別および維持するためにマーカーモジュール140によって使用される、任意の形態の識別子またはデータ構造であり得る。
一実施形態において、リソースローダーおよびアナライザ130は、テストページ160に指定された各テストリソース122のパスと関連付けられたメモリ外部リソース132(例えば、ファイル、画像、スクリプトなど)にロードするように構成され得る。一実施形態において、リソースローダーおよびアナライザ130は、各テストリソース122のパス上で繰り返し、テストリソース122のパスによって参照され得る外部依存関係152をロードしてよい。シナリオ例において、テストリソース122は、テストリソース122が適切に実行するために、外部リソース132(例えば、ファイル、画像、スクリプトなど)を必要とし得る。このような外部リソース132は、テスティングエンジン110から独立したサーバに位置し得るか、またはさらにはテスティングエンジン110が作動しているコンピューティングデバイス上に位置してもよい。テストリソース122により必要とされる外部リソース132(または他の依存関係152)を、事前にメモリに繰り返しロードすることによって、外部リソース132のこのようなロードは、テストが行われているときに実時間で発生する必要がないため、テストを実行するために要する時間がより少なくなる。
Claims (12)
- スクリプト依存関係をインライン化するためのコンピュータで実装される方法であって、
テストウェブページ(160)を定義する言語で指定されるテストリソース(122)を抽出することと、
前記テストページ(160)を定義する前記言語内で抽出された各テストリソース(122)の位置を識別するマーカー(142)を配置することと、
各テストリソース(122)のパスと関連付けられた外部リソース(132)を繰り返しロードすることと、
各テストリソース(122)を分析して、1つ以上の動的に追加された、各テストリソースの依存関係(152)を識別することと、
各マーカー(142)を、当該マーカー(142)それぞれを参照する外部リソース(132)および当該マーカー(142)それぞれを参照する依存関係(152)と置き換えて、更新されたテストページ(160、162)を定義する更新された言語を生成することと、を含み、
各ステップが、1つ以上のプロセッサ(110)を使用して行われる、方法。 - 最上位の親リソース(122)の後または前にそれぞれ識別された依存関係(152)を追加することと、
新しい依存関係(152)が識別されなくなるまで、前記分析および前記追加を行うことと、
前記最上位の親リソース(122)と関連付けられた親マーカー(142)に対する参照を、それぞれの新しい依存関係(152)に提供することと、
をさらに含む、請求項1に記載の方法。 - 前記パスが、外部リソース(132)をロードするために解決できないときに、前記繰り返しロードすることが、各テストリソース(122)およびそのパスの配置を維持することを含む、請求項1または2に記載の方法。
- 前記分析することが、
スクリプトランタイムエンジン(134)を使用して、スクリプト(126)を評価することと、
前記スクリプト(126)を構文解析して、リソースの依存関係(152)の参照を識別することと、を含む、請求項1〜3のいずれかに記載の方法。 - スクリプト依存関係をインライン化するためのコンピュータベースのシステムであって、
1つ以上のプロセッサ(306)と、
テストウェブページ(160)を定義する言語で指定されたテストリソース(122)を抽出するように構成される、テストリソース抽出器(120)と、
前記テストページ(160)を定義する前記言語内で各テストリソース(122)の位置を識別するマーカー(142)を維持するように構成される、マーカーモジュール(140)と、
各テストリソース(122)のパスと関連付けられた外部リソース(132)を繰り返しロードするように構成され、各テストリソース(122)を分析して、1つ以上の動的に追加された、各テストリソースの依存関係(152)を識別するように構成される、リソースローダーおよびアナライザ(130)と、
各マーカー(142)を、当該マーカー(142)それぞれを参照するリソース(132)および当該マーカー(142)それぞれ依存関係(152)と置き換えて、更新されたテストページ(160、162)を定義する更新された言語を生成するように構成される、インライン化モジュール(150)と、を備え、
前記テストリソース抽出器(120)、前記マーカーモジュール(140)、前記リソースローダーおよびアナライザ(130)、ならびに前記インライン化モジュール(150)は、前記1つ以上のプロセッサ(306)上で実装される、システム。 - 前記リソースローダーおよびアナライザ(130)がさらに、
最上位の親リソース(122)の後または前に、それぞれの識別された依存関係(152)を追加し、
前記最上位の親リソース(122)と関連付けられた親マーカー(142)に対する参照を、それぞれの新しい依存関係(152)に提供するように構成される、
請求項5に記載のシステム。 - 前記パスが外部リソースをロードするために解決できないときに、前記マーカーモジュール(140)がさらに、各テストリソース(122)およびそのパスの配置を維持するように構成される、請求項5または6に記載のシステム。
- 前記リソースローダーおよびアナライザ(130)がさらに、
スクリプトランタイムエンジン(134)を使用してスクリプト(126)を評価し、
前記スクリプト(126)を構文解析して、リソース依存関係(152)の参照を識別するように構成される、
請求項5〜7のいずれかに記載のシステム。 - 命令がそこに記憶された非一時的コンピュータ可読媒体であって、コンピューティングデバイス(302)により実行されるとき、前記コンピューティングデバイス(302)に、
テストウェブページ(160)を定義する言語で指定されるテストリソース(122)を抽出することと、
前記テストページ(160)を定義する前記言語内で抽出された各テストリソース(122)の位置を識別するマーカー(142)を配置することと、
各テストリソース(122)のパスと関連付けられた外部リソース(132)を繰り返しロードすることと、
各テストリソース(122)を分析して、1つ以上の動的に追加された、各テストリソースの依存関係(152)を識別することと、
各マーカー(142)を、当該マーカー(142)それぞれを参照する外部リソース(132)および当該マーカー(142)それぞれを参照する依存関係(152)と置き換えて、更新されたテストページ(160、162)を定義する更新された言語を生成することと、
を含む操作を行わせる、非一時的コンピュータ可読媒体。 - 前記コンピューティングデバイスに、
最上位の親リソース(122)の後または前にそれぞれの識別された依存関係(152)を追加することと、
新しい依存関係(152)が識別されなくなるまで、分析および追加を行うことと、
最上位の親リソース(122)と関連付けられた親マーカー(142)に対する参照を、それぞれの新しい依存関係(152)に提供することと、
を含む、操作を行わせる命令をさらに含む、請求項9に記載の非一時的コンピュータ可読媒体。 - 前記繰り返しロードすることが、前記コンピューティングデバイスに、前記パスが外部リソース(132)をロードするために解決できないときに、各テストリソース(122)およびそのパスの配置を維持することを含む、操作を行わせる命令をさらに含む、請求項9または10に記載の非一時的コンピュータ可読媒体。
- 前記分析が、
前記コンピューティングデバイスに、
スクリプトランタイムエンジン(134)を使用して、スクリプト(126)を評価することと、
前記スクリプト(126)を構文解析して、リソース依存関係(152)の参照を識別することと、
を含む操作を行わせる命令をさらに含む、請求項9〜11のいずれかに記載の非一時的コンピュータ可読媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/160,021 | 2011-06-14 | ||
US13/160,021 US8943476B2 (en) | 2011-06-14 | 2011-06-14 | System and method to in-line script dependencies |
PCT/US2012/042127 WO2012174033A1 (en) | 2011-06-14 | 2012-06-13 | System and method to in-line script dependencies |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2014519671A JP2014519671A (ja) | 2014-08-14 |
JP2014519671A5 true JP2014519671A5 (ja) | 2015-05-14 |
JP5815856B2 JP5815856B2 (ja) | 2015-11-17 |
Family
ID=46321501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014515932A Active JP5815856B2 (ja) | 2011-06-14 | 2012-06-13 | スクリプト依存関係をインライン化するためのシステムおよび方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8943476B2 (ja) |
EP (1) | EP2721494B1 (ja) |
JP (1) | JP5815856B2 (ja) |
DE (1) | DE202012013449U1 (ja) |
WO (1) | WO2012174033A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8819631B2 (en) * | 2011-01-13 | 2014-08-26 | Hewlett-Packard Development Company, L.P. | System and method for self dependent web automation |
US8918763B2 (en) * | 2013-01-30 | 2014-12-23 | Hewlett-Packard Development Company, L.P. | Marked test script creation |
GB2539262A (en) * | 2015-06-12 | 2016-12-14 | Micro Focus Ip Dev Ltd | Testing interactive network systems |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7444397B2 (en) * | 2004-12-21 | 2008-10-28 | International Business Machines Corporation | Method of executing test scripts against multiple systems |
US20060282428A1 (en) * | 2005-06-10 | 2006-12-14 | Microsoft Corporation | Method and system for assignment of membership through script |
US20070174824A1 (en) * | 2006-01-23 | 2007-07-26 | Microsoft Corporation | Techniques for generating and executing browser-hosted applications |
US7827523B2 (en) * | 2006-02-22 | 2010-11-02 | Yahoo! Inc. | Query serving infrastructure providing flexible and expandable support and compiling instructions |
US20080083012A1 (en) * | 2006-06-26 | 2008-04-03 | Dachuan Yu | Program instrumentation method and apparatus for constraining the behavior of embedded script in documents |
US8392890B2 (en) * | 2007-10-15 | 2013-03-05 | Software Research, Inc. | Method and system for testing websites |
US9361129B2 (en) * | 2007-08-01 | 2016-06-07 | Microsoft Technology Licensing, Llc | Instance interfaces and mix-ins for dynamic languages |
US8996682B2 (en) * | 2007-10-12 | 2015-03-31 | Microsoft Technology Licensing, Llc | Automatically instrumenting a set of web documents |
EP2327022B1 (en) * | 2008-07-22 | 2015-09-16 | Webtrends | Method and system for web-site testing |
US8156420B2 (en) * | 2008-11-14 | 2012-04-10 | Microsoft Corporation | Form validation with table driven error handling |
JP4806060B2 (ja) | 2009-09-15 | 2011-11-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンパイラ・プログラム、コンパイル方法及びコンピュータ・システム |
US9003380B2 (en) * | 2010-01-12 | 2015-04-07 | Qualcomm Incorporated | Execution of dynamic languages via metadata extraction |
US9262138B2 (en) * | 2010-05-27 | 2016-02-16 | Salesforce.Com, Inc. | Adding directives for JavaScript files directly into source code in a multi-tenant database environment |
US8732665B2 (en) * | 2011-06-28 | 2014-05-20 | Microsoft Corporation | Deploying environments for testing by providing instantaneous availability of prebuilt environments |
-
2011
- 2011-06-14 US US13/160,021 patent/US8943476B2/en active Active
-
2012
- 2012-06-13 JP JP2014515932A patent/JP5815856B2/ja active Active
- 2012-06-13 DE DE202012013449.3U patent/DE202012013449U1/de not_active Expired - Lifetime
- 2012-06-13 EP EP12728924.7A patent/EP2721494B1/en active Active
- 2012-06-13 WO PCT/US2012/042127 patent/WO2012174033A1/en active Application Filing
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8028276B1 (en) | Method and system for generating a test file | |
Sen et al. | Jalangi: A selective record-replay and dynamic analysis framework for JavaScript | |
US9529648B2 (en) | Generic declaration of bindings between events and event handlers regardless of runtime structure | |
US9128723B2 (en) | Method and apparatus for dynamic document object model (DOM) aware code editing | |
US20160004622A1 (en) | Workflow test case generation | |
US9880832B2 (en) | Software patch evaluator | |
US9182953B2 (en) | Hybrid dynamic code compiling device, method, and service system thereof | |
US11113050B2 (en) | Application architecture generation | |
DE112016002003T5 (de) | Infrastruktur zum hosten und veröffentlichen von softwarepaketen | |
CN110825619A (zh) | 接口测试用例自动生成方法、装置及存储介质 | |
US20160328314A1 (en) | System and method for providing code coverage | |
CN105094836B (zh) | 一种生成说明文档的方法和装置 | |
US9304893B1 (en) | Integrated software development and test case management system | |
US9965256B2 (en) | Method and system for evaluating computational algorithms described in printed publications | |
CN107391528B (zh) | 前端组件依赖信息搜索方法及设备 | |
EP3447635A1 (en) | Application architecture generation | |
CN103186463B (zh) | 确定软件的测试范围的方法和系统 | |
Ma et al. | Aladdin: Automating release of deep-link APIs on Android | |
CN104346342A (zh) | 一种加载Flash插件的方法及装置 | |
JP2014519671A5 (ja) | ||
Fraser et al. | Evosuite at the second unit testing tool competition | |
JP5815856B2 (ja) | スクリプト依存関係をインライン化するためのシステムおよび方法 | |
CN111158665B (zh) | 代码生成方法及装置、电子设备和存储介质 | |
US8719766B1 (en) | System and method for identifying and adding files to a project manifest | |
US20210382810A1 (en) | Test data generation apparatus, test data generation method and program |