US20140132571A1 - Automated testing of gesture-based applications - Google Patents
Automated testing of gesture-based applications Download PDFInfo
- Publication number
- US20140132571A1 US20140132571A1 US13/688,243 US201213688243A US2014132571A1 US 20140132571 A1 US20140132571 A1 US 20140132571A1 US 201213688243 A US201213688243 A US 201213688243A US 2014132571 A1 US2014132571 A1 US 2014132571A1
- Authority
- US
- United States
- Prior art keywords
- recorded
- test
- event
- gesture
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0416—Control or interface arrangements specially adapted for digitisers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Definitions
- the present disclosure relates generally to software testing.
- a computer-implemented technology for facilitating testing of a web application is described herein.
- a data file including recorded data of one or more recorded gesture events is received.
- a test case is loaded with the recorded data.
- the one or more recorded gesture events are replayed in the test case and the web application is executed to generate test results.
- FIG. 1 is a block diagram illustrating an exemplary system
- FIG. 2 shows an exemplary method of recording gesture-based events
- FIG. 3 a shows an exemplary JSON event file
- FIG. 3 b shows an exemplary sequence diagram for recording touch events at the client device
- FIG. 4 shows an exemplary test web page
- FIG. 5 shows an exemplary method of processing an event file
- FIG. 6 shows a method of automated testing
- FIG. 7 shows an exemplary sequence diagram for replaying recorded touch events at the test computer.
- FIG. 8 shows another exemplary test web page.
- the test automation framework may be provided to perform testing of gesture-based web applications that would otherwise need to be performed manually.
- Web applications refer to software programs that are coded in a browser-supported language (e.g., JavaScript, Hypertext Markup Language (HTML), Extensible Markup Language (XML), the Extensible Hypertext Markup Language (XHTML), Cascading Style Sheet (CSS), and JAVA, etc.) and rely on a common web browser (e.g., MICROSOFT WINDOWS INTERNET EXPLORER, MOZILLA FIREFOX, APPLE SAFARI, GOOGLE CHROME, OPERA, etc.) or other client application over a network, to render them executable.
- a browser-supported language e.g., JavaScript, Hypertext Markup Language (HTML), Extensible Markup Language (XML), the Extensible Hypertext Markup Language (XHTML), Cascading Style Sheet (CSS), and JAVA, etc.
- Gesture-based web applications support the use of gestures, such as touch, multi-touch, or physical movement, as input during a user interaction.
- Conventional technology simulates gesture events either programmatically (e.g., using a test script), or using traditional input triggers (e.g., mouse or keyboard).
- traditional input triggers e.g., mouse or keyboard.
- the present technology simulates gesture events by using real recorded data, and therefore is not limited to the types of gestures that can be simulated programmatically or by traditional input triggers. It can support any type of gesture input that is accepted by the web application being tested, such as a multi-touch gesture that requires the use of more than one finger or other pointing means (e.g., pinch open/close, two finger tap, touch and swipe, etc.).
- Implementations described herein automatically record, as test scenarios, gesture-based user interactions with a web application accessed via, for example, a mobile device.
- the recorded data may be formatted and stored for subsequent retrieval.
- the recorded data is used to trigger gesture events on the mobile device, desktop or any other test device that support World Wide Web Consortium (W3C) standard touch events.
- W3C World Wide Web Consortium
- FIG. 1 is a block diagram illustrating an exemplary system 100 that implements the framework described herein.
- the system 100 generally includes a server 101 , a client device 150 , a test computer 160 , at least some of which are communicatively coupled through a network 132 .
- the server 101 and test computer 160 are co-located or implemented on the same physical machine.
- the server 101 may include more than one server, such as a server pool.
- Two or more client devices 150 may also operate in the system 100 .
- Non-transitory computer-readable media 112 may store machine-executable instructions, data, and various programs, such as an operating system (not shown), web services, an event processing module 122 for implementing the techniques described herein, all of which may be processed by CPU 114 .
- the server 101 is a general-purpose computer system that becomes a specific purpose computer system when executing the machine-executable instructions.
- the event processing module described herein may be implemented as part of a software product or application, which is executed via the operating system.
- the application may be integrated into an existing software application, such as an add-on or plug-in to an existing application, or as a separate application.
- the existing software application may be a suite of software applications.
- the event processing module 122 may be hosted in whole or in part by different computer systems in some implementations. Thus, the techniques described herein may occur locally on the server 101 , or may occur in other computer systems and be reported to server 101 .
- Each computer program may be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired.
- the language may be a compiled or interpreted language.
- the machine-executable instructions are not intended to be limited to any particular programming language and implementation thereof. It will be appreciated that a variety of programming languages and coding thereof may be used to implement the teachings of the disclosure contained herein.
- Non-transitory computer-readable media 112 may be any form of memory device, including by way of example semiconductor memory devices, such as Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), and flash memory devices; magnetic disks such as internal hard disks and removable disks, magneto-optical disks, and Compact Disc Read-Only Memory (CD-ROM).
- semiconductor memory devices such as Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), and flash memory devices
- magnetic disks such as internal hard disks and removable disks, magneto-optical disks, and Compact Disc Read-Only Memory (CD-ROM).
- CD-ROM Compact Disc Read-Only Memory
- Server 101 may be communicatively coupled to an input device (e.g., keyboard, touch screen or mouse) and a display device (e.g., monitor or screen) via the I/O unit 113 .
- Server 101 may also include other devices such as a communications card or device (e.g., a modem and/or a network adapter) for exchanging data with a network using a communications link (e.g., a telephone line, a wireless network link, a wired network link, or a cable network), and other support circuits (e.g., a cache, power supply, clock circuits, communications bus, etc.).
- a communications link e.g., a telephone line, a wireless network link, a wired network link, or a cable network
- support circuits e.g., a cache, power supply, clock circuits, communications bus, etc.
- any of the foregoing may be supplemented by, or incorporated in, application-specific integrated circuits.
- Server 101 may operate in a networked environment using logical connections to one or more client devices 150 and test computers 160 over one or more intermediate networks 132 .
- These networks 132 generally represent any protocols, adapters, components, and other general infrastructure associated with wired and/or wireless communications networks. Such networks 132 may be global, regional, local, and/or personal in scope and nature, as appropriate in different implementations.
- the network 132 may be all or a portion of an enterprise or secured network, while in another instance, at least a portion of the network 132 may represent a connection to the Internet. In some instances, a portion of the network may be a virtual private network (VPN).
- VPN virtual private network
- the network 132 may communicate, for example, Internet Protocol (IP) packets, Frame Relay frames, Asynchronous Transfer Mode (ATM) cells, voice, video, data, and other suitable information between network addresses.
- IP Internet Protocol
- ATM Asynchronous Transfer Mode
- the network 132 may also include one or more local area networks (LANs), radio access networks (RANs), metropolitan area networks (MANs), wide area networks (WANs), all or a portion of the World Wide Web (Internet), and/or any other communication system or systems at one or more locations.
- LANs local area networks
- RANs radio access networks
- MANs metropolitan area networks
- WANs wide area networks
- Internet World Wide Web
- the client device 150 may be any computing device operable to connect to or communicate with at least the server 101 , the test computer 160 , and/or the network 132 using a wired or wireless connection.
- the client device 150 may be a mobile device that can be used by an end-user to communicate information using radio technology.
- the mobile device 150 may be a cellular phone, personal data assistant (PDA), smartphone, laptop, tablet personal computer (PC), e-reader, media player, a digital camera, a video camera, Session Initiation Protocol (SIP) phone, touch screen terminal, enhanced general packet radio service (EGPRS) mobile phone, navigation device, an email device, a game console, any other suitable wireless communication device capable of performing a plurality of tasks including communicating information using a radio technology, or a combination of any two or more of these devices.
- PDA personal data assistant
- PC personal computer
- e-reader media player
- digital camera a digital camera
- video camera video camera
- Session Initiation Protocol (SIP) phone Session Initiation Protocol
- EGPS enhanced general packet radio service
- navigation device an email device
- an email device an email device
- game console any other suitable wireless communication device capable of performing a plurality of tasks including communicating information using a radio technology, or a combination of any two or more of these devices.
- the client device 150 may include one or more gesture input sensors 152 .
- the gesture input sensor 152 may be a touch sensing component (e.g., touch-sensitive screen, touch pad, touch switch, etc.), a motion or location sensing device, or a combination thereof.
- the client device 150 may include an output module (not shown) that conveys information associated with the operation of the server 101 , the test computer 160 or the client device 150 itself.
- the client device 150 may further include a processor, a memory or non-transitory computer-readable media, an interface card, and so forth.
- the memory may store a graphical user interface and/or an Internet browser.
- the memory further stores a record/replay tool 154 for recording and/or replaying gesture events (e.g., touch event) generated upon receiving input from the gesture input sensor 152 .
- the record/replay tool 154 may record gesture events when a user uses one or more fingers, styluses, or any other pointing means, to tap, drag, hold and/or pinch a specified display window or virtual button. Other types of gesture events, such as mouse or keyboard gesture events, may also be recorded.
- the record/replay tool 154 may be written in any programming language, such as a C, C++, Java, JavaScript, Visual Basic, assembler, Perl, any suitable version of 4GL, as well as others. Although not necessary, the record/replay tool 154 may be implemented using JQuery. JQuery refers to a JavaScript Library for HTML document traversing, event handling, animating and Ajax interactions. In addition, the record/replay tool 154 performs the functionality required to interact with the event processing module 122 implemented in the server 101 , as will be described in more detail herein.
- the test computer 160 may be any electronic computer device operable to receive, transmit, process, and store any appropriate data associated with the system 100 of FIG. 1 . Although shown as a single machine, the test computer 160 may be embodied as multiple machines or reside on the same physical machine as the server 101 .
- the test computer 160 serves to perform automated testing of the web application targeted for testing based at least in part on the recorded gesture events.
- the recorded gesture events may be replayed so as to invoke particular functions (e.g., calculation, highlighting, resizing of display, etc.) of the target web application, allowing the tester (or user) to verify if the expected results are obtained.
- the test computer 160 may be, for example, a personal computer, a desktop, a laptop, a touch screen terminal, a workstation, a network computer, a server, etc. One or more processors within these or other devices, or any other suitable processing device, and typically includes many or all of the elements described above relative to server 101 .
- the test computer 160 may also include one or more instances of non-transitory computer readable storage media or memory devices (not shown).
- the non-transitory computer readable storage media may include an automated testing module 162 suitable for interacting with the event processing module 122 over the network.
- the automated testing module 162 may be written in any programming language that enables the module 162 to interact with a web browser, such as a C, C++, Java, JavaScript, Visual Basic, assembler, Perl, any suitable version of 4GL, as well as others. Examples of such interactions include automatically launching the web browser, organizing test cases, capturing test output (e.g., screen capture), verifying test results, generating reports, etc.
- the non-transitory computer readable storage media may further include a record/replay tool 154 , similar to the one described with respect to client device 150 , for replaying gesture events in test cases. More details of these and other exemplary features will be provided in the following sections.
- FIG. 2 shows an exemplary method 200 of recording gesture-based events.
- the method 200 may be implemented by the record/replay tool 154 stored in the client device 150 , as previously described with reference to FIG. 1 . It should be noted that in the following discussion, reference will be made, using like numerals, to the features described in FIG. 1 .
- a test case is opened to record gestures.
- a test case specifies a typical scenario of exercising a web application targeted for testing.
- the test case may specify a specific sequence of steps to be performed by a user of the target web application, as well as some explicit or implicit specification of what constitutes correct, expected or valid behavior of the target web application under the scenario.
- Each test case may be designed to test specific web elements of the target web application.
- the target web application may be executed with the test case as input to check if the target web application yields the expected results.
- opening a test case includes launching one or more test web pages using a web browser.
- the test web page may include one or more embedded links to the target web application, embedded links to other web pages, structural semantics for text and links, images, and/or other web elements (e.g., form fields, executable JavaScript code segments, etc.).
- the test web page includes an embedded link to a mock control module. Upon receipt of the test web page by a web browser, the web browser may execute embedded calls to the mock control module, which then interacts with the target web application in accordance with recorded gesture events.
- the test web page may be launched by specifying a predefined identifier (e.g., uniform resource locator, uniform resource identifier, IP address, etc.) via the web browser, which then retrieves the test web page over the network 132 .
- a predefined identifier e.g., uniform resource locator, uniform resource identifier, IP address, etc.
- the test web page may be automatically launched via the web browser when the user specifies or selects the test case from a list of available test cases.
- the test web page may be stored in server 101 or other web server, or reside locally in the client device 150 (e.g., cache memory).
- the test web page may present a user interface that accepts gesture-based user input and sends the input to the target web application.
- the test case is designed to capture interactions with one or more specific target web elements in the test web page.
- the test web page may include one or more target web elements that the user can interact with using, for example, one or more fingers, hands or other gesture means (e.g. stylus).
- target web elements include virtual buttons in a graphical user interface, predefined regions that support touch or multi-touch input (e.g., drag, pinch open, pinch close, etc.), hyperlinks, links, images, text boxes, pull-down menus, frames, and other web elements.
- the record/replay tool 154 may be embedded as a code segment or file (e.g., JavaScript) in the body of the test web page.
- the user may then activate the record/replay tool 154 to record gesture events by selecting a web element (e.g., virtual button or icon, hyperlink, link, image, text box, pull-down menu, frame, etc.) on the test web page.
- a web element e.g., virtual button or icon, hyperlink, link, image, text box, pull-down menu, frame, etc.
- one or more gesture events are detected in the test case.
- a gesture event is generated when a user interacts with one or more target web elements defined in the test case or test web page.
- the user interaction may be in the form of a gesture that is sensed by the gesture input sensor 152 that results in the generation of one or more gesture events.
- a simple touch gesture may result in the generation of a sequence of gesture events, including a touchstart event, one or more touchmove events and a touchend or touchcancel event. See, for example, Touch Events version 1, W3C Candidate Recommendation 15 Dec. 2011 (available online at http://www.w3.org), which is herein incorporated by reference.
- a touchstart event is detected when a user first places a finger (or other pointing means) on a touch sensitive display (or gesture input sensor) 152 in a region on the test web page that is associated with an event listener (or event handler). When the user moves his finger around the test web page, one or more touchmove events may be detected. When the user lifts his finger off the test web page, a touchend event may be detected.
- a touchcancel event may be detected when regular event handling is interrupted by, for example, locking the touch sensitive display 152 to prevent inadvertent touches. It is understood that other touch or gesture events are also possible. In addition, two or more of the gesture events may occur at substantially the same time, such as in the case of a multi-touch gesture.
- the record/replay tool 154 may register one or more event listeners to be notified of gesture events under each target web element.
- An event listener (or event handler) is generally a callback subroutine that handles or processes inputs (or events) received by a program. In some implementations, one event listener is registered for detecting each type of gesture event.
- the record/replay tool 154 may register, under a target web element, a first event listener to detect a touchstart event, a second event listener to detect a touchmove event, a third event listener to detect a touchend event and a fourth event listener to detect a touchcancel event. Alternatively, a single event listener may be registered for detecting multiple gesture events.
- more than one event listener may be registered for detecting a single kind of gesture event.
- the event listeners may be inserted into the HTML tags of the test web page, such as DIV, CANVAS or other elements that can trigger gesture events.
- Each event listener may execute a scripting language to, for example, call the record/replay tool 154 to perform a recording function each time it detects the respective gesture event.
- the gesture event is recorded.
- the gesture event may be recorded by invoking the event listener associated with the target web element within which the gesture event is detected.
- each gesture event is recorded as a data object (e.g., JavaScript object) or any other suitable data structure.
- the data object saves information about the gesture event, such as the type of event (e.g., touchstart, touchmove, touchend, touchcancel, etc.), event source (e.g., target web element), a unique identifier, the time and location of occurrence (e.g., coordinates of the touch-sensitive display), and so forth.
- the data objects may be stored in the memory of the client device 150 and retrieved for subsequent replay.
- a local log file listing the recorded gesture events may be maintained at the client device 150 .
- Each local log file may correspond to a test case.
- the local log file may be saved in the memory as, for example, a temporary data object (e.g., JavaScript object).
- the local log file may be retrieved from memory during replay to access the recorded gesture events.
- the recorded gesture events may be replayed on the client device 150 to allow the user to verify the recorded events immediately after recording so as to ensure that the gesture events are recorded as desired.
- the recorded gesture events may also be replayed at the test computer 160 , as will be discussed later.
- the replay may include presenting a replay animation, which includes screenshots of the test web page at predetermined time points.
- the predetermined time points may include a start time point, an end time point, and one or more intermittent time points between the start time point and the end time point.
- the start time point may indicate a time point when the replay animation starts (e.g., prior to detecting any gesture events).
- the end time point may indicate a time point when the replay animation ends (e.g., after all gesture events are detected).
- the intermittent time points may be evenly allocated between the start time point and the end time point along the timeline of the replay animation.
- the replay may also include displaying a timeline showing the progression of the replay animation.
- a “Restore” feature may be provided to enable the user to restore the test web page to its original state.
- an application programming interface API
- recorded data may be reused for a different test case simply by editing or revising some of the original recorded data.
- the recorded data is parsed into an event file.
- Each event file may correspond to one or more recorded gestures.
- the event file is formatted as a standard data interchange file.
- the event file may be formatted as a JavaScript Object Notation (JSON) file, which is a lightweight data-interchange format that is widely used for serializing and transmitting structured data over a network connection.
- JSON JavaScript Object Notation
- FIG. 3 a shows an exemplary JSON event file 350 .
- the JSON event file 350 contains recorded data of a simple tap gesture.
- “Type” 352 represents the type of touch event (e.g., touchstart, touchmove, touchend, touchcancel, etc.).
- “Timestamp” 354 records the current time when the touch event occurred.
- “Identifier” 356 represents a unique identification number for each touch point.
- “PageX” and “pageY” 358 are the horizontal and vertical coordinates (in pixels) of the touch point relative to the viewport.
- “Touches,” “targetTouch” and “changedTouches” 360 represent lists of touches for every touch point.
- the record/replay tool 154 sends the event file to the server 101 .
- the record/replay tool 154 uses Asynchronous JavaScript and XML (Ajax) to send the event file to the server 101 .
- Ajax is a group of interrelated web development techniques (e.g., dynamic HTML, JavaScript and/or CSS) used on the client-side to create asynchronous web applications.
- the record/replay tool 154 may send exchange data with the server 101 asynchronously (in the background) without interfering with the display and behavior of the existing web page. It should be appreciated that other technologies may also be used.
- the server 101 may store them in the form of, for example, text files.
- FIG. 3 b shows an exemplary sequence diagram for recording touch events at the client device 150 .
- the record/replay tool 154 registers an event listener 302 under a target web element 304 to be notified of a touch event.
- the target web element 304 generates a new touch event object 306 .
- the listener 302 Upon detecting the new touch event, the listener 302 then handles the new touch event by, for example, recording it.
- FIG. 4 shows an exemplary test web page 400 .
- the test web page 400 may be viewed using a web browser at the client device 150 .
- the user may select the “Start Record” button 402 .
- all supported touch user interactions with the target web element (or HTML canvas) 403 will be recorded automatically.
- the user may, for example, resize (zoom in or out) the view of the target web element by performing a pinch open or close gesture using two fingers.
- the user may select the “Stop Record” button 402 .
- the user can then replay the recorded touch events by selecting the “Replay” button 404 .
- the record/replay tool 154 When the user selects the “Send Records” button 406 , the record/replay tool 154 will generate the event file and send it to the server 101 .
- the “Restore” button 408 allows the user to choose to restore the web page to its original state.
- the “Demo” button 410 when selected, presents an animation to demonstrate the type of gestures that are supported under the target web element 403 .
- FIG. 5 shows an exemplary method 500 of processing the event file.
- the method 500 is executed by the event processing module 122 implemented on server 101 . It should be noted that in the following discussion, reference will be made, using like numerals, to the features described in FIG. 1 .
- the event processing module 122 listens on a predefined port (e.g., HTTPS port 443 ) for a request to upload data.
- a predefined port e.g., HTTPS port 443
- the client device 150 issues a standard HTTP POST request to the server 101 to initiate the upload of the event file.
- the event processing module 122 receives the event file from the client device 150 , which sends it as part of the POST transmission.
- Other data such as other event files or test case information (e.g., names), may also be received from the client device 150 .
- This transaction terminates normally after the transmission is completed.
- the event file may include a JSON file that describes one or more gesture events recorded in a respective test case.
- the event processing module 122 generates a data file based on the event file.
- Each data file may correspond to one or more test cases.
- the data file may be a text (or ASCII) file, a binary file or a file of any other suitable file format compatible with the test computer 160 .
- the data file may include information about the event file and its recorded gesture events, such as the test case name, description, author, recorded data of gesture events, etc.
- the event processing module 122 may further maintain a server log file that keeps track of all the data files generated and the corresponding test case names.
- the event processing module 122 sends the data file to the test computer 160 for performing automated testing.
- Other files or data such as the server log file, may also be sent to the test computer 160 .
- the files may be sent in response to a HTTP GET request from the test computer 160 .
- FIG. 6 shows a method 600 of automated testing.
- the method 600 is performed at the test computer 160 .
- the test computer 160 may be implemented as one or more separate machines, or the same physical machine as the server 101 .
- the automated testing module 162 receives the data file from the server 101 .
- Other files or data such as the server log file, may also be received.
- the data file contains information of recorded gesture events, as well as other types of information.
- the server log file stores information of all the data files and the corresponding test case names.
- a test case is loaded with information retrieved from the data file.
- Information about which data file corresponds to the given test case name may be found in the server log file.
- the test case may be presented in the form of one or more test web pages coded in a markup language, and loaded via a web browser.
- a tester may select and launch the test case by specifying a predefined identifier (e.g., URL, URI, IP address, etc.) via the web browser, which then retrieves the test web page.
- the test web page may be stored in server 101 or other web server, or reside locally in the test computer 160 (e.g., cache memory).
- the test web page may be automatically launched via the web browser when the tester or user specifies or selects a test case name from a list of available test cases.
- the list of available test case names may be retrieved from, for example, the server log file.
- the automated testing module 162 may create one or more native gesture events (e.g., native html event objects).
- the one or more native gesture events are initialized with real recorded data retrieved from the data file.
- a native gesture event may be initialized with the timestamp, type, location, etc. of a corresponding recorded gesture event.
- the timestamps may be used to calculate the time interval between one native gesture event and the subsequent native gesture event, thus allowing the automated testing module 162 to sort and trigger the native gesture events in the recorded time sequence during replay. It should be understood that multiple native gesture events may be simultaneously triggered at one time point, such as in the case of multi-touch gestures.
- the record/replay tool 154 replays the recorded gesture events.
- the record/replay tool 154 may be embedded as a code segment or file (e.g., JavaScript) in the body of the test web page.
- the record/replay tool 154 may be automatically activated upon loading the test web page to replay the gesture events.
- the one or more native gesture events are attached to at least one target web element in the test web page to simulate a real user gesture-based interaction.
- the target web element triggers or invokes a native event listener (or event handler) associated with the target web element to execute the target web application and generate test results.
- the native event listener may be, for example, one or more functions of the target web application. Multiple native gesture events may be triggered in accordance with the recorded time sequence.
- a set of screenshots of the test web page may be taken at predetermined time points along a timeline.
- the predetermined time points may include a start time point, an end time point, and one or more intermittent time points between the start time point and the end time point.
- the start time point may indicate a time point when the replay animation starts (e.g., prior to triggering of any native gesture event).
- the end time point may indicate a time point when the replay animation ends (e.g., after all native gesture events are triggered).
- the intermittent time points may be evenly allocated between the start time point and the end time point along the timeline of the replay animation.
- the screenshots may then be compiled and presented as a replay animation.
- the timeline may also be displayed to show the progression of the replay animation. Other types of visual representations are also useful.
- FIG. 7 shows an exemplary sequence diagram for replaying recorded touch events at the test computer 160 .
- the record/replay tool 154 registers a native listener 706 under a target web element 704 of the test web page to be notified of touch (or gesture) events.
- the record/replay tool 154 creates and initializes a new native event object 708 with the real recorded data retrieved from the data file.
- the native event object 708 represents a simulated gesture-based user interaction.
- the record/replay tool 154 then triggers (e.g., using JQuery) the native event object 708 and attaches it to the target web element 704 in the test web page.
- the native listener 706 invokes the associated event handler to execute one or more functions of the target web application to generate test results.
- the test results are automatically verified by the automated testing module 162 .
- Verification is the process whereby the test results are compared to a benchmark to determine if the target web application is operating correctly or conforming to its specification.
- the aim of such software verification is to determine if the results of handling a simulated gesture event are correct or in accordance with expected behavior. For example, if a user touches a bar in a bar chart, the bar is expected to be highlighted. Accordingly, when such a touch event associated with the bar chart is automatically simulated during replay, the output of the touch event handling is verified by determining if the bar is highlighted. If not, the target web application has a bug that needs to be fixed.
- the results of the verification may be described in a report (e.g., XML document) automatically generated by the automated testing module 162 .
- the automated testing module 162 performs the verification by comparing screenshots of the test web page in the replay animation.
- the replay animation may include screenshots of the test web page at predetermined times.
- the first screenshot (i.e. benchmark) and last screenshot (i.e. test results) of the replay animation are compared.
- the states of the test web page before and after the replay or handling of the simulated gesture event by the target web application may be compared to verify the test results.
- the state of the test web page may be serialized into a string by, for example, concatenating or joining HTML Canvas API commands into a string.
- HTML Canvas refers to a drawable region defined in HTML code which can be used to draw graphics using scripting (e.g., JavaScript) commands. HTML Canvas API commands may be invoked in response to handling of the simulated gesture events. It should be understood that other methods of storing the states of the test web page may also be applied.
- FIG. 8 shows an exemplary test web page 802 .
- the test web page 802 may be viewed using a web browser at the test computer 160 .
- the user may select at least one of the virtual buttons 804 a - d .
- Each virtual button 804 a - d may be labeled with the type of gesture that can be replayed.
- the user may, for example, initiate the replay of a recorded tap gesture, a long press gesture, a pinch gesture or a pan gesture by selecting the respective button 804 a - d .
- the selected recorded gesture may then be replayed within the target web element or canvas 806 .
- an animation illustrating the sequence of recorded gesture events may be presented.
- the recorded gesture events may invoke one or more functions of the target web application to generate test results.
- the test results may then be verified by comparing the first and last screenshots in the replay animation.
- the “Restore” button 808 allows the user to choose to restore the web page 802 to its original state.
- the software code 810 for simulating the recorded gesture events may be displayed for editing.
- the tester may modify the code by, for example, changing the timestamp, setting new touch positions (e.g., location of each graph column 812 ), and so forth.
- the recorded data or code for simulating the gesture events may be reused for automated testing at the test computer 160 many times and in different test cases.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Description
- The present disclosure relates generally to software testing.
- With the rapid development of mobile computing devices (e.g., smartphones, tablet computers, e-readers, music players, etc.), software programs running on these platforms have become very popular. Different from desktop software programs that interface with users using the traditional keyboard and mouse, these mobile software programs typically include support for tactile user interfaces that are controlled by touch, multi-touch (e.g., tap, pinch, etc.), and other gesture events.
- The testing of such mobile programs poses some real challenges. Native programs that are installed locally in the mobile device are easier to test, because a primal simulator is typically included in the software development kit (SDK). Web applications that load via a web browser, however, are more difficult to test automatically, without native support and common application programming interfaces (APIs) for multi-touch gestures. The tools that support testing multi-touch events in web applications are limited, and software testers often have to test such applications manually. Manual testing can be a very tedious, error-prone and costly process. The tests are typically very difficult to reproduce and maintain, and can be extremely time consuming.
- Thus, a need exists for systems, methods, and apparatuses to address the shortfalls of current technology, and to provide other new and innovative features.
- A computer-implemented technology for facilitating testing of a web application is described herein. In some implementations, a data file including recorded data of one or more recorded gesture events is received. A test case is loaded with the recorded data. The one or more recorded gesture events are replayed in the test case and the web application is executed to generate test results.
- With these and other advantages and features that will become hereinafter apparent, further information may be obtained by reference to the following detailed description and appended claims, and to the figures attached hereto.
- Some embodiments are illustrated in the accompanying figures. Like reference numerals in the figures designate like parts.
-
FIG. 1 is a block diagram illustrating an exemplary system; -
FIG. 2 shows an exemplary method of recording gesture-based events; -
FIG. 3 a shows an exemplary JSON event file; -
FIG. 3 b shows an exemplary sequence diagram for recording touch events at the client device; -
FIG. 4 shows an exemplary test web page; -
FIG. 5 shows an exemplary method of processing an event file; -
FIG. 6 shows a method of automated testing; -
FIG. 7 shows an exemplary sequence diagram for replaying recorded touch events at the test computer; and -
FIG. 8 shows another exemplary test web page. - In the following description, for purposes of explanation, specific numbers, materials and configurations are set forth in order to provide a thorough understanding of the present frameworks and methods and in order to meet statutory written description, enablement, and best-mode requirements. However, it will be apparent to one skilled in the art that the present frameworks and methods may be practiced without the specific exemplary details. In other instances, well-known features are omitted or simplified to clarify the description of the exemplary implementations of present frameworks and methods, and to thereby better explain the present frameworks and methods. Furthermore, for ease of understanding, certain method steps are delineated as separate steps; however, these separately delineated steps should not be construed as necessarily order dependent or being separate in their performance.
- Systems, methods, and apparatuses for facilitating testing of gesture-based software in a test automation framework are described herein. The test automation framework may be provided to perform testing of gesture-based web applications that would otherwise need to be performed manually. Web applications, as used herein, refer to software programs that are coded in a browser-supported language (e.g., JavaScript, Hypertext Markup Language (HTML), Extensible Markup Language (XML), the Extensible Hypertext Markup Language (XHTML), Cascading Style Sheet (CSS), and JAVA, etc.) and rely on a common web browser (e.g., MICROSOFT WINDOWS INTERNET EXPLORER, MOZILLA FIREFOX, APPLE SAFARI, GOOGLE CHROME, OPERA, etc.) or other client application over a network, to render them executable.
- Gesture-based web applications support the use of gestures, such as touch, multi-touch, or physical movement, as input during a user interaction. Conventional technology simulates gesture events either programmatically (e.g., using a test script), or using traditional input triggers (e.g., mouse or keyboard). However, it is difficult and tedious to simulate all the different types of gesture inputs. Unlike conventional technology, the present technology simulates gesture events by using real recorded data, and therefore is not limited to the types of gestures that can be simulated programmatically or by traditional input triggers. It can support any type of gesture input that is accepted by the web application being tested, such as a multi-touch gesture that requires the use of more than one finger or other pointing means (e.g., pinch open/close, two finger tap, touch and swipe, etc.).
- Implementations described herein automatically record, as test scenarios, gesture-based user interactions with a web application accessed via, for example, a mobile device. The recorded data may be formatted and stored for subsequent retrieval. During automated software testing, the recorded data is used to trigger gesture events on the mobile device, desktop or any other test device that support World Wide Web Consortium (W3C) standard touch events. These, and other exemplary features, will be discussed in more details in the following sections.
-
FIG. 1 is a block diagram illustrating anexemplary system 100 that implements the framework described herein. Thesystem 100 generally includes aserver 101, aclient device 150, atest computer 160, at least some of which are communicatively coupled through anetwork 132. In some instances, theserver 101 andtest computer 160 are co-located or implemented on the same physical machine. Although shown as a single machine, theserver 101 may include more than one server, such as a server pool. Two ormore client devices 150 may also operate in thesystem 100. - Turning to the
server 101 in more detail, it may include, a non-transitory computer-readable media ormemory 112, a central processing unit (CPU) 114, an input-output unit 113, and acommunication card 116. Non-transitory computer-readable media 112 may store machine-executable instructions, data, and various programs, such as an operating system (not shown), web services, anevent processing module 122 for implementing the techniques described herein, all of which may be processed byCPU 114. As such, theserver 101 is a general-purpose computer system that becomes a specific purpose computer system when executing the machine-executable instructions. Alternatively, the event processing module described herein may be implemented as part of a software product or application, which is executed via the operating system. The application may be integrated into an existing software application, such as an add-on or plug-in to an existing application, or as a separate application. The existing software application may be a suite of software applications. It should be noted that theevent processing module 122 may be hosted in whole or in part by different computer systems in some implementations. Thus, the techniques described herein may occur locally on theserver 101, or may occur in other computer systems and be reported toserver 101. - Each computer program may be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired. The language may be a compiled or interpreted language. The machine-executable instructions are not intended to be limited to any particular programming language and implementation thereof. It will be appreciated that a variety of programming languages and coding thereof may be used to implement the teachings of the disclosure contained herein.
- Non-transitory computer-
readable media 112 may be any form of memory device, including by way of example semiconductor memory devices, such as Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), and flash memory devices; magnetic disks such as internal hard disks and removable disks, magneto-optical disks, and Compact Disc Read-Only Memory (CD-ROM). -
Server 101 may be communicatively coupled to an input device (e.g., keyboard, touch screen or mouse) and a display device (e.g., monitor or screen) via the I/O unit 113. In addition,Server 101 may also include other devices such as a communications card or device (e.g., a modem and/or a network adapter) for exchanging data with a network using a communications link (e.g., a telephone line, a wireless network link, a wired network link, or a cable network), and other support circuits (e.g., a cache, power supply, clock circuits, communications bus, etc.). In addition, any of the foregoing may be supplemented by, or incorporated in, application-specific integrated circuits. -
Server 101 may operate in a networked environment using logical connections to one ormore client devices 150 and testcomputers 160 over one or moreintermediate networks 132. Thesenetworks 132 generally represent any protocols, adapters, components, and other general infrastructure associated with wired and/or wireless communications networks.Such networks 132 may be global, regional, local, and/or personal in scope and nature, as appropriate in different implementations. Thenetwork 132 may be all or a portion of an enterprise or secured network, while in another instance, at least a portion of thenetwork 132 may represent a connection to the Internet. In some instances, a portion of the network may be a virtual private network (VPN). Thenetwork 132 may communicate, for example, Internet Protocol (IP) packets, Frame Relay frames, Asynchronous Transfer Mode (ATM) cells, voice, video, data, and other suitable information between network addresses. Thenetwork 132 may also include one or more local area networks (LANs), radio access networks (RANs), metropolitan area networks (MANs), wide area networks (WANs), all or a portion of the World Wide Web (Internet), and/or any other communication system or systems at one or more locations. - In general, the
client device 150 may be any computing device operable to connect to or communicate with at least theserver 101, thetest computer 160, and/or thenetwork 132 using a wired or wireless connection. In some implementations, theclient device 150 may be a mobile device that can be used by an end-user to communicate information using radio technology. Themobile device 150 may be a cellular phone, personal data assistant (PDA), smartphone, laptop, tablet personal computer (PC), e-reader, media player, a digital camera, a video camera, Session Initiation Protocol (SIP) phone, touch screen terminal, enhanced general packet radio service (EGPRS) mobile phone, navigation device, an email device, a game console, any other suitable wireless communication device capable of performing a plurality of tasks including communicating information using a radio technology, or a combination of any two or more of these devices. - The
client device 150 may include one or moregesture input sensors 152. Thegesture input sensor 152 may be a touch sensing component (e.g., touch-sensitive screen, touch pad, touch switch, etc.), a motion or location sensing device, or a combination thereof. Further, theclient device 150 may include an output module (not shown) that conveys information associated with the operation of theserver 101, thetest computer 160 or theclient device 150 itself. - The
client device 150 may further include a processor, a memory or non-transitory computer-readable media, an interface card, and so forth. The memory may store a graphical user interface and/or an Internet browser. In some implementations, the memory further stores a record/replay tool 154 for recording and/or replaying gesture events (e.g., touch event) generated upon receiving input from thegesture input sensor 152. For example, the record/replay tool 154 may record gesture events when a user uses one or more fingers, styluses, or any other pointing means, to tap, drag, hold and/or pinch a specified display window or virtual button. Other types of gesture events, such as mouse or keyboard gesture events, may also be recorded. The record/replay tool 154 may be written in any programming language, such as a C, C++, Java, JavaScript, Visual Basic, assembler, Perl, any suitable version of 4GL, as well as others. Although not necessary, the record/replay tool 154 may be implemented using JQuery. JQuery refers to a JavaScript Library for HTML document traversing, event handling, animating and Ajax interactions. In addition, the record/replay tool 154 performs the functionality required to interact with theevent processing module 122 implemented in theserver 101, as will be described in more detail herein. - The
test computer 160 may be any electronic computer device operable to receive, transmit, process, and store any appropriate data associated with thesystem 100 ofFIG. 1 . Although shown as a single machine, thetest computer 160 may be embodied as multiple machines or reside on the same physical machine as theserver 101. Thetest computer 160 serves to perform automated testing of the web application targeted for testing based at least in part on the recorded gesture events. The recorded gesture events may be replayed so as to invoke particular functions (e.g., calculation, highlighting, resizing of display, etc.) of the target web application, allowing the tester (or user) to verify if the expected results are obtained. - The
test computer 160 may be, for example, a personal computer, a desktop, a laptop, a touch screen terminal, a workstation, a network computer, a server, etc. One or more processors within these or other devices, or any other suitable processing device, and typically includes many or all of the elements described above relative toserver 101. Thetest computer 160 may also include one or more instances of non-transitory computer readable storage media or memory devices (not shown). The non-transitory computer readable storage media may include anautomated testing module 162 suitable for interacting with theevent processing module 122 over the network. Theautomated testing module 162 may be written in any programming language that enables themodule 162 to interact with a web browser, such as a C, C++, Java, JavaScript, Visual Basic, assembler, Perl, any suitable version of 4GL, as well as others. Examples of such interactions include automatically launching the web browser, organizing test cases, capturing test output (e.g., screen capture), verifying test results, generating reports, etc. In addition, the non-transitory computer readable storage media may further include a record/replay tool 154, similar to the one described with respect toclient device 150, for replaying gesture events in test cases. More details of these and other exemplary features will be provided in the following sections. -
FIG. 2 shows anexemplary method 200 of recording gesture-based events. Themethod 200 may be implemented by the record/replay tool 154 stored in theclient device 150, as previously described with reference toFIG. 1 . It should be noted that in the following discussion, reference will be made, using like numerals, to the features described inFIG. 1 . - At 202, a test case is opened to record gestures. Generally, a test case specifies a typical scenario of exercising a web application targeted for testing. For example, the test case may specify a specific sequence of steps to be performed by a user of the target web application, as well as some explicit or implicit specification of what constitutes correct, expected or valid behavior of the target web application under the scenario. Each test case may be designed to test specific web elements of the target web application. The target web application may be executed with the test case as input to check if the target web application yields the expected results.
- In some implementations, opening a test case includes launching one or more test web pages using a web browser. The test web page may include one or more embedded links to the target web application, embedded links to other web pages, structural semantics for text and links, images, and/or other web elements (e.g., form fields, executable JavaScript code segments, etc.). In one implementation, the test web page includes an embedded link to a mock control module. Upon receipt of the test web page by a web browser, the web browser may execute embedded calls to the mock control module, which then interacts with the target web application in accordance with recorded gesture events.
- The test web page may be launched by specifying a predefined identifier (e.g., uniform resource locator, uniform resource identifier, IP address, etc.) via the web browser, which then retrieves the test web page over the
network 132. Alternatively, the test web page may be automatically launched via the web browser when the user specifies or selects the test case from a list of available test cases. The test web page may be stored inserver 101 or other web server, or reside locally in the client device 150 (e.g., cache memory). The test web page may present a user interface that accepts gesture-based user input and sends the input to the target web application. - In some implementations, the test case is designed to capture interactions with one or more specific target web elements in the test web page. More particularly, the test web page may include one or more target web elements that the user can interact with using, for example, one or more fingers, hands or other gesture means (e.g. stylus). Exemplary target web elements include virtual buttons in a graphical user interface, predefined regions that support touch or multi-touch input (e.g., drag, pinch open, pinch close, etc.), hyperlinks, links, images, text boxes, pull-down menus, frames, and other web elements.
- The record/
replay tool 154 may be embedded as a code segment or file (e.g., JavaScript) in the body of the test web page. The user may then activate the record/replay tool 154 to record gesture events by selecting a web element (e.g., virtual button or icon, hyperlink, link, image, text box, pull-down menu, frame, etc.) on the test web page. - At 204, one or more gesture events are detected in the test case. A gesture event is generated when a user interacts with one or more target web elements defined in the test case or test web page. The user interaction may be in the form of a gesture that is sensed by the
gesture input sensor 152 that results in the generation of one or more gesture events. For example, a simple touch gesture may result in the generation of a sequence of gesture events, including a touchstart event, one or more touchmove events and a touchend or touchcancel event. See, for example, Touch Events version 1, W3C Candidate Recommendation 15 Dec. 2011 (available online at http://www.w3.org), which is herein incorporated by reference. A touchstart event is detected when a user first places a finger (or other pointing means) on a touch sensitive display (or gesture input sensor) 152 in a region on the test web page that is associated with an event listener (or event handler). When the user moves his finger around the test web page, one or more touchmove events may be detected. When the user lifts his finger off the test web page, a touchend event may be detected. A touchcancel event may be detected when regular event handling is interrupted by, for example, locking the touchsensitive display 152 to prevent inadvertent touches. It is understood that other touch or gesture events are also possible. In addition, two or more of the gesture events may occur at substantially the same time, such as in the case of a multi-touch gesture. - The record/
replay tool 154 may register one or more event listeners to be notified of gesture events under each target web element. An event listener (or event handler) is generally a callback subroutine that handles or processes inputs (or events) received by a program. In some implementations, one event listener is registered for detecting each type of gesture event. The record/replay tool 154 may register, under a target web element, a first event listener to detect a touchstart event, a second event listener to detect a touchmove event, a third event listener to detect a touchend event and a fourth event listener to detect a touchcancel event. Alternatively, a single event listener may be registered for detecting multiple gesture events. Even further, more than one event listener may be registered for detecting a single kind of gesture event. The event listeners may be inserted into the HTML tags of the test web page, such as DIV, CANVAS or other elements that can trigger gesture events. Each event listener may execute a scripting language to, for example, call the record/replay tool 154 to perform a recording function each time it detects the respective gesture event. - Referring back to
FIG. 2 , at 206, the gesture event is recorded. The gesture event may be recorded by invoking the event listener associated with the target web element within which the gesture event is detected. In some implementations, each gesture event is recorded as a data object (e.g., JavaScript object) or any other suitable data structure. The data object saves information about the gesture event, such as the type of event (e.g., touchstart, touchmove, touchend, touchcancel, etc.), event source (e.g., target web element), a unique identifier, the time and location of occurrence (e.g., coordinates of the touch-sensitive display), and so forth. The data objects may be stored in the memory of theclient device 150 and retrieved for subsequent replay. A local log file listing the recorded gesture events may be maintained at theclient device 150. Each local log file may correspond to a test case. The local log file may be saved in the memory as, for example, a temporary data object (e.g., JavaScript object). The local log file may be retrieved from memory during replay to access the recorded gesture events. - More particularly, the recorded gesture events may be replayed on the
client device 150 to allow the user to verify the recorded events immediately after recording so as to ensure that the gesture events are recorded as desired. The recorded gesture events may also be replayed at thetest computer 160, as will be discussed later. The replay may include presenting a replay animation, which includes screenshots of the test web page at predetermined time points. The predetermined time points may include a start time point, an end time point, and one or more intermittent time points between the start time point and the end time point. The start time point may indicate a time point when the replay animation starts (e.g., prior to detecting any gesture events). The end time point may indicate a time point when the replay animation ends (e.g., after all gesture events are detected). The intermittent time points may be evenly allocated between the start time point and the end time point along the timeline of the replay animation. The replay may also include displaying a timeline showing the progression of the replay animation. - Other features may also be provided at the
client device 150. For example, after the user performs certain gestures (e.g., pinch-in to zoom in), the view of the displayed test web page may have changed. A “Restore” feature may be provided to enable the user to restore the test web page to its original state. In addition, an application programming interface (API) may be provided to allow the user to modify or customize the underlying recorded data that represents the recorded gesture events. With this API, recorded data may be reused for a different test case simply by editing or revising some of the original recorded data. - At 208, if the user is not satisfied with the recorded gesture events,
steps -
FIG. 3 a shows an exemplaryJSON event file 350. TheJSON event file 350 contains recorded data of a simple tap gesture. “Type” 352 represents the type of touch event (e.g., touchstart, touchmove, touchend, touchcancel, etc.). “Timestamp” 354 records the current time when the touch event occurred. “Identifier” 356 represents a unique identification number for each touch point. “PageX” and “pageY” 358 are the horizontal and vertical coordinates (in pixels) of the touch point relative to the viewport. “Touches,” “targetTouch” and “changedTouches” 360 represent lists of touches for every touch point. - Referring back to
FIG. 2 , at 212, the record/replay tool 154 sends the event file to theserver 101. In some implementations, the record/replay tool 154 uses Asynchronous JavaScript and XML (Ajax) to send the event file to theserver 101. Ajax is a group of interrelated web development techniques (e.g., dynamic HTML, JavaScript and/or CSS) used on the client-side to create asynchronous web applications. With Ajax, the record/replay tool 154 may send exchange data with theserver 101 asynchronously (in the background) without interfering with the display and behavior of the existing web page. It should be appreciated that other technologies may also be used. Once theserver 101 receives the event file, it may store them in the form of, for example, text files. -
FIG. 3 b shows an exemplary sequence diagram for recording touch events at theclient device 150. First, the record/replay tool 154 registers anevent listener 302 under atarget web element 304 to be notified of a touch event. Subsequently, when theuser 308 interacts with thetarget web element 304 specified in the test web page by, for example, touching the touch sensitive display of theclient device 150, thetarget web element 304 generates a newtouch event object 306. Upon detecting the new touch event, thelistener 302 then handles the new touch event by, for example, recording it. -
FIG. 4 shows an exemplarytest web page 400. Thetest web page 400 may be viewed using a web browser at theclient device 150. To start recording gesture events, the user may select the “Start Record” button 402. Subsequently, all supported touch user interactions with the target web element (or HTML canvas) 403 will be recorded automatically. The user may, for example, resize (zoom in or out) the view of the target web element by performing a pinch open or close gesture using two fingers. To stop the recording, the user may select the “Stop Record” button 402. The user can then replay the recorded touch events by selecting the “Replay” button 404. When the user selects the “Send Records” button 406, the record/replay tool 154 will generate the event file and send it to theserver 101. The “Restore”button 408 allows the user to choose to restore the web page to its original state. The “Demo”button 410, when selected, presents an animation to demonstrate the type of gestures that are supported under thetarget web element 403. -
FIG. 5 shows anexemplary method 500 of processing the event file. In some implementations, themethod 500 is executed by theevent processing module 122 implemented onserver 101. It should be noted that in the following discussion, reference will be made, using like numerals, to the features described inFIG. 1 . - At 502, the
event processing module 122 listens on a predefined port (e.g., HTTPS port 443) for a request to upload data. In some implementations, theclient device 150 issues a standard HTTP POST request to theserver 101 to initiate the upload of the event file. - At 504, the
event processing module 122 receives the event file from theclient device 150, which sends it as part of the POST transmission. Other data, such as other event files or test case information (e.g., names), may also be received from theclient device 150. This transaction terminates normally after the transmission is completed. As discussed previously, the event file may include a JSON file that describes one or more gesture events recorded in a respective test case. - At 506, the
event processing module 122 generates a data file based on the event file. Each data file may correspond to one or more test cases. The data file may be a text (or ASCII) file, a binary file or a file of any other suitable file format compatible with thetest computer 160. The data file may include information about the event file and its recorded gesture events, such as the test case name, description, author, recorded data of gesture events, etc. In addition, theevent processing module 122 may further maintain a server log file that keeps track of all the data files generated and the corresponding test case names. - At 508, the
event processing module 122 sends the data file to thetest computer 160 for performing automated testing. Other files or data, such as the server log file, may also be sent to thetest computer 160. The files may be sent in response to a HTTP GET request from thetest computer 160. -
FIG. 6 shows amethod 600 of automated testing. In some implementations, themethod 600 is performed at thetest computer 160. As discussed previously, thetest computer 160 may be implemented as one or more separate machines, or the same physical machine as theserver 101. - At 602, the automated
testing module 162 receives the data file from theserver 101. Other files or data, such as the server log file, may also be received. As discussed previously, the data file contains information of recorded gesture events, as well as other types of information. The server log file stores information of all the data files and the corresponding test case names. - At 604, a test case is loaded with information retrieved from the data file. Information about which data file corresponds to the given test case name may be found in the server log file. As discussed previously, the test case may be presented in the form of one or more test web pages coded in a markup language, and loaded via a web browser. A tester may select and launch the test case by specifying a predefined identifier (e.g., URL, URI, IP address, etc.) via the web browser, which then retrieves the test web page. The test web page may be stored in
server 101 or other web server, or reside locally in the test computer 160 (e.g., cache memory). Alternatively, the test web page may be automatically launched via the web browser when the tester or user specifies or selects a test case name from a list of available test cases. The list of available test case names may be retrieved from, for example, the server log file. - Once the test case is loaded, the automated
testing module 162 may create one or more native gesture events (e.g., native html event objects). The one or more native gesture events are initialized with real recorded data retrieved from the data file. For example, a native gesture event may be initialized with the timestamp, type, location, etc. of a corresponding recorded gesture event. The timestamps may be used to calculate the time interval between one native gesture event and the subsequent native gesture event, thus allowing the automatedtesting module 162 to sort and trigger the native gesture events in the recorded time sequence during replay. It should be understood that multiple native gesture events may be simultaneously triggered at one time point, such as in the case of multi-touch gestures. - At 606, the record/
replay tool 154 replays the recorded gesture events. The record/replay tool 154 may be embedded as a code segment or file (e.g., JavaScript) in the body of the test web page. The record/replay tool 154 may be automatically activated upon loading the test web page to replay the gesture events. During replay, the one or more native gesture events are attached to at least one target web element in the test web page to simulate a real user gesture-based interaction. The target web element triggers or invokes a native event listener (or event handler) associated with the target web element to execute the target web application and generate test results. The native event listener may be, for example, one or more functions of the target web application. Multiple native gesture events may be triggered in accordance with the recorded time sequence. - A set of screenshots of the test web page may be taken at predetermined time points along a timeline. The predetermined time points may include a start time point, an end time point, and one or more intermittent time points between the start time point and the end time point. The start time point may indicate a time point when the replay animation starts (e.g., prior to triggering of any native gesture event). The end time point may indicate a time point when the replay animation ends (e.g., after all native gesture events are triggered). The intermittent time points may be evenly allocated between the start time point and the end time point along the timeline of the replay animation. The screenshots may then be compiled and presented as a replay animation. The timeline may also be displayed to show the progression of the replay animation. Other types of visual representations are also useful.
-
FIG. 7 shows an exemplary sequence diagram for replaying recorded touch events at thetest computer 160. The record/replay tool 154 registers anative listener 706 under atarget web element 704 of the test web page to be notified of touch (or gesture) events. After theuser 702 activates the record/replay tool 154, the record/replay tool 154 creates and initializes a newnative event object 708 with the real recorded data retrieved from the data file. Thenative event object 708 represents a simulated gesture-based user interaction. The record/replay tool 154 then triggers (e.g., using JQuery) thenative event object 708 and attaches it to thetarget web element 704 in the test web page. Upon detecting thenative event object 708, thenative listener 706 invokes the associated event handler to execute one or more functions of the target web application to generate test results. - Referring back to
FIG. 6 , at 608, the test results are automatically verified by the automatedtesting module 162. Verification is the process whereby the test results are compared to a benchmark to determine if the target web application is operating correctly or conforming to its specification. The aim of such software verification is to determine if the results of handling a simulated gesture event are correct or in accordance with expected behavior. For example, if a user touches a bar in a bar chart, the bar is expected to be highlighted. Accordingly, when such a touch event associated with the bar chart is automatically simulated during replay, the output of the touch event handling is verified by determining if the bar is highlighted. If not, the target web application has a bug that needs to be fixed. The results of the verification may be described in a report (e.g., XML document) automatically generated by the automatedtesting module 162. - In some implementations, the automated
testing module 162 performs the verification by comparing screenshots of the test web page in the replay animation. As discussed previously, the replay animation may include screenshots of the test web page at predetermined times. In some implementations, the first screenshot (i.e. benchmark) and last screenshot (i.e. test results) of the replay animation are compared. - Alternatively, the states of the test web page before and after the replay or handling of the simulated gesture event by the target web application may be compared to verify the test results. The state of the test web page may be serialized into a string by, for example, concatenating or joining HTML Canvas API commands into a string. HTML Canvas refers to a drawable region defined in HTML code which can be used to draw graphics using scripting (e.g., JavaScript) commands. HTML Canvas API commands may be invoked in response to handling of the simulated gesture events. It should be understood that other methods of storing the states of the test web page may also be applied. By comparing the page states before and after the handling of the simulated gesture event, errors introduced by the event handling may be detected.
-
FIG. 8 shows an exemplarytest web page 802. Thetest web page 802 may be viewed using a web browser at thetest computer 160. To replay recorded gesture events, the user may select at least one of the virtual buttons 804 a-d. Each virtual button 804 a-d may be labeled with the type of gesture that can be replayed. The user may, for example, initiate the replay of a recorded tap gesture, a long press gesture, a pinch gesture or a pan gesture by selecting the respective button 804 a-d. The selected recorded gesture may then be replayed within the target web element orcanvas 806. During the replay, an animation illustrating the sequence of recorded gesture events may be presented. - The recorded gesture events may invoke one or more functions of the target web application to generate test results. The test results may then be verified by comparing the first and last screenshots in the replay animation. The “Restore” button 808 allows the user to choose to restore the
web page 802 to its original state. Thesoftware code 810 for simulating the recorded gesture events may be displayed for editing. The tester may modify the code by, for example, changing the timestamp, setting new touch positions (e.g., location of each graph column 812), and so forth. Hence, by recording the gesture events only once at theclient device 150, the recorded data or code for simulating the gesture events may be reused for automated testing at thetest computer 160 many times and in different test cases. - Although the one or more above-described implementations have been described in language specific to structural features and/or methodological steps, it is to be understood that other implementations may be practiced without the specific features or steps described. Rather, the specific features and steps are disclosed as preferred forms of one or more implementations.
Claims (20)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210449497 | 2012-11-12 | ||
CN201210449497.6A CN103810089B (en) | 2012-11-12 | 2012-11-12 | Automatically testing gesture-based applications |
CN201210449497.6 | 2012-11-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
US20140132571A1 true US20140132571A1 (en) | 2014-05-15 |
US9342237B2 US9342237B2 (en) | 2016-05-17 |
Family
ID=50681245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/688,243 Active 2033-05-07 US9342237B2 (en) | 2012-11-12 | 2012-11-29 | Automated testing of gesture-based applications |
Country Status (2)
Country | Link |
---|---|
US (1) | US9342237B2 (en) |
CN (1) | CN103810089B (en) |
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150015505A1 (en) * | 2013-07-09 | 2015-01-15 | Lg Electronics Inc. | Mobile terminal and controlling method thereof |
US20150248388A1 (en) * | 2014-02-28 | 2015-09-03 | Microsoft Corporation | Gestural annotations |
US9201591B1 (en) * | 2015-05-19 | 2015-12-01 | Synack, Inc. | Automated coverage monitoring of mobile applications |
US20150347270A1 (en) * | 2014-05-28 | 2015-12-03 | National Central University | Automatic test system and test method for computer, record medium, and program product |
US20150363304A1 (en) * | 2014-06-17 | 2015-12-17 | Kishan Nagamalla | Self-learning and self-validating declarative testing |
US9317398B1 (en) * | 2014-06-24 | 2016-04-19 | Amazon Technologies, Inc. | Vendor and version independent browser driver |
US9336126B1 (en) * | 2014-06-24 | 2016-05-10 | Amazon Technologies, Inc. | Client-side event logging for heterogeneous client environments |
US20160170945A1 (en) * | 2014-12-16 | 2016-06-16 | Kabushiki Kaisha Toshiba | Information processing device, information processing method, and computer program product |
US20160209996A1 (en) * | 2013-09-19 | 2016-07-21 | Hewlett Packard Enterprise Development Lp | Application menu modification recommendations |
US20160209989A1 (en) * | 2013-09-30 | 2016-07-21 | Jin-Feng Luan | Record and replay of operations on graphical objects |
US9430361B1 (en) | 2014-06-24 | 2016-08-30 | Amazon Technologies, Inc. | Transition testing model for heterogeneous client environments |
US20160306520A1 (en) * | 2014-06-04 | 2016-10-20 | International Business Machines Corporation | Touch prediction for visual displays |
US20160364321A1 (en) * | 2014-02-20 | 2016-12-15 | Hewlett Packard Enterprise Development Lp | Emulating a user performing spatial gestures |
CN107193734A (en) * | 2017-05-17 | 2017-09-22 | 上海交通大学 | The playback method and playback system applied for mobile Web |
CN108399125A (en) * | 2018-02-08 | 2018-08-14 | 深圳壹账通智能科技有限公司 | Automated testing method, device, computer equipment and storage medium |
US20180232100A1 (en) * | 2017-02-15 | 2018-08-16 | Honeywell International Inc. | Touch detector with a code debugger |
US10097565B1 (en) | 2014-06-24 | 2018-10-09 | Amazon Technologies, Inc. | Managing browser security in a testing context |
US20190034173A1 (en) * | 2016-10-26 | 2019-01-31 | Soroco Private Limited | Systems and methods for discovering automatable tasks |
US10289533B2 (en) | 2017-08-30 | 2019-05-14 | Sap Se | Managing extraction of data for testing |
CN110569184A (en) * | 2019-07-31 | 2019-12-13 | 重庆小雨点小额贷款有限公司 | test method and terminal equipment |
US10853232B2 (en) | 2018-01-19 | 2020-12-01 | Spirent Communications, Inc. | Adaptive system for mobile device testing |
US11023363B2 (en) | 2016-03-11 | 2021-06-01 | Spirent Communications, Inc. | Performance test application sequence script |
CN113254338A (en) * | 2021-05-25 | 2021-08-13 | 深圳前海微众银行股份有限公司 | Test case generation method, device and equipment |
US20210263716A1 (en) * | 2014-12-30 | 2021-08-26 | Open Text Corporation | Method and system for implementing custom ui actions in a web application using hidden containers |
CN113535029A (en) * | 2021-07-30 | 2021-10-22 | 西安闻泰电子科技有限公司 | Operation recording method, terminal, computer device and computer-readable storage medium |
US20220050769A1 (en) * | 2019-11-27 | 2022-02-17 | Tencent Technology (Shenzhen) Company Limited | Program testing method and apparatus, computer device, and storage medium |
US11341030B2 (en) * | 2018-09-27 | 2022-05-24 | Sap Se | Scriptless software test automation |
US11363108B2 (en) * | 2019-06-13 | 2022-06-14 | FullStory, Inc. | Network latency detection |
US20220269586A1 (en) * | 2021-02-24 | 2022-08-25 | Applause App Quality, Inc. | Systems and methods for automating test and validity |
CN115001991A (en) * | 2022-08-02 | 2022-09-02 | 北京聚合盈创科技有限公司 | Recording method and device based on performance test and storage medium |
CN115145464A (en) * | 2022-07-28 | 2022-10-04 | 重庆长安汽车股份有限公司 | Page testing method and device, electronic equipment and storage medium |
US11816112B1 (en) | 2020-04-03 | 2023-11-14 | Soroco India Private Limited | Systems and methods for automated process discovery |
US11907104B1 (en) * | 2021-01-11 | 2024-02-20 | Wells Fargo Bank, N.A. | Service virtualization |
US12020046B1 (en) | 2021-04-02 | 2024-06-25 | Soroco India Private Limited | Systems and methods for automated process discovery |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156308B (en) * | 2014-07-29 | 2017-02-15 | 南京大学 | Mobile application testing method on basis of playback of execution trace of users |
EP3235881A4 (en) * | 2014-12-16 | 2018-06-13 | G-Cover De México, S.A. De C.V. | Fire-resistant, insulating, ecological and corrosion-inhibiting coating |
US9720592B2 (en) * | 2015-03-19 | 2017-08-01 | International Business Machines Corporation | Mobile gesture reporting and replay with unresponsive gestures identification and analysis |
CN104699408A (en) * | 2015-04-01 | 2015-06-10 | 广东欧珀移动通信有限公司 | Touch screen operation method, device and touch device |
CN105975367B (en) * | 2016-04-29 | 2022-03-25 | 腾讯科技(深圳)有限公司 | Test method and device for mobile equipment |
CN107357586B (en) * | 2017-07-14 | 2018-06-05 | 腾讯科技(深圳)有限公司 | Control method, device and the equipment of application program |
CN107577611A (en) * | 2017-11-01 | 2018-01-12 | 四川久远银海软件股份有限公司 | Using debugging apparatus and method |
US10936475B2 (en) | 2018-11-05 | 2021-03-02 | Sap Se | Automated scripting and testing system |
CN109948091A (en) * | 2019-03-20 | 2019-06-28 | 网宿科技股份有限公司 | Web page processing method and client device |
CN113760586B (en) * | 2020-08-24 | 2024-11-15 | 北京沃东天骏信息技术有限公司 | A method and device for detecting an image |
CN117424843B (en) * | 2023-12-18 | 2024-02-13 | 北京华峰测控技术股份有限公司 | Management method, management device and ATE test system |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110191676A1 (en) * | 2010-01-29 | 2011-08-04 | Microsoft Corporation | Cross-Browser Interactivity Recording, Playback, and Editing |
US20110310041A1 (en) * | 2010-06-21 | 2011-12-22 | Apple Inc. | Testing a Touch-Input Program |
US20120054715A1 (en) * | 2010-08-31 | 2012-03-01 | Dan Welchman | System and method for use in replaying software application events |
US20130127877A1 (en) * | 2011-02-28 | 2013-05-23 | Joaquin Cruz Blas, JR. | Parameterizing Animation Timelines |
US20130273853A1 (en) * | 2012-04-16 | 2013-10-17 | Mobile Experience Solutions, Inc. | Mobile device monitoring and testing |
US20130290786A1 (en) * | 2012-04-26 | 2013-10-31 | International Business Machines Corporation | Automated testing of applications with scripting code |
US20140045483A1 (en) * | 2012-08-08 | 2014-02-13 | Nokia Corporation | Methods, apparatuses and computer program products for automating testing of devices |
US20140089904A1 (en) * | 2012-09-26 | 2014-03-27 | Compuware Corporation | Technique for simulating an orientation change event in a test environment |
US9154611B1 (en) * | 2006-08-14 | 2015-10-06 | Soasta, Inc. | Functional test automation for gesture-based mobile applications |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8433733B2 (en) * | 2010-01-13 | 2013-04-30 | Vmware, Inc. | Web application record-replay system and method |
US20120174075A1 (en) * | 2010-08-10 | 2012-07-05 | International Business Machines Corporation | Automatically Testing a Web Application |
US20120131456A1 (en) * | 2010-11-22 | 2012-05-24 | Microsoft Corporation | Capture and Playback for GUI-Based Tasks |
-
2012
- 2012-11-12 CN CN201210449497.6A patent/CN103810089B/en active Active
- 2012-11-29 US US13/688,243 patent/US9342237B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9154611B1 (en) * | 2006-08-14 | 2015-10-06 | Soasta, Inc. | Functional test automation for gesture-based mobile applications |
US20110191676A1 (en) * | 2010-01-29 | 2011-08-04 | Microsoft Corporation | Cross-Browser Interactivity Recording, Playback, and Editing |
US20110310041A1 (en) * | 2010-06-21 | 2011-12-22 | Apple Inc. | Testing a Touch-Input Program |
US20120054715A1 (en) * | 2010-08-31 | 2012-03-01 | Dan Welchman | System and method for use in replaying software application events |
US20130127877A1 (en) * | 2011-02-28 | 2013-05-23 | Joaquin Cruz Blas, JR. | Parameterizing Animation Timelines |
US20130273853A1 (en) * | 2012-04-16 | 2013-10-17 | Mobile Experience Solutions, Inc. | Mobile device monitoring and testing |
US20130290786A1 (en) * | 2012-04-26 | 2013-10-31 | International Business Machines Corporation | Automated testing of applications with scripting code |
US20140045483A1 (en) * | 2012-08-08 | 2014-02-13 | Nokia Corporation | Methods, apparatuses and computer program products for automating testing of devices |
US20140089904A1 (en) * | 2012-09-26 | 2014-03-27 | Compuware Corporation | Technique for simulating an orientation change event in a test environment |
Cited By (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150015505A1 (en) * | 2013-07-09 | 2015-01-15 | Lg Electronics Inc. | Mobile terminal and controlling method thereof |
US11256385B2 (en) * | 2013-09-19 | 2022-02-22 | Micro Focus Llc | Application menu modification recommendations |
US20160209996A1 (en) * | 2013-09-19 | 2016-07-21 | Hewlett Packard Enterprise Development Lp | Application menu modification recommendations |
US20160209989A1 (en) * | 2013-09-30 | 2016-07-21 | Jin-Feng Luan | Record and replay of operations on graphical objects |
US20160364321A1 (en) * | 2014-02-20 | 2016-12-15 | Hewlett Packard Enterprise Development Lp | Emulating a user performing spatial gestures |
US10162737B2 (en) * | 2014-02-20 | 2018-12-25 | Entit Software Llc | Emulating a user performing spatial gestures |
US20150248388A1 (en) * | 2014-02-28 | 2015-09-03 | Microsoft Corporation | Gestural annotations |
US9552345B2 (en) * | 2014-02-28 | 2017-01-24 | Microsoft Technology Licensing, Llc | Gestural annotations |
US20150347270A1 (en) * | 2014-05-28 | 2015-12-03 | National Central University | Automatic test system and test method for computer, record medium, and program product |
US9841826B2 (en) * | 2014-05-28 | 2017-12-12 | National Central University | Automatic test system and test method for computer, record medium, and program product |
US10203796B2 (en) | 2014-06-04 | 2019-02-12 | International Business Machines Corporation | Touch prediction for visual displays |
US10067596B2 (en) * | 2014-06-04 | 2018-09-04 | International Business Machines Corporation | Touch prediction for visual displays |
US10162456B2 (en) | 2014-06-04 | 2018-12-25 | International Business Machines Corporation | Touch prediction for visual displays |
US20160306520A1 (en) * | 2014-06-04 | 2016-10-20 | International Business Machines Corporation | Touch prediction for visual displays |
US20150363304A1 (en) * | 2014-06-17 | 2015-12-17 | Kishan Nagamalla | Self-learning and self-validating declarative testing |
US10061687B2 (en) * | 2014-06-17 | 2018-08-28 | Paypal, Inc. | Self-learning and self-validating declarative testing |
US9430361B1 (en) | 2014-06-24 | 2016-08-30 | Amazon Technologies, Inc. | Transition testing model for heterogeneous client environments |
US9317398B1 (en) * | 2014-06-24 | 2016-04-19 | Amazon Technologies, Inc. | Vendor and version independent browser driver |
US9336126B1 (en) * | 2014-06-24 | 2016-05-10 | Amazon Technologies, Inc. | Client-side event logging for heterogeneous client environments |
US9846636B1 (en) * | 2014-06-24 | 2017-12-19 | Amazon Technologies, Inc. | Client-side event logging for heterogeneous client environments |
US10097565B1 (en) | 2014-06-24 | 2018-10-09 | Amazon Technologies, Inc. | Managing browser security in a testing context |
US20160170945A1 (en) * | 2014-12-16 | 2016-06-16 | Kabushiki Kaisha Toshiba | Information processing device, information processing method, and computer program product |
US20210263716A1 (en) * | 2014-12-30 | 2021-08-26 | Open Text Corporation | Method and system for implementing custom ui actions in a web application using hidden containers |
US9201591B1 (en) * | 2015-05-19 | 2015-12-01 | Synack, Inc. | Automated coverage monitoring of mobile applications |
US11023363B2 (en) | 2016-03-11 | 2021-06-01 | Spirent Communications, Inc. | Performance test application sequence script |
US10831450B2 (en) | 2016-10-26 | 2020-11-10 | Soroco Private Limited | Systems and methods for discovering automatable tasks |
US10891112B2 (en) | 2016-10-26 | 2021-01-12 | Soroco Private Limited | Systems and methods for discovering automatable tasks |
AU2017347847B2 (en) * | 2016-10-26 | 2022-03-24 | Soroco Private Limited | Systems and methods for discovering automatable tasks |
US20190034173A1 (en) * | 2016-10-26 | 2019-01-31 | Soroco Private Limited | Systems and methods for discovering automatable tasks |
US10698661B2 (en) * | 2016-10-26 | 2020-06-30 | Soroco Private Limited | Systems and methods for discovering automatable tasks |
US12050889B2 (en) | 2016-10-26 | 2024-07-30 | Soroco Private Limited | Systems and methods for discovering automatable tasks |
US10613838B2 (en) | 2016-10-26 | 2020-04-07 | Soroco Private Limited | Systems and methods for discovering automatable tasks |
US10318070B2 (en) | 2017-02-15 | 2019-06-11 | Honeywell International Inc. | Touch detector with a code debugger |
EP3364302A1 (en) * | 2017-02-15 | 2018-08-22 | Honeywell International Inc. | Touch detector with a code debugger |
US20180232100A1 (en) * | 2017-02-15 | 2018-08-16 | Honeywell International Inc. | Touch detector with a code debugger |
CN108459764A (en) * | 2017-02-15 | 2018-08-28 | 霍尼韦尔国际公司 | Touch detection device with code debugging device |
CN107193734A (en) * | 2017-05-17 | 2017-09-22 | 上海交通大学 | The playback method and playback system applied for mobile Web |
US10289533B2 (en) | 2017-08-30 | 2019-05-14 | Sap Se | Managing extraction of data for testing |
US10853232B2 (en) | 2018-01-19 | 2020-12-01 | Spirent Communications, Inc. | Adaptive system for mobile device testing |
CN108399125A (en) * | 2018-02-08 | 2018-08-14 | 深圳壹账通智能科技有限公司 | Automated testing method, device, computer equipment and storage medium |
US11341030B2 (en) * | 2018-09-27 | 2022-05-24 | Sap Se | Scriptless software test automation |
US20220286524A1 (en) * | 2019-06-13 | 2022-09-08 | FullStory, Inc. | Network latency detection |
US11363108B2 (en) * | 2019-06-13 | 2022-06-14 | FullStory, Inc. | Network latency detection |
CN110569184A (en) * | 2019-07-31 | 2019-12-13 | 重庆小雨点小额贷款有限公司 | test method and terminal equipment |
US20220050769A1 (en) * | 2019-11-27 | 2022-02-17 | Tencent Technology (Shenzhen) Company Limited | Program testing method and apparatus, computer device, and storage medium |
US11983101B2 (en) * | 2019-11-27 | 2024-05-14 | Tencent Technology (Shenzhen) Company Limited | Program testing method and apparatus, computer device, and storage medium |
US11816112B1 (en) | 2020-04-03 | 2023-11-14 | Soroco India Private Limited | Systems and methods for automated process discovery |
US11907104B1 (en) * | 2021-01-11 | 2024-02-20 | Wells Fargo Bank, N.A. | Service virtualization |
US20220269586A1 (en) * | 2021-02-24 | 2022-08-25 | Applause App Quality, Inc. | Systems and methods for automating test and validity |
US12093166B2 (en) * | 2021-02-24 | 2024-09-17 | Applause App Quality, Inc. | Systems and methods for automating test and validity |
US12020046B1 (en) | 2021-04-02 | 2024-06-25 | Soroco India Private Limited | Systems and methods for automated process discovery |
CN113254338A (en) * | 2021-05-25 | 2021-08-13 | 深圳前海微众银行股份有限公司 | Test case generation method, device and equipment |
CN113535029A (en) * | 2021-07-30 | 2021-10-22 | 西安闻泰电子科技有限公司 | Operation recording method, terminal, computer device and computer-readable storage medium |
CN115145464A (en) * | 2022-07-28 | 2022-10-04 | 重庆长安汽车股份有限公司 | Page testing method and device, electronic equipment and storage medium |
CN115001991A (en) * | 2022-08-02 | 2022-09-02 | 北京聚合盈创科技有限公司 | Recording method and device based on performance test and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN103810089B (en) | 2021-12-03 |
CN103810089A (en) | 2014-05-21 |
US9342237B2 (en) | 2016-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9342237B2 (en) | Automated testing of gesture-based applications | |
US10853232B2 (en) | Adaptive system for mobile device testing | |
CN108959068B (en) | Software interface testing method, device and storage medium | |
Gomez et al. | Reran: Timing-and touch-sensitive record and replay for android | |
WO2015039566A1 (en) | Method and system for facilitating automated web page testing | |
US9003423B1 (en) | Dynamic browser compatibility checker | |
US9355015B2 (en) | Technique for simulating an orientation change event in a test environment | |
US20170277625A1 (en) | Generating annotated screenshots based on automated tests | |
US8645912B2 (en) | System and method for use in replaying software application events | |
CN102511037A (en) | A method and system to automatically testing a WEB application | |
US11237948B2 (en) | Rendering engine component abstraction system | |
CN105335282A (en) | Method and system for cross-platform test of applications | |
CN110716853A (en) | A test script recording method, application program testing method and related device | |
CN105975393B (en) | Page display detection method and system | |
CN111324352A (en) | Code generation method of application page and related equipment | |
US9454463B2 (en) | Rapid automation front-end framework library and executable graphic user interface testing system and method | |
US8984487B2 (en) | Resource tracker | |
CN111414309A (en) | Automatic test method of application program, computer equipment and storage medium | |
WO2015043352A1 (en) | Method and apparatus for selecting test nodes on webpages | |
Tuovenen et al. | MAuto: Automatic mobile game testing tool using image-matching based approach | |
RU2611961C2 (en) | Method and system of regression testing of web page functionality, machine-readable data storage media | |
US20130081010A1 (en) | Template and server content download using protocol handlers | |
Wu et al. | Appcheck: a crowdsourced testing service for android applications | |
US20170017483A1 (en) | Automatic import of third party analytics | |
CN112988267B (en) | Loading method and device, storage medium and electronic equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SAP AG, GERMANY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ZENG, XIAN;WANG, CHUAN;HAO, YU;AND OTHERS;REEL/FRAME:029369/0386 Effective date: 20121031 |
|
AS | Assignment |
Owner name: SAP SE, GERMANY Free format text: CHANGE OF NAME;ASSIGNOR:SAP AG;REEL/FRAME:033625/0223 Effective date: 20140707 |
|
FEPP | Fee payment procedure |
Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |