CN102483698A - 动态web应用的客户端层验证 - Google Patents
动态web应用的客户端层验证 Download PDFInfo
- Publication number
- CN102483698A CN102483698A CN2010800392239A CN201080039223A CN102483698A CN 102483698 A CN102483698 A CN 102483698A CN 2010800392239 A CN2010800392239 A CN 2010800392239A CN 201080039223 A CN201080039223 A CN 201080039223A CN 102483698 A CN102483698 A CN 102483698A
- Authority
- CN
- China
- Prior art keywords
- dynamic web
- picture
- net
- webpage
- software
- 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
- 238000010200 validation analysis Methods 0.000 title 1
- 238000000034 method Methods 0.000 claims abstract description 39
- 230000009471 action Effects 0.000 claims abstract description 32
- 206010027476 Metastases Diseases 0.000 claims description 62
- 230000009401 metastasis Effects 0.000 claims description 62
- 230000009194 climbing Effects 0.000 claims description 50
- 238000003860 storage Methods 0.000 claims description 18
- 238000007689 inspection Methods 0.000 claims description 16
- 238000012360 testing method Methods 0.000 claims description 15
- 230000002452 interceptive effect Effects 0.000 claims description 7
- 230000008676 import Effects 0.000 claims description 4
- 238000004088 simulation Methods 0.000 claims 2
- 230000007704 transition Effects 0.000 abstract description 8
- 230000009193 crawling Effects 0.000 abstract description 7
- 238000012795 verification Methods 0.000 description 28
- 230000006399 behavior Effects 0.000 description 23
- 241000270322 Lepidosauria Species 0.000 description 18
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000000875 corresponding effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 239000012141 concentrate Substances 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 238000013178 mathematical model Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 229910052711 selenium Inorganic materials 0.000 description 1
- 239000011669 selenium Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
在一种实施方式中,一种方法包括访问包括客户端层的动态WEB应用并对该动态WEB应用进行爬网。在一种实施方式中,所述爬网包括有引导的爬网的一个或更多个实例,当自动爬网的前一实例达到所述动态WEB应用中的、满足针对有引导的爬网的所述实例的一个或更多个预定标准的状态时,有引导的爬网的各实例开始,并且当开始时,所述有引导的爬网的各实例针对所述动态WEB应用执行一个或更多个预定动作。该方法还包括基于所述爬网生成所述动态WEB应用的画面转移模型。在特定的实施方式中,所述画面转移模型包括分级有限状态机(FSM)。在一种实施方式中,在完成所述画面转移模型的生成后,该方法还包括对所述画面转移模型执行模型检查以验证所述动态WEB应用的客户端层。
Description
技术领域
本公开总体上涉及验证,更具体地涉及验证动态web应用。
背景技术
针对web应用的功能验证(或确认)的常规技术通常涉及诸如Selenium、WebKing和Sahi的捕获-回放工具的使用。使用这些架构,希望验证特定web应用的用户通过各种测试方案一次一个测试方案地手动训练该应用。由这些工具例如在超文本标记语言(HTML)文档对象模型(DOM)层级记录用户在训练该应用时所采取的动作,并通常利用在各步骤插入的与希望的行为相关的用户限定的断言(assertion)在稍后可以回放用户所采取的动作。然而,该验证技术需要大量的人工。尽管诸如JsUnit的架构可以用于执行应用中的JavaScript代码的单元测试,但该测试方式本身是非常局限的、针对特定语言的并且也是人工密集的。
另一验证技术涉及以生成测试用例为目的对桌面图形用户接口(GUI)应用的模型进行反向工程。但是,尽管桌面GUI应用可以共享现代动态web应用的某些丰富的用户接口和交互,但现代动态web应用具有其它特征,例如在常规的桌面GUI应用中没有共享或出现的同步客户端-服务器通信和基于DOM的用户接口。此外,这些和其它常规技术逐渐不适合于越来越多的动态web应用,特别是那些利用诸如异步JavaScript和XML(AJAX)的异步技术的web应用。还有一些针对web应用的其它验证技术大体上提出了通过经由某种基于状态的模型再现相关行为并接着使用各种常规技术检查模型来进行web应用的测试。这样的方法手动地指定模型并通常适合于常规的、静态的和/或非用户交互式的web应用。此外,这些方法通常涉及从模型生成测试跟踪(test trace),并接着每次一个地检查这些测试跟踪。
附图说明
图1例示了示例性验证工具包的示例性环境。
图2例示了示例性验证工具包。
图3例示了示例性爬虫(crawler)。
图4例示了用于验证web应用的示例性方法。
图5例示了示例性计算系统。
图6例示了示例性的分级有限状态机。
图7例示了示例性画面转移图的示例性图示。
示例性实施方式的描述
特定的实施方式涉及验证web应用。特定的实施方式涉及验证这样的动态web应用,即,所述动态web应用可包括JAVA或其它软件平台并且可以被配置为显示包括超文本标记语言(HTML)内容、可扩展标记语言(XML)内容、JavaScript资源和/或其它嵌入的资源的网页。特定的实施方式涉及验证这样的动态web应用,即,所述动态web应用被配置为利用诸如异步JavaScript和XML(AJAX)的异步技术。特定的实施方式按照画面转移图或模型的形式生成动态web应用的行为模型。在特定的实施方式中,以XML将画面转移模型格式化。在特定的实施方式中,画面转移模型包括分级有限状态机(FSM)。在特定的实施方式中,生成画面转移模型,作为对部署的动态web应用的有引导的爬网(crawling)的结果。在特定的实施方式中,爬网包括完全自动爬网和引导的“定制”爬网两种情况以及其中至少一种情况。在特定的实施方式中,模型检查用于在完成画面转移模型的生成后验证画面转移模型,由此实现该模型的全局特性的验证。特定的实施方式涉及验证动态web应用的客户端层。
如上所述,特定的实施方式涉及验证动态web应用。作为示例,这种动态web应用的特征通常是特征丰富的客户端侧的用户接口,并且通常支持高度的用户交互性。作为示例,可以利用诸如AJAX和Adobe Flash的技术以实现这些动态web应用的这种特征。如上所述,特定的实施方式集中于验证web应用的客户端层的行为。作为示例,web应用的客户端层一般是指用于实现在终端用户的机器(或客户端设备)内或终端用户的机器处驻留并执行的web应用的部分代码。通常,在web浏览器(如,Microsoft Windows Internet Explorer、Mozilla Firefox、Apple Safari、Google Chrome和Opera等)环境下执行web应用,web浏览器使用网络上的内容并在终端用户的机器的显示器上显示该内容。
一般来说,web应用是经由web浏览器或其它客户端应用通过网络可以访问的应用程序,或者是以支持web浏览器的语言编码的并且有时依靠web浏览器来使应用可执行的计算机软件应用程序。由于web浏览器普遍存在,在作为客户端(有时称为瘦客户端(thin client))的远程计算设备上使用web浏览器的便利性,以及不需在远程客户端上分布和安装软件而更新和维护web应用的相应能力,web应用获得了极大的普及。通常,为了实现web应用,web应用需要访问在关联的网站的后端服务器处提供的一个或更多个资源。另外,web应用会经常需要访问与其它应用相关联的附加的资源。
在终端用户的机器处部署的web应用可以使网页在终端用户的机器的显示器上得到呈现。与web浏览器一同执行或在web浏览器的环境下执行的web应用可以使web浏览器在显示器上呈现网页。web应用的网页通常包括到web应用的其它网页的嵌入的链接以及到该web应用的外部的或与该web应用没有关系的网页和网站的嵌入的链接。具体地说,动态web应用常常包括可以在当前观看的网页上呈现为超链接、图标或其它“可点击”的特征的多个嵌入的链接。通常的动态web应用可以包括一个或更多个资源。用于产生网页的、其自身可以包括多个嵌入的资源的网页或资源可以包括诸如内容无格式文本信息的数据记录或诸如软件程序的更复杂的数字编码多媒体内容或其它代码对象、图形、图像、音频信号、视频等。用于创建网页的一种流行的标记语言是超文本标记语言(HTML)。支持web浏览器的其它通常的语言和技术包括可扩展标记语言(XML)、可扩展超文本标记语言(XHTML)、JavaScript、层叠样式表(CSS)和JAVA等。作为示例,HTML使应用或网页开发者通过针对文本和链接以及图像、web应用和可以嵌入在页面中的其它对象指示结构语义来创建结构化的文档。一般来说,网页可以作为静态的文档传递给客户,但是,通过使用嵌入在页面中的web元件,可以在页面或一连串的页面中获得交互式体验。在客户端设备的用户会话期间,web浏览器解释并显示从web应用或寄存(hosting)该网页的网站接收或获得的页面和关联的资源以及可能来自其它网站的资源。
JavaScript是脚本语言的示例,其使各种web应用能够访问在用户会话的客户端侧上使用的其它应用内的资源,以使得当访问动态web应用时实现交互式的或动态的用户会话。AJAX(异步JavaScript和XML的简称)是指在用户会话的客户端上使用的相关的技术的组,以实现更多交互以及丰富的web应用。利用JavaScript或AJAX,web应用可以向与web应用关联的后端服务器或其它外部资源提供者发送针对资源的请求,以在不必干扰当前呈现的页面的显示和行为的情况下在终端用户机器的后台操作中异步地获得资源。更具体地,当使用AJAX时,通常通过向资源提供者发送XMLHttpRequest(XHR)对象来获得资源。XHR是与web浏览器脚本语言(如,JavaScript)一起使用的文档对象模型(DOM)应用程序接口(API),其可以例如向web服务器直接发送针对资源的一个或多个HTTP请求,并将从响应于该请求的服务器获得的资源直接加载回脚本语言代码中。一旦资源在代码内,则资源作为例如HTML或XML文档或无格式文本而可用。通过这种方式,所获得的资源可以用于操纵由web浏览器呈现的当前活动的文档,而不需要客户端加载新的网页文档。在某些示例性实施方式中,如果获得的资源是无格式文本,则可以由服务器按照JavaScript对象声明(JSON)将无格式文本格式化,并且在JavaScript内评价,以创建用在当前DOM上的数据对象。
图1例示了验证工具包102的示例性环境100。验证工具包102可以在一个或更多个计算机系统内执行或操作,这将在后文参照图5详细描述。在特定的实施方式中,动态web应用104与验证工具包102部署在相同的计算机系统处。在另选的实施方式中,动态web应用104部署在与寄存验证工具包102的计算机系统连接或耦接的单独的计算机系统处。如上所述,特定的实施方式实现两步法以验证动态web应用104。在第一步(或级)中,当动态web应用被部署在计算机系统并运行/执行时,验证工具包102提取或生成动态web应用104的客户端层的行为模型108。在动态web应用104正在运行并且验证工具包102同时生成行为模型108时,动态web应用104可以周期性地与可以寄存用于实现动态web应用104的其余的代码和其它资源的一个或更多个后端服务器110进行通信(如,经由AJAX)。
在特定的实施方式中,由验证工具包102生成的行为模型108是画面转移模型(行为模型和画面转移模型可以在本文中互换地使用,并且两者都可以由标号108来表示)。此外,在特定的实施方式中,画面转移模型108采取有限状态机(FSM)的形式,或者说按照有限状态机的形式生成画面转移模型108,甚至更具体地,采取分级FSM的形式或按照分级FSM的形式生成。分级FSM一般是这样的FSM,即,FSM中的一个或更多个节点或状态的每一个也是FSM。参照图6,图6例示了示例性分级FSM。参照图7例示了示例性画面转移图的示例性图示。
在特定的实施方式中,验证工具包102包括爬虫212,爬虫212通过本发明人称为“有引导的爬网”的处理动态地、自动地、并且广泛地导航和练习受测试的动态web应用104。如图2所示,如在下面更详细地描述的,爬虫212可以从引导引擎214接收诸如引导指令、参数和其它信息的输入,以供爬虫212在对动态web应用104进行爬网中使用。爬虫212的输出(即,画面转移模型108)是动态web应用104的行为的精简的数学模型或表达,并且在特定的实施方式中,是动态web应用104的客户端层的行为的精简的数学模型或表达。在一种实施方式中,以XML将画面转移模型108格式化,并随后由验证工具包102存储为XML文档或文件。
在第二步(或级)中,验证工具包102检查、确认、和/或验证关注的画面转移模型108的特性,更具体地是画面转移模型108的全局特性。如将在下面更详细描述的,在特定的实施方式中,验证工具包102包括模型检查器216,模型检查器216接收由爬虫212生成的画面转移模型108作为输入,并对画面转移模型108执行模型检查或执行画面转移模型108的模型检查,以验证动态web应用104的客户端层(注意,在某些另选的实施方式中,模型检查器216可以与验证工具包102和爬虫212分立)。在特定的实施方式中,模型检查器216接收规范(或一组要求)111作为输入。模型检查器216接着可以自动地测试画面转移模型108是否满足该规范。作为示例,模型检查器216可以确定画面转移模型108是否满足在规范111中规定的动态web应用104的一个或更多个功能特性。作为另一示例,模型检查器216可以确定画面转移模型108是否满足规范111中规定的与动态web应用104的可用性有关的一个或更多个导航特性。在特定的实施方式中,模型检查器216在画面转移模型108全部生成/完成后执行模型检查和验证。即,在特定的实施方式中,生成画面转移模型108与画面转移模型108的检查不是同时的,或者说不交叠。在另选的实施方式中,生成和检查可以是同时的,或者部分的检查可以与部分的生成交叠。
如图3所示,在特定的实施方式中,爬虫212包括浏览器320、爬网控制器322和机器人模拟器324。在某些实施方式中,浏览器320在某些方面类似于常规的web浏览器。在特定的实施方式中,浏览器320通过应用接口330从动态web应用104接收用于呈现网页的内容和其它信息,并将网页转变为DOM表达(如,DOM分级树)332。在某些实施方式中,浏览器320可以包括它自己的AJAX引擎326,其用于帮助应用接口330构建DOM 332,并且用于异步地更新当前网页的DOM表达332。在所例示的实施方式中,编程接口(programmatic interface)328也和DOM 332交互。作为示例,编程接口328向DOM 332传递事件信息并接收基于DOM 332的更新。在特定的实施方式中,以JAVA对编程接口328进行编码或者说编程接口328基于JAVA。编程接口328进而耦接到机器人模拟器324,机器人模拟器324又耦接到爬网控制器322。在特定的实施方式中,编程接口328使能机器人模拟器324、并且爬网控制器322通过机器人模拟器324经由浏览器320与动态web应用进行交互/通信。在示例性实施方式中,编程接口328从(处于爬网控制器322方向的)机器人模拟器324接收输入(诸如鼠标点击、键盘字符输入等),并将该输入经由应用接口330提供到动态web应用104。另外,编程接口328经由应用接口330和AJAX引擎326接收诸如询问在当前DOM 332内构建的各种DOM元件的状态的输出,并将该输出传递到机器人模拟器324以随后路由到爬网控制器322(或另选地,直接路由到爬网控制器322)。在示例性实施方式中,爬网控制器322可以是由Delft技术学院开发的crawljax控制器或者与之类似。
在特定的实施方式中,在从浏览器320已经为之生成了前一DOM的前一网页导航到新网页时,浏览器320不是丢弃前一DOM并针对新网页构建新的DOM,而是利用经由动态web应用104得到的用于呈现新网页的新内容和资源修改前一DOM以包含前一网页和新网页之间的差别。另外,在特定的实施方式中,与存储每个DOM/状态并基于全部DOM/状态自身来生成行为模型相反,相邻地导航的网页之间的差别被存储并用于生成画面转移模型108。
验证动态web应用的两步法提供了优于常规验证技术的许多优点。更具体地说,上面描述的通过动态引导的爬网而生成动态web应用的行为模型之后为对所完成的并静态表示的模型进行模型检查的技术可以提供许多显著的优点,某些优点或全部优点可以在本文描述的各种特定的实施方式中提供。这样的优点将在下面更详细的描述中变得更加清楚。
具体地说,与采用完全自动的爬网或手动探测的常规技术相比,有引导的爬网促进对动态web应用的动态的、自动的并且全面的探测,同时降低所需的计算量并且能够生成精简的并且精确的行为模型。作为参考,基于爬网的模型生成是相对昂贵的步骤(所需要的计算资源方面包括处理以及存储),因此,就这一点而言,限制针对给定的web应用所执行的爬网的量是有利的。在一种特定的实施方式中,爬虫212仅对动态web应用104进行一次爬网,同时模型检查器216利用完成的画面转移模型108,根据需要或期望,多次离线地执行模型检查,而不会不利地影响模型生成效率。另外,由于通常在检查和验证之前并不知道待检查的动态web应用的全部要求,所以与常规技术(与爬网和模型生成同时地执行检查和验证)相反,将画面转移模型108的验证设置为离线方式消除了重复相对昂贵的爬网和模型生成的需要。
此外,特定的实施方式生成相对精简的画面转移模型108(与常规技术相比)。作为示例,通过丢弃从验证的角度来看不相关的应用级别的实现细节以及可以通过选择模型108的特定数学表达而实现的压缩可以实现精简的(至少部分的)结果。该精简有利于对这些要求进行更有效验证。另外,在特定的实施方式中更容易检查画面转移模型108的全局特性或要求。更具体地说,与(在常规技术中那样)在模型生成期间(其中,通常仅存在对单条路线(即,正在进行爬网的当前路线)的可见性)相反,通过检查完整的画面转移模型108有利于检查/验证与web应用的全局行为有关的要求。与完整的DOM/状态自身相反,通过基于相邻导航的网页的DOM之间的差别生成画面转移模型108可以获得进一步的压缩和精简。
有引导的爬网也促进按照其它方式生成全面的、精确的和精简的模型。作为示例,web应用常常使用户能够提供输入或者甚至需要来自用户的输入以进行到由web应用提供的特定的网页。作为示例,web应用会需要诸如登录ID和/口令的某种类型的用户认证以进行到下一步骤或下一网页,以实现或呈现由web应用提供的特定特征。作为示例,这会要求向在当前网页上呈现的特定输入框输入特定的有效的用户名和口令信息并且/或者点击呈现在当前网页上的诸如登录按钮的特定的按钮。可以在利用动态web应用所呈现的首个网页(如“主页”)处要求这样的认证。另选地,可以在自前一呈现的网页之后所导航至的网页处的稍后的点处要求这样的认证步骤(诸如,由Amazon.com实现的具有登出阶段(check out stage)的情形)。在这种情况下,完全自动的爬网无法继续进行并且模型覆盖范围受到限制。在特定的实施方式中,这是有引导的定制爬网接管的时候。在认证或输入其它信息后,爬虫212可以恢复为自动爬网。爬虫212有利地切换到有引导的定制爬网的实例可以对应于提示用户输入信息的画面/网页等。这种预定的状态或标准可以被程序化至引导引擎214中,这将在下面更全面地描述。
此外,与普通用户或不具有用户名和口令的未登记用户相比,对于管理员或其它特别授权用户,某些web应用表现出不同的行为(如,特权、特征、动作等)。在这种情况下,在特定的实施方式中,验证工具包102(具体地是爬虫212)可以执行针对相同的动态web应用的爬网的多于一个的实例(如,具有管理员登录的一种实例、普通用户登录的一种实例以及甚至在适用时的没有登录的一种实例)。
HTML形式在现代web应用中已经变得越来越普遍(如上所述的用户认证画面是一种特殊实例)。使用常规技术,通常的探测会需要利用不同的数据组(如,一个错误的数据组和一个正确的数据组)来探测这些形式,以检查应用对错误的和正确的用户输入的响应。此外,在许多情况下,实际的资源约束规定当对web应用进行爬网时仅在特定的页面上执行特定的动作。在特定的实施方式中,这是通过从爬网和从画面转移模型108中排除那些在确保检查和验证步骤的范围以外的或与确保检查和验证步骤无关的特征和动作、由本文所描述的有引导的爬网技术实现的。
特定的实施方式说明使用有引导的爬网的上述考虑、优点、常规的缺点。更具体地说,利用特定的和可能的多个数据组,验证工具包102提供用于指定和执行(在爬网期间)特定的顺序的动作的机制,该机制在动态web应用104的演进或导航中的特定的阶段执行;即,在与动态web应用104的特定的页面对应的特定的状态下执行。因而,爬虫212可以基于上面描述的各种场景导航通过多个序列。在特定的实施方式中,通过该有引导的或“定制的”爬网产生的行为可以无缝地并且精确地与通过“盲的”或完全自动的爬网(如,包括完全自动的链接导航)而生成的画面转移模型108的其它部分结合。
在特定的实施方式中,提供给爬虫212的引导是引导引擎214提供给爬虫212的引导指示的形式。这些引导指示可以专用于受测试的特定web应用。在示例性实施方式中,引导指示可以在数学上定义为G=(p,A)。按照该方式,引导指示G是由评价当前web应用状态的断言p和动作序列A组成的有序对。动作序列A=(α1,α2,...,αk)是一系列原子动作(atomic action)αi。每个原子动作α=(e,u,D)是由DOM元素e、用户动作u和与u关联的数据实例的组D(可能为空)组成的三元组。按照上述定义,引导指示G包括确定何时应该激活G的断言。在示例性的实施方式中,根据爬网期间的web应用104的当前状态对断言进行评价。在特定的实施方式中,状态基本上是由浏览器320呈现的当前画面/网页的DOM的编码的版本。动作序列A表示在激活G时(即,当p在当前状态/屏幕中为真时)必须与关联的数据一起(如果适用的话)在web应用上执行的用户动作的序列。A中的各原子动作α是对当前画面/网页上特定DOM元素e的用户动作u(如,简单的基于浏览器的用户动作)。作为示例,一个通常的动作u将是在诸如链接或按钮的DOM元素上的点击或鼠标悬停(mouse over)。这样的动作不具有相应的数据。因此,原子动作的D分量将是空的组Φ。另一类的动作是那些与某些数据串的选择或输入相对应的动作,例如,从选择元素中选择选项或向<input>HTML元素赋予字符串值等。在这些情形中,D分量将表示用来测试/训练元素的数据值的组。在激活引导指示时,验证工具包102(具体地,爬网控制器322)通过从与A中的各个α对应的组D挑选特定的数据值根据A构造具体的动作序列,并在web应用104上执行该具体的动作序列。在特定的实施方式中,验证工具包102针对在A中表示的数据值的各个组合而系统地进行执行。
下面提出两种示例性算法。第一种是用于根据动态web应用104的初始页面、主页或第一次呈现的页面在动态web应用104上执行有引导的爬网的算法。第二种是根据特定的状态S在动态web应用104上执行有引导的爬网的算法。
算法1:GuidedCrawl(W,G
set
)
算法2:GuidedCrawlFromState(S)
这些算法表示根据特定的实施方式针对基于有引导的爬网的全部模型生成算法的示例性伪代码,并且实现在爬虫212中,在某些示例性实施方式中更具体地是实现在爬网控制器322中。向第一个也是主算法的GuidedCrawl提供web应用W(如,动态web应用104)和关联的引导指示的组Gset。它初始化导航模型,M(其将通过有引导的爬网而被填充)加载浏览器中的web应用并调用动态web应用的初始网页(InitPage)上的内部程序GuidedCrawlFromState。GuidedCrawlFromState进行实际的爬网,并且对新的后继者状态/画面递归地调用它自己。下面描述在算法伪代码中使用的各种其它函数:
IsVisited:检查GuidedCrawlFromState的前一调用是否已经访问了状态S。该检查考虑到针对该步骤实现的任何状态提取。
MarkVisited:将状态S标记为被访问,以将其从未来有引导的爬网中排除。
AddState:将状态S作为新发现的状态记录在导航模型M中。
FindActions:计算可以在当前画面S上执行的原始(非引导的)用户动作(如,点击、鼠标悬停等)的组。
ComputeActionSequences:通过在构成引导指示的原子动作α中挑选特定的数据值,根据引导指示G计算具体的动作序列。计算可以由特定的数据值的各种选择所创建的全部可能的序列。
Execute:在当前处于状态/画面S中的web应用W上执行动作(或动作序列)α。
AddTransition:在模型M中记录从状态S到状态nextState的转变。
UndoTransition:函数地翻转W最近的转变(S→nextState)以将它恢复为状态S。
在有引导的爬网期间提取的模型主要捕获web应用的客户端层行为的导航方面。所选择的画面转移模型反映出动态web应用的自然结构以及与所描述的模型生成的特定方法(即,动态的引导的爬网)的连结。现代高度动态的web应用的大量导航行为集中于停留在相同的统一资源定位符(URI)的同时改变浏览器画面的内容。因而,基于相邻导航页面之间的差别来生成DOM的上述方法和基于这样的差别对行为进行建模的上述方法协同地工作。此外,尽管web应用理论上可以允许无限数量的不同的画面或网页,但试图捕获、表示或检查这些无限的画面既不现实也没什么用处。因而,特定的实施方式集中于在web应用的各URI处自动导航(通过有引导的爬网)丰富但数量有限的画面,同时使用创新状态表示和提取机制以精简地表示该信息。
根据特定的实施方式,可以对画面转移模型108进行如下总结。状态表达用于捕获由应用104访问的每个网页/画面的内容,并且FSM用于表示web应用104的与各URI有关的导航行为。此外,顶层FSM捕获web应用从一个URI到另一个URI的导航。因而,这样的画面转移模型108本质上是分级FSM。如图6所示,U1、U2和U3中的每个都表示包围在特定的URI处的导航行为的超状态(super-state),并且每个都包含表示该内部URI行为的内部FSM。
在特定的实施方式中,XML用于表示画面转移模型108。模型108在效率和功效方面存在大量显著的特征。作为示例,在特定的实施方式中,模型108的格式排除任何HTML CSS(级联样式表)信息以及关于DOM树层级的信息。作为另一示例,在特定的实施方式中,模型108通过它的转移关系表示每个超状态的FSM,而非明确表示每个画面(如上所述),因为在有引导的爬网期间各画面本来就是可用的。这特别重要,因为状态在单个转变中仅最低限度地变化。因此,通过仅表示连续画面之间的变化而非全部画面状态,可以在模型108方面获得高度的精简。
如上所述,特定的实施方式通过一种或更多种不同的资源而实现压缩。作为示例,在特定的实施方式中,爬虫212被提供有在爬网期间应该明确地被包括的HTML元素的特定列表(即,白名单)以及在爬网期间应该明确地被排除的那些列表(即,黑名单)。所述规定可以由用户制作而是应用专用的,作为对模型生成步骤的输入。作为另一示例,由于存在许多这样的实例,即,两个“看上去类似”的HTML页面导致模型中的相同状态表示(例如,当两个页面具有同样的DOM树并且仅在附接到各种DOM元素的文本节点的内容上不同时),在特定的实施方式中,两个这样的网页被视为并认为是相同的状态,并因此在导航模型108中表示为单个状态,这显著地减少了模型108中的状态空间。在特定的实施方式中,状态相同的标准实现在上述算法中的IsVisited()函数内。作为另一示例,包括在模型中的每个DOM元素的每个HTML属性通常用作模型中的状态表达中单独的状态变量。但是,在许多或多数实际情况中,随着应用从一个画面/状态转移到另一个画面/状态,属性的值也相应地改变。因而,在特定的实施方式中,可以利用较少数量的状态变量(与每个HTML DOM元素属性一个变量相比)来表示每个状态。因此,在特定的实施方式中,例如使用与FSM最小化的算法类似的算法,使用该观测以执行对生成的模型的状态再编码步骤。
本发明人已经确定通常对web应用进行检查的一些导航要求和其它类型的要求可以非常自然地公式化为时序逻辑中的特性,因而模型检查器的输入语言使模型检查成为有利的选择,以验证所描述的动态web应用的画面转移模型。作为示例而非限制,这样的要求类别包括画面转移要求、特征可用性/不可用性要求、以及导航结构/使用性要求。
图4例示了一种用于验证动态web应用的客户端层的示例性方法。在一种实施方式中,该方法在402开始,在动态web应用的运行时间期间访问动态web应用。接着在404对动态web应用进行爬网。在特定的实施方式中,爬网包括一个或更多个有引导的爬网的实例,当自动爬网的前一实例达到了动态web应用的、满足了针对有引导的爬网的实例的一个或更多个预定的标准的状态时,各有引导的爬网开始,并且当开始了各有引导的爬网时,各有引导的爬网针对动态web应用执行一个或更多个预定的动作。该方法还包括在406处基于爬网生成动态web应用的画面转移模型。在特定的实施方式中,画面转移模型包括分级有限状态机(FSM)。在一种实施方式中,在完成画面转移模型的生成后,方法还包括在408处对画面转移模型执行模型检查以验证动态web应用的客户端层。
验证工具包102可以包括驻留在一个或更多个计算机系统中的一个或更多个软件组件。图5例示了示例性计算机系统500。验证工具包102和模型生成器110可以是在可以与示例性计算机系统500类似的一个或更多个计算机系统处的软件组件。特定的实施方式可以将验证工具包102、模型生成器110或其二者实现为硬件、软件或者硬件和软件的组合。作为示例而非限制,一个或更多个计算机系统可以执行特定的逻辑或软件以执行针对验证工具包102、模型生成器110或其二者描述或例示的一个或更多个处理的一个或更多个步骤。一个或更多个计算机系统可以是单一式或分布式的,在适当的情况下,可以跨越多个计算机系统或多个数据中心。本公开考虑任何适合的计算机系统。这里,在适当的情况下,所说的逻辑可以包括软件,并且反之亦然。在适当的情况下,所说的软件可以包括一个或更多个计算机程序,并且反之亦然。在适当的情况下,所说的软件可以包括数据、指令或其二者,并且反之亦然。同理,在适当的情况下,所说的数据可以包括指令,并且反之亦然。
一个或更多个计算机可读介质可以存储或另外地包含实现特定的实施方式的软件。在适当的情况下,计算机可读介质可以是能够承载、传达、包含、保持、维持、传播、保留、存储、发送、传输或另外地包含软件的任何介质。在适当的情况下,计算机可读介质可以是生物的、化学的、电子的、电磁的、红外的、磁性的、光学的、量子的或其它适当的介质或者两个或更多个这样的介质的组合。计算机可读介质可以包括一个或更多个纳米级组件或另外包含纳米级设计或制造。示例性计算机可读介质包括(但不限于)专用集成电路(ASIC)、光盘(CD)、现场可编程门阵列(FPGA)、软盘、软式光盘、硬盘、全息存储设备、磁带、高速缓冲存储器、可编程逻辑器件(PLD)、随机存取存储器(RAM)器件、只读存储器(ROM)器件、半导体存储器器件和其它适当的计算机可读介质。
在适当的情况下,可以以任何适当的编程语言(其可以是面向过程或面向对象的)或编程语言的组合来编写实现特定的实施方式的软件。在适当的情况下,任何适当类型的计算机系统(诸如单个或多个处理器的计算机系统)或多个系统可以执行实现特定的实施方式的软件。在适当的情况下,通用计算机系统可以执行实现特定的实施方式的软件。
图5中的组件仅是示例,并且不限制实现特定的实施方式的任何硬件、软件、嵌入式逻辑组件或两个或更多个这样的组件的组合的使用范围或功能。计算机系统500可以具有任何适当的物理形式,包括(但不限于)一个或更多个集成电路(IC)、印刷电路板(PCB)、移动手持设备(诸如移动电话或PDA)、膝上型或笔记型计算机、分布式计算机系统、计算网格或服务器。计算机系统500包括显示器532、一个或更多个输入设备533(例如,可以包括小键盘、键盘、鼠标、触笔等)、一个或更多个输出设备534(例如,可以包括一个或更多个扬声器)、一个或更多个存储设备535和各种存储介质536。
总线540连接范围广泛的各种子系统。这里,在适当的情况下,所提到的总线包括服务于公共功能的一条或更多条数字信号线。总线540可以是包括使用各种总线架构中的任何一种的存储器总线、外设总线或局域总线的多种类型的总线结构中的任何一种。作为示例而非限制,这样的架构包括工业标准架构(ISA)总线、增强的ISA(EISA)总线、微通道架构(MCA)总线、视频电子标准协会局域总线(VLB)、外设组件互连(PCI)总线、PCI快速(PCI-X)总线和加速图形端口(AGP)总线。
处理器501(或中央处理单元(CPU))可选地包含用于指令、数据或计算机地址的临时本地存储的高速缓冲存储器单元502。处理器501耦接到包括存储器503的存储装置。存储器503包括随机存取存储器(RAM)504和只读存储器(ROM)505。ROM 505可以用于单向地向处理器501发送数据和指令,并且RAM 504可以用于与处理器501双向地发送数据和指令。ROM 505和RAM 504可以包括下面描述的任何适当的计算机可读介质。可选地通过存储控制单元507,固定存储部508双向地连接到处理器501。固定存储部508提供附加的数据存储容量并且还可以包括下面描述的任何适当的计算机可读介质。存储部508可以用于存储操作系统509、执行程序(EXEC)510、数据511、应用程序512等。通常,存储部508是比主存储部慢的辅助存储介质(诸如硬盘)。在适当的情形中,在存储部508中的信息被并入存储器503中的虚拟存储器。
处理器501连接到多个接口,诸如图形控制521、视频接口522、输入接口523、输出接口524和存储接口525。如图所示,这些接口又连接到适当的设备。一般而言,输入/输出(I/O)设备可以是视频显示器、轨迹球、鼠标、键盘、麦克风、触敏显示器、转换器读卡器、磁带或纸带阅读器、写字板、触笔、语音或笔迹识别器、生物特征读取器、另一计算机系统、其它适当的I/O设备或者两个或更多个这样的I/O设备的组合。通过网络接口520,处理器501可以连接到另一计算机系统或电信网络530(其可以包括网络12)。根据特定的要求,利用网络接口520,CPU 501可以在执行本文所描述或例示的一个或更多个处理的一个或更多个步骤的过程中与网络530通信。而且,本文描述或示出的一个或更多个处理的一个或更多个步骤可以单独在CPU501处执行。附加地或另选地,本文描述或示出的一个或更多个处理的一个或更多个步骤可以在跨越网络530的彼此远离的多个CPU 501处执行。
在特定的实施方式中,当计算机系统500连接到网络530时,计算机系统500可以与连接到网络530的其它设备通信。可以通过网络接口520发送去往和来自计算机系统500的通信。例如,网络接口520可以接收来自网络530的、一个或更多个分组(诸如因特网协议(IP)分组)的形式的入站通信(诸如来自其它设备的请求或响应),并且计算机系统500可以将入站通信存储在存储器503中以进行处理。计算机系统500可以类似地以一个或更多个分组的形式将出站通信(诸如到其它设备的请求或响应)存储在存储器503中并且从网络接口520传送到网络530。处理器501可以访问存储在存储器503中的这些通信分组以进行处理。
特定的实施方式包括具有一个或更多个计算机可读介质的存储部,该一个或更多个计算机可读介质编码有用于执行计算机实现的操作的计算机可执行代码。介质和计算机可执行代码可以针对特定的实施方式特别地设计或创建,或者对于本领域普通技术人员是熟知的和可用的。计算机可读介质的示例包括(但不限于)磁性介质(诸如硬盘、软盘和磁带)、光学介质(诸如CD-ROM和全息设备)、磁性-光学介质(诸如软式光盘)以及专门配置为存储并执行代码的诸如专用IC(ASIC)、可编程逻辑器件(PLD)以及ROM和RAM器件的硬件设备。计算机代码的示例包括诸如由编译器生成的代码的机器码和包含计算机可以利用解释器来执行的高级代码的文件。
计算机系统500可以提供作为处理器501执行在诸如存储器503的一个或更多个计算机可读存储介质中包含的软件的结果的功能。存储器503可以存储实现特定的实施方式的软件,并且处理器501可以执行软件。存储器503可以通过诸如网络接口520的适当的接口从一个或更多个其它计算机可读介质(诸如大容量存储设备535)读取软件,或者从一个或更多个其它源读取软件。软件可以使处理器501来执行本文描述或例示的一个或更多个处理或者一个或更多个处理的一个或更多个步骤。执行这样的处理或步骤可以包括限定存储在存储器503中的数据结构并且按软件的指向修改数据结构。附加地或另选地,计算机系统500可以提供作为电路中的硬连线地包含或以其他方式包含的逻辑结果的功能,其中,逻辑可以替代软件或与软件一起操作以执行本文描述或例示的一个或更多个处理或者一个或更多个处理的一个或更多个步骤。此处,在适当的情况下,所提到的软件可以包括逻辑,并且反之亦然。而且,在适当的情况下,所提到的计算机可读介质可以包括存储要执行的软件的电路(诸如IC)、具体实现要执行的逻辑的电路或者其二者。本公开包括硬件、软件或其二者的任何适当的组合。
本公开包括本领域技术人员将理解的对本文的示例性实施方式的全部变化、替代、变更、改变和修改。同理,在适当的情况下,所附的权利要求包括本领域技术人员将理解的对本文的示例性实施方式的全部变化、替代、变更、改变和修改。
Claims (20)
1.一种方法,所述方法包括:
由一个或更多个计算机系统访问包括客户端层的动态web应用;
由所述一个或更多个计算机系统对所述动态web应用进行爬网,所述爬网包括有引导的爬网的一个或更多个实例,当自动爬网的前一实例达到所述动态web应用中的、满足了针对有引导的爬网的所述实例的一个或更多个预定标准的状态时,所述有引导的爬网的各实例开始,并且当所述有引导的爬网开始时,所述有引导的爬网的各实例针对所述动态web应用执行一个或更多个预定动作;
由所述一个或更多个计算机系统基于所述爬网生成所述动态web应用的画面转移模型,所述画面转移模型包括分级有限状态机(FSM);以及
在完成所述画面转移模型的生成后,由所述一个或更多个计算机系统对所述画面转移模型执行模型检查以验证所述动态web应用的所述客户端层。
2.根据权利要求1所述的方法,其中,所述动态web应用包括超文本标记语言(HTML)内容、可扩展标记语言(XML)内容或JavaScript资源这三者中的一个或更多个。
3.根据权利要求1所述的方法,其中,所述动态web应用被配置为在所述动态web应用的初始化或执行期间利用异步JavaScript和XML(AJAX)。
4.根据权利要求1所述的方法,其中:
所述动态web应用包括嵌入在所述动态web应用中的一个或更多个可执行代码段;并且
所述爬网包括执行所述一个或更多个可执行代码段。
5.根据权利要求1所述的方法,其中:
所述动态web应用包括一个或更多个网页;并且
对所述动态web应用进行爬网包括,针对所述一个或更多个网页的每一个:
接收用于呈现所述网页的内容;
将所述内容转换为所述网页的文档对象模型(DOM)表达;并且
对所述网页的所述DOM表达进行爬网。
6.根据权利要求5所述的方法,其中:
针对当前网页将所述内容转换为DOM表达包括:
接收所述动态web应用的前一网页的DOM表达;并且
将所述前一网页的DOM表达修改为包含所述当前网页和所述前一网页之间的一个或更多个所述差异,并且
生成所述动态web应用的画面转移模型包括:
基于在所述当前网页和所述前一网页之间的所述DOM表达之间的一个或更多个差异生成所述画面转移模型。
7.根据权利要求1所述的方法,其中:
在所述动态web应用中的、满足针对有引导的爬网的所述实例的一个或更多个预定的标准的状态包括与所述动态web应用的特定的网页相对应的状态,其中,所述动态web应用的特定的网页包括用于接收来自用户的输入的一个或更多个用户交互模块;并且
对所述动态web应用进行爬网包括输入一个或更多个输入以模拟与所述一个或更多个用户交互模块中的一个或更多个用户交互模块的交互。
8.根据权利要求7所述的方法,其中,所述一个或更多个输入是通过分析所述特定的网页的DOM表达而自动生成的。
9.根据权利要求1所述的方法,其中,对所述画面转移模型执行模型检查包括:测试所述画面转移模型是否满足针对所述动态web应用的预定的规范。
10.根据权利要求9所述的方法,其中,测试所述画面转移模型是否满足针对所述动态web应用的预定的规范包括:
确定所述画面转移模型是否满足在所述规范中规定的一个或更多个功能特性;以及
确定所述画面转移模型是否满足在所述规范中规定的与所述动态web应用的使用性相关的一个或更多个导航特性。
11.一个或更多个计算机可读有形存储介质,编码有被执行时能够进行以下操作的软件:
访问包括客户端层的动态web应用;
对所述动态web应用进行爬网,其中,为了对所述动态web应用进行爬网,当执行时,所述软件能够操作以执行有引导的爬网的一个或更多个实例,当自动爬网的前一实例达到在所述动态web应用中的、满足了针对有引导的爬网的所述实例的一个或更多个预定标准的状态时,所述有引导的爬网的各实例开始,并且当开始时,所述有引导的爬网的各实例针对所述动态web应用执行一个或更多个预定的动作;
基于所述爬网生成所述动态web应用的画面转移模型,所述画面转移模型包括分级有限状态机(FSM);以及
在完成了所述画面转移模型的生成后,对所述画面转移模型执行模型检查以验证所述动态web应用的所述客户端层。
12.根据权利要求11所述的介质,其中,所述动态web应用包括超文本标记语言(HTML)内容、可扩展标记语言(XML)内容或JavaScript资源中的一个或更多个。
13.根据权利要求11所述的介质,其中,所述动态web应用被配置为在所述动态web应用的初始化或执行期间使用异步JavaScript和XML(AJAX)。
14.根据权利要求11所述的介质,其中:
所述动态web应用包括嵌入在所述动态web应用中的一个或更多个可执行代码段;并且
当被执行时能够对所述动态web应用进行爬网的所述软件包括当被执行时能够执行所述一个或更多个可执行代码段的软件。
15.根据权利要求11所述的介质,其中:
所述动态web应用包括一个或更多个网页;并且
当被执行时能够对所述动态web应用进行爬网的所述软件包括当执行时能够针对所述一个或更多个网页的每一个网页执行以下操作的软件:
接收用于呈现所述网页的内容;
将所述内容转换为所述网页的文档对象模型(DOM)表达;以及
对所述网页的所述DOM表达进行爬网。
16.根据权利要求15所述的介质,其中:
当被执行时能够针对当前网页将所述内容转换为DOM表达的所述软件包括当被执行时能够执行以下操作的软件:
接收所述动态web应用的前一网页的DOM表达;并且
将所述前一网页的所述DOM表达修改为包含所述当前网页和所述前一网页之间的一个或更多个差异,并且
当被执行时能够生成所述动态web应用的画面转移模型的所述软件包括当被执行时能够执行以下操作的软件:
基于在所述当前网页和前一网页之间的所述DOM表达之间的一个或更多个所述差异生成所述画面转移模型。
17.根据权利要求11所述的介质,其中:
在所述动态web应用中的、满足针对有引导的爬网的所述实例的一个或更多个预定的标准的状态包括与所述动态web应用的特定的网页相对应的状态,其中,所述动态web应用的特定的网页包括用于接收来自用户的输入的一个或更多个用户交互模块;并且
当被执行时能够对所述动态web应用进行爬网的所述软件包括当执行时能够输入一个或更多个输入以模拟与所述一个或更多个用户交互模块中的一个或更多个用户交互模块的交互的软件。
18.根据权利要求17所述的介质,其中,所述软件还能够通过分析所述特定的网页的DOM表达自动地生成所述一个或更多个输入。
19.根据权利要求11所述的介质,其中,当被执行时能够对所述画面转移模型执行模型检查的所述软件包括当被执行时能够执行以下操作的软件:测试所述画面转移模型是否满足针对所述动态web应用的预定的规范。
20.根据权利要求19所述的介质,其中,当被执行时能够测试所述画面转移模型是否满足针对所述动态web应用的预定的规范的所述软件包括当执行时能够执行以下操作的软件:
确定所述画面转移模型是否满足在所述规范中规定的一个或更多个功能特性;以及
确定所述画面转移模型是否满足在所述规范中规定的与所述动态web应用的使用性相关的一个或更多个导航特性。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/571,374 US8255384B2 (en) | 2009-09-30 | 2009-09-30 | Client-tier validation of dynamic web applications |
US12/571,374 | 2009-09-30 | ||
PCT/US2010/046400 WO2011041045A1 (en) | 2009-09-30 | 2010-08-24 | Client-tier validation of dynamic web applications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102483698A true CN102483698A (zh) | 2012-05-30 |
CN102483698B CN102483698B (zh) | 2016-01-06 |
Family
ID=43066747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080039223.9A Active CN102483698B (zh) | 2009-09-30 | 2010-08-24 | 动态web应用的客户端层验证 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8255384B2 (zh) |
EP (1) | EP2483774B1 (zh) |
JP (1) | JP5500259B2 (zh) |
CN (1) | CN102483698B (zh) |
WO (1) | WO2011041045A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI640932B (zh) * | 2017-08-08 | 2018-11-11 | 富比庫股份有限公司 | Electronic part pattern verification system and method thereof |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9690769B2 (en) * | 2009-10-16 | 2017-06-27 | Excalibur Ip, Llc | Method and system for completing an edit area of a web page |
US9182981B2 (en) * | 2009-11-23 | 2015-11-10 | University Of Washington | Systems and methods for implementing pixel-based reverse engineering of interface structure |
US9032067B2 (en) * | 2010-03-12 | 2015-05-12 | Fujitsu Limited | Determining differences in an event-driven application accessed in different client-tier environments |
US8832065B2 (en) | 2010-10-29 | 2014-09-09 | Fujitsu Limited | Technique for coordinating the distributed, parallel crawling of interactive client-server applications |
US8880588B2 (en) | 2010-10-29 | 2014-11-04 | Fujitsu Limited | Technique for stateless distributed parallel crawling of interactive client-server applications |
US9400962B2 (en) | 2010-10-29 | 2016-07-26 | Fujitsu Limited | Architecture for distributed, parallel crawling of interactive client-server applications |
US9262158B2 (en) * | 2010-12-13 | 2016-02-16 | Microsoft Technology Licensing, Llc | Reverse engineering user interface mockups from working software |
WO2012092261A2 (en) * | 2010-12-29 | 2012-07-05 | Citrix Systems, Inc. | Systems and methods for multi-level tagging of encrypted items for additional security and efficient encrypted item determination |
US9208054B2 (en) | 2011-02-14 | 2015-12-08 | Fujitsu Limited | Web service for automated cross-browser compatibility checking of web applications |
US9720811B2 (en) * | 2011-06-29 | 2017-08-01 | Red Hat, Inc. | Unified model for visual component testing |
US8381094B1 (en) * | 2011-09-28 | 2013-02-19 | Fujitsu Limited | Incremental visual comparison of web browser screens |
US8966359B2 (en) | 2012-01-26 | 2015-02-24 | International Business Machines Corporation | Web application content mapping |
US9817916B2 (en) * | 2012-02-22 | 2017-11-14 | Akamai Technologies Inc. | Methods and apparatus for accelerating content authored for multiple devices |
US9659095B2 (en) * | 2012-03-04 | 2017-05-23 | International Business Machines Corporation | Managing search-engine-optimization content in web pages |
US8880951B2 (en) | 2012-04-06 | 2014-11-04 | Fujitsu Limited | Detection of dead widgets in software applications |
US10360027B2 (en) * | 2012-08-16 | 2019-07-23 | Fujitsu Limited | Automatically extracting a model for the behavior of a mobile application |
CN103810091B (zh) * | 2012-11-12 | 2018-11-23 | 百度在线网络技术(北京)有限公司 | 一种用于实现页面测试的方法和设备 |
WO2014120128A1 (en) * | 2013-01-29 | 2014-08-07 | Hewlett-Packard Development Company, L.P. | Analyzing structure of web application |
US9910992B2 (en) * | 2013-02-25 | 2018-03-06 | Entit Software Llc | Presentation of user interface elements based on rules |
US9780951B2 (en) | 2013-03-14 | 2017-10-03 | Mcafee, Inc. | Prevention of forgery of web requests to a server |
CA2816781C (en) * | 2013-05-28 | 2022-07-05 | Ibm Canada Limited - Ibm Canada Limitee | Identifying client states |
US9513885B2 (en) * | 2013-08-22 | 2016-12-06 | Peter Warren | Web application development platform with relationship modeling |
US9733782B2 (en) * | 2013-09-13 | 2017-08-15 | Fujitsu Limited | Extracting a deterministic finite-state machine model of a GUI based application |
US10296305B2 (en) * | 2013-09-27 | 2019-05-21 | Rudolf Markus PETRI | Method and device for the automated production and provision of at least one software application |
CN104519084B (zh) * | 2013-09-27 | 2017-12-05 | 华为终端有限公司 | 一种显示信息的方法及装置 |
CN104778070B (zh) * | 2014-01-15 | 2018-07-06 | 富士通株式会社 | 隐藏变量抽取方法和设备以及信息提取方法和设备 |
US9652360B2 (en) * | 2014-04-04 | 2017-05-16 | Fujitsu Limited | Crawling for extracting a model of a GUI-based application |
US10078502B2 (en) * | 2014-06-19 | 2018-09-18 | Fujitsu Limited | Verification of a model of a GUI-based application |
US10068013B2 (en) * | 2014-06-19 | 2018-09-04 | Samsung Electronics Co., Ltd. | Techniques for focused crawling |
CN104536901B (zh) * | 2015-01-23 | 2017-06-23 | 桂林电子科技大学 | 基于动态描述逻辑和模型检测的语义Web服务验证方法 |
CN104766368B (zh) * | 2015-04-20 | 2017-09-26 | 成都康赛信息技术有限公司 | 基于元胞自动机的信息门户自动构建以及动态构建方法 |
US10860669B2 (en) * | 2015-06-05 | 2020-12-08 | Nippon Telegraph And Telephone Corporation | User estimation apparatus, user estimation method, and user estimation program |
US11403307B2 (en) * | 2015-09-24 | 2022-08-02 | Mcafee, Llc | Distributed data query |
US11443098B1 (en) * | 2017-02-08 | 2022-09-13 | Amazon Technologies, Inc. | Federated recursive user interface element rendering |
US10938856B2 (en) | 2018-03-30 | 2021-03-02 | Intel Corporation | Systems and methods for security protocol execution in a hierarchical state machine-driven execution plan |
JP7211229B2 (ja) * | 2019-04-10 | 2023-01-24 | 日本電信電話株式会社 | 入力値設定補助装置、入力値設定補助方法及びプログラム |
US10628630B1 (en) | 2019-08-14 | 2020-04-21 | Appvance Inc. | Method and apparatus for generating a state machine model of an application using models of GUI objects and scanning modes |
US10552299B1 (en) | 2019-08-14 | 2020-02-04 | Appvance Inc. | Method and apparatus for AI-driven automatic test script generation |
US11212384B2 (en) | 2019-12-20 | 2021-12-28 | Capital One Services, Llc | Cross-channel configurable navigation |
US11521210B2 (en) * | 2020-05-13 | 2022-12-06 | Paypal, Inc. | Automated verification of user interface process flows |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005077118A2 (en) * | 2004-02-11 | 2005-08-25 | Spi Dynamics, Inc. | System and method for testing web applications with recursive discovery and analysis |
CN100353733C (zh) * | 2005-12-23 | 2007-12-05 | 王建波 | 基于xml文件的rss信息交互处理方法 |
CN101344881A (zh) * | 2007-07-09 | 2009-01-14 | 中国科学院大气物理研究所 | 海量文件型数据的索引生成方法及装置和搜索系统 |
CN101443751A (zh) * | 2004-11-22 | 2009-05-27 | 特鲁维奥公司 | 用于应用爬取器的方法和装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7716322B2 (en) * | 2002-09-23 | 2010-05-11 | Alcatel-Lucent Usa Inc. | Automatic exploration and testing of dynamic Web sites |
US7472413B1 (en) * | 2003-08-11 | 2008-12-30 | F5 Networks, Inc. | Security for WAP servers |
US7765597B2 (en) * | 2004-02-11 | 2010-07-27 | Hewlett-Packard Development Company, L.P. | Integrated crawling and auditing of web applications and web content |
US7444397B2 (en) * | 2004-12-21 | 2008-10-28 | International Business Machines Corporation | Method of executing test scripts against multiple systems |
JP4140916B2 (ja) * | 2005-12-22 | 2008-08-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Webページにおける状態遷移を解析する方法 |
CN101193007A (zh) * | 2006-11-28 | 2008-06-04 | 国际商业机器公司 | 统一资源定位符命令测试方法、场景测试方法和相应设备 |
US8392890B2 (en) * | 2007-10-15 | 2013-03-05 | Software Research, Inc. | Method and system for testing websites |
-
2009
- 2009-09-30 US US12/571,374 patent/US8255384B2/en not_active Expired - Fee Related
-
2010
- 2010-08-24 JP JP2012532087A patent/JP5500259B2/ja active Active
- 2010-08-24 CN CN201080039223.9A patent/CN102483698B/zh active Active
- 2010-08-24 WO PCT/US2010/046400 patent/WO2011041045A1/en active Application Filing
- 2010-08-24 EP EP10760811.9A patent/EP2483774B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005077118A2 (en) * | 2004-02-11 | 2005-08-25 | Spi Dynamics, Inc. | System and method for testing web applications with recursive discovery and analysis |
CN101443751A (zh) * | 2004-11-22 | 2009-05-27 | 特鲁维奥公司 | 用于应用爬取器的方法和装置 |
CN100353733C (zh) * | 2005-12-23 | 2007-12-05 | 王建波 | 基于xml文件的rss信息交互处理方法 |
CN101344881A (zh) * | 2007-07-09 | 2009-01-14 | 中国科学院大气物理研究所 | 海量文件型数据的索引生成方法及装置和搜索系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI640932B (zh) * | 2017-08-08 | 2018-11-11 | 富比庫股份有限公司 | Electronic part pattern verification system and method thereof |
Also Published As
Publication number | Publication date |
---|---|
WO2011041045A1 (en) | 2011-04-07 |
EP2483774A1 (en) | 2012-08-08 |
JP5500259B2 (ja) | 2014-05-21 |
US20110078556A1 (en) | 2011-03-31 |
CN102483698B (zh) | 2016-01-06 |
EP2483774B1 (en) | 2018-09-12 |
US8255384B2 (en) | 2012-08-28 |
JP2013506906A (ja) | 2013-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102483698A (zh) | 动态web应用的客户端层验证 | |
CN111274815B (zh) | 用于挖掘文本中的实体关注点的方法和装置 | |
US9104809B2 (en) | Facilitating automated validation of a web application | |
US10656907B2 (en) | Translation of natural language into user interface actions | |
JP2020508521A (ja) | ニューラルネットワークアーキテクチャの最適化 | |
EP2487595A2 (en) | Web service for automated cross-browser compatibility checking of web applications | |
US20100036665A1 (en) | Generating speech-enabled user interfaces | |
KR100672894B1 (ko) | 제품 계열 아키텍처의 표현 및 검증 장치와 그 방법 | |
JP2016519825A (ja) | 再計算ユーザインターフェースにおける信号捕捉制御 | |
JP2022019524A (ja) | モデリングパラメータの設定方法、装置、デバイス、コンピュータ記憶媒体、及びコンピュータプログラム | |
CN110362792A (zh) | 将rn文件转换为小程序文件的方法、装置及转换设备 | |
Bayer et al. | Design and development of a web-based EPANET model catalogue and execution environment | |
US12014155B2 (en) | Constrained prefix matching for generating next token predictions | |
Zhang et al. | Research of web front-end engineering solution in public cultural service project | |
Bastakoti | Using Native Mobile Services in React Js | |
Lutfi et al. | Virtual reality in model based systems engineering: A review paper | |
Zhang | A practical approach to developing a web-based geospatial workflow composition and execution system | |
Guo et al. | Research on Key Techniques for Enginery Teaching Platform Based on Computer Dynamic Simulation Technique. | |
CN110309455A (zh) | Ole矢量图的显示方法、装置及设备 | |
Sharda et al. | Intelligent visual travel recommender systems model for e-tourism websites | |
Arsan | Democratizing interaction mining | |
Harrington et al. | Approaching web accessibility through the browser: automatically applying aria attributes | |
Wagner | Safari and WebKit Development for IPhone OS 3.0 | |
Lau et al. | Towards conversational interfaces to web applications | |
WO2024215309A1 (en) | Task completion using a language model neural network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |