The present invention relates generally to the field of web applications and more specifically to automatically testing scripts and correcting invalid scripts in web applications.
With the prevalence of web applications, more efficient web application testing has become increasingly important. Web application errors are often caused by invalid scripts. In general, a need exists for efficient automated functional and performance testing for web applications. A more particular need exists for automatically testing scripts and correcting invalid scripts in web applications.
Embodiments include a method, system, and computer program product for correcting an invalid script in a web application. A method includes determining an invalid reference in an invalid script. A storage location is determined in a database corresponding to the invalid reference based on a data relationship mapping, wherein the data relationship mapping indicates the correspondence between the reference and a storage location in the database. An up-to-date value at the storage location is queried and he queried up-to-date value is determined to be the correct value of the invalid reference.
Additional features and advantages are realized through the techniques of the present disclosure. Other embodiments and aspects of the disclosure are described in detail herein. For a better understanding of the disclosure with the advantages and the features, refer to the description and to the drawings.
The subject matter which is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The forgoing and other features, and advantages of the invention are apparent from the following detailed description taken in conjunction with the accompanying drawings in which:
Embodiments described herein relate to determining when a script in a web application has become invalid due to an invalid data correlation. A correct value of an invalid reference that corresponds to the invalid data correlation is determined, and the invalid script is corrected to enable the web application to run correctly. More specifically, when an script has become invalid due to an invalid data correlation, a correct value of an invalid reference corresponding to the invalid data correlation may be identified based on a data relationship mapping indicating a correspondence between the reference and a storage location in a database, thereby enabling the invalid script to run correctly to complete functional testing on the application and thus correct the invalid script.
With the prevalence of web applications, more efficient web application testing has become increasingly important. Particularly, more efficient automated web application testing has become increasingly important for functional and performance testing. The common method is to leverage existing web test automation tools, e.g., RPT (Rational Performance Tester), Silk Performer, LoadRunner, to generate automated test scripts (hereinafter, scripts for short) to test web applications. However, the scripts typically include scenarios information supported by a back-end system. While in the current development models, a web application will be updated frequently for different builds, which would cause existing scripts not valid any more. Further, based on development experience, there are about 70%-80% invalid scripts that are caused by invalid data correlation.
Consider an example in which a customer logged on to an online store to purchase products, so as to illustrate data correlation and invalid data correlation. Assume that the customer logged on to an online store to purchase products. This scenario will be described below with reference to
When the user has selected all items required to purchase, a “check out” button is clicked to produce a checkout request 74 (shown as an URL in
When an automatic script is used to simulate the above operations, at first, the add-to-cart request and its response are captured by a test tool. Then, the test tool creates a dynamically varying variable that will be used in a later checkout request as a reference, in this example, for example, the order ID. A regular expression is generated for the reference, so that the value of the reference (order ID in this example) may be forwarded to a later checkout request as a key parameter. With the generated regular expression, specific part to be acquired may be filtered from a response to the add-to-cart request, in this example, for example, the order ID. Then, when a response to a later checkout request is generated, a value of a referenced order ID may be obtained using this regular expression, for example 10503, to generate a correct response to the checkout request. Here, the complete process of creating a reference for a variable (for example, the order ID in this example) that corresponds to a value required in a later request and its response, and then correlating the reference to a parameter in the later request is referred to as data correlation. In this description, data correlation is represented by a regular expression for convenience.
However, in the field of web applications, the following situation may commonly arise. For example, a developer of a web application may modify an element name in source code. For example, the developer may change an element name “orderId” to “ord_Id”. This situation will be described with reference to
When a script has become as described above, existing test tools, e.g., RPT, Silk Performer, LoadRunner, generally need to re-record a script to resolve resulted changes. Particularly, existing solutions need to re-record a script and rewrite invalid part of the script to complete the whole test script and the scenario successfully on an updated framework. The challenge is that script maintenance engineers with experienced script PD (positioning and diagnosing) skill should understand the invalid scenario, identify issues of the script, then re-record and rewrite the script, which is also time consuming.
Thus, a method for effectively correcting an invalid script is desired to overcome the above defects in the prior art. According to one embodiment of this disclosure, a method for correcting an invalid script includes determining an invalid reference in an invalid script; determining a storage location in a database corresponding to the invalid reference based on a data relationship mapping, wherein the data relationship mapping indicates the correspondence between the reference and a storage location in the database; querying an up-to-date value at the storage location; and determining the queried up-to-date value to be the correct value of the invalid reference.
According to another embodiment, an apparatus for correcting an invalid script includes: an invalid reference determining unit configured to determine an invalid reference in an invalid script. A storage location determining unit is configured to determine a storage location in a database corresponding to the invalid reference based on a data relationship mapping, in which the data relationship mapping indicates the correspondence between the reference and a storage location in the database. A correct value querying unit is configured to query an up-to-date value at the storage location, and a correct value determining unit is configured to determine the queried up-to-date value to be the correct value of the invalid reference.
Some illustrative embodiments are described below with reference to the appended drawings, in which the certain embodiments of the present disclosure have been illustrated. However, the present disclosure can be implemented in various manners, and thus should not be construed to be limited to the specific embodiments disclosed herein. On the contrary, those embodiments are provided for the thorough and complete understanding of the present disclosure, and completely conveying the scope of the present disclosure to those skilled in the art.
Referring now to
As shown in
Bus 18 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus.
Computer system/server 12 typically includes a variety of computer system readable media. Such media may be any available media that is accessible by computer system/server 12, and it includes both volatile and non-volatile media, removable and non-removable media.
System memory 28 can include computer system readable media in the form of volatile memory, such as random access memory (RAM) 30 and/or cache memory 32. Computer system/server 12 may further include other removable/non-removable, volatile/non-volatile computer system storage media. By way of example only, storage system 34 can be provided for reading from and writing to a non-removable, non-volatile magnetic media (not shown and typically called a “hard drive”). Although not shown, a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a “floppy disk”), and an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media can be provided. In such instances, each can be connected to bus 18 by one or more data media interfaces. As will be further depicted and described below, memory 28 may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of embodiments of the invention.
Program/utility 40, having a set (at least one) of program modules 42, may be stored in memory 28 by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. Program modules 42 generally carry out the functions and/or methodologies of the embodiments described herein.
Computer system/server 12 may also communicate with one or more external devices 14 such as a keyboard, a pointing device, a display 24, etc.; one or more devices that enable a user to interact with computer system/server 12; and/or any devices (e.g., network card, modem, etc.) that enable computer system/server 12 to communicate with one or more other computing devices. Such communication can occur via Input/Output (I/O) interfaces 22. Still yet, computer system/server 12 can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via network adapter 20. As depicted, network adapter 20 communicates with the other components of computer system/server 12 via bus 18. It should be understood that although not shown, other hardware and/or software components could be used in conjunction with computer system/server 12. Examples, include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.
As described above with reference to
Those skilled in the art may appreciate that the value of a reference in a script (for example, a dynamically varying variable that is required in a later request as described previously) will be stored in a storage location in a database. That is, there is a correspondence between the reference and a storage location in the database. Thus, if we can make use of a data relationship mapping which indicates such a correspondence, the value of the reference may be obtained. Embodiments of this invention attempt to access a database by using such a data relationship mapping, and to obtain the correct value of an invalid reference and thus to correct an invalid script.
Embodiments will be described below with reference to
At first, an invalid reference in an invalid script is determined (block S202). For example, when a web application is tested with a script, a data correlation 31 corresponding to a reference 32 may be invalid and thereby a null value is returned, indicating that this reference has become invalid. This reference (for example, identified by a reference ID reference001 in
Next, a storage location 33 in a database 34 corresponding to the invalid reference 32 is determined based on a data relationship mapping 35, wherein the data relationship mapping indicates a correspondence between the reference and a storage location 33 in the database 34 (block S204).
Particularly, in the example of
In the example of this description, for convenience, an illustration is given by taking a relational database as an example, wherein data is stored in the relational database in the form of tables. In this example, a storage location in the database is a column in a table of the database. However, embodiments are also applicable to other types of database, for example, layered databases and network databases, for which a corresponding storage location is, for example, a node. Besides, although a data relationship mapping is shown in the form of a table in
In the example shown in
Next, the method 200 proceeds to block S206, at which an up-to-date value at the storage location determined at block S204 is queried.
For example, in the example shown in
At last, the method 200 proceeds to block S208, at which the up-to-date value queried at block S206 is determined as a correct value of the invalid reference. Because in the case of an invalid script, a script is debugged in the single thread mode (in other words, a single user's behaviors are simulate), the up-to-date value at the storage location corresponds to the correct value of the reference.
In the example shown in
With this method, when an script has become invalid due to invalid data correlation, a correct value of an invalid reference corresponding to the invalid data correlation may be identified based on a data relationship mapping indicating a correspondence between the reference and a storage location in a database, thereby enabling the invalid script to run correctly to complete functional test on the web application (i.e., test the web application in the single user mode) and thus correcting the invalid script.
After determining the correct value of the invalid reference, the method 200 may further comprise: searching a response corresponding to the invalid reference using the determined correct value to determine the location of the correct value in the response.
In the example shown in
The method 200 may further comprise: creating a data correlation for the invalid reference using the determined location and its context, and updating an invalid data correlation corresponding to the invalid reference with the created data correlation.
In the example shown in
For the sake of clarity, after determining the location of the correct value in the response, how to create a data correlation using the location and the context of the location will be particularly described below with reference to
Although how to create a data correlation has been particularly described above with reference to
With this method, the location of the correct value of the invalid reference in a response corresponding to the invalid reference may be determined using the correct value of the invalid reference, a data correlation may be created using the determined location and its context, and the invalid data correlation may be updated with the created data correlation. After the invalid data correlation of the invalid script is updated, the script is further corrected. In later use of the corrected script, functional test (for example, test for a single user) and performance test (for example, test for multiple users concurrently) may be performed for the web application, without further access to the database.
With this method, when an script has become invalid due to an invalid reference, i.e., invalid data correlation, without rewriting the script, a correct value of the invalid reference is retrieved in a database based on a data relationship mapping indicating a correspondence between the reference and a storage location in the database, thereby enabling running the script correctly and completing functional test on the web application (i.e., test the web application in the single user mode), and realizing the purpose of correcting the script. After the correct value is obtained, a response corresponding to the invalid reference is searched using the correct value to create a data correlation, and the invalid data correlation is updated with the created data correlation. After the invalid data correlation of the invalid script is updated, the script is further corrected. When using the corrected script later, functional test (for example, test for a single user) and performance test (for example, test for multiple users concurrently) may be performed for the web application, without further access to the database.
How to correct a script using a data relationship mapping indicating a correspondence between a reference and a storage location in a database has been described above. Below, an example of how to generate a data relationship mapping will be described in a particular example.
In an example, a data relationship mapping may be generated the script recording stage.
First, in response to creating a reference, a correspondence 55 between the created reference 52 and a storage location 53 in a database 54 is determined (block S402).
In general, a variable in a response to a request for accessing a web application may be created as a reference, wherein creating the reference comprises creating a dynamically varying variable in the response to the request corresponding to created reference as a reference for later use. In the particular example shown in
In an example, in response to creating a reference, determining a correspondence between the created reference and a storage location in a database comprises: according to database statements caused by a request corresponding to the created reference for performing operations in the database and the actual value of the created reference, determining a correspondence between the created reference and a storage location in the database, wherein the actual value of the created reference is included in a response corresponding to the created reference.
As described above, how to determine a correspondence between a reference and a storage location in a database will be described with a relational database as an example, wherein data is stored in the relational database in the form of tables. In this specific example, a storage location in the database is a column in a table of the database.
In an example, according to database statements caused by a request corresponding to the created reference for performing operations in the database and the actual value of the created reference, determining a correspondence between the created reference and a storage location in the database comprises: determining a table related with the created reference in the database according to the database statements; and traversing the determined tables using the actual value of the created reference to determine a matched column. For example, as to the add-to-cart request shown in
In an example, determining a table related with the created reference in the database according to the database statements comprises the following operations.
First of all, tables involved in the database statements are determined. The database statement depicts an operation performed on a storage location in the database, for example, a SQL statement shown in
Next, tables involved in all non-insert statements are filtered out from the determined tables. Because non-insert statements imply no data is inserted at a storage location in the database, tables which non-insert statements involve in do not relate with the created reference.
Next, based on attribute of the created reference, tables that do not relate with the created reference are filtered out from the remaining tables. For example, if a reference is created for the order ID, tables recording user account information, access times and other information may be unrelated with the order ID, and thus tables recording user account information, access times and other information are tables that are unrelated with the reference, which are filtered out as unrelated tables accordingly.
At last, the finally remaining table is determined as the table related with the created reference. In some situations, there may be several tables that are determined as those related with the created reference.
In another example, a table related with the reference may be determined in the following method.
For example, filtering out non-insert statements from database statements; determining a table involved in insert statements; based on attribute of the created reference, filtering out tables unrelated with the created reference from the determined tables; and determining remaining tables as those related with the reference.
After the table related with the created reference has been determined, the table is traversed by using the actual value of the created reference to determine a column matching the actual value.
In the example shown in
How to determine a correspondence between a reference and a storage location in a database (for example, a column in a table in this example) has been described above with a relational database (in which data is stored in the form of tables) as an example. However, those skilled in the art know that the database is not limited to those described above, and may be any other database, so long as there is a correspondence between the reference and a storage location in the database. Other database types comprise, for example, layered databases and network databases, for which a corresponding storage location is, for example, a node.
At last, the data relationship mapping is generated based on the determined correspondence (block S404).
In the example shown in
In the example shown in
In the example shown in
With the above data relationship mapping, when a script has become invalid due to invalid data correlation, a correct value of an invalid reference corresponding to the invalid data correlation may be retrieved from a corresponding storage location in a database, and thus the invalid script may be corrected using the correct value.
A particular example of how to generate a data relationship mapping has been described with a relational database above with reference to
In an example, the method 200 may further comprise recording a request for accessing the web application and its response, as well as database statements caused by the request, which perform operations in the database for the use of other operations of the method 200. Those skilled in the art may appreciate that the request, response and database statements performing operations in the database that are caused by the request described above may be obtained from a system log of the web application.
Particularly, in the stage of recording a test script for the web application, a user clicks various function buttons of the web application to produce a request (e.g., shown as a URL in
During the above operations, a test tool or another component of the system may record each request and its response. All information of corresponding requests and their responses is recorded in a file. Further, the test tool or another component of the system may record all database statements caused by each request during the above operations.
In the example described herein, it has been described that a test tool or another component of the system records all database statements caused by requests, and then filters out tables which non-insert statements involve in when determining a correspondence between the reference and a storage location in the database. However, those skilled in the art may appreciate that it is also possible to only record insert statements. Correspondingly, when determining a correspondence between the reference and a storage location in the database, the filtering out procedure may be omitted.
With the apparatus, when an script has become invalid due to invalid data correlation, a correct value of an invalid reference corresponding to the invalid data correlation may be identified based on a data relationship mapping indicating a correspondence between the reference and a storage location in a database, thereby enabling the invalid script to run correctly to complete functional test on the application (i.e., test the web application in a single user mode) and thus correcting the invalid script.
In an example, the apparatus 600 further comprises: a locating unit, configured to search a response corresponding to the invalid reference using the determined correct value to determine the location of the correct value in the response; a data correlation updating unit, configured to create a data correlation for the invalid reference according to the determined location and its context and update an invalid data correlation corresponding to the invalid reference with the created data correlation.
With the apparatus, the location of the correct value of the invalid reference in a response corresponding to the invalid reference may be determined using the correct value of the invalid reference, a data correlation may be created using the determined location and its context, and the invalid data correlation may be updated with the created data correlation. After the invalid data correlation of the invalid script is updated, the script is further corrected. When using the corrected script later, functional test (for example, test for a single user) and performance test (for example, test for multiple users concurrently) may be performed for the web application, without further access to the database.
With the apparatus, when a script has become invalid due to an invalid reference, i.e., invalid data correlation, without rewriting the script, a correct value of the invalid reference is retrieved in a database based on a data relationship mapping indicating a correspondence between the reference and a storage location in the database. After the correct value is obtained, a response corresponding to the invalid reference is searched using the correct value to create a data correlation, and the invalid data correlation is updated with the created data correlation. After the invalid data correlation of the invalid script is updated, the script is further corrected. When using the corrected script later, functional test (for example, test for a single user) and performance test (for example, test for multiple users concurrently) may be performed for the web application, without further access to the database.
In an example, the data relationship mapping is generated by the following unit: a correspondence determining unit, configured to, in response to creating a reference, determine a correspondence between the reference and a storage location in the database; and a data relationship mapping generating unit, configured to generate the data relationship mapping based on the determined correspondence.
In an example, the correspondence determining unit is further configured to: determine a correspondence between the created reference and a storage location in the database according to database statements caused by a request corresponding to the created reference for performing operations in the database and the actual value of the created reference, in which the actual value of the created reference is included in a response corresponding to the created reference.
In an example, the correspondence determining unit is further configured to: determine tables related with the created reference in the database according to the database statements; and traverse the table using the actual value of the created reference to determine a matched column.
In an example, determining a table related with the created reference in the database according to the database statements comprises: filtering out all tables which non-insert statements involve in from tables which the database statements involve in; based on attribute of the created reference, filtering out tables unrelated with the created reference from the remaining tables; and determining the finally remaining table as the table related with the created reference.
Note that, the method and apparatus embodiments have been described above with an example of a web application for online shopping. However, those skilled in the art may appreciate that the web application may be any other existing web application, or a web application developed in the future.
Illustrative embodiments include a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention. The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device.
The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
Computer readable program instructions for carrying out operations of the embodiments may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the embodiments.
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one more other features, integers, steps, operations, element components, and/or groups thereof.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
Number | Date | Country | Kind |
---|---|---|---|
2013 1 0532298 | Oct 2013 | CN | national |
This application is a continuation of the legally related U.S. application Ser. No. 14/518,350 filed Oct. 20, 2014 which claims priority to Chinese Patent Application No. 201310532298.6 filed Oct. 30, 2013, and all the benefits accruing therefrom under 35 U.S.C. § 119, the contents of which in its entirety are herein incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
7283993 | McArdle | Oct 2007 | B2 |
7680767 | Adya et al. | Mar 2010 | B2 |
8442999 | Gorelik et al. | May 2013 | B2 |
8448139 | Ghosh | May 2013 | B2 |
8504985 | Kalaidjian | Aug 2013 | B2 |
8510716 | Jakubiak et al. | Aug 2013 | B1 |
9064057 | Shen | Jun 2015 | B2 |
9418095 | Gould et al. | Aug 2016 | B2 |
9483389 | Shen | Nov 2016 | B2 |
10387290 | Shen | Aug 2019 | B2 |
20050075831 | Ilic | Apr 2005 | A1 |
20080127041 | Gura | May 2008 | A1 |
20120158801 | Devegowda et al. | Jun 2012 | A1 |
20140006991 | Kalaidjian | Jan 2014 | A1 |
20140282433 | Eilam et al. | Sep 2014 | A1 |
20150278080 | Shen | Oct 2015 | A1 |
Number | Date | Country |
---|---|---|
102156672 | Aug 2011 | CN |
102937934 | Feb 2013 | CN |
2004107162 | Dec 2004 | WO |
Entry |
---|
Kong, Yi et al., Pending Application entitled: “Automatically Correcting Invalid Scripts in Web Applications” U.S. Appl. No. 14/518,350, filed Oct. 20, 2014. |
List of IBM Patents or Patent Applictions Treated as Related; (Appendix P), Filed Jun. 15, 2017, 2 pages. |
Chinese Office Action for CN Application No. 201310532298.6 dated Dec. 30, 2016; 6 pgs. |
Number | Date | Country | |
---|---|---|---|
20170351730 A1 | Dec 2017 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14518350 | Oct 2014 | US |
Child | 15623544 | US |