JP2014519671A5 - - Google Patents

Download PDF

Info

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
Application number
JP2014515932A
Other languages
English (en)
Other versions
JP2014519671A (ja
JP5815856B2 (ja
Filing date
Publication date
Priority claimed from US13/160,021 external-priority patent/US8943476B2/en
Application filed filed Critical
Publication of JP2014519671A publication Critical patent/JP2014519671A/ja
Publication of JP2014519671A5 publication Critical patent/JP2014519671A5/ja
Application granted granted Critical
Publication of JP5815856B2 publication Critical patent/JP5815856B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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)

  1. スクリプト依存関係をインライン化するためのコンピュータで実装される方法であって、
    テストウェブページ(160)を定義する言語で指定されるテストリソース(122)を抽出することと、
    前記テストページ(160)を定義する前記言語内で抽出された各テストリソース(122)の位置を識別するマーカー(142)を配置することと、
    各テストリソース(122)のパスと関連付けられた外部リソース(132)を繰り返しロードすることと、
    各テストリソース(122)を分析して、1つ以上の動的に追加された、各テストリソースの依存関係(152)を識別することと、
    各マーカー(142)を、当該マーカー(142)それぞれを参照する外部リソース(132)および当該マーカー(142)それぞれを参照する依存関係(152)と置き換えて、更新されたテストページ(160、162)を定義する更新された言語を生成することと、を含み、
    各ステップが、1つ以上のプロセッサ(110)を使用して行われる、方法。
  2. 最上位の親リソース(122)の後または前にそれぞれ識別された依存関係(152)を追加することと、
    新しい依存関係(152)が識別されなくなるまで、前記分析および前記追加を行うことと、
    前記最上位の親リソース(122)と関連付けられた親マーカー(142)に対する参照を、それぞれの新しい依存関係(152)に提供することと、
    をさらに含む、請求項1に記載の方法。
  3. 前記パスが、外部リソース(132)をロードするために解決できないときに、前記繰り返しロードすることが、各テストリソース(122)およびそのパスの配置を維持することを含む、請求項1または2に記載の方法。
  4. 前記分析することが、
    スクリプトランタイムエンジン(134)を使用して、スクリプト(126)を評価することと、
    前記スクリプト(126)を構文解析して、リソースの依存関係(152)の参照を識別することと、を含む、請求項1〜3のいずれかに記載の方法。
  5. スクリプト依存関係をインライン化するためのコンピュータベースのシステムであって、
    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)上で実装される、システム。
  6. 前記リソースローダーおよびアナライザ(130)がさらに、
    最上位の親リソース(122)の後または前に、それぞれの識別された依存関係(152)を追加し、
    前記最上位の親リソース(122)と関連付けられた親マーカー(142)に対する参照を、それぞれの新しい依存関係(152)に提供するように構成される、
    請求項5に記載のシステム。
  7. 前記パスが外部リソースをロードするために解決できないときに、前記マーカーモジュール(140)がさらに、各テストリソース(122)およびそのパスの配置を維持するように構成される、請求項5または6に記載のシステム。
  8. 前記リソースローダーおよびアナライザ(130)がさらに、
    スクリプトランタイムエンジン(134)を使用してスクリプト(126)を評価し、
    前記スクリプト(126)を構文解析して、リソース依存関係(152)の参照を識別するように構成される、
    請求項5〜7のいずれかに記載のシステム。
  9. 命令がそこに記憶された非一時的コンピュータ可読媒体であって、コンピューティングデバイス(302)により実行されるとき、前記コンピューティングデバイス(302)に、
    テストウェブページ(160)を定義する言語で指定されるテストリソース(122)を抽出することと、
    前記テストページ(160)を定義する前記言語内で抽出された各テストリソース(122)の位置を識別するマーカー(142)を配置することと、
    各テストリソース(122)のパスと関連付けられた外部リソース(132)を繰り返しロードすることと、
    各テストリソース(122)を分析して、1つ以上の動的に追加された、各テストリソースの依存関係(152)を識別することと、
    各マーカー(142)を、当該マーカー(142)それぞれを参照する外部リソース(132)および当該マーカー(142)それぞれを参照する依存関係(152)と置き換えて、更新されたテストページ(160、162)を定義する更新された言語を生成することと、
    を含む操作を行わせる、非一時的コンピュータ可読媒体
  10. 前記コンピューティングデバイスに、
    最上位の親リソース(122)の後または前にそれぞれの識別された依存関係(152)を追加することと、
    新しい依存関係(152)が識別されなくなるまで、分析および追加を行うことと、
    最上位の親リソース(122)と関連付けられた親マーカー(142)に対する参照を、それぞれの新しい依存関係(152)に提供することと、
    を含む、操作を行わせる命令をさらに含む、請求項9に記載の非一時的コンピュータ可読媒体
  11. 前記繰り返しロードすることが、前記コンピューティングデバイスに、前記パスが外部リソース(132)をロードするために解決できないときに、各テストリソース(122)およびそのパスの配置を維持することを含む、操作を行わせる命令をさらに含む、請求項9または10に記載の非一時的コンピュータ可読媒体
  12. 前記分析が、
    前記コンピューティングデバイスに、
    スクリプトランタイムエンジン(134)を使用して、スクリプト(126)を評価することと、
    前記スクリプト(126)を構文解析して、リソース依存関係(152)の参照を識別することと、
    を含む操作を行わせる命令をさらに含む、請求項9〜11のいずれかに記載の非一時的コンピュータ可読媒体
JP2014515932A 2011-06-14 2012-06-13 スクリプト依存関係をインライン化するためのシステムおよび方法 Active JP5815856B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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