Home
Method and system for testing websites
Contents
1. FIG 5 US 8 392 890 B2 1 METHOD AND SYSTEM FOR TESTING WEBSITES CROSS REFERENCE TO OTHER APPLICATIONS This application claims priority benefit of U S Provisional Patent Application No 60 980 068 filed Oct 15 2007 and entitled METHOD SYSTEM AND SYSTEM FOR TEST ING WEBSITES which is hereby incorporated by reference herein This application also references i U S Pat No 7 231 606 which is hereby incorporated by reference herein and ii U S patent application Ser No 11 758 624 filed Jun 5 2007 and entitled METHOD SYSTEM AND SYSTEM FOR TESTING WEBSITES which is hereby incorporated by reference herein COPYRIGHT NOTICE A portion of the disclosure of this patent document con tains material that is subject to copyright protection The copyright owner has no objection to the facsimile reproduc tion by anyone of the patent document or the patent disclosure as it appears in the U S Patent and Trademark Office patent file or records but otherwise reserves all copyright rights whatsoever BACKGROUND OF THE INVENTION 1 Field of the Invention The present invention relates to software testing and more particularly to automated analysis and testing of websites 2 Description of the Related Art Websites are complex collections of information intended to be viewed and used and interacted with by sending infor mation from a WebSite server over the Internet to users who work with this infor
2. property_name property__value frame_ path NAV 2 Command Explanation Here is an explanation of how this command works in a practical realization 20 25 30 35 40 45 50 55 60 65 12 1 Command Pairs The string string notation means that you can have as many pairs as you wish The following syntax examples are correct 1 IndexElementEvent wid event name proper ty_name property_value frame_path 2 IndexElementEvent wid event_name proper tv name property_value property_name proper tv value frame_path NAV 3 IndexElementEvent wid event_name proper tv name property_value property_name proper ty_value property_name property_value proper ty_name propertv value frame_path The following syntax examples are invalid 1 IndexElementEvent wid event_name frame_path 2 IndexElementEvent wid event name frame_path NAV The example below is valid syntactically but may produce playback errors 1 IndexElementEvent wid ty_name frame_path NAV This example has five parameters which follow the form of the first valid syntax example above It is assumed that frame_path is a property value and NAW as the frame path 2 Parameters The main parameters of this command are the name of the event and the descripti
3. Documentation http seletumhq org docs 01_ introducing sele nium html brief history_of downloaded Nov 20 2011 8 pages Open Source at Google Introducing WebDriver Google Open Source Blog http google opensource blogspot com 2009 05 intro ducing webdriver html May 8 2009 3 pages Waitr General Discussion Discussions Watir GenerallGoogle Group http groups google com group watir general topics tsc 2 downloaded Nov 20 2011 3 pages What is DejaClick DejaClick by AlertSite http www dejaclick com downloaded Nov 20 2011 2 pages DejaClick DejaClick Wikipedia the free encyclopedia http en wikipedia org wiki Dejaclick downloaded Nov 20 2011 2 pages Internet Explorer Wikipedia the free encyclopedia http en wikipedia org wiki Internet_ Explorer downloaded Dec 9 2011 26 pages Office Action for U S Appl No 12 795 553 mailed Mar 8 2012 Functional Regression Test Tools Retrieved at lt lt http www qcforum org viewtopic php id 14 gt gt Apr 4 2008 pp 8 Record and Playback for IBM Rational Functional Tester 7 0 does not Work on HTML Browser Menu Options Retrieved at lt lt http www01 ibm com support docview wss uid swg2125183 gt gt Oct 9 2009 p 1 IBM Rational Functional Tester Proxy SDK Reference Retreived at lt lt http publib boulder ibm com infocenterkfthelp v710m0 indexj sp topic com rat ion
4. x y values specified are offsets within the object supplied by the DOM IndexInputValue wid type extra 1 extra 2 frame_ path NAV IndexValidateObjProperty wid property name expected value frame_ path IndexSaveObjProperty wid property name filename frame_ path IndexMouseUp wid x y frame__path NAV IndexMouseOut wid x y ftame path NAV C Page Element Event Stimulation Once a DOM element is identified the plavback process can take actions on it provided that it is an element that is able to accept actual or simulated user activity 1 Representative Implementation In the representative implementation the page element event simulation activity is performed with a command that includes as parameters the necessary information to identify the action to be taken and the location at which it is to be taken The command syntax below illustrates how this is accomplished in the representative implementation but alter native implementations will vary in regard to syntax and semantics but accomplish the same effect COMMAND SYNTAX EXPLANATION This command involves specifying an event_name and a sequence of property__name property__value in pairs Complete details on how these parameters work in actual practice are given below IndexElementEvent wid event_name property__name property__value
5. but within which there is enough constancy of structure to make the high level process of exploiting the order of elements feasible 3 Working Assumptions about these Special Commands Here are background assumptions that apply this type of command There is only one sourceIndex known to the test enabled web browser at any time The initial value of the sourcelndex is always set to zero The value of the sourcelndex persists between pages Commands that use this internally stored sourcelndex value always refer to the current page The test enabled browser does not modify the sourceIndex except by action of the commands below Because motion on the page is from the perspective of the view a search DOWN toward the bottom of the page means increasing index numbers whereas a search UP toward the top of the page means decreasing index num bers If that s not confusing enough maybe this will help or not if you go all the way UP on a page you re at sourcelndex 0 4 A Note about Perspective The relative orientation of the web page being manipulated is important to understand UP This means up on the page as seen by the viewer i e toward the top of the page and this means decreasing index numbers DOWN This means down on the page as seen by the viewer i e toward the bottom of the page and this means increasing index numbers 5 Command Descriptions in Representative Implementa tion DOM E
6. gt Mar 18 2009 pp 3 Expression Web SuperPreview Retrieved at lt lt http expression mircosoft com en us dd565874 printer aspx gt gt no later than Oct 13 2009 pp 2 Cugini et al Design of a File Format for Logging Website Interac tion Retrieved at lt lt http zing ncsl nist gov cugini webmet flud design paper html gt gt Apr 2001 pp 9 Notice of Allowance for U S Appl No 12 795 553 mailed Sep 27 2012 U S Appl No 12 795 553 filed Jun 7 2010 Advisory Action for U S Appl No 10 041 768 mailed Sep 9 2005 Notice of Allowance for U S Appl No 10 041 768 mailed Feb 8 2007 Office Action for U S Appl No 11 758 624 mailed Sep 17 2009 Notice of Allowance for U S Appl No 11 758 624 mailed Mar 23 2010 Document Object Model Wikipedia downloaded Jul 7 2011 pp 1 6 W3C Document Object Mode W3C www w3 org dom pp 1 3 Jul 7 2011 cited by examiner U S Patent Mar 5 2013 Sheet 1 of 5 US 8 392 890 B2 y 106 TEST ENABLED BROWSER BROWSER BASE LIBRARY 102 108 gt DATABASE FIG 1 Prior Art U S Patent Mar 5 2013 Sheet 2 of 5 US 8 392 890 B2 200 TRIGGER RECEIVED PERFORM TEST BASED PROCESSING __ 204 PERFORM BROWSER BASED PROCESSING 206 FIG 2 Prior Art U S Patent 302 Flash Flex2 JRE Java ActiveX Cache Cookies Mar 5 2013 Sheet 3 of 5 US 8 392 890 B2 USER
7. performed 204 Here the test based processing is the pro cessing needed to carry out the particular type of testing being performed on a determined website Following the perfor mance of the test based processing browser based process ing is performed 206 Here the browser based processing is processing typically performed by a browser application net work browser Here the browser based processing in one implementation can be provided using the code resources stored for example in the IE based functional library 102 illustrated in FIG 1 Following the operation 206 the test enabled browser processing 200 returns to repeat the decision 202 and subsequent blocks so that subsequently received triggers can be similarly processed C Browser Internal Operation FIG 3 is a block diagram of browser interfaces according to one embodiment of the invention As FIG 3 shows the internal structure of a typical browser involves a variety of standard components that interact to produce the browsing experience In the case of the subject invention one of which embodi ments is a test enabled browser referred to as a product called eValid these components can operate in unison to provide arealistic browsing experience but also to provide such aux iliary functions as an 5 20 25 30 35 40 45 50 55 60 65 4 1 Making a recording of user actions as sensed internally at 300 and 301 to produce a test s
8. these commands in escapement mode according to one of these patterns An J n is a wait command waiting for a specified positive event or a timeout is a wait command waiting for a specified negative event or a timeout Tn indicates there may be multiple such instances in a sequence B Page Face Motion Playback In both AJAX and other web application technologies there is aneed to be able to create scripts that are language and page detail independent This need arises because of the use of pages where the content is generated dynamically This kind of work is done in the representative implemen tation with a series of commands that find move manipulate and manage the location of an index value without having to be concerned with the specifics of what that value is but what it points to including pointing to things that are a fixed relative location away from a searchable property property value Acharacteristic of the implementation of this feature is that the test enabled web browser has multi threaded access to the DOM of the current page even when the browser is perform ing other functions in parallel with the operation of the DOM inspection and analysis process The adaptive playback fea ture implemented in the representative implementation does not apply to these operations 1 Representative Implementation The basic idea of these commands is to make it possible to have playback se
9. Human Process Dynamic C C C Java Program Interactive User Batch Programmatic Interface Desktop Interface EPI User Browser Desktop Interface 306 IE XMUHTML RENDERING ENGINE 301 eValid Control Interface Adaptive Playback EA Ea bal EA Ea bal Internal Plavback State Svnchroni ation Scripting 309 Namespace Session Page URL Cookies Timing eValid Communications Interface JavaScript ECMA Script VBScript MFClasses IWebBrowser2 IHTMDocument2 310 Browser Executable Input Output Interface 305 COM 301 0 1Z W WOD 307 HTTPS Protocol Local File _ 308 Access WWW 303 Script Logfiles FIG 3 U S Patent Mar 5 2013 Sheet 4 of 5 eValid PageMap lt TABLE gt E lt TeoDY gt lt B gt lt TD gt lt TR gt 2 Bi lt TD gt innerHTML innerText sourceIndex taghlame canHayeHTPRiL dassame 000000 di FIG 4 US 8 392 890 B2 U S Patent Mar 5 2013 Sheet 5 of 5 US 8 392 890 B2 500 510 Recorded SiteMap Script Reports Edited Script 2 l 5 EDIT Web or Intranet EDIT TEST ENABLED BROWSER Load Sub Browser Script 501 508 Sub Browser 144 504 505 506 Perf Message 509 LoadTest Log Log Log 507 Event Performance Message Timing LoadTest Charts Charts Charts Charts 1 Charts 503
10. Validation Technology VT19 the 12th International Soft ware Quality Week 1999 San Jose CA May 24 28 1999 4 pgs Conference Program amp Expo Guide Vendor Technical Presenta tion Website Validation Technology VT19 the 12th International Software Quality Week 1999 San Jose CA May 24 28 1999 2 pgs eValid User Manual v7 Software Research Inc May 21 2007 677 pgs eValid User Manual v8 Software Research Inc Jan 28 2008 894 pgs Office Action for U S Appl No 10 041 768 mailed Jul 2 2004 Office Action for U S Appl No 10 041 768 mailed Feb 14 2005 Office Action for U S Appl No 10 041 768 mailed May 13 2005 Office Action for U S Appl No 10 041 768 mailed Dec 28 2005 Office Action for U S Appl No 10 041 768 mailed Aug 23 2006 Office Action for U S Appl No 10 041 768 mailed Jan 16 2007 Advisory Action for U S Appl No 10 041 768 mailed Sep 9 2005 Notice of Allowance for U S Appl No 10 041 768 mailed Feb 8 2007 Office Action for U S Appl No 11 758 624 mailed Sep 17 2009 Notice of Allowance for U S Appl No 11 758 624 mailed Mar 23 2010 W3C Document Object Mode W3C www w3 org dom pp 1 3 JavaScript Wikipedia downloaded Aug 14 2011 pp 1 20 Ajax programming Wikipedia downloaded Aug 14 2011 pp 1 4 Document Object Model DOM Level Specification Version 1 0 W3C Oct 1 1998 pp 1 169 The Third International Software Quali
11. and also turn on the Create URL Trace option 3 Play back the original script The conversion process is accomplished during actual playback to assure the accu racy of the URL sequence extraction 4 The resulting derived URL trace script will be saved as URL script evs 5 The URL trace script has the usual headers has a Serve URL at the front of the script and has a Serve FULL at the end 6 Load the derived URL trace script in this form to confirm the results 7 An eVlite run of URL script evs now will mimic the same sequence of URL downloaded in the original script evs 4 Example of Script Conversion Here is an example of the effect of the transformation of a regular test enabled web browser script into a derived URL trace script Original Script AREA H ji HHEH Original Script ResetTimer InitLink http www domain com Plavback URL trace htmi ElapsedTime US 8 392 890 B2 19 Derived Script H H HHHH URL trace script derived from script evs EEE ResetTimer GetURL http www domain com Playback URL trace html GetURL http www domain com Parts newevalid css GetURL http www domain com Images evalid_logo_white_trsp_top_100x52 gif GetURL http www domain com Images evback gif ElapsedTime J Page Analysis and Structure Extraction Detailed DOM scanning yields dynamically created links The key is that eValid does the scan ove
12. element property to have a specified value Playback continues when any element s specified property has the required value This applies to any property of any element anywhere in the DOM Waits for a named element property and value to NOT be found anywhere in the DOM Playback continues the first time that any element has the required property not equal to the required value SyncOnElementProperty wid name Value frame_ path SyncNotOnElementProperty wid name Value frame _ path 2 Suggested Usages Here is a typical instance of use of this command to syn chronize on the value of the DOM object feature in window 0 at DOM index 254 named Processing_State to take on the value DONE SyncOnSelectedObjProperty 0 254 Processing State DONE Pauses playback until ID Processing State DONE SyncOnSelectedObjProperty 0 254 IDvalue Processing State DONE 7 Pauses plavback until ID Processing State DONE and then confirms there is a element named IDname SyncOnSelectedObjProperty 0 254 IDname IDvalue Pro cessing State DONE Pauses plavback until ID Processing State DONE and then also confirms that the propertv named IDname IDvalue SvncOnSelectedObjPropertvNOT 0 254 Processing State DONE Continues playback if ID Processing_State DONE is not true SyncOnSelectedObjPropertyNOT 0 254 IDname Process ing State DONE Continues playback if ID Processing_Stat
13. limits and constraints so that data can be collected on full websites or sub websites according to the wishes and expec tations of the user 4 Cross Page Dependency Lists Page to page dependency capture based on the dynamic links within the current page web page can be performed The page to page dependency tree can be kept internally in a linked list of parent child dependencies Those pages at be low an established root can be considered a subwebsite Acharacteristic of the implementation of this feature is that the interface between the analysis function and the database function is one that can use standard database interface com ponents such that alternative database systems can be used to contain the information that is captured without any loss of information or content Below various embodiments of a test enabled browser are discussed In particular embodiments of the invention can provide support or use one or more of AJAX Synchroniza tion Page Face Motion Playback Page Element Event Stimulation Page Element Validation Page Get Put Opera tion Page Navigation Header Manipulation DOM Based Adaptive Playback Programming Language Interface URL Sequence Capture and or Page Analysis and Structure Extraction A AJAX Synchronization AJAX Asynchronous JavaScript and XML is a technol ogy for rich client browser based applications This approach is sweeping the technical community Based on advanced use of Java
14. named script evs pl or script evs cpp d Each generated file is a fragment of code that can be dropped directly into a PERL wrapper or a CPP wrapper e The test enabled web browser commands converted into PERL or CPP are function calls method calls into the CPP or PERL interface library that responds to them identically as if they commands were run in the test enabled web browser f The wrapper program in CPP or PERL is free standing and contains ALL of the interface logic required to have the test enabled browser behave according to the instruc tions in the sequence of function calls method invoca tions g Ifyou do nothing else to the script at this point but simply run the PERL or CPP program then you will have the identically same effect as running the script in the test enabled web browser h You have the option if you wish to add logic and data structures and whatever other kind of programming detail you want to add in the same programming lan guage 25 40 45 18 I URL Sequence Capture Playback of a script involves download of several parts of a page when the browser navigates to the page This feature extracts the actual URL sequence from data which the test enabled browser already has and presents it as a working eValid script that can be better used in LoadTest runs Acharacteristic of the implementation of this feature is that the test enabled web browser can emulate the seq
15. suitable modifications and equivalents may be resorted to as falling within the scope of the invention What is claimed is 1 A non transitory computer readable medium including at least computer program code for providing a test enabled web browser said computer readable medium comprising US 8 392 890 B2 21 computer program code for providing web browsing capa bilities and computer program code for testing capabilities of a website hosted by a server and accessible to a computer via a network wherein the computer program code for testing capabilities of the website includes at least computer program code configured to receive a synchronization check from a user using the test enabled web browser to insert the synchronization check into a test script for testing at least one webpage of the website the test script being seperate from the at least one webpage being tested the at least one webpage being tested including AJAX pro gramming and to automatically synchronize playback of the test script using at least the synchronization check to maintain the test enabled browser s state with respect to the AJAX programming by means of the synchroni zation check in the test script to a Document Object Model DOM associated with the at least one webpage of the website wherein the synchronization check in the test script and web browsing activities provided by the web browsing capabilities are able to separately access the DOM as
16. 0 Provisional application No 60 980 068 filed on Oct _ org stamp stamp jsp tp amp arnumber 4539539 15 2007 amp isnumber 45395 17 51 Int Cl Continued oe li sua POLO Primarv Examiner James D Rutten GO6F 3 00 2006 01 57 ABSTRACT oe a Cl cae ifi ini eku ADS ats Methods and systems to test of web browser enabled appli 58 ee li feat Ai a Sot ee hhi i cations are disclosed In one embodiment a browser applica bii aa ia tion can allow a user to perform test and analvsis processes on A a candidate web browser enabled application The test 56 References Cited PP U S PATENT DOCUMENTS 5 974 572 A 10 1999 Weinberg et al 6 002 871 A 12 1999 Duggan et al 6 044 398 A 3 2000 Marullo et al 6 138 157 A 10 2000 Welter et al 6 151 599 A 11 2000 Shrader et al enabled browser can use special functions and facilities that are built into the test enabled browser One implementation of the invention pertains to functional testing and another implementation of the invention pertains to pertains to site analysis 25 Claims 5 Drawing Sheets Dynamic CIC 4 CA Java Program Interactive User Destaop Programmatic Iniertace EPI User Browser Desktop interface 306 IE XMUHTML RENDERING ENGINE Valid Control intertace P S r JREJAA kwa ECMA Sept La JIN K BBa is 904 Cache Cookies US 8 392 890 B2 Page 2
17. 49216 Al OTHER PUBLICATIONS 5 2006 Popp etal 1 2007 Devas et al 6 2007 Fukuda et al 10 2007 Miller 7 2008 Selig occ 715 234 9 2009 Ruehle 10 2009 Charka et al Author Unknown Successful Deployment of Ajax and OpenAjax Originally published at www openajax org Archived Feb 26 2008 at lt http web archive org web 2008022602 11 1 1 http www openajax org whitepapers Successful 20Deployment 200f 20 Ajax 20and 200pen Ajax php gt Xiong et al Testing Ajax Applications with Selenium Sep 25 2006 InfoQ accessed Feb 27 2012 at lt www infoq com articles testing ajax selenium gt 8 pages Finlay Web Testing Tools Break Out of Windows GUI SD Times www sdtimes com 3 pages Oct 15 2000 Salzmann Java Product News JavaWorld www javaworld com javaworld jw 10 2000 jw 1020 newsbrief html 4 pages Oct 20 2000 ready Set eValid advertisement Application Development Trends www adtmag com 2 pages Nov 2000 Products new Software Magazine vol 19 Issue 2 p 67 plus front page of magazine and one page advertisement Sep 1999 Software Research Announces CAPBAK Web to Test Reliability of Web Sites Press Release Software Research Inc 4 pages Jul 26 1999 SR Announces New Testing Application Suite for the Web STW Web Press Release Software Research Inc 2 pages Feb 12 1996 Conference Tutorials Expo Sponsors conference information and Website
18. RY OF THE INVENTION The invention generally relates to testing of web browser enabled applications In one embodiment a browser applica 20 25 30 35 40 45 50 55 60 65 2 tion can allow a user to perform test and analysis processes on a candidate web browser enabled application The test enabled browser can use special functions and facilities that are built into the test enabled browser One implementation of the invention pertains to functional testing and another implementation of the invention pertains to pertains to site analysis The invention can be implemented in numerous ways including as a method system device or apparatus includ ing graphical user interface and computer readable medium Several embodiments of the invention are discussed below These embodiments can be used separately or in any combi nation Other aspects and advantages of the invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings which illus trate by way of example the principles of the invention BRIEF DESCRIPTION OF THE DRAWINGS The invention will be readily understood by the following detailed description in conjunction with the accompanying drawings wherein like reference numerals designate like structural elements and in which FIG 1 is a block diagram of a test enabled browser accord ing to one embodiment FIG 2 is a flow diagram of test e
19. Script AJAX represents competition to the less flex ible capabilities available in such products as Adobe FLEX For functional testing the challenge imposed by AJAX is to synchronize playback of test scripts in an environment which is inherently asynchronous Advanced test script playback synchronization virtually a necessity for AJAX implementa tions can be implemented in the subject invention with DOM based methods Locking in this capability adds capa bility to synchronize inherently asynchronous processes to reproduce user input A characteristic of the implementation of this feature is that the test enabled web browser has multi threaded access to the DOM of the current page or has the capability of simulta neous access of the DOM in concert with other browsing activities so that one or more synchronization activities or processes can proceed in parallel with other asynchronous activities that may be operating within the browser 1 Representative Implementation This command can allow for synchronization of playback based on the appearance of a particular value for a specified DOM element on a page The command can also support Adaptive Playback to provide for intelligent behavior even when the page changes slightly The following commands are indicative of the kinds of actions that can be included in the invention but they are not exclusive The examples below are present in the representa tive implementation but similar co
20. U S PATENT DOCUMENTS 6 865 599 B2 3 2005 Zhang 6 918 066 B2 7 2005 Dutta et al 6 954 922 B2 10 2005 Liang vv 717 130 6 993 748 B2 1 2006 Schaefer 7 000 224 B1 2 2006 Osborne II et al 7 013 251 Bl 3 2006 Nace et al 7 043 546 B2 5 2006 Smith et al 7 072 935 B2 7 2006 Kehoe et al 7 231 606 B2 6 2007 Miller 7 299 457 B2 11 2007 Marshall 7 313 595 B2 12 2007 Rust 7 316 003 Bl 1 2008 Dulepet et al 7 337 349 B2 2 2008 Brauneis Jr et al 7 363 616 B2 4 2008 Kalyanaraman 7 461 346 B2 12 2008 Fildebrandt 7 752 326 B2 7 2010 Smit 7 757 175 B2 7 2010 Miller 7 849 162 B2 12 2010 Davis et al 8 032 626 B1 10 2011 Russell et al 8 327 271 B2 12 2012 Miller 2002 0035498 Al 2002 0038388 Al 2002 0138226 Al 3 2002 Kahoe et al 3 2002 Netter 9 2002 Doane 2003 0005044 Al 1 2003 Miller etal oc 709 203 2003 0053420 Al 3 2003 Duckett et al 2004 0010587 A1 1 2004 Altamirano et al 709 224 2004 0039550 A1 2004 0054728 Al 2004 0111488 Al 2004 0261026 Al 2005 0166094 A1 2005 0203902 A1 2005 0246153 Al 2 2004 Myers 3 2004 Rust 6 2004 Allan oee 709 217 12 2004 Corson 7 2005 Blackwell et al 9 2005 Davis et al 11 2005 Genkin et al 2006 0005066 Al 1 2006 Brauneis et al oe 714 4 2006 0031663 Al 2 2006 Peller etal 712 245 2006 0069961 A1 3 2006 Kalyanaraman 714 38 2006 0101404 Al 2007 0006036 A1 2007 0150556 A1 2007 0234217 Al 2008 0184102 Al 2009 0228805 Al 2009 02
21. US008392890B2 az United States Patent 10 Patent No US 8 392 890 B2 Miller 45 Date of Patent Mar 5 2013 54 METHOD AND SYSTEM FOR TESTING 6 157 940 A 12 2000 Marullo et al WEBSITES 6 185 701 Bl 2 2001 Marullo et al 6 286 046 Bl 9 2001 Bryant A i 6 393 479 Bl 5 2002 Gl tal 75 Inventor Edward F Miller San Francisco CA 6418 544 Bl 7 2002 EA US 6 421 070 BI 7 2002 Ramos et al 6 446 120 BI 9 2002 Dantressangle 709 224 73 Assignee Software Research Inc San Francisco 6 522 995 B1 2 2003 Conti et al CA US 6 549 944 Bl 4 2003 Weinberg et al 6 587 969 Bl 7 2003 Weinberg et al Notice Subject to any disclaimer the term of this pe pI coe oe et al patent is extended or adjusted under 35 6 684 204 BL 1 2004 Lal essenzi 707 3 U S C 154 b by 466 days 6 741 967 BL 5 2004 Wu et al 6 754 701 B1 6 2004 Kessner This patent is subject to a terminal dis 6 775 644 B2 8 2004 Myers claimer Continued 21 Appl No 12 247 753 FOREIGN PATENT DOCUMENTS Tad WO 01 10082 2 2001 22 Filed Oct 8 2008 wo WO 01 10082 A2 2 2001 65 Prior Publication Data OTHER PUBLICATIONS US 2009 0100345 Al Apr 16 2009 Marchetto A Tonella P Ricca F State Based Testing of Ajax Web Applications Software Testing Verification and Validation oo 2008 1st International Conference on vol No pp 121 130 Apr Related U S Application Data 9 11 2008 doi 10 1109 ICST 2008 22 URL http ieeexplore ieee 6
22. a Document Object Model DOM associated therewith wherein the at least one synchronization check inserted into the test script is operable to interact with at least one DOM element of the DOM in parallel with access to the DOM by the browser activities and wherein the computer program code for programmatically manipulating the test script comprises computer pro 20 25 30 35 40 45 50 55 60 65 24 gram code for inserting at least one command into the test script the at least one command pertaining to at least a portion of the at least one synchronization check and operates to perform the following acts finding a current index of at least one DOM element based on specified property names and or property values moving the current index up or down on the page by specifying a number of steps up and down on the webpage and submitting a named event to the current index of the at least one DOM element of the webpage and or inserting values of properties of the current index of the at least one DOM element of the webpage 13 A non transitory computer readable medium as recited in claim 12 wherein the one or more acts are programmati cally performed 14 A non transitorv computer readable medium as recited in claim 12 wherein the named event includes a submit event command 15 A non transitorv computer readable medium as recited in claim 12 wherein the named event includes a browser navigation to a l
23. a sequence of function calls or method invocations that are meaningful in the underlying API for the test enabled browser in that language context Accordingly a script that drives the test enabled web browser can equivalently be implemented operationally in a free standing computer program whose execution is identical to the scrip driven behavior and visa versa 2 Advantages Playback of scripts is semi static in that by design the scripting language is simple generic agnostic and is not cluttered with unnecessary programming language details The result is a scripting system that is a good compromise between expressive power and clarity and ease of use However in some cases the availability of the full power of a procedure oriented language offers the website tester a significant example For example using test engine function calls from within a programming language would allow for the use of loops data structures conditional executions extraction of values etc 3 Operating Mode Here is how this process works for C or PERL for illustration purposes a Record and perfect your script evs with the representa tive implementation using the record facility and possi bly augmented with manual edits of the script b When the script is deemed ready invoke the script con version option and select the target language environ ment c Play the script back and observe that the converted script is now stored in new files
24. ability and Web Site Testing sides presented at the Third International Software Quality Week Europe 1999 Brus sels Belgium Nov 1 5 1999 14 pages Website Validation Technology conference slide the 12th Inter national Software Quality Week 1999 San Jose CA May 24 28 1999 E Miller 20 pages SWExplorerAutomation SWEA Webius Webius Internet Explorer Automation http webiussoft com downloaded Nov 20 2011 2 pages Webdriver WebdriverlGoogle Groups http groups google com group webdriver about downloaded Nov 20 2011 2 pages Interface WebDriver WebDriver http selenium googlecode com svn truck docs api java org openqa selenium WebD river html downloaded Nov 20 2011 7 pages Watir com Watir comlWeb Application Testing in Ruby http watir com downloaded Nov 20 2011 7 pages Watir Watir Wikipedia the free encyclopedia http en wikipedia org wiki Watir downloaded Nov 20 2011 3 pages Automated Testing with TestComplete 8 Automated Testing Tools http smartbear com products qa tools automated testing down loaded Nov 20 2011 3 pages TestComplete TestComplete Wikipedia the free encyclopedia http en wikipedia org wiki Testcomplete downloaded Nov 20 2011 4 pages US 8 392 890 B2 Page 3 Keynote Kite Test WebsitelTesting Web Applications Application Performance Testing KITE http kite kevnote com downloade
25. age Navigation Header Manipulation To support a wide range of different browser options one needs to be able to manipulate the headers the pre request and post request information at the HTTP S level This lets the representative implementation imitate other browsers and do other test related manipulations of how the interaction between the test enabled web browser and the server operate A characteristic of the implementation of this feature is that the test enabled web browser is that searches are made for objects of specified properties on the current page the iden tified location can be moved ahead or behind the found object s location and a variety of user input actions can then be applied to accurately and reliably reproduce the effect of human input 1 Operational Introduction In some cases it is necessary to modify the HTTP header information e g for monitoring or for special effects This is done by editing the data required as an extra argument on a GotoLink command Header information is contained in a single string Sets the current value of the header with name to value to the specified string for the current playback up to the next InitLink or GotoLink command after which the values are reset to normal default The values possible in the headers string are those that are used in standard HTTP S protocol passages Whether a spe cific header name is accepted with effect by a specific server can only be determin
26. age include the follow ing For example one or more embodiments can provide Detailed Page Analysis For Properties 1 Client Perspective One aspect of test enabled web browsers is that they can scan over the wire and from the client perspective a significant technical advantage Access to the DOM for ana lytic purposes is assured because the test enabled web browser uses standard browser components among which is an interface to the DOM for each web page that is browsed A characteristic of the implementation of this feature is that the resulting analysis and or spidering of the web page is depen dent on how the page actually exists at the time it is served to the test enabled web browser and does not include or exclude any details or effects that are pertinent to the structure orga nization layout and content of the web page The operation of the search and scan activity creates a database of informa tion about individual pages and their interactions and depen dencies such that the database can be used for later offline analysis 2 Link Extraction The test enabled web browser can see in the pages in complete detail extract anything and use that information in website comparison activities The analysis of properties is assured because of the architecture of the test enabled web browser All of this information is available because the test enabled web browser uses standard browser components among which is an int
27. al test ft _proxy api help ProxyApiReference overview summary html gt gt Oct 9 2009 pp 5 Fruhlinder Joshua Cross Brower Web Application Testing Made Easy Retrieved at lt lt http www ibm com developerworks web li brary wa crossbrowser gt gt Dec 18 2007 pp 11 Check Browser Compatibility Cross Platform Browser Test Retrieved at lt lt http browershots org gt gt Jun 9 2005 p 1 Netrenderer Retrieved at lt lt http ipinfo info netrenderer index php gt gt Oct 12 2007 p 1 Eaton et al Position Paper Improving Browsing Environment Compliance Evaluations for Websites Retrieved at lt lt http conferenze dei polimilt wq04 final paper04 pdf gt gt Oct 9 2009 pp 6 Browser Compatibility Check for Internet Explorer Versions from 5 5 to 8 Retrieved at lt lt http my debugbar com wiki IETester HomePage gt gt Copyright 2001 2009 pp 2 Internet Explorer Developer Toolbar Retrieved at lt lt http en wikipedia org wiki Internet_Explorer_developer_Toolbar gt gt Jun 1 2009 pp 2 Firebug Firefox extension Retrieved at lt lt http enwikipedia org wiki Firebug Firefox extension p7 Jul 18 2009 pp 1 Selenium RC Retrieved at lt lt http seleniumhq org docs 05__se lenium_re html gt gt Oct 13 2009 pp 21 Expression Web SuperPreview Retrieved at lt lt http visitmix com News Expression Web SuperPreview gt
28. capability operates in parallel with and in concert with other activities that may be going on inside the browser based on the use by the test enabled web browser of standard browser components and the standard DOM avail able within such browsers H Programming Language Interface Here is an explanation of how this command works in the practical realization of the invention The automatic conversion of a recorded script into a pro gramming language means that to the user a test enabled browser can record into a full programming language US 8 392 890 B2 17 Acharacteristic of the implementation of this feature is that the resulting program which can be expressed in a variety of programming language e g C or PERL or C or Visual Basic etc has the capability of full programmability thus providing the test script with the power and flexibility avail able from the programming language in which the playback sequence is embedded 1 Representative Implementation Use of the programmatic interface feature will allow a user to convert an actual test enabled browser script into a form that can be incorporated into A PERL execution using a test enabled browser PERL support library A C program execution using a test enabled browser C support library A VB or C H or other language used to interface into the support library Hence the script used within the representative implementa tion is effectively converted into
29. cript 2 Acting to dvnamicallv modifv candidate recording actions based on actual actions taken bv the browser based on its interaction with the web application under test called Adaptive Plavback 302 3 Playback of recorded scripts 303 based on the content of the recorded script 4 Modification of playback based on actual behavior of web application under test as it interacts with the test enabled browser and 5 Sensing and modification of the underlying Document Object Model DOM at 304 for special purposes of the test process as commanded by the user see below In addition to internal page specific capabilities the inven tion also includes 1 An external interface 305 to allow the collection of data about the test 2 A browser desktop interface 306 to permit the browser to communication to other processes in the computer 3 Access 307 to the HTTP S protocol that is used to com municate to from the web application server 4 Local file access 308 to keep records of the entire test activity The internal state 309 of the browser is maintained because the browser uses standard browsing components in the form of DLLs 310 that are available with any browser D Browser DOM Structure The relationship between the browsed page and its internal Document Object Model DOM is critical to understanding how the invention achieves its effects In a web page there is a collection of DOM elements that describe each part of the pag
30. d Nov 20 2011 1 page Selenium IDE Selenium IDE Selenium Documentation http seleniumhq org docs 02__selenium_ide html the watfor com mands in ajax applications downloaded Nov 20 2011 46 pages Selenium Users Selenium Users Google Groups http groups google com group selenium users about downloaded Nov 20 2011 2 pages Selenium Documentation http selentumhw org docs down loaded Nov 20 2011 3 pages Selenium software Selenium software Wikipedia the free encyclopedia http en wikipedia org wiki Selenium software downloaded Nov 20 2011 3 pages Project Home Project Home Watir OpenQA Wiki http wiki openqa org display WTR Project Home downloaded Nov 20 2011 2 pages Printable Watir Tutorial Printable Tutorial Watir OpenQA Wiki http wiki openqa org display WTR Printable Tutorial downloaded Nov 20 2011 49 pages Keynote Kite Learn about Keynote Internet Testing Environ ment http kite keynote com how it works php downloaded Nov 20 2011 3 pages Keynote systems Keynote systems Wikipedia the free encyclo pedia http en wikipedia org wiki Kevnote svstems downloaded Nov 20 2011 4 pages Keynote Systems Introduces AJAX Based Testing Tool for Rich Web 2 0 Sites http in sp con com node 451642 print down loaded Nov 20 2011 2 pages Test Automation for Web Applications Introduction Selenium
31. e some visible to the user and some meaningful only to the browser DOM elements are available in the browser after the web page is rendered Individual element are numbered from the top of the page element zero to the bottom of the page with integers Each DOM element may have a collection of associated attributes sometimes also called properties which are dependent on the content of the page FIG 4 is a section of representative DOM internal content according to one embodiment In FIG 4 item 400 shows an index value of an element reflected here in the representative implementation as the value of the sourcelndex attribute 47 The HTML HyperText Markup Language tag names are identified with their own naturally occurring names For example 401 shows the value of element 47 s attribute tag Name is TD and for in 402 the same element has an attributed named innertext with the value A Google approach to email As shown in the diagram the actual text appearing in the web page rendering is given at 403 as lt B gt A Google approach to email lt B gt The position of this particular element element number 51 in the tree of other elements is shown in the tree structure 405 The embodiment of the invention includes the ability to read scan analyze modify adjust and change the particular values of any attribute of any element in the current DOM This capability is required for such capabilities as
32. e DOM elements DOM element properties or DOM element property values have specified values 6 A non transitory computer readable medium including at least computer program code for providing a test enabled web browser said computer readable medium comprising computer program code for providing web browsing capa bilities and computer program code for testing capabilities of a website hosted by a server and accessible to the computer via a network wherein the computer program code for testing capabilities of the website provides playback of one or more test scripts the one or more test scripts being separate from the website wherein the computer program code for testing capabilities is configured to keep track of named DOM element 5 20 25 30 35 40 45 50 55 60 65 22 property values within a webpage of the website to pro vide support for playback of one or more test scripts that were recorded from and or are played back via the test enabled web browser wherein the use of the named DOM element property val ues provides support for synchronizing playback of the one or more test scripts and allows the computer pro gram code for testing capabilities of the website of the test enabled web browser to compensate for at least a portion of the webpage being dynamically generated by AJAX programming and wherein at least one command is provided in the one or more test scripts and the at least one c
33. e DONE is not true AND that element does NOT have a property named IDname SyncOnSelectedObjPropertyNOT 0 254 IDname IDvalue Processing State DONE Continues playback if ID Processing_State DONE is not true AND that element does NOT have a property named IDname IDvalue but any other value causes the play back to pause 20 25 30 35 40 45 50 55 65 8 SyncOnElementProperty 0 Processing State DONE Waits until SOME element anywhere in the DOM has a property name Processing_State with value DONE SyncNotOnElementProperty 0 Processing State DONE Waits until NO element anywhere in the DOM has a propertv name Processing State with value DONE 3 Intended Application The main intended purpose of this command is to provide auxiliary playback synchronization for pages that do not completely adhere to standard synchronization methods that are provided by a test enabled browser Among many types of implementation AJAX built pages tend to have this charac teristic To apply the command successfully you may need to study the internal structure of the page that you are trying to syn chronize on find the ID of the element whose value you are searching to match and then adjust the test enabled browser s behavior using the SyncOnDOM command to wait for that element to take on the required value 4 Escapement Mode Synchronization Method In practice it probably may be required to operate a chain of
34. ed analysis and testing of web sites The test enabled browser 100 operates on a computing device not shown The test enabled browser 100 makes use of Internet Explorer IE base library 102 In this regard the test enabled browser 100 in effect emulates a browser but further provides the capability to perform the automated analysis and testing of websites The test enabled browser 100 receives triggers 104 from an operating system These triggers or event triggers are for example a mouse click a mouse drag a return text entry etc Based on these triggers 104 the test enabled browser 100 operates to perform the automated analysis and testing of websites In doing so the test enabled browser 100 can produce a log file 106 or can interact with a database of information 108 B Browser Signaling FIG 2 is a flow diagram of test enabled browser processing 200 according to one embodiment The test enabled brows ing processing 200 is for example suitable for performance by the test enabled browser 100 illustrated in FIG 1 A test enabled browser processing 200 initially begins witha decision 202 that determines whether a trigger has been received When the decision 202 determines that a trigger for the test enabled browser has not yet been received then the test enabled browser processing 200 awaits such a trigger Once the decision 202 determines that a trigger has been received for the test enabled browser test based processing is
35. ed by experimentation GotoLink Command Description With Header String Processing COMMAND SYNTAX EXPLANATION GotoLink wid URL frame_ path header_string GotoLinkSubmit wid URL frame__path header_string Goes to the specified URL with he browser waits for the page o come up if it can within the required minimum time and gives control back to the user If he WebSite has frames active hen the recording includes the frame__path of the frame on playback this is the frame to which the browser is pointed with the URL This action is the same as typing in a URL and pressing RETURN 25 30 45 65 16 continued GotoLink Command Description With Header String Processing COMMAND SYNTAX EXPLANATION The header_ string if used must separate multiple HTTP header strings with newline characters e g User id identifier n User Password something 2 Suggested Usages Here is a typical instance of use of this command to apply modified headers GotoLink 0 www cnn com USER name in PASS WORD pass n SessionID 654321 3 Modifying the User Agent String One example of the use of this feature is to set the User Agent name to spoof the current test enabled web browser to appear to be a different kind or type of browser and thus to force the server to deliver pages as if eValid were that type of browser Note There is also an available SetUserA ge
36. ent Click command this command issues a click at the current sourceIndex as set by a preceding IndexSet IndexMove or IndexFindElement comman Similar to SubmitClick command with same parameters and meaning Clicks the button pointed to by the Sourcelndex US 8 392 890 B2 11 continued DOM Element Manipulation Motion Commands This is the Index version of the InputValue command Behavior is similar to the InputValue command with same parameters and meanings Validates that on the current sourcelndex the property named akes on the specified value If the validation fails then an ERROR is logged in the EventLog On the current sourcelndex in the page saves the the named property named to the specified filename If the property does not exist no action is taken IndexMouseOver wid x y At the current sourcelndex frame_ path NAV executes a left button MouseOver command The x y values specified are offsets within the object supplied by the DOM IndexMouseDown wid x y At the current sourcelndex frame_ path NAV executes a left button MouseDown command The optional x y values specified are offsets within the object that are supplied by the DOM At the current sourceIndex executes a left button MouseUp command The optional x y values specified are offsets within the object that are supplied by the DOM At the current sourceIndex executes a left button MouseOut command The
37. ent Value Extraction Insertion Commands Working Assumptions About These Commands There is only one elementValue known to eValid at any time The elementValue is always a string The initial value of the elementValue is always set to empty The value of the elementValue persists between pages as long as the current playback is running Commands that use this internally stored elementValue value always refer to the current page eValid does not modify the elementValue except by action of the commands below US 8 392 890 B2 15 continued DOM Element Value Extraction Insertion Commands COMMAND SYNTAX EXPLANATION ValueSet value Sets the elementValue to the specified value ValueGetElement wid Gets the value of the named element at sourcelndex and saves it in elementValue If the object found at sourceIndex does not have the given name or if name is correct and the value the name currently has is incorrect or if name is not found an ERROR results Inserts the current elementValue into the specific attribute of the described DOM object in the indicated frame as specified by the frame path Saves the element Value into the specified filename If APPEND is present the value is placed at the end of the named file in he indicated frame as specified by the rame_ path into the current elementValue name frame__path ValuePutElement wid name frame_ path ValueSave filename APPEND F P
38. erface to the DOM for each page that is browsed A characteristic of the implementation of this fea ture is that that the information that is collected and stored in a database is available using standard browsing components and standard DOM models such as are typically employed in available general purpose web browsers of several kinds and types 3 DOM Spidering More selective inclusion and exclusion of links in the work to be done list tree This is key to a successful and useful scan being able to decide based on page properties mainly the URL but also on other internal criteria whether to add it to the work list If you did not do this you would have to scan everything you find and you may not want that User control is important The criteria for inclusion and exclusion are inclusive of any property of the page its component elements its DOM properties and its links to other pages All of this information is available because in one embodiment the test enabled web browser uses standard browser compo nents among which is an interface to the DOM for each page that is browsed A characteristic of the implementation of this is that the origin of the search process described above can be 20 25 30 35 40 45 50 55 60 65 6 determined by the user so that the search can be made of one or more websites or sub websites as specified by a starting or root URL and as constrained according to the claimed
39. in of the search process described above can be deter mined by the user so that the search can be made of one or more websites or sub websites as specified by a starting or root URL and as constrained according to the claimed limits and constraints so that data can be collected on full websites or sub websites according to the wishes and expec tations of the user Within the context of the search the following criteria can be applied to include or exclude individual pages based on the following criteria a The specific character strings used in the URL which can be specified as case sensitive or not b Whether or not the page shares the domain with the specified root domain c Whether the domain name is found on a list of permitted domains d An analysis of scripts within the current page e Analysis of objects within the current page f The protocols HTTP S and non HTTP S used to retrieve the page g The type of page extension used h The content of query strings that may be associated with the URL 20 25 30 35 40 45 50 55 60 65 20 i The accumulated depth of dependence chains in the scan j The total time consumed in the scan k The total number of pages examined 1 The total number of page to page dependency links accumulated in the scan m The total volume of data downloaded in the scan n Whether the page was previously visited in the scan o The response to a
40. ink specified at the current index of the DOM element of the page 16 A non transitorv computer readable medium as recited in claim 11 wherein the at least one synchronization check is directed by the user input received from a user 17 A non transitorv computer readable medium as recited in claim 11 wherein the test is a playback test 18 A non transitory computer readable medium as recited in claim 11 wherein the one or more selections with respect to the graphical user interface select one or more commands that cause the test script to be modified to include the at least one synchronization check 19 A non transitory computer readable medium as recited in claim 18 wherein prior to the selections with respect to the graphical user interface a selection of an element of the webpage being tested has been received and wherein the at least one synchronization check is with respect to at least the element 20 A non transitory computer readable medium as recited in claim 11 wherein the non transitory computer readable medium comprises computer program code for receiving or recording the test script for testing the at least one webpage of the website 21 A non transitory computer readable medium as recited inclaim 11 wherein the computer program code for perform ing the manipulated test script performs the test script on the at least one webpage of the website including performing the at least one synchronization check 22 A n
41. lement Manipulation Motion Commands Working Assumptions About These Commands There is only one sourceIndex known to eValid at any time The sourcelndex is always an integer The initial value of the sourcelndex is always set to zero The value of the sourcelndex persists between pages Commands that use this internally stored sourceIndex value always refer to the current page eValid does not modify the sourceIndex except by action of the commands below Because motion on the page is from the perspective of the view a search DOWN toward the bottom of the page means increasing index numbers whereas a search UP toward the top of the page means decreasing index numbers 5 20 25 30 35 40 45 50 55 60 65 10 continued DOM Element Manipulation Motion Commands COMMAND SYNTAX IndexFindElement wid UP DOWN property__name property__value frame_ path IndexFindElementEx wid UP DOWN string string frame_path IndexSet idx IndexMove number IndexFollowLink wid frame__path IndexElementClick wid frame_ path NAV IndexSubmitClick wid frame__path EXPLANATION Starting from the current sourcelndex this command moves up or down in the DOM element index number sequence until eValid reaches the next element with a property of the specified propertv name or until it reaches the next element with a property of the s
42. lue frame__path Details of the available names 2 ValidateSelectedObjProperty wid are usually found using the idx id__value name value eValid PageMap facility frame__path If the object found at idx does 3 ValidateSelectedObjProperty wid not have the given name or if idx id_name id__value name name is correct and the value value frame__path the name currently has is incorrect or if name is not found an ERROR results If the object with ID equal to id value exists and the name has the specified value or if name is correct and the value the name currently has is incorrect or if name is not found an ERROR results If the object with object id_name equal to id_value exists and the name has the specified value or if name is correct and the value the name currently has is incorrect or if name is not found an ERROR results E Page Get Put Operations The user may wish to read and or set the values selected by the searches given above This is done with special Get Put commands illustrated in a typical syntax below 1 Representative Implementation Here are typical commands that implement the functional described above expressed in the standard command format The command syntax below illustrates how this is accom plished in the representative implementation but alternative implementations will vary in regard to syntax and semantics but accomplish the same effect DOM Elem
43. lysis function and the database function is one that uses standard database interface compo nents such that alternative database systems can be used to contain the information that is captured without any loss of information or content The various aspects features embodiments or implemen tations of the invention described above can be used alone or in various combinations The invention can be implemented by software hardware ora combination of hardware and software The invention can also be embodied as computer readable code on a computer readable medium The computer readable medium is any data storage device that can store data which can thereafter be read by a computer system Examples of the computer readable medium generally include read only memory and random access memory More specific examples of computer read able medium include Flash memory EEPROM memory memory card CD ROM DVD hard drive magnetic tape and optical data storage device The computer readable medium can also be distributed over network coupled com puter systems so that the computer readable code is stored and executed in a distributed fashion The many features and advantages of the present invention are apparent from the written description Further since numerous modifications and changes will readily occur to those skilled in the art the invention should not be limited to the exact construction and operation as illustrated and described Hence all
44. mation from an internet browser client program that typically runs on a computing device suchas a personal computer PC A common browser is the Internet Explorer IE browser that runs on Microsoft Windows How ever the invention can also equally apply to non IE browsers Testing and analysis of Web Applications and WebSites is needed for various reasons 1 To confirm content and proper operation and proper content functional testing and validation 2 To determine delivered performance of a web applica tion server timing and tuning 3 To analyze capacity of the WebSite server by imposing realistic loads server loading 4 To identify properties and characteristics of collections of pages site analysis There are several alternative methods that can be used to obtain information about how a WebSite behaves These alternative methods are as follows 1 Intercept of the Win dows event loop which means that the program has to process every keyboard activity and or mouse activity at the primitive level of where it interacts with the operating system OS 2 Intercept the HTTP protocol sequence by building a wrapper or a proxy around a browser instances thereby extracting the sequence of interactions between the browser and the Web Site server 3 Capture information within the browser by building a free standing browser with test capabilities Thus there is a need for improved approaches to testing websites SUMMA
45. mmands or variants of them would be present in other implementations The sense and behavior of the commands is independent of the imple mentation US 8 392 890 B2 COMMAND SYNTAX EXPLANATION SyncOnSelectedObjProperty wid idx DOM name DOM value frame path SyncOnSelectedObjProperty wid idx id__value DOM name DOM value frame_ path Synchronizes playback based on specified DOM name and value combination Synchronizes playback based on specified DOM name and value on an element with specified ID tag in the specified element Synchronizes playback based on specified DOM name and value on an element with specified ID tag and value in the specified element Synchronizes when a specified DOM name and value are NOT present in the specified element Synchronizes when a specified DOM name and value are NOT present in the specified element which must have the specified ID SyncOnSelectedObjProperty wid idx id_name id_ value DOM name DOM value frame_ path SyncNotOnSelectedObjProperty wid idx DOM name DOM value frame path SvneNotOnSelectedObjPropertv wid idx id value DOM name DOM value frame__path ag name SyncNotOnSelectedObjProperty wid Synchronizes when a specified idx id name id_ value DOM name and value are NOT DOM name DOM value frame__path present in the specified element which must have the specified ID tag name and value Waits for a named
46. nabled browser processing according to one embodiment FIG 3 is a block diagram of browser interfaces according to one embodiment FIG 4 is a section of representative DOM internal content according to one embodiment FIG 5 is a block diagram of a website test system accord ing to one embodiment DETAILED DESCRIPTION OF THE INVENTION The invention generally relates to testing of web browser enabled applications In one embodiment a browser applica tion can allow a user to perform test and analysis processes on a candidate web browser enabled application The test enabled browser can use special functions and facilities that are built into the test enabled browser One implementation of the invention pertains to functional testing and another implementation of the invention pertains to pertains to site analysis A test enabled web browser can provide many advantages in terms of control of the test process ability to measure at a fine level of detail to manipulate and validate the contents of WebSite pages as they are rendered and or to extract linking and other information from WebSite pages in their fully ren dered form A system method or apparatus including graphical user interface and computer readable medium is disclosed for testing and analyzing WebSites via a test enabled web browser In one embodiment a user can control the test enabled web browser via a set of pull down menus thereby choosing between alternative te
47. nt edit able command that has some of the same effects The table below specifies some command values for this Os Browser Typical User Agent String Definition Windows IE 5 0 Mozilla 4 0 compatible MSIE 5 0 98 Windows 98 I Windows IE 5 5 Mozilla 4 0 compatible MSIE 5 5 98 Windows 98 I Windows Netscape Mozilla 4 5 en C CCK MCD 98 4 5 CADGraphicArts Win98 I Windows AOL 6 0 Mozilla 4 0 compatible MSIE 5 01 98 MSN 2 5 Windows 98 Windows Netscape Mozilla 5 0 Windows U Win98 en US 98 6 0 m18 Gecko 20001108 Netscape6 6 0 Windows IE 5 0 Mozilla 4 0 compatible MSIE 5 0 NT Windows NT Windows TE 5 5 Mozilla 4 0 compatible MSIE 5 5 NT Windows NT Solaris TE 5 0 Mozilla 4 0 compatible MSIE 5 0 2 5 1 SunOS 5 5 1 sun4m X11 Solaris IE 5 0 Mozilla 4 0 compatible MSIE 5 0 2 6 SunOS 5 6 sun4u X11 G DOM Based Adaptive Playback The adaptive playback feature keeps tests from failing due to inconsequential changes in the underlying web page With out adaptive playback tests can be too brittle to be practical emulations of human input which easily adapts to slightly changed page conditions Previously adaptive playback commands did not take as strong advantage as possible through use of the unique DOM property called ID which is increasingly used in modern web page development the ID property of each page element is given a permanent name automatically This enhanced
48. ommand operates when performed to find a current index of at least one DOM element of the webpage based ona specified prop erty name and or property value and i submit a named event to the at least one DOM element of the webpage having the current index or ii insert or verify a value in the at least one DOM element of the webpage having the current index 7 A non transitorv computer readable storage device stor ing components that when executed on a computing device provide an application program for testing a website hosted by a remote server the website having at least one webpage and the webpage of the website being presented by browsing via the computing device said computer readable storage device comprising a script component executed by the computing device to record at least one test script that reproduces and times user actions and responses a script playback component executed by the computing device to playback the at least one test script a page evaluation component executed by the computing device to read and analyze the contents of webpage components including DOM elements and other objects and a synchronization component operating in parallel with browsing the webpage via the the computing device to automatically synchronize playback of the at least one test script by said script playback component to maintain browser state while testing the webpage including AJAX programming through use of one or m
49. on transitory computer readable medium as recited in claim 11 wherein the synchronization check is performed repeatedly until the at least one synchronization check is satisfied 23 A non transitory computer readable medium as recited in claim 11 wherein the at least one synchronization check determines whether a DOM property of the at least one DOM element has a particular value 24 A non transitory computer readable medium as recited in claim 23 wherein the performing of the manipulated test script of the test script awaits the DOM property having have the particular value 25 A non transitorv computer readable medium as recited in claim 11 wherein the at least one synchronization check determines whether a DOM property of the at least one DOM element exists
50. ons of the actions to take Actions are described in name value pairs of which there can be any number as indicated by the notation in the command definition Here are the specifics a Event Name The event_name which can be taken from the following list specifies the kind of event that is to be fired onabort onblur onchange onclick ondblclick onerror onfocus onkeydown onkeypress onkeyup onload onmousedown onmousemove onmouseout onmou seover onmouseup onresend onresize onselect onsubmit onunload Note that there could be other events that could be used here depending on how the page is constructed The above list is only a suggestion and may not be complete b Action Description The action s to be taken are specified in terms of a pair of parameters property_name property_value These values may only occur in pairs and can be only taken from the following combinations and options The val ues given below are the exact ones to use all values shown are case sensitive All other combinations and options including empty strings are ignored without issuance of Warnings or Errors during playback 1 altKev sets the state of the ALT key true ALT key is not pressed false ALT key is pressed 2 button sets the mouse button pressed by the user Pos sible values are O No button is pressed 1 Left button is pressed 2 Right button is pressed 3 Left and right buttons are both pre
51. ore user provided checks of the current Document Object Model DOM contents provided in the at least one test script such that the playback of the at least one test script is able to be synchronized even though the webpage includes the AJAX programming wherein the one or more user provided checks provided in the at least one test script include at least one command and the at least one command operates when executed to find a current index of at least one DOM element of the webpage based on a specified property name and or property value and i submit a named event to the at least one DOM element of the webpage having the cur rent index or ii insert or verify a value in the at least one DOM element of the webpage having the current index 8 A computer readable storage device as recited in claim 7 wherein said script playback is configured to adapt playback of the at least one test script to account for nearly correct matches between recorded facts and actual page properties 9 A non transitory computer readable storage device as recited in claim 7 wherein said test enabled web browser comprises a graphical user interface to provide user access to at least said browsing components and said script component 10 A computer readable storage device as recited in claim 7 wherein synchronization processing by said synchroniza US 8 392 890 B2 23 tion component is performed in a separate thread from other threads processing of
52. pecified property__name which has the specified property__value or until eValid reaches the end or beginning of the page The index movement is either UP decreasing index numbers initial index is positive or zero of DOWN increasing index numbers When a match if found this command leaves the sourcelndex set to the index of the matching HTML element if found If no match is found the sourcelndex will remain the same Starting from the current sourcelndex this command moves up or down in the DOM element index number sequence searching for a Regular Expression match Moves the internally remembered current index to idx idx 0 for the first element of the page idx if you know the specific index you want An illegal value is corrected to 0 and a message is issued to the Event Log Moves forward positive number or backward negative number the specified number of source index positions possibly resulting in arriving at the top or bottom of page but NOT wrapping around If an IndexMove command attempts to reach beyond the end of the page or above the beginning of the page the current index will be set to 0 and a Warning will be issued to the Event Log Similar to the FollowLink script command the IndexElementClick employs the sourceIndex command issues a click at the current sourceIndex as set by a preceding IndexSet IndexMove or IndexFindElement comman Similar to the Elem
53. perates when executed to find a current index of at least one DOM element of a webpage of the website based on a specified property name and or property value and i submit a named event to the at least one DOM element of the webpage having the cur rent index or ii insert or verify a value in the at least one DOM element of the webpage having the current index 12 A non transitorv computer readable medium including at least computer program code stored therein and operable by a computer program code stored therein and operable by a computer to test one or more webpages of a website the computer readable medium comprising computer program code for accessing at least one webpage of the one or more webpages of the website so as to provide browser activities computer program code for programmatically manipulat ing a test script in accordance with user input the test script being separate from the one or more webpages of the website and computer program code for performing the manipulated test script to perform a test on the at least one webpage of the website to be tested wherein the computer program code for programmatically manipulating the test script facilitates insertion of at least one synchronization check into the test script so that the at least one synchronization check can enable the manipulated test script to synchronize with the at least one webpage including AJAX programming wherein the at least one webpage has
54. quences that move around within the current page and perform certain actions based on what is found there These commands give the tester the ability to create test scripts that navigate within the current page possibly in a series of separate steps to page objects and elements by their visible or DOM name or even by DOM property name and value without reference to specific DOM indexes Because no specific DOM index needs to be identified these tests will be insensitive to inconsequential page changes 2 Background Information about Web Pages The context for these commands is based on the organiza tion of the web page in terms ofits DOM Every web page has a DOM that is organized as a collection of elements each of US 8 392 890 B2 9 which has a set of named properties Individual properties associated with an element on the page may take on a specific value Many page elements have a variety of pre defined proper ties which are there and have meaning due to certain stan dards but some pages have custom properties that can take on values as well Each DOM element has by default a property named sourceIndex note that property names are case sensitive whose values uniquely number the elements 0 1 2 in order in the DOM tree and in rough order of layout of the page on the screen The assumption here is that the searching being done is based on the delivered pages having this variable structure
55. r the wire and from the client perspective a significant technical advantage Access to the DOM for analytic purposes is assured because the test enabled web browser uses standard browser components among which is an interface to the DOM for each page that is browsed Acharacteristic of the implementation of this feature is that the resulting spidering of the web page is dependent on how the page actually exists at the time it is served to the test enabled web browser and does not include or exclude any details or effects that are pertinent to the structure organiza tion layout and content of said web page 1 Dynamic Creation of Internal Work List More selective inclusion and exclusion of links in the work to be done list tree This is important to a successful and useful scan being able to decide based on page proper ties mainly the URL but also on other internal criteria whether to add it to the work list If you do not do this you would have to scan everything you find and you may not want that User control is important The criteria for inclusion and exclusion are inclusive of any property of the page its component elements it s DOM prop erties and its links to other pages All of this information is available because the test enabled web browser uses standard browser components among which is an interface to the DOM for each page that is browsed A characteristic of the implementation of this is that the orig
56. said test enabled web browser 11 A non transitory computer readable medium including at least computer program code stored therein and operable by a computer to test one or more webpages of a website the computer readable medium comprising computer program code for accessing at least one webpage of the one or more webpages of the website so as to provide browser activities computer program code for programmatically manipulat ing a test script in accordance with user input the test script being separate from the one or more webpages of the website and computer program code for performing the manipulated test script to perform a test on the at least one webpage of the website to be tested wherein the computer program code for programmatically manipulating the test script facilitates insertion of at least one synchronization check into the test script so that the at least one synchronization check can enable the manipulated test script to synchronize with the at least one webpage including AJAX programming wherein the at least one webpage has a Document Object Model DOM associated therewith wherein the at least one synchronization check inserted into the test script is operable to interact with at least one DOM element of the DOM in parallel with access to the DOM by the browser activities and wherein the at least one synchronization check is inserted into the test script as at least one command and the at least one command o
57. so ciated with the at least one webpage of the website and wherein the synchronization check is inserted into the test script as at least one command and the at least one command operates when executed to find a current index of at least one DOM element of the at least one webpage based on a specified property name and or property value and i submit a named event to the at least one DOM element of the at least one webpage having the current index or ii insert or verify a value in the at least one DOM element of the at least one webpage having the current index 2 A non transitorv computer readable medium as recited in claim 1 wherein the test script playback is synchronized using the at least one command that determines whether a DOM element exists in the at least one webpage of the web site 3 A non transitory computer readable medium as recited in claim 1 wherein the test script playback is synchronized using at the at least one command that determines whether a DOM element has a particular defined property 4 A non transitory computer readable medium as recited in claim 1 wherein the test script playback is synchronized using the at least one command that determines whether a DOM element has a property with a particular value 5 A non transitory computer readable medium as recited in claim 1 wherein the test script playback is synchronized using one or more commands operating based on whether a combination of one or mor
58. ssed 4 Middle button is pressed 5 Left and middle buttons both are pressed 6 Right and middle buttons are both pressed 7 All three buttons are pressed 3 clientX clientY sets the x coordinate or y coordinate of the mouse pointer s position relative to the client area event_name proper US 8 392 890 B2 13 of the window excluding window decorations and cross bars The value is a long integer expressed in pixels 4 ctrlkey sets state of the CTRL key Possible values are true CTRL key is not pressed false CTRL key is pressed 5 ctrl Left sets state of the left CTRL key Possible values are true Left CTRL key is not pressed false Left CTRL key is pressed 6 offsetX off setx sets the x coordinate or y coordinate of the mouse pointer s position relative to the object firing the event The value is a long integer expressed in pixels 7 propertyName sets the name of the property that changes on the objects 8 qualifier sets the name of the data member provided by a data source object 9 reason sets the result of the data transfer for a data source object Possible values 0 Data transmitted successfully 1 Data transfer aborted 2 Data transferred in error 10 repeat sets whether the onkeydown event is being repeated Possible values are true event fires two or more times false event fires once 11 screenX screenY sets the x coordinate or y coordi na
59. sting and analysis functional capabilities In one embodiment the invention is thus a test enabled web browser that has all of the functionality of the parallel IE technology and which has all required test func tionality built in and easily accessible by a WebSite analyst In the WebSite analysis process the test enabled web browser can act as a constrained search engine which exam ines pages in the candidate Website according to a set of inclusionary and exclusionary rules During the automated browsing each browsed pages is analyzed for a range of US 8 392 890 B2 3 quality attributes such as performance content structure and organization Results of these analyses can be made available in a variety of ways for use by analysts The general result of systematic use of the invention on WebSites can yield improved content quality demonstrated WebSite server behavior from an end user perspective and better serviceability for e business enterprises According to one embodiment the techniques disclosed herein can use techniques described in detail in U S Pat No 7 231 606 entitled Method and System for Testing Web sites which is hereby incorporated herein by reference Ter minology concepts organization and technical aspects of that Patent are used herein A Browser Operation FIG 1 is a block diagram of a test enabled browser 100 according to one embodiment The test enabled browser 100 is designed to provide automat
60. te of the mouse pointer s position relative to the user s screen The value is a long integer expressed in pixels 12 shiftkey sets the state of the SHIFT key Possible values are true SHIFT key is not pressed false SHIFT key is pressed 13 srcUrn sets the Uniform Resource Name URN of the behavior that fired the event Possible values are NULL default only cannot be changed 14 This property is set to NULL unless both of the follow ing conditions are true A behavior currently is attached to the element on which the event is fired The behavior defined in the preceding bullet has speci fied a URN identifier and fired the event 15 x y sets the x coordinate or y coordinate in pixels of the mouse pointer s position relative to a relatively positioned parent element The value is a long integer 16 cancelBubble set whether the current event should bubble up the hierarchy of event handlers Possible val ues are false Bubbling is enabled The next event handler in the hierarchy will receive the event true Bubbling is disabled The next event handler in the hierarchy will not receive the event 17 keyCode sets the Unicode key code associated with the key that caused the event The property value param eter is a number It is 0 if no key caused the event 18 return Value sets the return value from the event valid property values true and false D Page Element Valida
61. test play back synchronization on DOM values on validation of par ticular attributes of page elements and or on user prompted modification of DOM elements for specific purposes These are typical uses of the ability within the invention to read analyze and modify the DOM but no limit to the use of this capability is implied E Structure of Representative Implementation FIG 5 is a block diagram of a website test system accord ing to one embodiment One or more embodiments of the invention appear in a test enabled browser product whose US 8 392 890 B2 5 structure and organization are shown in FIG 5 This diagram identifies the relationships between the externally viewed product features 1 Recorded scripts 500 are created by and read and executed played back but the test enabled browser 501 which can be edited 502 and converted into load test logs 503 2 Playback operation involves the creation of various event logs 504 and their subsets such as the Perfor mance Log 505 the Message Log 506 and the Timing log 507 3 When multiple copies 508 of the test enabled browser are running then a special 509 LoadTest log is used to cap ture details of individual playbacks 4 Scans of websites using the spider search function create reports 510 the relate to whole site analysis F Internal Embodiments Based on DOM Operations Additional applications of the invention s ability to ana lyze the DOM structure of a browser p
62. tion Once pages are downloaded the need for regression testing requires the ability to confirm that particular values are present as required Such validations steps are also called checkpoints or matchpoints Prior art has provided for the ability to confirm text entries on a page as rendered but in many practical cases the need for validation extends into the content of the page itself The present invention extends the notion of validation to include any kind of Document Object Model DOM property or attribute taking on any pre speci 20 25 30 35 40 45 50 55 60 65 14 fied value When the required value is found the correspond ing test playback PASSes when a required value is not found the corresponding test playback FAILs 1 Representative Implementation As the command syntax shows below in the representative implementation the user can specify the object to be validated in several different ways with more or less detail Three typical formats for this command are shown but other varia tions are possible within the concept identified by this action DOM Element Value Extraction Insertion Commands COMMAND SYNTAX EXPLANATION ValidateS electedObj Property wid idx Validates the specific content of f id name l id__value name value the described DOM object in frame__path the indicated frame as 1 ValidateSelectedObjProperty wid specified by the frame_ path idx name va
63. ty Week Europe 1999 Les sons Learned Seminar Conference outline Brussels Belgium Nov 1 5 1999 The Thirteenth International Software amp Internet Quality Week Reg istration Materials for Seminar Conference San Francisco CA May 30 Jun 2 2000 Testing Techniques Newsletter TTN On line edition Jul 1999 pp 1 18 Edward Miller WebSite Testing White paper 2000 printed on Oct 31 2000 Edward Miller WebSite Testing White paper presented at the Third International Software Quality Week Europe 1999 Brussels Belgium Nov 1 5 1999 Software Tech News WebSite Testing Software Testing vol 3 No 2 printed from http dacs dtic mil awareness newsletters stn3 2 toc html on Oct 31 2000 eValid Subscription Test TeleServices Custom Website Testing and Validation Web Site Quality Consulting presented at the Third International Software Quality Week Europe 1999 Brussels Bel gium Nov 1 5 1999 eValid E Commerce Reliability and Web Site Testing with attached video graphics presented at the Third International Soft ware Quality Week Europe 1999 Brussels Belgium Nov 1 5 1999 First Browser Based Web Testing Tool Provides Accuracy Break through Press Release eValid Inc Sep 6 2000 Product Release Notes CAPBAK Web IE Ver 1 5 Nov 24 1999 Product Release Notes CAPBAK Web IE for Windows NT and Windows 2000 Mar 21 2000 E Commerce Reli
64. uence of URL downloads without needing to completely browse and render each page a characteristic that has primary application in creation of equivalent protocol loading ona server as if the test enabled browser were running independently 1 Representative Implementation Behavior The basic idea of this feature is to create at script playback time a complete derived URL trace in a format ready to be submitted to an associated utility program that retrieves specified URLs using the HTTP S protocol The derived trace shows all of the URLs from that actual playback but does not represent coherent state preserving activity 2 Overview of Operation When used in the associated URL retrieval utility the derived URL trace file will visit all of the URLs that an actual playback will visit but without any browsing of pages i e no rendering creation of DOM etc Such a URL trace play back will therefore replicate the full sequence of URLs that are downloaded in browser playback including intra com mand wait times but with reduced fidelity The derived URL trace script can be expected to play back at a faster speed than the full normal mode playback because the test enabled browser is doing significantly less work 3 Operational Procedure The procedure to use this feature in the representative implementation is as follows 1 Select the script that you want to process e g script evs 2 Turn on the Detailed Timings option
65. user supplied program that analyzes the entire content of the page as supplied to it by the invention in the same pure HTML form it was used for internal automated analysis 2 Detailed Page Analysis for Properties Detailed analysis of DOM properties immediately follows from 1 above The idea is the text enabled browser can see in the pages in complete detail extract anything and use that in website comparison activities The analysis of properties is assured because of the archi tecture of the test enabled web browser All of this informa tion is available because the test enabled web browser uses standard browser components among which is an interface to the DOM for each page that is browsed Acharacteristic of the implementation of this feature is that that the information that is collected and stored in a database is available using standard browsing components and stan dard DOM models such as are typically employed in avail able general purpose web browsers of several kinds and types 3 Dependency Lists Generated Internally Page to page dependency capture based on the dynamic links within the current page follows from 1 above The page to page dependency tree can be kept internally in a linked list of parent child dependencies The his claim also incorporates the notion of a subwebsite being those pages at below an established root A characteristic of the implementation of this feature is that the interface between the ana
Download Pdf Manuals
Related Search
Related Contents
Guia del Usuario Operación Windows XP TL Audio User Manual 8:2/F VALVE MIXER The synonym for picture performance and flexibility Conair NE4 User's Manual カタログPDFダウンロード CEE R66 06 oRiEntado haCia atRás Manual dEl usuaRio 取扱説明書 - 三菱電機 Melissa 635-089 User's Manual CMS01 - Toshiba Copyright © All rights reserved.
Failed to retrieve file