WO2015062003A1 - User interface tester - Google Patents

User interface tester Download PDF

Info

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
Application number
PCT/CN2013/086274
Other languages
French (fr)
Inventor
Zhiyuan JING
Pengji YIN
Original Assignee
Hewlett-Packard Development Company, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to PCT/CN2013/086274 priority Critical patent/WO2015062003A1/en
Publication of WO2015062003A1 publication Critical patent/WO2015062003A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test 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

CLAIMS What is claimed is:
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.
PCT/CN2013/086274 2013-10-31 2013-10-31 User interface tester WO2015062003A1 (en)

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)

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

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

Patent Citations (5)

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

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