WO2015062003A1 - User interface tester - Google Patents
User interface tester Download PDFInfo
- Publication number
- WO2015062003A1 WO2015062003A1 PCT/CN2013/086274 CN2013086274W WO2015062003A1 WO 2015062003 A1 WO2015062003 A1 WO 2015062003A1 CN 2013086274 W CN2013086274 W CN 2013086274W WO 2015062003 A1 WO2015062003 A1 WO 2015062003A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- user interface
- browser
- operating
- configuration information
- captured
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Definitions
- Figures 1 and 2 show block diagrams for a system for testing a user interface of a web-based application in accordance with principles disclosed herein;
- Figure 3 shows a block diagram for an implementation of a system for testing a user interface of a web-based application in accordance with principles disclosed herein;
- Figure 4 shows a block diagram of a computer-readable medium encoded with instructions for testing a user interface of a web-based application in accordance with principles disclosed herein;
- Figure 5 shows a flow diagram for a method for testing a user interface of a web-based application in accordance with principles disclosed herein.
- the test system and method disclosed herein provide automated testing of user interfaces of web-based applications across the various web-browsers, and versions thereof, with which the user interface operates.
- the test system disclosed herein monitors and captures user interface configuration and transactions between the user interface and a web server while the user interface is operating with a reference web browser.
- the system generates test code from the captured information, and executes the test code to exercise and validate operation of the user interface with a different web browser. Testing of functionality provided by processor execution of software instructions as described herein may be referred to as "unit testing.”
- FIGS 1 and 2 show block diagrams for a tester 100 for testing a user interface of a web-based application in accordance with principles disclosed.
- the user interface tester 100 includes a recorder 102, a code generator 104, and a test engine 106.
- the recorder 102 monitors the user interface 208 and web server 210 while the user interface 208 is executing in a web browser 206.
- the recorder 102 intercepts, captures, and records requests issued by the user interface 208 for service by the web server 210 and responses to the requests issued by the web server 210.
- the user interface may issue AJAX (Asynchronous Javascript and XML) requests to the web server 210, and the recorder 102 may capture the AJAX requests and AJAX responses issued by the web server 210.
- AJAX Asynchronous Javascript and XML
- the tester 100 may provide controls (e.g., via a user interface) that allows for user selection of which requests and responses are captured by the recorder 102.
- controls may allow the recorder 102 to capture only the requests and responses issued with respect to a particular field or fields of the user interface 208, or requests and responses issued within a particular time interval.
- Requests issued by the user interface 208 may include information (e.g., a flag) identifying whether the request and corresponding response is to be recorded.
- the recorder 208 may also determine whether the request and response is to be recorded based on the content of the request.
- the recorder 102 may identify some requests to be passed to the web server 210 without recording based on the protocol of the request. For example, the recorder 102 may pass hypertext markup language, cascading style sheet, and javascript protocol requests to the web server 210 without recording.
- the recorder 102 also captures and records user interface configuration information that identifies the state and arrangement of elements of the user interface 208 (e.g., the user interface display elements).
- the user interface configuration information may be recorded prior to issuance of a request by the user interface 208 and after receipt of a response from the web server 210.
- the user interface configuration information captured and recorded by the recorder 102 may include a document object model (DOM) that describes the arrangement of the user interface 208 and how the elements of the user interface 208 are presented on a display device.
- DOM document object model
- the recorder 102 may capture instances of a DOM representing the user interface display as user interface configuration information, and identify, from different instances of the DOM, changes in the user interface corresponding to captured requests and/or responses.
- the user interface configuration information captured and recorded by the recorder 102 may also include images of the user interface as presented on a display device (e.g., screen captures).
- the recorder 102 may include a server (e.g., a proxy server) that intercepts, captures, and records the requests and associated responses.
- a server e.g., a proxy server
- the recorder 102, or a portion thereof, may be implemented as instructions executed as part of the user interface 208 performs the capturing and recording of requests and responses.
- the request, response, and user interface configuration information 202 is provided to the code generator 104.
- the code generator 104 processes the information 202 (e.g., DOM changes, user interface images, AJAX requests and responses, user interface options, user interface events, etc.), and generates based on the information 202 a test code 204 (i.e., a test program) to exercise and validate the user interface 208.
- the test code 204 may be referred to a unit testing script.
- the test code 204 may include instructions that can be executed to replicate user operations applied to the user interface 208 to generate the requests and responses recorded by the recorder 102.
- the test code 204 may also include instructions that can be executed to identify the requests issued by the user interface 208 that correspond to recorded requests.
- the test code 204 may include instructions that can be executed to issue responses to the identified requests, where the responses correspond to the responses captured for the corresponding recorded requests.
- the test code 204 may further include or refer to recorded user interface configuration information. Instructions included in the test code 204 may compare the recorded user interface configuration information to user interface configuration information acquired while executing the test code 204.
- the test engine 106 executes the test code 204 to test the operation of the user interface 208.
- the test engine 106 manipulates the user interface 208 per the test code 204, and validates operation of the user interface 208 per the test code 204.
- the test engine 106 captures user interface configuration information similar to that captured by the recorder 102, and validates the captured user interface configuration information against that recorded by the recorder 102 and referenced in the test code 204.
- the mock server 212 captures the requests issued to the web server 210 by the user interface 208, and determines whether the captured request should be passed to the web server 210 or serviced by the mock server 212. If the request is to be serviced by the mock server 212, then the mock server 212 provides a response to the user interface 208 in accordance with a response value contained in the test code 204 (i.e., a response captured by the recorder 102) without passing the request to the web server 210. If the mock server 212 determines that the request is to be serviced by the web server 210, then the mock server 212 passes the request to the web server 210 and passes the response issued by the web server 210 to the user interface 208.
- a response value contained in the test code 204 i.e., a response captured by the recorder 102
- the mock server 212 may determine which requests to service by comparing content of each request issued by the user interface 208 to information provided by the test engine 106 that identifies a request captured by the recorder 102. Alternatively, requests issued by the user interface 208 may include a flag or other information indicating that the request is to be serviced by the mock server 212. The mock server may be controlled by the test engine 106.
- the test engine 106 may validate the user interface 208 as presented on a display device and affected by a response generated by the mock server 212 by comparing values of a DOM recorded by the recorder 102 to current DOM values, comparing expected DOM values to current DOM values, comparing a recorded image (e.g., a screen image) of the user interface to a current image of the user interface, etc.
- the recorder 102 records a given request and response that cause the user interface 208 to display a field of a particular size at a particular location on a display device.
- the information defining the field may be recorded in a DOM captured by the recorder, a display image, etc.
- the mock server 212 When the test engine 106 causes the user interface to issue the given request, the mock server 212 generates the recorded response, and compares the size and location of the field generated by the user interface 208 to the size and location of the field recorded by the recorder 102.
- the user interface tester 100 can record user interface configuration information and transactions between the user interface 208 and the web server 210 while operating the user interface 208 in a first web browser.
- the code generator 104 generates test code 204 based on the recorded transactions and user interface configuration information.
- the test engine 106 executes the test code 204 to exercise the user interface 208 while the user interface 208 is executing in a different web browser, and validates the operation of the user interface 208 with respect to the different web browser.
- Each of the recorder 102, the code generator, 104, the test engine 106, and the mock server 212 includes a processor (e.g., a microprocessor) that executes instructions to perform the operations described herein, and storage memory from which the processor retrieves the instructions.
- a processor e.g., a microprocessor
- Each of the recorder 102, the code generator, 104, the test engine 106, and the mock server 212 may also include other circuitry and hardware for performing the operations described herein.
- FIG. 3 shows a block diagram for a user interface test system 300 that implements the tester 100 in accordance with principles disclosed herein.
- the system 300 includes a processor 302, storage 304, a display device 324, user input/output devices 326, a network adapter 328, a network 330, and the web server 210.
- the processor 302 may be a general-purpose microprocessor, digital signal processor, microcontroller, or other device capable of executing instructions retrieved from a computer-readable storage medium.
- Processor architectures generally include execution units (e.g., fixed point, floating point, integer, etc.), storage (e.g., registers, memory, etc.), instruction decoding, peripherals (e.g., interrupt controllers, timers, direct memory access controllers, etc.), input/output systems (e.g., serial ports, parallel ports, etc.) and various other components and sub-systems.
- execution units e.g., fixed point, floating point, integer, etc.
- storage e.g., registers, memory, etc.
- instruction decoding e.g., peripherals, interrupt controllers, timers, direct memory access controllers, etc.
- input/output systems e.g., serial ports, parallel ports, etc.
- processors execute software instructions.
- Software instructions alone are incapable of performing a function. Therefore, in the present disclosure, any reference to a function performed by software instructions, or to software instructions performing a function is simply a shorthand means for stating that the function is performed by a processor executing the instructions.
- the display device 324 is coupled to the processor 302.
- the processor 302 provides data to the display device 324 for presentation.
- the display device 324 may include a liquid crystal display device, an organic light emitting diode display device, or any other display technology suitable for presenting a user interface display.
- the user I/O devices 326 include devices such as a keyboard, a pointing device (e.g., a mouse, trackball, touchpad, touchscreen, etc.) through which a user can manipulate and operate a user interface presented on the display device 324.
- a pointing device e.g., a mouse, trackball, touchpad, touchscreen, etc.
- the network adapter 328 is coupled to the processor 302.
- the network adapter 328 allows the processor 302 to communicate with the web server 210.
- the network adapter 210 may include circuitry that allows the processor 302 to communicate with the web server 210 via a wireless local area network (WLAN) (e.g., a WLAN according to an IEEE 802.1 1 standard), a wired local area network (LAN) (e.g., a LAN according to an IEEE 802.3 standard), or other wired or wireless network.
- WLAN wireless local area network
- LAN local area network
- the storage 304 is a non-transitory computer-readable storage medium suitable for storing instructions executable by the processor 302, and for storing data generated in association with instruction execution.
- the storage 304 may include volatile storage such as random access memory, non-volatile storage (e.g., a hard drive, an optical storage device (e.g., CD or DVD), FLASH storage, read-only-memory), or combinations thereof.
- the storage 204 includes a tester module 310 that includes instructions executed by the processor 302 to perform the operations disclosed herein with respect to the user interface tester 100.
- the test module 310 includes a recorder module 312, a code generation module 314, test engine module 334, and a mock server module 316, each of which includes instructions executed by the processor 302 to perform the operations of the recorder 102, the code generator 104, test engine 106, and the mock server 106 respectively disclosed herein.
- the storage 304 also includes a web browser A 320 and a web browser B 322.
- web browser A 320 may be an instance of the FIREFOX browser
- web browser B 322 may be an instance of the CHROME browser.
- the browsers 320, 322 may be executed by the processor 302 to provide an environment for execution of a web-based application.
- the application 306 included in the storage 304 is a web-based application that can be executed in browser A 320 or browser B 322.
- the web application 306 may be downloaded into the storage 304 from the web server 210.
- the web application 306 may be a portion of a larger application served by the web server 210.
- the application 306 includes a user interface module 308.
- the user interface module 308 includes instructions that are executed by the processor 302 to generate a user interface (e.g., a graphical user interface) on the display device 324.
- Components of the system 300 may be embodied in a computer as is known in the art.
- a laptop computer, a desktop computer, a tablet computer, a smartphone, etc. may provide components (e.g., the processor 302, storage 304, etc.) of the system 300.
- Figure 4 shows a block diagram of a computer-readable medium 400 encoded with instructions for testing a user interface of a web-based application in accordance with principles disclosed herein.
- the computer-readable medium 400 may be a storage device as described with regard to storage 304.
- Figure 5 shows a flow diagram for a method 500 for testing a user interface of a web-based application in accordance with principles disclosed herein. Though depicted sequentially as a matter of convenience, at least some of the actions shown can be performed in a different order and/or performed in parallel. Additionally, some implementations may perform only some of the actions shown. In some implementations, the operations of the method 500, as well as other operations described herein, can be implemented as instructions stored in a computer readable medium (e.g., storage 304) and executed by a processor (e.g., processor 302).
- a processor e.g., processor 302
- the user interface 208 of a web-based application 306 is executing in a first web browser 320.
- the user interface 208 presents a display (e.g., a graphical display) with which a user interacts to control the operation of the application 306.
- the recorder 102 captures and records user interface configuration information generated by the executing user interface 208 as the user interface 208 is operated by a user.
- the configuration information defines the arrangement of elements of the user interface 208 displayed on a display device 324.
- the configuration information may include DOMs, display images, etc.
- the recorder 102 also captures and records requests issued to the web server 210 by the user interface 208, and responses to the requests issued by the web server 210.
- the code generator 104 processes the information recorded by the recorder 102 to generate user interface test code 204.
- the test engine 106 executes the user interface test code 204 to exercise the user interface 208 while the user interface 208 is running in a different web browser (e.g., 322) than was applied during the recording of block 504.
- the test engine 106 interacts with the user interface 208 to replicate the operations produced via user manipulation during the recording.
- the mock server 212 services the requests issued by the user interface 208 by identifying the requests and issuing the responses provided by the web server 210 during the recording.
- the test engine 106 also captures user interface configuration information generated by the user interface 208 while executing in the different browser.
- test engine 106 validates the operation of the user interface 208 in the different web browser by comparing the recorded user interface configuration information captured in block 504 to user interface configuration captured while the user interface 208 is executing in the different web browser.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
To test a user interface of a web-based application, interface configuration information and transactions between the user interface and a web server are captured while operating the user interface with a first browser. The captured user interface configuration information and transactions are converted into a program to exercise and verify operation of the user interface with a second browser. The program is executed in conjunction with operating the user interface with the second browser. User interface configuration information captured while operating the user interface with the second browser is compared to the user interface configuration information captured while operating the user interface with the first browser.
Description
USER INTERFACE TESTER BACKGROUND
[0001] Because the web is generally platform independent, application delivery via the web is becoming increasingly popular. As applications migrate to the web, the user interfaces through which the applications are accessed and controlled are reformulated for operation in a web browser. A substantial number of web browsers are available, with features and capabilities varying from browser to browser.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] For a detailed description of examples disclosed herein, reference will now be made to the accompanying drawings in which:
[0003] Figures 1 and 2 show block diagrams for a system for testing a user interface of a web-based application in accordance with principles disclosed herein;
[0004] Figure 3 shows a block diagram for an implementation of a system for testing a user interface of a web-based application in accordance with principles disclosed herein;
[0005] Figure 4 shows a block diagram of a computer-readable medium encoded with instructions for testing a user interface of a web-based application in accordance with principles disclosed herein; and
[0006] Figure 5 shows a flow diagram for a method for testing a user interface of a web-based application in accordance with principles disclosed herein.
NOTATION AND NOMENCLATURE
[0007] Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, computer companies may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms "including" and "comprising" are used in an open-ended fashion, and thus should be interpreted to mean "including, but not limited to... ." Also, the term "couple" or "couples" is intended to mean either an indirect, direct, optical or wireless
electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, through an indirect electrical connection via other devices and connections, through an optical electrical connection, or through a wireless electrical connection. The recitation "based on" is intended to mean "based at least in part on." Therefore, if X is based on Y, may be based on Yand any number of additional factors.
DETAILED DESCRIPTION
[0008] The following discussion is directed to various implementations of a user interface tester. Although one or more of these implementations may be preferred, the implementations disclosed should not be interpreted, or otherwise used, as limiting the scope of the disclosure, including the claims. In addition, one skilled in the art will understand that the following description has broad application, and the discussion of any implementation is meant only to be exemplary of that implementation, and not intended to limit the scope of the disclosure, including the claims.
[0009] User interfaces are generally manually tested and validated. However, the number of web browsers (e.g., INTERNET EXPLORER, FIREFOX, CHROME, OPERA, SAFARI, etc.) and different versions of the browsers, with which a web application's user interface must operate make manual testing a daunting task. Because manual testing of user interfaces, including testing of modifications to the user interface, is generally impractical, automated testing of web-based user interfaces is desirable. Manual generation of user interface test programs is inefficient due to the loose organization of user interface elements.
[0010] The test system and method disclosed herein provide automated testing of user interfaces of web-based applications across the various web-browsers, and versions thereof, with which the user interface operates. The test system disclosed herein monitors and captures user interface configuration and transactions between the user interface and a web server while the user interface is operating with a reference web browser. The system generates test code from the captured information, and executes the test code to exercise and validate operation of the user interface with a different web browser. Testing of
functionality provided by processor execution of software instructions as described herein may be referred to as "unit testing."
[0011] Figures 1 and 2 show block diagrams for a tester 100 for testing a user interface of a web-based application in accordance with principles disclosed. The user interface tester 100 includes a recorder 102, a code generator 104, and a test engine 106. The recorder 102 monitors the user interface 208 and web server 210 while the user interface 208 is executing in a web browser 206. The recorder 102 intercepts, captures, and records requests issued by the user interface 208 for service by the web server 210 and responses to the requests issued by the web server 210. For example, the user interface may issue AJAX (Asynchronous Javascript and XML) requests to the web server 210, and the recorder 102 may capture the AJAX requests and AJAX responses issued by the web server 210.
[0012] The tester 100 may provide controls (e.g., via a user interface) that allows for user selection of which requests and responses are captured by the recorder 102. For example, such controls may allow the recorder 102 to capture only the requests and responses issued with respect to a particular field or fields of the user interface 208, or requests and responses issued within a particular time interval. Requests issued by the user interface 208 may include information (e.g., a flag) identifying whether the request and corresponding response is to be recorded. The recorder 208 may also determine whether the request and response is to be recorded based on the content of the request. The recorder 102 may identify some requests to be passed to the web server 210 without recording based on the protocol of the request. For example, the recorder 102 may pass hypertext markup language, cascading style sheet, and javascript protocol requests to the web server 210 without recording.
[0013] The recorder 102 also captures and records user interface configuration information that identifies the state and arrangement of elements of the user interface 208 (e.g., the user interface display elements). The user interface configuration information may be recorded prior to issuance of a request by the user interface 208 and after receipt of a response from the web server 210. The user interface configuration information captured and recorded by the
recorder 102 may include a document object model (DOM) that describes the arrangement of the user interface 208 and how the elements of the user interface 208 are presented on a display device. In one implementation, the recorder 102 may capture instances of a DOM representing the user interface display as user interface configuration information, and identify, from different instances of the DOM, changes in the user interface corresponding to captured requests and/or responses. The user interface configuration information captured and recorded by the recorder 102 may also include images of the user interface as presented on a display device (e.g., screen captures).
[0014] The recorder 102 may include a server (e.g., a proxy server) that intercepts, captures, and records the requests and associated responses. Alternatively, the recorder 102, or a portion thereof, may be implemented as instructions executed as part of the user interface 208 performs the capturing and recording of requests and responses.
[0015] The request, response, and user interface configuration information 202 is provided to the code generator 104. The code generator 104 processes the information 202 (e.g., DOM changes, user interface images, AJAX requests and responses, user interface options, user interface events, etc.), and generates based on the information 202 a test code 204 (i.e., a test program) to exercise and validate the user interface 208. The test code 204 may be referred to a unit testing script.
[0016] The test code 204 may include instructions that can be executed to replicate user operations applied to the user interface 208 to generate the requests and responses recorded by the recorder 102. The test code 204 may also include instructions that can be executed to identify the requests issued by the user interface 208 that correspond to recorded requests. Similarly, the test code 204 may include instructions that can be executed to issue responses to the identified requests, where the responses correspond to the responses captured for the corresponding recorded requests. The test code 204 may further include or refer to recorded user interface configuration information. Instructions included in the test code 204 may compare the recorded user interface configuration
information to user interface configuration information acquired while executing the test code 204.
[0017] The test engine 106 executes the test code 204 to test the operation of the user interface 208. The test engine 106 manipulates the user interface 208 per the test code 204, and validates operation of the user interface 208 per the test code 204. The test engine 106 captures user interface configuration information similar to that captured by the recorder 102, and validates the captured user interface configuration information against that recorded by the recorder 102 and referenced in the test code 204.
[0018] The mock server 212 captures the requests issued to the web server 210 by the user interface 208, and determines whether the captured request should be passed to the web server 210 or serviced by the mock server 212. If the request is to be serviced by the mock server 212, then the mock server 212 provides a response to the user interface 208 in accordance with a response value contained in the test code 204 (i.e., a response captured by the recorder 102) without passing the request to the web server 210. If the mock server 212 determines that the request is to be serviced by the web server 210, then the mock server 212 passes the request to the web server 210 and passes the response issued by the web server 210 to the user interface 208. The mock server 212 may determine which requests to service by comparing content of each request issued by the user interface 208 to information provided by the test engine 106 that identifies a request captured by the recorder 102. Alternatively, requests issued by the user interface 208 may include a flag or other information indicating that the request is to be serviced by the mock server 212. The mock server may be controlled by the test engine 106.
[0019] The test engine 106 may validate the user interface 208 as presented on a display device and affected by a response generated by the mock server 212 by comparing values of a DOM recorded by the recorder 102 to current DOM values, comparing expected DOM values to current DOM values, comparing a recorded image (e.g., a screen image) of the user interface to a current image of the user interface, etc. For example, the recorder 102 records a given request and response that cause the user interface 208 to display a field of a particular
size at a particular location on a display device. The information defining the field may be recorded in a DOM captured by the recorder, a display image, etc. When the test engine 106 causes the user interface to issue the given request, the mock server 212 generates the recorded response, and compares the size and location of the field generated by the user interface 208 to the size and location of the field recorded by the recorder 102.
[0020] Thus, the user interface tester 100 can record user interface configuration information and transactions between the user interface 208 and the web server 210 while operating the user interface 208 in a first web browser. The code generator 104 generates test code 204 based on the recorded transactions and user interface configuration information. The test engine 106 executes the test code 204 to exercise the user interface 208 while the user interface 208 is executing in a different web browser, and validates the operation of the user interface 208 with respect to the different web browser.
[0021] Each of the recorder 102, the code generator, 104, the test engine 106, and the mock server 212 includes a processor (e.g., a microprocessor) that executes instructions to perform the operations described herein, and storage memory from which the processor retrieves the instructions. Each of the recorder 102, the code generator, 104, the test engine 106, and the mock server 212 may also include other circuitry and hardware for performing the operations described herein.
[0022] Figure 3 shows a block diagram for a user interface test system 300 that implements the tester 100 in accordance with principles disclosed herein. The system 300 includes a processor 302, storage 304, a display device 324, user input/output devices 326, a network adapter 328, a network 330, and the web server 210. The processor 302 may be a general-purpose microprocessor, digital signal processor, microcontroller, or other device capable of executing instructions retrieved from a computer-readable storage medium. Processor architectures generally include execution units (e.g., fixed point, floating point, integer, etc.), storage (e.g., registers, memory, etc.), instruction decoding, peripherals (e.g., interrupt controllers, timers, direct memory access controllers,
etc.), input/output systems (e.g., serial ports, parallel ports, etc.) and various other components and sub-systems.
[0023] As understood by those skilled in the art, processors execute software instructions. Software instructions alone are incapable of performing a function. Therefore, in the present disclosure, any reference to a function performed by software instructions, or to software instructions performing a function is simply a shorthand means for stating that the function is performed by a processor executing the instructions.
[0024] The display device 324 is coupled to the processor 302. The processor 302 provides data to the display device 324 for presentation. The display device 324 may include a liquid crystal display device, an organic light emitting diode display device, or any other display technology suitable for presenting a user interface display.
[0025] The user I/O devices 326 include devices such as a keyboard, a pointing device (e.g., a mouse, trackball, touchpad, touchscreen, etc.) through which a user can manipulate and operate a user interface presented on the display device 324.
[0026] The network adapter 328 is coupled to the processor 302. The network adapter 328 allows the processor 302 to communicate with the web server 210. For example, the network adapter 210 may include circuitry that allows the processor 302 to communicate with the web server 210 via a wireless local area network (WLAN) (e.g., a WLAN according to an IEEE 802.1 1 standard), a wired local area network (LAN) (e.g., a LAN according to an IEEE 802.3 standard), or other wired or wireless network.
[0027] The storage 304 is a non-transitory computer-readable storage medium suitable for storing instructions executable by the processor 302, and for storing data generated in association with instruction execution. The storage 304 may include volatile storage such as random access memory, non-volatile storage (e.g., a hard drive, an optical storage device (e.g., CD or DVD), FLASH storage, read-only-memory), or combinations thereof.
[0028] The storage 204 includes a tester module 310 that includes instructions executed by the processor 302 to perform the operations disclosed herein with
respect to the user interface tester 100. The test module 310 includes a recorder module 312, a code generation module 314, test engine module 334, and a mock server module 316, each of which includes instructions executed by the processor 302 to perform the operations of the recorder 102, the code generator 104, test engine 106, and the mock server 106 respectively disclosed herein.
[0029] The storage 304 also includes a web browser A 320 and a web browser B 322. For example, web browser A 320 may be an instance of the FIREFOX browser, and web browser B 322 may be an instance of the CHROME browser. The browsers 320, 322 may be executed by the processor 302 to provide an environment for execution of a web-based application.
[0030] The application 306 included in the storage 304 is a web-based application that can be executed in browser A 320 or browser B 322. The web application 306 may be downloaded into the storage 304 from the web server 210. The web application 306 may be a portion of a larger application served by the web server 210. The application 306 includes a user interface module 308. The user interface module 308 includes instructions that are executed by the processor 302 to generate a user interface (e.g., a graphical user interface) on the display device 324.
[0031] Components of the system 300 may be embodied in a computer as is known in the art. For example, a laptop computer, a desktop computer, a tablet computer, a smartphone, etc. may provide components (e.g., the processor 302, storage 304, etc.) of the system 300.
[0032] Figure 4 shows a block diagram of a computer-readable medium 400 encoded with instructions for testing a user interface of a web-based application in accordance with principles disclosed herein. The computer-readable medium 400 may be a storage device as described with regard to storage 304.
[0033] Figure 5 shows a flow diagram for a method 500 for testing a user interface of a web-based application in accordance with principles disclosed herein. Though depicted sequentially as a matter of convenience, at least some of the actions shown can be performed in a different order and/or performed in parallel. Additionally, some implementations may perform only some of the
actions shown. In some implementations, the operations of the method 500, as well as other operations described herein, can be implemented as instructions stored in a computer readable medium (e.g., storage 304) and executed by a processor (e.g., processor 302).
[0034] In block 502, the user interface 208 of a web-based application 306 is executing in a first web browser 320. The user interface 208 presents a display (e.g., a graphical display) with which a user interacts to control the operation of the application 306.
[0035] In block 504, the recorder 102 captures and records user interface configuration information generated by the executing user interface 208 as the user interface 208 is operated by a user. The configuration information defines the arrangement of elements of the user interface 208 displayed on a display device 324. The configuration information may include DOMs, display images, etc. The recorder 102 also captures and records requests issued to the web server 210 by the user interface 208, and responses to the requests issued by the web server 210.
[0036] In block 506, the code generator 104 processes the information recorded by the recorder 102 to generate user interface test code 204.
[0037] In block 508, the test engine 106 executes the user interface test code 204 to exercise the user interface 208 while the user interface 208 is running in a different web browser (e.g., 322) than was applied during the recording of block 504. The test engine 106 interacts with the user interface 208 to replicate the operations produced via user manipulation during the recording. The mock server 212 services the requests issued by the user interface 208 by identifying the requests and issuing the responses provided by the web server 210 during the recording. The test engine 106 also captures user interface configuration information generated by the user interface 208 while executing in the different browser.
[0038] In block 510, the test engine 106 validates the operation of the user interface 208 in the different web browser by comparing the recorded user interface configuration information captured in block 504 to user interface
configuration captured while the user interface 208 is executing in the different web browser.
[0039] The above discussion is meant to be illustrative of the principles and various implementations of the user interface tester. Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.
Claims
1 . A system, comprising:
a web application user interface tester configured to automate testing of a user interface executed in a web browser, the tester comprising: a recorder to capture user interface configuration information and transactions between the user interface and a web server while operating the user interface with a first browser;
a test code generator to convert captured user interface configuration information and transactions into a program to exercise and verify operation of the user interface with a second browser;
a test engine to execute the program and compare user interface configuration information captured while operating the user interface with the second browser to the user interface configuration information captured while operating the user interface with the first browser.
2. The system of claim 1 , wherein the user interface configuration information captured while operating the user interface with the first browser comprises a first document object model created by the user interface while operating the user interface with the first browser; and wherein the user interface configuration information captured while operating the user interface with the second browser comprises a second document object model created by the user interface while operating the user interface with the second browser; and
wherein the test engine is to:
compare information extracted from the first document object model to information extracted from the second document model; and determine based on the comparison, whether the user interface while operating with the second browser is consistent with the user interface while operating with the first browser.
3. The system of claim 1 , wherein the user interface configuration information captured while operating the user interface with the first browser comprises a first graphical image created by the user interface while operating the user interface with the first browser; and wherein the user interface configuration information captured while operating the user interface with the second browser comprises a second graphical image created by the user interface while operating the user interface with the second browser; and
wherein the test engine is to:
compare the first graphical image to the second graphical image; and determine based on the comparison, whether the user interface while operating with the second browser is consistent with the user interface while operating with the first browser.
4. The system of claim 1 , wherein the recorder is to capture requests issued by the user interface to the web server, and responses to the requests transmitted by the web server to the user interface.
5. The system of claim 1 , wherein the recorder comprises a capture module executing in the first browser to intercept the requests and responses before transferring the requests and responses to the web server and the user interface respectively.
6. The system of claim 1 , wherein web application user interface tester further comprises a mock server to, while operating the user interface with the second browser:
identify received requests issued by the user interface that were not captured while operating the user interface with the first browser; pass the identified requests to the web server while operating the user interface with the second browser;
identify received requests issued by the user interface that were captured while operating the user interface with the first browser;
pass to the user interface, while operating the user interface with the second browser; the response issued by the web server to the user interface while operating the user interface with the first browser.
7. The system of claim 6, wherein the user interface, while operating with the second browser, is to append a test indication to each request issued to the web server that is to be handled by the mock server; and the mock server is to identify requests pertaining to user interface operation to be validated based on the identification of the test indication in each request.
8. The system of claim 1 , wherein the recorder is to capture user interface configuration information and transactions between the user interface and the web server while operating the user interface with the first browser only during an interval of operation specified via a user interface of the web application user interface tester.
9. A non-transitory computer-readable medium encoded with instructions that when executed cause a processor to:
capture user interface configuration information and transactions between the user interface and a web server while operating the user interface with a first browser;
convert captured user interface configuration information and transactions into a program to exercise and verify operation of the user interface with a second browser;
execute the program; and
compare user interface configuration information captured while operating the user interface with the second browser to the user interface configuration information captured while operating the user interface with the first browser.
10. The computer-readable medium of claim 9, wherein the instructions cause the processor to, while operating the user interface with the second browser: identify first received requests issued by the user interface that were not captured while operating the user interface with the first browser; pass the first received requests to the web server;
identify second received requests issued by the user interface that were captured while operating the user interface with the first browser; and
pass, to the user interface, the responses to the second received requests issued by the web server to the user interface while operating the user interface with the first browser.
1 1 . The computer-readable medium of claim 9, wherein the user interface configuration information captured while operating the user interface with the first browser comprises one of a first document object model and a first graphical image created by the first user interface, and the user interface configuration information captured while operating the user interface with the second browser comprises one of a second document object model and a second graphical image created by the first user interface; and wherein the instructions cause the processor to determine based on the comparison, whether the user interface while operating with the second browser is consistent with the user interface while operating with the first browser.
12. A method, comprising:
capturing, by a processor, user interface configuration information and transactions between the user interface and a web server while operating the user interface with a first browser;
converting, by the processor, captured user interface configuration information and transactions into a program to exercise and verify operation of the user interface with a second browser; executing, by the processor, the program in conjunction with operating the user interface with the second browser; and
comparing, by the processor, user interface configuration information captured while operating the user interface with the second browser to the user interface configuration information captured while operating the user interface with the first browser.
13. The method of claim 12, further comprising:
identifying first received requests issued by the user interface that were not captured while operating the user interface with the first browser; passing the first received requests to the web server;
identifying second received requests issued by the user interface that were captured while operating the user interface with the first browser; and
passing, to the user interface, the responses to the second received requests issued by the web server to the user interface while operating the user interface with the first browser.
14. The method of claim 12, wherein the user interface configuration information captured while operating the user interface with the first browser comprises one of a first document object model and a first graphical image created by the first user interface, and the user interface configuration information captured while operating the user interface with the second browser comprises one of a second document object model and a second graphical image created by the first user interface; and wherein the method further comprises determining based on the comparing, whether the user interface while operating with the second browser is consistent with the user interface while operating with the first browser.
15. The method of claim 12, further comprising:
capturing requests issued by the user interface to the web server, and responses to the requests transmitted by the web server to the user interface only during an interval of operation specified via a user interface of a web application user interface tester;
capturing the requests and responses via one of a proxy server and a capture module executing in the browser.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/086274 WO2015062003A1 (en) | 2013-10-31 | 2013-10-31 | User interface tester |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/086274 WO2015062003A1 (en) | 2013-10-31 | 2013-10-31 | User interface tester |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015062003A1 true WO2015062003A1 (en) | 2015-05-07 |
Family
ID=53003131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2013/086274 WO2015062003A1 (en) | 2013-10-31 | 2013-10-31 | User interface tester |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2015062003A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106803859A (en) * | 2017-01-20 | 2017-06-06 | 浪潮通信信息系统有限公司 | The display methods and device of a kind of application interface |
CN107741904A (en) * | 2017-09-14 | 2018-02-27 | 平安科技(深圳)有限公司 | Test machine method of automatic configuration, device, equipment and storage medium |
KR20200073749A (en) * | 2018-12-14 | 2020-06-24 | 주식회사 엘지씨엔에스 | Method and system for testing it system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101135989A (en) * | 2006-08-31 | 2008-03-05 | 中国银联股份有限公司 | Automatization test method and device for Web applied system |
CN101937393A (en) * | 2010-08-31 | 2011-01-05 | 中山大学 | Regression testing method and system for browser |
CN102004695A (en) * | 2010-12-08 | 2011-04-06 | 深圳市茁壮网络股份有限公司 | Method and system for testing browser |
US20110173589A1 (en) * | 2010-01-13 | 2011-07-14 | Microsoft Corporation | Cross-Browser Interactivity Testing |
CN102142016A (en) * | 2010-01-29 | 2011-08-03 | 微软公司 | Cross-browser interactivity recording, playback and editing |
-
2013
- 2013-10-31 WO PCT/CN2013/086274 patent/WO2015062003A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101135989A (en) * | 2006-08-31 | 2008-03-05 | 中国银联股份有限公司 | Automatization test method and device for Web applied system |
US20110173589A1 (en) * | 2010-01-13 | 2011-07-14 | Microsoft Corporation | Cross-Browser Interactivity Testing |
CN102142016A (en) * | 2010-01-29 | 2011-08-03 | 微软公司 | Cross-browser interactivity recording, playback and editing |
CN101937393A (en) * | 2010-08-31 | 2011-01-05 | 中山大学 | Regression testing method and system for browser |
CN102004695A (en) * | 2010-12-08 | 2011-04-06 | 深圳市茁壮网络股份有限公司 | Method and system for testing browser |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106803859A (en) * | 2017-01-20 | 2017-06-06 | 浪潮通信信息系统有限公司 | The display methods and device of a kind of application interface |
CN107741904A (en) * | 2017-09-14 | 2018-02-27 | 平安科技(深圳)有限公司 | Test machine method of automatic configuration, device, equipment and storage medium |
KR20200073749A (en) * | 2018-12-14 | 2020-06-24 | 주식회사 엘지씨엔에스 | Method and system for testing it system |
KR102180592B1 (en) * | 2018-12-14 | 2020-11-18 | 주식회사 엘지씨엔에스 | Method and system for testing it system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9342237B2 (en) | Automated testing of gesture-based applications | |
US7962547B2 (en) | Method for server-side logging of client browser state through markup language | |
US8996988B2 (en) | Automated application compatibility testing | |
US9015666B2 (en) | Updating product documentation using automated test scripts | |
WO2019169757A1 (en) | Test control and test execution device and method, and computer storage medium | |
US20140331209A1 (en) | Program Testing Service | |
US20170147480A1 (en) | Test script generation | |
US8291388B2 (en) | System, method and program for executing a debugger | |
WO2018184361A1 (en) | Application test method, server, terminal, and storage media | |
US9648139B2 (en) | Inserting server-side breakpoints requested by remote development clients | |
US11768751B2 (en) | Software performance testing | |
US10248543B2 (en) | Software functional testing | |
CN111367814A (en) | Embedded point testing method and device, terminal equipment and storage medium | |
CA2811617C (en) | Commit sensitive tests | |
US9378109B1 (en) | Testing tools for devices | |
WO2015062003A1 (en) | User interface tester | |
US20150121192A1 (en) | Debugging errors in display of web pages with partial page refresh | |
WO2017049649A1 (en) | Technologies for automated application exploratory testing | |
CN109347797A (en) | A kind of third-party application login method and electronic equipment based on educational system | |
US10171588B2 (en) | Web operation playback | |
JP6426535B2 (en) | Test support apparatus and test support method | |
US9672294B2 (en) | Partial data report generation with data costing notification | |
CN117493207A (en) | Page processing method, device, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13896634 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 13896634 Country of ref document: EP Kind code of ref document: A1 |